diff --git a/.buildkite/scripts/lifecycle/pre_command.sh b/.buildkite/scripts/lifecycle/pre_command.sh index cae6a07708d46..7016cf41d79e9 100755 --- a/.buildkite/scripts/lifecycle/pre_command.sh +++ b/.buildkite/scripts/lifecycle/pre_command.sh @@ -9,7 +9,7 @@ export BUILDKITE_TOKEN echo '--- Install buildkite dependencies' cd '.buildkite' -retry 5 15 yarn install +retry 5 15 yarn install --production --pure-lockfile cd - node .buildkite/scripts/lifecycle/print_agent_links.js || true diff --git a/.buildkite/scripts/steps/test/jest_integration.sh b/.buildkite/scripts/steps/test/jest_integration.sh index 458651df2df2a..d07da0584d46d 100755 --- a/.buildkite/scripts/steps/test/jest_integration.sh +++ b/.buildkite/scripts/steps/test/jest_integration.sh @@ -10,4 +10,4 @@ is_test_execution_step echo '--- Jest Integration Tests' checks-reporter-with-killswitch "Jest Integration Tests" \ - node --max-old-space-size=5120 scripts/jest_integration --ci + node --max-old-space-size=6144 scripts/jest_integration --ci diff --git a/.buildkite/yarn.lock b/.buildkite/yarn.lock new file mode 100644 index 0000000000000..0b92d21c87e26 --- /dev/null +++ b/.buildkite/yarn.lock @@ -0,0 +1,208 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@octokit/auth-token@^2.4.4": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.4.tgz#ee31c69b01d0378c12fd3ffe406030f3d94d3b56" + integrity sha512-LNfGu3Ro9uFAYh10MUZVaT7X2CnNm2C8IDQmabx+3DygYIQjs9FwzFAHN/0t6mu5HEPhxcb1XOuxdpY82vCg2Q== + dependencies: + "@octokit/types" "^6.0.0" + +"@octokit/core@^3.5.1": + version "3.5.1" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.5.1.tgz#8601ceeb1ec0e1b1b8217b960a413ed8e947809b" + integrity sha512-omncwpLVxMP+GLpLPgeGJBF6IWJFjXDS5flY5VbppePYX9XehevbDykRH9PdCdvqt9TS5AOTiDide7h0qrkHjw== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.6.0" + "@octokit/request-error" "^2.0.5" + "@octokit/types" "^6.0.3" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.6" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.6.tgz#4f09f2b468976b444742a1d5069f6fa45826d999" + integrity sha512-7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ== + dependencies: + "@octokit/types" "^5.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.5.8": + version "4.5.8" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.5.8.tgz#d42373633c3015d0eafce64a8ce196be167fdd9b" + integrity sha512-WnCtNXWOrupfPJgXe+vSmprZJUr0VIu14G58PMlkWGj3cH+KLZEfKMmbUQ6C3Wwx6fdhzVW1CD5RTnBdUHxhhA== + dependencies: + "@octokit/request" "^5.3.0" + "@octokit/types" "^6.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^11.2.0": + version "11.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-11.2.0.tgz#b38d7fc3736d52a1e96b230c1ccd4a58a2f400a6" + integrity sha512-PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA== + +"@octokit/openapi-types@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-2.2.0.tgz#123e0438a0bc718ccdac3b5a2e69b3dd00daa85b" + integrity sha512-274lNUDonw10kT8wHg8fCcUc1ZjZHbWv0/TbAwb0ojhBQqZYc1cQ/4yqTVTtPMDeZ//g7xVEYe/s3vURkRghPg== + +"@octokit/plugin-paginate-rest@^2.16.8": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz#32e9c7cab2a374421d3d0de239102287d791bce7" + integrity sha512-tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw== + dependencies: + "@octokit/types" "^6.34.0" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^5.12.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz#8c46109021a3412233f6f50d28786f8e552427ba" + integrity sha512-uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA== + dependencies: + "@octokit/types" "^6.34.0" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.2.tgz#0e76b83f5d8fdda1db99027ea5f617c2e6ba9ed0" + integrity sha512-2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw== + dependencies: + "@octokit/types" "^5.0.1" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.3.0": + version "5.4.12" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.12.tgz#b04826fa934670c56b135a81447be2c1723a2ffc" + integrity sha512-MvWYdxengUWTGFpfpefBBpVmmEYfkwMoxonIB3sUGp5rhdgwjXL1ejo6JbgzG/QD9B/NYt/9cJX1pxXeSIUCkg== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.0.0" + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.1" + once "^1.4.0" + universal-user-agent "^6.0.0" + +"@octokit/request@^5.6.0": + version "5.6.2" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.2.tgz#1aa74d5da7b9e04ac60ef232edd9a7438dcf32d8" + integrity sha512-je66CvSEVf0jCpRISxkUcCa0UkxmFs6eGDRSbfJtAVwbLH5ceqF+YEyC8lj8ystKyZTy8adWr0qmkY52EfOeLA== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.1" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.10.0": + version "18.12.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== + dependencies: + "@octokit/core" "^3.5.1" + "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + +"@octokit/types@^5.0.0", "@octokit/types@^5.0.1": + version "5.5.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-5.5.0.tgz#e5f06e8db21246ca102aa28444cdb13ae17a139b" + integrity sha512-UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ== + dependencies: + "@types/node" ">= 8" + +"@octokit/types@^6.0.0", "@octokit/types@^6.0.3": + version "6.2.1" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.2.1.tgz#7f881fe44475ab1825776a4a59ca1ae082ed1043" + integrity sha512-jHs9OECOiZxuEzxMZcXmqrEO8GYraHF+UzNVH2ACYh8e/Y7YoT+hUf9ldvVd6zIvWv4p3NdxbQ0xx3ku5BnSiA== + dependencies: + "@octokit/openapi-types" "^2.2.0" + "@types/node" ">= 8" + +"@octokit/types@^6.16.1", "@octokit/types@^6.34.0": + version "6.34.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.34.0.tgz#c6021333334d1ecfb5d370a8798162ddf1ae8218" + integrity sha512-s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw== + dependencies: + "@octokit/openapi-types" "^11.2.0" + +"@types/node@>= 8": + version "16.10.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e" + integrity sha512-zCclL4/rx+W5SQTzFs9wyvvyCwoK9QtBpratqz2IYJ3O8Umrn0m3nsTv0wQBk9sRGpvUe9CwPDrQFB10f1FIjQ== + +axios@^0.21.4: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +before-after-hook@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" + integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +follow-redirects@^1.14.0: + version "1.14.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379" + integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g== + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +kibana-buildkite-library@elastic/kibana-buildkite-library: + version "1.0.0" + resolved "https://codeload.github.com/elastic/kibana-buildkite-library/tar.gz/ee34f75c00712b639124cbef60f68132fa662643" + dependencies: + "@octokit/rest" "^18.10.0" + axios "^0.21.4" + +node-fetch@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + +once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index bd5aa47c79034..51c0162a5ee9c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -24,7 +24,6 @@ /x-pack/plugins/lens/ @elastic/kibana-vis-editors /src/plugins/advanced_settings/ @elastic/kibana-vis-editors /src/plugins/charts/ @elastic/kibana-vis-editors -/src/plugins/management/ @elastic/kibana-vis-editors /src/plugins/kibana_legacy/ @elastic/kibana-vis-editors /src/plugins/vis_default_editor/ @elastic/kibana-vis-editors /src/plugins/vis_types/metric/ @elastic/kibana-vis-editors @@ -77,7 +76,7 @@ /src/plugins/navigation/ @elastic/kibana-app-services /src/plugins/share/ @elastic/kibana-app-services /src/plugins/ui_actions/ @elastic/kibana-app-services -/src/plugins/index_pattern_field_editor @elastic/kibana-app-services +/src/plugins/data_view_field_editor @elastic/kibana-app-services /src/plugins/screenshot_mode @elastic/kibana-app-services /src/plugins/bfetch/ @elastic/kibana-app-services /src/plugins/index_pattern_management/ @elastic/kibana-app-services @@ -363,6 +362,7 @@ /src/plugins/dev_tools/ @elastic/kibana-stack-management /src/plugins/console/ @elastic/kibana-stack-management /src/plugins/es_ui_shared/ @elastic/kibana-stack-management +/src/plugins/management/ @elastic/kibana-stack-management /x-pack/plugins/cross_cluster_replication/ @elastic/kibana-stack-management /x-pack/plugins/index_lifecycle_management/ @elastic/kibana-stack-management /x-pack/plugins/grokdebugger/ @elastic/kibana-stack-management diff --git a/.i18nrc.json b/.i18nrc.json index 63e4cf6d2fbb9..afe5c7e7627f3 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -19,7 +19,6 @@ "home": "src/plugins/home", "flot": "packages/kbn-ui-shared-deps-src/src/flot_charts", "charts": "src/plugins/charts", - "customIntegrations": "src/plugins/custom_integrations", "esUi": "src/plugins/es_ui_shared", "devTools": "src/plugins/dev_tools", "expressions": "src/plugins/expressions", @@ -43,7 +42,7 @@ "esQuery": "packages/kbn-es-query/src", "presentationUtil": "src/plugins/presentation_util", "indexPatternEditor": "src/plugins/index_pattern_editor", - "indexPatternFieldEditor": "src/plugins/index_pattern_field_editor", + "indexPatternFieldEditor": "src/plugins/data_view_field_editor", "indexPatternManagement": "src/plugins/index_pattern_management", "interactiveSetup": "src/plugins/interactive_setup", "advancedSettings": "src/plugins/advanced_settings", diff --git a/api_docs/actions.json b/api_docs/actions.json index 342583332b7d9..6240b1f06e9b6 100644 --- a/api_docs/actions.json +++ b/api_docs/actions.json @@ -779,7 +779,7 @@ "label": "ActionParamsType", "description": [], "signature": [ - "Readonly<{} & { subAction: \"getFields\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"getIncident\"; subActionParams: Readonly<{} & { externalId: string; }>; }> | Readonly<{} & { subAction: \"handshake\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"pushToService\"; subActionParams: Readonly<{} & { incident: Readonly<{} & { description: string | null; name: string; externalId: string | null; incidentTypes: number[] | null; severityCode: number | null; }>; comments: Readonly<{} & { comment: string; commentId: string; }>[] | null; }>; }> | Readonly<{} & { subAction: \"incidentTypes\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"severity\"; subActionParams: Readonly<{} & {}>; }>" + "Readonly<{} & { subAction: \"getFields\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"getIncident\"; subActionParams: Readonly<{} & { externalId: string; }>; }> | Readonly<{} & { subAction: \"handshake\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"pushToService\"; subActionParams: Readonly<{} & { incident: Readonly<{} & { name: string; description: string | null; externalId: string | null; incidentTypes: number[] | null; severityCode: number | null; }>; comments: Readonly<{} & { comment: string; commentId: string; }>[] | null; }>; }> | Readonly<{} & { subAction: \"incidentTypes\"; subActionParams: Readonly<{} & {}>; }> | Readonly<{} & { subAction: \"severity\"; subActionParams: Readonly<{} & {}>; }>" ], "path": "x-pack/plugins/actions/server/builtin_action_types/resilient/index.ts", "deprecated": false, diff --git a/api_docs/alerting.json b/api_docs/alerting.json index b0d37c25a10aa..41ac8743fc8d1 100644 --- a/api_docs/alerting.json +++ b/api_docs/alerting.json @@ -24,7 +24,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">) => string | ", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">) => string | ", { "pluginId": "@kbn/utility-types", "scope": "server", @@ -47,7 +47,7 @@ "label": "alert", "description": [], "signature": [ - "{ id: string; name: string; tags: string[]; enabled: boolean; params: never; actions: ", + "{ name: string; tags: string[]; id: string; enabled: boolean; params: never; actions: ", { "pluginId": "alerting", "scope": "common", @@ -1038,7 +1038,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"name\" | \"tags\" | \"enabled\" | \"actions\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"name\" | \"tags\" | \"enabled\" | \"actions\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" ], "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false @@ -1606,6 +1606,19 @@ ], "path": "x-pack/plugins/alerting/server/types.ts", "deprecated": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.AlertType.cancelAlertsOnRuleTimeout", + "type": "CompoundType", + "tags": [], + "label": "cancelAlertsOnRuleTimeout", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false } ], "initialIsOpen": false @@ -1676,7 +1689,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">[]" + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">[]" ], "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts", "deprecated": false @@ -1738,6 +1751,23 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "alerting", + "id": "def-server.PluginSetupContract.getSecurityHealth", + "type": "Function", + "tags": [], + "label": "getSecurityHealth", + "description": [], + "signature": [ + "() => Promise<", + "SecurityHealth", + ">" + ], + "path": "x-pack/plugins/alerting/server/plugin.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -2181,7 +2211,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">>; delete: ({ id }: { id: string; }) => Promise<{}>; find: = never>({ options: { fields, ...options }, }?: { options?: ", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">>; delete: ({ id }: { id: string; }) => Promise<{}>; find: = never>({ options: { fields, ...options }, }?: { options?: ", "FindOptions", " | undefined; }) => Promise<", { @@ -2199,9 +2229,9 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\"> | Pick<", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\"> | Pick<", "AlertWithLegacyId", - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\" | \"legacyId\">>; resolve: = never>({ id, }: { id: string; }) => Promise<", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\" | \"legacyId\">>; resolve: = never>({ id, includeLegacyId, }: { id: string; includeLegacyId?: boolean | undefined; }) => Promise<", { "pluginId": "alerting", "scope": "common", @@ -4152,7 +4182,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\"> & Pick<", + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\"> & Pick<", { "pluginId": "core", "scope": "server", @@ -4188,7 +4218,7 @@ "label": "SanitizedAlert", "description": [], "signature": [ - "{ id: string; name: string; tags: string[]; enabled: boolean; params: Params; actions: ", + "{ name: string; tags: string[]; id: string; enabled: boolean; params: Params; actions: ", { "pluginId": "alerting", "scope": "common", @@ -4234,7 +4264,7 @@ "section": "def-common.Alert", "text": "Alert" }, - ", \"id\" | \"name\" | \"tags\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"name\" | \"tags\" | \"enabled\" | \"actions\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" + ", \"name\" | \"tags\" | \"id\" | \"enabled\" | \"params\" | \"actions\" | \"alertTypeId\" | \"consumer\" | \"schedule\" | \"scheduledTaskId\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"apiKeyOwner\" | \"throttle\" | \"notifyWhen\" | \"muteAll\" | \"mutedInstanceIds\" | \"executionStatus\">, \"name\" | \"tags\" | \"enabled\" | \"actions\" | \"consumer\" | \"schedule\" | \"createdBy\" | \"updatedBy\" | \"createdAt\" | \"updatedAt\" | \"throttle\" | \"notifyWhen\"> & { producer: string; ruleTypeId: string; ruleTypeName: string; }" ], "path": "x-pack/plugins/alerting/common/alert.ts", "deprecated": false, diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index 5524dbb996759..546516399e54d 100644 --- a/api_docs/alerting.mdx +++ b/api_docs/alerting.mdx @@ -18,7 +18,7 @@ Contact [Kibana Alerting](https://github.com/orgs/elastic/teams/kibana-alerting- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 258 | 0 | 250 | 17 | +| 260 | 0 | 252 | 18 | ## Client diff --git a/api_docs/apm.json b/api_docs/apm.json index 2fd290d8b9c35..8e4a40501f6a3 100644 --- a/api_docs/apm.json +++ b/api_docs/apm.json @@ -184,7 +184,7 @@ "APMPluginStartDependencies", ", unknown>, plugins: Pick<", "APMPluginSetupDependencies", - ", \"data\" | \"cloud\" | \"security\" | \"home\" | \"features\" | \"fleet\" | \"ml\" | \"spaces\" | \"actions\" | \"usageCollection\" | \"licensing\" | \"observability\" | \"ruleRegistry\" | \"taskManager\" | \"alerting\">) => { config$: ", + ", \"security\" | \"home\" | \"data\" | \"features\" | \"fleet\" | \"ml\" | \"spaces\" | \"actions\" | \"usageCollection\" | \"licensing\" | \"observability\" | \"ruleRegistry\" | \"cloud\" | \"taskManager\" | \"alerting\">) => { config$: ", "Observable", "; serviceMapEnabled: boolean; serviceMapFingerprintBucketSize: number; serviceMapTraceIdBucketSize: number; serviceMapFingerprintGlobalBucketSize: number; serviceMapTraceIdGlobalBucketSize: number; serviceMapMaxTracesPerRequest: number; autocreateApmIndexPattern: boolean; ui: Readonly<{} & { enabled: boolean; transactionGroupBucketSize: number; maxTraceItems: number; }>; searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", @@ -248,7 +248,7 @@ "signature": [ "Pick<", "APMPluginSetupDependencies", - ", \"data\" | \"cloud\" | \"security\" | \"home\" | \"features\" | \"fleet\" | \"ml\" | \"spaces\" | \"actions\" | \"usageCollection\" | \"licensing\" | \"observability\" | \"ruleRegistry\" | \"taskManager\" | \"alerting\">" + ", \"security\" | \"home\" | \"data\" | \"features\" | \"fleet\" | \"ml\" | \"spaces\" | \"actions\" | \"usageCollection\" | \"licensing\" | \"observability\" | \"ruleRegistry\" | \"cloud\" | \"taskManager\" | \"alerting\">" ], "path": "x-pack/plugins/apm/server/plugin.ts", "deprecated": false, @@ -545,15 +545,7 @@ "section": "def-server.RuleRegistryPluginStartContract", "text": "RuleRegistryPluginStartContract" }, - ">; }; cloud?: { setup: ", - { - "pluginId": "cloud", - "scope": "server", - "docId": "kibCloudPluginApi", - "section": "def-server.CloudSetup", - "text": "CloudSetup" - }, - "; start: () => Promise; } | undefined; security?: { setup: ", + ">; }; security?: { setup: ", { "pluginId": "security", "scope": "server", @@ -635,6 +627,14 @@ "section": "def-server.UsageCollectionSetup", "text": "UsageCollectionSetup" }, + "; start: () => Promise; } | undefined; cloud?: { setup: ", + { + "pluginId": "cloud", + "scope": "server", + "docId": "kibCloudPluginApi", + "section": "def-server.CloudSetup", + "text": "CloudSetup" + }, "; start: () => Promise; } | undefined; taskManager?: { setup: ", { "pluginId": "taskManager", @@ -737,9 +737,9 @@ "label": "APIEndpoint", "description": [], "signature": [ - "\"POST /internal/apm/data_view/static\" | \"GET /internal/apm/data_view/dynamic\" | \"GET /internal/apm/environments\" | \"GET /internal/apm/services/{serviceName}/errors\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}\" | \"GET /internal/apm/services/{serviceName}/errors/distribution\" | \"POST /internal/apm/latency/overall_distribution\" | \"GET /internal/apm/services/{serviceName}/metrics/charts\" | \"GET /internal/apm/observability_overview\" | \"GET /internal/apm/observability_overview/has_data\" | \"GET /internal/apm/ux/client-metrics\" | \"GET /internal/apm/ux/page-load-distribution\" | \"GET /internal/apm/ux/page-load-distribution/breakdown\" | \"GET /internal/apm/ux/page-view-trends\" | \"GET /internal/apm/ux/services\" | \"GET /internal/apm/ux/visitor-breakdown\" | \"GET /internal/apm/ux/web-core-vitals\" | \"GET /internal/apm/ux/long-task-metrics\" | \"GET /internal/apm/ux/url-search\" | \"GET /internal/apm/ux/js-errors\" | \"GET /api/apm/observability_overview/has_rum_data\" | \"GET /internal/apm/service-map\" | \"GET /internal/apm/service-map/service/{serviceName}\" | \"GET /internal/apm/service-map/backend\" | \"GET /internal/apm/services/{serviceName}/serviceNodes\" | \"GET /internal/apm/services\" | \"GET /internal/apm/services/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/metadata/details\" | \"GET /internal/apm/services/{serviceName}/metadata/icons\" | \"GET /internal/apm/services/{serviceName}/agent\" | \"GET /internal/apm/services/{serviceName}/transaction_types\" | \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\" | \"GET /api/apm/services/{serviceName}/annotation/search\" | \"POST /api/apm/services/{serviceName}/annotation\" | \"GET /internal/apm/services/{serviceName}/error_groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/error_groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\" | \"GET /internal/apm/services/{serviceName}/throughput\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/dependencies\" | \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\" | \"GET /internal/apm/services/{serviceName}/profiling/timeline\" | \"GET /internal/apm/services/{serviceName}/profiling/statistics\" | \"GET /internal/apm/services/{serviceName}/alerts\" | \"GET /internal/apm/services/{serviceName}/infrastructure\" | \"GET /internal/apm/suggestions\" | \"GET /internal/apm/traces/{traceId}\" | \"GET /internal/apm/traces\" | \"GET /internal/apm/traces/{traceId}/root_transaction\" | \"GET /internal/apm/transactions/{transactionId}\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\" | \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\" | \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\" | \"GET /internal/apm/alerts/chart_preview/transaction_error_rate\" | \"GET /internal/apm/alerts/chart_preview/transaction_duration\" | \"GET /internal/apm/alerts/chart_preview/transaction_error_count\" | \"GET /api/apm/settings/agent-configuration\" | \"GET /api/apm/settings/agent-configuration/view\" | \"DELETE /api/apm/settings/agent-configuration\" | \"PUT /api/apm/settings/agent-configuration\" | \"POST /api/apm/settings/agent-configuration/search\" | \"GET /api/apm/settings/agent-configuration/services\" | \"GET /api/apm/settings/agent-configuration/environments\" | \"GET /api/apm/settings/agent-configuration/agent_name\" | \"GET /internal/apm/settings/anomaly-detection/jobs\" | \"POST /internal/apm/settings/anomaly-detection/jobs\" | \"GET /internal/apm/settings/anomaly-detection/environments\" | \"GET /internal/apm/settings/apm-index-settings\" | \"GET /internal/apm/settings/apm-indices\" | \"POST /internal/apm/settings/apm-indices/save\" | \"GET /internal/apm/settings/custom_links/transaction\" | \"GET /internal/apm/settings/custom_links\" | \"POST /internal/apm/settings/custom_links\" | \"PUT /internal/apm/settings/custom_links/{id}\" | \"DELETE /internal/apm/settings/custom_links/{id}\" | \"GET /api/apm/sourcemaps\" | \"POST /api/apm/sourcemaps\" | \"DELETE /api/apm/sourcemaps/{id}\" | \"GET /internal/apm/fleet/has_data\" | \"GET /internal/apm/fleet/agents\" | \"POST /api/apm/fleet/apm_server_schema\" | \"GET /internal/apm/fleet/apm_server_schema/unsupported\" | \"GET /internal/apm/fleet/migration_check\" | \"POST /internal/apm/fleet/cloud_apm_package_policy\" | \"GET /internal/apm/backends/top_backends\" | \"GET /internal/apm/backends/upstream_services\" | \"GET /internal/apm/backends/metadata\" | \"GET /internal/apm/backends/charts/latency\" | \"GET /internal/apm/backends/charts/throughput\" | \"GET /internal/apm/backends/charts/error_rate\" | \"GET /internal/apm/fallback_to_transactions\" | \"GET /internal/apm/has_data\" | \"GET /internal/apm/event_metadata/{processorEvent}/{id}\"" + "\"POST /internal/apm/data_view/static\" | \"GET /internal/apm/data_view/dynamic\" | \"GET /internal/apm/environments\" | \"GET /internal/apm/services/{serviceName}/errors\" | \"GET /internal/apm/services/{serviceName}/errors/{groupId}\" | \"GET /internal/apm/services/{serviceName}/errors/distribution\" | \"POST /internal/apm/latency/overall_distribution\" | \"GET /internal/apm/services/{serviceName}/metrics/charts\" | \"GET /internal/apm/observability_overview\" | \"GET /internal/apm/observability_overview/has_data\" | \"GET /internal/apm/ux/client-metrics\" | \"GET /internal/apm/ux/page-load-distribution\" | \"GET /internal/apm/ux/page-load-distribution/breakdown\" | \"GET /internal/apm/ux/page-view-trends\" | \"GET /internal/apm/ux/services\" | \"GET /internal/apm/ux/visitor-breakdown\" | \"GET /internal/apm/ux/web-core-vitals\" | \"GET /internal/apm/ux/long-task-metrics\" | \"GET /internal/apm/ux/url-search\" | \"GET /internal/apm/ux/js-errors\" | \"GET /api/apm/observability_overview/has_rum_data\" | \"GET /internal/apm/service-map\" | \"GET /internal/apm/service-map/service/{serviceName}\" | \"GET /internal/apm/service-map/backend\" | \"GET /internal/apm/services/{serviceName}/serviceNodes\" | \"GET /internal/apm/services\" | \"GET /internal/apm/services/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/metadata/details\" | \"GET /internal/apm/services/{serviceName}/metadata/icons\" | \"GET /internal/apm/services/{serviceName}/agent\" | \"GET /internal/apm/services/{serviceName}/transaction_types\" | \"GET /internal/apm/services/{serviceName}/node/{serviceNodeName}/metadata\" | \"GET /api/apm/services/{serviceName}/annotation/search\" | \"POST /api/apm/services/{serviceName}/annotation\" | \"GET /internal/apm/services/{serviceName}/error_groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/error_groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/details/{serviceNodeName}\" | \"GET /internal/apm/services/{serviceName}/throughput\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/main_statistics\" | \"GET /internal/apm/services/{serviceName}/service_overview_instances/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/dependencies\" | \"GET /internal/apm/services/{serviceName}/dependencies/breakdown\" | \"GET /internal/apm/services/{serviceName}/profiling/timeline\" | \"GET /internal/apm/services/{serviceName}/profiling/statistics\" | \"GET /internal/apm/services/{serviceName}/alerts\" | \"GET /internal/apm/services/{serviceName}/infrastructure\" | \"GET /internal/apm/suggestions\" | \"GET /internal/apm/traces/{traceId}\" | \"GET /internal/apm/traces\" | \"GET /internal/apm/traces/{traceId}/root_transaction\" | \"GET /internal/apm/transactions/{transactionId}\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/main_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/groups/detailed_statistics\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/latency\" | \"GET /internal/apm/services/{serviceName}/transactions/traces/samples\" | \"GET /internal/apm/services/{serviceName}/transaction/charts/breakdown\" | \"GET /internal/apm/services/{serviceName}/transactions/charts/error_rate\" | \"GET /internal/apm/alerts/chart_preview/transaction_error_rate\" | \"GET /internal/apm/alerts/chart_preview/transaction_duration\" | \"GET /internal/apm/alerts/chart_preview/transaction_error_count\" | \"GET /api/apm/settings/agent-configuration\" | \"GET /api/apm/settings/agent-configuration/view\" | \"DELETE /api/apm/settings/agent-configuration\" | \"PUT /api/apm/settings/agent-configuration\" | \"POST /api/apm/settings/agent-configuration/search\" | \"GET /api/apm/settings/agent-configuration/services\" | \"GET /api/apm/settings/agent-configuration/environments\" | \"GET /api/apm/settings/agent-configuration/agent_name\" | \"GET /internal/apm/settings/anomaly-detection/jobs\" | \"POST /internal/apm/settings/anomaly-detection/jobs\" | \"GET /internal/apm/settings/anomaly-detection/environments\" | \"GET /internal/apm/settings/apm-index-settings\" | \"GET /internal/apm/settings/apm-indices\" | \"POST /internal/apm/settings/apm-indices/save\" | \"GET /internal/apm/settings/custom_links/transaction\" | \"GET /internal/apm/settings/custom_links\" | \"POST /internal/apm/settings/custom_links\" | \"PUT /internal/apm/settings/custom_links/{id}\" | \"DELETE /internal/apm/settings/custom_links/{id}\" | \"GET /api/apm/sourcemaps\" | \"POST /api/apm/sourcemaps\" | \"DELETE /api/apm/sourcemaps/{id}\" | \"GET /internal/apm/fleet/has_data\" | \"GET /internal/apm/fleet/agents\" | \"POST /api/apm/fleet/apm_server_schema\" | \"GET /internal/apm/fleet/apm_server_schema/unsupported\" | \"GET /internal/apm/fleet/migration_check\" | \"POST /internal/apm/fleet/cloud_apm_package_policy\" | \"GET /internal/apm/backends/top_backends\" | \"GET /internal/apm/backends/upstream_services\" | \"GET /internal/apm/backends/metadata\" | \"GET /internal/apm/backends/charts/latency\" | \"GET /internal/apm/backends/charts/throughput\" | \"GET /internal/apm/backends/charts/error_rate\" | \"POST /internal/apm/correlations/p_values\" | \"GET /internal/apm/correlations/field_candidates\" | \"POST /internal/apm/correlations/field_stats\" | \"POST /internal/apm/correlations/field_value_pairs\" | \"POST /internal/apm/correlations/significant_correlations\" | \"GET /internal/apm/fallback_to_transactions\" | \"GET /internal/apm/has_data\" | \"GET /internal/apm/event_metadata/{processorEvent}/{id}\"" ], - "path": "x-pack/plugins/apm/server/routes/get_global_apm_server_route_repository.ts", + "path": "x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts", "deprecated": false, "initialIsOpen": false }, @@ -1186,9 +1186,11 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", ", - "MetricsChartsByAgentAPIResponse", - ", ", + ", { charts: { title: string; key: string; yUnit: ", + "YUnit", + "; series: { title: string; key: string; type: ", + "ChartType", + "; color: string; overallValue: number; data: { x: number; y: number | null; }[]; }[]; }[]; }, ", "APMRouteCreateOptions", ">; } & { \"GET /internal/apm/observability_overview\": ", { @@ -1646,7 +1648,7 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { totalErrorPages: number; totalErrors: number; totalErrorGroups: number; items: { count: number; errorGroupId: React.ReactText; errorMessage: string; }[] | undefined; }, ", + ", { totalErrorPages: number; totalErrors: number; totalErrorGroups: number; items: { count: number; errorGroupId: string | number; errorMessage: string; }[] | undefined; }, ", "APMRouteCreateOptions", ">; } & { \"GET /api/apm/observability_overview/has_rum_data\": ", { @@ -2140,7 +2142,7 @@ "section": "def-server.APMRouteHandlerResources", "text": "APMRouteHandlerResources" }, - ", { host: React.ReactText; containerId: React.ReactText; }, ", + ", { host: string | number; containerId: string | number; }, ", "APMRouteCreateOptions", ">; } & { \"GET /api/apm/services/{serviceName}/annotation/search\": ", { @@ -4888,6 +4890,316 @@ }, ", { currentTimeseries: { x: number; y: number; }[]; comparisonTimeseries: { x: number; y: number; }[] | null; }, ", "APMRouteCreateOptions", + ">; } & { \"POST /internal/apm/correlations/p_values\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/p_values\", ", + "TypeC", + "<{ body: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ fieldCandidates: ", + "ArrayC", + "<", + "StringC", + ">; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { failedTransactionsCorrelations: ", + "FailedTransactionsCorrelation", + "[]; ccsWarning: boolean; }, ", + "APMRouteCreateOptions", + ">; } & { \"GET /internal/apm/correlations/field_candidates\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"GET /internal/apm/correlations/field_candidates\", ", + "TypeC", + "<{ query: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { fieldCandidates: string[]; }, ", + "APMRouteCreateOptions", + ">; } & { \"POST /internal/apm/correlations/field_stats\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/field_stats\", ", + "TypeC", + "<{ body: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ fieldsToSample: ", + "ArrayC", + "<", + "StringC", + ">; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { stats: ", + "FieldStats", + "[]; errors: any[]; }, ", + "APMRouteCreateOptions", + ">; } & { \"POST /internal/apm/correlations/field_value_pairs\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/field_value_pairs\", ", + "TypeC", + "<{ body: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ fieldCandidates: ", + "ArrayC", + "<", + "StringC", + ">; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { fieldValuePairs: ", + "FieldValuePair", + "[]; errors: any[]; }, ", + "APMRouteCreateOptions", + ">; } & { \"POST /internal/apm/correlations/significant_correlations\": ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "server", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-server.ServerRoute", + "text": "ServerRoute" + }, + "<\"POST /internal/apm/correlations/significant_correlations\", ", + "TypeC", + "<{ body: ", + "IntersectionC", + "<[", + "PartialC", + "<{ serviceName: ", + "StringC", + "; transactionName: ", + "StringC", + "; transactionType: ", + "StringC", + "; }>, ", + "TypeC", + "<{ environment: ", + "UnionC", + "<[", + "LiteralC", + "<\"ENVIRONMENT_NOT_DEFINED\">, ", + "LiteralC", + "<\"ENVIRONMENT_ALL\">, ", + "BrandC", + "<", + "StringC", + ", ", + "NonEmptyStringBrand", + ">]>; }>, ", + "TypeC", + "<{ kuery: ", + "StringC", + "; }>, ", + "TypeC", + "<{ start: ", + "Type", + "; end: ", + "Type", + "; }>, ", + "TypeC", + "<{ fieldValuePairs: ", + "ArrayC", + "<", + "TypeC", + "<{ fieldName: ", + "StringC", + "; fieldValue: ", + "UnionC", + "<[", + "StringC", + ", ", + "Type", + "]>; }>>; }>]>; }>, ", + { + "pluginId": "apm", + "scope": "server", + "docId": "kibApmPluginApi", + "section": "def-server.APMRouteHandlerResources", + "text": "APMRouteHandlerResources" + }, + ", { latencyCorrelations: ", + "LatencyCorrelation", + "[]; ccsWarning: boolean; totalDocCount: number; }, ", + "APMRouteCreateOptions", ">; } & { \"GET /internal/apm/fallback_to_transactions\": ", { "pluginId": "@kbn/server-route-repository", @@ -4986,7 +5298,7 @@ "APMRouteCreateOptions", ">; }>" ], - "path": "x-pack/plugins/apm/server/routes/get_global_apm_server_route_repository.ts", + "path": "x-pack/plugins/apm/server/routes/apm_routes/get_global_apm_server_route_repository.ts", "deprecated": false, "initialIsOpen": false } diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 5daa09e8df84c..54a6d5e007058 100644 --- a/api_docs/apm.mdx +++ b/api_docs/apm.mdx @@ -18,7 +18,7 @@ Contact [APM UI](https://github.com/orgs/elastic/teams/apm-ui) for questions reg | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 39 | 0 | 39 | 37 | +| 39 | 0 | 39 | 42 | ## Client diff --git a/api_docs/banners.json b/api_docs/banners.json index eae41491a43d2..d370967767d93 100644 --- a/api_docs/banners.json +++ b/api_docs/banners.json @@ -38,7 +38,7 @@ "label": "placement", "description": [], "signature": [ - "\"top\" | \"disabled\"" + "\"disabled\" | \"top\"" ], "path": "x-pack/plugins/banners/common/types.ts", "deprecated": false @@ -129,7 +129,7 @@ "label": "BannerPlacement", "description": [], "signature": [ - "\"top\" | \"disabled\"" + "\"disabled\" | \"top\"" ], "path": "x-pack/plugins/banners/common/types.ts", "deprecated": false, diff --git a/api_docs/cases.json b/api_docs/cases.json index e38f156b031d7..ff2fd8e755fa6 100644 --- a/api_docs/cases.json +++ b/api_docs/cases.json @@ -702,7 +702,9 @@ "section": "def-common.Case", "text": "Case" }, - ", postComment: (args: PostComment) => Promise) => Promise) | undefined" + ", postComment: (args: ", + "PostComment", + ") => Promise) => Promise) | undefined" ], "path": "x-pack/plugins/cases/public/components/create/index.tsx", "deprecated": false, @@ -735,7 +737,9 @@ "label": "postComment", "description": [], "signature": [ - "(args: PostComment) => Promise" + "(args: ", + "PostComment", + ") => Promise" ], "path": "x-pack/plugins/cases/public/components/create/index.tsx", "deprecated": false, @@ -2935,7 +2939,7 @@ "label": "actionField", "description": [], "signature": [ - "(\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]" + "(\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]" ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false @@ -2948,7 +2952,7 @@ "label": "action", "description": [], "signature": [ - "\"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"" + "\"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"" ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false @@ -3165,6 +3169,27 @@ ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false + }, + { + "parentPluginId": "cases", + "id": "def-common.Ecs.kibana", + "type": "Object", + "tags": [], + "label": "kibana", + "description": [], + "signature": [ + "{ alert: ", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.SignalEcsAAD", + "text": "SignalEcsAAD" + }, + "; } | undefined" + ], + "path": "x-pack/plugins/cases/common/ui/types.ts", + "deprecated": false } ], "initialIsOpen": false @@ -4143,7 +4168,7 @@ "label": "updateKey", "description": [], "signature": [ - "\"status\" | \"title\" | \"description\" | \"tags\" | \"settings\" | \"connector\"" + "\"title\" | \"tags\" | \"description\" | \"status\" | \"settings\" | \"connector\"" ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false @@ -6796,7 +6821,7 @@ "label": "CaseUserActionAttributes", "description": [], "signature": [ - "{ action_field: (\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; }" + "{ action_field: (\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; }" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -6872,7 +6897,7 @@ "label": "CaseUserActionResponse", "description": [], "signature": [ - "{ action_field: (\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; } & { action_id: string; case_id: string; comment_id: string | null; new_val_connector_id: string | null; old_val_connector_id: string | null; } & { sub_case_id?: string | undefined; }" + "{ action_field: (\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; } & { action_id: string; case_id: string; comment_id: string | null; new_val_connector_id: string | null; old_val_connector_id: string | null; } & { sub_case_id?: string | undefined; }" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -6886,7 +6911,7 @@ "label": "CaseUserActionsResponse", "description": [], "signature": [ - "({ action_field: (\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; } & { action_id: string; case_id: string; comment_id: string | null; new_val_connector_id: string | null; old_val_connector_id: string | null; } & { sub_case_id?: string | undefined; })[]" + "({ action_field: (\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]; action: \"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"; action_at: string; action_by: { email: string | null | undefined; full_name: string | null | undefined; username: string | null | undefined; }; new_value: string | null; old_value: string | null; owner: string; } & { action_id: string; case_id: string; comment_id: string | null; new_val_connector_id: string | null; old_val_connector_id: string | null; } & { sub_case_id?: string | undefined; })[]" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -8040,7 +8065,7 @@ "tags": [], "label": "SAVED_OBJECT_TYPES", "description": [ - "\nIf more values are added here please also add them here: x-pack/test/case_api_integration/common/fixtures/plugins" + "\nIf more values are added here please also add them here: x-pack/test/cases_api_integration/common/fixtures/plugins" ], "signature": [ "string[]" @@ -8107,6 +8132,35 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "cases", + "id": "def-common.SignalEcsAAD", + "type": "Type", + "tags": [], + "label": "SignalEcsAAD", + "description": [], + "signature": [ + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.SignalEcs", + "text": "SignalEcs" + }, + " & { rule?: (", + { + "pluginId": "cases", + "scope": "common", + "docId": "kibCasesPluginApi", + "section": "def-common.RuleEcs", + "text": "RuleEcs" + }, + " & { uuid: string[]; }) | undefined; building_block_type?: string[] | undefined; workflow_status?: string[] | undefined; }" + ], + "path": "x-pack/plugins/cases/common/ui/types.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "cases", "id": "def-common.StatusAll", @@ -8565,7 +8619,7 @@ "label": "UpdateKey", "description": [], "signature": [ - "\"status\" | \"title\" | \"description\" | \"tags\" | \"settings\" | \"connector\"" + "\"title\" | \"tags\" | \"description\" | \"status\" | \"settings\" | \"connector\"" ], "path": "x-pack/plugins/cases/common/ui/types.ts", "deprecated": false, @@ -8593,7 +8647,7 @@ "label": "UserAction", "description": [], "signature": [ - "\"add\" | \"create\" | \"delete\" | \"update\" | \"push-to-service\"" + "\"create\" | \"delete\" | \"update\" | \"add\" | \"push-to-service\"" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -8607,7 +8661,7 @@ "label": "UserActionField", "description": [], "signature": [ - "(\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]" + "(\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\")[]" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, @@ -8621,7 +8675,7 @@ "label": "UserActionFieldType", "description": [], "signature": [ - "\"status\" | \"title\" | \"description\" | \"tags\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\"" + "\"title\" | \"tags\" | \"description\" | \"status\" | \"comment\" | \"settings\" | \"owner\" | \"connector\" | \"pushed\" | \"sub_case\"" ], "path": "x-pack/plugins/cases/common/api/cases/user_actions.ts", "deprecated": false, diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index 9400133d89bda..b9e4d1c7d7567 100644 --- a/api_docs/cases.mdx +++ b/api_docs/cases.mdx @@ -18,7 +18,7 @@ Contact [Security Solution Threat Hunting](https://github.com/orgs/elastic/teams | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 476 | 0 | 432 | 14 | +| 478 | 0 | 434 | 15 | ## Client diff --git a/api_docs/charts.json b/api_docs/charts.json index e53f10c539790..0fc469bf82674 100644 --- a/api_docs/charts.json +++ b/api_docs/charts.json @@ -2158,6 +2158,147 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE", + "type": "Object", + "tags": [], + "label": "MULTILAYER_TIME_AXIS_STYLE", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel", + "type": "Object", + "tags": [], + "label": "tickLabel", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.visible", + "type": "boolean", + "tags": [], + "label": "visible", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.padding", + "type": "number", + "tags": [], + "label": "padding", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.rotation", + "type": "number", + "tags": [], + "label": "rotation", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment", + "type": "Object", + "tags": [], + "label": "alignment", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment.vertical", + "type": "string", + "tags": [], + "label": "vertical", + "description": [], + "signature": [ + "\"bottom\"" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment.horizontal", + "type": "string", + "tags": [], + "label": "horizontal", + "description": [], + "signature": [ + "\"left\"" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLine", + "type": "Object", + "tags": [], + "label": "tickLine", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLine.visible", + "type": "boolean", + "tags": [], + "label": "visible", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLine.size", + "type": "number", + "tags": [], + "label": "size", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-public.MULTILAYER_TIME_AXIS_STYLE.tickLine.padding", + "type": "number", + "tags": [], + "label": "padding", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + } + ] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "charts", "id": "def-public.truncatedColorMaps", @@ -3921,6 +4062,147 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE", + "type": "Object", + "tags": [], + "label": "MULTILAYER_TIME_AXIS_STYLE", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel", + "type": "Object", + "tags": [], + "label": "tickLabel", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.visible", + "type": "boolean", + "tags": [], + "label": "visible", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.padding", + "type": "number", + "tags": [], + "label": "padding", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.rotation", + "type": "number", + "tags": [], + "label": "rotation", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment", + "type": "Object", + "tags": [], + "label": "alignment", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment.vertical", + "type": "string", + "tags": [], + "label": "vertical", + "description": [], + "signature": [ + "\"bottom\"" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLabel.alignment.horizontal", + "type": "string", + "tags": [], + "label": "horizontal", + "description": [], + "signature": [ + "\"left\"" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + } + ] + } + ] + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLine", + "type": "Object", + "tags": [], + "label": "tickLine", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLine.visible", + "type": "boolean", + "tags": [], + "label": "visible", + "description": [], + "signature": [ + "true" + ], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLine.size", + "type": "number", + "tags": [], + "label": "size", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + }, + { + "parentPluginId": "charts", + "id": "def-common.MULTILAYER_TIME_AXIS_STYLE.tickLine.padding", + "type": "number", + "tags": [], + "label": "padding", + "description": [], + "path": "src/plugins/charts/common/static/styles/multilayer_timeaxis.ts", + "deprecated": false + } + ] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "charts", "id": "def-common.truncatedColorMaps", diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 32f7fc46723ad..5f906789d65e8 100644 --- a/api_docs/charts.mdx +++ b/api_docs/charts.mdx @@ -18,7 +18,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 286 | 4 | 254 | 3 | +| 310 | 4 | 278 | 3 | ## Client diff --git a/api_docs/core.json b/api_docs/core.json index 93a0d2007f651..08d1c27ddf8e9 100644 --- a/api_docs/core.json +++ b/api_docs/core.json @@ -27,7 +27,7 @@ "section": "def-public.ToastsApi", "text": "ToastsApi" }, - ", \"get$\" | \"add\" | \"remove\" | \"addSuccess\" | \"addWarning\" | \"addDanger\" | \"addError\" | \"addInfo\">" + ", \"add\" | \"get$\" | \"remove\" | \"addSuccess\" | \"addWarning\" | \"addDanger\" | \"addError\" | \"addInfo\">" ], "path": "src/core/public/notifications/toasts/toasts_api.tsx", "deprecated": false, @@ -1112,6 +1112,27 @@ } ] }, + { + "parentPluginId": "core", + "id": "def-public.CoreSetup.theme", + "type": "Object", + "tags": [], + "label": "theme", + "description": [ + "{@link ThemeServiceSetup}" + ], + "signature": [ + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.ThemeServiceSetup", + "text": "ThemeServiceSetup" + } + ], + "path": "src/core/public/index.ts", + "deprecated": false + }, { "parentPluginId": "core", "id": "def-public.CoreSetup.getStartServices", @@ -1383,6 +1404,27 @@ "path": "src/core/public/index.ts", "deprecated": false }, + { + "parentPluginId": "core", + "id": "def-public.CoreStart.theme", + "type": "Object", + "tags": [], + "label": "theme", + "description": [ + "{@link ThemeServiceStart}" + ], + "signature": [ + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.ThemeServiceStart", + "text": "ThemeServiceStart" + } + ], + "path": "src/core/public/index.ts", + "deprecated": false + }, { "parentPluginId": "core", "id": "def-public.CoreStart.injectedMetadata", @@ -1421,6 +1463,33 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "core", + "id": "def-public.CoreTheme", + "type": "Interface", + "tags": [], + "label": "CoreTheme", + "description": [ + "\nContains all the required information to apply Kibana's theme at the various levels it can be used.\n" + ], + "path": "src/core/public/theme/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-public.CoreTheme.darkMode", + "type": "boolean", + "tags": [], + "label": "darkMode", + "description": [ + "is dark mode enabled or not" + ], + "path": "src/core/public/theme/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "core", "id": "def-public.DeprecationsServiceStart", @@ -1603,7 +1672,7 @@ "label": "links", "description": [], "signature": [ - "{ readonly settings: string; readonly elasticStackGetStarted: string; readonly apm: { readonly kibanaSettings: string; readonly supportedServiceMaps: string; readonly customLinks: string; readonly droppedTransactionSpans: string; readonly upgrading: string; readonly metaData: string; }; readonly canvas: { readonly guide: string; }; readonly dashboard: { readonly guide: string; readonly drilldowns: string; readonly drilldownsTriggerPicker: string; readonly urlDrilldownTemplateSyntax: string; readonly urlDrilldownVariables: string; }; readonly discover: Record; readonly filebeat: { readonly base: string; readonly installation: string; readonly configuration: string; readonly elasticsearchOutput: string; readonly elasticsearchModule: string; readonly startup: string; readonly exportedFields: string; readonly suricataModule: string; readonly zeekModule: string; }; readonly auditbeat: { readonly base: string; readonly auditdModule: string; readonly systemModule: string; }; readonly metricbeat: { readonly base: string; readonly configure: string; readonly httpEndpoint: string; readonly install: string; readonly start: string; }; readonly enterpriseSearch: { readonly base: string; readonly appSearchBase: string; readonly workplaceSearchBase: string; }; readonly heartbeat: { readonly base: string; }; readonly libbeat: { readonly getStarted: string; }; readonly logstash: { readonly base: string; }; readonly functionbeat: { readonly base: string; }; readonly winlogbeat: { readonly base: string; }; readonly aggs: { readonly composite: string; readonly composite_missing_bucket: string; readonly date_histogram: string; readonly date_range: string; readonly date_format_pattern: string; readonly filter: string; readonly filters: string; readonly geohash_grid: string; readonly histogram: string; readonly ip_range: string; readonly range: string; readonly significant_terms: string; readonly terms: string; readonly avg: string; readonly avg_bucket: string; readonly max_bucket: string; readonly min_bucket: string; readonly sum_bucket: string; readonly cardinality: string; readonly count: string; readonly cumulative_sum: string; readonly derivative: string; readonly geo_bounds: string; readonly geo_centroid: string; readonly max: string; readonly median: string; readonly min: string; readonly moving_avg: string; readonly percentile_ranks: string; readonly serial_diff: string; readonly std_dev: string; readonly sum: string; readonly top_hits: string; }; readonly runtimeFields: { readonly overview: string; readonly mapping: string; }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; readonly painless: string; readonly painlessApi: string; readonly painlessLangSpec: string; readonly painlessSyntax: string; readonly painlessWalkthrough: string; readonly luceneExpressions: string; }; readonly search: { readonly sessions: string; readonly sessionLimits: string; }; readonly indexPatterns: { readonly introduction: string; readonly fieldFormattersNumber: string; readonly fieldFormattersString: string; readonly runtimeFields: string; }; readonly addData: string; readonly kibana: string; readonly upgradeAssistant: string; readonly rollupJobs: string; readonly elasticsearch: Record; readonly siem: { readonly privileges: string; readonly guide: string; readonly gettingStarted: string; readonly ml: string; readonly ruleChangeLog: string; readonly detectionsReq: string; readonly networkMap: string; readonly troubleshootGaps: string; }; readonly securitySolution: { readonly trustedApps: string; }; readonly query: { readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; readonly autocompleteChanges: string; }; readonly date: { readonly dateMath: string; readonly dateMathIndexNames: string; }; readonly management: Record; readonly ml: Record; readonly transforms: Record; readonly visualize: Record; readonly apis: Readonly<{ bulkIndexAlias: string; byteSizeUnits: string; createAutoFollowPattern: string; createFollower: string; createIndex: string; createSnapshotLifecyclePolicy: string; createRoleMapping: string; createRoleMappingTemplates: string; createRollupJobsRequest: string; createApiKey: string; createPipeline: string; createTransformRequest: string; cronExpressions: string; executeWatchActionModes: string; indexExists: string; openIndex: string; putComponentTemplate: string; painlessExecute: string; painlessExecuteAPIContexts: string; putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putIndexTemplateV1: string; putWatch: string; simulatePipeline: string; timeUnits: string; updateTransform: string; }>; readonly observability: Readonly<{ guide: string; infrastructureThreshold: string; logsThreshold: string; metricsThreshold: string; monitorStatus: string; monitorUptime: string; tlsCertificate: string; uptimeDurationAnomaly: string; }>; readonly alerting: Record; readonly maps: Record; readonly monitoring: Record; readonly security: Readonly<{ apiKeyServiceSettings: string; clusterPrivileges: string; elasticsearchSettings: string; elasticsearchEnableSecurity: string; elasticsearchEnableApiKeys: string; indicesPrivileges: string; kibanaTLS: string; kibanaPrivileges: string; mappingRoles: string; mappingRolesFieldRules: string; runAsPrivilege: string; }>; readonly spaces: Readonly<{ kibanaLegacyUrlAliases: string; kibanaDisableLegacyUrlAliasesApi: string; }>; readonly watcher: Record; readonly ccs: Record; readonly plugins: Record; readonly snapshotRestore: Record; readonly ingest: Record; readonly fleet: Readonly<{ datastreamsILM: string; beatsAgentComparison: string; guide: string; fleetServer: string; fleetServerAddFleetServer: string; settings: string; settingsFleetServerHostSettings: string; troubleshooting: string; elasticAgent: string; datastreams: string; datastreamsNamingScheme: string; installElasticAgent: string; upgradeElasticAgent: string; upgradeElasticAgent712lower: string; learnMoreBlog: string; apiKeysLearnMore: string; }>; readonly ecs: { readonly guide: string; }; readonly clients: { readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }; }" + "{ readonly settings: string; readonly elasticStackGetStarted: string; readonly upgrade: { readonly upgradingElasticStack: string; }; readonly apm: { readonly kibanaSettings: string; readonly supportedServiceMaps: string; readonly customLinks: string; readonly droppedTransactionSpans: string; readonly upgrading: string; readonly metaData: string; }; readonly canvas: { readonly guide: string; }; readonly dashboard: { readonly guide: string; readonly drilldowns: string; readonly drilldownsTriggerPicker: string; readonly urlDrilldownTemplateSyntax: string; readonly urlDrilldownVariables: string; }; readonly discover: Record; readonly filebeat: { readonly base: string; readonly installation: string; readonly configuration: string; readonly elasticsearchOutput: string; readonly elasticsearchModule: string; readonly startup: string; readonly exportedFields: string; readonly suricataModule: string; readonly zeekModule: string; }; readonly auditbeat: { readonly base: string; readonly auditdModule: string; readonly systemModule: string; }; readonly metricbeat: { readonly base: string; readonly configure: string; readonly httpEndpoint: string; readonly install: string; readonly start: string; }; readonly enterpriseSearch: { readonly base: string; readonly appSearchBase: string; readonly workplaceSearchBase: string; }; readonly heartbeat: { readonly base: string; }; readonly libbeat: { readonly getStarted: string; }; readonly logstash: { readonly base: string; }; readonly functionbeat: { readonly base: string; }; readonly winlogbeat: { readonly base: string; }; readonly aggs: { readonly composite: string; readonly composite_missing_bucket: string; readonly date_histogram: string; readonly date_range: string; readonly date_format_pattern: string; readonly filter: string; readonly filters: string; readonly geohash_grid: string; readonly histogram: string; readonly ip_range: string; readonly range: string; readonly significant_terms: string; readonly terms: string; readonly terms_doc_count_error: string; readonly avg: string; readonly avg_bucket: string; readonly max_bucket: string; readonly min_bucket: string; readonly sum_bucket: string; readonly cardinality: string; readonly count: string; readonly cumulative_sum: string; readonly derivative: string; readonly geo_bounds: string; readonly geo_centroid: string; readonly max: string; readonly median: string; readonly min: string; readonly moving_avg: string; readonly percentile_ranks: string; readonly serial_diff: string; readonly std_dev: string; readonly sum: string; readonly top_hits: string; }; readonly runtimeFields: { readonly overview: string; readonly mapping: string; }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; readonly painless: string; readonly painlessApi: string; readonly painlessLangSpec: string; readonly painlessSyntax: string; readonly painlessWalkthrough: string; readonly luceneExpressions: string; }; readonly search: { readonly sessions: string; readonly sessionLimits: string; }; readonly indexPatterns: { readonly introduction: string; readonly fieldFormattersNumber: string; readonly fieldFormattersString: string; readonly runtimeFields: string; }; readonly addData: string; readonly kibana: string; readonly upgradeAssistant: { readonly overview: string; readonly batchReindex: string; readonly remoteReindex: string; }; readonly rollupJobs: string; readonly elasticsearch: Record; readonly siem: { readonly privileges: string; readonly guide: string; readonly gettingStarted: string; readonly ml: string; readonly ruleChangeLog: string; readonly detectionsReq: string; readonly networkMap: string; readonly troubleshootGaps: string; }; readonly securitySolution: { readonly trustedApps: string; }; readonly query: { readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; }; readonly date: { readonly dateMath: string; readonly dateMathIndexNames: string; }; readonly management: Record; readonly ml: Record; readonly transforms: Record; readonly visualize: Record; readonly apis: Readonly<{ bulkIndexAlias: string; byteSizeUnits: string; createAutoFollowPattern: string; createFollower: string; createIndex: string; createSnapshotLifecyclePolicy: string; createRoleMapping: string; createRoleMappingTemplates: string; createRollupJobsRequest: string; createApiKey: string; createPipeline: string; createTransformRequest: string; cronExpressions: string; executeWatchActionModes: string; indexExists: string; openIndex: string; putComponentTemplate: string; painlessExecute: string; painlessExecuteAPIContexts: string; putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putIndexTemplateV1: string; putWatch: string; simulatePipeline: string; timeUnits: string; updateTransform: string; }>; readonly observability: Readonly<{ guide: string; infrastructureThreshold: string; logsThreshold: string; metricsThreshold: string; monitorStatus: string; monitorUptime: string; tlsCertificate: string; uptimeDurationAnomaly: string; }>; readonly alerting: Record; readonly maps: Readonly<{ guide: string; importGeospatialPrivileges: string; gdalTutorial: string; }>; readonly monitoring: Record; readonly security: Readonly<{ apiKeyServiceSettings: string; clusterPrivileges: string; elasticsearchSettings: string; elasticsearchEnableSecurity: string; elasticsearchEnableApiKeys: string; indicesPrivileges: string; kibanaTLS: string; kibanaPrivileges: string; mappingRoles: string; mappingRolesFieldRules: string; runAsPrivilege: string; }>; readonly spaces: Readonly<{ kibanaLegacyUrlAliases: string; kibanaDisableLegacyUrlAliasesApi: string; }>; readonly watcher: Record; readonly ccs: Record; readonly plugins: Record; readonly snapshotRestore: Record; readonly ingest: Record; readonly fleet: Readonly<{ datastreamsILM: string; beatsAgentComparison: string; guide: string; fleetServer: string; fleetServerAddFleetServer: string; settings: string; settingsFleetServerHostSettings: string; settingsFleetServerProxySettings: string; troubleshooting: string; elasticAgent: string; datastreams: string; datastreamsNamingScheme: string; installElasticAgent: string; upgradeElasticAgent: string; upgradeElasticAgent712lower: string; learnMoreBlog: string; apiKeysLearnMore: string; onPremRegistry: string; }>; readonly ecs: { readonly guide: string; }; readonly clients: { readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }; readonly endpoints: { readonly troubleshooting: string; }; }" ], "path": "src/core/public/doc_links/doc_links_service.ts", "deprecated": false @@ -2079,7 +2148,7 @@ "signature": [ "() => Readonly, \"type\" | \"description\" | \"name\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\"> & ", + ", \"name\" | \"type\" | \"description\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\"> & ", "UserProvidedValues", ">>" ], @@ -2355,25 +2424,25 @@ "{@link ToastsSetup}" ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -2381,7 +2450,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -2529,25 +2598,25 @@ "{@link ToastsStart}" ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -2555,7 +2624,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -2976,7 +3045,7 @@ "label": "size", "description": [], "signature": [ - "\"m\" | \"s\" | \"l\" | undefined" + "\"s\" | \"m\" | \"l\" | undefined" ], "path": "src/core/public/overlays/flyout/flyout_service.tsx", "deprecated": false @@ -3007,6 +3076,20 @@ "path": "src/core/public/overlays/flyout/flyout_service.tsx", "deprecated": false }, + { + "parentPluginId": "core", + "id": "def-public.OverlayFlyoutOpenOptions.maskProps", + "type": "CompoundType", + "tags": [], + "label": "maskProps", + "description": [], + "signature": [ + "EuiOverlayMaskProps", + " | undefined" + ], + "path": "src/core/public/overlays/flyout/flyout_service.tsx", + "deprecated": false + }, { "parentPluginId": "core", "id": "def-public.OverlayFlyoutOpenOptions.onClose", @@ -3265,7 +3348,7 @@ "label": "buttonColor", "description": [], "signature": [ - "\"text\" | \"primary\" | \"success\" | \"warning\" | \"danger\" | \"accent\" | \"secondary\" | \"ghost\" | undefined" + "\"text\" | \"primary\" | \"success\" | \"warning\" | \"danger\" | \"accent\" | \"ghost\" | undefined" ], "path": "src/core/public/overlays/modal/modal_service.tsx", "deprecated": false @@ -5913,6 +5996,76 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "core", + "id": "def-public.ThemeServiceSetup", + "type": "Interface", + "tags": [], + "label": "ThemeServiceSetup", + "description": [], + "path": "src/core/public/theme/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-public.ThemeServiceSetup.theme$", + "type": "Object", + "tags": [], + "label": "theme$", + "description": [], + "signature": [ + "Observable", + "<", + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.CoreTheme", + "text": "CoreTheme" + }, + ">" + ], + "path": "src/core/public/theme/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "core", + "id": "def-public.ThemeServiceStart", + "type": "Interface", + "tags": [], + "label": "ThemeServiceStart", + "description": [], + "path": "src/core/public/theme/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-public.ThemeServiceStart.theme$", + "type": "Object", + "tags": [], + "label": "theme$", + "description": [], + "signature": [ + "Observable", + "<", + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.CoreTheme", + "text": "CoreTheme" + }, + ">" + ], + "path": "src/core/public/theme/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "core", "id": "def-public.ToastOptions", @@ -6104,7 +6257,7 @@ "defines a type of UI element {@link UiSettingsType}" ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined" ], "path": "src/core/types/ui_settings.ts", "deprecated": false @@ -6328,25 +6481,25 @@ "\nMethods for adding and removing global toast messages. See {@link ToastsApi}." ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -6354,7 +6507,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -6626,7 +6779,7 @@ "\nA sub-set of {@link UiSettingsParams} exposed to the client-side." ], "signature": [ - "{ type?: \"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined; description?: string | undefined; name?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", + "{ name?: string | undefined; type?: \"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined; description?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", "DeprecationSettings", " | undefined; metric?: { type: ", { @@ -6776,7 +6929,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"onChange\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -6833,7 +6986,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"onChange\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -6865,25 +7018,25 @@ "\n{@link IToasts}" ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -6891,7 +7044,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -7027,25 +7180,25 @@ "\n{@link IToasts}" ], "signature": [ - "{ get$: () => ", - "Observable", - "<", + "{ add: (toastOrTitle: ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.Toast", - "text": "Toast" + "section": "def-public.ToastInput", + "text": "ToastInput" }, - "[]>; add: (toastOrTitle: ", + ") => ", { "pluginId": "core", "scope": "public", "docId": "kibCorePluginApi", - "section": "def-public.ToastInput", - "text": "ToastInput" + "section": "def-public.Toast", + "text": "Toast" }, - ") => ", + "; get$: () => ", + "Observable", + "<", { "pluginId": "core", "scope": "public", @@ -7053,7 +7206,7 @@ "section": "def-public.Toast", "text": "Toast" }, - "; remove: (toastOrId: string | ", + "[]>; remove: (toastOrId: string | ", { "pluginId": "core", "scope": "public", @@ -7189,7 +7342,7 @@ "\nUI element type to represent the settings." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\"" ], "path": "src/core/types/ui_settings.ts", "deprecated": false, @@ -7645,7 +7798,7 @@ "tags": [], "label": "collect", "description": [ - "\nCollect gathers event loop delays metrics from nodejs perf_hooks.monitorEventLoopDelay\nthe histogram calculations start from the last time `reset` was called or this\nEventLoopDelaysMonitor instance was created." + "\nCollect gathers event loop delays metrics from nodejs perf_hooks.monitorEventLoopDelay\nthe histogram calculations start from the last time `reset` was called or this\nEventLoopDelaysMonitor instance was created.\n\nReturns metrics in milliseconds." ], "signature": [ "() => ", @@ -11761,7 +11914,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -12813,7 +12966,7 @@ "tags": [], "label": "IntervalHistogram", "description": [ - "\nan IntervalHistogram object that samples and reports the event loop delay over time.\nThe delays will be reported in nanoseconds.\n" + "\nan IntervalHistogram object that samples and reports the event loop delay over time.\nThe delays will be reported in milliseconds.\n" ], "path": "src/core/server/metrics/types.ts", "deprecated": false, @@ -12956,7 +13109,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -12979,7 +13132,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -13017,7 +13170,7 @@ "signature": [ "() => Readonly, \"type\" | \"description\" | \"name\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\">>>" + ", \"name\" | \"type\" | \"description\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\">>>" ], "path": "src/core/server/ui_settings/types.ts", "deprecated": false, @@ -14928,7 +15081,7 @@ "signature": [ "{ legacy: { globalConfig$: ", "Observable", - " moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + " moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", { "pluginId": "@kbn/config-schema", "scope": "server", @@ -14952,7 +15105,7 @@ "section": "def-server.ByteSizeValue", "text": "ByteSizeValue" }, - ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: \"b\" | \"kb\" | \"mb\" | \"gb\" | undefined) => string; }>; }>; }>>; get: () => Readonly<{ elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + ") => boolean; getValueInBytes: () => number; toString: (returnUnit?: \"b\" | \"kb\" | \"mb\" | \"gb\" | undefined) => string; }>; }>; }>>; get: () => Readonly<{ elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; path: Readonly<{ readonly data: string; }>; savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", { "pluginId": "@kbn/config-schema", "scope": "server", @@ -16538,7 +16691,7 @@ "defines a type of UI element {@link UiSettingsType}" ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined" ], "path": "src/core/types/ui_settings.ts", "deprecated": false @@ -17291,7 +17444,7 @@ "label": "EcsEventCategory", "description": [], "signature": [ - "\"network\" | \"web\" | \"database\" | \"package\" | \"host\" | \"session\" | \"file\" | \"registry\" | \"process\" | \"authentication\" | \"configuration\" | \"driver\" | \"iam\" | \"intrusion_detection\" | \"malware\"" + "\"database\" | \"package\" | \"host\" | \"session\" | \"file\" | \"registry\" | \"network\" | \"web\" | \"process\" | \"authentication\" | \"configuration\" | \"driver\" | \"iam\" | \"intrusion_detection\" | \"malware\"" ], "path": "node_modules/@kbn/logging/target_types/ecs/event.d.ts", "deprecated": false, @@ -17351,7 +17504,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -18496,7 +18649,7 @@ "\nA sub-set of {@link UiSettingsParams} exposed to the client-side." ], "signature": [ - "{ type?: \"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined; description?: string | undefined; name?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", + "{ name?: string | undefined; type?: \"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\" | undefined; description?: string | undefined; options?: string[] | undefined; order?: number | undefined; value?: unknown; category?: string[] | undefined; optionLabels?: Record | undefined; requiresPageReload?: boolean | undefined; readonly?: boolean | undefined; sensitive?: boolean | undefined; deprecation?: ", "DeprecationSettings", " | undefined; metric?: { type: ", { @@ -18604,7 +18757,7 @@ "label": "SharedGlobalConfig", "description": [], "signature": [ - "{ readonly elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"year\" | \"years\" | \"y\" | \"month\" | \"months\" | \"M\" | \"week\" | \"weeks\" | \"w\" | \"day\" | \"days\" | \"d\" | \"hour\" | \"hours\" | \"h\" | \"minute\" | \"minutes\" | \"m\" | \"second\" | \"seconds\" | \"s\" | \"millisecond\" | \"milliseconds\" | \"ms\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; readonly path: Readonly<{ readonly data: string; }>; readonly savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", + "{ readonly elasticsearch: Readonly<{ readonly requestTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly shardTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; readonly pingTimeout: Readonly<{ clone: () => moment.Duration; humanize: { (argWithSuffix?: boolean | undefined, argThresholds?: moment.argThresholdOpts | undefined): string; (argThresholds?: moment.argThresholdOpts | undefined): string; }; abs: () => moment.Duration; as: (units: moment.unitOfTime.Base) => number; get: (units: moment.unitOfTime.Base) => number; milliseconds: () => number; asMilliseconds: () => number; seconds: () => number; asSeconds: () => number; minutes: () => number; asMinutes: () => number; hours: () => number; asHours: () => number; days: () => number; asDays: () => number; weeks: () => number; asWeeks: () => number; months: () => number; asMonths: () => number; years: () => number; asYears: () => number; add: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; subtract: (inp?: moment.DurationInputArg1, unit?: \"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\" | \"year\" | \"years\" | \"month\" | \"months\" | \"week\" | \"weeks\" | \"day\" | \"days\" | \"hour\" | \"hours\" | \"minute\" | \"minutes\" | \"second\" | \"seconds\" | \"millisecond\" | \"milliseconds\" | \"quarter\" | \"quarters\" | \"Q\" | undefined) => moment.Duration; locale: { (): string; (locale: moment.LocaleSpecifier): moment.Duration; }; localeData: () => moment.Locale; toISOString: () => string; toJSON: () => string; isValid: () => boolean; lang: { (locale: moment.LocaleSpecifier): moment.Moment; (): moment.Locale; }; toIsoString: () => string; }>; }>; readonly path: Readonly<{ readonly data: string; }>; readonly savedObjects: Readonly<{ readonly maxImportPayloadBytes: Readonly<{ isGreaterThan: (other: ", { "pluginId": "@kbn/config-schema", "scope": "server", @@ -18670,7 +18823,7 @@ "\nUI element type to represent the settings." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"json\" | \"image\" | \"markdown\" | \"select\" | \"array\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"json\" | \"color\" | \"image\" | \"markdown\" | \"select\" | \"array\"" ], "path": "src/core/types/ui_settings.ts", "deprecated": false, diff --git a/api_docs/core.mdx b/api_docs/core.mdx index 4f2f4806d4a1e..4a7d32ebae214 100644 --- a/api_docs/core.mdx +++ b/api_docs/core.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/core_application.json b/api_docs/core_application.json index 52f50c364fdba..312205b6d0589 100644 --- a/api_docs/core_application.json +++ b/api_docs/core_application.json @@ -1611,6 +1611,30 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "core", + "id": "def-public.AppMountParameters.theme$", + "type": "Object", + "tags": [], + "label": "theme$", + "description": [ + "\nAn observable emitting {@link CoreTheme | Core's theme}.\nShould be used when mounting the application to include theme information.\n" + ], + "signature": [ + "Observable", + "<", + { + "pluginId": "core", + "scope": "public", + "docId": "kibCorePluginApi", + "section": "def-public.CoreTheme", + "text": "CoreTheme" + }, + ">" + ], + "path": "src/core/public/application/types.ts", + "deprecated": false } ], "initialIsOpen": false @@ -2120,23 +2144,23 @@ "\nDefines the list of fields that can be updated via an {@link AppUpdater}." ], "signature": [ - "{ status?: ", + "{ deepLinks?: ", { "pluginId": "core", "scope": "public", "docId": "kibCoreApplicationPluginApi", - "section": "def-public.AppStatus", - "text": "AppStatus" + "section": "def-public.AppDeepLink", + "text": "AppDeepLink" }, - " | undefined; deepLinks?: ", + "[] | undefined; searchable?: boolean | undefined; status?: ", { "pluginId": "core", "scope": "public", "docId": "kibCoreApplicationPluginApi", - "section": "def-public.AppDeepLink", - "text": "AppDeepLink" + "section": "def-public.AppStatus", + "text": "AppStatus" }, - "[] | undefined; searchable?: boolean | undefined; navLinkStatus?: ", + " | undefined; navLinkStatus?: ", { "pluginId": "core", "scope": "public", @@ -2176,7 +2200,7 @@ "section": "def-public.App", "text": "App" }, - ", \"status\" | \"deepLinks\" | \"searchable\" | \"navLinkStatus\" | \"defaultPath\" | \"tooltip\">> | undefined" + ", \"deepLinks\" | \"searchable\" | \"status\" | \"navLinkStatus\" | \"defaultPath\" | \"tooltip\">> | undefined" ], "path": "src/core/public/application/types.ts", "deprecated": false, @@ -2223,7 +2247,7 @@ "section": "def-public.AppDeepLink", "text": "AppDeepLink" }, - ", \"id\" | \"title\" | \"order\" | \"path\" | \"tooltip\" | \"euiIconType\" | \"icon\"> & { deepLinks: ", + ", \"title\" | \"id\" | \"order\" | \"path\" | \"tooltip\" | \"euiIconType\" | \"icon\"> & { deepLinks: ", { "pluginId": "core", "scope": "public", @@ -2263,7 +2287,7 @@ "section": "def-public.App", "text": "App" }, - ", \"status\" | \"id\" | \"title\" | \"order\" | \"capabilities\" | \"category\" | \"navLinkStatus\" | \"defaultPath\" | \"chromeless\" | \"appRoute\" | \"exactRoute\" | \"tooltip\" | \"euiIconType\" | \"icon\"> & { status: ", + ", \"title\" | \"id\" | \"order\" | \"capabilities\" | \"category\" | \"status\" | \"navLinkStatus\" | \"defaultPath\" | \"chromeless\" | \"appRoute\" | \"exactRoute\" | \"tooltip\" | \"euiIconType\" | \"icon\"> & { status: ", { "pluginId": "core", "scope": "public", diff --git a/api_docs/core_application.mdx b/api_docs/core_application.mdx index 3f0a60c42fe9f..b1d9899d5e445 100644 --- a/api_docs/core_application.mdx +++ b/api_docs/core_application.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/core_chrome.mdx b/api_docs/core_chrome.mdx index b88dcb91dd555..60c48cfe97a7d 100644 --- a/api_docs/core_chrome.mdx +++ b/api_docs/core_chrome.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/core_http.json b/api_docs/core_http.json index b73187fe291b6..ac4ba937d9eaa 100644 --- a/api_docs/core_http.json +++ b/api_docs/core_http.json @@ -516,7 +516,7 @@ "section": "def-public.HttpResponse", "text": "HttpResponse" }, - ", controller: ", + ", controller: ", { "pluginId": "core", "scope": "public", @@ -532,7 +532,7 @@ "section": "def-public.IHttpResponseInterceptorOverrides", "text": "IHttpResponseInterceptorOverrides" }, - " | Promise<", + " | Promise<", { "pluginId": "core", "scope": "public", @@ -540,7 +540,7 @@ "section": "def-public.IHttpResponseInterceptorOverrides", "text": "IHttpResponseInterceptorOverrides" }, - ">) | undefined" + ">) | undefined" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -560,7 +560,7 @@ "section": "def-public.HttpResponse", "text": "HttpResponse" }, - "" + "" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -623,7 +623,7 @@ "section": "def-public.IHttpResponseInterceptorOverrides", "text": "IHttpResponseInterceptorOverrides" }, - " | Promise<", + " | Promise<", { "pluginId": "core", "scope": "public", @@ -631,7 +631,7 @@ "section": "def-public.IHttpResponseInterceptorOverrides", "text": "IHttpResponseInterceptorOverrides" }, - ">) | undefined" + ">) | undefined" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -762,7 +762,7 @@ "section": "def-public.HttpResponse", "text": "HttpResponse" }, - "" + "" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -795,7 +795,8 @@ "docId": "kibCoreHttpPluginApi", "section": "def-public.IHttpFetchError", "text": "IHttpFetchError" - } + }, + "" ], "path": "src/core/public/http/types.ts", "deprecated": false @@ -1733,7 +1734,7 @@ "section": "def-public.IHttpFetchError", "text": "IHttpFetchError" }, - " extends Error" + " extends Error" ], "path": "src/core/public/http/types.ts", "deprecated": false, @@ -1818,12 +1819,12 @@ { "parentPluginId": "core", "id": "def-public.IHttpFetchError.body", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "body", "description": [], "signature": [ - "any" + "TResponseBody | undefined" ], "path": "src/core/public/http/types.ts", "deprecated": false @@ -1929,6 +1930,52 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "core", + "id": "def-public.ResponseErrorBody", + "type": "Interface", + "tags": [], + "label": "ResponseErrorBody", + "description": [], + "path": "src/core/public/http/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "core", + "id": "def-public.ResponseErrorBody.message", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "path": "src/core/public/http/types.ts", + "deprecated": false + }, + { + "parentPluginId": "core", + "id": "def-public.ResponseErrorBody.statusCode", + "type": "number", + "tags": [], + "label": "statusCode", + "description": [], + "path": "src/core/public/http/types.ts", + "deprecated": false + }, + { + "parentPluginId": "core", + "id": "def-public.ResponseErrorBody.attributes", + "type": "Object", + "tags": [], + "label": "attributes", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "src/core/public/http/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -3361,7 +3408,7 @@ "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." ], "signature": [ - "{ remove: (path: string) => string; get: (request: ", + "{ get: (request: ", { "pluginId": "core", "scope": "server", @@ -3377,7 +3424,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - ", requestSpecificBasePath: string) => void; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" + ", requestSpecificBasePath: string) => void; remove: (path: string) => string; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" ], "path": "src/core/server/http/types.ts", "deprecated": false @@ -3716,7 +3763,7 @@ "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." ], "signature": [ - "{ remove: (path: string) => string; get: (request: ", + "{ get: (request: ", { "pluginId": "core", "scope": "server", @@ -3732,7 +3779,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - ", requestSpecificBasePath: string) => void; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" + ", requestSpecificBasePath: string) => void; remove: (path: string) => string; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" ], "path": "src/core/server/http/types.ts", "deprecated": false @@ -3946,7 +3993,7 @@ "\nAccess or manipulate the Kibana base path\nSee {@link IBasePath}." ], "signature": [ - "{ remove: (path: string) => string; get: (request: ", + "{ get: (request: ", { "pluginId": "core", "scope": "server", @@ -3962,7 +4009,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - ", requestSpecificBasePath: string) => void; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" + ", requestSpecificBasePath: string) => void; remove: (path: string) => string; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" ], "path": "src/core/server/http/types.ts", "deprecated": false @@ -9286,7 +9333,7 @@ "\nAccess or manipulate the Kibana base path\n\n{@link BasePath}" ], "signature": [ - "{ remove: (path: string) => string; get: (request: ", + "{ get: (request: ", { "pluginId": "core", "scope": "server", @@ -9302,7 +9349,7 @@ "section": "def-server.KibanaRequest", "text": "KibanaRequest" }, - ", requestSpecificBasePath: string) => void; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" + ", requestSpecificBasePath: string) => void; remove: (path: string) => string; readonly serverBasePath: string; readonly publicBaseUrl?: string | undefined; }" ], "path": "src/core/server/http/base_path_service.ts", "deprecated": false, diff --git a/api_docs/core_http.mdx b/api_docs/core_http.mdx index 7d982a7068dac..a7b9c1aeaa2d8 100644 --- a/api_docs/core_http.mdx +++ b/api_docs/core_http.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/core_saved_objects.json b/api_docs/core_saved_objects.json index bd9b903ee0b5a..47e18a54bf5d0 100644 --- a/api_docs/core_saved_objects.json +++ b/api_docs/core_saved_objects.json @@ -15482,7 +15482,7 @@ }, " extends Pick<", "SavedObject", - ", \"type\" | \"id\" | \"version\" | \"namespaces\" | \"migrationVersion\" | \"coreMigrationVersion\" | \"error\" | \"updated_at\" | \"originId\">" + ", \"version\" | \"type\" | \"id\" | \"namespaces\" | \"migrationVersion\" | \"coreMigrationVersion\" | \"error\" | \"updated_at\" | \"originId\">" ], "path": "src/core/server/saved_objects/service/saved_objects_client.ts", "deprecated": false, diff --git a/api_docs/core_saved_objects.mdx b/api_docs/core_saved_objects.mdx index 10df368c8caed..f23c59ee296b9 100644 --- a/api_docs/core_saved_objects.mdx +++ b/api_docs/core_saved_objects.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2304 | 27 | 1022 | 29 | +| 2318 | 26 | 1031 | 29 | ## Client diff --git a/api_docs/custom_integrations.json b/api_docs/custom_integrations.json index 5436d08651300..085e47662ffe0 100644 --- a/api_docs/custom_integrations.json +++ b/api_docs/custom_integrations.json @@ -387,7 +387,7 @@ "label": "categories", "description": [], "signature": [ - "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\")[]" + "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false @@ -434,7 +434,7 @@ "\nA category applicable to an Integration." ], "signature": [ - "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\"" + "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -646,7 +646,7 @@ "label": "categories", "description": [], "signature": [ - "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\")[]" + "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false @@ -748,7 +748,7 @@ "label": "id", "description": [], "signature": [ - "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\"" + "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false @@ -769,7 +769,7 @@ "\nThe list of all available categories." ], "signature": [ - "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\")[]" + "(\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\")[]" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -785,7 +785,7 @@ "\nA category applicable to an Integration." ], "signature": [ - "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communication\" | \"customer_support\" | \"document_storage\" | \"enterprise_management\" | \"knowledge_platform\" | \"language_client\" | \"project_management\" | \"software_development\" | \"upload_file\" | \"website_search\"" + "\"custom\" | \"sample_data\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | \"communications\" | \"file_storage\" | \"language_client\" | \"upload_file\" | \"website_search\" | \"geo\"" ], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false, @@ -1129,10 +1129,10 @@ }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.communication", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.communications", "type": "string", "tags": [], - "label": "communication", + "label": "communications", "description": [ "// Kibana added" ], @@ -1141,40 +1141,10 @@ }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.customer_support", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.file_storage", "type": "string", "tags": [], - "label": "customer_support", - "description": [], - "path": "src/plugins/custom_integrations/common/index.ts", - "deprecated": false - }, - { - "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.document_storage", - "type": "string", - "tags": [], - "label": "document_storage", - "description": [], - "path": "src/plugins/custom_integrations/common/index.ts", - "deprecated": false - }, - { - "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.enterprise_management", - "type": "string", - "tags": [], - "label": "enterprise_management", - "description": [], - "path": "src/plugins/custom_integrations/common/index.ts", - "deprecated": false - }, - { - "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.knowledge_platform", - "type": "string", - "tags": [], - "label": "knowledge_platform", + "label": "file_storage", "description": [], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false @@ -1191,40 +1161,30 @@ }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.project_management", - "type": "string", - "tags": [], - "label": "project_management", - "description": [], - "path": "src/plugins/custom_integrations/common/index.ts", - "deprecated": false - }, - { - "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.software_development", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.upload_file", "type": "string", "tags": [], - "label": "software_development", + "label": "upload_file", "description": [], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.upload_file", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.website_search", "type": "string", "tags": [], - "label": "upload_file", + "label": "website_search", "description": [], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false }, { "parentPluginId": "customIntegrations", - "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.website_search", + "id": "def-common.INTEGRATION_CATEGORY_DISPLAY.geo", "type": "string", "tags": [], - "label": "website_search", + "label": "geo", "description": [], "path": "src/plugins/custom_integrations/common/index.ts", "deprecated": false diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index bf6e0a0722698..2062d5b87232d 100644 --- a/api_docs/custom_integrations.mdx +++ b/api_docs/custom_integrations.mdx @@ -18,7 +18,7 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 100 | 1 | 84 | 1 | +| 96 | 1 | 80 | 1 | ## Client diff --git a/api_docs/dashboard.json b/api_docs/dashboard.json index 9383105dd7f9d..aa91ffaf0faeb 100644 --- a/api_docs/dashboard.json +++ b/api_docs/dashboard.json @@ -1630,15 +1630,7 @@ "label": "searchSource", "description": [], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -1654,7 +1646,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -1686,7 +1678,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -1694,7 +1686,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -1702,7 +1694,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -1726,7 +1726,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -2316,7 +2316,7 @@ "section": "def-common.RawSavedDashboardPanel730ToLatest", "text": "RawSavedDashboardPanel730ToLatest" }, - ", \"type\" | \"title\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\" | \"panelRefName\"> & { readonly id?: string | undefined; readonly type: string; }" + ", \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\" | \"type\" | \"panelRefName\"> & { readonly id?: string | undefined; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -2722,7 +2722,7 @@ "RawSavedDashboardPanel620", " | Pick<", "RawSavedDashboardPanel620", - ", \"title\" | \"panelIndex\" | \"name\" | \"gridData\" | \"version\" | \"embeddableConfig\"> | ", + ", \"panelIndex\" | \"name\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> | ", { "pluginId": "dashboard", "scope": "common", @@ -2791,7 +2791,7 @@ "RawSavedDashboardPanel620", " | Pick<", "RawSavedDashboardPanel620", - ", \"title\" | \"panelIndex\" | \"name\" | \"gridData\" | \"version\" | \"embeddableConfig\"> | ", + ", \"panelIndex\" | \"name\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> | ", { "pluginId": "dashboard", "scope": "common", @@ -3024,7 +3024,7 @@ "signature": [ "Pick, \"title\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly type?: string | undefined; readonly name?: string | undefined; panelIndex: string; panelRefName?: string | undefined; }" + ", \"panelIndex\" | \"name\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\">, \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly type?: string | undefined; readonly name?: string | undefined; panelIndex: string; panelRefName?: string | undefined; }" ], "path": "src/plugins/dashboard/common/bwc/types.ts", "deprecated": false, @@ -3040,7 +3040,7 @@ "signature": [ "Pick<", "RawSavedDashboardPanel610", - ", \"columns\" | \"title\" | \"sort\" | \"panelIndex\" | \"gridData\" | \"version\"> & { readonly id: string; readonly type: string; }" + ", \"columns\" | \"sort\" | \"panelIndex\" | \"title\" | \"gridData\" | \"version\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3056,7 +3056,7 @@ "signature": [ "Pick<", "RawSavedDashboardPanel620", - ", \"columns\" | \"title\" | \"sort\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" + ", \"columns\" | \"sort\" | \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3072,7 +3072,7 @@ "signature": [ "Pick<", "RawSavedDashboardPanel620", - ", \"columns\" | \"title\" | \"sort\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" + ", \"columns\" | \"sort\" | \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3088,7 +3088,7 @@ "signature": [ "Pick, \"title\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" + ", \"panelIndex\" | \"name\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\">, \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3110,7 +3110,7 @@ "section": "def-common.RawSavedDashboardPanel730ToLatest", "text": "RawSavedDashboardPanel730ToLatest" }, - ", \"type\" | \"title\" | \"panelIndex\" | \"gridData\" | \"version\" | \"embeddableConfig\" | \"panelRefName\"> & { readonly id?: string | undefined; readonly type: string; }" + ", \"panelIndex\" | \"title\" | \"gridData\" | \"version\" | \"embeddableConfig\" | \"type\" | \"panelRefName\"> & { readonly id?: string | undefined; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, @@ -3126,7 +3126,7 @@ "signature": [ "Pick<", "RawSavedDashboardPanelTo60", - ", \"columns\" | \"title\" | \"sort\" | \"size_x\" | \"size_y\" | \"row\" | \"col\" | \"panelIndex\"> & { readonly id: string; readonly type: string; }" + ", \"columns\" | \"sort\" | \"size_x\" | \"size_y\" | \"row\" | \"col\" | \"panelIndex\" | \"title\"> & { readonly id: string; readonly type: string; }" ], "path": "src/plugins/dashboard/common/types.ts", "deprecated": false, diff --git a/api_docs/data.json b/api_docs/data.json index 244d61d1f2ad2..3fc551003c1d8 100644 --- a/api_docs/data.json +++ b/api_docs/data.json @@ -493,7 +493,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", { "pluginId": "data", "scope": "common", @@ -522,7 +522,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/aggs/agg_config.ts", "deprecated": false, @@ -2234,7 +2234,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", { "pluginId": "data", "scope": "common", @@ -2263,7 +2263,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/aggs/agg_configs.ts", "deprecated": false, @@ -2798,279 +2798,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -3228,18 +3232,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -3278,19 +3270,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -3316,86 +3308,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -3492,6 +3404,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -3524,205 +3456,177 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -3742,15 +3646,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "dataViews", @@ -3782,11 +3686,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -3794,19 +3698,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -3858,183 +3762,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -4358,15 +4262,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -4468,30 +4372,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -4704,18 +4584,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -4760,6 +4628,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -5108,6 +4988,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -5152,30 +5068,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -5224,6 +5116,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -5272,34 +5180,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" @@ -5322,35 +5202,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -5374,19 +5262,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "dataViews", @@ -5443,59 +5323,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -5543,11 +5423,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -5555,11 +5435,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -5611,107 +5491,107 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "dataViews", @@ -5755,231 +5635,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -6239,19 +6119,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -6285,14 +6165,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -6455,27 +6327,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -6827,31 +6699,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "dataVisualizer", @@ -7075,36 +6947,36 @@ "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -7280,32 +7152,34 @@ }, { "parentPluginId": "data", - "id": "def-public.SearchSource.setPreferredSearchStrategyId", + "id": "def-public.SearchSource.setOverwriteDataViewType", "type": "Function", "tags": [], - "label": "setPreferredSearchStrategyId", + "label": "setOverwriteDataViewType", "description": [ - "**\nPUBLIC API\n\ninternal, dont use" + "**\nPUBLIC API\n\nUsed to make the search source overwrite the actual data view type for the\nspecific requests done. This should only be needed very rarely, since it means\ne.g. we'd be treating a rollup index pattern as a regular one. Be very sure\nyou understand the consequences of using this method before using it.\n" ], "signature": [ - "(searchStrategyId: string) => void" + "(overwriteType: string | false | undefined) => void" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-public.SearchSource.setPreferredSearchStrategyId.$1", - "type": "string", + "id": "def-public.SearchSource.setOverwriteDataViewType.$1", + "type": "CompoundType", "tags": [], - "label": "searchStrategyId", - "description": [], + "label": "overwriteType", + "description": [ + "If `false` is passed in it will disable the overwrite, otherwise\nthe passed in value will be used as the data view type for this search source." + ], "signature": [ - "string" + "string | false | undefined" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -7320,7 +7194,7 @@ "\nsets value to a single search source field" ], "signature": [ - "(field: K, value: ", + "(field: K, value: ", { "pluginId": "data", "scope": "common", @@ -7385,7 +7259,7 @@ "\nremove field" ], "signature": [ - "(field: K) => this" + "(field: K) => this" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, @@ -7510,7 +7384,7 @@ "\nGets a single field from the fields" ], "signature": [ - "(field: K, recurse?: boolean) => ", + "(field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -7564,7 +7438,7 @@ "\nGet the field from our own fields, don't traverse up the chain" ], "signature": [ - "(field: K) => ", + "(field: K) => ", { "pluginId": "data", "scope": "common", @@ -7618,11 +7492,11 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" } ], "children": [], @@ -7711,7 +7585,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -7742,7 +7616,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, @@ -7890,11 +7764,11 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/fetch_hits_in_interval.ts" + "path": "src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts" }, { "plugin": "maps", @@ -9124,7 +8998,7 @@ "section": "def-common.Query", "text": "Query" }, - "> | undefined; }, never>, \"id\" | \"filter\" | \"enabled\" | \"schema\" | \"geo_bounding_box\" | \"json\" | \"customLabel\" | \"timeShift\">, ", + "> | undefined; }, never>, \"filter\" | \"id\" | \"enabled\" | \"schema\" | \"geo_bounding_box\" | \"json\" | \"customLabel\" | \"timeShift\">, ", "AggExpressionType", ", ", { @@ -9212,7 +9086,7 @@ "section": "def-common.QueryFilter", "text": "QueryFilter" }, - ">[] | undefined; }, never>, \"id\" | \"filters\" | \"enabled\" | \"schema\" | \"json\" | \"timeShift\">, ", + ">[] | undefined; }, never>, \"filters\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"timeShift\">, ", "AggExpressionType", ", ", { @@ -9796,7 +9670,7 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".HISTOGRAM>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\"> & Pick<{ extended_bounds?: ", + ".HISTOGRAM>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"interval\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\"> & Pick<{ extended_bounds?: ", { "pluginId": "expressions", "scope": "common", @@ -9828,7 +9702,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, never>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\" | \"extended_bounds\">, ", + "> | undefined; }, never>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"interval\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\" | \"extended_bounds\">, ", "AggExpressionType", ", ", { @@ -9884,7 +9758,7 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".DATE_HISTOGRAM>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"used_interval\" | \"min_doc_count\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\"> & Pick<{ timeRange?: ", + ".DATE_HISTOGRAM>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"interval\" | \"used_interval\" | \"min_doc_count\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\"> & Pick<{ timeRange?: ", { "pluginId": "expressions", "scope": "common", @@ -9916,7 +9790,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, \"timeRange\" | \"extended_bounds\"> & Pick<{ timeRange?: ", + "> | undefined; }, \"extended_bounds\" | \"timeRange\"> & Pick<{ timeRange?: ", { "pluginId": "expressions", "scope": "common", @@ -9948,7 +9822,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, never>, \"interval\" | \"id\" | \"timeRange\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"used_interval\" | \"min_doc_count\" | \"extended_bounds\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\">, ", + "> | undefined; }, never>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"interval\" | \"used_interval\" | \"min_doc_count\" | \"extended_bounds\" | \"timeRange\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\">, ", "AggExpressionType", ", ", { @@ -10004,11 +9878,11 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".TERMS>, \"id\" | \"size\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\"> & Pick<{ orderAgg?: ", + ".TERMS>, \"size\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\"> & Pick<{ orderAgg?: ", "AggExpressionType", " | undefined; }, \"orderAgg\"> & Pick<{ orderAgg?: ", "AggExpressionType", - " | undefined; }, never>, \"id\" | \"size\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"orderAgg\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\">, ", + " | undefined; }, never>, \"size\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"orderAgg\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\">, ", "AggExpressionType", ", ", { @@ -12817,34 +12691,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.ts" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx" @@ -12877,218 +12723,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" @@ -13097,42 +12731,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" @@ -13141,46 +12739,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx" @@ -13213,54 +12771,6 @@ "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx" @@ -13320,14 +12830,6 @@ { "plugin": "transform", "path": "x-pack/plugins/transform/server/routes/api/transforms.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" } ], "children": [ @@ -13690,7 +13192,7 @@ "tags": [], "label": "warning", "description": [ - "\nOptional warnings that should be surfaced to the end user" + "\nOptional warnings returned from Elasticsearch (for example, deprecation warnings)" ], "signature": [ "string | undefined" @@ -13915,7 +13417,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">>" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">>" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -13962,7 +13464,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -14663,7 +14165,7 @@ "label": "AggGroupName", "description": [], "signature": [ - "\"none\" | \"buckets\" | \"metrics\"" + "\"buckets\" | \"metrics\" | \"none\"" ], "path": "src/plugins/data/common/search/aggs/agg_groups.ts", "deprecated": false, @@ -14940,7 +14442,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -15512,71 +15014,71 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "visualizations", @@ -15770,66 +15272,6 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/reducers/map/types.ts" @@ -16006,6 +15448,14 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/routes/map_page/url_state/global_sync.ts" @@ -16114,474 +15564,6 @@ "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" @@ -16614,22 +15596,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/selectors/map_selectors.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, { "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" @@ -16726,34 +15692,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/url_state/app_state_manager.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/map_container/map_container.d.ts" @@ -16778,14 +15716,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/toolbar_overlay/toolbar_overlay.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_control.d.ts" @@ -16802,54 +15732,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_popover.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.d.ts" @@ -17036,47 +15918,39 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "maps", @@ -17202,38 +16076,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" @@ -17250,14 +16092,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" @@ -17278,22 +16112,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, { "plugin": "visualize", "path": "src/plugins/visualize/common/locator.ts" @@ -17309,74 +16127,6 @@ { "plugin": "visualize", "path": "src/plugins/visualize/target/types/common/locator.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" } ], "initialIsOpen": false @@ -17509,16 +16259,7 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [ - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - } - ], + "references": [], "initialIsOpen": false }, { @@ -17601,11 +16342,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "transform", @@ -17629,47 +16370,47 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" } ], "initialIsOpen": false @@ -17845,7 +16586,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -17994,27 +16735,27 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "observability", @@ -18026,19 +16767,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "dataViews", @@ -18082,19 +16823,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "dashboard", @@ -18537,15 +17278,7 @@ "\nsearch source interface" ], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -18561,7 +17294,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -18593,7 +17326,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -18601,7 +17334,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -18609,7 +17342,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -18633,7 +17374,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -18753,14 +17494,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" @@ -18773,130 +17506,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" @@ -18937,14 +17546,6 @@ "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" @@ -18994,13 +17595,7 @@ "description": [], "signature": [ "{ value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", @@ -19035,7 +17630,16 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [], + "references": [ + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + } + ], "initialIsOpen": false }, { @@ -19332,79 +17936,79 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_context_url.tsx" + "path": "src/plugins/discover/public/utils/get_context_url.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_context_url.tsx" + "path": "src/plugins/discover/public/utils/get_context_url.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", @@ -19526,6 +18130,10 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts" @@ -19622,70 +18230,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/locators.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, { "plugin": "lens", "path": "x-pack/plugins/lens/public/mocks/data_plugin_mock.ts" @@ -19694,38 +18238,6 @@ "plugin": "lens", "path": "x-pack/plugins/lens/public/mocks/data_plugin_mock.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts" - }, { "plugin": "dashboard", "path": "src/plugins/dashboard/public/locator.test.ts" @@ -20214,7 +18726,7 @@ "label": "buildQueryFilter", "description": [], "signature": [ - "(query: (Record & { query_string?: { query: string; } | undefined; }) | undefined, index: string, alias: string) => ", + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias: string) => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -20235,7 +18747,7 @@ "label": "query", "description": [], "signature": [ - "(Record & { query_string?: { query: string; } | undefined; }) | undefined" + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/query_string_filter.d.ts", "deprecated": false @@ -22309,190 +20821,6 @@ "plugin": "lens", "path": "x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/network.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/index.tsx" @@ -23824,13 +22152,7 @@ "description": [], "signature": [ "(interval: string) => { value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/public/index.ts", @@ -24104,7 +22426,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined) => ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined) => ", { "pluginId": "inspector", "scope": "common", @@ -24147,7 +22469,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/search_source/inspect/inspector_stats.ts", "deprecated": false @@ -24289,6 +22611,56 @@ "deprecated": false } ] + }, + { + "parentPluginId": "data", + "id": "def-public.search.checkColumnForPrecisionError", + "type": "Function", + "tags": [], + "label": "checkColumnForPrecisionError", + "description": [], + "signature": [ + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => ", + { + "pluginId": "@kbn/utility-types", + "scope": "server", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-server.Serializable", + "text": "Serializable" + } + ], + "path": "src/plugins/data/public/index.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "data", + "id": "def-public.search.checkColumnForPrecisionError.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/search/tabify/utils.ts", + "deprecated": false + } + ] } ], "initialIsOpen": false @@ -24527,7 +22899,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24734,7 +23106,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24911,15 +23283,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", @@ -25001,18 +23373,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/datavisualizer/index_based/index_data_visualizer.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/datavisualizer/file_based/file_datavisualizer.tsx" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/public/application/app.tsx" - }, { "plugin": "ml", "path": "x-pack/plugins/ml/public/application/app.tsx" @@ -25073,22 +23433,10 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/plugin.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx" @@ -25137,10 +23485,6 @@ "plugin": "transform", "path": "x-pack/plugins/transform/public/app/sections/transform_management/components/action_edit/use_edit_action.tsx" }, - { - "plugin": "upgradeAssistant", - "path": "x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_deprecation_logs_step/external_links.tsx" - }, { "plugin": "uptime", "path": "x-pack/plugins/uptime/public/contexts/uptime_index_pattern_context.tsx" @@ -25299,7 +23643,7 @@ }, { "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/timeseries_vis_renderer.tsx" + "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" }, { "plugin": "visTypeVega", @@ -25429,7 +23773,7 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/chart/histogram.tsx" + "path": "src/plugins/discover/public/application/main/components/chart/histogram.tsx" }, { "plugin": "dashboard", @@ -25605,7 +23949,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -25613,7 +23965,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -25637,7 +23997,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -27550,279 +25910,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -27980,18 +26344,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -28030,19 +26382,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -28068,86 +26420,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -28244,6 +26516,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -28276,205 +26568,177 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -28494,15 +26758,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "dataViews", @@ -28534,11 +26798,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -28546,19 +26810,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -28610,183 +26874,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -29110,15 +27374,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -29220,30 +27484,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -29456,18 +27696,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -29512,6 +27740,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -29860,6 +28100,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -29904,30 +28180,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -29976,6 +28228,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -30024,34 +28292,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" @@ -30074,35 +28314,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -30126,19 +28374,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "dataViews", @@ -30195,59 +28435,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -30295,11 +28535,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -30307,11 +28547,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -30363,107 +28603,107 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "dataViews", @@ -30507,231 +28747,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -30991,19 +29231,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -31037,14 +29277,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -31207,27 +29439,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -31579,31 +29811,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "dataVisualizer", @@ -32119,36 +30351,36 @@ "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -32324,36 +30556,36 @@ "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -33924,71 +32156,71 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "visualizations", @@ -34182,66 +32414,6 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/reducers/map/types.ts" @@ -34418,6 +32590,14 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/routes/map_page/url_state/global_sync.ts" @@ -34526,474 +32706,6 @@ "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" @@ -35026,22 +32738,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/selectors/map_selectors.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, { "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" @@ -35138,34 +32834,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/url_state/app_state_manager.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/map_container/map_container.d.ts" @@ -35190,14 +32858,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/toolbar_overlay/toolbar_overlay.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_control.d.ts" @@ -35214,54 +32874,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_popover.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.d.ts" @@ -35448,47 +33060,39 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "maps", @@ -35614,38 +33218,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" @@ -35662,14 +33234,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" @@ -35690,22 +33254,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, { "plugin": "visualize", "path": "src/plugins/visualize/common/locator.ts" @@ -35721,74 +33269,6 @@ { "plugin": "visualize", "path": "src/plugins/visualize/target/types/common/locator.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" } ], "initialIsOpen": false @@ -35833,16 +33313,7 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [ - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - } - ], + "references": [], "initialIsOpen": false }, { @@ -35896,11 +33367,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "transform", @@ -35924,47 +33395,47 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" } ], "initialIsOpen": false @@ -36002,14 +33473,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" @@ -36022,130 +33485,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" @@ -36186,14 +33525,6 @@ "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" @@ -36214,13 +33545,7 @@ "description": [], "signature": [ "{ value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", @@ -36275,7 +33600,7 @@ "label": "buildQueryFilter", "description": [], "signature": [ - "(query: (Record & { query_string?: { query: string; } | undefined; }) | undefined, index: string, alias: string) => ", + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias: string) => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -36296,7 +33621,7 @@ "label": "query", "description": [], "signature": [ - "(Record & { query_string?: { query: string; } | undefined; }) | undefined" + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/query_string_filter.d.ts", "deprecated": false @@ -36701,6 +34026,8 @@ "description": [], "signature": [ "string | number | boolean | ", + "SerializableArray", + " | ", { "pluginId": "@kbn/utility-types", "scope": "server", @@ -36708,8 +34035,6 @@ "section": "def-server.SerializableRecord", "text": "SerializableRecord" }, - " | ", - "SerializableArray", " | null | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/build_filters.d.ts", @@ -40204,7 +37529,7 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "dashboard", @@ -40470,7 +37795,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>" + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -41435,279 +38760,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -41865,18 +39194,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -41915,19 +39232,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -41953,86 +39270,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -42129,6 +39366,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -42161,205 +39418,177 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -42379,15 +39608,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "dataViews", @@ -42419,11 +39648,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -42431,19 +39660,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -42495,183 +39724,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -42995,15 +40224,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -43105,30 +40334,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -43341,18 +40546,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -43397,6 +40590,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -43745,6 +40950,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -43789,30 +41030,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -43861,6 +41078,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -43909,34 +41142,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" @@ -43959,35 +41164,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -44011,19 +41224,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "dataViews", @@ -44080,59 +41285,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -44180,11 +41385,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -44192,11 +41397,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -44248,107 +41453,107 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "dataViews", @@ -44392,231 +41597,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -44876,19 +42081,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -44922,14 +42127,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -45092,27 +42289,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -45464,31 +42661,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "dataVisualizer", @@ -45712,36 +42909,36 @@ "path": "src/plugins/data_views/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -46421,6 +43618,8 @@ "description": [], "signature": [ "string | number | boolean | ", + "SerializableArray", + " | ", { "pluginId": "@kbn/utility-types", "scope": "server", @@ -46428,8 +43627,6 @@ "section": "def-server.SerializableRecord", "text": "SerializableRecord" }, - " | ", - "SerializableArray", " | null | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/build_filters.d.ts", @@ -46684,7 +43881,7 @@ "label": "buildQueryFilter", "description": [], "signature": [ - "(query: (Record & { query_string?: { query: string; } | undefined; }) | undefined, index: string, alias: string) => ", + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias: string) => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -46707,7 +43904,7 @@ "label": "query", "description": [], "signature": [ - "(Record & { query_string?: { query: string; } | undefined; }) | undefined" + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" ], "path": "node_modules/@kbn/es-query/target_types/filters/build_filters/query_string_filter.d.ts", "deprecated": false @@ -47906,7 +45103,7 @@ "section": "def-common.IndexPatternLoadExpressionFunctionDefinition", "text": "IndexPatternLoadExpressionFunctionDefinition" }, - ", \"type\" | \"telemetry\" | \"extract\" | \"inject\" | \"migrations\" | \"name\" | \"disabled\" | \"help\" | \"inputTypes\" | \"args\" | \"aliases\" | \"context\">" + ", \"name\" | \"type\" | \"telemetry\" | \"inject\" | \"extract\" | \"migrations\" | \"disabled\" | \"help\" | \"inputTypes\" | \"args\" | \"aliases\" | \"context\">" ], "path": "src/plugins/data_views/common/expressions/load_index_pattern.ts", "deprecated": false, @@ -51496,34 +48693,6 @@ "plugin": "dataViews", "path": "src/plugins/data_views/common/data_views/data_view.ts" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx" @@ -51556,218 +48725,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" @@ -51776,42 +48733,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" @@ -51820,46 +48741,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx" @@ -51892,54 +48773,6 @@ "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx" @@ -51999,14 +48832,6 @@ { "plugin": "transform", "path": "x-pack/plugins/transform/server/routes/api/transforms.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" } ], "children": [ @@ -52762,7 +49587,7 @@ "label": "type", "description": [], "signature": [ - "\"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"date\" | \"geo_point\" | \"ip\" | \"keyword\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false @@ -53756,7 +50581,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -54100,71 +50925,71 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "visualizations", @@ -54358,66 +51183,6 @@ "plugin": "observability", "path": "x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/cells/index.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/store.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/store/t_grid/model.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/body/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/hover_actions/utils.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/reducers/map/types.ts" @@ -54594,6 +51359,14 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/connected_components/map_container/map_container.tsx" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/public/routes/map_page/saved_map/types.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/routes/map_page/url_state/global_sync.ts" @@ -54702,474 +51475,6 @@ "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_context_menu_action.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/types/timeline/store.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx" - }, { "plugin": "urlDrilldown", "path": "x-pack/plugins/drilldowns/url_drilldown/public/lib/variables/context_variables.ts" @@ -55202,22 +51507,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/selectors/map_selectors.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts" - }, { "plugin": "discoverEnhanced", "path": "x-pack/plugins/discover_enhanced/public/actions/explore_data/explore_data_chart_action.test.ts" @@ -55314,34 +51603,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/url_state/app_state_manager.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/map_container/map_container.d.ts" @@ -55366,14 +51627,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/toolbar_overlay/toolbar_overlay.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_control.d.ts" @@ -55390,54 +51643,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/tooltip_control/tooltip_popover.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/connected_components/mb_map/draw_control/draw_filter_control/draw_filter_control.d.ts" @@ -55624,47 +51829,39 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context_state.test.ts" + "path": "src/plugins/discover/public/application/context/services/context_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/types.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "maps", @@ -55790,38 +51987,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" @@ -55838,14 +52003,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" @@ -55866,22 +52023,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/routes/map_page/map_app/map_app.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.d.ts" - }, { "plugin": "visualize", "path": "src/plugins/visualize/common/locator.ts" @@ -55897,74 +52038,6 @@ { "plugin": "visualize", "path": "src/plugins/visualize/target/types/common/locator.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts" } ], "initialIsOpen": false @@ -56046,16 +52119,7 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [ - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/common/types/timeline/columns/index.tsx" - } - ], + "references": [], "initialIsOpen": false }, { @@ -56223,11 +52287,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "transform", @@ -56251,47 +52315,47 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" } ], "initialIsOpen": false @@ -56497,7 +52561,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -56646,27 +52710,27 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "observability", @@ -56678,19 +52742,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "dataViews", @@ -56734,19 +52798,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "dashboard", @@ -57114,14 +53178,6 @@ "deprecated": true, "removeBy": "8.1", "references": [ - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/common/types.ts" - }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" @@ -57134,130 +53190,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/types.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/attachments/index.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/types.ts" @@ -57298,14 +53230,6 @@ "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/target/types/server/authorization/types.d.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/target/types/server/search/session/types.d.ts" @@ -57449,7 +53373,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"onChange\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -57501,7 +53425,16 @@ "path": "src/plugins/data/common/es_query/index.ts", "deprecated": true, "removeBy": "8.1", - "references": [], + "references": [ + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" + } + ], "initialIsOpen": false }, { @@ -57678,7 +53611,7 @@ "label": "RuntimeType", "description": [], "signature": [ - "\"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"date\" | \"geo_point\" | \"ip\" | \"keyword\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, @@ -57904,162 +53837,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/rules_client/rules_client.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/utils.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/services/cases/index.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/attachments/add.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/attachments/add.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/sub_cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/sub_cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/sub_cases/update.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/client/sub_cases/update.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts" @@ -58100,34 +53877,6 @@ "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts" }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, - { - "plugin": "cases", - "path": "x-pack/plugins/cases/server/authorization/utils.test.ts" - }, { "plugin": "dataEnhanced", "path": "x-pack/plugins/data_enhanced/server/search/session/session_service.test.ts" diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 09da06cd90312..e464b55190043 100644 --- a/api_docs/data.mdx +++ b/api_docs/data.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_autocomplete.mdx b/api_docs/data_autocomplete.mdx index 1ab5f0813963c..fbb865d4c3f8f 100644 --- a/api_docs/data_autocomplete.mdx +++ b/api_docs/data_autocomplete.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_query.json b/api_docs/data_query.json index a2c70fc6b1c3b..7ea3b2347e395 100644 --- a/api_docs/data_query.json +++ b/api_docs/data_query.json @@ -934,7 +934,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -942,7 +950,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -966,7 +982,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -1095,7 +1111,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -1103,7 +1127,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -1127,7 +1159,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -1330,7 +1362,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -1338,7 +1378,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -1362,7 +1410,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }" + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }" ], "path": "src/plugins/data/public/query/saved_query/saved_query_service.ts", "deprecated": false, @@ -1750,7 +1798,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -1758,7 +1814,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -1782,7 +1846,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -1903,7 +1967,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -1911,7 +1983,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -1935,7 +2015,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -2555,7 +2635,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise; updateQuery: (id: string, attributes: ", + ", { overwrite }?: { overwrite?: boolean | undefined; }) => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; updateQuery: (id: string, attributes: ", { "pluginId": "data", "scope": "common", @@ -2563,7 +2651,15 @@ "section": "def-common.SavedQueryAttributes", "text": "SavedQueryAttributes" }, - ") => Promise; getAllSavedQueries: () => Promise<", + ") => Promise<", + { + "pluginId": "data", + "scope": "public", + "docId": "kibDataQueryPluginApi", + "section": "def-public.SavedQuery", + "text": "SavedQuery" + }, + ">; getAllSavedQueries: () => Promise<", { "pluginId": "data", "scope": "public", @@ -2587,7 +2683,7 @@ "section": "def-public.SavedQuery", "text": "SavedQuery" }, - ">; deleteSavedQuery: (id: string) => Promise; getSavedQueryCount: () => Promise; }; state$: ", + ">; deleteSavedQuery: (id: string) => Promise<{}>; getSavedQueryCount: () => Promise; }; state$: ", "Observable", "<{ changes: ", { @@ -2856,7 +2952,7 @@ "label": "TimeHistoryContract", "description": [], "signature": [ - "{ add: (time: ", + "{ get: () => ", { "pluginId": "data", "scope": "common", @@ -2864,7 +2960,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - ") => void; get: () => ", + "[]; add: (time: ", { "pluginId": "data", "scope": "common", @@ -2872,7 +2968,7 @@ "section": "def-common.TimeRange", "text": "TimeRange" }, - "[]; }" + ") => void; }" ], "path": "src/plugins/data/public/query/timefilter/time_history.ts", "deprecated": false, diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 72e44bc9b5ac2..78567a5cebb24 100644 --- a/api_docs/data_query.mdx +++ b/api_docs/data_query.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_search.json b/api_docs/data_search.json index 6a7a9e1f72aa0..b741a284e5062 100644 --- a/api_docs/data_search.json +++ b/api_docs/data_search.json @@ -48,7 +48,7 @@ "signature": [ "(sessionService: Pick<", "SessionService", - ", \"start\" | \"destroy\" | \"state$\" | \"sessionMeta$\" | \"hasAccess\" | \"trackSearch\" | \"getSessionId\" | \"getSession$\" | \"isStored\" | \"isRestore\" | \"restore\" | \"continue\" | \"clear\" | \"cancel\" | \"save\" | \"renameCurrentSession\" | \"isCurrentSession\" | \"getSearchOptions\" | \"enableStorage\" | \"isSessionStorageReady\" | \"getSearchSessionIndicatorUiConfig\">, { waitForIdle = 1000 }: ", + ", \"destroy\" | \"start\" | \"state$\" | \"sessionMeta$\" | \"hasAccess\" | \"trackSearch\" | \"getSessionId\" | \"getSession$\" | \"isStored\" | \"isRestore\" | \"restore\" | \"continue\" | \"clear\" | \"cancel\" | \"save\" | \"renameCurrentSession\" | \"isCurrentSession\" | \"getSearchOptions\" | \"enableStorage\" | \"isSessionStorageReady\" | \"getSearchSessionIndicatorUiConfig\">, { waitForIdle = 1000 }: ", { "pluginId": "data", "scope": "public", @@ -83,7 +83,7 @@ "signature": [ "Pick<", "SessionService", - ", \"start\" | \"destroy\" | \"state$\" | \"sessionMeta$\" | \"hasAccess\" | \"trackSearch\" | \"getSessionId\" | \"getSession$\" | \"isStored\" | \"isRestore\" | \"restore\" | \"continue\" | \"clear\" | \"cancel\" | \"save\" | \"renameCurrentSession\" | \"isCurrentSession\" | \"getSearchOptions\" | \"enableStorage\" | \"isSessionStorageReady\" | \"getSearchSessionIndicatorUiConfig\">" + ", \"destroy\" | \"start\" | \"state$\" | \"sessionMeta$\" | \"hasAccess\" | \"trackSearch\" | \"getSessionId\" | \"getSession$\" | \"isStored\" | \"isRestore\" | \"restore\" | \"continue\" | \"clear\" | \"cancel\" | \"save\" | \"renameCurrentSession\" | \"isCurrentSession\" | \"getSearchOptions\" | \"enableStorage\" | \"isSessionStorageReady\" | \"getSearchSessionIndicatorUiConfig\">" ], "path": "src/plugins/data/public/search/session/session_helpers.ts", "deprecated": false, @@ -164,7 +164,7 @@ "\nCurrent session management\n{@link ISessionService}" ], "signature": [ - "{ start: () => string; destroy: () => void; readonly state$: ", + "{ destroy: () => void; start: () => string; readonly state$: ", "Observable", "<", { @@ -572,7 +572,7 @@ "\nCurrent session management\n{@link ISessionService}" ], "signature": [ - "{ start: () => string; destroy: () => void; readonly state$: ", + "{ destroy: () => void; start: () => string; readonly state$: ", "Observable", "<", { @@ -1039,7 +1039,7 @@ "label": "ISessionService", "description": [], "signature": [ - "{ start: () => string; destroy: () => void; readonly state$: ", + "{ destroy: () => void; start: () => string; readonly state$: ", "Observable", "<", { @@ -2846,7 +2846,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", { "pluginId": "data", "scope": "common", @@ -2875,7 +2875,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/aggs/agg_config.ts", "deprecated": false, @@ -4587,7 +4587,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, options?: ", { "pluginId": "data", "scope": "common", @@ -4616,7 +4616,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/aggs/agg_configs.ts", "deprecated": false, @@ -5183,6 +5183,19 @@ "returnComment": [], "children": [] }, + { + "parentPluginId": "data", + "id": "def-common.AggType.hasPrecisionError", + "type": "Function", + "tags": [], + "label": "hasPrecisionError", + "description": [], + "signature": [ + "((aggBucket: Record) => boolean) | undefined" + ], + "path": "src/plugins/data/common/search/aggs/agg_type.ts", + "deprecated": false + }, { "parentPluginId": "data", "id": "def-common.AggType.postFlightRequest", @@ -5213,7 +5226,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, inspectorRequestAdapter?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">, inspectorRequestAdapter?: ", { "pluginId": "inspector", "scope": "common", @@ -5289,15 +5302,7 @@ "label": "searchSource", "description": [], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -5313,7 +5318,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -5345,7 +5350,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -5353,7 +5358,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -5361,7 +5366,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -5385,7 +5398,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -6187,7 +6200,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -6230,7 +6243,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/aggs/param_types/base.ts", "deprecated": false @@ -6399,7 +6412,7 @@ "label": "getShiftedKey", "description": [], "signature": [ - "(agg: TBucketAggConfig, key: React.ReactText, timeShift: moment.Duration) => React.ReactText" + "(agg: TBucketAggConfig, key: string | number, timeShift: moment.Duration) => string | number" ], "path": "src/plugins/data/common/search/aggs/buckets/bucket_agg_type.ts", "deprecated": false, @@ -6426,7 +6439,7 @@ "label": "key", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/data/common/search/aggs/buckets/bucket_agg_type.ts", "deprecated": false, @@ -6921,13 +6934,7 @@ "label": "unit", "description": [], "signature": [ - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - } + "Unit" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/invalid_es_calendar_interval_error.ts", "deprecated": false, @@ -7532,32 +7539,34 @@ }, { "parentPluginId": "data", - "id": "def-common.SearchSource.setPreferredSearchStrategyId", + "id": "def-common.SearchSource.setOverwriteDataViewType", "type": "Function", "tags": [], - "label": "setPreferredSearchStrategyId", + "label": "setOverwriteDataViewType", "description": [ - "**\nPUBLIC API\n\ninternal, dont use" + "**\nPUBLIC API\n\nUsed to make the search source overwrite the actual data view type for the\nspecific requests done. This should only be needed very rarely, since it means\ne.g. we'd be treating a rollup index pattern as a regular one. Be very sure\nyou understand the consequences of using this method before using it.\n" ], "signature": [ - "(searchStrategyId: string) => void" + "(overwriteType: string | false | undefined) => void" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, "children": [ { "parentPluginId": "data", - "id": "def-common.SearchSource.setPreferredSearchStrategyId.$1", - "type": "string", + "id": "def-common.SearchSource.setOverwriteDataViewType.$1", + "type": "CompoundType", "tags": [], - "label": "searchStrategyId", - "description": [], + "label": "overwriteType", + "description": [ + "If `false` is passed in it will disable the overwrite, otherwise\nthe passed in value will be used as the data view type for this search source." + ], "signature": [ - "string" + "string | false | undefined" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, - "isRequired": true + "isRequired": false } ], "returnComment": [] @@ -7572,7 +7581,7 @@ "\nsets value to a single search source field" ], "signature": [ - "(field: K, value: ", + "(field: K, value: ", { "pluginId": "data", "scope": "common", @@ -7637,7 +7646,7 @@ "\nremove field" ], "signature": [ - "(field: K) => this" + "(field: K) => this" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, @@ -7762,7 +7771,7 @@ "\nGets a single field from the fields" ], "signature": [ - "(field: K, recurse?: boolean) => ", + "(field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -7816,7 +7825,7 @@ "\nGet the field from our own fields, don't traverse up the chain" ], "signature": [ - "(field: K) => ", + "(field: K) => ", { "pluginId": "data", "scope": "common", @@ -7870,11 +7879,11 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" } ], "children": [], @@ -7963,7 +7972,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -7994,7 +8003,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/search_source/search_source.ts", "deprecated": false, @@ -8142,11 +8151,11 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/fetch_hits_in_interval.ts" + "path": "src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts" }, { "plugin": "maps", @@ -9214,6 +9223,58 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.checkColumnForPrecisionError", + "type": "Function", + "tags": [], + "label": "checkColumnForPrecisionError", + "description": [], + "signature": [ + "(column: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + }, + ") => ", + { + "pluginId": "@kbn/utility-types", + "scope": "server", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-server.Serializable", + "text": "Serializable" + } + ], + "path": "src/plugins/data/common/search/tabify/utils.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.checkColumnForPrecisionError.$1", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.DatatableColumn", + "text": "DatatableColumn" + } + ], + "path": "src/plugins/data/common/search/tabify/utils.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.cidrToAst", @@ -11414,7 +11475,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined) => ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined) => ", { "pluginId": "inspector", "scope": "common", @@ -11457,7 +11518,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined" ], "path": "src/plugins/data/common/search/search_source/inspect/inspector_stats.ts", "deprecated": false, @@ -12675,13 +12736,7 @@ ], "signature": [ "(interval: string) => { value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", @@ -13038,13 +13093,7 @@ "description": [], "signature": [ "(interval: string) => { value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; } | null" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_interval.ts", @@ -13579,7 +13628,7 @@ "section": "def-common.Query", "text": "Query" }, - "> | undefined; }, never>, \"id\" | \"filter\" | \"enabled\" | \"schema\" | \"geo_bounding_box\" | \"json\" | \"customLabel\" | \"timeShift\">, ", + "> | undefined; }, never>, \"filter\" | \"id\" | \"enabled\" | \"schema\" | \"geo_bounding_box\" | \"json\" | \"customLabel\" | \"timeShift\">, ", "AggExpressionType", ", ", { @@ -13667,7 +13716,7 @@ "section": "def-common.QueryFilter", "text": "QueryFilter" }, - ">[] | undefined; }, never>, \"id\" | \"filters\" | \"enabled\" | \"schema\" | \"json\" | \"timeShift\">, ", + ">[] | undefined; }, never>, \"filters\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"timeShift\">, ", "AggExpressionType", ", ", { @@ -14251,7 +14300,7 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".HISTOGRAM>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\"> & Pick<{ extended_bounds?: ", + ".HISTOGRAM>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"interval\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\"> & Pick<{ extended_bounds?: ", { "pluginId": "expressions", "scope": "common", @@ -14283,7 +14332,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, never>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\" | \"extended_bounds\">, ", + "> | undefined; }, never>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"interval\" | \"used_interval\" | \"maxBars\" | \"intervalBase\" | \"min_doc_count\" | \"has_extended_bounds\" | \"extended_bounds\">, ", "AggExpressionType", ", ", { @@ -14339,7 +14388,7 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".DATE_HISTOGRAM>, \"interval\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"used_interval\" | \"min_doc_count\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\"> & Pick<{ timeRange?: ", + ".DATE_HISTOGRAM>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"interval\" | \"used_interval\" | \"min_doc_count\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\"> & Pick<{ timeRange?: ", { "pluginId": "expressions", "scope": "common", @@ -14371,7 +14420,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, \"timeRange\" | \"extended_bounds\"> & Pick<{ timeRange?: ", + "> | undefined; }, \"extended_bounds\" | \"timeRange\"> & Pick<{ timeRange?: ", { "pluginId": "expressions", "scope": "common", @@ -14403,7 +14452,7 @@ "section": "def-common.ExtendedBounds", "text": "ExtendedBounds" }, - "> | undefined; }, never>, \"interval\" | \"id\" | \"timeRange\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"used_interval\" | \"min_doc_count\" | \"extended_bounds\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\">, ", + "> | undefined; }, never>, \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"time_zone\" | \"interval\" | \"used_interval\" | \"min_doc_count\" | \"extended_bounds\" | \"timeRange\" | \"useNormalizedEsInterval\" | \"scaleMetricValues\" | \"used_time_zone\" | \"drop_partials\" | \"format\">, ", "AggExpressionType", ", ", { @@ -14459,11 +14508,11 @@ "section": "def-common.BUCKET_TYPES", "text": "BUCKET_TYPES" }, - ".TERMS>, \"id\" | \"size\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\"> & Pick<{ orderAgg?: ", + ".TERMS>, \"size\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\"> & Pick<{ orderAgg?: ", "AggExpressionType", " | undefined; }, \"orderAgg\"> & Pick<{ orderAgg?: ", "AggExpressionType", - " | undefined; }, never>, \"id\" | \"size\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"orderAgg\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\">, ", + " | undefined; }, never>, \"size\" | \"id\" | \"enabled\" | \"schema\" | \"json\" | \"customLabel\" | \"timeShift\" | \"field\" | \"orderBy\" | \"orderAgg\" | \"order\" | \"missingBucket\" | \"missingBucketLabel\" | \"otherBucket\" | \"otherBucketLabel\" | \"exclude\" | \"include\">, ", "AggExpressionType", ", ", { @@ -18488,6 +18537,36 @@ "path": "src/plugins/data/common/search/aggs/agg_type.ts", "deprecated": false }, + { + "parentPluginId": "data", + "id": "def-common.AggTypeConfig.hasPrecisionError", + "type": "Function", + "tags": [], + "label": "hasPrecisionError", + "description": [], + "signature": [ + "((aggBucket: Record) => boolean) | undefined" + ], + "path": "src/plugins/data/common/search/aggs/agg_type.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.AggTypeConfig.hasPrecisionError.$1", + "type": "Object", + "tags": [], + "label": "aggBucket", + "description": [], + "signature": [ + "Record" + ], + "path": "src/plugins/data/common/search/aggs/agg_type.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "data", "id": "def-common.AggTypeConfig.getSerializedFormat", @@ -19929,7 +20008,7 @@ "tags": [], "label": "warning", "description": [ - "\nOptional warnings that should be surfaced to the end user" + "\nOptional warnings returned from Elasticsearch (for example, deprecation warnings)" ], "signature": [ "string | undefined" @@ -20471,7 +20550,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">>" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">>" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -20518,7 +20597,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\">" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -22785,7 +22864,7 @@ "label": "AggGroupName", "description": [], "signature": [ - "\"none\" | \"buckets\" | \"metrics\"" + "\"buckets\" | \"metrics\" | \"none\"" ], "path": "src/plugins/data/common/search/aggs/agg_groups.ts", "deprecated": false, @@ -23461,7 +23540,7 @@ "label": "EsQuerySearchAfter", "description": [], "signature": [ - "[React.ReactText, React.ReactText]" + "[string | number, string | number]" ], "path": "src/plugins/data/common/search/search_source/types.ts", "deprecated": false, @@ -25192,7 +25271,7 @@ "label": "GeoPoint", "description": [], "signature": [ - "string | [number, number] | Point" + "string | Point | [number, number]" ], "path": "src/plugins/data/common/search/expressions/geo_point.ts", "deprecated": false, @@ -25681,9 +25760,9 @@ "\nSame as `ISearchOptions`, but contains only serializable fields, which can\nbe sent over the network." ], "signature": [ - "{ executionContext?: ", + "{ isStored?: boolean | undefined; isRestore?: boolean | undefined; sessionId?: string | undefined; executionContext?: ", "KibanaExecutionContext", - " | undefined; isStored?: boolean | undefined; isRestore?: boolean | undefined; sessionId?: string | undefined; strategy?: string | undefined; legacyHitsTotal?: boolean | undefined; }" + " | undefined; strategy?: string | undefined; legacyHitsTotal?: boolean | undefined; }" ], "path": "src/plugins/data/common/search/types.ts", "deprecated": false, @@ -25714,15 +25793,7 @@ "\nsearch source interface" ], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -25738,7 +25809,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -25770,7 +25841,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -25778,7 +25849,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -25786,7 +25857,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -25810,7 +25889,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -26070,13 +26149,7 @@ "description": [], "signature": [ "{ value: number; unit: ", - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "; type: \"calendar\" | \"fixed\"; }" ], "path": "src/plugins/data/common/search/aggs/utils/date_interval_utils/parse_es_interval.ts", @@ -26497,7 +26570,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/date_range.ts", "deprecated": false @@ -26532,7 +26605,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/date_range.ts", "deprecated": false @@ -26567,7 +26640,7 @@ "section": "def-common.DateRange", "text": "DateRange" }, - ") => { from: React.ReactText; to: React.ReactText; type: \"date_range\"; }" + ") => { from: string | number; to: string | number; type: \"date_range\"; }" ], "path": "src/plugins/data/common/search/expressions/date_range.ts", "deprecated": false, @@ -28011,7 +28084,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/geo_point.ts", "deprecated": false @@ -29642,7 +29715,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -30877,7 +30950,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false @@ -30912,7 +30985,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false @@ -30947,7 +31020,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false @@ -30982,7 +31055,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\")[]" + "(\"string\" | \"number\")[]" ], "path": "src/plugins/data/common/search/expressions/range.ts", "deprecated": false diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index a8aa1bfaeea25..0e9cacaae2723 100644 --- a/api_docs/data_search.mdx +++ b/api_docs/data_search.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_ui.json b/api_docs/data_ui.json index b8acd6a7ee454..ca430c525b425 100644 --- a/api_docs/data_ui.json +++ b/api_docs/data_ui.json @@ -572,9 +572,9 @@ "signature": [ "Pick, \"children\" | \"onClick\" | \"color\" | \"onKeyDown\" | \"id\" | \"title\" | \"security\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\">, \"children\" | \"onClick\" | \"color\" | \"onKeyDown\" | \"id\" | \"title\" | \"security\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\"> & Required, \"title\" | \"id\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\">, \"title\" | \"id\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\"> & Required, \"children\" | \"onClick\" | \"color\" | \"onKeyDown\" | \"id\" | \"title\" | \"security\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\">, \"placeholder\">> & { onChange: (indexPatternId?: string | undefined) => void; indexPatternId: string; onNoIndexPatterns?: (() => void) | undefined; }" + ", \"title\" | \"id\" | \"async\" | \"compressed\" | \"fullWidth\" | \"isClearable\" | \"singleSelection\" | \"prepend\" | \"append\" | \"sortMatchesBy\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"autoFocus\" | \"data-test-subj\" | \"customOptionText\" | \"onCreateOption\" | \"renderOption\" | \"inputRef\" | \"isDisabled\" | \"isInvalid\" | \"noSuggestions\" | \"rowHeight\" | \"delimiter\">, \"placeholder\">> & { onChange: (indexPatternId?: string | undefined) => void; indexPatternId: string; onNoIndexPatterns?: (() => void) | undefined; }" ], "path": "src/plugins/data/public/ui/index_pattern_select/index_pattern_select.tsx", "deprecated": false, @@ -596,7 +596,7 @@ "section": "def-public.SearchBarProps", "text": "SearchBarProps" }, - ", \"filters\" | \"query\" | \"savedQuery\" | \"isClearable\" | \"placeholder\" | \"isLoading\" | \"intl\" | \"indexPatterns\" | \"customSubmitButton\" | \"screenTitle\" | \"dataTestSubj\" | \"showQueryBar\" | \"showQueryInput\" | \"showFilterBar\" | \"showDatePicker\" | \"showAutoRefreshOnly\" | \"isRefreshPaused\" | \"refreshInterval\" | \"dateRangeFrom\" | \"dateRangeTo\" | \"showSaveQuery\" | \"onQueryChange\" | \"onQuerySubmit\" | \"onSaved\" | \"onSavedQueryUpdated\" | \"onClearSavedQuery\" | \"onRefresh\" | \"indicateNoData\" | \"iconType\" | \"nonKqlMode\" | \"nonKqlModeHelpText\" | \"displayStyle\" | \"timeHistory\" | \"onFiltersUpdated\" | \"onRefreshChange\">, \"filters\" | \"query\" | \"savedQuery\" | \"isClearable\" | \"placeholder\" | \"isLoading\" | \"indexPatterns\" | \"customSubmitButton\" | \"screenTitle\" | \"dataTestSubj\" | \"showQueryBar\" | \"showQueryInput\" | \"showFilterBar\" | \"showDatePicker\" | \"showAutoRefreshOnly\" | \"isRefreshPaused\" | \"refreshInterval\" | \"dateRangeFrom\" | \"dateRangeTo\" | \"showSaveQuery\" | \"onQueryChange\" | \"onQuerySubmit\" | \"onSaved\" | \"onSavedQueryUpdated\" | \"onClearSavedQuery\" | \"onRefresh\" | \"indicateNoData\" | \"iconType\" | \"nonKqlMode\" | \"nonKqlModeHelpText\" | \"displayStyle\" | \"timeHistory\" | \"onFiltersUpdated\" | \"onRefreshChange\">, any> & { WrappedComponent: React.ComponentType, \"query\" | \"filters\" | \"savedQuery\" | \"isClearable\" | \"placeholder\" | \"isLoading\" | \"indexPatterns\" | \"customSubmitButton\" | \"screenTitle\" | \"dataTestSubj\" | \"showQueryBar\" | \"showQueryInput\" | \"showFilterBar\" | \"showDatePicker\" | \"showAutoRefreshOnly\" | \"isRefreshPaused\" | \"refreshInterval\" | \"dateRangeFrom\" | \"dateRangeTo\" | \"showSaveQuery\" | \"onQueryChange\" | \"onQuerySubmit\" | \"onSaved\" | \"onSavedQueryUpdated\" | \"onClearSavedQuery\" | \"onRefresh\" | \"indicateNoData\" | \"iconType\" | \"nonKqlMode\" | \"nonKqlModeHelpText\" | \"displayStyle\" | \"timeHistory\" | \"onFiltersUpdated\" | \"onRefreshChange\">, any> & { WrappedComponent: React.ComponentType & ReactIntl.InjectedIntlProps>; }" + ", \"query\" | \"filters\" | \"savedQuery\" | \"isClearable\" | \"placeholder\" | \"isLoading\" | \"intl\" | \"indexPatterns\" | \"customSubmitButton\" | \"screenTitle\" | \"dataTestSubj\" | \"showQueryBar\" | \"showQueryInput\" | \"showFilterBar\" | \"showDatePicker\" | \"showAutoRefreshOnly\" | \"isRefreshPaused\" | \"refreshInterval\" | \"dateRangeFrom\" | \"dateRangeTo\" | \"showSaveQuery\" | \"onQueryChange\" | \"onQuerySubmit\" | \"onSaved\" | \"onSavedQueryUpdated\" | \"onClearSavedQuery\" | \"onRefresh\" | \"indicateNoData\" | \"iconType\" | \"nonKqlMode\" | \"nonKqlModeHelpText\" | \"displayStyle\" | \"timeHistory\" | \"onFiltersUpdated\" | \"onRefreshChange\"> & ReactIntl.InjectedIntlProps>; }" ], "path": "src/plugins/data/public/ui/search_bar/index.tsx", "deprecated": false, diff --git a/api_docs/data_ui.mdx b/api_docs/data_ui.mdx index 4b6d148264650..3be20731ae26c 100644 --- a/api_docs/data_ui.mdx +++ b/api_docs/data_ui.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 3238 | 40 | 2848 | 48 | +| 3245 | 40 | 2853 | 48 | ## Client diff --git a/api_docs/data_views.json b/api_docs/data_views.json index 3cd0d35e51890..9e6e0265948f3 100644 --- a/api_docs/data_views.json +++ b/api_docs/data_views.json @@ -1804,7 +1804,7 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "dashboard", @@ -2070,7 +2070,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>" + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -3118,279 +3118,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -3548,18 +3552,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -3598,19 +3590,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -3636,86 +3628,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -3812,6 +3724,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -3844,14 +3776,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, { "plugin": "data", "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" @@ -4030,39 +3954,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "data", @@ -4118,159 +4022,159 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -4282,15 +4186,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "data", @@ -4342,11 +4246,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -4354,19 +4258,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -4418,183 +4322,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -4918,15 +4822,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -5028,30 +4932,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -5264,18 +5144,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -5320,6 +5188,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -5668,6 +5548,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -5712,30 +5628,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -5784,6 +5676,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -5832,34 +5740,6 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/target/types/public/components/editor/controls_tab.d.ts" @@ -5882,35 +5762,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -5934,19 +5822,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" } ], "children": [], @@ -6011,59 +5891,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -6111,11 +5991,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -6123,11 +6003,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -6178,40 +6058,40 @@ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" }, { - "plugin": "data", - "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { - "plugin": "data", - "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "plugin": "data", + "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "plugin": "data", + "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" }, { "plugin": "data", @@ -6243,79 +6123,79 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "data", @@ -6359,231 +6239,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -6843,19 +6723,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -6889,14 +6769,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -7059,27 +6931,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -7431,31 +7303,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "data", @@ -7667,36 +7539,36 @@ "path": "src/plugins/data/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -8143,7 +8015,7 @@ "signature": [ "() => Promise, \"type\" | \"description\" | \"name\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\"> & ", + ", \"name\" | \"type\" | \"description\" | \"options\" | \"order\" | \"value\" | \"category\" | \"optionLabels\" | \"requiresPageReload\" | \"readonly\" | \"sensitive\" | \"deprecation\" | \"metric\"> & ", "UserProvidedValues", ">>" ], @@ -8950,7 +8822,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -10664,7 +10536,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -10760,6 +10632,14 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/plugin.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/sourcerer/routes/index.ts" + }, + { + "plugin": "timelines", + "path": "x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/server/data_indexing/indexing_routes.ts" @@ -11118,7 +10998,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -13238,7 +13118,7 @@ "references": [ { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "dashboard", @@ -13504,7 +13384,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>" + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -14605,279 +14485,283 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx" + "path": "src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/columns.ts" + "path": "src/plugins/discover/public/utils/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_default_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_default_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/table_header.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_header/table_header.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.tsx" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort_for_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/helpers/update_search_source.ts" + "path": "src/plugins/discover/public/embeddable/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/main/utils/update_search_source.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/services/use_es_doc_search.ts" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_es_doc_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/utils/sorting.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app_content.tsx" + "path": "src/plugins/discover/public/application/context/utils/sorting.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app_content.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern_management.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/update_search_source.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern_management.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/calc_field_counts.ts" + "path": "src/plugins/discover/public/application/main/utils/calc_field_counts.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx" + "path": "src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/top_nav/get_top_nav_links.ts" + "path": "src/plugins/discover/public/application/main/components/top_nav/get_top_nav_links.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_documents.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_documents.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.ts" + }, + { + "plugin": "observability", + "path": "x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts" }, { "plugin": "observability", @@ -15035,18 +14919,6 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx" }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, - { - "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/data_loader/data_loader.ts" - }, { "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/utils/saved_search_utils.ts" @@ -15085,19 +14957,19 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "apm", @@ -15123,86 +14995,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/types/index.ts" }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "osquery", - "path": "x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx" - }, { "plugin": "transform", "path": "x-pack/plugins/transform/common/types/index_pattern.ts" @@ -15299,6 +15091,26 @@ "plugin": "discover", "path": "src/plugins/discover/public/__mocks__/index_pattern_with_timefield.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/embeddable/view_saved_search_action.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" + }, { "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts" @@ -15331,14 +15143,6 @@ "plugin": "visTypeTimeseries", "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/index_pattern_select.tsx" }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, - { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx" - }, { "plugin": "data", "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" @@ -15517,39 +15321,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/view_saved_search_action.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/helpers.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/helpers.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/doc_table_wrapper.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/doc_table_wrapper.d.ts" }, { "plugin": "data", @@ -15605,159 +15389,159 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.predecessors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.predecessors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.successors.test.ts" + "path": "src/plugins/discover/public/application/context/services/context.successors.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_switch_index_pattern_app_state.test.ts" + "path": "src/plugins/discover/public/application/main/utils/get_switch_index_pattern_app_state.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/row_formatter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_context.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/discover_grid_flyout.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/components/discover_grid/get_render_cell_value.d.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/discover_grid_flyout.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/row_formatter.test.ts" + "path": "src/plugins/discover/target/types/public/components/discover_grid/get_render_cell_value.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/utils/sorting.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_sort_for_search_source.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/get_default_sort.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/get_switch_index_pattern_app_state.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/utils/sorting.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/get_switch_index_pattern_app_state.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_sort_for_search_source.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/get_default_sort.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/lib/row_formatter.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/top_nav/get_top_nav_links.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/lib/row_formatter.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/top_nav/get_top_nav_links.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/doc_table/components/table_header/table_header.d.ts" + "path": "src/plugins/discover/target/types/public/components/doc_table/components/table_header/table_header.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/source_viewer/source_viewer.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_source/source.tsx" }, { "plugin": "apm", @@ -15769,15 +15553,15 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.test.ts" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.test.ts" }, { "plugin": "data", @@ -15829,11 +15613,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/doc_views/doc_views_types.ts" + "path": "src/plugins/discover/public/services/doc_views/doc_views_types.ts" }, { "plugin": "indexPatternFieldEditor", @@ -15841,19 +15625,19 @@ }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" + "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", - "path": "src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx" + "path": "src/plugins/index_pattern_field_editor/public/lib/serialization.ts" }, { "plugin": "indexPatternFieldEditor", @@ -15905,183 +15689,183 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/types.ts" + "path": "src/plugins/discover/public/embeddable/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/lib/get_sort.ts" + "path": "src/plugins/discover/public/components/doc_table/lib/get_sort.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/components/table_row.tsx" + "path": "src/plugins/discover/public/components/doc_table/components/table_row.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/services/discover_state.ts" + "path": "src/plugins/discover/public/application/main/services/discover_state.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/nested_fields.ts" + "path": "src/plugins/discover/public/application/main/utils/nested_fields.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/doc/components/doc.tsx" + "path": "src/plugins/discover/public/application/doc/components/doc.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.ts" + "path": "src/plugins/discover/public/application/context/services/anchor.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/context.ts" + "path": "src/plugins/discover/public/application/context/services/context.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/utils/use_context_app_fetch.tsx" + "path": "src/plugins/discover/public/application/context/utils/use_context_app_fetch.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/persist_saved_search.ts" + "path": "src/plugins/discover/public/application/main/utils/persist_saved_search.ts" }, { "plugin": "visualizations", @@ -16405,15 +16189,15 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "dataVisualizer", @@ -16515,30 +16299,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/services/index_pattern_cache.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/util_components/geo_index_pattern_select.tsx" @@ -16751,18 +16511,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/fields/agg/agg_field.d.ts" }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, - { - "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/create_source_editor.d.ts" @@ -16807,6 +16555,18 @@ "plugin": "dataVisualizer", "path": "x-pack/plugins/data_visualizer/target/types/public/application/index_data_visualizer/components/full_time_range_selector/full_time_range_selector.d.ts" }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, + { + "plugin": "maps", + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_search_source/top_hits/create_source_editor.d.ts" @@ -17155,6 +16915,42 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/public/components/agg_params.tsx" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_sharing_data.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" + }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/test_utils/get_index_pattern_mock.ts" @@ -17199,30 +16995,6 @@ "plugin": "visTypeVega", "path": "src/plugins/vis_types/vega/public/lib/extract_index_pattern.ts" }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" - }, { "plugin": "indexPatternEditor", "path": "src/plugins/index_pattern_editor/target/types/public/types.d.ts" @@ -17271,6 +17043,22 @@ "plugin": "visDefaultEditor", "path": "src/plugins/vis_default_editor/target/types/public/components/utils/editor_config.d.ts" }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/context/services/anchor.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/doc/components/doc.d.ts" + }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.test.ts" @@ -17296,56 +17084,28 @@ "path": "src/plugins/index_pattern_management/target/types/public/components/utils.d.ts" }, { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" - }, - { - "plugin": "inputControlVis", - "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" - }, - { - "plugin": "visDefaultEditor", - "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/services/anchor.test.ts" + "plugin": "inputControlVis", + "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" + "plugin": "inputControlVis", + "path": "src/plugins/input_control_vis/target/types/public/control/create_search_source.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" + "plugin": "inputControlVis", + "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/get_sharing_data.test.ts" + "plugin": "inputControlVis", + "path": "src/plugins/input_control_vis/target/types/public/test_utils/get_index_pattern_mock.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/doc/components/doc.d.ts" + "plugin": "visDefaultEditor", + "path": "src/plugins/vis_default_editor/target/types/public/components/agg_select.d.ts" }, { "plugin": "inputControlVis", @@ -17369,35 +17129,43 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_calculator.test.ts" + }, + { + "plugin": "discover", + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_calculator.test.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/context/services/context.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/context/services/context.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/nested_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/nested_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "indexPatternManagement", @@ -17421,19 +17189,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" - }, - { - "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/get_index_pattern_field_list.d.ts" } ], "children": [], @@ -17498,59 +17258,59 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx" + "path": "src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx" + "path": "src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx" + "path": "src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx" + "path": "src/plugins/discover/public/embeddable/saved_search_embeddable.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/context/context_app.tsx" + "path": "src/plugins/discover/public/application/context/context_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_visualize.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_visualize.tsx" }, { "plugin": "maps", @@ -17598,11 +17358,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" }, { "plugin": "dataVisualizer", @@ -17610,11 +17370,11 @@ }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "dataVisualizer", - "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx" + "path": "x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx" }, { "plugin": "lens", @@ -17665,40 +17425,40 @@ "path": "x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts" }, { - "plugin": "data", - "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { - "plugin": "data", - "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "path": "src/plugins/discover/public/utils/get_fields_to_show.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "plugin": "data", + "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/get_fields_to_show.test.ts" + "plugin": "data", + "path": "src/plugins/data/common/search/aggs/agg_config.test.ts" }, { "plugin": "data", @@ -17730,79 +17490,79 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_field_visualize.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_field_visualize.d.ts" }, { "plugin": "data", @@ -17846,231 +17606,231 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/field_name/field_name.tsx" + "path": "src/plugins/discover/public/components/field_name/field_name.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table_cell_actions.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table_cell_actions.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/components/table/table.tsx" + "path": "src/plugins/discover/public/services/doc_views/components/doc_viewer_table/table.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_bucket.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_bucket.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field_details.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field_details.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/visualize_trigger_utils.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/visualize_trigger_utils.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_field.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_field.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/group_fields.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/group_fields.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_details.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_details.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/get_index_pattern_field_list.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/get_index_pattern_field_list.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/discover_layout.tsx" + "path": "src/plugins/discover/public/application/main/components/layout/discover_layout.tsx" }, { "plugin": "maps", @@ -18330,19 +18090,19 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/public/classes/layers/choropleth_layer_wizard/layer_template.tsx" + "path": "x-pack/plugins/maps/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.tsx" }, { "plugin": "maps", @@ -18376,14 +18136,6 @@ "plugin": "maps", "path": "x-pack/plugins/maps/server/maps_telemetry/maps_telemetry.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx" - }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts" @@ -18546,27 +18298,27 @@ }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/layers/choropleth_layer_wizard/layer_template.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", - "path": "x-pack/plugins/maps/target/types/public/classes/sources/es_geo_line_source/update_source_editor.d.ts" + "path": "x-pack/plugins/maps/target/types/public/classes/layers/wizards/choropleth_layer_wizard/layer_template.d.ts" }, { "plugin": "maps", @@ -18918,31 +18670,31 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/lib/field_filter.test.ts" + "path": "src/plugins/discover/public/application/main/components/sidebar/lib/field_filter.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/lib/group_fields.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/lib/group_fields.d.ts" }, { "plugin": "data", @@ -19154,36 +18906,36 @@ "path": "src/plugins/data/public/index.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "visTypeTimeseries", - "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" + "plugin": "discover", + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "path": "src/plugins/discover/public/utils/popularize_field.test.ts" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" }, { - "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.test.ts" + "plugin": "visTypeTimeseries", + "path": "src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx" } ], "children": [], @@ -19374,7 +19126,7 @@ "section": "def-common.IndexPatternLoadExpressionFunctionDefinition", "text": "IndexPatternLoadExpressionFunctionDefinition" }, - ", \"type\" | \"telemetry\" | \"extract\" | \"inject\" | \"migrations\" | \"name\" | \"disabled\" | \"help\" | \"inputTypes\" | \"args\" | \"aliases\" | \"context\">" + ", \"name\" | \"type\" | \"telemetry\" | \"inject\" | \"extract\" | \"migrations\" | \"disabled\" | \"help\" | \"inputTypes\" | \"args\" | \"aliases\" | \"context\">" ], "path": "src/plugins/data_views/common/expressions/load_index_pattern.ts", "deprecated": false, @@ -21827,34 +21579,6 @@ "plugin": "data", "path": "src/plugins/data/public/ui/filter_bar/filter_bar.tsx" }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/helpers.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/container/source/index.tsx" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/alerts/components/param_details_form/use_derived_index_pattern.tsx" @@ -21887,218 +21611,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/public/lib/kuery.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/containers/source/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/url_state/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/top_n/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/hosts/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/ueba/pages/details/types.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, - { - "plugin": "timelines", - "path": "x-pack/plugins/timelines/public/mock/index_pattern.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" @@ -22107,42 +21619,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/components/kuery_bar/with_kuery_autocompletion.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/containers/source/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/url_state/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/columns.d.ts" - }, { "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" @@ -22151,46 +21627,6 @@ "plugin": "monitoring", "path": "x-pack/plugins/monitoring/target/types/public/alerts/components/param_details_form/use_derived_index_pattern.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/common/components/search_bar/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/hosts/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/components/network_top_countries_table/index.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/network/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/target/types/public/ueba/pages/details/types.d.ts" - }, { "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx" @@ -22223,54 +21659,6 @@ "plugin": "indexPatternManagement", "path": "src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/common/search_strategy/index_fields/index.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/store/sourcerer/model.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/network/pages/navigation/types.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts" - }, { "plugin": "stackAlerts", "path": "x-pack/plugins/stack_alerts/public/alert_types/geo_containment/query_builder/expressions/entity_index_expression.tsx" @@ -22331,14 +21719,6 @@ "plugin": "transform", "path": "x-pack/plugins/transform/server/routes/api/transforms.ts" }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/common/mock/index_pattern.ts" - }, { "plugin": "data", "path": "src/plugins/data/common/query/timefilter/get_time.test.ts" @@ -23094,7 +22474,7 @@ "label": "type", "description": [], "signature": [ - "\"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"date\" | \"geo_point\" | \"ip\" | \"keyword\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false @@ -23995,7 +23375,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24320,11 +23700,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx" }, { "plugin": "transform", @@ -24348,11 +23728,11 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts" }, { "plugin": "data", @@ -24360,39 +23740,39 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx" + "path": "src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/layout/types.ts" + "path": "src/plugins/discover/public/application/main/components/layout/types.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_app.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_app.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/discover_main_route.tsx" + "path": "src/plugins/discover/public/application/main/discover_main_route.tsx" } ], "initialIsOpen": false @@ -24598,7 +23978,7 @@ "section": "def-common.DataViewAttributes", "text": "DataViewAttributes" }, - ", \"type\" | \"title\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", + ", \"title\" | \"type\" | \"typeMeta\">>[] | null | undefined>; getDefault: () => Promise<", { "pluginId": "dataViews", "scope": "common", @@ -24779,27 +24159,27 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_data_grid_columns.ts" + "path": "src/plugins/discover/public/utils/use_data_grid_columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/use_index_pattern.tsx" + "path": "src/plugins/discover/public/utils/use_index_pattern.tsx" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts" + "path": "src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts" }, { "plugin": "observability", @@ -24847,19 +24227,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts" + "path": "src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts" + "path": "src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts" }, { "plugin": "data", @@ -24951,19 +24331,19 @@ }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/helpers/popularize_field.ts" + "path": "src/plugins/discover/public/utils/popularize_field.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "discover", - "path": "src/plugins/discover/public/application/apps/main/components/doc_table/actions/columns.ts" + "path": "src/plugins/discover/public/components/doc_table/actions/columns.ts" }, { "plugin": "dashboard", @@ -25435,7 +24815,7 @@ "signature": [ "Pick<", "Toast", - ", \"children\" | \"onClick\" | \"onChange\" | \"color\" | \"onKeyDown\" | \"security\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", + ", \"onChange\" | \"defaultChecked\" | \"defaultValue\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"prefix\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"security\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"children\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"iconType\" | \"toastLifeTimeMs\" | \"onClose\"> & { title?: string | ", { "pluginId": "core", "scope": "public", @@ -25467,7 +24847,7 @@ "label": "RuntimeType", "description": [], "signature": [ - "\"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"ip\" | \"long\" | \"double\"" + "\"boolean\" | \"date\" | \"geo_point\" | \"ip\" | \"keyword\" | \"long\" | \"double\"" ], "path": "src/plugins/data_views/common/types.ts", "deprecated": false, diff --git a/api_docs/data_visualizer.json b/api_docs/data_visualizer.json index 2ea93ccfcadb5..762ccaaab4fe6 100644 --- a/api_docs/data_visualizer.json +++ b/api_docs/data_visualizer.json @@ -560,9 +560,6 @@ "tags": [], "label": "fieldName", "description": [], - "signature": [ - "string | undefined" - ], "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", "deprecated": false }, @@ -574,7 +571,7 @@ "label": "type", "description": [], "signature": [ - "\"number\" | \"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"unknown\" | \"histogram\" | \"text\"" + "\"number\" | \"boolean\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"unknown\" | \"histogram\" | \"keyword\" | \"text\"" ], "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", "deprecated": false @@ -602,6 +599,19 @@ "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", "deprecated": false, "children": [ + { + "parentPluginId": "dataVisualizer", + "id": "def-common.FieldVisStats.error", + "type": "Object", + "tags": [], + "label": "error", + "description": [], + "signature": [ + "Error | undefined" + ], + "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", + "deprecated": false + }, { "parentPluginId": "dataVisualizer", "id": "def-common.FieldVisStats.cardinality", @@ -821,7 +831,7 @@ "label": "topValues", "description": [], "signature": [ - "{ key: React.ReactText; doc_count: number; }[] | undefined" + "{ key: string | number; doc_count: number; }[] | undefined" ], "path": "x-pack/plugins/data_visualizer/common/types/field_request_config.ts", "deprecated": false @@ -1032,20 +1042,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "dataVisualizer", - "id": "def-common.InputData", - "type": "Type", - "tags": [], - "label": "InputData", - "description": [], - "signature": [ - "any[]" - ], - "path": "x-pack/plugins/data_visualizer/common/types/index.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "dataVisualizer", "id": "def-common.JobFieldType", @@ -1054,7 +1050,7 @@ "label": "JobFieldType", "description": [], "signature": [ - "\"number\" | \"boolean\" | \"keyword\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"unknown\" | \"histogram\" | \"text\"" + "\"number\" | \"boolean\" | \"date\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"unknown\" | \"histogram\" | \"keyword\" | \"text\"" ], "path": "x-pack/plugins/data_visualizer/common/types/job_field_type.ts", "deprecated": false, diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 7ff55c5ddc95d..450098853a987 100644 --- a/api_docs/deprecations_by_api.mdx +++ b/api_docs/deprecations_by_api.mdx @@ -14,15 +14,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Referencing plugin(s) | Remove By | | ---------------|-----------|-----------| | | securitySolution | - | -| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, osquery, securitySolution, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega, data | - | -| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, securitySolution, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries, data | - | -| | dataViews, timelines, monitoring, securitySolution, indexPatternManagement, stackAlerts, transform | - | -| | home, savedObjects, security, fleet, indexPatternFieldEditor, discover, dashboard, lens, observability, maps, fileUpload, dataVisualizer, ml, infra, graph, monitoring, osquery, securitySolution, stackAlerts, transform, upgradeAssistant, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, kibanaOverview, savedObjectsManagement, visualize, visTypeTimelion, visTypeTimeseries, visTypeVega | - | -| | dataViews, timelines, monitoring, securitySolution, indexPatternManagement, stackAlerts, transform, data | - | -| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, securitySolution, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries, data | - | -| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, osquery, securitySolution, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega, data | - | -| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, securitySolution, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries | - | -| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, osquery, securitySolution, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega | - | +| | home, savedObjects, security, fleet, indexPatternFieldEditor, discover, dashboard, lens, observability, maps, fileUpload, dataVisualizer, ml, infra, graph, monitoring, securitySolution, stackAlerts, transform, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, kibanaOverview, savedObjectsManagement, visualize, visTypeTimelion, visTypeTimeseries, visTypeVega | - | +| | data, lens, visTypeTimeseries, infra, maps, securitySolution, timelines, visTypeTimelion | - | | | apm, security, securitySolution | - | | | apm, security, securitySolution | - | | | reporting, encryptedSavedObjects, actions, ml, dataEnhanced, logstash, securitySolution | - | @@ -30,28 +23,35 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | securitySolution | - | | | dataViews, visTypeTimeseries, maps, lens, discover, data | - | | | dataViews, discover, observability, savedObjects, security, dashboard, lens, maps, graph, stackAlerts, transform, indexPatternManagement, inputControlVis, savedObjectsManagement, visTypeTimelion, data | - | +| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega, data | - | +| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries, data | - | +| | dataViews, monitoring, indexPatternManagement, stackAlerts, transform | - | | | dataViews, discover, transform, canvas | - | | | dataViews, observability, indexPatternEditor | - | -| | dataViews | - | | | dataViews, indexPatternManagement | - | +| | dataViews | - | +| | dataViews, monitoring, indexPatternManagement, stackAlerts, transform, data | - | | | dataViews, discover, transform, canvas, data | - | | | dataViews, data | - | | | dataViews, data | - | | | dataViews | - | | | dataViews, observability, indexPatternEditor, data | - | +| | dataViews, discover, observability, savedObjects, security, dashboard, lens, maps, graph, stackAlerts, transform, indexPatternManagement, inputControlVis, savedObjectsManagement, visTypeTimelion, data | - | +| | dataViews, indexPatternManagement, data | - | | | dataViews, visualizations, dashboard, data | - | +| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries, data | - | | | dataViews, data | - | | | dataViews, visTypeTimeseries, maps, lens, discover, data | - | -| | dataViews, discover, observability, savedObjects, security, dashboard, lens, maps, graph, stackAlerts, transform, indexPatternManagement, inputControlVis, savedObjectsManagement, visTypeTimelion, data | - | | | dataViews, discover, dashboard, lens, visualize | - | -| | dataViews, indexPatternManagement, data | - | +| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega, data | - | | | dataViews, maps | - | | | dataViews, discover, transform, canvas | - | +| | dataViews, discover, maps, dataVisualizer, lens, indexPatternFieldEditor, indexPatternEditor, indexPatternManagement, inputControlVis, visDefaultEditor, visTypeTimeseries | - | +| | dataViews, visTypeTimeseries, reporting, discover, observability, maps, dataVisualizer, apm, lens, transform, savedObjects, indexPatternFieldEditor, visualizations, dashboard, graph, stackAlerts, uptime, indexPatternEditor, indexPatternManagement, inputControlVis, savedObjectsManagement, visualize, visDefaultEditor, visTypeVega | - | | | dataViews, visTypeTimeseries, maps, lens, discover | - | | | dataViews, maps | - | | | fleet, indexPatternFieldEditor, discover, dashboard, lens, ml, stackAlerts, indexPatternManagement, visTypePie, visTypeTable, visTypeTimeseries, visTypeXy, visTypeVislib | - | | | reporting, visTypeTimeseries | - | -| | data, lens, visTypeTimeseries, infra, maps, visTypeTimelion | - | | | maps | - | | | dashboard, maps, graph, visualize | - | | | spaces, security, reporting, actions, alerting, ml, fleet, remoteClusters, graph, indexLifecycleManagement, maps, painlessLab, rollup, searchprofiler, snapshotRestore, transform, upgradeAssistant | - | @@ -75,8 +75,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | spaces, savedObjectsManagement | - | | | reporting | - | | | reporting | - | -| | ml, infra, reporting, ingestPipelines | - | -| | ml, infra, reporting, ingestPipelines | - | +| | ml, infra, reporting, ingestPipelines, upgradeAssistant | - | +| | ml, infra, reporting, ingestPipelines, upgradeAssistant | - | | | cloud, apm | - | | | visTypeVega | - | | | monitoring, visTypeVega | - | @@ -96,14 +96,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | ml | - | | | actions | - | | | console | - | -| | security, reporting, apm, infra, securitySolution | 7.16 | -| | security, reporting, apm, infra, securitySolution | 7.16 | +| | security, reporting, apm, infra | 7.16 | +| | security, reporting, apm, infra | 7.16 | | | security | 7.16 | -| | discover, visualizations, dashboard, lens, observability, maps, dashboardEnhanced, discoverEnhanced, securitySolution, visualize | 8.1 | -| | lens, timelines, securitySolution, stackAlerts, transform, indexPatternManagement, visTypeTimelion, visTypeVega | 8.1 | -| | discover, visualizations, dashboard, lens, observability, timelines, maps, infra, dashboardEnhanced, discoverEnhanced, securitySolution, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | -| | discover, visualizations, dashboard, lens, observability, timelines, maps, infra, dashboardEnhanced, discoverEnhanced, securitySolution, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | -| | discover, visualizations, dashboard, lens, observability, timelines, maps, infra, dashboardEnhanced, discoverEnhanced, securitySolution, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | | | dataViews, fleet, infra, monitoring, stackAlerts, indexPatternManagement | 8.1 | | | dataViews, fleet, infra, monitoring, stackAlerts, indexPatternManagement, data | 8.1 | | | dataViews | 8.1 | @@ -118,14 +113,21 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | visTypeTimeseries, graph, indexPatternManagement, dataViews | 8.1 | | | dataViews, indexPatternManagement | 8.1 | | | visTypeTimeseries | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, infra, dashboardEnhanced, discoverEnhanced, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, infra, dashboardEnhanced, discoverEnhanced, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | | | visTypeTimeseries | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, infra, dashboardEnhanced, discoverEnhanced, urlDrilldown, inputControlVis, visualize, visTypeTimelion, visTypeVega, ml, visTypeTimeseries | 8.1 | | | visTypeTimeseries | 8.1 | | | visTypeTimeseries, graph, indexPatternManagement | 8.1 | | | discover, maps, inputControlVis | 8.1 | +| | discover, visualizations, dashboard, lens, observability, maps, dashboardEnhanced, discoverEnhanced, visualize | 8.1 | | | discover, maps, inputControlVis | 8.1 | | | lens, infra, apm, graph, monitoring, stackAlerts, transform | 8.1 | +| | lens, stackAlerts, transform, indexPatternManagement, visTypeTimelion, visTypeVega | 8.1 | | | observability | 8.1 | +| | observability | 8.1 | | | observability | 8.1 | +| | observability | 8.1 | | | indexPatternManagement | 8.1 | | | indexPatternManagement | 8.1 | | | indexPatternManagement | 8.1 | @@ -138,17 +140,14 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | visualizations, visDefaultEditor | 8.1 | | | visualizations, visDefaultEditor | 8.1 | | | visualize | 8.1 | -| | timelines | 8.1 | -| | timelines | 8.1 | -| | timelines | 8.1 | | | dashboardEnhanced | 8.1 | | | dashboardEnhanced | 8.1 | | | discoverEnhanced | 8.1 | | | discoverEnhanced | 8.1 | -| | cases, alerting, dataEnhanced | 8.1 | -| | actions, alerting, cases, dataEnhanced | 8.1 | -| | cases, alerting, dataEnhanced | 8.1 | -| | cases, alerting, dataEnhanced | 8.1 | +| | alerting, dataEnhanced | 8.1 | +| | alerting, dataEnhanced | 8.1 | +| | actions, alerting, dataEnhanced | 8.1 | +| | alerting, dataEnhanced | 8.1 | ## Unreferenced deprecated APIs @@ -157,14 +156,20 @@ Safe to remove. | Deprecated API | | ---------------| -| | | | +| | | | | | -| | | | | | +| | | | +| | +| | +| | +| | +| | +| | | | | | | | @@ -201,15 +206,10 @@ Safe to remove. | | | | | | -| | -| | -| | -| | -| | -| | | | | | | | +| | | | | | | | @@ -222,9 +222,9 @@ Safe to remove. | | | | | | +| | | | | | -| | | | | | | | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index ef22bf4c497ee..bce46bdee8533 100644 --- a/api_docs/deprecations_by_plugin.mdx +++ b/api_docs/deprecations_by_plugin.mdx @@ -35,8 +35,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode) | 8.1 | -| | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder) | 8.1 | | | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode) | 8.1 | +| | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=nodeBuilder) | 8.1 | | | [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode), [rules_client.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/rules_client/rules_client.ts#:~:text=KueryNode) | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24) | - | @@ -54,8 +54,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode)+ 2 more | - | | | [license_context.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/public/context/license/license_context.tsx#:~:text=license%24) | - | | | [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode), [license_check.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/common/license_check.test.ts#:~:text=mode)+ 2 more | - | -| | [data_view.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/server/routes/data_view.ts#:~:text=spacesService) | 7.16 | -| | [data_view.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/server/routes/data_view.ts#:~:text=getSpaceId) | 7.16 | +| | [route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/server/routes/data_view/route.ts#:~:text=spacesService) | 7.16 | +| | [route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/apm/server/routes/data_view/route.ts#:~:text=getSpaceId) | 7.16 | @@ -66,27 +66,16 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes) | - | | | [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes) | - | | | [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes), [es_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/lib/es_service.ts#:~:text=IndexPatternAttributes) | - | -| | [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | +| | [embeddable.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getFunction) | - | | | [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.test.ts#:~:text=getFunctions) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getTypes), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getTypes), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getTypes) | - | | | [state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/types/state.ts#:~:text=Render), [state.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/types/state.ts#:~:text=Render), [state.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/target/types/types/state.d.ts#:~:text=Render), [state.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/target/types/types/state.d.ts#:~:text=Render), [markdown.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts#:~:text=Render), [markdown.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/markdown.ts#:~:text=Render), [timefilterControl.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/timefilterControl.ts#:~:text=Render), [timefilterControl.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/timefilterControl.ts#:~:text=Render), [pie.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/pie.ts#:~:text=Render), [pie.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/pie.ts#:~:text=Render)+ 6 more | - | -| | [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | +| | [embeddable.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getFunction) | - | | | [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getFunctions), [functions.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.test.ts#:~:text=getFunctions) | - | | | [setup_expressions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/setup_expressions.ts#:~:text=getTypes), [application.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/application.tsx#:~:text=getTypes), [functions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/server/routes/functions/functions.ts#:~:text=getTypes) | - | -| | [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | - - - -## cases - -| Deprecated API | Reference location(s) | Remove By | -| ---------------|-----------|-----------| -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=KueryNode)+ 25 more | 8.1 | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=nodeBuilder)+ 36 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=KueryNode)+ 25 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/common/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/types.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/authorization/utils.ts#:~:text=KueryNode), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/cases/server/client/utils.ts#:~:text=KueryNode)+ 25 more | 8.1 | +| | [embeddable.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts#:~:text=context), [filters.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/public/functions/filters.ts#:~:text=context), [escount.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/escount.ts#:~:text=context), [esdocs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/esdocs.ts#:~:text=context), [essql.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/browser/essql.ts#:~:text=context), [neq.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/common/neq.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/pointseries/index.ts#:~:text=context), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/canvas/canvas_plugin_src/functions/server/demodata/index.ts#:~:text=context) | - | @@ -124,8 +113,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [export_csv_action.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/actions/export_csv_action.tsx#:~:text=fieldFormats) | - | | | [save_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/save_dashboard.ts#:~:text=esFilters), [save_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/save_dashboard.ts#:~:text=esFilters), [diff_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/diff_dashboard_state.ts#:~:text=esFilters), [diff_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/diff_dashboard_state.ts#:~:text=esFilters), [diff_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/diff_dashboard_state.ts#:~:text=esFilters), [diff_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/diff_dashboard_state.ts#:~:text=esFilters), [sync_dashboard_container_input.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_container_input.ts#:~:text=esFilters), [sync_dashboard_container_input.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_container_input.ts#:~:text=esFilters), [sync_dashboard_container_input.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_container_input.ts#:~:text=esFilters), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/plugin.tsx#:~:text=esFilters)+ 15 more | 8.1 | | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 25 more | 8.1 | -| | [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | | | [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPatternsContract), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPatternsContract), [make_default_services.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/test_helpers/make_default_services.ts#:~:text=IndexPatternsContract), [make_default_services.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/test_helpers/make_default_services.ts#:~:text=IndexPatternsContract), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPatternsContract), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPatternsContract)+ 2 more | - | +| | [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [replace_index_pattern_reference.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/replace_index_pattern_reference.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE), [dashboard_migrations.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/server/saved_objects/dashboard_migrations.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | | | [load_saved_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/load_saved_dashboard_state.ts#:~:text=ensureDefaultDataView), [load_saved_dashboard_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/load_saved_dashboard_state.ts#:~:text=ensureDefaultDataView) | - | | | [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/types.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern), [sync_dashboard_index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/sync_dashboard_index_patterns.ts#:~:text=IndexPattern)+ 6 more | - | | | [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [filter_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/lib/filter_utils.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [saved_dashboard.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/saved_dashboards/saved_dashboard.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter), [dashboard_state_slice.ts](https://github.com/elastic/kibana/tree/master/src/plugins/dashboard/public/application/state/dashboard_state_slice.ts#:~:text=Filter)+ 25 more | 8.1 | @@ -149,8 +138,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=esFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=esFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=esFilters) | 8.1 | | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters) | 8.1 | | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter) | 8.1 | -| | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters) | 8.1 | | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter) | 8.1 | +| | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=isFilters) | 8.1 | | | [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter), [embeddable_to_dashboard_drilldown.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/embeddable_to_dashboard_drilldown/embeddable_to_dashboard_drilldown.tsx#:~:text=Filter) | 8.1 | @@ -160,8 +149,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternField), [kibana_context_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/kibana_context_type.ts#:~:text=IndexPatternField), [kibana_context_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/kibana_context_type.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternField), [agg_config.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/agg_config.test.ts#:~:text=IndexPatternField), [agg_config.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/agg_config.test.ts#:~:text=IndexPatternField), [_terms_other_bucket_helper.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/aggs/buckets/_terms_other_bucket_helper.test.ts#:~:text=IndexPatternField)+ 11 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [create_search_source.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.test.ts#:~:text=IndexPatternsContract)+ 29 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 88 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [filter_editor_utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/ui/filter_bar/filter_editor/lib/filter_editor_utils.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [generate_filters.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/query/filter_manager/lib/generate_filters.ts#:~:text=IFieldType), [query_suggestion_provider.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/autocomplete/providers/query_suggestion_provider.ts#:~:text=IFieldType), [query_suggestion_provider.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/autocomplete/providers/query_suggestion_provider.ts#:~:text=IFieldType)+ 36 more | 8.1 | @@ -172,10 +161,10 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternFieldMap) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternSpec), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternSpec) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternType), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternType) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [search_source_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source_service.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [esaggs_fn.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/expressions/esaggs/esaggs_fn.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/search/types.ts#:~:text=IndexPatternsContract), [create_search_source.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/create_search_source.test.ts#:~:text=IndexPatternsContract)+ 29 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 88 more | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternsService) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPatternListItem), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/index.ts#:~:text=IndexPatternListItem) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/index.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/types.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/search_source/search_source.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern), [tabify_docs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/common/search/tabify/tabify_docs.ts#:~:text=IndexPattern)+ 88 more | - | | | [aggs_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/aggs/aggs_service.ts#:~:text=indexPatternsServiceFactory), [esaggs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/expressions/esaggs.ts#:~:text=indexPatternsServiceFactory), [search_service.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data/server/search/search_service.ts#:~:text=indexPatternsServiceFactory) | - | | | [data_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions), [data_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/data/public/utils/table_inspector_view/components/data_table.tsx#:~:text=executeTriggerActions) | - | @@ -186,8 +175,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | -| | [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder)+ 2 more | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | +| | [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=nodeBuilder)+ 2 more | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/types.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [get_search_session_page.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/get_search_session_page.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [check_non_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/check_non_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode), [expire_persisted_sessions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/expire_persisted_sessions.ts#:~:text=KueryNode)+ 2 more | 8.1 | | | [session_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_enhanced/server/search/session/session_service.ts#:~:text=authc) | - | @@ -205,8 +194,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 13 more | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternSpec), [create_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/create_index_pattern.ts#:~:text=IndexPatternSpec), [create_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/create_index_pattern.ts#:~:text=IndexPatternSpec) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternType) | - | | | [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=IndexPatternListItem), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternListItem) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternType) | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 13 more | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IIndexPattern), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=IIndexPattern), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=IIndexPattern) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes) | - | @@ -214,23 +203,23 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternFieldMap) | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=intervalName) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternSpec), [create_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/create_index_pattern.ts#:~:text=IndexPatternSpec), [create_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/create_index_pattern.ts#:~:text=IndexPatternSpec) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsContract) | - | +| | [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=IndexPatternListItem), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternListItem) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=INDEX_PATTERN_SAVED_OBJECT_TYPE) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField)+ 2 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternType) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsService) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsContract) | - | | | [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=ensureDefaultDataView) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPattern), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPattern), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern) | - | -| | [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=IndexPatternListItem), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternListItem) | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [update_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/update_index_pattern.ts#:~:text=intervalName), [update_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/update_index_pattern.ts#:~:text=intervalName) | 8.1 | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=flattenHit) | - | | | [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=addScriptedField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=addScriptedField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=addScriptedField) | 8.1 | | | [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=removeScriptedField) | 8.1 | | | [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getNonScriptedFields) | 8.1 | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=getScriptedFields), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=getScriptedFields), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=getScriptedFields), [data_views.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_views.ts#:~:text=getScriptedFields), [register_index_pattern_usage_collection.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/register_index_pattern_usage_collection.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=getScriptedFields)+ 1 more | 8.1 | -| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField)+ 2 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/utils.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [data_view_field.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [field_list.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/field_list.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/types.ts#:~:text=IFieldType)+ 13 more | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/utils.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes), [scripted_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/deprecations/scripted_fields.ts#:~:text=IndexPatternAttributes) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternField), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPatternField)+ 2 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPattern), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPattern), [data_view_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/fields/data_view_field.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern), [data_view.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.test.ts#:~:text=IndexPattern) | - | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/index.ts#:~:text=IndexPatternsService), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/public/index.ts#:~:text=IndexPatternsService) | - | | | [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [data_view.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/common/data_views/data_view.ts#:~:text=intervalName), [update_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/update_index_pattern.ts#:~:text=intervalName), [update_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/data_views/server/routes/update_index_pattern.ts#:~:text=intervalName) | 8.1 | @@ -246,13 +235,13 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 60 more | - | -| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField)+ 20 more | - | +| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 54 more | - | +| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField)+ 20 more | - | | | [file_data_visualizer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/file_data_visualizer/file_data_visualizer.tsx#:~:text=indexPatterns), [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx#:~:text=indexPatterns) | - | -| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField)+ 20 more | - | -| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 60 more | - | -| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField), [index_data_visualizer_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_data_visualizer_view/index_data_visualizer_view.tsx#:~:text=IndexPatternField)+ 5 more | - | -| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 25 more | - | +| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField)+ 20 more | - | +| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 54 more | - | +| | [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_data_row.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/types/field_data_row.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [field_types_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/util/field_types_utils.ts#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [search_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/search_panel/search_panel.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField), [grid_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/embeddables/grid_embeddable/grid_embeddable.tsx#:~:text=IndexPatternField)+ 5 more | - | +| | [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [lens_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [geo_point_content_with_map.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/geo_point_content_with_map/geo_point_content_with_map.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern), [index_based_expanded_row.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/data_visualizer/public/application/common/components/expanded_row/index_based_expanded_row.tsx#:~:text=IndexPattern)+ 22 more | - | @@ -260,34 +249,34 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | -| | [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_index_pattern.tsx#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_index_pattern.tsx#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract)+ 26 more | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 382 more | - | -| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/context_app.tsx#:~:text=IndexPatternField)+ 198 more | - | -| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 3 more | - | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | -| | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/services/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | -| | [build_services.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/build_services.ts#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=indexPatterns), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=indexPatterns) | - | -| | [histogram.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/chart/histogram.tsx#:~:text=fieldFormats) | - | -| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [get_context_url.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/get_context_url.tsx#:~:text=esFilters), [get_context_url.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/get_context_url.tsx#:~:text=esFilters), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=esFilters), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=esFilters)+ 17 more | 8.1 | -| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | -| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 16 more | - | -| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/context_app.tsx#:~:text=IndexPatternField)+ 198 more | - | -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | -| | [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_index_pattern.tsx#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/use_index_pattern.tsx#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/helpers/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract)+ 26 more | - | -| | [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=ensureDefaultDataView), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=ensureDefaultDataView) | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 382 more | - | -| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | -| | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/services/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | -| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [data_visualizer_grid.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/data_visualizer_grid/data_visualizer_grid.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/context/context_app.tsx#:~:text=IndexPatternField)+ 94 more | - | -| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/apps/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 3 more | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 186 more | - | -| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/helpers/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | -| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | -| | [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/discover_main_route.tsx#:~:text=ensureDefaultDataView) | - | -| | [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/apps/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal) | - | -| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/embeddable/search_embeddable_factory.ts#:~:text=executeTriggerActions), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/embeddable/search_embeddable_factory.d.ts#:~:text=executeTriggerActions) | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | +| | [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_index_pattern.tsx#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_index_pattern.tsx#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract)+ 26 more | - | +| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 382 more | - | +| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/context_app.tsx#:~:text=IndexPatternField)+ 198 more | - | +| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 3 more | - | +| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | +| | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | +| | [build_services.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/build_services.ts#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=indexPatterns), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=indexPatterns), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=indexPatterns) | - | +| | [histogram.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/chart/histogram.tsx#:~:text=fieldFormats) | - | +| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=esFilters), [get_context_url.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/get_context_url.tsx#:~:text=esFilters), [get_context_url.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/get_context_url.tsx#:~:text=esFilters), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=esFilters), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=esFilters)+ 17 more | 8.1 | +| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | +| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 16 more | - | +| | [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_data_grid_columns.ts#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_index_pattern.tsx#:~:text=IndexPatternsContract), [use_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/use_index_pattern.tsx#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/utils/resolve_index_pattern.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [use_data_grid_columns.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/utils/use_data_grid_columns.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract), [resolve_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/utils/resolve_index_pattern.d.ts#:~:text=IndexPatternsContract)+ 26 more | - | +| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/context_app.tsx#:~:text=IndexPatternField)+ 198 more | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | +| | [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=ensureDefaultDataView), [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=ensureDefaultDataView) | - | +| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 382 more | - | +| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | +| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=create) | - | +| | [anchor.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/services/anchor.ts#:~:text=fetch), [fetch_hits_in_interval.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/utils/fetch_hits_in_interval.ts#:~:text=fetch) | 8.1 | +| | [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_index_pattern.tsx#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_index_pattern.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/application/main/components/sidebar/discover_index_pattern.d.ts#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [discover_sidebar_responsive.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/sidebar/discover_sidebar_responsive.tsx#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/layout/types.ts#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes), [discover_main_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_app.tsx#:~:text=IndexPatternAttributes)+ 3 more | - | +| | [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [discover_grid_cell_actions.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_cell_actions.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [doc_table_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/doc_table_wrapper.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [field_stats_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/components/field_stats_table/field_stats_table.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=IndexPatternField), [context_app.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/context/context_app.tsx#:~:text=IndexPatternField)+ 94 more | - | +| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/doc_table/components/table_header/helpers.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_flyout.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_flyout.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [discover_grid_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_context.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [get_render_cell_value.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/get_render_cell_value.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern), [discover_grid_columns.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/components/discover_grid/discover_grid_columns.tsx#:~:text=IndexPattern)+ 186 more | - | +| | [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [popularize_field.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/utils/popularize_field.test.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService), [index_patterns.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/__mocks__/index_patterns.ts#:~:text=IndexPatternsService)+ 6 more | - | +| | [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [url_generator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/url_generator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/locator.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/types.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter), [discover_state.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/services/discover_state.ts#:~:text=Filter)+ 22 more | 8.1 | +| | [discover_main_route.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/discover_main_route.tsx#:~:text=ensureDefaultDataView) | - | +| | [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal), [on_save_search.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/application/main/components/top_nav/on_save_search.tsx#:~:text=SavedObjectSaveModal) | - | +| | [saved_search_embeddable.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/saved_search_embeddable.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/embeddable/search_embeddable_factory.ts#:~:text=executeTriggerActions), [plugin.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/discover/public/plugin.tsx#:~:text=executeTriggerActions), [search_embeddable_factory.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/target/types/public/embeddable/search_embeddable_factory.d.ts#:~:text=executeTriggerActions) | - | | | [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | | | [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric), [ui_settings.ts](https://github.com/elastic/kibana/tree/master/src/plugins/discover/server/ui_settings.ts#:~:text=metric) | - | @@ -411,16 +400,16 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 28 more | - | +| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 28 more | - | | | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField)+ 8 more | - | | | [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName) | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/plugin.ts#:~:text=indexPatterns), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/plugin.ts#:~:text=indexPatterns) | - | | | [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=fieldFormats), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=fieldFormats), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=fieldFormats), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=fieldFormats), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=fieldFormats), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/plugin.ts#:~:text=fieldFormats), [field_format_editor.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/target/types/public/components/field_format_editor/field_format_editor.d.ts#:~:text=fieldFormats), [setup_environment.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/__jest__/client_integration/helpers/setup_environment.tsx#:~:text=fieldFormats) | - | | | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField)+ 8 more | - | -| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 28 more | - | +| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 28 more | - | | | [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName) | 8.1 | | | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [field_editor_flyout_content_container.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_flyout_content_container.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField), [open_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_editor.tsx#:~:text=IndexPatternField) | - | -| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 9 more | - | +| | [shared_imports.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/shared_imports.ts#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [field_editor_context.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_editor_context.tsx#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [serialization.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/serialization.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [remove_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/lib/remove_fields.ts#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [open_delete_modal.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/open_delete_modal.tsx#:~:text=IndexPattern), [delete_field_provider.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/delete_field_provider.tsx#:~:text=IndexPattern)+ 9 more | - | | | [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName), [field_format_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_field_editor/public/components/field_format_editor/field_format_editor.tsx#:~:text=castEsToKbnFieldTypeName) | 8.1 | @@ -441,16 +430,16 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [test_script.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=esQuery), [test_script.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=esQuery), [test_script.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/components/scripting_help/test_script.tsx#:~:text=esQuery) | 8.1 | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType) | 8.1 | | | [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [index_header.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx#:~:text=IIndexPattern), [index_header.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/index_header/index_header.tsx#:~:text=IIndexPattern), [index_header.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts#:~:text=IIndexPattern), [index_header.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/edit_index_pattern/index_header/index_header.d.ts#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx#:~:text=IIndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx#:~:text=IIndexPattern)+ 6 more | - | -| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField)+ 42 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternsContract), [utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.test.ts#:~:text=IndexPatternsContract), [utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.test.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternsContract), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternsContract), [utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.test.ts#:~:text=IndexPatternsContract), [utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.test.ts#:~:text=IndexPatternsContract)+ 2 more | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern)+ 82 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternListItem), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternListItem), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternListItem), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPatternListItem)+ 6 more | - | +| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField)+ 42 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern)+ 82 more | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField), [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField) | 8.1 | | | [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | 8.1 | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields), [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=getScriptedFields) | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/constants/index.ts#:~:text=getKbnTypeNames), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/constants/index.ts#:~:text=getKbnTypeNames) | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField)+ 16 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType), [utils.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/target/types/public/components/utils.d.ts#:~:text=IFieldType) | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/types.ts#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [indexed_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/indexed_fields_table/indexed_fields_table.tsx#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/tabs/utils.ts#:~:text=IndexPatternField)+ 16 more | - | | | [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/utils.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [breadcrumbs.ts](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/breadcrumbs.ts#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern), [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=IndexPattern)+ 36 more | - | | | [scripted_fields_table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/scripted_fields_table/scripted_fields_table.tsx#:~:text=removeScriptedField), [field_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/field_editor/field_editor.tsx#:~:text=removeScriptedField) | 8.1 | | | [table.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/source_filters_table/components/table/table.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields), [edit_index_pattern.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/index_pattern_management/public/components/edit_index_pattern/edit_index_pattern.tsx#:~:text=getNonScriptedFields) | 8.1 | @@ -500,8 +489,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=indexPatterns), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=indexPatterns), [controls_tab.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/controls_tab.tsx#:~:text=indexPatterns) | - | | | [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [control.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/control.ts#:~:text=Filter), [control.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/control.ts#:~:text=Filter), [vis_controller.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/vis_controller.tsx#:~:text=Filter), [vis_controller.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/vis_controller.tsx#:~:text=Filter), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=Filter), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=Filter)+ 4 more | 8.1 | -| | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=IndexPatternField), [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=IndexPatternField), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=IndexPatternField), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPatternField), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPatternField), [list_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/list_control_editor.tsx#:~:text=IndexPatternField)+ 14 more | - | | | [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPatternsContract), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.ts#:~:text=IndexPatternsContract), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=IndexPatternsContract), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.test.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.test.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.test.ts#:~:text=IndexPatternsContract), [phrase_filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/phrase_filter_manager.test.ts#:~:text=IndexPatternsContract)+ 18 more | - | +| | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=IndexPatternField), [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=IndexPatternField), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=IndexPatternField), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPatternField), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPatternField), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPatternField), [list_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/list_control_editor.tsx#:~:text=IndexPatternField)+ 14 more | - | | | [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPattern), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPattern), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=IndexPattern), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/create_search_source.ts#:~:text=IndexPattern), [create_search_source.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/create_search_source.ts#:~:text=IndexPattern), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPattern), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPattern), [field_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/field_select.tsx#:~:text=IndexPattern), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPattern), [range_control_editor.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/components/editor/range_control_editor.tsx#:~:text=IndexPattern)+ 54 more | - | | | [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [filter_manager.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.ts#:~:text=Filter), [control.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/control.ts#:~:text=Filter), [control.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/control.ts#:~:text=Filter), [vis_controller.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/vis_controller.tsx#:~:text=Filter), [vis_controller.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/vis_controller.tsx#:~:text=Filter), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=Filter), [filter_manager.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/filter_manager/filter_manager.test.ts#:~:text=Filter)+ 4 more | 8.1 | | | [list_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/list_control_factory.ts#:~:text=fetch), [range_control_factory.ts](https://github.com/elastic/kibana/tree/master/src/plugins/input_control_vis/public/control/range_control_factory.ts#:~:text=fetch) | 8.1 | @@ -542,9 +531,9 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esKuery), [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esKuery), [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esKuery) | 8.1 | | | [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esQuery), [validation.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/index.tsx#:~:text=esQuery), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=esQuery), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=esQuery), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=esQuery), [datapanel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx#:~:text=esQuery), [datapanel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx#:~:text=esQuery)+ 1 more | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/state_management/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/state_management/types.ts#:~:text=Filter), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=Filter), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=Filter)+ 16 more | 8.1 | +| | [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPatternsContract), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/utils.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/utils.ts#:~:text=IndexPatternsContract), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPatternsContract), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPatternsContract), [embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable_factory.ts#:~:text=IndexPatternsContract), [embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable_factory.ts#:~:text=IndexPatternsContract), [loader.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts#:~:text=IndexPatternsContract), [loader.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts#:~:text=IndexPatternsContract)+ 22 more | - | | | [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/field_stats.d.ts#:~:text=IndexPatternField), [field_stats.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/field_stats.ts#:~:text=IndexPatternField)+ 8 more | - | | | [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPatternsService), [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPatternsService), [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPatternsService), [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPatternsService) | - | -| | [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPatternsContract), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/utils.ts#:~:text=IndexPatternsContract), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/utils.ts#:~:text=IndexPatternsContract), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPatternsContract), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPatternsContract), [embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable_factory.ts#:~:text=IndexPatternsContract), [embeddable_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable_factory.ts#:~:text=IndexPatternsContract), [loader.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts#:~:text=IndexPatternsContract), [loader.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts#:~:text=IndexPatternsContract)+ 22 more | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/plugin.ts#:~:text=ensureDefaultDataView), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/plugin.ts#:~:text=ensureDefaultDataView) | - | | | [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPattern), [existing_fields.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.ts#:~:text=IndexPattern), [existing_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.test.ts#:~:text=IndexPattern), [existing_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.test.ts#:~:text=IndexPattern), [existing_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.test.ts#:~:text=IndexPattern), [existing_fields.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/server/routes/existing_fields.test.ts#:~:text=IndexPattern), [existing_fields.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/existing_fields.d.ts#:~:text=IndexPattern), [existing_fields.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/target/types/server/routes/existing_fields.d.ts#:~:text=IndexPattern), [loader.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/loader.ts#:~:text=IndexPattern), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=IndexPattern)+ 36 more | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/types.ts#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/embeddable/embeddable.tsx#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/state_management/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/state_management/types.ts#:~:text=Filter), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=Filter), [field_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/lens/public/indexpattern_datasource/field_item.tsx#:~:text=Filter)+ 16 more | 8.1 | @@ -595,19 +584,19 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [es_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch) | 8.1 | | | [kibana_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/kibana_services.ts#:~:text=indexPatterns) | - | | | [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=esFilters), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=esFilters), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=esFilters), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=esFilters), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=esFilters), [es_geo_line_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_line_source/es_geo_line_source.tsx#:~:text=esFilters), [es_geo_line_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_line_source/es_geo_line_source.tsx#:~:text=esFilters), [es_geo_line_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_line_source/es_geo_line_source.tsx#:~:text=esFilters), [app_sync.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/url_state/app_sync.ts#:~:text=esFilters), [app_sync.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/map_page/url_state/app_sync.ts#:~:text=esFilters)+ 9 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 115 more | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 117 more | 8.1 | +| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract) | - | | | [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 272 more | - | | | [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService) | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/lazy_load_bundle/index.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract), [index.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/public/lazy_load_bundle/index.d.ts#:~:text=IndexPatternsContract) | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/embeddable/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/embeddable/types.ts#:~:text=IndexPattern), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPattern), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPattern), [agg_field_types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/agg_field_types.ts#:~:text=IndexPattern), [agg_field_types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/agg_field_types.ts#:~:text=IndexPattern), [percentile_agg_field.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.ts#:~:text=IndexPattern), [percentile_agg_field.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.ts#:~:text=IndexPattern), [es_geo_grid_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx#:~:text=IndexPattern), [es_geo_grid_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx#:~:text=IndexPattern)+ 206 more | - | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 115 more | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 117 more | 8.1 | | | [es_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_source/es_source.ts#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=fetch) | 8.1 | | | [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [es_agg_utils.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/target/types/common/elasticsearch_util/es_agg_utils.d.ts#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField), [single_field_select.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/components/single_field_select.tsx#:~:text=IndexPatternField)+ 131 more | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/embeddable/types.ts#:~:text=IndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/embeddable/types.ts#:~:text=IndexPattern), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPattern), [es_agg_utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/common/elasticsearch_util/es_agg_utils.ts#:~:text=IndexPattern), [agg_field_types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/agg_field_types.ts#:~:text=IndexPattern), [agg_field_types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/agg_field_types.ts#:~:text=IndexPattern), [percentile_agg_field.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.ts#:~:text=IndexPattern), [percentile_agg_field.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/fields/agg/percentile_agg_field.ts#:~:text=IndexPattern), [es_geo_grid_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx#:~:text=IndexPattern), [es_geo_grid_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.tsx#:~:text=IndexPattern)+ 98 more | - | | | [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService), [create_doc_source.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/create_doc_source.ts#:~:text=IndexPatternsService) | - | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 115 more | 8.1 | +| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/reducers/map/types.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [vector_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.tsx#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter), [es_tooltip_property.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts#:~:text=Filter)+ 117 more | 8.1 | | | [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit), [es_search_source.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.tsx#:~:text=flattenHit) | - | | | [kibana_server_services.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/kibana_server_services.ts#:~:text=indexPatternsServiceFactory), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/plugin.ts#:~:text=indexPatternsServiceFactory), [indexing_routes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/server/data_indexing/indexing_routes.ts#:~:text=indexPatternsServiceFactory) | - | | | [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings), [maps_list_view.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/maps/public/routes/list_page/maps_list_view.tsx#:~:text=settings) | - | @@ -620,13 +609,13 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [index_data_visualizer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/datavisualizer/index_based/index_data_visualizer.tsx#:~:text=indexPatterns), [file_datavisualizer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/datavisualizer/file_based/file_datavisualizer.tsx#:~:text=indexPatterns), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/app.tsx#:~:text=indexPatterns), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/app.tsx#:~:text=indexPatterns), [import_jobs_flyout.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/import_export_jobs/import_jobs_flyout/import_jobs_flyout.tsx#:~:text=indexPatterns), [anomaly_charts_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx#:~:text=indexPatterns) | - | +| | [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/app.tsx#:~:text=indexPatterns), [import_jobs_flyout.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/import_export_jobs/import_jobs_flyout/import_jobs_flyout.tsx#:~:text=indexPatterns), [anomaly_charts_embeddable.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx#:~:text=indexPatterns) | - | | | [dependency_cache.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/util/dependency_cache.ts#:~:text=fieldFormats), [app.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/app.tsx#:~:text=fieldFormats), [dependency_cache.d.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/target/types/public/application/util/dependency_cache.d.ts#:~:text=fieldFormats) | - | | | [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter) | 8.1 | | | [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter) | 8.1 | | | [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_influencer_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_influencer_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter), [apply_entity_filters_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/ui_actions/apply_entity_filters_action.tsx#:~:text=Filter) | 8.1 | -| | [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [main_tabs.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/navigation_menu/main_tabs.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [use_view_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_view/use_view_action.tsx#:~:text=getUrl), [use_map_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_map/use_map_action.tsx#:~:text=getUrl), [analytics_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/analytics_panel/analytics_panel.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx#:~:text=getUrl)+ 14 more | - | -| | [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [main_tabs.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/navigation_menu/main_tabs.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [use_view_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_view/use_view_action.tsx#:~:text=getUrl), [use_map_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_map/use_map_action.tsx#:~:text=getUrl), [analytics_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/analytics_panel/analytics_panel.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx#:~:text=getUrl)+ 14 more | - | +| | [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [main_tabs.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/navigation_menu/main_tabs.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [use_view_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_view/use_view_action.tsx#:~:text=getUrl), [use_map_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_map/use_map_action.tsx#:~:text=getUrl), [analytics_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/analytics_panel/analytics_panel.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx#:~:text=getUrl)+ 15 more | - | +| | [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [use_create_url.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/contexts/kibana/use_create_url.ts#:~:text=getUrl), [main_tabs.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/components/navigation_menu/main_tabs.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [anomaly_detection_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/anomaly_detection_panel/anomaly_detection_panel.tsx#:~:text=getUrl), [use_view_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_view/use_view_action.tsx#:~:text=getUrl), [use_map_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/action_map/use_map_action.tsx#:~:text=getUrl), [analytics_panel.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/overview/components/analytics_panel/analytics_panel.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/pages/job_type/page.tsx#:~:text=getUrl), [page.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/jobs/new_job/recognize/page.tsx#:~:text=getUrl)+ 15 more | - | | | [check_license.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/application/license/check_license.tsx#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24) | - | | | [annotations.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/ml/server/routes/annotations.ts#:~:text=authc) | - | @@ -657,18 +646,20 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract) | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 38 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 40 more | - | | | [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec) | - | | | [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=indexPatterns), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=indexPatterns), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=indexPatterns), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/pages/alerts/index.tsx#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns), [observability_index_patterns.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.test.ts#:~:text=indexPatterns)+ 5 more | - | -| | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters) | 8.1 | +| | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=esFilters) | 8.1 | | | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=ExistsFilter), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=ExistsFilter) | 8.1 | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=PhraseFilter), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=PhraseFilter) | 8.1 | | | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter) | 8.1 | | | [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec), [observability_index_patterns.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/utils/observability_index_patterns.ts#:~:text=IndexPatternSpec) | - | | | [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract), [rtl_helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/rtl_helpers.tsx#:~:text=IndexPatternsContract) | - | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 38 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 40 more | - | | | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter) | 8.1 | | | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=ExistsFilter), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=ExistsFilter) | 8.1 | -| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 14 more | - | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=PhraseFilter), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=PhraseFilter) | 8.1 | +| | [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [utils.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [lens_attributes.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/lens_attributes.ts#:~:text=IndexPattern), [default_configs.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/default_configs.ts#:~:text=IndexPattern)+ 15 more | - | | | [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter), [filter_value_label.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/filter_value_label/filter_value_label.tsx#:~:text=Filter) | 8.1 | | | [use_discover_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx#:~:text=urlGenerator) | - | @@ -678,10 +669,6 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern)+ 2 more | - | -| | [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=indexPatterns), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=indexPatterns) | - | -| | [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern)+ 2 more | - | -| | [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_errors.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_errors.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [use_pack_query_last_results.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/use_pack_query_last_results.ts#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern), [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=IndexPattern) | - | | | [pack_queries_status_table.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx#:~:text=urlGenerator), [use_discover_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/osquery/public/common/hooks/use_discover_link.tsx#:~:text=urlGenerator) | - | @@ -721,8 +708,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [generate_csv.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts#:~:text=fieldsFromSource), [generate_csv.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts#:~:text=fieldsFromSource) | - | | | [generate_csv.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts#:~:text=IndexPattern), [generate_csv.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/export_types/csv_searchsource/generate_csv/generate_csv.ts#:~:text=IndexPattern) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/plugin.ts#:~:text=fieldFormats) | - | -| | [ilm_policy_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/ilm_policy_link.tsx#:~:text=getUrl) | - | -| | [ilm_policy_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/ilm_policy_link.tsx#:~:text=getUrl) | - | +| | [ilm_policy_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/components/ilm_policy_link.tsx#:~:text=getUrl) | - | +| | [ilm_policy_link.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/components/ilm_policy_link.tsx#:~:text=getUrl) | - | | | [get_csv_panel_action.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.tsx#:~:text=license%24), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/share_context_menu/index.ts#:~:text=license%24), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/management/index.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/plugin.ts#:~:text=license%24), [get_csv_panel_action.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/public/panel_actions/get_csv_panel_action.test.ts#:~:text=license%24) | - | | | [reporting_usage_collector.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/usage/reporting_usage_collector.ts#:~:text=license%24), [core.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/core.ts#:~:text=license%24) | - | | | [get_user.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/reporting/server/routes/lib/get_user.ts#:~:text=authc) | - | @@ -818,25 +805,11 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [use_risky_hosts_dashboard_button_href.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_risky_hosts_dashboard_button_href.ts#:~:text=dashboardUrlGenerator), [use_risky_hosts_dashboard_links.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_risky_hosts_dashboard_links.tsx#:~:text=dashboardUrlGenerator), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/index.tsx#:~:text=dashboardUrlGenerator) | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern)+ 30 more | - | -| | [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField) | - | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern)+ 74 more | - | -| | [middleware.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=indexPatterns), [plugin.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/plugin.tsx#:~:text=indexPatterns), [dependencies_start_mock.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/mock/endpoint/dependencies_start_mock.ts#:~:text=indexPatterns) | - | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx#:~:text=esFilters), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters), [epic.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts#:~:text=esFilters)+ 14 more | 8.1 | -| | [expandable_network.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx#:~:text=esQuery), [expandable_network.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx#:~:text=esQuery), [events_viewer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx#:~:text=esQuery), [events_viewer.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/events_viewer/events_viewer.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx#:~:text=esQuery)+ 30 more | 8.1 | -| | [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter)+ 165 more | 8.1 | -| | [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/containers/source/index.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern), [types.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/url_state/types.ts#:~:text=IIndexPattern)+ 158 more | - | -| | [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField) | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern)+ 30 more | - | -| | [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter)+ 165 more | 8.1 | -| | [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField), [field_name_cell.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx#:~:text=IndexPatternField) | - | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [entry_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern), [list_item.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx#:~:text=IndexPattern)+ 10 more | - | -| | [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/model.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [actions.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx#:~:text=Filter)+ 165 more | 8.1 | +| | [middleware.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts#:~:text=indexPatterns), [dependencies_start_mock.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/common/mock/endpoint/dependencies_start_mock.ts#:~:text=indexPatterns) | - | +| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/sourcerer/routes/index.ts#:~:text=indexPatternsServiceFactory) | - | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [isolation.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts#:~:text=mode), [isolation.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts#:~:text=mode)+ 4 more | - | | | [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [policy_config.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/common/license/policy_config.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [fleet_integration.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/fleet_integration/fleet_integration.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [license_watch.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/lib/policy/license_watch.test.ts#:~:text=mode), [isolation.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts#:~:text=mode), [isolation.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/endpoint/routes/actions/isolation.test.ts#:~:text=mode)+ 4 more | - | | | [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=authc), [create_signals_migration_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/create_signals_migration_route.ts#:~:text=authc), [delete_signals_migration_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/delete_signals_migration_route.ts#:~:text=authc), [finalize_signals_migration_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/finalize_signals_migration_route.ts#:~:text=authc), [open_close_signals_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/signals/open_close_signals_route.ts#:~:text=authc), [preview_rules_route.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/preview_rules_route.ts#:~:text=authc), [common.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/lib/timeline/utils/common.ts#:~:text=authc) | - | -| | [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=spacesService), [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=spacesService), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/plugin.ts#:~:text=spacesService) | 7.16 | -| | [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=getSpaceId), [request_context_factory.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/request_context_factory.ts#:~:text=getSpaceId), [plugin.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/server/plugin.ts#:~:text=getSpaceId) | 7.16 | | | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/index.tsx#:~:text=onAppLeave) | - | | | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/timelines/components/flyout/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/template_wrapper/bottom_bar/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/template_wrapper/bottom_bar/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/template_wrapper/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/index.tsx#:~:text=AppLeaveHandler), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/home/index.tsx#:~:text=AppLeaveHandler), [routes.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/routes.tsx#:~:text=AppLeaveHandler), [routes.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/security_solution/public/app/routes.tsx#:~:text=AppLeaveHandler)+ 3 more | - | @@ -885,15 +858,7 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index_pattern.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/mock/index_pattern.ts#:~:text=IIndexPattern), [index_pattern.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/mock/index_pattern.ts#:~:text=IIndexPattern) | - | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType) | 8.1 | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx#:~:text=esQuery), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx#:~:text=esQuery) | 8.1 | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter)+ 5 more | 8.1 | -| | [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/container/source/index.tsx#:~:text=IIndexPattern), [index_pattern.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/mock/index_pattern.ts#:~:text=IIndexPattern), [index_pattern.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/mock/index_pattern.ts#:~:text=IIndexPattern), [helpers.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/helpers.tsx#:~:text=IIndexPattern)+ 8 more | - | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter)+ 5 more | 8.1 | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType) | 8.1 | -| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/cells/index.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [store.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/store.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [model.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/store/t_grid/model.ts#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx#:~:text=Filter)+ 5 more | 8.1 | -| | [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType), [index.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx#:~:text=IFieldSubType) | 8.1 | +| | [index.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts#:~:text=indexPatternsServiceFactory) | - | @@ -922,7 +887,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [external_links.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_deprecation_logs_step/external_links.tsx#:~:text=indexPatterns) | - | +| | [external_links.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.tsx#:~:text=getUrl), [app_context.mock.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/__jest__/client_integration/helpers/app_context.mock.ts#:~:text=getUrl) | - | +| | [external_links.tsx](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.tsx#:~:text=getUrl), [app_context.mock.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/__jest__/client_integration/helpers/app_context.mock.ts#:~:text=getUrl) | - | | | [reindex_service.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24), [reindex_service.test.ts](https://github.com/elastic/kibana/tree/master/x-pack/plugins/upgrade_assistant/server/lib/reindexing/reindex_service.test.ts#:~:text=license%24) | - | @@ -1002,20 +968,20 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService)+ 44 more | - | -| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 40 more | - | +| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 36 more | - | | | [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField)+ 2 more | - | -| | [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=indexPatterns), [combo_box_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx#:~:text=indexPatterns), [query_bar_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/query_bar_wrapper.tsx#:~:text=indexPatterns), [annotation_row.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/annotation_row.tsx#:~:text=indexPatterns), [metrics_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/metrics_type.ts#:~:text=indexPatterns), [convert_series_to_datatable.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.ts#:~:text=indexPatterns), [timeseries_vis_renderer.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/timeseries_vis_renderer.tsx#:~:text=indexPatterns) | - | +| | [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=indexPatterns), [combo_box_select.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/index_pattern_select/combo_box_select.tsx#:~:text=indexPatterns), [query_bar_wrapper.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/query_bar_wrapper.tsx#:~:text=indexPatterns), [annotation_row.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/annotation_row.tsx#:~:text=indexPatterns), [metrics_type.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/metrics_type.ts#:~:text=indexPatterns), [convert_series_to_datatable.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.ts#:~:text=indexPatterns), [timeseries_visualization.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/timeseries_visualization.tsx#:~:text=indexPatterns) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/plugin.ts#:~:text=fieldFormats) | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/vis_data/request_processors/table/types.ts#:~:text=EsQueryConfig), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/vis_data/request_processors/table/types.ts#:~:text=EsQueryConfig) | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=Filter) | 8.1 | | | [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField)+ 2 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService)+ 44 more | - | -| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 40 more | - | +| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 36 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | 8.1 | | | [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=Filter), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=Filter) | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/vis_data/request_processors/table/types.ts#:~:text=EsQueryConfig), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/vis_data/request_processors/table/types.ts#:~:text=EsQueryConfig) | 8.1 | | | [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField), [convert_series_to_datatable.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/components/lib/convert_series_to_datatable.test.ts#:~:text=IndexPatternField) | - | -| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 15 more | - | +| | [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [cached_index_pattern_fetcher.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.test.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/types/index.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern), [index_patterns_utils.test.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/common/index_patterns_utils.test.ts#:~:text=IndexPattern)+ 13 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [default_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/default_search_strategy.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [cached_index_pattern_fetcher.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/lib/cached_index_pattern_fetcher.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [rollup_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/rollup_search_strategy.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/types.ts#:~:text=IndexPatternsService)+ 44 more | - | | | [abstract_search_strategy.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/lib/search_strategies/strategies/abstract_search_strategy.ts#:~:text=getNonScriptedFields), [fetch_fields.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/public/application/lib/fetch_fields.ts#:~:text=getNonScriptedFields) | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/vis_types/timeseries/server/plugin.ts#:~:text=fieldFormats) | - | @@ -1090,8 +1056,8 @@ warning: This document is auto-generated and is meant to be viewed inside our ex | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter)+ 6 more | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/plugin.ts#:~:text=ensureDefaultDataView), [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/plugin.ts#:~:text=ensureDefaultDataView) | - | | | [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern) | - | -| | [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned) | 8.1 | | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter)+ 6 more | 8.1 | +| | [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned), [locator.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/common/locator.ts#:~:text=isFilterPinned) | 8.1 | | | [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern), [visualize_top_nav.tsx](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/components/visualize_top_nav.tsx#:~:text=IndexPattern) | - | | | [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [types.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/types.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [utils.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/utils.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [use_linked_search_updates.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/application/utils/use/use_linked_search_updates.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter), [types.d.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/target/types/public/application/types.d.ts#:~:text=Filter)+ 6 more | 8.1 | | | [plugin.ts](https://github.com/elastic/kibana/tree/master/src/plugins/visualize/public/plugin.ts#:~:text=ensureDefaultDataView) | - | diff --git a/api_docs/discover.json b/api_docs/discover.json index d1c21d5e5b82f..4fe053761869a 100644 --- a/api_docs/discover.json +++ b/api_docs/discover.json @@ -21,7 +21,7 @@ }, ">" ], - "path": "src/plugins/discover/public/saved_searches/get_saved_searches.ts", + "path": "src/plugins/discover/public/services/saved_searches/get_saved_searches.ts", "deprecated": false, "children": [ { @@ -34,7 +34,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/get_saved_searches.ts", + "path": "src/plugins/discover/public/services/saved_searches/get_saved_searches.ts", "deprecated": false, "isRequired": false }, @@ -48,7 +48,7 @@ "signature": [ "GetSavedSearchDependencies" ], - "path": "src/plugins/discover/public/saved_searches/get_saved_searches.ts", + "path": "src/plugins/discover/public/services/saved_searches/get_saved_searches.ts", "deprecated": false, "isRequired": true } @@ -66,7 +66,7 @@ "signature": [ "(id?: string | undefined) => string" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "children": [ { @@ -79,7 +79,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "isRequired": false } @@ -97,7 +97,7 @@ "signature": [ "(id?: string | undefined) => string" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "children": [ { @@ -110,7 +110,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "isRequired": false } @@ -136,7 +136,7 @@ }, ") => Promise" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "children": [ { @@ -155,7 +155,7 @@ "text": "SavedSearch" } ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "isRequired": true } @@ -172,10 +172,10 @@ "description": [], "signature": [ "() => Promise" ], - "path": "src/plugins/discover/public/shared/index.ts", + "path": "src/plugins/discover/public/utils/index.ts", "deprecated": false, "children": [], "returnComment": [], @@ -199,7 +199,7 @@ }, ") => Promise" ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "children": [ { @@ -218,7 +218,7 @@ "text": "SavedSearch" } ], - "path": "src/plugins/discover/public/saved_searches/saved_searches_utils.ts", + "path": "src/plugins/discover/public/services/saved_searches/saved_searches_utils.ts", "deprecated": false, "isRequired": true } @@ -471,6 +471,37 @@ ], "path": "src/plugins/discover/public/locator.ts", "deprecated": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverAppLocatorParams.viewMode", + "type": "CompoundType", + "tags": [], + "label": "viewMode", + "description": [ + "\nTable view: Documents vs Field Statistics" + ], + "signature": [ + "VIEW_MODE", + " | undefined" + ], + "path": "src/plugins/discover/public/locator.ts", + "deprecated": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverAppLocatorParams.hideAggregatedPreview", + "type": "CompoundType", + "tags": [], + "label": "hideAggregatedPreview", + "description": [ + "\nHide mini distribution/preview charts when in Field Statistics mode" + ], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/discover/public/locator.ts", + "deprecated": false } ], "initialIsOpen": false @@ -692,6 +723,33 @@ ], "path": "src/plugins/discover/public/url_generator.ts", "deprecated": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverUrlGeneratorState.viewMode", + "type": "CompoundType", + "tags": [], + "label": "viewMode", + "description": [], + "signature": [ + "VIEW_MODE", + " | undefined" + ], + "path": "src/plugins/discover/public/url_generator.ts", + "deprecated": false + }, + { + "parentPluginId": "discover", + "id": "def-public.DiscoverUrlGeneratorState.hideAggregatedPreview", + "type": "CompoundType", + "tags": [], + "label": "hideAggregatedPreview", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/discover/public/url_generator.ts", + "deprecated": false } ], "initialIsOpen": false @@ -731,7 +789,7 @@ "SearchOutput", ">" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false, "children": [ { @@ -751,7 +809,7 @@ "text": "SavedSearch" } ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false, "children": [], "returnComment": [] @@ -766,7 +824,7 @@ "tags": [], "label": "SavedSearch", "description": [], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false, "children": [ { @@ -777,15 +835,7 @@ "label": "searchSource", "description": [], "signature": [ - "{ create: () => ", - { - "pluginId": "data", - "scope": "common", - "docId": "kibDataSearchPluginApi", - "section": "def-common.SearchSource", - "text": "SearchSource" - }, - "; history: Record[]; setPreferredSearchStrategyId: (searchStrategyId: string) => void; setField: (field: K, value: ", + "{ history: Record[]; setOverwriteDataViewType: (overwriteType: string | false | undefined) => void; setField: (field: K, value: ", { "pluginId": "data", "scope": "common", @@ -801,7 +851,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - "; removeField: (field: K) => ", + "; removeField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -833,7 +883,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "; getField: (field: K, recurse?: boolean) => ", + "; getField: (field: K, recurse?: boolean) => ", { "pluginId": "data", "scope": "common", @@ -841,7 +891,7 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; getOwnField: (field: K) => ", + "[K]; getOwnField: (field: K) => ", { "pluginId": "data", "scope": "common", @@ -849,7 +899,15 @@ "section": "def-common.SearchSourceFields", "text": "SearchSourceFields" }, - "[K]; createCopy: () => ", + "[K]; create: () => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.SearchSource", + "text": "SearchSource" + }, + "; createCopy: () => ", { "pluginId": "data", "scope": "common", @@ -873,7 +931,7 @@ "section": "def-common.SearchSource", "text": "SearchSource" }, - ", \"create\" | \"history\" | \"setPreferredSearchStrategyId\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", + ", \"history\" | \"setOverwriteDataViewType\" | \"setField\" | \"removeField\" | \"setFields\" | \"getId\" | \"getFields\" | \"getField\" | \"getOwnField\" | \"create\" | \"createCopy\" | \"createChild\" | \"setParent\" | \"getParent\" | \"fetch$\" | \"fetch\" | \"onRequestStart\" | \"getSearchRequestBody\" | \"destroy\" | \"getSerializedFields\" | \"serialize\"> | undefined, options?: ", { "pluginId": "data", "scope": "common", @@ -955,7 +1013,7 @@ "SavedObjectReference", "[]; }; }" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -968,7 +1026,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -981,7 +1039,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -995,7 +1053,7 @@ "SortOrder", "[] | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1008,7 +1066,7 @@ "signature": [ "string[] | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1021,7 +1079,7 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1036,7 +1094,7 @@ "DiscoverGridSettingsColumn", "> | undefined; } | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1049,7 +1107,7 @@ "signature": [ "boolean | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1062,7 +1120,7 @@ "signature": [ "{ outcome?: \"conflict\" | \"aliasMatch\" | \"exactMatch\" | undefined; aliasTargetId?: string | undefined; errorJSON?: string | undefined; } | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1076,7 +1134,7 @@ "VIEW_MODE", " | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false }, { @@ -1089,7 +1147,7 @@ "signature": [ "boolean | undefined" ], - "path": "src/plugins/discover/public/saved_searches/types.ts", + "path": "src/plugins/discover/public/services/saved_searches/types.ts", "deprecated": false } ], @@ -1119,7 +1177,7 @@ "text": "EmbeddableInput" } ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false, "children": [ { @@ -1132,7 +1190,7 @@ "signature": [ "{ from: string; to: string; mode?: \"absolute\" | \"relative\" | undefined; }" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1152,7 +1210,7 @@ }, " | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1172,7 +1230,7 @@ }, "[] | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1185,7 +1243,7 @@ "signature": [ "boolean | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1198,7 +1256,7 @@ "signature": [ "string[] | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false }, { @@ -1212,7 +1270,7 @@ "SortOrder", "[] | undefined" ], - "path": "src/plugins/discover/public/application/embeddable/types.ts", + "path": "src/plugins/discover/public/embeddable/types.ts", "deprecated": false } ], @@ -1643,6 +1701,20 @@ "path": "src/plugins/discover/common/index.ts", "deprecated": false, "initialIsOpen": false + }, + { + "parentPluginId": "discover", + "id": "def-common.TRUNCATE_MAX_HEIGHT", + "type": "string", + "tags": [], + "label": "TRUNCATE_MAX_HEIGHT", + "description": [], + "signature": [ + "\"truncate:maxHeight\"" + ], + "path": "src/plugins/discover/common/index.ts", + "deprecated": false, + "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 11185327d4d35..3115411252d25 100644 --- a/api_docs/discover.mdx +++ b/api_docs/discover.mdx @@ -18,7 +18,7 @@ Contact [Data Discovery](https://github.com/orgs/elastic/teams/kibana-data-disco | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 84 | 0 | 58 | 7 | +| 89 | 0 | 61 | 7 | ## Client diff --git a/api_docs/elastic_apm_synthtrace.json b/api_docs/elastic_apm_synthtrace.json index 13d950c53a8df..0f47f0f26abe0 100644 --- a/api_docs/elastic_apm_synthtrace.json +++ b/api_docs/elastic_apm_synthtrace.json @@ -9,8 +9,293 @@ "objects": [] }, "server": { - "classes": [], + "classes": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient", + "type": "Class", + "tags": [], + "label": "SynthtraceEsClient", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + "{ perf: (name: string, cb: () => T) => T; debug: (...args: any[]) => void; info: (...args: any[]) => void; error: (...args: any[]) => void; }" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.clean", + "type": "Function", + "tags": [], + "label": "clean", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.index", + "type": "Function", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "(events: ", + "Fields", + "[]) => Promise<", + "IndicesRefreshResponse", + ">" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.SynthtraceEsClient.index.$1", + "type": "Array", + "tags": [], + "label": "events", + "description": [], + "signature": [ + "Fields", + "[]" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/client/synthtrace_es_client.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], "functions": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.browser", + "type": "Function", + "tags": [], + "label": "browser", + "description": [], + "signature": [ + "(serviceName: string, production: string, userAgent: Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>) => ", + "Browser" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/browser.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.browser.$1", + "type": "string", + "tags": [], + "label": "serviceName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/browser.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.browser.$2", + "type": "string", + "tags": [], + "label": "production", + "description": [], + "signature": [ + "string" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/browser.ts", + "deprecated": false, + "isRequired": true + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.browser.$3", + "type": "Object", + "tags": [], + "label": "userAgent", + "description": [], + "signature": [ + "Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/browser.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets", + "type": "Function", + "tags": [], + "label": "cleanWriteTargets", + "description": [], + "signature": [ + "({\n writeTargets,\n client,\n logger,\n}: { writeTargets: ", + "ElasticsearchOutputWriteTargets", + "; client: ", + "default", + "; logger: { perf: (name: string, cb: () => T) => T; debug: (...args: any[]) => void; info: (...args: any[]) => void; error: (...args: any[]) => void; }; }) => Promise" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets.$1", + "type": "Object", + "tags": [], + "label": "{\n writeTargets,\n client,\n logger,\n}", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets.$1.writeTargets", + "type": "Object", + "tags": [], + "label": "writeTargets", + "description": [], + "signature": [ + "ElasticsearchOutputWriteTargets" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets.$1.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.cleanWriteTargets.$1.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + "{ perf: (name: string, cb: () => T) => T; debug: (...args: any[]) => void; info: (...args: any[]) => void; error: (...args: any[]) => void; }" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/clean_write_targets.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.createLogger", + "type": "Function", + "tags": [], + "label": "createLogger", + "description": [], + "signature": [ + "(logLevel: ", + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.LogLevel", + "text": "LogLevel" + }, + ") => { perf: (name: string, cb: () => T) => T; debug: (...args: any[]) => void; info: (...args: any[]) => void; error: (...args: any[]) => void; }" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/create_logger.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.createLogger.$1", + "type": "Enum", + "tags": [], + "label": "logLevel", + "description": [], + "signature": [ + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.LogLevel", + "text": "LogLevel" + } + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/create_logger.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@elastic/apm-synthtrace", "id": "def-server.getBreakdownMetrics", @@ -47,6 +332,22 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.getChromeUserAgentDefaults", + "type": "Function", + "tags": [], + "label": "getChromeUserAgentDefaults", + "description": [], + "signature": [ + "() => Partial<{ 'user_agent.original': string; 'user_agent.os.name': string; 'user_agent.name': string; 'user_agent.device.name': string; 'user_agent.version': number; }>" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/defaults/get_chrome_user_agent_defaults.ts", + "deprecated": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@elastic/apm-synthtrace", "id": "def-server.getObserverDefaults", @@ -75,8 +376,14 @@ "(events: ", "Fields", "[]) => { \"metricset.name\": string; 'span.destination.service.response_time.sum.us': number; 'span.destination.service.response_time.count': number; '@timestamp'?: number | undefined; 'agent.name'?: string | undefined; 'agent.version'?: string | undefined; 'container.id'?: string | undefined; 'ecs.version'?: string | undefined; 'event.outcome'?: string | undefined; 'event.ingested'?: number | undefined; 'error.id'?: string | undefined; 'error.exception'?: ", - "Exception", - "[] | undefined; 'error.grouping_name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'host.name'?: string | undefined; 'observer.version'?: string | undefined; 'observer.version_major'?: number | undefined; 'parent.id'?: string | undefined; 'processor.event'?: string | undefined; 'processor.name'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.id'?: string | undefined; 'transaction.duration.us'?: number | undefined; 'transaction.duration.histogram'?: { values: number[]; counts: number[]; } | undefined; 'transaction.sampled'?: true | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'service.node.name'?: string | undefined; 'span.id'?: string | undefined; 'span.name'?: string | undefined; 'span.type'?: string | undefined; 'span.subtype'?: string | undefined; 'span.duration.us'?: number | undefined; 'span.destination.service.name'?: string | undefined; 'span.destination.service.resource'?: string | undefined; 'span.destination.service.type'?: string | undefined; 'span.self_time.count'?: number | undefined; 'span.self_time.sum.us'?: number | undefined; 'system.process.memory.size'?: number | undefined; 'system.memory.actual.free'?: number | undefined; 'system.memory.total'?: number | undefined; 'system.cpu.total.norm.pct'?: number | undefined; 'system.process.memory.rss.bytes'?: number | undefined; 'system.process.cpu.total.norm.pct'?: number | undefined; }[]" + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.Exception", + "text": "Exception" + }, + "[] | undefined; 'error.grouping_name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'host.name'?: string | undefined; 'kubernetes.pod.uid'?: string | undefined; 'observer.version'?: string | undefined; 'observer.version_major'?: number | undefined; 'parent.id'?: string | undefined; 'processor.event'?: string | undefined; 'processor.name'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.id'?: string | undefined; 'transaction.duration.us'?: number | undefined; 'transaction.duration.histogram'?: { values: number[]; counts: number[]; } | undefined; 'transaction.sampled'?: true | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'service.node.name'?: string | undefined; 'span.id'?: string | undefined; 'span.name'?: string | undefined; 'span.type'?: string | undefined; 'span.subtype'?: string | undefined; 'span.duration.us'?: number | undefined; 'span.destination.service.name'?: string | undefined; 'span.destination.service.resource'?: string | undefined; 'span.destination.service.type'?: string | undefined; 'span.self_time.count'?: number | undefined; 'span.self_time.sum.us'?: number | undefined; 'system.process.memory.size'?: number | undefined; 'system.memory.actual.free'?: number | undefined; 'system.memory.total'?: number | undefined; 'system.cpu.total.norm.pct'?: number | undefined; 'system.process.memory.rss.bytes'?: number | undefined; 'system.process.cpu.total.norm.pct'?: number | undefined; }[]" ], "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_span_destination_metrics.ts", "deprecated": false, @@ -111,8 +418,14 @@ "(events: ", "Fields", "[]) => { 'transaction.duration.histogram': { values: number[]; counts: number[]; }; _doc_count: number; '@timestamp'?: number | undefined; 'agent.name'?: string | undefined; 'agent.version'?: string | undefined; 'container.id'?: string | undefined; 'ecs.version'?: string | undefined; 'event.outcome'?: string | undefined; 'event.ingested'?: number | undefined; 'error.id'?: string | undefined; 'error.exception'?: ", - "Exception", - "[] | undefined; 'error.grouping_name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'host.name'?: string | undefined; 'metricset.name'?: string | undefined; 'observer.version'?: string | undefined; 'observer.version_major'?: number | undefined; 'parent.id'?: string | undefined; 'processor.event'?: string | undefined; 'processor.name'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.id'?: string | undefined; 'transaction.duration.us'?: number | undefined; 'transaction.sampled'?: true | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'service.node.name'?: string | undefined; 'span.id'?: string | undefined; 'span.name'?: string | undefined; 'span.type'?: string | undefined; 'span.subtype'?: string | undefined; 'span.duration.us'?: number | undefined; 'span.destination.service.name'?: string | undefined; 'span.destination.service.resource'?: string | undefined; 'span.destination.service.type'?: string | undefined; 'span.destination.service.response_time.sum.us'?: number | undefined; 'span.destination.service.response_time.count'?: number | undefined; 'span.self_time.count'?: number | undefined; 'span.self_time.sum.us'?: number | undefined; 'system.process.memory.size'?: number | undefined; 'system.memory.actual.free'?: number | undefined; 'system.memory.total'?: number | undefined; 'system.cpu.total.norm.pct'?: number | undefined; 'system.process.memory.rss.bytes'?: number | undefined; 'system.process.cpu.total.norm.pct'?: number | undefined; }[]" + { + "pluginId": "@elastic/apm-synthtrace", + "scope": "server", + "docId": "kibElasticApmSynthtracePluginApi", + "section": "def-server.Exception", + "text": "Exception" + }, + "[] | undefined; 'error.grouping_name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'host.name'?: string | undefined; 'kubernetes.pod.uid'?: string | undefined; 'metricset.name'?: string | undefined; 'observer.version'?: string | undefined; 'observer.version_major'?: number | undefined; 'parent.id'?: string | undefined; 'processor.event'?: string | undefined; 'processor.name'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; 'transaction.id'?: string | undefined; 'transaction.duration.us'?: number | undefined; 'transaction.sampled'?: true | undefined; 'service.name'?: string | undefined; 'service.environment'?: string | undefined; 'service.node.name'?: string | undefined; 'span.id'?: string | undefined; 'span.name'?: string | undefined; 'span.type'?: string | undefined; 'span.subtype'?: string | undefined; 'span.duration.us'?: number | undefined; 'span.destination.service.name'?: string | undefined; 'span.destination.service.resource'?: string | undefined; 'span.destination.service.type'?: string | undefined; 'span.destination.service.response_time.sum.us'?: number | undefined; 'span.destination.service.response_time.count'?: number | undefined; 'span.self_time.count'?: number | undefined; 'span.self_time.sum.us'?: number | undefined; 'system.process.memory.size'?: number | undefined; 'system.memory.actual.free'?: number | undefined; 'system.memory.total'?: number | undefined; 'system.cpu.total.norm.pct'?: number | undefined; 'system.process.memory.rss.bytes'?: number | undefined; 'system.process.cpu.total.norm.pct'?: number | undefined; }[]" ], "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_transaction_metrics.ts", "deprecated": false, @@ -136,6 +449,52 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.getWriteTargets", + "type": "Function", + "tags": [], + "label": "getWriteTargets", + "description": [], + "signature": [ + "({\n client,\n}: { client: ", + "default", + "; }) => Promise<", + "ElasticsearchOutputWriteTargets", + ">" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_write_targets.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.getWriteTargets.$1", + "type": "Object", + "tags": [], + "label": "{\n client,\n}", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_write_targets.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.getWriteTargets.$1.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/get_write_targets.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@elastic/apm-synthtrace", "id": "def-server.service", @@ -305,8 +664,44 @@ "initialIsOpen": false } ], - "interfaces": [], - "enums": [], + "interfaces": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.Exception", + "type": "Interface", + "tags": [], + "label": "Exception", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/entity.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.Exception.message", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/entity.ts", + "deprecated": false + } + ], + "initialIsOpen": false + } + ], + "enums": [ + { + "parentPluginId": "@elastic/apm-synthtrace", + "id": "def-server.LogLevel", + "type": "Enum", + "tags": [], + "label": "LogLevel", + "description": [], + "path": "packages/elastic-apm-synthtrace/src/lib/utils/create_logger.ts", + "deprecated": false, + "initialIsOpen": false + } + ], "misc": [], "objects": [] }, diff --git a/api_docs/elastic_apm_synthtrace.mdx b/api_docs/elastic_apm_synthtrace.mdx index b41afe6c7357c..6b9b560494e26 100644 --- a/api_docs/elastic_apm_synthtrace.mdx +++ b/api_docs/elastic_apm_synthtrace.mdx @@ -18,10 +18,19 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 18 | 0 | 18 | 6 | +| 43 | 0 | 43 | 6 | ## Server ### Functions +### Classes + + +### Interfaces + + +### Enums + + diff --git a/api_docs/elastic_datemath.json b/api_docs/elastic_datemath.json index 166f816481b33..44dcf5f5257d8 100644 --- a/api_docs/elastic_datemath.json +++ b/api_docs/elastic_datemath.json @@ -105,7 +105,7 @@ "label": "Unit", "description": [], "signature": [ - "\"y\" | \"M\" | \"w\" | \"d\" | \"h\" | \"m\" | \"s\" | \"ms\"" + "\"ms\" | \"s\" | \"m\" | \"h\" | \"d\" | \"w\" | \"M\" | \"y\"" ], "path": "packages/elastic-datemath/src/index.ts", "deprecated": false, @@ -119,13 +119,7 @@ "label": "units", "description": [], "signature": [ - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "[]" ], "path": "packages/elastic-datemath/src/index.ts", @@ -140,13 +134,7 @@ "label": "unitsAsc", "description": [], "signature": [ - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "[]" ], "path": "packages/elastic-datemath/src/index.ts", @@ -161,13 +149,7 @@ "label": "unitsDesc", "description": [], "signature": [ - { - "pluginId": "@elastic/datemath", - "scope": "server", - "docId": "kibElasticDatemathPluginApi", - "section": "def-server.Unit", - "text": "Unit" - }, + "Unit", "[]" ], "path": "packages/elastic-datemath/src/index.ts", @@ -182,7 +164,7 @@ "label": "UnitsMap", "description": [], "signature": [ - "{ y: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; M: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; w: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; d: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; h: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; m: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; s: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; ms: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; }" + "{ ms: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; s: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; m: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; h: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; d: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; w: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; M: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; y: { weight: number; type: \"calendar\" | \"fixed\" | \"mixed\"; base: number; }; }" ], "path": "packages/elastic-datemath/src/index.ts", "deprecated": false, diff --git a/api_docs/embeddable.json b/api_docs/embeddable.json index 8e6bc29a0f5a8..cda4be2d4d995 100644 --- a/api_docs/embeddable.json +++ b/api_docs/embeddable.json @@ -498,7 +498,7 @@ "section": "def-public.ToastsApi", "text": "ToastsApi" }, - ", \"get$\" | \"add\" | \"remove\" | \"addSuccess\" | \"addWarning\" | \"addDanger\" | \"addError\" | \"addInfo\">" + ", \"add\" | \"get$\" | \"remove\" | \"addSuccess\" | \"addWarning\" | \"addDanger\" | \"addError\" | \"addInfo\">" ], "path": "src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx", "deprecated": false, @@ -2534,48 +2534,48 @@ "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.IEmbeddable", - "text": "IEmbeddable" + "section": "def-public.IContainer", + "text": "IContainer" }, - "<", + "<{}, ", { "pluginId": "embeddable", - "scope": "common", + "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableInput", - "text": "EmbeddableInput" + "section": "def-public.ContainerInput", + "text": "ContainerInput" }, - ", ", + "<{}>, ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.EmbeddableOutput", - "text": "EmbeddableOutput" + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" }, "> | ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" + "section": "def-public.IEmbeddable", + "text": "IEmbeddable" }, - "<{}, ", + "<", { "pluginId": "embeddable", - "scope": "public", + "scope": "common", "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" }, - "<{}>, ", + ", ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" + "section": "def-public.EmbeddableOutput", + "text": "EmbeddableOutput" }, ">" ], @@ -6150,7 +6150,7 @@ "section": "def-public.ContainerOutput", "text": "ContainerOutput" }, - "> | undefined) => Promise<", + "> | undefined) => Promise" + ">" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable_factory.ts", "deprecated": false, @@ -6267,7 +6267,7 @@ "section": "def-public.ContainerOutput", "text": "ContainerOutput" }, - "> | undefined) => Promise<", + "> | undefined) => Promise" + " | undefined>" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable_factory.ts", "deprecated": false, @@ -7626,48 +7626,48 @@ "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.IEmbeddable", - "text": "IEmbeddable" + "section": "def-public.IContainer", + "text": "IContainer" }, - "<", + "<{}, ", { "pluginId": "embeddable", - "scope": "common", + "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableInput", - "text": "EmbeddableInput" + "section": "def-public.ContainerInput", + "text": "ContainerInput" }, - ", ", + "<{}>, ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.EmbeddableOutput", - "text": "EmbeddableOutput" + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" }, "> | ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" + "section": "def-public.IEmbeddable", + "text": "IEmbeddable" }, - "<{}, ", + "<", { "pluginId": "embeddable", - "scope": "public", + "scope": "common", "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" }, - "<{}>, ", + ", ", { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" + "section": "def-public.EmbeddableOutput", + "text": "EmbeddableOutput" }, ">" ], @@ -7686,7 +7686,7 @@ "\nRenders the embeddable at the given node." ], "signature": [ - "(domNode: Element | HTMLElement) => void" + "(domNode: HTMLElement | Element) => void" ], "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", "deprecated": false, @@ -7699,7 +7699,7 @@ "label": "domNode", "description": [], "signature": [ - "Element | HTMLElement" + "HTMLElement | Element" ], "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", "deprecated": false, @@ -8166,7 +8166,7 @@ "section": "def-common.Datatable", "text": "Datatable" }, - ", \"rows\" | \"columns\">; column: number; row: number; value: any; }[]; timeFieldName?: string | undefined; negate?: boolean | undefined; }" + ", \"columns\" | \"rows\">; column: number; row: number; value: any; }[]; timeFieldName?: string | undefined; negate?: boolean | undefined; }" ], "path": "src/plugins/embeddable/public/lib/triggers/triggers.ts", "deprecated": false @@ -8307,7 +8307,7 @@ "section": "def-public.EmbeddableFactory", "text": "EmbeddableFactory" }, - ", \"createFromSavedObject\" | \"isContainerType\" | \"getExplicitInput\" | \"savedObjectMetaData\" | \"canCreateNew\" | \"getDefaultInput\" | \"telemetry\" | \"extract\" | \"inject\" | \"migrations\" | \"grouping\" | \"getIconType\" | \"getDescription\">>" + ", \"telemetry\" | \"inject\" | \"extract\" | \"migrations\" | \"createFromSavedObject\" | \"isContainerType\" | \"getExplicitInput\" | \"savedObjectMetaData\" | \"canCreateNew\" | \"getDefaultInput\" | \"grouping\" | \"getIconType\" | \"getDescription\">>" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable_factory_definition.ts", "deprecated": false, diff --git a/api_docs/es_ui_shared.json b/api_docs/es_ui_shared.json index da0ba7b688c93..5560b8e52ba28 100644 --- a/api_docs/es_ui_shared.json +++ b/api_docs/es_ui_shared.json @@ -855,7 +855,7 @@ }, " extends Pick,Pick<", "IAceEditorProps", - ", \"onChange\" | \"name\" | \"defaultValue\" | \"className\" | \"placeholder\" | \"style\" | \"onCopy\" | \"onPaste\" | \"onFocus\" | \"onBlur\" | \"onInput\" | \"onLoad\" | \"onScroll\" | \"value\" | \"height\" | \"width\" | \"fontSize\" | \"theme\" | \"showGutter\" | \"showPrintMargin\" | \"highlightActiveLine\" | \"focus\" | \"cursorStart\" | \"wrapEnabled\" | \"readOnly\" | \"minLines\" | \"maxLines\" | \"navigateToFileEnd\" | \"debounceChangePeriod\" | \"enableBasicAutocompletion\" | \"enableLiveAutocompletion\" | \"tabSize\" | \"scrollMargin\" | \"enableSnippets\" | \"onSelectionChange\" | \"onCursorChange\" | \"onValidate\" | \"onBeforeLoad\" | \"onSelection\" | \"editorProps\" | \"setOptions\" | \"keyboardHandler\" | \"commands\" | \"annotations\" | \"markers\">" + ", \"name\" | \"onChange\" | \"defaultValue\" | \"className\" | \"placeholder\" | \"style\" | \"onCopy\" | \"onPaste\" | \"onFocus\" | \"onBlur\" | \"onInput\" | \"onLoad\" | \"onScroll\" | \"value\" | \"height\" | \"width\" | \"fontSize\" | \"theme\" | \"showGutter\" | \"showPrintMargin\" | \"highlightActiveLine\" | \"focus\" | \"cursorStart\" | \"wrapEnabled\" | \"readOnly\" | \"minLines\" | \"maxLines\" | \"navigateToFileEnd\" | \"debounceChangePeriod\" | \"enableBasicAutocompletion\" | \"enableLiveAutocompletion\" | \"tabSize\" | \"scrollMargin\" | \"enableSnippets\" | \"onSelectionChange\" | \"onCursorChange\" | \"onValidate\" | \"onBeforeLoad\" | \"onSelection\" | \"editorProps\" | \"setOptions\" | \"keyboardHandler\" | \"commands\" | \"annotations\" | \"markers\">" ], "path": "src/plugins/es_ui_shared/public/components/code_editor/code_editor.tsx", "deprecated": false, diff --git a/api_docs/event_log.json b/api_docs/event_log.json index 60a3d9e83be7b..4d5192092dd12 100644 --- a/api_docs/event_log.json +++ b/api_docs/event_log.json @@ -753,7 +753,7 @@ "label": "logEvent", "description": [], "signature": [ - "(properties: DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" + "(properties: DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -766,7 +766,7 @@ "label": "properties", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -783,7 +783,7 @@ "label": "startTiming", "description": [], "signature": [ - "(event: DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" + "(event: DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -796,7 +796,7 @@ "label": "event", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -813,7 +813,7 @@ "label": "stopTiming", "description": [], "signature": [ - "(event: DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" + "(event: DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => void" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -826,7 +826,7 @@ "label": "event", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -886,7 +886,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ tags?: string[] | undefined; kibana?: Readonly<{ version?: string | undefined; alert?: Readonly<{ rule?: Readonly<{ execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ total_indexing_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" + "(Readonly<{ tags?: string[] | undefined; kibana?: Readonly<{ version?: string | undefined; alert?: Readonly<{ rule?: Readonly<{ execution?: Readonly<{ metrics?: Readonly<{ total_indexing_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined)[]" ], "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", "deprecated": false @@ -905,7 +905,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -919,7 +919,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ tags?: string[] | undefined; kibana?: Readonly<{ version?: string | undefined; alert?: Readonly<{ rule?: Readonly<{ execution?: Readonly<{ status?: string | undefined; metrics?: Readonly<{ total_indexing_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined" + "Readonly<{ tags?: string[] | undefined; kibana?: Readonly<{ version?: string | undefined; alert?: Readonly<{ rule?: Readonly<{ execution?: Readonly<{ metrics?: Readonly<{ total_indexing_duration_ms?: number | undefined; total_search_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; } & {}> | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}> | undefined" ], "path": "x-pack/plugins/event_log/generated/schemas.ts", "deprecated": false, @@ -1138,7 +1138,7 @@ "label": "getLogger", "description": [], "signature": [ - "(properties: DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => ", + "(properties: DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined) => ", { "pluginId": "eventLog", "scope": "server", @@ -1158,7 +1158,7 @@ "label": "properties", "description": [], "signature": [ - "DeepPartial | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ start?: string | undefined; type?: string[] | undefined; id?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ id?: string | undefined; description?: string | undefined; name?: string | undefined; version?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" + "DeepPartial | undefined; status?: string | undefined; uuid?: string | undefined; status_order?: number | undefined; } & {}> | undefined; } & {}> | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; rel?: string | undefined; namespace?: string | undefined; type_id?: string | undefined; } & {}>[] | undefined; alerting?: Readonly<{ status?: string | undefined; instance_id?: string | undefined; action_group_id?: string | undefined; action_subgroup?: string | undefined; } & {}> | undefined; server_uuid?: string | undefined; task?: Readonly<{ scheduled?: string | undefined; schedule_delay?: number | undefined; } & {}> | undefined; space_ids?: string[] | undefined; } & {}> | undefined; user?: Readonly<{ name?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: string | undefined; message?: string | undefined; code?: string | undefined; stack_trace?: string | undefined; } & {}> | undefined; message?: string | undefined; event?: Readonly<{ type?: string[] | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; url?: string | undefined; code?: string | undefined; original?: string | undefined; action?: string | undefined; kind?: string | undefined; severity?: number | undefined; created?: string | undefined; dataset?: string | undefined; duration?: number | undefined; hash?: string | undefined; ingested?: string | undefined; module?: string | undefined; provider?: string | undefined; reason?: string | undefined; reference?: string | undefined; risk_score?: number | undefined; risk_score_norm?: number | undefined; sequence?: number | undefined; timezone?: string | undefined; } & {}> | undefined; rule?: Readonly<{ name?: string | undefined; version?: string | undefined; description?: string | undefined; id?: string | undefined; license?: string | undefined; category?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; uuid?: string | undefined; } & {}> | undefined; '@timestamp'?: string | undefined; log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; ecs?: Readonly<{ version?: string | undefined; } & {}> | undefined; } & {}>>> | undefined" ], "path": "x-pack/plugins/event_log/server/types.ts", "deprecated": false, @@ -1166,6 +1166,21 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "eventLog", + "id": "def-server.IEventLogService.getIndexPattern", + "type": "Function", + "tags": [], + "label": "getIndexPattern", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/event_log/server/types.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "lifecycle": "setup", diff --git a/api_docs/event_log.mdx b/api_docs/event_log.mdx index 6e25f1ddfa019..8be153435a703 100644 --- a/api_docs/event_log.mdx +++ b/api_docs/event_log.mdx @@ -18,7 +18,7 @@ Contact [Kibana Alerting](https://github.com/orgs/elastic/teams/kibana-alerting- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 80 | 0 | 80 | 4 | +| 81 | 0 | 81 | 4 | ## Server diff --git a/api_docs/expression_image.json b/api_docs/expression_image.json index f92cd0d258e1d..3ef746c8819dd 100644 --- a/api_docs/expression_image.json +++ b/api_docs/expression_image.json @@ -346,7 +346,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"top\" | \"left\" | \"bottom\" | \"right\"" ], "path": "src/plugins/expression_image/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_metric.json b/api_docs/expression_metric.json index 4ffb80c5a0cec..15ac62a53293f 100644 --- a/api_docs/expression_metric.json +++ b/api_docs/expression_metric.json @@ -121,7 +121,7 @@ "label": "metricFunction", "description": [], "signature": [ - "() => { name: \"metric\"; aliases: never[]; type: \"render\"; inputTypes: (\"number\" | \"string\" | \"null\")[]; help: string; args: { label: { types: \"string\"[]; aliases: string[]; help: string; default: string; }; labelFont: { types: \"style\"[]; help: string; default: string; }; metricFont: { types: \"style\"[]; help: string; default: string; }; metricFormat: { types: \"string\"[]; aliases: string[]; help: string; }; }; fn: (input: string | number | null, { label, labelFont, metricFont, metricFormat }: ", + "() => { name: \"metric\"; aliases: never[]; type: \"render\"; inputTypes: (\"string\" | \"number\" | \"null\")[]; help: string; args: { label: { types: \"string\"[]; aliases: string[]; help: string; default: string; }; labelFont: { types: \"style\"[]; help: string; default: string; }; metricFont: { types: \"style\"[]; help: string; default: string; }; metricFormat: { types: \"string\"[]; aliases: string[]; help: string; }; }; fn: (input: string | number | null, { label, labelFont, metricFont, metricFormat }: ", { "pluginId": "expressionMetric", "scope": "common", @@ -129,7 +129,7 @@ "section": "def-common.Arguments", "text": "Arguments" }, - ") => { type: \"render\"; as: string; value: { metric: React.ReactText; label: string; labelFont: ", + ") => { type: \"render\"; as: string; value: { metric: string | number; label: string; labelFont: ", { "pluginId": "expressions", "scope": "common", diff --git a/api_docs/expression_metric_vis.json b/api_docs/expression_metric_vis.json index 251e916797e7e..0aa40780768d0 100644 --- a/api_docs/expression_metric_vis.json +++ b/api_docs/expression_metric_vis.json @@ -133,25 +133,6 @@ "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.colorSchema", - "type": "Enum", - "tags": [], - "label": "colorSchema", - "description": [], - "signature": [ - { - "pluginId": "charts", - "scope": "common", - "docId": "kibChartsPluginApi", - "section": "def-common.ColorSchemas", - "text": "ColorSchemas" - } - ], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricArguments.colorMode", @@ -160,31 +141,11 @@ "label": "colorMode", "description": [], "signature": [ - "\"Background\" | \"Labels\" | \"None\"" + "\"None\" | \"Background\" | \"Labels\"" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.useRanges", - "type": "boolean", - "tags": [], - "label": "useRanges", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.invertColors", - "type": "boolean", - "tags": [], - "label": "invertColors", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricArguments.showLabels", @@ -197,40 +158,28 @@ }, { "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.bgFill", - "type": "string", - "tags": [], - "label": "bgFill", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.subText", - "type": "string", - "tags": [], - "label": "subText", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", - "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricArguments.colorRange", - "type": "Array", + "id": "def-common.MetricArguments.palette", + "type": "Object", "tags": [], - "label": "colorRange", + "label": "palette", "description": [], "signature": [ { - "pluginId": "expressions", + "pluginId": "charts", "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Range", - "text": "Range" + "docId": "kibChartsPluginApi", + "section": "def-common.PaletteOutput", + "text": "PaletteOutput" }, - "[]" + "<", + { + "pluginId": "charts", + "scope": "common", + "docId": "kibChartsPluginApi", + "section": "def-common.CustomPaletteState", + "text": "CustomPaletteState" + }, + "> | undefined" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false @@ -290,7 +239,14 @@ "label": "bucket", "description": [], "signature": [ - "{ type: \"vis_dimension\"; } & { accessor: number | ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionValueBoxed", + "text": "ExpressionValueBoxed" + }, + "<\"vis_dimension\", { accessor: number | ", { "pluginId": "expressions", "scope": "common", @@ -298,7 +254,7 @@ "section": "def-common.DatatableColumn", "text": "DatatableColumn" }, - "; format: { id?: string | undefined; params: Record; }; }" + "; format: { id?: string | undefined; params: Record; }; }> | undefined" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false @@ -371,16 +327,6 @@ "description": [], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricOptions.rowIndex", - "type": "number", - "tags": [], - "label": "rowIndex", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", - "deprecated": false } ], "initialIsOpen": false @@ -418,35 +364,6 @@ "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricVisParam.useRanges", - "type": "boolean", - "tags": [], - "label": "useRanges", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", - "deprecated": false - }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricVisParam.colorSchema", - "type": "Enum", - "tags": [], - "label": "colorSchema", - "description": [], - "signature": [ - { - "pluginId": "charts", - "scope": "common", - "docId": "kibChartsPluginApi", - "section": "def-common.ColorSchemas", - "text": "ColorSchemas" - } - ], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", - "deprecated": false - }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricVisParam.metricColorMode", @@ -455,27 +372,27 @@ "label": "metricColorMode", "description": [], "signature": [ - "\"Background\" | \"Labels\" | \"None\"" + "\"None\" | \"Background\" | \"Labels\"" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false }, { "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricVisParam.colorsRange", - "type": "Array", + "id": "def-common.MetricVisParam.palette", + "type": "Object", "tags": [], - "label": "colorsRange", + "label": "palette", "description": [], "signature": [ { - "pluginId": "expressions", + "pluginId": "charts", "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.Range", - "text": "Range" + "docId": "kibChartsPluginApi", + "section": "def-common.CustomPaletteState", + "text": "CustomPaletteState" }, - "[]" + " | undefined" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false @@ -499,31 +416,30 @@ "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false }, - { - "parentPluginId": "expressionMetricVis", - "id": "def-common.MetricVisParam.invertColors", - "type": "boolean", - "tags": [], - "label": "invertColors", - "description": [], - "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", - "deprecated": false - }, { "parentPluginId": "expressionMetricVis", "id": "def-common.MetricVisParam.style", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "style", "description": [], "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionTypeStyle", + "text": "ExpressionTypeStyle" + }, + " & Pick<", { "pluginId": "charts", "scope": "common", "docId": "kibChartsPluginApi", "section": "def-common.Style", "text": "Style" - } + }, + ", \"bgColor\" | \"labelColor\">" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_renderers.ts", "deprecated": false diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 891d4d3f022d5..bfbd6bb8b825a 100644 --- a/api_docs/expression_metric_vis.mdx +++ b/api_docs/expression_metric_vis.mdx @@ -18,7 +18,7 @@ Contact [Vis Editors](https://github.com/orgs/elastic/teams/kibana-vis-editors) | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 49 | 0 | 49 | 0 | +| 40 | 0 | 40 | 0 | ## Common diff --git a/api_docs/expression_repeat_image.json b/api_docs/expression_repeat_image.json index 416a827e5bafb..f61abea4ce928 100644 --- a/api_docs/expression_repeat_image.json +++ b/api_docs/expression_repeat_image.json @@ -409,7 +409,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"top\" | \"left\" | \"bottom\" | \"right\"" ], "path": "src/plugins/expression_repeat_image/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_shape.json b/api_docs/expression_shape.json index 018c438303cb0..12a589bc5f701 100644 --- a/api_docs/expression_shape.json +++ b/api_docs/expression_shape.json @@ -1399,7 +1399,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"top\" | \"left\" | \"bottom\" | \"right\"" ], "path": "src/plugins/expression_shape/common/types/expression_renderers.ts", "deprecated": false, @@ -2580,7 +2580,7 @@ "label": "OriginString", "description": [], "signature": [ - "\"top\" | \"bottom\" | \"left\" | \"right\"" + "\"top\" | \"left\" | \"bottom\" | \"right\"" ], "path": "src/plugins/expression_shape/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expressions.json b/api_docs/expressions.json index d6a5667f352f8..f615409f9b4c6 100644 --- a/api_docs/expressions.json +++ b/api_docs/expressions.json @@ -7972,6 +7972,10 @@ "path": "src/plugins/expressions/common/expression_functions/types.ts", "deprecated": true, "references": [ + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts" + }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/public/functions/filters.ts" @@ -9487,7 +9491,7 @@ "label": "label", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -9500,7 +9504,7 @@ "label": "value", "description": [], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -10395,7 +10399,7 @@ "label": "padding", "description": [], "signature": [ - "\"m\" | \"s\" | \"l\" | \"xs\" | \"xl\" | undefined" + "\"s\" | \"m\" | \"l\" | \"xs\" | \"xl\" | undefined" ], "path": "src/plugins/expressions/public/react_expression_renderer.tsx", "deprecated": false @@ -10518,6 +10522,36 @@ "path": "src/plugins/expressions/public/react_expression_renderer.tsx", "deprecated": false }, + { + "parentPluginId": "expressions", + "id": "def-public.ReactExpressionRendererProps.onRender$", + "type": "Function", + "tags": [], + "label": "onRender$", + "description": [], + "signature": [ + "((item: number) => void) | undefined" + ], + "path": "src/plugins/expressions/public/react_expression_renderer.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressions", + "id": "def-public.ReactExpressionRendererProps.onRender$.$1", + "type": "number", + "tags": [], + "label": "item", + "description": [], + "signature": [ + "number" + ], + "path": "src/plugins/expressions/public/react_expression_renderer.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "expressions", "id": "def-public.ReactExpressionRendererProps.debounce", @@ -10930,16 +10964,16 @@ "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstExpression", - "text": "ExpressionAstExpression" + "section": "def-common.ExpressionAstFunction", + "text": "ExpressionAstFunction" }, " | ", { "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstFunction", - "text": "ExpressionAstFunction" + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" } ], "path": "src/plugins/expressions/common/ast/types.ts", @@ -11229,7 +11263,7 @@ "\nThis type contains a unions of all supported font labels, or the the name of\nthe font the user would see in a UI." ], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -11245,7 +11279,7 @@ "\nThis type contains a union of all supported font values, equivalent to the CSS\n`font-value` property." ], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -11334,7 +11368,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"y\" | \"x\" | \"size\" | \"text\"" + "\"size\" | \"y\" | \"color\" | \"x\" | \"text\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -17944,6 +17978,10 @@ "path": "src/plugins/expressions/common/expression_functions/types.ts", "deprecated": true, "references": [ + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts" + }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/public/functions/filters.ts" @@ -18978,7 +19016,7 @@ "label": "label", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -18991,7 +19029,7 @@ "label": "value", "description": [], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -19867,16 +19905,16 @@ "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstExpression", - "text": "ExpressionAstExpression" + "section": "def-common.ExpressionAstFunction", + "text": "ExpressionAstFunction" }, " | ", { "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstFunction", - "text": "ExpressionAstFunction" + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" } ], "path": "src/plugins/expressions/common/ast/types.ts", @@ -20094,7 +20132,7 @@ "\nThis type contains a unions of all supported font labels, or the the name of\nthe font the user would see in a UI." ], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -20110,7 +20148,7 @@ "\nThis type contains a union of all supported font values, equivalent to the CSS\n`font-value` property." ], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -20199,7 +20237,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"y\" | \"x\" | \"size\" | \"text\"" + "\"size\" | \"y\" | \"color\" | \"x\" | \"text\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -23618,16 +23656,16 @@ "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstExpression", - "text": "ExpressionAstExpression" + "section": "def-common.ExpressionAstFunction", + "text": "ExpressionAstFunction" }, " | ", { "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstFunction", - "text": "ExpressionAstFunction" + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" } ], "path": "src/plugins/expressions/common/util/expressions_inspector_adapter.ts", @@ -27201,7 +27239,7 @@ "label": "fontFamily", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\" | undefined" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\" | undefined" ], "path": "src/plugins/expressions/common/types/style.ts", "deprecated": false @@ -29837,6 +29875,10 @@ "path": "src/plugins/expressions/common/expression_functions/types.ts", "deprecated": true, "references": [ + { + "plugin": "canvas", + "path": "x-pack/plugins/canvas/canvas_plugin_src/functions/external/embeddable.ts" + }, { "plugin": "canvas", "path": "x-pack/plugins/canvas/public/functions/filters.ts" @@ -31735,7 +31777,7 @@ "label": "label", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -31748,7 +31790,7 @@ "label": "value", "description": [], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false @@ -31807,7 +31849,7 @@ "label": "family", "description": [], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\" | undefined" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\" | undefined" ], "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", "deprecated": false @@ -31883,6 +31925,19 @@ ], "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", "deprecated": false + }, + { + "parentPluginId": "expressions", + "id": "def-common.FontArguments.sizeUnit", + "type": "string", + "tags": [], + "label": "sizeUnit", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false } ], "initialIsOpen": false @@ -32805,6 +32860,17 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "expressions", + "id": "def-common.FontSizeUnit", + "type": "Enum", + "tags": [], + "label": "FontSizeUnit", + "description": [], + "path": "src/plugins/expressions/common/types/style.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "expressions", "id": "def-common.FontStyle", @@ -33244,16 +33310,16 @@ "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstExpression", - "text": "ExpressionAstExpression" + "section": "def-common.ExpressionAstFunction", + "text": "ExpressionAstFunction" }, " | ", { "pluginId": "expressions", "scope": "common", "docId": "kibExpressionsPluginApi", - "section": "def-common.ExpressionAstFunction", - "text": "ExpressionAstFunction" + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" } ], "path": "src/plugins/expressions/common/ast/types.ts", @@ -34033,7 +34099,7 @@ "\nThis type contains a unions of all supported font labels, or the the name of\nthe font the user would see in a UI." ], "signature": [ - "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" + "\"Open Sans\" | \"American Typewriter\" | \"Arial\" | \"Baskerville\" | \"Book Antiqua\" | \"Brush Script\" | \"Chalkboard\" | \"Didot\" | \"Futura\" | \"Gill Sans\" | \"Helvetica Neue\" | \"Hoefler Text\" | \"Inter\" | \"Lucida Grande\" | \"Myriad\" | \"Optima\" | \"Palatino\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -34049,7 +34115,7 @@ "\nA collection of supported fonts." ], "signature": [ - "({ label: \"Open Sans\"; value: \"'Open Sans', Helvetica, Arial, sans-serif\"; } | { label: \"American Typewriter\"; value: \"'American Typewriter', 'Courier New', Courier, Monaco, mono\"; } | { label: \"Arial\"; value: \"Arial, sans-serif\"; } | { label: \"Baskerville\"; value: \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Book Antiqua\"; value: \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Brush Script\"; value: \"'Brush Script MT', 'Comic Sans', sans-serif\"; } | { label: \"Chalkboard\"; value: \"Chalkboard, 'Comic Sans', sans-serif\"; } | { label: \"Didot\"; value: \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Futura\"; value: \"Futura, Impact, Helvetica, Arial, sans-serif\"; } | { label: \"Gill Sans\"; value: \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Helvetica Neue\"; value: \"'Helvetica Neue', Helvetica, Arial, sans-serif\"; } | { label: \"Hoefler Text\"; value: \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\"; } | { label: \"Lucida Grande\"; value: \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Myriad\"; value: \"Myriad, Helvetica, Arial, sans-serif\"; } | { label: \"Optima\"; value: \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Palatino\"; value: \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"; })[]" + "({ label: \"Open Sans\"; value: \"'Open Sans', Helvetica, Arial, sans-serif\"; } | { label: \"American Typewriter\"; value: \"'American Typewriter', 'Courier New', Courier, Monaco, mono\"; } | { label: \"Arial\"; value: \"Arial, sans-serif\"; } | { label: \"Baskerville\"; value: \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Book Antiqua\"; value: \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Brush Script\"; value: \"'Brush Script MT', 'Comic Sans', sans-serif\"; } | { label: \"Chalkboard\"; value: \"Chalkboard, 'Comic Sans', sans-serif\"; } | { label: \"Didot\"; value: \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\"; } | { label: \"Futura\"; value: \"Futura, Impact, Helvetica, Arial, sans-serif\"; } | { label: \"Gill Sans\"; value: \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Helvetica Neue\"; value: \"'Helvetica Neue', Helvetica, Arial, sans-serif\"; } | { label: \"Hoefler Text\"; value: \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\"; } | { label: \"Inter\"; value: \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\"; } | { label: \"Lucida Grande\"; value: \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Myriad\"; value: \"Myriad, Helvetica, Arial, sans-serif\"; } | { label: \"Optima\"; value: \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\"; } | { label: \"Palatino\"; value: \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"; })[]" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -34065,7 +34131,7 @@ "\nThis type contains a union of all supported font values, equivalent to the CSS\n`font-value` property." ], "signature": [ - "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" + "\"'Open Sans', Helvetica, Arial, sans-serif\" | \"'American Typewriter', 'Courier New', Courier, Monaco, mono\" | \"Arial, sans-serif\" | \"Baskerville, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\" | \"'Brush Script MT', 'Comic Sans', sans-serif\" | \"Chalkboard, 'Comic Sans', sans-serif\" | \"Didot, Georgia, Garamond, 'Times New Roman', Times, serif\" | \"Futura, Impact, Helvetica, Arial, sans-serif\" | \"'Gill Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"'Helvetica Neue', Helvetica, Arial, sans-serif\" | \"'Hoefler Text', Garamond, Georgia, 'Times New Roman', Times, serif\" | \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\" | \"'Lucida Grande', 'Lucida Sans Unicode', Lucida, Verdana, Helvetica, Arial, sans-serif\" | \"Myriad, Helvetica, Arial, sans-serif\" | \"Optima, 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Helvetica, Arial, sans-serif\" | \"Palatino, 'Book Antiqua', Georgia, Garamond, 'Times New Roman', Times, serif\"" ], "path": "src/plugins/expressions/common/fonts.ts", "deprecated": false, @@ -34232,7 +34298,7 @@ "\nAllowed column names in a PointSeries" ], "signature": [ - "\"color\" | \"y\" | \"x\" | \"size\" | \"text\"" + "\"size\" | \"y\" | \"color\" | \"x\" | \"text\"" ], "path": "src/plugins/expressions/common/expression_types/specs/pointseries.ts", "deprecated": false, @@ -37322,6 +37388,64 @@ } ] }, + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit", + "type": "Object", + "tags": [], + "label": "sizeUnit", + "description": [], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit.default", + "type": "string", + "tags": [], + "label": "default", + "description": [], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false + }, + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false + }, + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"string\"[]" + ], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false + }, + { + "parentPluginId": "expressions", + "id": "def-common.font.args.sizeUnit.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "string[]" + ], + "path": "src/plugins/expressions/common/expression_functions/specs/font.ts", + "deprecated": false + } + ] + }, { "parentPluginId": "expressions", "id": "def-common.font.args.underline", @@ -37670,6 +37794,20 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "expressions", + "id": "def-common.inter", + "type": "Object", + "tags": [], + "label": "inter", + "description": [], + "signature": [ + "{ label: \"Inter\"; value: \"'Inter', 'Inter UI', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'\"; }" + ], + "path": "src/plugins/expressions/common/fonts.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "expressions", "id": "def-common.lucidaGrande", @@ -37906,7 +38044,7 @@ "label": "types", "description": [], "signature": [ - "(\"number\" | \"string\" | \"boolean\" | \"null\")[]" + "(\"string\" | \"boolean\" | \"number\" | \"null\")[]" ], "path": "src/plugins/expressions/common/expression_functions/specs/map_column.ts", "deprecated": false diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index bb31b4a579d13..724b17051736b 100644 --- a/api_docs/expressions.mdx +++ b/api_docs/expressions.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2092 | 27 | 1646 | 3 | +| 2102 | 27 | 1656 | 3 | ## Client diff --git a/api_docs/features.json b/api_docs/features.json index c3749ffb6751c..df4d2f2ec06d5 100644 --- a/api_docs/features.json +++ b/api_docs/features.json @@ -61,7 +61,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -788,7 +788,7 @@ "\nDenotes which Primary Feature Privilege this sub-feature privilege should be included in.\n`read` is also included in `all` automatically." ], "signature": [ - "\"all\" | \"none\" | \"read\"" + "\"none\" | \"all\" | \"read\"" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false @@ -1091,7 +1091,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -2518,7 +2518,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>[] | undefined; privilegesTooltip?: string | undefined; reserved?: Readonly<{ description: string; privileges: readonly Readonly<{ id: string; privilege: Readonly<{ excludeFromBasePrivileges?: boolean | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; api?: readonly string[] | undefined; app?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; ui: readonly string[]; }>; }>[]; }> | undefined; }>" ], "path": "x-pack/plugins/features/common/kibana_feature.ts", "deprecated": false, @@ -2751,7 +2751,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }>" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -2786,7 +2786,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false @@ -2807,7 +2807,7 @@ "section": "def-common.SubFeaturePrivilegeGroupType", "text": "SubFeaturePrivilegeGroupType" }, - "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"all\" | \"none\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }" + "; privileges: readonly Readonly<{ id: string; name: string; includeIn: \"none\" | \"all\" | \"read\"; minimumLicense?: \"basic\" | \"standard\" | \"gold\" | \"platinum\" | \"enterprise\" | \"trial\" | undefined; management?: Readonly<{ [x: string]: readonly string[]; }> | undefined; catalogue?: readonly string[] | undefined; alerting?: Readonly<{ rule?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; alert?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; }> | undefined; ui: readonly string[]; app?: readonly string[] | undefined; cases?: Readonly<{ all?: readonly string[] | undefined; read?: readonly string[] | undefined; }> | undefined; api?: readonly string[] | undefined; savedObject: Readonly<{ all: readonly string[]; read: readonly string[]; }>; }>[]; }>[]; }" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false, @@ -3518,7 +3518,7 @@ "\nDenotes which Primary Feature Privilege this sub-feature privilege should be included in.\n`read` is also included in `all` automatically." ], "signature": [ - "\"all\" | \"none\" | \"read\"" + "\"none\" | \"all\" | \"read\"" ], "path": "x-pack/plugins/features/common/sub_feature.ts", "deprecated": false diff --git a/api_docs/field_formats.json b/api_docs/field_formats.json index 5d7f31781d000..a1296107c65ef 100644 --- a/api_docs/field_formats.json +++ b/api_docs/field_formats.json @@ -100,7 +100,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/public/lib/converters/date.ts", "deprecated": false, @@ -113,7 +113,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/public/lib/converters/date.ts", "deprecated": false, @@ -250,7 +250,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/common/converters/date_nanos_shared.ts", "deprecated": false, @@ -263,7 +263,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/date_nanos_shared.ts", "deprecated": false, @@ -503,7 +503,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/server/lib/converters/date_server.ts", "deprecated": false, @@ -516,7 +516,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/server/lib/converters/date_server.ts", "deprecated": false, @@ -551,7 +551,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/server/lib/converters/date_nanos_server.ts", "deprecated": false, @@ -564,7 +564,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/server/lib/converters/date_nanos_server.ts", "deprecated": false, @@ -1017,7 +1017,7 @@ "label": "findColorRuleForVal", "description": [], "signature": [ - "(val: React.ReactText) => any" + "(val: string | number) => any" ], "path": "src/plugins/field_formats/common/converters/color.tsx", "deprecated": false, @@ -1030,7 +1030,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/color.tsx", "deprecated": false, @@ -1047,7 +1047,7 @@ "label": "htmlConvert", "description": [], "signature": [ - "(val: React.ReactText) => string" + "(val: string | number) => string" ], "path": "src/plugins/field_formats/common/converters/color.tsx", "deprecated": false, @@ -1060,7 +1060,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/color.tsx", "deprecated": false, @@ -3623,7 +3623,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => string" + "(val: string | number) => string" ], "path": "src/plugins/field_formats/common/converters/percent.ts", "deprecated": false, @@ -3636,7 +3636,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/percent.ts", "deprecated": false, @@ -3731,7 +3731,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => string" + "(val: string | number) => string" ], "path": "src/plugins/field_formats/common/converters/relative_date.ts", "deprecated": false, @@ -3744,7 +3744,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/relative_date.ts", "deprecated": false, @@ -3756,114 +3756,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat", - "type": "Class", - "tags": [], - "label": "SourceFormat", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.SourceFormat", - "text": "SourceFormat" - }, - " extends ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FieldFormat", - "text": "FieldFormat" - } - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false, - "children": [ - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.id", - "type": "Enum", - "tags": [], - "label": "id", - "description": [], - "signature": [ - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FIELD_FORMAT_IDS", - "text": "FIELD_FORMAT_IDS" - } - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false - }, - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.title", - "type": "string", - "tags": [], - "label": "title", - "description": [], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false - }, - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.fieldType", - "type": "Enum", - "tags": [], - "label": "fieldType", - "description": [], - "signature": [ - { - "pluginId": "@kbn/field-types", - "scope": "server", - "docId": "kibKbnFieldTypesPluginApi", - "section": "def-server.KBN_FIELD_TYPES", - "text": "KBN_FIELD_TYPES" - } - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false - }, - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.textConvert", - "type": "Function", - "tags": [], - "label": "textConvert", - "description": [], - "signature": [ - "(value: string) => string" - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false, - "children": [ - { - "parentPluginId": "fieldFormats", - "id": "def-common.SourceFormat.textConvert.$1", - "type": "string", - "tags": [], - "label": "value", - "description": [], - "signature": [ - "string" - ], - "path": "src/plugins/field_formats/common/converters/source.tsx", - "deprecated": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, { "parentPluginId": "fieldFormats", "id": "def-common.StaticLookupFormat", @@ -4100,7 +3992,7 @@ "label": "textConvert", "description": [], "signature": [ - "(val: React.ReactText) => string" + "(val: string | number) => string" ], "path": "src/plugins/field_formats/common/converters/string.ts", "deprecated": false, @@ -4113,7 +4005,7 @@ "label": "val", "description": [], "signature": [ - "React.ReactText" + "string | number" ], "path": "src/plugins/field_formats/common/converters/string.ts", "deprecated": false, @@ -5520,7 +5412,15 @@ "label": "IFieldFormatsRegistry", "description": [], "signature": [ - "{ init: (getConfig: ", + "{ deserialize: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FormatFactory", + "text": "FormatFactory" + }, + "; init: (getConfig: ", { "pluginId": "fieldFormats", "scope": "common", @@ -5544,15 +5444,7 @@ "section": "def-common.FieldFormatInstanceType", "text": "FieldFormatInstanceType" }, - "[]) => void; deserialize: ", - { - "pluginId": "fieldFormats", - "scope": "common", - "docId": "kibFieldFormatsPluginApi", - "section": "def-common.FormatFactory", - "text": "FormatFactory" - }, - "; register: (fieldFormats: ", + "[]) => void; register: (fieldFormats: ", { "pluginId": "fieldFormats", "scope": "common", diff --git a/api_docs/field_formats.mdx b/api_docs/field_formats.mdx index 37adeb9bc2bb7..630f25f3e37d7 100644 --- a/api_docs/field_formats.mdx +++ b/api_docs/field_formats.mdx @@ -18,7 +18,7 @@ Contact [App Services](https://github.com/orgs/elastic/teams/kibana-app-services | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 284 | 7 | 246 | 3 | +| 278 | 7 | 240 | 3 | ## Client diff --git a/api_docs/fleet.json b/api_docs/fleet.json index 06c6bf2dbae32..e99b0560d408e 100644 --- a/api_docs/fleet.json +++ b/api_docs/fleet.json @@ -2438,6 +2438,36 @@ "deprecated": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-public.pagePathGetters.settings", + "type": "Function", + "tags": [], + "label": "settings", + "description": [], + "signature": [ + "() => [string, string]" + ], + "path": "x-pack/plugins/fleet/public/constants/page_paths.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-public.pagePathGetters.settings_edit_fleet_server_hosts", + "type": "Function", + "tags": [], + "label": "settings_edit_fleet_server_hosts", + "description": [], + "signature": [ + "() => [string, string]" + ], + "path": "x-pack/plugins/fleet/public/constants/page_paths.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -4641,7 +4671,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -4848,7 +4878,7 @@ "signature": [ "Pick<", "KibanaClient", - ", \"monitoring\" | \"security\" | \"create\" | \"name\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", + ", \"name\" | \"create\" | \"index\" | \"delete\" | \"get\" | \"update\" | \"closePointInTime\" | \"search\" | \"security\" | \"transform\" | \"eql\" | \"helpers\" | \"asyncSearch\" | \"autoscaling\" | \"bulk\" | \"cat\" | \"ccr\" | \"clearScroll\" | \"cluster\" | \"count\" | \"danglingIndices\" | \"deleteByQuery\" | \"deleteByQueryRethrottle\" | \"deleteScript\" | \"enrich\" | \"exists\" | \"existsSource\" | \"explain\" | \"features\" | \"fieldCaps\" | \"fleet\" | \"getScript\" | \"getScriptContext\" | \"getScriptLanguages\" | \"getSource\" | \"graph\" | \"ilm\" | \"indices\" | \"info\" | \"ingest\" | \"knnSearch\" | \"license\" | \"logstash\" | \"mget\" | \"migration\" | \"ml\" | \"monitoring\" | \"msearch\" | \"msearchTemplate\" | \"mtermvectors\" | \"nodes\" | \"openPointInTime\" | \"ping\" | \"putScript\" | \"rankEval\" | \"reindex\" | \"reindexRethrottle\" | \"renderSearchTemplate\" | \"rollup\" | \"scriptsPainlessExecute\" | \"scroll\" | \"searchMvt\" | \"searchShards\" | \"searchTemplate\" | \"searchableSnapshots\" | \"shutdown\" | \"slm\" | \"snapshot\" | \"sql\" | \"ssl\" | \"tasks\" | \"termsEnum\" | \"termvectors\" | \"textStructure\" | \"updateByQuery\" | \"updateByQueryRethrottle\" | \"watcher\" | \"xpack\"> & { transport: { request(params: ", "TransportRequestParams", ", options?: ", "TransportRequestOptions", @@ -5389,6 +5419,26 @@ ], "path": "x-pack/plugins/fleet/server/plugin.ts", "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-server.FleetSetupDeps.telemetry", + "type": "Object", + "tags": [], + "label": "telemetry", + "description": [], + "signature": [ + { + "pluginId": "telemetry", + "scope": "server", + "docId": "kibTelemetryPluginApi", + "section": "def-server.TelemetryPluginSetup", + "text": "TelemetryPluginSetup" + }, + " | undefined" + ], + "path": "x-pack/plugins/fleet/server/plugin.ts", + "deprecated": false } ], "initialIsOpen": false @@ -5859,36 +5909,7 @@ "initialIsOpen": false } ], - "objects": [ - { - "parentPluginId": "fleet", - "id": "def-server.apm", - "type": "Object", - "tags": [], - "label": "apm", - "description": [], - "signature": [ - "Agent" - ], - "path": "node_modules/elastic-apm-node/index.d.ts", - "deprecated": false, - "initialIsOpen": false - }, - { - "parentPluginId": "fleet", - "id": "def-server.apm", - "type": "Object", - "tags": [], - "label": "apm", - "description": [], - "signature": [ - "Agent" - ], - "path": "node_modules/elastic-apm-node/index.d.ts", - "deprecated": false, - "initialIsOpen": false - } - ], + "objects": [], "setup": { "parentPluginId": "fleet", "id": "def-server.FleetSetupContract", @@ -6648,7 +6669,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", "SavedObject", "<", { @@ -6666,7 +6687,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", "SavedObject", "<", { @@ -6684,7 +6705,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", { "pluginId": "fleet", "scope": "common", @@ -6692,7 +6713,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })) => boolean" + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })) => boolean" ], "path": "x-pack/plugins/fleet/common/services/packages_with_integrations.ts", "deprecated": false, @@ -6904,7 +6925,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", "SavedObject", "<", { @@ -6922,7 +6943,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", "SavedObject", "<", { @@ -6940,7 +6961,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", { "pluginId": "fleet", "scope": "common", @@ -6948,7 +6969,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })" + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })" ], "path": "x-pack/plugins/fleet/common/services/packages_with_integrations.ts", "deprecated": false, @@ -8705,7 +8726,7 @@ "label": "body", "description": [], "signature": [ - "{ description?: string | undefined; name: string; }" + "{ name: string; description?: string | undefined; }" ], "path": "x-pack/plugins/fleet/common/types/rest_spec/agent_policy.ts", "deprecated": false @@ -9152,6 +9173,29 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-common.DeleteOutputResponse", + "type": "Interface", + "tags": [], + "label": "DeleteOutputResponse", + "description": [], + "path": "x-pack/plugins/fleet/common/types/rest_spec/output.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "fleet", + "id": "def-common.DeleteOutputResponse.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "x-pack/plugins/fleet/common/types/rest_spec/output.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-common.DeletePackagePoliciesRequest", @@ -12861,14 +12905,6 @@ "description": [], "signature": [ "(", - { - "pluginId": "customIntegrations", - "scope": "common", - "docId": "kibCustomIntegrationsPluginApi", - "section": "def-common.CustomIntegrationIcon", - "text": "CustomIntegrationIcon" - }, - " | ", { "pluginId": "fleet", "scope": "common", @@ -12876,6 +12912,14 @@ "section": "def-common.PackageSpecIcon", "text": "PackageSpecIcon" }, + " | ", + { + "pluginId": "customIntegrations", + "scope": "common", + "docId": "kibCustomIntegrationsPluginApi", + "section": "def-common.CustomIntegrationIcon", + "text": "CustomIntegrationIcon" + }, ")[]" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", @@ -13323,6 +13367,16 @@ "path": "x-pack/plugins/fleet/common/types/models/output.ts", "deprecated": false }, + { + "parentPluginId": "fleet", + "id": "def-common.NewOutput.is_default_monitoring", + "type": "boolean", + "tags": [], + "label": "is_default_monitoring", + "description": [], + "path": "x-pack/plugins/fleet/common/types/models/output.ts", + "deprecated": false + }, { "parentPluginId": "fleet", "id": "def-common.NewOutput.name", @@ -13799,7 +13853,7 @@ "section": "def-common.NewPackagePolicy", "text": "NewPackagePolicy" }, - ", \"description\" | \"name\" | \"enabled\" | \"package\" | \"policy_id\" | \"namespace\" | \"output_id\" | \"vars\" | \"elasticsearch\">" + ", \"name\" | \"description\" | \"enabled\" | \"package\" | \"policy_id\" | \"namespace\" | \"output_id\" | \"vars\" | \"elasticsearch\">" ], "path": "x-pack/plugins/fleet/common/types/models/package_policy.ts", "deprecated": false, @@ -14307,7 +14361,7 @@ "label": "categories", "description": [], "signature": [ - "(\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined" + "(\"security\" | \"monitoring\" | \"custom\" | \"cloud\" | \"kubernetes\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/package_spec.ts", "deprecated": false @@ -14941,7 +14995,7 @@ "section": "def-common.NewAgentPolicy", "text": "NewAgentPolicy" }, - ", \"description\" | \"name\" | \"is_default\" | \"is_default_fleet_server\" | \"is_managed\" | \"monitoring_enabled\" | \"unenroll_timeout\" | \"is_preconfigured\" | \"data_output_id\" | \"monitoring_output_id\">" + ", \"name\" | \"description\" | \"is_default\" | \"is_default_fleet_server\" | \"is_managed\" | \"monitoring_enabled\" | \"unenroll_timeout\" | \"is_preconfigured\" | \"data_output_id\" | \"monitoring_output_id\">" ], "path": "x-pack/plugins/fleet/common/types/models/preconfiguration.ts", "deprecated": false, @@ -14988,7 +15042,7 @@ "section": "def-common.NewPackagePolicy", "text": "NewPackagePolicy" }, - ", \"description\" | \"name\" | \"enabled\" | \"policy_id\" | \"namespace\" | \"output_id\" | \"vars\" | \"elasticsearch\">> & { name: string; package: Partial<", + ", \"name\" | \"description\" | \"enabled\" | \"policy_id\" | \"namespace\" | \"output_id\" | \"vars\" | \"elasticsearch\">> & { name: string; package: Partial<", { "pluginId": "fleet", "scope": "common", @@ -15035,7 +15089,7 @@ "section": "def-common.Output", "text": "Output" }, - ", \"type\" | \"id\" | \"name\" | \"is_default\" | \"is_preconfigured\" | \"hosts\" | \"ca_sha256\" | \"api_key\">" + ", \"name\" | \"type\" | \"id\" | \"is_default\" | \"is_preconfigured\" | \"hosts\" | \"ca_sha256\" | \"api_key\" | \"is_default_monitoring\">" ], "path": "x-pack/plugins/fleet/common/types/models/preconfiguration.ts", "deprecated": false, @@ -15732,7 +15786,7 @@ "label": "[RegistryPolicyTemplateKeys.categories]", "description": [], "signature": [ - "(\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined" + "(\"security\" | \"monitoring\" | \"custom\" | \"cloud\" | \"kubernetes\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false @@ -16501,6 +16555,32 @@ ], "path": "x-pack/plugins/fleet/common/types/rest_spec/package_policy.ts", "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.UpgradePackagePolicyBaseResponse.statusCode", + "type": "number", + "tags": [], + "label": "statusCode", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/rest_spec/package_policy.ts", + "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.UpgradePackagePolicyBaseResponse.body", + "type": "Object", + "tags": [], + "label": "body", + "description": [], + "signature": [ + "{ message: string; } | undefined" + ], + "path": "x-pack/plugins/fleet/common/types/rest_spec/package_policy.ts", + "deprecated": false } ], "initialIsOpen": false @@ -16727,20 +16807,6 @@ } ], "misc": [ - { - "parentPluginId": "fleet", - "id": "def-common.AGENT_ACTION_SAVED_OBJECT_TYPE", - "type": "string", - "tags": [], - "label": "AGENT_ACTION_SAVED_OBJECT_TYPE", - "description": [], - "signature": [ - "\"fleet-agent-actions\"" - ], - "path": "x-pack/plugins/fleet/common/constants/agent.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.AGENT_ACTIONS_INDEX", @@ -16906,20 +16972,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.AGENT_SAVED_OBJECT_TYPE", - "type": "string", - "tags": [], - "label": "AGENT_SAVED_OBJECT_TYPE", - "description": [], - "signature": [ - "\"fleet-agents\"" - ], - "path": "x-pack/plugins/fleet/common/constants/agent.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.AGENT_TYPE_EPHEMERAL", @@ -17046,36 +17098,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.AgentPolicyActionV7_9", - "type": "Type", - "tags": [], - "label": "AgentPolicyActionV7_9", - "description": [], - "signature": [ - "Pick<", - { - "pluginId": "fleet", - "scope": "common", - "docId": "kibFleetPluginApi", - "section": "def-common.AgentPolicyAction", - "text": "AgentPolicyAction" - }, - ", \"id\" | \"policy_id\" | \"created_at\" | \"policy_revision\" | \"ack_data\" | \"sent_at\"> & { type: \"CONFIG_CHANGE\"; data: { config: ", - { - "pluginId": "fleet", - "scope": "common", - "docId": "kibFleetPluginApi", - "section": "def-common.FullAgentPolicy", - "text": "FullAgentPolicy" - }, - "; }; }" - ], - "path": "x-pack/plugins/fleet/common/types/models/agent.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.AgentPolicySOAttributes", @@ -17084,7 +17106,7 @@ "label": "AgentPolicySOAttributes", "description": [], "signature": [ - "{ status: ", + "{ name: string; description?: string | undefined; updated_at: string; status: ", { "pluginId": "fleet", "scope": "common", @@ -17092,7 +17114,7 @@ "section": "def-common.ValueOf", "text": "ValueOf" }, - "<{ readonly Active: \"active\"; readonly Inactive: \"inactive\"; }>; description?: string | undefined; name: string; updated_at: string; namespace: string; updated_by: string; is_default?: boolean | undefined; package_policies: string[] | ", + "<{ readonly Active: \"active\"; readonly Inactive: \"inactive\"; }>; namespace: string; updated_by: string; is_default?: boolean | undefined; package_policies: string[] | ", { "pluginId": "fleet", "scope": "common", @@ -17134,6 +17156,20 @@ "deprecated": false, "initialIsOpen": false }, + { + "parentPluginId": "fleet", + "id": "def-common.AGENTS_PREFIX", + "type": "string", + "tags": [], + "label": "AGENTS_PREFIX", + "description": [], + "signature": [ + "\"fleet-agents\"" + ], + "path": "x-pack/plugins/fleet/common/constants/agent.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "fleet", "id": "def-common.AgentStatus", @@ -17710,20 +17746,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.ENROLLMENT_API_KEYS_SAVED_OBJECT_TYPE", - "type": "string", - "tags": [], - "label": "ENROLLMENT_API_KEYS_SAVED_OBJECT_TYPE", - "description": [], - "signature": [ - "\"fleet-enrollment-api-keys\"" - ], - "path": "x-pack/plugins/fleet/common/constants/enrollment_api_key.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.EnrollmentAPIKeySOAttributes", @@ -17787,20 +17809,6 @@ "deprecated": false, "initialIsOpen": false }, - { - "parentPluginId": "fleet", - "id": "def-common.FLEET_API_ROOT_7_9", - "type": "string", - "tags": [], - "label": "FLEET_API_ROOT_7_9", - "description": [], - "signature": [ - "\"/api/ingest_manager/fleet\"" - ], - "path": "x-pack/plugins/fleet/common/constants/routes.ts", - "deprecated": false, - "initialIsOpen": false - }, { "parentPluginId": "fleet", "id": "def-common.FLEET_APM_PACKAGE", @@ -18834,7 +18842,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installed\"; savedObject: ", "SavedObject", "<", { @@ -18852,7 +18860,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"installing\"; savedObject: ", "SavedObject", "<", { @@ -18870,7 +18878,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"not_installed\"; } & { integration?: string | undefined; id: string; }) | (Pick<", { "pluginId": "fleet", "scope": "common", @@ -18878,7 +18886,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })" + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\"> & { status: \"install_failed\"; } & { integration?: string | undefined; id: string; })" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false, @@ -18943,7 +18951,7 @@ "label": "PackagePolicySOAttributes", "description": [], "signature": [ - "{ description?: string | undefined; name: string; enabled: boolean; package?: ", + "{ name: string; description?: string | undefined; enabled: boolean; package?: ", { "pluginId": "fleet", "scope": "common", @@ -19070,7 +19078,7 @@ "label": "PackageSpecCategory", "description": [], "signature": [ - "\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\"" + "\"security\" | \"monitoring\" | \"custom\" | \"cloud\" | \"kubernetes\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\"" ], "path": "x-pack/plugins/fleet/common/types/models/package_spec.ts", "deprecated": false, @@ -19253,31 +19261,31 @@ "label": "RegistrySearchResult", "description": [], "signature": [ - "{ type?: \"integration\" | undefined; title: string; description: string; icons?: (", + "{ name: string; title: string; version: string; type?: \"integration\" | undefined; description: string; path: string; download: string; internal?: boolean | undefined; data_streams?: ", { "pluginId": "fleet", "scope": "common", "docId": "kibFleetPluginApi", - "section": "def-common.PackageSpecIcon", - "text": "PackageSpecIcon" + "section": "def-common.RegistryDataStream", + "text": "RegistryDataStream" }, - "[] & ", + "[] | undefined; release: \"experimental\" | \"beta\" | \"ga\"; categories?: (\"security\" | \"monitoring\" | \"custom\" | \"cloud\" | \"kubernetes\" | \"aws\" | \"azure\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"languages\" | \"message_queue\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined; icons?: (", { "pluginId": "fleet", "scope": "common", "docId": "kibFleetPluginApi", - "section": "def-common.RegistryImage", - "text": "RegistryImage" + "section": "def-common.PackageSpecIcon", + "text": "PackageSpecIcon" }, - "[]) | undefined; categories?: (\"custom\" | \"aws\" | \"azure\" | \"cloud\" | \"config_management\" | \"containers\" | \"crm\" | \"datastore\" | \"elastic_stack\" | \"google_cloud\" | \"kubernetes\" | \"languages\" | \"message_queue\" | \"monitoring\" | \"network\" | \"notification\" | \"os_system\" | \"productivity\" | \"security\" | \"support\" | \"ticketing\" | \"version_control\" | \"web\" | undefined)[] | undefined; name: string; version: string; path: string; download: string; internal?: boolean | undefined; data_streams?: ", + "[] & ", { "pluginId": "fleet", "scope": "common", "docId": "kibFleetPluginApi", - "section": "def-common.RegistryDataStream", - "text": "RegistryDataStream" + "section": "def-common.RegistryImage", + "text": "RegistryImage" }, - "[] | undefined; release: \"experimental\" | \"beta\" | \"ga\"; policy_templates?: ", + "[]) | undefined; policy_templates?: ", { "pluginId": "fleet", "scope": "common", @@ -19307,7 +19315,7 @@ "section": "def-common.RegistryPackage", "text": "RegistryPackage" }, - ", \"type\" | \"title\" | \"description\" | \"icons\" | \"categories\" | \"name\" | \"version\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"policy_templates\">[]" + ", \"name\" | \"title\" | \"version\" | \"type\" | \"description\" | \"path\" | \"download\" | \"internal\" | \"data_streams\" | \"release\" | \"categories\" | \"icons\" | \"policy_templates\">[]" ], "path": "x-pack/plugins/fleet/common/types/models/epm.ts", "deprecated": false, @@ -20791,6 +20799,19 @@ "path": "x-pack/plugins/fleet/common/constants/output.ts", "deprecated": false }, + { + "parentPluginId": "fleet", + "id": "def-common.DEFAULT_OUTPUT.is_default_monitoring", + "type": "boolean", + "tags": [], + "label": "is_default_monitoring", + "description": [], + "signature": [ + "true" + ], + "path": "x-pack/plugins/fleet/common/constants/output.ts", + "deprecated": false + }, { "parentPluginId": "fleet", "id": "def-common.DEFAULT_OUTPUT.type", @@ -21438,6 +21459,26 @@ "description": [], "path": "x-pack/plugins/fleet/common/constants/routes.ts", "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.OUTPUT_API_ROUTES.DELETE_PATTERN", + "type": "string", + "tags": [], + "label": "DELETE_PATTERN", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.OUTPUT_API_ROUTES.CREATE_PATTERN", + "type": "string", + "tags": [], + "label": "CREATE_PATTERN", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false } ], "initialIsOpen": false @@ -21613,6 +21654,16 @@ "description": [], "path": "x-pack/plugins/fleet/common/constants/routes.ts", "deprecated": false + }, + { + "parentPluginId": "fleet", + "id": "def-common.PACKAGE_POLICY_API_ROUTES.DRYRUN_PATTERN", + "type": "string", + "tags": [], + "label": "DRYRUN_PATTERN", + "description": [], + "path": "x-pack/plugins/fleet/common/constants/routes.ts", + "deprecated": false } ], "initialIsOpen": false @@ -21746,6 +21797,21 @@ "deprecated": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "fleet", + "id": "def-common.packagePolicyRouteService.getDryRunPath", + "type": "Function", + "tags": [], + "label": "getDryRunPath", + "description": [], + "signature": [ + "() => string" + ], + "path": "x-pack/plugins/fleet/common/services/routes.ts", + "deprecated": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -21879,4 +21945,4 @@ } ] } -} +} \ No newline at end of file diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index a118b318a4651..765e26fd45a03 100644 --- a/api_docs/fleet.mdx +++ b/api_docs/fleet.mdx @@ -18,7 +18,7 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 1223 | 15 | 1121 | 10 | +| 1229 | 15 | 1127 | 10 | ## Client @@ -48,9 +48,6 @@ Contact [Fleet](https://github.com/orgs/elastic/teams/fleet) for questions regar ### Start -### Objects - - ### Functions diff --git a/api_docs/global_search.json b/api_docs/global_search.json index 7dd6198974f6c..9a8b76c27a93f 100644 --- a/api_docs/global_search.json +++ b/api_docs/global_search.json @@ -455,7 +455,7 @@ "signature": [ "Pick<", "GlobalSearchProviderResult", - ", \"type\" | \"id\" | \"title\" | \"meta\" | \"icon\" | \"score\"> & { url: string; }" + ", \"title\" | \"type\" | \"id\" | \"meta\" | \"icon\" | \"score\"> & { url: string; }" ], "path": "x-pack/plugins/global_search/common/types.ts", "deprecated": false, @@ -1108,7 +1108,7 @@ "signature": [ "Pick<", "GlobalSearchProviderResult", - ", \"type\" | \"id\" | \"title\" | \"meta\" | \"icon\" | \"score\"> & { url: string; }" + ", \"title\" | \"type\" | \"id\" | \"meta\" | \"icon\" | \"score\"> & { url: string; }" ], "path": "x-pack/plugins/global_search/common/types.ts", "deprecated": false, diff --git a/api_docs/home.json b/api_docs/home.json index f8056623d3387..a8dc02313ef3e 100644 --- a/api_docs/home.json +++ b/api_docs/home.json @@ -1,7 +1,171 @@ { "id": "home", "client": { - "classes": [], + "classes": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry", + "type": "Class", + "tags": [], + "label": "FeatureCatalogueRegistry", + "description": [], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.setup", + "type": "Function", + "tags": [], + "label": "setup", + "description": [], + "signature": [ + "() => { register: (feature: ", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueEntry", + "text": "FeatureCatalogueEntry" + }, + ") => void; registerSolution: (solution: ", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueSolution", + "text": "FeatureCatalogueSolution" + }, + ") => void; }" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.start", + "type": "Function", + "tags": [], + "label": "start", + "description": [], + "signature": [ + "({ capabilities }: { capabilities: ", + "Capabilities", + "; }) => void" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.start.$1", + "type": "Object", + "tags": [], + "label": "{ capabilities }", + "description": [], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.start.$1.capabilities", + "type": "Object", + "tags": [], + "label": "capabilities", + "description": [], + "signature": [ + "Capabilities" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.get", + "type": "Function", + "tags": [], + "label": "get", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueEntry", + "text": "FeatureCatalogueEntry" + }, + "[]" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.getSolutions", + "type": "Function", + "tags": [], + "label": "getSolutions", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueSolution", + "text": "FeatureCatalogueSolution" + }, + "[]" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.removeFeature", + "type": "Function", + "tags": [], + "label": "removeFeature", + "description": [], + "signature": [ + "(appId: string) => void" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.FeatureCatalogueRegistry.removeFeature.$1", + "type": "string", + "tags": [], + "label": "appId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/home/public/services/feature_catalogue/feature_catalogue_registry.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], "functions": [ { "parentPluginId": "home", @@ -43,6 +207,81 @@ } ], "interfaces": [ + { + "parentPluginId": "home", + "id": "def-public.AddDataTab", + "type": "Interface", + "tags": [], + "label": "AddDataTab", + "description": [], + "path": "src/plugins/home/public/services/add_data/add_data_service.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "src/plugins/home/public/services/add_data/add_data_service.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "src/plugins/home/public/services/add_data/add_data_service.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.component", + "type": "Function", + "tags": [], + "label": "component", + "description": [], + "signature": [ + "React.FunctionComponent<{}>" + ], + "path": "src/plugins/home/public/services/add_data/add_data_service.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.component.$1", + "type": "CompoundType", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "P & { children?: React.ReactNode; }" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-public.AddDataTab.component.$2", + "type": "Any", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "any" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false + } + ] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "home", "id": "def-public.Environment", @@ -760,7 +999,13 @@ "description": [], "signature": [ "{ registerAddDataTab: (tab: ", - "AddDataTab", + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.AddDataTab", + "text": "AddDataTab" + }, ") => void; }" ], "path": "src/plugins/home/public/plugin.ts", @@ -852,7 +1097,13 @@ "label": "featureCatalogue", "description": [], "signature": [ - "FeatureCatalogueRegistry" + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.FeatureCatalogueRegistry", + "text": "FeatureCatalogueRegistry" + } ], "path": "src/plugins/home/public/plugin.ts", "deprecated": false @@ -865,8 +1116,263 @@ "server": { "classes": [], "functions": [], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "home", + "id": "def-server.AppLinkData", + "type": "Interface", + "tags": [], + "label": "AppLinkData", + "description": [ + "\nThis type is used by consumers to register a new app link for a sample dataset." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.sampleObject", + "type": "CompoundType", + "tags": [], + "label": "sampleObject", + "description": [ + "\nThe sample object that is used for this app link's path; if the path does not use an object ID, set this to null." + ], + "signature": [ + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.SampleObject", + "text": "SampleObject" + }, + " | null" + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.getPath", + "type": "Function", + "tags": [], + "label": "getPath", + "description": [ + "\nFunction that returns the path for this app link. Note that the `objectId` can be different than the given `sampleObject.id`, depending\non how the sample data was installed. If the `sampleObject` is null, the `objectId` argument will be an empty string." + ], + "signature": [ + "(objectId: string) => string" + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.getPath.$1", + "type": "string", + "tags": [], + "label": "objectId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.label", + "type": "string", + "tags": [], + "label": "label", + "description": [ + "\nThe label for this app link." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.AppLinkData.icon", + "type": "string", + "tags": [], + "label": "icon", + "description": [ + "\nThe icon for this app link." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel", + "type": "Interface", + "tags": [], + "label": "SampleDatasetDashboardPanel", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.sampleDataId", + "type": "string", + "tags": [], + "label": "sampleDataId", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.dashboardId", + "type": "string", + "tags": [], + "label": "dashboardId", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.oldEmbeddableId", + "type": "string", + "tags": [], + "label": "oldEmbeddableId", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.embeddableId", + "type": "string", + "tags": [], + "label": "embeddableId", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.embeddableType", + "type": "Enum", + "tags": [], + "label": "embeddableType", + "description": [], + "signature": [ + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.EmbeddableTypes", + "text": "EmbeddableTypes" + } + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleDatasetDashboardPanel.embeddableConfig", + "type": "Uncategorized", + "tags": [], + "label": "embeddableConfig", + "description": [], + "signature": [ + "object" + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleObject", + "type": "Interface", + "tags": [], + "label": "SampleObject", + "description": [ + "This type is used to identify an object in a sample dataset." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.SampleObject.type", + "type": "string", + "tags": [], + "label": "type", + "description": [ + "The type of the sample object." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + }, + { + "parentPluginId": "home", + "id": "def-server.SampleObject.id", + "type": "string", + "tags": [], + "label": "id", + "description": [ + "The ID of the sample object." + ], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "home", + "id": "def-server.TutorialContext", + "type": "Interface", + "tags": [], + "label": "TutorialContext", + "description": [], + "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "home", + "id": "def-server.TutorialContext.Unnamed", + "type": "Any", + "tags": [], + "label": "Unnamed", + "description": [], + "signature": [ + "any" + ], + "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + } + ], "enums": [ + { + "parentPluginId": "home", + "id": "def-server.EmbeddableTypes", + "type": "Enum", + "tags": [], + "label": "EmbeddableTypes", + "description": [], + "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", + "deprecated": false, + "initialIsOpen": false + }, { "parentPluginId": "home", "id": "def-server.TutorialsCategory", @@ -888,7 +1394,7 @@ "label": "ArtifactsSchema", "description": [], "signature": [ - "{ readonly application?: Readonly<{} & { label: string; path: string; }> | undefined; readonly exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; readonly dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }" + "{ readonly application?: Readonly<{} & { path: string; label: string; }> | undefined; readonly exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; readonly dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -916,7 +1422,7 @@ "label": "InstructionsSchema", "description": [], "signature": [ - "{ readonly params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; readonly instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }" + "{ readonly params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; readonly instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -938,10 +1444,24 @@ "section": "def-server.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]; dataIndices: Readonly<{} & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", + "[]; previewImagePath: string; overviewDashboard: string; dataIndices: Readonly<{} & { fields: Record; id: string; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", "SavedObject", - "[]) => void; addAppLinksToSampleDataset: (id: string, appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]) => void; replacePanelInSampleDatasetDashboard: ({ sampleDataId, dashboardId, oldEmbeddableId, embeddableId, embeddableType, embeddableConfig, }: ", - "SampleDatasetDashboardPanel", + "[]) => void; addAppLinksToSampleDataset: (id: string, appLinks: ", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.AppLinkData", + "text": "AppLinkData" + }, + "[]) => void; replacePanelInSampleDatasetDashboard: ({ sampleDataId, dashboardId, oldEmbeddableId, embeddableId, embeddableType, embeddableConfig, }: ", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.SampleDatasetDashboardPanel", + "text": "SampleDatasetDashboardPanel" + }, ") => void; }" ], "path": "src/plugins/home/server/services/sample_data/sample_data_registry.ts", @@ -964,7 +1484,7 @@ "section": "def-server.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]; dataIndices: Readonly<{} & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>" + "[]; previewImagePath: string; overviewDashboard: string; dataIndices: Readonly<{} & { fields: Record; id: string; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>" ], "path": "src/plugins/home/server/services/sample_data/lib/sample_dataset_registry_types.ts", "deprecated": false, @@ -972,6 +1492,36 @@ "children": [], "initialIsOpen": false }, + { + "parentPluginId": "home", + "id": "def-server.ScopedTutorialContextFactory", + "type": "Type", + "tags": [], + "label": "ScopedTutorialContextFactory", + "description": [], + "signature": [ + "(...args: any[]) => any" + ], + "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", + "deprecated": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "home", + "id": "def-server.ScopedTutorialContextFactory.$1", + "type": "Array", + "tags": [], + "label": "args", + "description": [], + "signature": [ + "any[]" + ], + "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "home", "id": "def-server.TutorialProvider", @@ -981,8 +1531,14 @@ "description": [], "signature": [ "(context: ", - "TutorialContext", - ") => Readonly<{ isBeta?: boolean | undefined; savedObjects?: any[] | undefined; euiIconType?: string | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; artifacts?: Readonly<{ application?: Readonly<{} & { label: string; path: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjectsInstallMsg?: string | undefined; customStatusCheckName?: string | undefined; integrationBrowserCategories?: string[] | undefined; eprPackageOverlap?: string | undefined; } & { id: string; name: string; category: \"other\" | \"security\" | \"metrics\" | \"logging\"; shortDescription: string; longDescription: string; onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }>" + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.TutorialContext", + "text": "TutorialContext" + }, + ") => Readonly<{ savedObjects?: any[] | undefined; isBeta?: boolean | undefined; euiIconType?: string | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjectsInstallMsg?: string | undefined; customStatusCheckName?: string | undefined; integrationBrowserCategories?: string[] | undefined; eprPackageOverlap?: string | undefined; } & { name: string; id: string; category: \"metrics\" | \"security\" | \"other\" | \"logging\"; shortDescription: string; longDescription: string; onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }>" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", "deprecated": false, @@ -996,7 +1552,13 @@ "label": "context", "description": [], "signature": [ - "TutorialContext" + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.TutorialContext", + "text": "TutorialContext" + } ], "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", "deprecated": false @@ -1012,7 +1574,7 @@ "label": "TutorialSchema", "description": [], "signature": [ - "{ readonly isBeta?: boolean | undefined; readonly savedObjects?: any[] | undefined; readonly euiIconType?: string | undefined; readonly previewImagePath?: string | undefined; readonly moduleName?: string | undefined; readonly completionTimeMinutes?: number | undefined; readonly elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly artifacts?: Readonly<{ application?: Readonly<{} & { label: string; path: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; readonly savedObjectsInstallMsg?: string | undefined; readonly customStatusCheckName?: string | undefined; readonly integrationBrowserCategories?: string[] | undefined; readonly eprPackageOverlap?: string | undefined; readonly id: string; readonly name: string; readonly category: \"other\" | \"security\" | \"metrics\" | \"logging\"; readonly shortDescription: string; readonly longDescription: string; readonly onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { label: string; type: \"string\" | \"number\"; id: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }" + "{ readonly savedObjects?: any[] | undefined; readonly isBeta?: boolean | undefined; readonly euiIconType?: string | undefined; readonly previewImagePath?: string | undefined; readonly moduleName?: string | undefined; readonly completionTimeMinutes?: number | undefined; readonly elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; readonly savedObjectsInstallMsg?: string | undefined; readonly customStatusCheckName?: string | undefined; readonly integrationBrowserCategories?: string[] | undefined; readonly eprPackageOverlap?: string | undefined; readonly name: string; readonly id: string; readonly category: \"metrics\" | \"security\" | \"other\" | \"logging\"; readonly shortDescription: string; readonly longDescription: string; readonly onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ iconType?: string | undefined; message?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ title?: string | undefined; text?: string | undefined; error?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { query: Record; index: string | string[]; }>; }> | undefined; } & { instructionVariants: Readonly<{} & { id: string; instructions: Readonly<{ title?: string | undefined; commands?: string[] | undefined; textPre?: string | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -1249,7 +1811,13 @@ "text": "TutorialProvider" }, ") => void; addScopedTutorialContextFactory: (scopedTutorialContextFactory: ", - "ScopedTutorialContextFactory", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.ScopedTutorialContextFactory", + "text": "ScopedTutorialContextFactory" + }, ") => void; }" ], "path": "src/plugins/home/server/plugin.ts", @@ -1271,10 +1839,24 @@ "section": "def-server.Writable", "text": "Writable" }, - "[]; previewImagePath: string; overviewDashboard: string; appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]; dataIndices: Readonly<{} & { id: string; fields: Record; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", + "[]; previewImagePath: string; overviewDashboard: string; dataIndices: Readonly<{} & { fields: Record; id: string; timeFields: string[]; dataPath: string; currentTimeMarker: string; preserveDayOfWeekTimeOfDay: boolean; }>[]; }>>[]; addSavedObjectsToSampleDataset: (id: string, savedObjects: ", "SavedObject", - "[]) => void; addAppLinksToSampleDataset: (id: string, appLinks: Readonly<{} & { label: string; path: string; icon: string; }>[]) => void; replacePanelInSampleDatasetDashboard: ({ sampleDataId, dashboardId, oldEmbeddableId, embeddableId, embeddableType, embeddableConfig, }: ", - "SampleDatasetDashboardPanel", + "[]) => void; addAppLinksToSampleDataset: (id: string, appLinks: ", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.AppLinkData", + "text": "AppLinkData" + }, + "[]) => void; replacePanelInSampleDatasetDashboard: ({ sampleDataId, dashboardId, oldEmbeddableId, embeddableId, embeddableType, embeddableConfig, }: ", + { + "pluginId": "home", + "scope": "server", + "docId": "kibHomePluginApi", + "section": "def-server.SampleDatasetDashboardPanel", + "text": "SampleDatasetDashboardPanel" + }, ") => void; }" ], "path": "src/plugins/home/server/plugin.ts", diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 73526e517647c..e4ce618a1d0c3 100644 --- a/api_docs/home.mdx +++ b/api_docs/home.mdx @@ -18,7 +18,7 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 96 | 2 | 74 | 5 | +| 132 | 4 | 102 | 0 | ## Client @@ -34,6 +34,9 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que ### Functions +### Classes + + ### Interfaces @@ -54,6 +57,9 @@ Contact [Kibana Core](https://github.com/orgs/elastic/teams/kibana-core) for que ### Objects +### Interfaces + + ### Enums diff --git a/api_docs/kbn_apm_config_loader.json b/api_docs/kbn_apm_config_loader.json index 11ddc8679c815..134f3435ee02c 100644 --- a/api_docs/kbn_apm_config_loader.json +++ b/api_docs/kbn_apm_config_loader.json @@ -219,6 +219,40 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/apm-config-loader", + "id": "def-server.shouldInstrumentClient", + "type": "Function", + "tags": [], + "label": "shouldInstrumentClient", + "description": [], + "signature": [ + "(config: ", + "AgentConfigOptions", + " | undefined) => boolean" + ], + "path": "packages/kbn-apm-config-loader/src/rum_agent_configuration.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/apm-config-loader", + "id": "def-server.shouldInstrumentClient.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "AgentConfigOptions", + " | undefined" + ], + "path": "packages/kbn-apm-config-loader/src/rum_agent_configuration.ts", + "deprecated": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false } ], "interfaces": [], diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index abc95dbeff0b3..8fd82f64fec05 100644 --- a/api_docs/kbn_apm_config_loader.mdx +++ b/api_docs/kbn_apm_config_loader.mdx @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 14 | 0 | 14 | 0 | +| 16 | 0 | 16 | 0 | ## Server diff --git a/api_docs/kbn_es_archiver.json b/api_docs/kbn_es_archiver.json index 543a46deb3c4f..df0e26225b2e9 100644 --- a/api_docs/kbn_es_archiver.json +++ b/api_docs/kbn_es_archiver.json @@ -55,6 +55,7 @@ "id": "def-server.EsArchiver.save", "type": "Function", "tags": [ + "property", "property" ], "label": "save", @@ -62,7 +63,7 @@ "\nExtract data and mappings from an elasticsearch index and store\nit in the baseDir so it can be used later to recreate the index.\n" ], "signature": [ - "(path: string, indices: string | string[], { raw, query }?: { raw?: boolean | undefined; query?: Record | undefined; }) => Promise | undefined; }) => Promise>" ], @@ -106,7 +107,7 @@ "id": "def-server.EsArchiver.save.$3", "type": "Object", "tags": [], - "label": "{ raw = false, query }", + "label": "{\n raw = false,\n keepIndexNames = false,\n query,\n }", "description": [], "path": "packages/kbn-es-archiver/src/es_archiver.ts", "deprecated": false, @@ -124,6 +125,19 @@ "path": "packages/kbn-es-archiver/src/es_archiver.ts", "deprecated": false }, + { + "parentPluginId": "@kbn/es-archiver", + "id": "def-server.EsArchiver.save.$3.keepIndexNames", + "type": "CompoundType", + "tags": [], + "label": "keepIndexNames", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-es-archiver/src/es_archiver.ts", + "deprecated": false + }, { "parentPluginId": "@kbn/es-archiver", "id": "def-server.EsArchiver.save.$3.query", @@ -147,6 +161,7 @@ "id": "def-server.EsArchiver.load", "type": "Function", "tags": [ + "property", "property", "property" ], @@ -155,7 +170,7 @@ "\nLoad an index from an archive\n" ], "signature": [ - "(path: string, { skipExisting, useCreate, }?: { skipExisting?: boolean | undefined; useCreate?: boolean | undefined; }) => Promise Promise>" ], @@ -183,7 +198,7 @@ "id": "def-server.EsArchiver.load.$2", "type": "Object", "tags": [], - "label": "{\n skipExisting = false,\n useCreate = false,\n }", + "label": "{\n skipExisting = false,\n useCreate = false,\n docsOnly = false,\n }", "description": [], "path": "packages/kbn-es-archiver/src/es_archiver.ts", "deprecated": false, @@ -213,6 +228,19 @@ ], "path": "packages/kbn-es-archiver/src/es_archiver.ts", "deprecated": false + }, + { + "parentPluginId": "@kbn/es-archiver", + "id": "def-server.EsArchiver.load.$2.docsOnly", + "type": "CompoundType", + "tags": [], + "label": "docsOnly", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-es-archiver/src/es_archiver.ts", + "deprecated": false } ] } diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index a2c90c35d0489..3a6675f162601 100644 --- a/api_docs/kbn_es_archiver.mdx +++ b/api_docs/kbn_es_archiver.mdx @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 25 | 0 | 12 | 1 | +| 27 | 0 | 14 | 1 | ## Server diff --git a/api_docs/kbn_es_query.json b/api_docs/kbn_es_query.json index c912aa62390b2..1095f32d95c0d 100644 --- a/api_docs/kbn_es_query.json +++ b/api_docs/kbn_es_query.json @@ -977,7 +977,7 @@ "\nCreates a filter corresponding to a raw Elasticsearch query DSL object" ], "signature": [ - "(query: (Record & { query_string?: { query: string; } | undefined; }) | undefined, index: string, alias: string) => ", + "(query: (Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined, index: string, alias: string) => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -997,7 +997,7 @@ "label": "query", "description": [], "signature": [ - "(Record & { query_string?: { query: string; } | undefined; }) | undefined" + "(Record & { query_string?: { query: string; fields?: string[] | undefined; } | undefined; }) | undefined" ], "path": "packages/kbn-es-query/src/filters/build_filters/query_string_filter.ts", "deprecated": false, @@ -4101,7 +4101,7 @@ "section": "def-common.FilterMeta", "text": "FilterMeta" }, - "; query?: { query_string?: { query: string; } | undefined; } | undefined; }" + "; query?: { query_string?: { query: string; fields?: string[] | undefined; } | undefined; } | undefined; }" ], "path": "packages/kbn-es-query/src/filters/build_filters/query_string_filter.ts", "deprecated": false, diff --git a/api_docs/kbn_logging.json b/api_docs/kbn_logging.json index ca0d0f8a37ef6..6f750cfb91347 100644 --- a/api_docs/kbn_logging.json +++ b/api_docs/kbn_logging.json @@ -616,7 +616,7 @@ "label": "EcsEventCategory", "description": [], "signature": [ - "\"network\" | \"web\" | \"database\" | \"package\" | \"host\" | \"session\" | \"file\" | \"registry\" | \"process\" | \"authentication\" | \"configuration\" | \"driver\" | \"iam\" | \"intrusion_detection\" | \"malware\"" + "\"database\" | \"package\" | \"host\" | \"session\" | \"file\" | \"registry\" | \"network\" | \"web\" | \"process\" | \"authentication\" | \"configuration\" | \"driver\" | \"iam\" | \"intrusion_detection\" | \"malware\"" ], "path": "packages/kbn-logging/src/ecs/event.ts", "deprecated": false, diff --git a/api_docs/kbn_mapbox_gl.json b/api_docs/kbn_mapbox_gl.json index ee5b4c6dadc7d..76fd490447c1d 100644 --- a/api_docs/kbn_mapbox_gl.json +++ b/api_docs/kbn_mapbox_gl.json @@ -3822,7 +3822,7 @@ "label": "on", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -3880,7 +3880,7 @@ "label": "on", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -3924,7 +3924,7 @@ "label": "on", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -3968,7 +3968,7 @@ "label": "once", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4026,7 +4026,7 @@ "label": "once", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4070,7 +4070,7 @@ "label": "once", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4114,7 +4114,7 @@ "label": "off", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4172,7 +4172,7 @@ "label": "off", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -4216,7 +4216,7 @@ "label": "off", "description": [], "signature": [ - "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" + "{ (type: T, layer: string, listener: (ev: maplibregl.MapLayerEventType[T] & maplibregl.EventData) => void): this; (type: T, listener: (ev: maplibregl.MapEventType[T] & maplibregl.EventData) => void): this; (type: string, listener: (ev: any) => void): this; }" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false, @@ -6750,7 +6750,7 @@ "label": "scheme", "description": [], "signature": [ - "\"xyz\" | \"tms\" | undefined" + "\"tms\" | \"xyz\" | undefined" ], "path": "node_modules/maplibre-gl/src/index.d.ts", "deprecated": false diff --git a/api_docs/kbn_monaco.json b/api_docs/kbn_monaco.json index 17323f36e0d89..03527a796a800 100644 --- a/api_docs/kbn_monaco.json +++ b/api_docs/kbn_monaco.json @@ -132,6 +132,94 @@ ], "path": "packages/kbn-monaco/src/types.ts", "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.CompleteLangModuleType.validation$", + "type": "Function", + "tags": [], + "label": "validation$", + "description": [], + "signature": [ + "() => ", + "Observable", + "<", + { + "pluginId": "@kbn/monaco", + "scope": "common", + "docId": "kibKbnMonacoPluginApi", + "section": "def-common.LangValidation", + "text": "LangValidation" + }, + ">" + ], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError", + "type": "Interface", + "tags": [], + "label": "EditorError", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.startLineNumber", + "type": "number", + "tags": [], + "label": "startLineNumber", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.startColumn", + "type": "number", + "tags": [], + "label": "startColumn", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.endLineNumber", + "type": "number", + "tags": [], + "label": "endLineNumber", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.endColumn", + "type": "number", + "tags": [], + "label": "endColumn", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.EditorError.message", + "type": "string", + "tags": [], + "label": "message", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false } ], "initialIsOpen": false @@ -213,6 +301,59 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangValidation", + "type": "Interface", + "tags": [], + "label": "LangValidation", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangValidation.isValidating", + "type": "boolean", + "tags": [], + "label": "isValidating", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangValidation.isValid", + "type": "boolean", + "tags": [], + "label": "isValid", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.LangValidation.errors", + "type": "Array", + "tags": [], + "label": "errors", + "description": [], + "signature": [ + { + "pluginId": "@kbn/monaco", + "scope": "common", + "docId": "kibKbnMonacoPluginApi", + "section": "def-common.EditorError", + "text": "EditorError" + }, + "[]" + ], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/monaco", "id": "def-common.PainlessAutocompleteField", @@ -274,7 +415,7 @@ "label": "kind", "description": [], "signature": [ - "\"keyword\" | \"type\" | \"field\" | \"property\" | \"method\" | \"class\" | \"constructor\"" + "\"type\" | \"field\" | \"keyword\" | \"property\" | \"method\" | \"class\" | \"constructor\"" ], "path": "packages/kbn-monaco/src/painless/types.ts", "deprecated": false @@ -357,6 +498,32 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.SyntaxErrors", + "type": "Interface", + "tags": [], + "label": "SyntaxErrors", + "description": [], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.SyntaxErrors.Unnamed", + "type": "Any", + "tags": [], + "label": "Unnamed", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-monaco/src/types.ts", + "deprecated": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -369,7 +536,7 @@ "label": "PainlessCompletionKind", "description": [], "signature": [ - "\"keyword\" | \"type\" | \"field\" | \"property\" | \"method\" | \"class\" | \"constructor\"" + "\"type\" | \"field\" | \"keyword\" | \"property\" | \"method\" | \"class\" | \"constructor\"" ], "path": "packages/kbn-monaco/src/painless/types.ts", "deprecated": false, @@ -513,7 +680,38 @@ "description": [], "signature": [ "() => ", - "SyntaxErrors" + { + "pluginId": "@kbn/monaco", + "scope": "common", + "docId": "kibKbnMonacoPluginApi", + "section": "def-common.SyntaxErrors", + "text": "SyntaxErrors" + } + ], + "path": "packages/kbn-monaco/src/painless/index.ts", + "deprecated": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "@kbn/monaco", + "id": "def-common.PainlessLang.validation$", + "type": "Function", + "tags": [], + "label": "validation$", + "description": [], + "signature": [ + "() => ", + "Observable", + "<", + { + "pluginId": "@kbn/monaco", + "scope": "common", + "docId": "kibKbnMonacoPluginApi", + "section": "def-common.LangValidation", + "text": "LangValidation" + }, + ">" ], "path": "packages/kbn-monaco/src/painless/index.ts", "deprecated": false, diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index 08c7f95ee4f43..adb95090405cc 100644 --- a/api_docs/kbn_monaco.mdx +++ b/api_docs/kbn_monaco.mdx @@ -18,7 +18,7 @@ Contact [Owner missing] for questions regarding this plugin. | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 38 | 0 | 38 | 3 | +| 52 | 1 | 52 | 2 | ## Common diff --git a/api_docs/kbn_react_field.json b/api_docs/kbn_react_field.json new file mode 100644 index 0000000000000..dca7be13b92c7 --- /dev/null +++ b/api_docs/kbn_react_field.json @@ -0,0 +1,387 @@ +{ + "id": "@kbn/react-field", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButton", + "type": "Function", + "tags": [], + "label": "FieldButton", + "description": [], + "signature": [ + "({\n size = 'm',\n isActive = false,\n fieldIcon,\n fieldName,\n fieldInfoIcon,\n fieldAction,\n className,\n isDraggable = false,\n onClick,\n dataTestSubj,\n buttonProps,\n ...rest\n}: ", + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldButtonProps", + "text": "FieldButtonProps" + }, + ") => JSX.Element" + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButton.$1", + "type": "Object", + "tags": [], + "label": "{\n size = 'm',\n isActive = false,\n fieldIcon,\n fieldName,\n fieldInfoIcon,\n fieldAction,\n className,\n isDraggable = false,\n onClick,\n dataTestSubj,\n buttonProps,\n ...rest\n}", + "description": [], + "signature": [ + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldButtonProps", + "text": "FieldButtonProps" + } + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldIcon", + "type": "Function", + "tags": [], + "label": "FieldIcon", + "description": [ + "\nField token icon used across the app" + ], + "signature": [ + "({\n type,\n label,\n size = 's',\n scripted,\n className,\n ...rest\n}: ", + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldIconProps", + "text": "FieldIconProps" + }, + ") => JSX.Element" + ], + "path": "packages/kbn-react-field/src/field_icon/field_icon.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldIcon.$1", + "type": "Object", + "tags": [], + "label": "{\n type,\n label,\n size = 's',\n scripted,\n className,\n ...rest\n}", + "description": [], + "signature": [ + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldIconProps", + "text": "FieldIconProps" + } + ], + "path": "packages/kbn-react-field/src/field_icon/field_icon.tsx", + "deprecated": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButtonProps", + "type": "Interface", + "tags": [], + "label": "FieldButtonProps", + "description": [], + "signature": [ + { + "pluginId": "@kbn/react-field", + "scope": "common", + "docId": "kibKbnReactFieldPluginApi", + "section": "def-common.FieldButtonProps", + "text": "FieldButtonProps" + }, + " extends React.HTMLAttributes" + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false, + "children": [ + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButtonProps.fieldName", + "type": "CompoundType", + "tags": [], + "label": "fieldName", + "description": [ + "\nLabel for the button" + ], + "signature": [ + "string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | null | undefined" + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false + }, + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButtonProps.fieldIcon", + "type": "CompoundType", + "tags": [], + "label": "fieldIcon", + "description": [ + "\nIcon representing the field type.\nRecommend using FieldIcon" + ], + "signature": [ + "string | number | boolean | {} | React.ReactElement React.ReactElement React.Component)> | null) | (new (props: any) => React.Component)> | React.ReactNodeArray | React.ReactPortal | null | undefined" + ], + "path": "packages/kbn-react-field/src/field_button/field_button.tsx", + "deprecated": false + }, + { + "parentPluginId": "@kbn/react-field", + "id": "def-common.FieldButtonProps.fieldInfoIcon", + "type": "CompoundType", + "tags": [], + "label": "fieldInfoIcon", + "description": [ + "\nAn optional node to place inside and at the end of the + + +
+
+ + +`; + +exports[`Storyshots components/WorkpadFilters/FiltersGroupComponent empty group 1`] = ` +
+
+
+
+ + +
+
+
+
+
+`; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/workpad_filters.component.stories.storyshot b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/workpad_filters.component.stories.storyshot new file mode 100644 index 0000000000000..31e473f527e06 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/__snapshots__/workpad_filters.component.stories.storyshot @@ -0,0 +1,706 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent Empty filters groups 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent Filters groups without group name 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent Filters groups without name 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent Filters groups without name and filters 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+`; + +exports[`Storyshots components/WorkpadFilters/WorkpadFiltersComponent default 1`] = ` +
+
+
+
+
+
+
+
+ Group by +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+ + +
+
+
+
+
+
+
+`; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts new file mode 100644 index 0000000000000..9eacfb54a411f --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/elements.ts @@ -0,0 +1,66 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import moment from 'moment'; +import { CanvasElement } from '../../../../types'; + +const timeFormat = 'MM.dd.YYYY HH:mm'; + +const generatePosition = (n: number): CanvasElement['position'] => ({ + left: n, + top: n, + width: n, + height: n, + angle: n, + parent: null, +}); + +const time1 = { + from: moment('1.01.2021 8:15', timeFormat).format(), + to: moment('2.01.2021 17:22', timeFormat).format(), +}; +const group1 = 'Group 1'; + +const time2 = { + from: moment('1.10.2021 12:20', timeFormat).format(), + to: moment('2.10.2021 12:33', timeFormat).format(), +}; +const group2 = 'Group 2'; + +const element1: CanvasElement = { + id: '1', + position: generatePosition(1), + type: 'element', + expression: '', + filter: `timefilter column="@timestamp" from="${time1.from}" to="${time1.to}" filterGroup="${group1}"`, +}; + +const element2: CanvasElement = { + id: '2', + position: generatePosition(2), + type: 'element', + expression: '', + filter: `exactly value="machine-learning" column="project1" filterGroup="${group1}"`, +}; + +const element3: CanvasElement = { + id: '3', + position: generatePosition(3), + type: 'element', + expression: '', + filter: `timefilter column="@timestamp" from="${time2.from}" to="${time2.to}"`, +}; + +const element4: CanvasElement = { + id: '4', + position: generatePosition(4), + type: 'element', + expression: '', + filter: `exactly value="kibana" column="project2" filterGroup="${group2}"`, +}; + +export const elements = [element1, element2, element3, element4]; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filter.component.stories.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filter.component.stories.tsx new file mode 100644 index 0000000000000..dded39e2b7e1d --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filter.component.stories.tsx @@ -0,0 +1,53 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiText, EuiTextColor } from '@elastic/eui'; +import { storiesOf } from '@storybook/react'; +import React, { FC } from 'react'; +import { FormattedFilterViewInstance } from '../../../../types'; +import { Filter } from '../filter.component'; + +const filter: FormattedFilterViewInstance = { + type: { + label: 'Type', + formattedValue: 'exactly', + }, + column: { + label: 'Column', + formattedValue: 'project', + }, + value: { + label: 'Value', + formattedValue: 'kibana', + }, + filterGroup: { + label: 'Filter group', + formattedValue: 'Group 1', + }, +}; + +const component: FC = ({ value }) => ( + + +

{value}

+
+
+); + +storiesOf('components/WorkpadFilters/FilterComponent', module) + .add('default', () => ) + .add('with component field', () => ( + + )) + .add('with custom filter fields', () => ( + + )); diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filters_group.component.stories.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filters_group.component.stories.tsx new file mode 100644 index 0000000000000..bdeb963dc8832 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/filters_group.component.stories.tsx @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { storiesOf } from '@storybook/react'; +import React from 'react'; +import moment from 'moment'; +import { FiltersGroup } from '../filters_group.component'; +import { FiltersGroup as FiltersGroupType } from '../types'; + +const timeFormat = 'MM.dd.YYYY HH:mm'; + +const filtersGroup: FiltersGroupType = { + name: 'Group 1', + filters: [ + { type: 'exactly', column: 'project', value: 'kibana', filterGroup: 'Group 1' }, + { + type: 'time', + column: '@timestamp', + value: { + from: moment('1.01.2021 8:15', timeFormat).format(), + to: moment('2.01.2021 17:22', timeFormat).format(), + }, + filterGroup: 'Group 1', + }, + { type: 'exactly', column: 'country', value: 'US', filterGroup: 'Group 1' }, + { + type: 'time', + column: 'time', + value: { + from: moment('05.21.2021 10:50', timeFormat).format(), + to: moment('05.22.2021 4:40', timeFormat).format(), + }, + filterGroup: 'Group 1', + }, + ], +}; + +storiesOf('components/WorkpadFilters/FiltersGroupComponent', module) + .addDecorator((story) =>
{story()}
) + .add('default', () => ) + .add('empty group', () => ( + + )); diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.component.stories.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.component.stories.tsx new file mode 100644 index 0000000000000..8dc062886a12e --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.component.stories.tsx @@ -0,0 +1,95 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { storiesOf } from '@storybook/react'; +import { action } from '@storybook/addon-actions'; +import React from 'react'; +import moment from 'moment'; +import { WorkpadFilters } from '../workpad_filters.component'; +import { FiltersGroup as FiltersGroupType } from '../types'; +import { Filter } from '../../../../types'; + +const timeFormat = 'MM.dd.YYYY HH:mm'; + +const filters: Filter[] = [ + { type: 'exactly', column: 'project', value: 'kibana', filterGroup: 'Group 1' }, + { + type: 'time', + column: '@timestamp', + value: { + from: moment('1.01.2021 8:15', timeFormat).format(), + to: moment('2.01.2021 17:22', timeFormat).format(), + }, + filterGroup: 'Group 1', + }, + { type: 'exactly', column: 'country', value: 'US', filterGroup: 'Group 2' }, + { + type: 'time', + column: 'time', + value: { + from: moment('05.21.2021 10:50', timeFormat).format(), + to: moment('05.22.2021 4:40', timeFormat).format(), + }, + filterGroup: 'Group 2', + }, +]; + +const filtersGroups: FiltersGroupType[] = [ + { + name: filters[0].filterGroup, + filters: [filters[0], filters[1]], + }, + { + name: filters[2].filterGroup, + filters: [filters[2], filters[3]], + }, +]; + +storiesOf('components/WorkpadFilters/WorkpadFiltersComponent', module) + .addDecorator((story) => ( +
+
+
{story()}
+
+
+ )) + .add('default', () => ( + + )) + .add('Filters groups without name', () => ( + ((acc, group) => [...acc, ...group.filters], []), + }, + ]} + groupFiltersByField={'column'} + onGroupByChange={action('onGroupByChange')} + /> + )) + .add('Filters groups without group name', () => ( + ((acc, group) => [...acc, ...group.filters], []), + }, + ]} + groupFiltersByField={'filterGroup'} + onGroupByChange={action('onGroupByChange')} + /> + )) + .add('Filters groups without name and filters', () => ( + + )) + .add('Empty filters groups', () => ( + + )); diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.stories.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.stories.tsx new file mode 100644 index 0000000000000..b97043bf83304 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/__stories__/workpad_filters.stories.tsx @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { storiesOf } from '@storybook/react'; +import React from 'react'; +import { reduxDecorator } from '../../../../storybook'; +import { WorkpadFilters } from '../workpad_filters'; +import { elements } from './elements'; + +storiesOf('components/WorkpadFilters/WorkpadFilters', module) + .addDecorator((story) => ( +
+
+
{story()}
+
+
+ )) + .addDecorator(reduxDecorator({ elements })) + .add('redux: default', () => ); diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filter.component.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/filter.component.tsx new file mode 100644 index 0000000000000..bec6bec090d62 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filter.component.tsx @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC } from 'react'; +import { EuiDescriptionList, EuiPanel, EuiText } from '@elastic/eui'; +import { FormattedFilterViewInstance } from '../../../types'; + +interface Props { + filter: FormattedFilterViewInstance; + updateFilter?: (value: any) => void; +} + +type CustomComponentProps = Omit & { value: string }; + +const titleStyle = { + width: '30%', +}; + +const descriptionStyle = { + width: '70%', +}; + +const renderElement = ( + Component: FC< + Omit & { onChange?: CustomComponentProps['updateFilter'] } + >, + { updateFilter, ...props }: CustomComponentProps +) => { + return ; +}; + +export const Filter: FC = ({ filter, ...restProps }) => { + const filterView = Object.values(filter).map((filterValue) => { + const description = filterValue.component + ? renderElement(filterValue.component, { value: filterValue.formattedValue, ...restProps }) + : filterValue.formattedValue; + + return { + title: ( + +

{filterValue.label}

+
+ ), + description: {description}, + }; + }); + + return ( + + + + ); +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/default_filter.ts b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/default_filter.ts new file mode 100644 index 0000000000000..b2686fb660535 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/default_filter.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { FilterViewSpec } from '../../../../types'; +import { formatByKey } from '../utils'; + +const strings = { + getTypeLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.type', { + defaultMessage: 'Type', + }), + getColumnLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.column', { + defaultMessage: 'Column', + }), + getFilterGroupLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.filterGroup', { + defaultMessage: 'Filter group', + }), + getValueLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.value', { + defaultMessage: 'Value', + }), +}; + +export const defaultFilter: FilterViewSpec = { + name: 'default', + view: { + column: { label: strings.getColumnLabel() }, + value: { label: strings.getValueLabel() }, + type: { label: strings.getTypeLabel(), formatter: formatByKey('type') }, + filterGroup: { label: strings.getFilterGroupLabel() }, + }, +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/index.ts b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/index.ts new file mode 100644 index 0000000000000..98fad36c0015a --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/index.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 { FilterViewSpec } from '../../../../types'; +import { defaultFilter } from './default_filter'; +import { timeFilter } from './time_filter'; + +export const filterViews: Record> = { + [defaultFilter.name]: defaultFilter, + [timeFilter.name]: timeFilter, +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/time_filter.ts b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/time_filter.ts new file mode 100644 index 0000000000000..1dc02f61d05f7 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filter_views/time_filter.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import dateMath from '@elastic/datemath'; +import { i18n } from '@kbn/i18n'; +import { FilterType, FilterViewSpec, SimpleFilterViewField } from '../../../../types'; +import { formatByKey } from '../utils'; +import { defaultFilter } from './default_filter'; + +export interface TimeFilterValue { + to: string; + from: string; +} + +const strings = { + getFromLabel: () => + i18n.translate('xpack.canvas.workpadFilters.timeFilter.from', { + defaultMessage: 'From', + }), + getToLabel: () => + i18n.translate('xpack.canvas.workpadFilters.timeFilter.to', { + defaultMessage: 'To', + }), + getInvalidDateLabel: (date: string) => + i18n.translate('xpack.canvas.workpadFilters.timeFilter.invalidDate', { + defaultMessage: 'Invalid date: {date}', + values: { + date, + }, + }), +}; + +const { column, type, filterGroup } = defaultFilter.view; + +const formatTime = (str: string, roundUp: boolean) => { + const moment = dateMath.parse(str, { roundUp }); + if (!moment || !moment.isValid()) { + return strings.getInvalidDateLabel(str); + } + + return moment.format('YYYY-MM-DD HH:mm:ss'); +}; + +export const timeFilter: FilterViewSpec = { + name: FilterType.time, + view: { + column, + value: ({ to, from }) => ({ + from: { + label: strings.getFromLabel(), + formatter: () => formatTime(from, false), + }, + to: { + label: strings.getToLabel(), + formatter: () => formatTime(to, true), + }, + }), + type: { + label: (type as SimpleFilterViewField).label, + formatter: formatByKey('type'), + }, + filterGroup, + }, +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/filters_group.component.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/filters_group.component.tsx new file mode 100644 index 0000000000000..8ceb60fe7866f --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/filters_group.component.tsx @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiAccordion } from '@elastic/eui'; +import React, { FC } from 'react'; +import { FormattedFilterViewInstance } from '../../../types'; +import { createFilledFilterView } from '../../lib/filter'; +import { Filter } from './filter.component'; +import { filterViews } from './filter_views'; +import { FiltersGroup as FiltersGroupType } from './types'; + +interface Props { + filtersGroup: FiltersGroupType; + id: string | number; +} + +const panelStyle = { + paddingTop: '15px', +}; + +export const FiltersGroup: FC = ({ filtersGroup, id }) => { + const { name, filters: groupFilters } = filtersGroup; + + const filledFilterViews: FormattedFilterViewInstance[] = groupFilters.map((filter) => { + const filterView = filterViews[filter.type] ?? filterViews.default; + return createFilledFilterView(filterView.view, filter); + }); + + const filtersComponents = filledFilterViews.map((filter, index) => ( + + )); + + return ( +
+ +
{filtersComponents}
+
+
+ ); +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/hooks/index.ts b/x-pack/plugins/canvas/public/components/workpad_filters/hooks/index.ts new file mode 100644 index 0000000000000..62f2a28130bfa --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/hooks/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { useCanvasFilters } from './use_canvas_filters'; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/hooks/use_canvas_filters.ts b/x-pack/plugins/canvas/public/components/workpad_filters/hooks/use_canvas_filters.ts new file mode 100644 index 0000000000000..ce8e90def5aad --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/hooks/use_canvas_filters.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { fromExpression } from '@kbn/interpreter/common'; +import { shallowEqual, useSelector } from 'react-redux'; +import { State } from '../../../../types'; +import { adaptCanvasFilter } from '../../../lib/filter_adapters'; +import { getGlobalFilters } from '../../../state/selectors/workpad'; + +const extractExpressionAST = (filtersExpressions: string[]) => + fromExpression(filtersExpressions.join(' | ')); + +export function useCanvasFilters() { + const filterExpressions = useSelector((state: State) => getGlobalFilters(state), shallowEqual); + const expression = extractExpressionAST(filterExpressions); + const filters = expression.chain.map(adaptCanvasFilter); + + return filters; +} diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/index.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/index.tsx new file mode 100644 index 0000000000000..684d5e09c18fc --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/index.tsx @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { WorkpadFilters } from './workpad_filters'; +export { WorkpadFilters as WorkpadFiltersComponent } from './workpad_filters.component'; diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/helpers.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/types.ts similarity index 65% rename from x-pack/plugins/observability/public/components/app/cases/callout/helpers.tsx rename to x-pack/plugins/canvas/public/components/workpad_filters/types.ts index fdd49ad17168d..4733c18da9be5 100644 --- a/x-pack/plugins/observability/public/components/app/cases/callout/helpers.tsx +++ b/x-pack/plugins/canvas/public/components/workpad_filters/types.ts @@ -5,7 +5,9 @@ * 2.0. */ -import md5 from 'md5'; +import { Filter } from '../../../types'; -export const createCalloutId = (ids: string[], delimiter: string = '|'): string => - md5(ids.join(delimiter)); +export interface FiltersGroup { + name: string | null; + filters: Filter[]; +} diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/utils.ts b/x-pack/plugins/canvas/public/components/workpad_filters/utils.ts new file mode 100644 index 0000000000000..cc5836112db8a --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/utils.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { FilterField } from '../../../types'; + +const strings = { + getBlankLabel: () => + i18n.translate('xpack.canvas.workpadFilters.filter.blankTypeLabel', { + defaultMessage: '(Blank)', + }), + getExactlyFilterTypeLabel: () => + i18n.translate('xpack.canvas.workpadFilters.defaultFilter.typeLabel', { + defaultMessage: 'Dropdown', + }), + getTimeFilterTypeLabel: () => + i18n.translate('xpack.canvas.workpadFilters.timeFilter.typeLabel', { + defaultMessage: 'Time', + }), + getWithoutGroupLabel: () => + i18n.translate('xpack.canvas.workpadFilters.filters_group.withoutGroup', { + defaultMessage: 'Without group', + }), +}; + +const formatType = (type: unknown) => { + const types: Record = { + exactly: strings.getExactlyFilterTypeLabel(), + time: strings.getTimeFilterTypeLabel(), + }; + return typeof type === 'string' ? types[type] ?? type : null; +}; + +const formatters: Partial string | null>> = { + type: formatType, +}; + +export const formatByKey = (key: FilterField) => formatters[key]; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.component.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.component.tsx new file mode 100644 index 0000000000000..e3504f906fb3a --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.component.tsx @@ -0,0 +1,98 @@ +/* + * Copyright 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, { FC, Fragment } from 'react'; +import { EuiFlexGroup, EuiFlexItem, EuiSelect, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { identity } from 'lodash'; +import { FiltersGroup as FiltersGroupType } from './types'; +import { FiltersGroup } from './filters_group.component'; +import { FilterField } from '../../../types'; +import { formatByKey } from './utils'; + +interface Props { + filtersGroups: FiltersGroupType[]; + groupFiltersByField?: FilterField; + onGroupByChange: (groupBy: FilterField) => void; +} + +const strings = { + getGroupBySelectLabel: () => + i18n.translate('xpack.canvas.workpadFilters.groupBySelect', { + defaultMessage: 'Group by', + }), + getGroupByFilterGroupLabel: () => + i18n.translate('xpack.canvas.workpadFilters.groupByFilterGroup', { + defaultMessage: 'Filter group', + }), + getGroupByFilterTypeLabel: () => + i18n.translate('xpack.canvas.workpadFilters.groupByFilterType', { + defaultMessage: 'Filter type', + }), + getGroupByColumnLabel: () => + i18n.translate('xpack.canvas.workpadFilters.groupByColumn', { + defaultMessage: 'Column', + }), + getWithoutGroupLabel: () => + i18n.translate('xpack.canvas.workpadFilters.filters_group.withoutGroup', { + defaultMessage: 'Without group', + }), + getBlankValueLabel: () => + i18n.translate('xpack.canvas.workpadFilters.filters_group.blankValue', { + defaultMessage: '(Blank)', + }), +}; + +const groupByOptions: Array<{ value: FilterField; text: string }> = [ + { value: 'filterGroup', text: strings.getGroupByFilterGroupLabel() }, + { value: 'type', text: strings.getGroupByFilterTypeLabel() }, + { value: 'column', text: strings.getGroupByColumnLabel() }, +]; + +export const WorkpadFilters: FC = ({ + filtersGroups, + onGroupByChange, + groupFiltersByField, +}) => { + const groupedByFilterGroupField = groupFiltersByField === 'filterGroup'; + const formatter = groupFiltersByField ? formatByKey(groupFiltersByField) ?? identity : identity; + + const preparedFilterGroups = filtersGroups.map((filterGroup) => ({ + ...filterGroup, + name: + formatter(filterGroup.name) ?? + (groupedByFilterGroupField ? strings.getWithoutGroupLabel() : strings.getBlankValueLabel()), + })); + + const filtersGroupsComponents = preparedFilterGroups.map((filtersGroup, index) => { + return ; + }); + + return ( + +
+ + + +
{strings.getGroupBySelectLabel()}
+
+
+ + onGroupByChange(e.target.value as FilterField)} + aria-label="Use aria labels when no actual label is in use" + /> + +
+
+ {filtersGroupsComponents} +
+ ); +}; diff --git a/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.tsx b/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.tsx new file mode 100644 index 0000000000000..c04fe543804b4 --- /dev/null +++ b/x-pack/plugins/canvas/public/components/workpad_filters/workpad_filters.tsx @@ -0,0 +1,44 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, useCallback } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { State, FilterField } from '../../../types'; +import { groupFiltersBy } from '../../lib/filter'; +import { setGroupFiltersByOption } from '../../state/actions/sidebar'; +import { getGroupFiltersByOption } from '../../state/selectors/sidebar'; +import { useCanvasFilters } from './hooks'; +import { WorkpadFilters as Component } from './workpad_filters.component'; + +export const WorkpadFilters: FC = () => { + const groupFiltersByField: FilterField = useSelector((state: State) => + getGroupFiltersByOption(state) + ); + + const dispatch = useDispatch(); + + const onGroupByChange = useCallback( + (groupByOption: FilterField) => { + dispatch(setGroupFiltersByOption(groupByOption)); + }, + [dispatch] + ); + + const canvasFilters = useCanvasFilters(); + + const filtersGroups = groupFiltersByField + ? groupFiltersBy(canvasFilters, groupFiltersByField) + : []; + + return ( + + ); +}; diff --git a/x-pack/plugins/canvas/public/lib/filter.test.ts b/x-pack/plugins/canvas/public/lib/filter.test.ts new file mode 100644 index 0000000000000..497f75b91650f --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/filter.test.ts @@ -0,0 +1,282 @@ +/* + * Copyright 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 { FC } from 'react'; +import { + Filter as FilterType, + FilterViewInstance, + FlattenFilterViewInstance, + SimpleFilterViewField, +} from '../../types'; +import { + defaultFormatter, + formatFilterView, + flattenFilterView, + createFilledFilterView, + groupFiltersBy, +} from './filter'; + +const formatterFactory = (value: unknown) => () => JSON.stringify(value); +const fc: FC = () => null; + +const simpleFilterValue: FilterType = { + type: 'exactly', + column: 'project', + value: 'kibana', + filterGroup: 'someGroup', +}; + +const filterWithNestedValue: FilterType = { + type: 'exactlyNested' as any, + column: 'project', + value: { nestedField1: 'nestedField1', nestedField2: 'nestedField2' }, + filterGroup: 'someGroup', +}; + +const simpleFilterView: FilterViewInstance = { + type: { label: 'label' }, + column: { label: 'column' }, + value: { label: 'value' }, + filterGroup: { label: 'filterGroup' }, +}; + +const nestedFilterView: FilterViewInstance = { + type: { label: 'label' }, + column: { label: 'column' }, + value: (value: unknown) => ({ + nested: { + label: 'nested', + formatter: formatterFactory(value), + }, + }), + filterGroup: { label: 'filterGroup' }, +}; + +describe('defaultFormatter', () => { + it('returns string when passed not null/undefined/falsy/emtpy value', () => { + expect(defaultFormatter(10)).toBe('10'); + expect(defaultFormatter('10')).toBe('10'); + const objToFormat = { field: 10 }; + expect(defaultFormatter(objToFormat)).toBe(objToFormat.toString()); + const arrToFormat = [10, 20]; + expect(defaultFormatter(arrToFormat)).toBe(arrToFormat.toString()); + }); + + it("returns '-' when passed null/undefined/falsy/emtpy value", () => { + const empty = '-'; + expect(defaultFormatter(null)).toBe(empty); + expect(defaultFormatter(undefined)).toBe(empty); + expect(defaultFormatter('')).toBe(empty); + expect(defaultFormatter(false)).toBe(empty); + }); +}); + +describe('flattenFilterView returns fn which', () => { + it('returns the same filter view if it expects all fiends to be simple values', () => { + const flattenFn = flattenFilterView(simpleFilterValue); + expect(flattenFn(simpleFilterView)).toEqual(simpleFilterView); + }); + + it('returns the same filter view if filterValue is empty object', () => { + const flattenFn = flattenFilterView({} as any); + expect(flattenFn(simpleFilterView)).toEqual(simpleFilterView); + }); + + it('returns empty filter view if filter view is empty object', () => { + const flattenFn = flattenFilterView(simpleFilterValue); + expect(flattenFn({} as any)).toEqual({}); + }); + + it('returns single nesting filter view if it expects some fields to be nested objects', () => { + const flattenFn = flattenFilterView(filterWithNestedValue); + const { value, ...restExpectedFields } = nestedFilterView; + const flattenFilterViewRes = flattenFn(nestedFilterView); + + expect(flattenFilterViewRes).toEqual({ + ...restExpectedFields, + nested: { + label: 'nested', + formatter: expect.any(Function), + }, + }); + expect(flattenFilterViewRes.nested.formatter?.()).toBe( + formatterFactory(filterWithNestedValue.value)() + ); + }); + + it('returns single nesting filter view if filterValue is empty object', () => { + const flattenFn = flattenFilterView({} as any); + const { value, ...rest } = nestedFilterView; + expect(flattenFn(nestedFilterView)).toEqual({ + ...rest, + nested: { + label: 'nested', + formatter: expect.any(Function), + }, + }); + }); +}); + +describe('formatFilterView returns fn which', () => { + const simpleFlattenFilterView: FlattenFilterViewInstance = { + type: { label: 'label' }, + value: { label: 'value' }, + column: { label: 'column' }, + filterGroup: { label: 'filterGroup' }, + nestedField: { label: 'nestedField', formatter: () => 'null' }, + }; + + it('returns formatted filter view with any passed keys', () => { + const formatFn = formatFilterView(simpleFilterValue); + expect(formatFn(simpleFlattenFilterView)).toEqual({ + type: { label: 'label', formattedValue: simpleFilterValue.type }, + value: { label: 'value', formattedValue: simpleFilterValue.value }, + column: { label: 'column', formattedValue: simpleFilterValue.column }, + filterGroup: { label: 'filterGroup', formattedValue: simpleFilterValue.filterGroup }, + nestedField: { label: 'nestedField', formattedValue: 'null' }, + }); + }); + + it("returns formatted filter view with formattedValue = '-' ", () => { + const formatFn = formatFilterView({} as any); + expect(formatFn(simpleFlattenFilterView)).toEqual({ + type: { label: 'label', formattedValue: '-' }, + value: { label: 'value', formattedValue: '-' }, + column: { label: 'column', formattedValue: '-' }, + filterGroup: { label: 'filterGroup', formattedValue: '-' }, + nestedField: { label: 'nestedField', formattedValue: 'null' }, + }); + }); + + it('returns emtpy object when filter view is empty object', () => { + const formatFn = formatFilterView(simpleFilterValue); + expect(formatFn({} as any)).toEqual({}); + }); + + it('returns filter view fields with component property if defined at filter view', () => { + const flattenFilterViewWithComponent: FlattenFilterViewInstance = { + ...simpleFlattenFilterView, + nestedField: { + ...simpleFlattenFilterView.nestedField, + component: fc, + }, + }; + + const formatFn = formatFilterView(simpleFilterValue); + expect(formatFn(flattenFilterViewWithComponent)).toEqual({ + type: { label: 'label', formattedValue: simpleFilterValue.type }, + value: { label: 'value', formattedValue: simpleFilterValue.value }, + column: { label: 'column', formattedValue: simpleFilterValue.column }, + filterGroup: { label: 'filterGroup', formattedValue: simpleFilterValue.filterGroup }, + nestedField: { label: 'nestedField', formattedValue: 'null', component: fc }, + }); + }); +}); + +describe('createFilledFilterView', () => { + it('returns simple filter view with formattedValue and components', () => { + const simpleFilterValueWithComponent = { + ...simpleFilterView, + value: { + ...(simpleFilterView.value as SimpleFilterViewField), + component: fc, + }, + }; + + expect(createFilledFilterView(simpleFilterValueWithComponent, simpleFilterValue)).toEqual({ + type: { label: 'label', formattedValue: simpleFilterValue.type }, + value: { label: 'value', formattedValue: simpleFilterValue.value, component: fc }, + column: { label: 'column', formattedValue: simpleFilterValue.column }, + filterGroup: { label: 'filterGroup', formattedValue: simpleFilterValue.filterGroup }, + }); + }); + + it('returns nested filter view with formattedValue and components', () => { + const nestedFilterViewWithComponent = { + ...nestedFilterView, + value: (value: unknown) => ({ + nested: { + label: 'nested', + formatter: formatterFactory(value), + component: fc, + }, + }), + }; + + expect(createFilledFilterView(nestedFilterViewWithComponent, filterWithNestedValue)).toEqual({ + type: { label: 'label', formattedValue: filterWithNestedValue.type }, + column: { label: 'column', formattedValue: filterWithNestedValue.column }, + filterGroup: { label: 'filterGroup', formattedValue: filterWithNestedValue.filterGroup }, + nested: { + label: 'nested', + formattedValue: formatterFactory(filterWithNestedValue.value)(), + component: fc, + }, + }); + }); +}); + +describe('groupFiltersBy', () => { + const filters: FilterType[] = [ + { type: 'exactly', column: 'project', value: 'kibana', filterGroup: 'someGroup' }, + { + type: 'time', + column: '@timestamp', + value: { from: 'some time', to: 'some time' }, + filterGroup: 'someGroup2', + }, + { type: 'exactly', column: 'country', value: 'US', filterGroup: 'someGroup2' }, + { + type: 'time', + column: 'time', + value: { from: 'some time', to: 'some time' }, + filterGroup: null, + }, + ]; + + it('groups by type', () => { + const grouped = groupFiltersBy(filters, 'type'); + expect(grouped).toEqual([ + { name: 'exactly', filters: [filters[0], filters[2]] }, + { name: 'time', filters: [filters[1], filters[3]] }, + ]); + }); + + it('groups by column', () => { + const grouped = groupFiltersBy(filters, 'column'); + expect(grouped).toEqual([ + { name: 'project', filters: [filters[0]] }, + { name: '@timestamp', filters: [filters[1]] }, + { name: 'country', filters: [filters[2]] }, + { name: 'time', filters: [filters[3]] }, + ]); + }); + + it('groups by filterGroup', () => { + const grouped = groupFiltersBy(filters, 'filterGroup'); + expect(grouped).toEqual([ + { name: 'someGroup', filters: [filters[0]] }, + { name: 'someGroup2', filters: [filters[1], filters[2]] }, + { name: null, filters: [filters[3]] }, + ]); + }); + + it('groups by field on empty array', () => { + const grouped = groupFiltersBy([], 'filterGroup'); + expect(grouped).toEqual([]); + }); + + it('groups by empty field', () => { + const filtersWithoutGroups = filters.map(({ filterGroup, ...rest }) => ({ + ...rest, + filterGroup: null, + })); + + const grouped = groupFiltersBy(filtersWithoutGroups, 'filterGroup'); + expect(grouped).toEqual([{ name: null, filters: filtersWithoutGroups }]); + }); +}); diff --git a/x-pack/plugins/canvas/public/lib/filter.ts b/x-pack/plugins/canvas/public/lib/filter.ts new file mode 100644 index 0000000000000..ae75822e4a7c9 --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/filter.ts @@ -0,0 +1,55 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { flowRight, groupBy } from 'lodash'; +import { + Filter as FilterType, + FilterField, + FilterViewInstance, + FlattenFilterViewInstance, +} from '../../types/filters'; + +export const defaultFormatter = (value: unknown) => (value || null ? `${value}` : '-'); + +export const formatFilterView = + (filterValue: FilterType) => (filterView: FlattenFilterViewInstance) => { + const filterViewKeys = Object.keys(filterView) as Array; + return filterViewKeys.reduce( + (acc, key) => ({ + ...acc, + [key]: { + label: filterView[key].label, + formattedValue: (filterView[key].formatter ?? defaultFormatter)(filterValue[key]), + component: filterView[key].component, + }, + }), + {} + ); + }; + +export const flattenFilterView = (filterValue: FilterType) => (filterView: FilterViewInstance) => { + const filterViewKeys = Object.keys(filterView) as Array; + return filterViewKeys.reduce((acc, key) => { + const filterField = filterView[key]; + if (typeof filterField === 'function') { + const val = filterField(filterValue[key]); + return { ...acc, ...val }; + } + return { ...acc, [key]: filterField }; + }, {}); +}; + +export const createFilledFilterView = (filterView: FilterViewInstance, filter: FilterType) => + flowRight(formatFilterView(filter), flattenFilterView(filter))(filterView); + +export const groupFiltersBy = (filters: FilterType[], groupByField: FilterField) => { + const groupedFilters = groupBy(filters, (filter) => filter[groupByField]); + return Object.keys(groupedFilters).map((key) => ({ + name: groupedFilters[key]?.[0]?.[groupByField] ? key : null, + filters: groupedFilters[key], + })); +}; diff --git a/x-pack/plugins/canvas/public/lib/filter_adapters.test.ts b/x-pack/plugins/canvas/public/lib/filter_adapters.test.ts new file mode 100644 index 0000000000000..5061e47a44347 --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/filter_adapters.test.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { ExpressionFunctionAST } from '@kbn/interpreter/common'; +import { adaptCanvasFilter } from './filter_adapters'; + +describe('adaptCanvasFilter', () => { + const filterAST: ExpressionFunctionAST = { + type: 'function', + function: 'exactly', + arguments: { + type: ['exactly'], + column: ['project'], + filterGroup: [], + value: ['kibana'], + }, + }; + + it('returns filter when AST arguments consists of arrays with one element', () => { + const resultFilter = { type: 'exactly', column: 'project', filterGroup: null, value: 'kibana' }; + + const filter = adaptCanvasFilter(filterAST); + expect(filter).toEqual(resultFilter); + }); + + it('returns filter with all additional fields stored on value field', () => { + const { value, ...rest } = filterAST.arguments; + const additionalArguments = { value1: ['value1'], value2: ['value2'] }; + const newFilterAST = { ...filterAST, arguments: { ...rest, ...additionalArguments } }; + + const resultFilter = { + type: 'exactly', + column: 'project', + filterGroup: null, + value: { value1: 'value1', value2: 'value2' }, + }; + + const filter = adaptCanvasFilter(newFilterAST); + expect(filter).toEqual(resultFilter); + }); + + it('returns filter if args are empty', () => { + const { arguments: args, ...rest } = filterAST; + + const resultFilter = { + type: 'exactly', + column: null, + filterGroup: null, + value: null, + }; + + const filter = adaptCanvasFilter({ ...rest, arguments: {} }); + expect(filter).toEqual(resultFilter); + }); +}); diff --git a/x-pack/plugins/canvas/public/lib/filter_adapters.ts b/x-pack/plugins/canvas/public/lib/filter_adapters.ts new file mode 100644 index 0000000000000..478b0a5302631 --- /dev/null +++ b/x-pack/plugins/canvas/public/lib/filter_adapters.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 { ExpressionFunctionAST } from '@kbn/interpreter/common'; +import { identity } from 'lodash'; +import { ExpressionAstArgument, Filter, FilterType } from '../../types'; + +const functionToFilter: Record = { + timefilter: FilterType.time, + exactly: FilterType.exactly, +}; + +const defaultFormatter = (arg: ExpressionAstArgument) => arg.toString(); + +const argToValue = ( + arg: ExpressionAstArgument[], + formatter: (arg: ExpressionAstArgument) => string | null = defaultFormatter +) => (arg?.[0] ? formatter(arg[0]) : null); + +const convertFunctionToFilterType = (func: string) => functionToFilter[func] ?? FilterType.exactly; + +const collectArgs = (args: ExpressionFunctionAST['arguments']) => { + const argsKeys = Object.keys(args); + + if (!argsKeys.length) { + return null; + } + + return argsKeys.reduce>( + (acc, key) => ({ ...acc, [key]: argToValue(args[key], identity) }), + {} + ); +}; + +export function adaptCanvasFilter(filter: ExpressionFunctionAST): Filter { + const { function: type, arguments: args } = filter; + const { column, filterGroup, value: valueArg, type: typeArg, ...rest } = args ?? {}; + return { + type: convertFunctionToFilterType(type), + column: argToValue(column), + filterGroup: argToValue(filterGroup), + value: argToValue(valueArg) ?? collectArgs(rest), + }; +} diff --git a/x-pack/plugins/canvas/public/state/actions/sidebar.ts b/x-pack/plugins/canvas/public/state/actions/sidebar.ts new file mode 100644 index 0000000000000..309cb43fcd936 --- /dev/null +++ b/x-pack/plugins/canvas/public/state/actions/sidebar.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createAction } from 'redux-actions'; +import { FilterField } from '../../../types'; + +export type SetGroupFiltersByOptionPayload = FilterField; +export const SetGroupFiltersByOptionType = 'setGroupFiltersByOption'; + +export const setGroupFiltersByOption = createAction( + SetGroupFiltersByOptionType +); diff --git a/x-pack/plugins/canvas/public/state/defaults.js b/x-pack/plugins/canvas/public/state/defaults.js index a245d515a32d9..40e8425c98ff0 100644 --- a/x-pack/plugins/canvas/public/state/defaults.js +++ b/x-pack/plugins/canvas/public/state/defaults.js @@ -6,7 +6,7 @@ */ import { getId } from '../lib/get_id'; -import { DEFAULT_WORKPAD_CSS } from '../../common/lib/constants'; +import { DEFAULT_WORKPAD_CSS, DEFAULT_GROUP_BY_FIELD } from '../../common/lib/constants'; export const getDefaultElement = () => { return { @@ -86,3 +86,7 @@ export const getDefaultWorkpad = () => { isWriteable: true, }; }; + +export const getDefaultSidebar = () => ({ + groupFiltersByOption: DEFAULT_GROUP_BY_FIELD, +}); diff --git a/x-pack/plugins/canvas/public/state/initial_state.js b/x-pack/plugins/canvas/public/state/initial_state.js index c652cc573abe9..d676b27c7a906 100644 --- a/x-pack/plugins/canvas/public/state/initial_state.js +++ b/x-pack/plugins/canvas/public/state/initial_state.js @@ -7,7 +7,7 @@ import { get } from 'lodash'; import { pluginServices } from '../services'; -import { getDefaultWorkpad } from './defaults'; +import { getDefaultWorkpad, getDefaultSidebar } from './defaults'; export const getInitialState = (path) => { const platformService = pluginServices.getServices().platform; @@ -40,6 +40,7 @@ export const getInitialState = (path) => { // In there will live an object with a status (string), value (any), and error (Error) property. // If the state is 'error', the error property will be the error object, the value will not change // See the resolved_args reducer for more information. + sidebar: getDefaultSidebar(), }, persistent: { schemaVersion: 2, diff --git a/x-pack/plugins/canvas/public/state/reducers/index.js b/x-pack/plugins/canvas/public/state/reducers/index.js index 5a901fc3bb294..a07de70d9a005 100644 --- a/x-pack/plugins/canvas/public/state/reducers/index.js +++ b/x-pack/plugins/canvas/public/state/reducers/index.js @@ -18,12 +18,13 @@ import { elementsReducer } from './elements'; import { assetsReducer } from './assets'; import { historyReducer } from './history'; import { embeddableReducer } from './embeddable'; +import { sidebarReducer } from './sidebar'; export function getRootReducer(initialState) { return combineReducers({ assets: assetsReducer, app: appReducer, - transient: reduceReducers(transientReducer, resolvedArgsReducer), + transient: reduceReducers(transientReducer, resolvedArgsReducer, sidebarReducer), persistent: reduceReducers( historyReducer, combineReducers({ diff --git a/x-pack/plugins/canvas/public/state/reducers/sidebar.ts b/x-pack/plugins/canvas/public/state/reducers/sidebar.ts new file mode 100644 index 0000000000000..55697b17c09e0 --- /dev/null +++ b/x-pack/plugins/canvas/public/state/reducers/sidebar.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 { handleActions } from 'redux-actions'; +import { State } from '../../../types'; +import { SetGroupFiltersByOptionType, SetGroupFiltersByOptionPayload } from '../actions/sidebar'; + +export const sidebarReducer = handleActions( + { + [SetGroupFiltersByOptionType]: (transientState, { payload }) => { + return { + ...transientState, + sidebar: { ...transientState.sidebar, groupFiltersByOption: payload }, + }; + }, + }, + {} as State['transient'] +); diff --git a/x-pack/plugins/canvas/public/state/selectors/sidebar.ts b/x-pack/plugins/canvas/public/state/selectors/sidebar.ts new file mode 100644 index 0000000000000..637264a200b9a --- /dev/null +++ b/x-pack/plugins/canvas/public/state/selectors/sidebar.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 { DEFAULT_GROUP_BY_FIELD } from '../../../common/lib'; +import { FilterField, State } from '../../../types'; + +export const getGroupFiltersByOption = (state: State): FilterField => { + return state.transient.sidebar.groupFiltersByOption ?? DEFAULT_GROUP_BY_FIELD; +}; diff --git a/x-pack/plugins/canvas/shareable_runtime/components/footer/settings/settings.test.tsx b/x-pack/plugins/canvas/shareable_runtime/components/footer/settings/settings.test.tsx index 8be457b956be6..f5eef9f5b4dda 100644 --- a/x-pack/plugins/canvas/shareable_runtime/components/footer/settings/settings.test.tsx +++ b/x-pack/plugins/canvas/shareable_runtime/components/footer/settings/settings.test.tsx @@ -20,7 +20,6 @@ import { import { Settings } from './settings'; jest.mock('../../../supported_renderers'); -jest.mock(`@elastic/eui/lib/components/form/form_row/make_id`, () => () => `generated-id`); jest.mock('@elastic/eui/lib/components/portal/portal', () => { // eslint-disable-next-line @typescript-eslint/no-shadow diff --git a/x-pack/plugins/canvas/shareable_runtime/webpack.config.js b/x-pack/plugins/canvas/shareable_runtime/webpack.config.js index 610f9ee0bb197..b8074436d350b 100644 --- a/x-pack/plugins/canvas/shareable_runtime/webpack.config.js +++ b/x-pack/plugins/canvas/shareable_runtime/webpack.config.js @@ -187,7 +187,6 @@ module.exports = { }, { test: [ - require.resolve('@elastic/eui/es/components/code_editor'), require.resolve('@elastic/eui/es/components/drag_and_drop'), require.resolve('@elastic/eui/packages/react-datepicker'), require.resolve('highlight.js'), diff --git a/x-pack/plugins/canvas/storybook/storyshots.test.tsx b/x-pack/plugins/canvas/storybook/storyshots.test.tsx index 8a55c6f12bf51..51afc10bea5e1 100644 --- a/x-pack/plugins/canvas/storybook/storyshots.test.tsx +++ b/x-pack/plugins/canvas/storybook/storyshots.test.tsx @@ -36,9 +36,6 @@ Date.now = jest.fn(() => testTime.getTime()); // Mock telemetry service jest.mock('../public/lib/ui_metric', () => ({ trackCanvasUiMetric: () => {} })); -// Mock EUI generated ids to be consistently predictable for snapshots. -jest.mock(`@elastic/eui/lib/components/form/form_row/make_id`, () => () => `generated-id`); - // Mock react-datepicker dep used by eui to avoid rendering the entire large component jest.mock('@elastic/eui/packages/react-datepicker', () => { return { diff --git a/x-pack/plugins/canvas/types/canvas.ts b/x-pack/plugins/canvas/types/canvas.ts index 0868054d0a489..efb121b2948af 100644 --- a/x-pack/plugins/canvas/types/canvas.ts +++ b/x-pack/plugins/canvas/types/canvas.ts @@ -6,6 +6,7 @@ */ import { ElementPosition } from './elements'; +import { FilterField } from './filters'; export interface CanvasAsset { '@created': string; @@ -44,6 +45,10 @@ export interface CanvasVariable { type: 'boolean' | 'number' | 'string'; } +export interface Sidebar { + groupFiltersByOption?: FilterField; +} + export interface CanvasWorkpad { '@created': string; '@timestamp': string; diff --git a/x-pack/plugins/canvas/types/filters.ts b/x-pack/plugins/canvas/types/filters.ts index 942e4259d780e..8529b37e40b1b 100644 --- a/x-pack/plugins/canvas/types/filters.ts +++ b/x-pack/plugins/canvas/types/filters.ts @@ -5,6 +5,7 @@ * 2.0. */ +import { FC } from 'react'; import { ExpressionValueFilter } from '.'; export enum FilterType { @@ -31,3 +32,41 @@ export type CanvasExactlyFilter = ExpressionValueFilter & { }; export type CanvasFilter = CanvasTimeFilter | CanvasExactlyFilter | CanvasLuceneFilter; + +export interface Filter { + type: keyof typeof FilterType; + column: string | null; + value: unknown; + filterGroup: string | null; +} + +export type ComplexFilterViewField = ( + value: FilterValue +) => Record; + +export interface SimpleFilterViewField { + label: string; + formatter?: (value?: unknown) => string | null; + component?: FC; +} + +export interface FormattedFilterViewField { + label: string; + formattedValue: string; + component?: FC; +} + +export type FilterViewInstance = Record< + keyof Filter, + SimpleFilterViewField | ComplexFilterViewField +>; + +export interface FilterViewSpec { + name: string; + view: FilterViewInstance; +} + +export type FlattenFilterViewInstance = Record; +export type FormattedFilterViewInstance = Record; + +export type FilterField = 'column' | 'type' | 'filterGroup'; diff --git a/x-pack/plugins/canvas/types/state.ts b/x-pack/plugins/canvas/types/state.ts index a3c770f12f225..b283de1386f55 100644 --- a/x-pack/plugins/canvas/types/state.ts +++ b/x-pack/plugins/canvas/types/state.ts @@ -18,7 +18,7 @@ import { } from 'src/plugins/expressions'; import { Datasource, Model, Transform, View } from '../public/expression_types'; import { AssetType } from './assets'; -import { CanvasWorkpad } from './canvas'; +import { CanvasWorkpad, Sidebar } from './canvas'; export enum AppStateKeys { FULLSCREEN = '__fullscreen', @@ -75,7 +75,7 @@ export interface ResolvedArgType { expressionContext: ExpressionContext; } -interface TransientState { +export interface TransientState { canUserWrite: boolean; zoomScale: number; elementStats: ElementStatsType; @@ -90,6 +90,7 @@ interface TransientState { interval: number; }; inFlight: boolean; + sidebar: Sidebar; } interface PersistentState { diff --git a/x-pack/plugins/cases/README.md b/x-pack/plugins/cases/README.md index a4c3b46ae9973..5d19599b6811c 100644 --- a/x-pack/plugins/cases/README.md +++ b/x-pack/plugins/cases/README.md @@ -1,11 +1,13 @@ -# Case management in Kibana +# Case + +This plugin provides cases management in Kibana [![Issues][issues-shield]][issues-url] [![Pull Requests][pr-shield]][pr-url] -# Docs +## Docs -![Cases Logo][cases-logo] +![Cases Logo][cases-logo] [Report Bug](https://github.com/elastic/kibana/issues/new?assignees=&labels=bug&template=Bug_report.md) · @@ -18,16 +20,18 @@ - [Cases UI](#cases-ui) - [Case Action Type](#case-action-type) _feature in development, disabled by default_ - ## Cases API + [**Explore the API docs »**](https://www.elastic.co/guide/en/security/current/cases-api-overview.html) ## Cases Client API + [**Cases Client API docs**][cases-client-api-docs] ## Cases UI #### Embed Cases UI components in any Kibana plugin + - Add `CasesUiStart` to Kibana plugin `StartServices` dependencies: ```ts @@ -37,139 +41,107 @@ cases: CasesUiStart; #### Cases UI Methods - From the UI component, get the component from the `useKibana` hook start services + ```tsx - const { cases } = useKibana().services; - // call in the return as you would any component - cases.getCreateCase({ - onCancel: handleSetIsCancel, - onSuccess, - lensIntegration?: { - plugins: { - parsingPlugin, - processingPluginRenderer, - uiPlugin, - }, - hooks: { - useInsertTimeline, - }, - } - timelineIntegration?: { - plugins: { - parsingPlugin, - processingPluginRenderer, - uiPlugin, - }, - hooks: { - useInsertTimeline, - }, +const { cases } = useKibana().services; +// call in the return as you would any component +cases.getCases({ + basePath: '/investigate/cases', + userCanCrud: true, + owner: ['securitySolution'], + timelineIntegration: { + plugins: { + parsingPlugin, + processingPluginRenderer, + uiPlugin, }, - }) + hooks: { + useInsertTimeline, + }, + }, +}); ``` ##### Methods: -### `getAllCases` + +### `getCases` + Arguments: -| Property | Description | -| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | -| caseDetailsNavigation | `CasesNavigation` route configuration to generate the case details url for the case details page | -| configureCasesNavigation | `CasesNavigation` route configuration for configure cases page | -| createCaseNavigation | `CasesNavigation` route configuration for create cases page | -| userCanCrud | `boolean;` user permissions to crud | +| Property | Description | +| -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| userCanCrud | `boolean;` user permissions to crud | +| owner | `string[];` owner ids of the cases | +| basePath | `string;` path to mount the Cases router on top of | +| useFetchAlertData | `(alertIds: string[]) => [boolean, Record];` fetch alerts | +| disableAlerts? | `boolean` (default: false) flag to not show alerts information | +| actionsNavigation? | CasesNavigation | +| ruleDetailsNavigation? | CasesNavigation | +| onComponentInitialized? | `() => void;` callback when component has initialized | +| showAlertDetails? | `(alertId: string, index: string) => void;` callback to show alert details | +| timelineIntegration?.editor_plugins | Plugins needed for integrating timeline into markdown editor. | +| timelineIntegration?.editor_plugins.parsingPlugin | `Plugin;` | +| timelineIntegration?.editor_plugins.processingPluginRenderer | `React.FC` | +| timelineIntegration?.editor_plugins.uiPlugin? | `EuiMarkdownEditorUiPlugin` | +| timelineIntegration?.hooks.useInsertTimeline | `(value: string, onChange: (newValue: string) => void): UseInsertTimelineReturn` | +| timelineIntegration?.ui?.renderInvestigateInTimelineActionComponent? | `(alertIds: string[]) => JSX.Element;` space to render `InvestigateInTimelineActionComponent` | +| timelineIntegration?.ui?renderTimelineDetailsPanel? | `() => JSX.Element;` space to render `TimelineDetailsPanel` | UI component: ![All Cases Component][all-cases-img] ### `getAllCasesSelectorModal` + Arguments: -| Property | Description | -| -------------------- | ------------------------------------------------------------------------------------------------- | -| alertData? | `Omit;` alert data to post to case | -| createCaseNavigation | `CasesNavigation` route configuration for create cases page | -| hiddenStatuses? | `CaseStatuses[];` array of hidden statuses | -| onRowClick | (theCase?: Case | SubCase) => void; callback for row click, passing case in row | -| updateCase? | (theCase: Case | SubCase) => void; callback after case has been updated | -| userCanCrud | `boolean;` user permissions to crud | +| Property | Description | +| --------------- | ------------------------------------------------------------------------------------------------- | +| userCanCrud | `boolean;` user permissions to crud | +| owner | `string[];` owner ids of the cases | +| alertData? | `Omit;` alert data to post to case | +| hiddenStatuses? | `CaseStatuses[];` array of hidden statuses | +| onRowClick | (theCase?: Case | SubCase) => void; callback for row click, passing case in row | +| updateCase? | (theCase: Case | SubCase) => void; callback after case has been updated | +| onClose? | `() => void` called when the modal is closed without selecting a case | UI component: ![All Cases Selector Modal Component][all-cases-modal-img] -### `getCaseView` -Arguments: +### `getCreateCaseFlyout` -| Property | Description | -| -------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| caseDetailsNavigation | `CasesNavigation` route configuration to generate the case details url for the case details page | -| caseId | `string;` ID of the case | -| configureCasesNavigation | `CasesNavigation` route configuration for configure cases page | -| createCaseNavigation | `CasesNavigation` route configuration for create cases page | -| getCaseDetailHrefWithCommentId | `(commentId: string) => string;` callback to generate the case details url with a comment id reference from the case id and comment id | -| onComponentInitialized? | `() => void;` callback when component has initialized | -| onCaseDataSuccess? | `(data: Case) => void;` optional callback to handle case data in consuming application | -| ruleDetailsNavigation | CasesNavigation | -| showAlertDetails | `(alertId: string, index: string) => void;` callback to show alert details | -| subCaseId? | `string;` subcase id | -| timelineIntegration?.editor_plugins | Plugins needed for integrating timeline into markdown editor. | -| timelineIntegration?.editor_plugins.parsingPlugin | `Plugin;` | -| timelineIntegration?.editor_plugins.processingPluginRenderer | `React.FC` | -| timelineIntegration?.editor_plugins.uiPlugin? | `EuiMarkdownEditorUiPlugin` | -| timelineIntegration?.hooks.useInsertTimeline | `(value: string, onChange: (newValue: string) => void): UseInsertTimelineReturn` | -| timelineIntegration?.ui?.renderInvestigateInTimelineActionComponent? | `(alertIds: string[]) => JSX.Element;` space to render `InvestigateInTimelineActionComponent` | -| timelineIntegration?.ui?renderTimelineDetailsPanel? | `() => JSX.Element;` space to render `TimelineDetailsPanel` | -| useFetchAlertData | `(alertIds: string[]) => [boolean, Record];` fetch alerts | -| userCanCrud | `boolean;` user permissions to crud | +Arguments: -UI component: - ![Case View Component][case-view-img] - -### `getCreateCase` -Arguments: - -| Property | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| afterCaseCreated? | `(theCase: Case) => Promise;` callback passing newly created case before pushCaseToExternalService is called | -| onCancel | `() => void;` callback when create case is canceled | -| onSuccess | `(theCase: Case) => Promise;` callback passing newly created case after pushCaseToExternalService is called | -| timelineIntegration?.editor_plugins | Plugins needed for integrating timeline into markdown editor. | -| timelineIntegration?.editor_plugins.parsingPlugin | `Plugin;` | -| timelineIntegration?.editor_plugins.processingPluginRenderer | `React.FC` | -| timelineIntegration?.editor_plugins.uiPlugin? | `EuiMarkdownEditorUiPlugin` | -| timelineIntegration?.hooks.useInsertTimeline | `(value: string, onChange: (newValue: string) => void): UseInsertTimelineReturn` | +| Property | Description | +| ----------------- | ------------------------------------------------------------------------------------------------------------------ | +| userCanCrud | `boolean;` user permissions to crud | +| owner | `string[];` owner ids of the cases | +| onClose | `() => void;` callback when create case is canceled | +| onSuccess | `(theCase: Case) => Promise;` callback passing newly created case after pushCaseToExternalService is called | +| afterCaseCreated? | `(theCase: Case) => Promise;` callback passing newly created case before pushCaseToExternalService is called | +| disableAlerts? | `boolean` (default: false) flag to not show alerts information | UI component: - ![Create Component][create-img] - - ### `getConfigureCases` - Arguments: - - | Property | Description | - | ----------- | ------------------------------------ | - | userCanCrud | `boolean;` user permissions to crud | - - UI component: - ![Configure Component][configure-img] +![Create Component][create-img] ### `getRecentCases` + Arguments: -| Property | Description | -| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| allCasesNavigation | `CasesNavigation` route configuration for configure cases page | -| caseDetailsNavigation | `CasesNavigation` route configuration to generate the case details url for the case details page | -| createCaseNavigation | `CasesNavigation` route configuration for create case page | -| maxCasesToShow | `number;` number of cases to show in widget | - +| Property | Description | +| -------------- | ---------------------------------------------------- | +| userCanCrud | `boolean;` user permissions to crud | +| owner | `string[];` owner ids of the cases | +| maxCasesToShow | `number;` number of cases to show in widget | + UI component: - ![Recent Cases Component][recent-cases-img] +![Recent Cases Component][recent-cases-img] ## Case Action Type -_***Feature in development, disabled by default**_ +_**\*Feature in development, disabled by default**_ See [Kibana Actions](https://github.com/elastic/kibana/tree/main/x-pack/plugins/actions) for more information. - ID: `.case` The params properties are modelled after the arguments to the [Cases API](https://www.elastic.co/guide/en/security/master/cases-api-overview.html). @@ -281,13 +253,9 @@ Connectors of type (`.none`) should have the `fields` attribute set to `null`. | ---------- | ------------------------------ | ------- | | syncAlerts | Turn on or off alert synching. | boolean | - - - - - + [pr-shield]: https://img.shields.io/github/issues-pr/elastic/kibana/Team:Threat%20Hunting:Cases?label=pull%20requests&style=for-the-badge [pr-url]: https://github.com/elastic/kibana/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc+label%3A%22Team%3AThreat+Hunting%3ACases%22 [issues-shield]: https://img.shields.io/github/issues-search?label=issue&query=repo%3Aelastic%2Fkibana%20is%3Aissue%20is%3Aopen%20label%3A%22Team%3AThreat%20Hunting%3ACases%22&style=for-the-badge diff --git a/x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts b/x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts index ca8b26a09c84a..b6b061fcb41d9 100644 --- a/x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts +++ b/x-pack/plugins/cases/common/utils/markdown_plugins/utils.ts @@ -11,8 +11,8 @@ import markdown from 'remark-parse'; import remarkStringify from 'remark-stringify'; import unified from 'unified'; -import { TimeRange } from 'src/plugins/data/server'; import { SerializableRecord } from '@kbn/utility-types'; +import type { TimeRange } from 'src/plugins/data/common'; import { LENS_ID, LensParser, LensSerializer } from './lens'; import { TimelineSerializer, TimelineParser } from './timeline'; diff --git a/x-pack/plugins/cases/public/common/lib/kibana/__mocks__/index.ts b/x-pack/plugins/cases/public/common/lib/kibana/__mocks__/index.ts index fb5e3f89d74b1..f6f91dda04f89 100644 --- a/x-pack/plugins/cases/public/common/lib/kibana/__mocks__/index.ts +++ b/x-pack/plugins/cases/public/common/lib/kibana/__mocks__/index.ts @@ -32,3 +32,16 @@ export const useCurrentUser = jest.fn(); export const withKibana = jest.fn(createWithKibanaMock()); export const KibanaContextProvider = jest.fn(createKibanaContextProviderMock()); export const useGetUserSavedObjectPermissions = jest.fn(); + +export const useAppUrl = jest.fn().mockReturnValue({ + getAppUrl: jest.fn(), +}); + +export const useNavigateTo = jest.fn().mockReturnValue({ + navigateTo: jest.fn(), +}); + +export const useNavigation = jest.fn().mockReturnValue({ + getAppUrl: jest.fn(), + navigateTo: jest.fn(), +}); diff --git a/x-pack/plugins/cases/public/common/lib/kibana/hooks.ts b/x-pack/plugins/cases/public/common/lib/kibana/hooks.ts index f7138beea70b4..49d03d44a3a4f 100644 --- a/x-pack/plugins/cases/public/common/lib/kibana/hooks.ts +++ b/x-pack/plugins/cases/public/common/lib/kibana/hooks.ts @@ -15,6 +15,7 @@ import { AuthenticatedUser } from '../../../../../security/common/model'; import { convertToCamelCase } from '../../../containers/utils'; import { StartServices } from '../../../types'; import { useUiSetting, useKibana } from './kibana_react'; +import { NavigateToAppOptions } from '../../../../../../../src/core/public'; export const useDateFormat = (): string => useUiSetting(DEFAULT_DATE_FORMAT); @@ -104,3 +105,53 @@ export const useCurrentUser = (): AuthenticatedElasticUser | null => { }, [fetchUser]); return user; }; + +/** + * Returns a full URL to the provided page path by using + * kibana's `getUrlForApp()` + */ +export const useAppUrl = (appId: string) => { + const { getUrlForApp } = useKibana().services.application; + + const getAppUrl = useCallback( + (options?: { deepLinkId?: string; path?: string; absolute?: boolean }) => + getUrlForApp(appId, options), + [appId, getUrlForApp] + ); + return { getAppUrl }; +}; + +/** + * Navigate to any app using kibana's `navigateToApp()` + * or by url using `navigateToUrl()` + */ +export const useNavigateTo = (appId: string) => { + const { navigateToApp, navigateToUrl } = useKibana().services.application; + + const navigateTo = useCallback( + ({ + url, + ...options + }: { + url?: string; + } & NavigateToAppOptions) => { + if (url) { + navigateToUrl(url); + } else { + navigateToApp(appId, options); + } + }, + [appId, navigateToApp, navigateToUrl] + ); + return { navigateTo }; +}; + +/** + * Returns navigateTo and getAppUrl navigation hooks + * + */ +export const useNavigation = (appId: string) => { + const { navigateTo } = useNavigateTo(appId); + const { getAppUrl } = useAppUrl(appId); + return { navigateTo, getAppUrl }; +}; diff --git a/x-pack/plugins/cases/public/common/lib/kibana/kibana_react.mock.ts b/x-pack/plugins/cases/public/common/lib/kibana/kibana_react.mock.ts index 19276a7afd1b8..05da3dd75cf60 100644 --- a/x-pack/plugins/cases/public/common/lib/kibana/kibana_react.mock.ts +++ b/x-pack/plugins/cases/public/common/lib/kibana/kibana_react.mock.ts @@ -9,6 +9,7 @@ import React from 'react'; +import { PublicAppInfo } from 'kibana/public'; import { RecursivePartial } from '@elastic/eui/src/components/common'; import { coreMock } from '../../../../../../../src/core/public/mocks'; import { KibanaContextProvider } from '../../../../../../../src/plugins/kibana_react/public'; @@ -17,11 +18,12 @@ import { EuiTheme } from '../../../../../../../src/plugins/kibana_react/common'; import { securityMock } from '../../../../../security/public/mocks'; import { spacesPluginMock } from '../../../../../spaces/public/mocks'; import { triggersActionsUiMock } from '../../../../../triggers_actions_ui/public/mocks'; +import { BehaviorSubject } from 'rxjs'; -export const createStartServicesMock = (): StartServices => - ({ +export const createStartServicesMock = (): StartServices => { + const services = { ...coreMock.createStart(), - storage: { ...coreMock.createStorage(), remove: jest.fn() }, + storage: { ...coreMock.createStorage(), get: jest.fn(), set: jest.fn(), remove: jest.fn() }, lens: { canUseEditor: jest.fn(), navigateToPrefilledEditor: jest.fn(), @@ -29,7 +31,15 @@ export const createStartServicesMock = (): StartServices => security: securityMock.createStart(), triggersActionsUi: triggersActionsUiMock.createStart(), spaces: spacesPluginMock.createStartContract(), - } as unknown as StartServices); + } as unknown as StartServices; + + services.application.currentAppId$ = new BehaviorSubject('testAppId'); + services.application.applications$ = new BehaviorSubject>( + new Map([['testAppId', { category: { label: 'Test' } } as unknown as PublicAppInfo]]) + ); + + return services; +}; export const createWithKibanaMock = () => { const services = createStartServicesMock(); diff --git a/x-pack/plugins/cases/public/common/mock/test_providers.tsx b/x-pack/plugins/cases/public/common/mock/test_providers.tsx index 8a4b66d38cc0f..53f23fb1a0050 100644 --- a/x-pack/plugins/cases/public/common/mock/test_providers.tsx +++ b/x-pack/plugins/cases/public/common/mock/test_providers.tsx @@ -8,31 +8,28 @@ import { euiDarkVars } from '@kbn/ui-shared-deps-src/theme'; import { I18nProvider } from '@kbn/i18n/react'; import React from 'react'; -import { BehaviorSubject } from 'rxjs'; import { ThemeProvider } from 'styled-components'; import { SECURITY_SOLUTION_OWNER } from '../../../common'; -import { OwnerProvider } from '../../components/owner_context'; -import { - createKibanaContextProviderMock, - createStartServicesMock, -} from '../lib/kibana/kibana_react.mock'; +import { CasesProvider } from '../../components/cases_context'; +import { createKibanaContextProviderMock } from '../lib/kibana/kibana_react.mock'; import { FieldHook } from '../shared_imports'; interface Props { children: React.ReactNode; + userCanCrud?: boolean; } -export const kibanaObservable = new BehaviorSubject(createStartServicesMock()); - window.scrollTo = jest.fn(); const MockKibanaContextProvider = createKibanaContextProviderMock(); /** A utility for wrapping children in the providers required to run most tests */ -const TestProvidersComponent: React.FC = ({ children }) => ( +const TestProvidersComponent: React.FC = ({ children, userCanCrud = true }) => ( ({ eui: euiDarkVars, darkMode: true })}> - {children} + + {children} + diff --git a/x-pack/plugins/cases/public/common/navigation/__mocks__/hooks.ts b/x-pack/plugins/cases/public/common/navigation/__mocks__/hooks.ts new file mode 100644 index 0000000000000..93f202994918d --- /dev/null +++ b/x-pack/plugins/cases/public/common/navigation/__mocks__/hooks.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. + */ + +export const useCaseViewParams = jest.fn().mockReturnValue({ detailName: 'basic-case-id' }); + +export const useAllCasesNavigation = jest.fn().mockReturnValue({ + getAllCasesUrl: jest.fn().mockReturnValue('/app/security/cases'), + navigateToAllCases: jest.fn(), +}); + +export const useCreateCaseNavigation = jest.fn().mockReturnValue({ + getCreateCaseUrl: jest.fn().mockReturnValue('/app/security/cases/create'), + navigateToCreateCase: jest.fn(), +}); + +export const useCaseViewNavigation = jest.fn().mockReturnValue({ + getCaseViewUrl: jest.fn().mockReturnValue('/app/security/cases/test'), + navigateToCaseView: jest.fn(), +}); + +export const useConfigureCasesNavigation = jest.fn().mockReturnValue({ + getConfigureCasesUrl: jest.fn().mockReturnValue('/app/security/cases/configure'), + navigateToConfigureCases: jest.fn(), +}); diff --git a/x-pack/plugins/cases/public/common/navigation/deep_links.test.ts b/x-pack/plugins/cases/public/common/navigation/deep_links.test.ts new file mode 100644 index 0000000000000..52ddcd8b20ffc --- /dev/null +++ b/x-pack/plugins/cases/public/common/navigation/deep_links.test.ts @@ -0,0 +1,162 @@ +/* + * Copyright 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 { AppNavLinkStatus } from '../../../../../../src/core/public'; +import { getCasesDeepLinks } from './deep_links'; + +describe('getCasesDeepLinks', () => { + it('it returns the deep links', () => { + const deepLinks = getCasesDeepLinks({}); + expect(deepLinks).toEqual({ + id: 'cases', + path: '/cases', + title: 'Cases', + deepLinks: [ + { + id: 'cases_create', + path: '/cases/create', + title: 'Create New Case', + }, + { + id: 'cases_configure', + path: '/cases/configure', + title: 'Configure Cases', + }, + ], + }); + }); + + it('it returns the deep links with a different base bath', () => { + const deepLinks = getCasesDeepLinks({ basePath: '/test' }); + expect(deepLinks).toEqual({ + id: 'cases', + path: '/test', + title: 'Cases', + deepLinks: [ + { + id: 'cases_create', + path: '/test/create', + title: 'Create New Case', + }, + { + id: 'cases_configure', + path: '/test/configure', + title: 'Configure Cases', + }, + ], + }); + }); + + it('it extends the deep links correctly', () => { + const deepLinks = getCasesDeepLinks({ + extend: { + cases: { + searchable: false, + }, + cases_create: { + navLinkStatus: AppNavLinkStatus.hidden, + }, + cases_configure: { + order: 8002, + }, + }, + }); + + expect(deepLinks).toEqual({ + id: 'cases', + path: '/cases', + title: 'Cases', + searchable: false, + deepLinks: [ + { + id: 'cases_create', + path: '/cases/create', + title: 'Create New Case', + navLinkStatus: AppNavLinkStatus.hidden, + }, + { + id: 'cases_configure', + path: '/cases/configure', + title: 'Configure Cases', + order: 8002, + }, + ], + }); + }); + + it('it does not overrides the id, the path, and the deepLinks', () => { + const deepLinks = getCasesDeepLinks({ + extend: { + cases: { + id: 'cases_override', + path: 'cases_path_override', + deepLinks: [], + }, + cases_create: { + id: 'cases_create_override', + path: 'cases_create_path_override', + }, + cases_configure: { + id: 'cases_configure_override', + path: 'cases_configure_path_override', + }, + }, + }); + + expect(deepLinks).toEqual({ + id: 'cases', + path: '/cases', + title: 'Cases', + deepLinks: [ + { + id: 'cases_create', + path: '/cases/create', + title: 'Create New Case', + }, + { + id: 'cases_configure', + path: '/cases/configure', + title: 'Configure Cases', + }, + ], + }); + }); + + it('it overrides the title correctly', () => { + const deepLinks = getCasesDeepLinks({ + extend: { + cases: { + title: 'My new cases title', + }, + cases_create: { + title: 'My new create cases title', + }, + cases_configure: { + title: 'My new configure cases title', + }, + }, + }); + + expect(deepLinks).toEqual({ + id: 'cases', + path: '/cases', + title: 'My new cases title', + deepLinks: [ + { + id: 'cases_create', + path: '/cases/create', + title: 'My new create cases title', + }, + { + id: 'cases_configure', + path: '/cases/configure', + title: 'My new configure cases title', + }, + ], + }); + }); +}); diff --git a/x-pack/plugins/cases/public/common/navigation/deep_links.ts b/x-pack/plugins/cases/public/common/navigation/deep_links.ts new file mode 100644 index 0000000000000..860299a05008d --- /dev/null +++ b/x-pack/plugins/cases/public/common/navigation/deep_links.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 { i18n } from '@kbn/i18n'; +import type { AppDeepLink } from '../../../../../../src/core/public'; +import { DEFAULT_BASE_PATH, getCreateCasePath, getCasesConfigurePath } from './paths'; + +export const CasesDeepLinkId = { + cases: 'cases', + casesCreate: 'cases_create', + casesConfigure: 'cases_configure', +} as const; + +export type ICasesDeepLinkId = typeof CasesDeepLinkId[keyof typeof CasesDeepLinkId]; + +export const getCasesDeepLinks = ({ + basePath = DEFAULT_BASE_PATH, + extend = {}, +}: { + basePath?: string; + extend?: Partial>>; +}) => ({ + title: i18n.translate('xpack.cases.navigation.cases', { + defaultMessage: 'Cases', + }), + ...(extend[CasesDeepLinkId.cases] ?? {}), + id: CasesDeepLinkId.cases, + path: basePath, + deepLinks: [ + { + title: i18n.translate('xpack.cases.navigation.create', { + defaultMessage: 'Create New Case', + }), + ...(extend[CasesDeepLinkId.casesCreate] ?? {}), + id: CasesDeepLinkId.casesCreate, + path: getCreateCasePath(basePath), + }, + { + title: i18n.translate('xpack.cases.navigation.configure', { + defaultMessage: 'Configure Cases', + }), + ...(extend[CasesDeepLinkId.casesConfigure] ?? {}), + id: CasesDeepLinkId.casesConfigure, + path: getCasesConfigurePath(basePath), + }, + ], +}); diff --git a/x-pack/plugins/cases/public/common/navigation/hooks.test.tsx b/x-pack/plugins/cases/public/common/navigation/hooks.test.tsx new file mode 100644 index 0000000000000..96e34d6c69cc9 --- /dev/null +++ b/x-pack/plugins/cases/public/common/navigation/hooks.test.tsx @@ -0,0 +1,170 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { act, renderHook } from '@testing-library/react-hooks'; + +import { useNavigation } from '../../common/lib/kibana'; +import { TestProviders } from '../../common/mock'; +import { + useCasesNavigation, + useAllCasesNavigation, + useCreateCaseNavigation, + useConfigureCasesNavigation, + useCaseViewNavigation, +} from './hooks'; +import { CasesDeepLinkId } from './deep_links'; + +const useNavigationMock = useNavigation as jest.Mock; +jest.mock('../../common/lib/kibana'); + +const navigateTo = jest.fn(); +const getAppUrl = jest.fn(); + +describe('hooks', () => { + beforeEach(() => { + jest.clearAllMocks(); + useNavigationMock.mockReturnValue({ navigateTo, getAppUrl }); + }); + + describe('useCasesNavigation', () => { + it('it calls getAppUrl with correct arguments', () => { + const { result } = renderHook(() => useCasesNavigation(CasesDeepLinkId.cases), { + wrapper: ({ children }) => {children}, + }); + + const [getCasesUrl] = result.current; + + act(() => { + getCasesUrl(false); + }); + + expect(getAppUrl).toHaveBeenCalledWith({ absolute: false, deepLinkId: 'cases' }); + }); + + it('it calls navigateToAllCases with correct arguments', () => { + const { result } = renderHook(() => useCasesNavigation(CasesDeepLinkId.cases), { + wrapper: ({ children }) => {children}, + }); + const [, navigateToCases] = result.current; + + act(() => { + navigateToCases(); + }); + + expect(navigateTo).toHaveBeenCalledWith({ deepLinkId: 'cases' }); + }); + }); + + describe('useAllCasesNavigation', () => { + it('it calls getAppUrl with correct arguments', () => { + const { result } = renderHook(() => useAllCasesNavigation(), { + wrapper: ({ children }) => {children}, + }); + + act(() => { + result.current.getAllCasesUrl(false); + }); + + expect(getAppUrl).toHaveBeenCalledWith({ absolute: false, deepLinkId: 'cases' }); + }); + + it('it calls navigateToAllCases with correct arguments', () => { + const { result } = renderHook(() => useAllCasesNavigation(), { + wrapper: ({ children }) => {children}, + }); + + act(() => { + result.current.navigateToAllCases(); + }); + + expect(navigateTo).toHaveBeenCalledWith({ deepLinkId: 'cases' }); + }); + }); + + describe('useCreateCaseNavigation', () => { + it('it calls getAppUrl with correct arguments', () => { + const { result } = renderHook(() => useCreateCaseNavigation(), { + wrapper: ({ children }) => {children}, + }); + + act(() => { + result.current.getCreateCaseUrl(false); + }); + + expect(getAppUrl).toHaveBeenCalledWith({ absolute: false, deepLinkId: 'cases_create' }); + }); + + it('it calls navigateToAllCases with correct arguments', () => { + const { result } = renderHook(() => useCreateCaseNavigation(), { + wrapper: ({ children }) => {children}, + }); + + act(() => { + result.current.navigateToCreateCase(); + }); + + expect(navigateTo).toHaveBeenCalledWith({ deepLinkId: 'cases_create' }); + }); + }); + + describe('useConfigureCasesNavigation', () => { + it('it calls getAppUrl with correct arguments', () => { + const { result } = renderHook(() => useConfigureCasesNavigation(), { + wrapper: ({ children }) => {children}, + }); + + act(() => { + result.current.getConfigureCasesUrl(false); + }); + + expect(getAppUrl).toHaveBeenCalledWith({ absolute: false, deepLinkId: 'cases_configure' }); + }); + + it('it calls navigateToAllCases with correct arguments', () => { + const { result } = renderHook(() => useConfigureCasesNavigation(), { + wrapper: ({ children }) => {children}, + }); + + act(() => { + result.current.navigateToConfigureCases(); + }); + + expect(navigateTo).toHaveBeenCalledWith({ deepLinkId: 'cases_configure' }); + }); + }); + + describe('useCaseViewNavigation', () => { + it('it calls getAppUrl with correct arguments', () => { + const { result } = renderHook(() => useCaseViewNavigation(), { + wrapper: ({ children }) => {children}, + }); + + act(() => { + result.current.getCaseViewUrl({ detailName: 'test' }, false); + }); + + expect(getAppUrl).toHaveBeenCalledWith({ + absolute: false, + deepLinkId: 'cases', + path: '/test', + }); + }); + + it('it calls navigateToAllCases with correct arguments', () => { + const { result } = renderHook(() => useCaseViewNavigation(), { + wrapper: ({ children }) => {children}, + }); + + act(() => { + result.current.navigateToCaseView({ detailName: 'test' }); + }); + + expect(navigateTo).toHaveBeenCalledWith({ deepLinkId: 'cases', path: '/test' }); + }); + }); +}); diff --git a/x-pack/plugins/cases/public/common/navigation/hooks.ts b/x-pack/plugins/cases/public/common/navigation/hooks.ts new file mode 100644 index 0000000000000..b6dcae1c0c1ce --- /dev/null +++ b/x-pack/plugins/cases/public/common/navigation/hooks.ts @@ -0,0 +1,73 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useCallback } from 'react'; +import { useParams } from 'react-router-dom'; +import { useNavigation } from '../lib/kibana'; +import { useCasesContext } from '../../components/cases_context/use_cases_context'; +import { CasesDeepLinkId, ICasesDeepLinkId } from './deep_links'; +import { CaseViewPathParams, generateCaseViewPath } from './paths'; + +export const useCaseViewParams = () => useParams(); + +type GetCasesUrl = (absolute?: boolean) => string; +type NavigateToCases = () => void; +type UseCasesNavigation = [GetCasesUrl, NavigateToCases]; + +export const useCasesNavigation = (deepLinkId: ICasesDeepLinkId): UseCasesNavigation => { + const { appId } = useCasesContext(); + const { navigateTo, getAppUrl } = useNavigation(appId); + const getCasesUrl = useCallback( + (absolute) => getAppUrl({ deepLinkId, absolute }), + [getAppUrl, deepLinkId] + ); + const navigateToCases = useCallback( + () => navigateTo({ deepLinkId }), + [navigateTo, deepLinkId] + ); + return [getCasesUrl, navigateToCases]; +}; + +export const useAllCasesNavigation = () => { + const [getAllCasesUrl, navigateToAllCases] = useCasesNavigation(CasesDeepLinkId.cases); + return { getAllCasesUrl, navigateToAllCases }; +}; + +export const useCreateCaseNavigation = () => { + const [getCreateCaseUrl, navigateToCreateCase] = useCasesNavigation(CasesDeepLinkId.casesCreate); + return { getCreateCaseUrl, navigateToCreateCase }; +}; + +export const useConfigureCasesNavigation = () => { + const [getConfigureCasesUrl, navigateToConfigureCases] = useCasesNavigation( + CasesDeepLinkId.casesConfigure + ); + return { getConfigureCasesUrl, navigateToConfigureCases }; +}; + +type GetCaseViewUrl = (pathParams: CaseViewPathParams, absolute?: boolean) => string; +type NavigateToCaseView = (pathParams: CaseViewPathParams) => void; + +export const useCaseViewNavigation = () => { + const { appId } = useCasesContext(); + const { navigateTo, getAppUrl } = useNavigation(appId); + const getCaseViewUrl = useCallback( + (pathParams, absolute) => + getAppUrl({ + deepLinkId: CasesDeepLinkId.cases, + absolute, + path: generateCaseViewPath(pathParams), + }), + [getAppUrl] + ); + const navigateToCaseView = useCallback( + (pathParams) => + navigateTo({ deepLinkId: CasesDeepLinkId.cases, path: generateCaseViewPath(pathParams) }), + [navigateTo] + ); + return { getCaseViewUrl, navigateToCaseView }; +}; diff --git a/x-pack/plugins/cases/public/common/navigation/index.ts b/x-pack/plugins/cases/public/common/navigation/index.ts new file mode 100644 index 0000000000000..339cca49f2df3 --- /dev/null +++ b/x-pack/plugins/cases/public/common/navigation/index.ts @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export * from './deep_links'; +export * from './paths'; +export * from './hooks'; diff --git a/x-pack/plugins/cases/public/common/navigation/paths.test.ts b/x-pack/plugins/cases/public/common/navigation/paths.test.ts new file mode 100644 index 0000000000000..23fb870fb6cda --- /dev/null +++ b/x-pack/plugins/cases/public/common/navigation/paths.test.ts @@ -0,0 +1,84 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { + getCreateCasePath, + getSubCaseViewPath, + getCaseViewPath, + getCasesConfigurePath, + getCaseViewWithCommentPath, + getSubCaseViewWithCommentPath, + generateCaseViewPath, +} from './paths'; + +describe('Paths', () => { + describe('getCreateCasePath', () => { + it('returns the correct path', () => { + expect(getCreateCasePath('test')).toBe('test/create'); + }); + }); + + describe('getCasesConfigurePath', () => { + it('returns the correct path', () => { + expect(getCasesConfigurePath('test')).toBe('test/configure'); + }); + }); + + describe('getCaseViewPath', () => { + it('returns the correct path', () => { + expect(getCaseViewPath('test')).toBe('test/:detailName'); + }); + }); + + describe('getSubCaseViewPath', () => { + it('returns the correct path', () => { + expect(getSubCaseViewPath('test')).toBe('test/:detailName/sub-cases/:subCaseId'); + }); + }); + + describe('getCaseViewWithCommentPath', () => { + it('returns the correct path', () => { + expect(getCaseViewWithCommentPath('test')).toBe('test/:detailName/:commentId'); + }); + }); + + describe('getSubCaseViewWithCommentPath', () => { + it('returns the correct path', () => { + expect(getSubCaseViewWithCommentPath('test')).toBe( + 'test/:detailName/sub-cases/:subCaseId/:commentId' + ); + }); + }); + + describe('generateCaseViewPath', () => { + it('returns the correct path', () => { + expect(generateCaseViewPath({ detailName: 'my-case' })).toBe('/my-case'); + }); + + it('returns the correct path when subCaseId is provided', () => { + expect(generateCaseViewPath({ detailName: 'my-case', subCaseId: 'my-sub-case' })).toBe( + '/my-case/sub-cases/my-sub-case' + ); + }); + + it('returns the correct path when commentId is provided', () => { + expect(generateCaseViewPath({ detailName: 'my-case', commentId: 'my-comment' })).toBe( + '/my-case/my-comment' + ); + }); + + it('returns the correct path when subCaseId and commentId is provided', () => { + expect( + generateCaseViewPath({ + detailName: 'my-case', + subCaseId: 'my-sub-case', + commentId: 'my-comment', + }) + ).toBe('/my-case/sub-cases/my-sub-case/my-comment'); + }); + }); +}); diff --git a/x-pack/plugins/cases/public/common/navigation/paths.ts b/x-pack/plugins/cases/public/common/navigation/paths.ts new file mode 100644 index 0000000000000..1cce1ca41ea77 --- /dev/null +++ b/x-pack/plugins/cases/public/common/navigation/paths.ts @@ -0,0 +1,49 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { generatePath } from 'react-router-dom'; + +export const DEFAULT_BASE_PATH = '/cases'; +export interface CaseViewPathParams { + detailName: string; + subCaseId?: string; + commentId?: string; +} + +export const CASES_CREATE_PATH = '/create' as const; +export const CASES_CONFIGURE_PATH = '/configure' as const; +export const CASE_VIEW_PATH = '/:detailName' as const; +export const SUB_CASE_VIEW_PATH = `${CASE_VIEW_PATH}/sub-cases/:subCaseId` as const; +export const CASE_VIEW_COMMENT_PATH = `${CASE_VIEW_PATH}/:commentId` as const; +export const SUB_CASE_VIEW_COMMENT_PATH = `${SUB_CASE_VIEW_PATH}/:commentId` as const; + +export const getCreateCasePath = (casesBasePath: string) => `${casesBasePath}${CASES_CREATE_PATH}`; +export const getCasesConfigurePath = (casesBasePath: string) => + `${casesBasePath}${CASES_CONFIGURE_PATH}`; +export const getCaseViewPath = (casesBasePath: string) => `${casesBasePath}${CASE_VIEW_PATH}`; +export const getSubCaseViewPath = (casesBasePath: string) => + `${casesBasePath}${SUB_CASE_VIEW_PATH}`; +export const getCaseViewWithCommentPath = (casesBasePath: string) => + `${casesBasePath}${CASE_VIEW_COMMENT_PATH}`; +export const getSubCaseViewWithCommentPath = (casesBasePath: string) => + `${casesBasePath}${SUB_CASE_VIEW_COMMENT_PATH}`; + +export const generateCaseViewPath = (params: CaseViewPathParams): string => { + const { subCaseId, commentId } = params; + // Cast for generatePath argument type constraint + const pathParams = params as unknown as { [paramName: string]: string }; + if (subCaseId && commentId) { + return generatePath(SUB_CASE_VIEW_COMMENT_PATH, pathParams); + } + if (subCaseId) { + return generatePath(SUB_CASE_VIEW_PATH, pathParams); + } + if (commentId) { + return generatePath(CASE_VIEW_COMMENT_PATH, pathParams); + } + return generatePath(CASE_VIEW_PATH, pathParams); +}; diff --git a/x-pack/plugins/cases/public/components/add_comment/index.tsx b/x-pack/plugins/cases/public/components/add_comment/index.tsx index 3ee7c1604b24d..37f21e0949288 100644 --- a/x-pack/plugins/cases/public/components/add_comment/index.tsx +++ b/x-pack/plugins/cases/public/components/add_comment/index.tsx @@ -26,7 +26,7 @@ import { Form, useForm, UseField, useFormData } from '../../common/shared_import import * as i18n from './translations'; import { schema, AddCommentFormSchema } from './schema'; import { InsertTimeline } from '../insert_timeline'; -import { useOwnerContext } from '../owner_context/use_owner_context'; +import { useCasesContext } from '../cases_context/use_cases_context'; const MySpinner = styled(EuiLoadingSpinner)` position: absolute; @@ -72,7 +72,7 @@ export const AddComment = React.memo( ) => { const editorRef = useRef(null); const [focusOnContext, setFocusOnContext] = useState(false); - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const { isLoading, postComment } = usePostComment(); const { form } = useForm({ diff --git a/x-pack/plugins/cases/public/components/all_cases/all_cases_generic.test.tsx b/x-pack/plugins/cases/public/components/all_cases/all_cases_generic.test.tsx deleted file mode 100644 index fed23564a3955..0000000000000 --- a/x-pack/plugins/cases/public/components/all_cases/all_cases_generic.test.tsx +++ /dev/null @@ -1,101 +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 { mount } from 'enzyme'; -import { act } from 'react-dom/test-utils'; - -import { AllCasesGeneric } from './all_cases_generic'; -import { TestProviders } from '../../common/mock'; -import { useGetTags } from '../../containers/use_get_tags'; -import { useGetReporters } from '../../containers/use_get_reporters'; -import { useGetActionLicense } from '../../containers/use_get_action_license'; -import { useConnectors } from '../../containers/configure/use_connectors'; -import { useKibana } from '../../common/lib/kibana'; -import { StatusAll } from '../../containers/types'; -import { CaseStatuses, SECURITY_SOLUTION_OWNER } from '../../../common'; -import { connectorsMock } from '../../containers/mock'; -import { triggersActionsUiMock } from '../../../../triggers_actions_ui/public/mocks'; -import { registerConnectorsToMockActionRegistry } from '../../common/mock/register_connectors'; - -jest.mock('../../containers/use_get_reporters'); -jest.mock('../../containers/use_get_tags'); -jest.mock('../../containers/use_get_action_license'); -jest.mock('../../containers/configure/use_connectors'); -jest.mock('../../containers/api'); -jest.mock('../../common/lib/kibana'); - -const createCaseNavigation = { href: '', onClick: jest.fn() }; - -const alertDataMock = { - type: 'alert', - rule: { - id: 'rule-id', - name: 'rule', - }, - index: 'index-id', - alertId: 'alert-id', - owner: SECURITY_SOLUTION_OWNER, -}; - -const useKibanaMock = useKibana as jest.Mocked; -const useConnectorsMock = useConnectors as jest.Mock; -const mockTriggersActionsUiService = triggersActionsUiMock.createStart(); - -jest.mock('../../common/lib/kibana', () => { - const originalModule = jest.requireActual('../../common/lib/kibana'); - return { - ...originalModule, - useKibana: () => ({ - services: { - triggersActionsUi: mockTriggersActionsUiService, - }, - }), - }; -}); - -describe('AllCasesGeneric ', () => { - const actionTypeRegistry = useKibanaMock().services.triggersActionsUi.actionTypeRegistry; - - beforeAll(() => { - registerConnectorsToMockActionRegistry(actionTypeRegistry, connectorsMock); - }); - - beforeEach(() => { - jest.resetAllMocks(); - (useGetTags as jest.Mock).mockReturnValue({ tags: ['coke', 'pepsi'], fetchTags: jest.fn() }); - (useGetReporters as jest.Mock).mockReturnValue({ - reporters: ['casetester'], - respReporters: [{ username: 'casetester' }], - isLoading: true, - isError: false, - fetchReporters: jest.fn(), - }); - (useGetActionLicense as jest.Mock).mockReturnValue({ - actionLicense: null, - isLoading: false, - }); - useConnectorsMock.mockImplementation(() => ({ connectors: connectorsMock, loading: false })); - }); - - it('renders the first available status when hiddenStatus is given', () => - act(async () => { - const wrapper = mount( - - - - ); - - expect(wrapper.find(`[data-test-subj="status-badge-in-progress"]`).exists()).toBeTruthy(); - })); -}); diff --git a/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx new file mode 100644 index 0000000000000..9cde5da159960 --- /dev/null +++ b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.test.tsx @@ -0,0 +1,782 @@ +/* + * Copyright 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 { mount } from 'enzyme'; +import moment from 'moment-timezone'; +import { act, waitFor } from '@testing-library/react'; +import { renderHook } from '@testing-library/react-hooks'; + +import '../../common/mock/match_media'; +import { TestProviders } from '../../common/mock'; +import { + casesStatus, + useGetCasesMockState, + collectionCase, + connectorsMock, +} from '../../containers/mock'; + +import { CaseStatuses, CaseType, SECURITY_SOLUTION_OWNER, StatusAll } from '../../../common'; +import { getEmptyTagValue } from '../empty_value'; +import { useDeleteCases } from '../../containers/use_delete_cases'; +import { useGetCases } from '../../containers/use_get_cases'; +import { useGetCasesStatus } from '../../containers/use_get_cases_status'; +import { useUpdateCases } from '../../containers/use_bulk_update_case'; +import { useGetActionLicense } from '../../containers/use_get_action_license'; +import { useConnectors } from '../../containers/configure/use_connectors'; +import { useKibana } from '../../common/lib/kibana'; +import { AllCasesList, AllCasesListProps } from './all_cases_list'; +import { CasesColumns, GetCasesColumn, useCasesColumns } from './columns'; +import { triggersActionsUiMock } from '../../../../triggers_actions_ui/public/mocks'; +import { registerConnectorsToMockActionRegistry } from '../../common/mock/register_connectors'; +import { createStartServicesMock } from '../../common/lib/kibana/kibana_react.mock'; + +jest.mock('../../containers/use_bulk_update_case'); +jest.mock('../../containers/use_delete_cases'); +jest.mock('../../containers/use_get_cases'); +jest.mock('../../containers/use_get_cases_status'); +jest.mock('../../containers/use_get_action_license'); +jest.mock('../../containers/configure/use_connectors'); +jest.mock('../../common/lib/kibana'); +jest.mock('../../common/navigation/hooks'); + +const useDeleteCasesMock = useDeleteCases as jest.Mock; +const useGetCasesMock = useGetCases as jest.Mock; +const useGetCasesStatusMock = useGetCasesStatus as jest.Mock; +const useUpdateCasesMock = useUpdateCases as jest.Mock; +const useGetActionLicenseMock = useGetActionLicense as jest.Mock; +const useKibanaMock = useKibana as jest.MockedFunction; +const useConnectorsMock = useConnectors as jest.Mock; + +const mockTriggersActionsUiService = triggersActionsUiMock.createStart(); + +const mockKibana = () => { + useKibanaMock.mockReturnValue({ + services: { + ...createStartServicesMock(), + triggersActionsUi: mockTriggersActionsUiService, + }, + } as unknown as ReturnType); +}; + +describe('AllCasesListGeneric', () => { + const defaultAllCasesListProps: AllCasesListProps = { + disableAlerts: false, + }; + + const dispatchResetIsDeleted = jest.fn(); + const dispatchResetIsUpdated = jest.fn(); + const dispatchUpdateCaseProperty = jest.fn(); + const handleOnDeleteConfirm = jest.fn(); + const handleToggleModal = jest.fn(); + const refetchCases = jest.fn(); + const setFilters = jest.fn(); + const setQueryParams = jest.fn(); + const setSelectedCases = jest.fn(); + const updateBulkStatus = jest.fn(); + const fetchCasesStatus = jest.fn(); + const onRowClick = jest.fn(); + const emptyTag = getEmptyTagValue().props.children; + + const defaultGetCases = { + ...useGetCasesMockState, + dispatchUpdateCaseProperty, + refetchCases, + setFilters, + setQueryParams, + setSelectedCases, + }; + + const defaultDeleteCases = { + dispatchResetIsDeleted, + handleOnDeleteConfirm, + handleToggleModal, + isDeleted: false, + isDisplayConfirmDeleteModal: false, + isLoading: false, + }; + + const defaultCasesStatus = { + ...casesStatus, + fetchCasesStatus, + isError: false, + isLoading: false, + }; + + const defaultUpdateCases = { + isUpdated: false, + isLoading: false, + isError: false, + dispatchResetIsUpdated, + updateBulkStatus, + }; + + const defaultActionLicense = { + actionLicense: null, + isLoading: false, + isError: false, + }; + + const defaultColumnArgs = { + caseDetailsNavigation: { + href: jest.fn(), + onClick: jest.fn(), + }, + dispatchUpdateCaseProperty: jest.fn, + filterStatus: CaseStatuses.open, + handleIsLoading: jest.fn(), + isLoadingCases: [], + isSelectorView: false, + userCanCrud: true, + }; + + beforeAll(() => { + mockKibana(); + const actionTypeRegistry = useKibanaMock().services.triggersActionsUi.actionTypeRegistry; + registerConnectorsToMockActionRegistry(actionTypeRegistry, connectorsMock); + }); + + beforeEach(() => { + jest.clearAllMocks(); + useUpdateCasesMock.mockReturnValue(defaultUpdateCases); + useGetCasesMock.mockReturnValue(defaultGetCases); + useDeleteCasesMock.mockReturnValue(defaultDeleteCases); + useGetCasesStatusMock.mockReturnValue(defaultCasesStatus); + useGetActionLicenseMock.mockReturnValue(defaultActionLicense); + useConnectorsMock.mockImplementation(() => ({ connectors: connectorsMock, loading: false })); + useConnectorsMock.mockImplementation(() => ({ connectors: connectorsMock, loading: false })); + mockKibana(); + moment.tz.setDefault('UTC'); + }); + + it('should render AllCasesList', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, + }); + + const wrapper = mount( + + + + ); + + await waitFor(() => { + expect(wrapper.find(`a[data-test-subj="case-details-link"]`).first().prop('href')).toEqual( + `/app/security/cases/test` + ); + expect(wrapper.find(`a[data-test-subj="case-details-link"]`).first().text()).toEqual( + useGetCasesMockState.data.cases[0].title + ); + expect( + wrapper.find(`span[data-test-subj="case-table-column-tags-0"]`).first().prop('title') + ).toEqual(useGetCasesMockState.data.cases[0].tags[0]); + expect(wrapper.find(`[data-test-subj="case-table-column-createdBy"]`).first().text()).toEqual( + useGetCasesMockState.data.cases[0].createdBy.fullName + ); + expect( + wrapper + .find(`[data-test-subj="case-table-column-createdAt"]`) + .first() + .childAt(0) + .prop('value') + ).toBe(useGetCasesMockState.data.cases[0].createdAt); + expect(wrapper.find(`[data-test-subj="case-table-case-count"]`).first().text()).toEqual( + 'Showing 10 cases' + ); + }); + }); + + it('should render empty fields', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, + data: { + ...defaultGetCases.data, + cases: [ + { + ...defaultGetCases.data.cases[0], + id: null, + createdAt: null, + createdBy: null, + status: null, + subCases: null, + tags: null, + title: null, + totalComment: null, + totalAlerts: null, + }, + ], + }, + }); + const wrapper = mount( + + + + ); + const checkIt = (columnName: string, key: number) => { + const column = wrapper.find('[data-test-subj="cases-table"] tbody .euiTableRowCell').at(key); + expect(column.find('.euiTableRowCell--hideForDesktop').text()).toEqual(columnName); + expect(column.find('span').text()).toEqual(emptyTag); + }; + + const { result } = renderHook(() => + useCasesColumns(defaultColumnArgs) + ); + + await waitFor(() => { + result.current.map( + (i, key) => + i.name != null && + !Object.prototype.hasOwnProperty.call(i, 'actions') && + checkIt(`${i.name}`, key) + ); + }); + }); + + it('should render delete actions for case', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, + }); + const wrapper = mount( + + + + ); + await waitFor(() => { + expect(wrapper.find('[data-test-subj="action-delete"]').first().props().disabled).toBeFalsy(); + }); + }); + + it.skip('should enable correct actions for sub cases', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + data: { + ...defaultGetCases.data, + cases: [ + { + ...defaultGetCases.data.cases[0], + id: 'my-case-with-subcases', + createdAt: null, + createdBy: null, + status: null, + subCases: [ + { + id: 'sub-case-id', + }, + ], + tags: null, + title: null, + totalComment: null, + totalAlerts: null, + type: CaseType.collection, + }, + ], + }, + }); + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="action-delete"]').first().props().disabled).toEqual( + false + ); + }); + + it('should tableHeaderSortButton AllCasesList', async () => { + const wrapper = mount( + + + + ); + wrapper.find('[data-test-subj="tableHeaderSortButton"]').first().simulate('click'); + await waitFor(() => { + expect(setQueryParams).toBeCalledWith({ + page: 1, + perPage: 5, + sortField: 'createdAt', + sortOrder: 'asc', + }); + }); + }); + + it('Updates status when status context menu is updated', async () => { + const wrapper = mount( + + + + ); + wrapper.find(`[data-test-subj="case-view-status-dropdown"] button`).first().simulate('click'); + wrapper + .find(`[data-test-subj="case-view-status-dropdown-closed"] button`) + .first() + .simulate('click'); + + await waitFor(() => { + const firstCase = useGetCasesMockState.data.cases[0]; + expect(dispatchUpdateCaseProperty.mock.calls[0][0]).toEqual( + expect.objectContaining({ + caseId: firstCase.id, + updateKey: 'status', + updateValue: CaseStatuses.closed, + version: firstCase.version, + }) + ); + }); + }); + + it.skip('Bulk delete', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.closed }, + selectedCases: [...useGetCasesMockState.data.cases, collectionCase], + }); + + useDeleteCasesMock + .mockReturnValueOnce({ + ...defaultDeleteCases, + isDisplayConfirmDeleteModal: false, + }) + .mockReturnValue({ + ...defaultDeleteCases, + isDisplayConfirmDeleteModal: true, + }); + + const wrapper = mount( + + + + ); + + wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); + wrapper.find('[data-test-subj="cases-bulk-delete-button"]').first().simulate('click'); + + wrapper + .find( + '[data-test-subj="confirm-delete-case-modal"] [data-test-subj="confirmModalConfirmButton"]' + ) + .last() + .simulate('click'); + + await waitFor(() => { + expect(handleToggleModal).toBeCalled(); + + expect(handleOnDeleteConfirm.mock.calls[0][0]).toStrictEqual([ + ...useGetCasesMockState.data.cases.map(({ id, type, title }) => ({ id, type, title })), + { + id: collectionCase.id, + title: collectionCase.title, + type: collectionCase.type, + }, + ]); + }); + }); + + it('Renders only bulk delete on status all', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + filterOptions: { ...defaultGetCases.filterOptions, status: StatusAll }, + selectedCases: [...useGetCasesMockState.data.cases], + }); + + const wrapper = mount( + + + + ); + + wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); + + await waitFor(() => { + expect(wrapper.find('[data-test-subj="cases-bulk-open-button"]').exists()).toEqual(false); + expect(wrapper.find('[data-test-subj="cases-bulk-in-progress-button"]').exists()).toEqual( + false + ); + expect(wrapper.find('[data-test-subj="cases-bulk-close-button"]').exists()).toEqual(false); + expect( + wrapper.find('[data-test-subj="cases-bulk-delete-button"]').first().props().disabled + ).toEqual(false); + }); + }); + + it('Renders correct bulk actions for case collection when filter status is set to all - enable only bulk delete if any collection is selected', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, + selectedCases: [ + ...useGetCasesMockState.data.cases, + { + ...useGetCasesMockState.data.cases[0], + type: CaseType.collection, + }, + ], + }); + + useDeleteCasesMock + .mockReturnValueOnce({ + ...defaultDeleteCases, + isDisplayConfirmDeleteModal: false, + }) + .mockReturnValue({ + ...defaultDeleteCases, + isDisplayConfirmDeleteModal: true, + }); + + const wrapper = mount( + + + + ); + wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); + await waitFor(() => { + expect(wrapper.find('[data-test-subj="cases-bulk-open-button"]').exists()).toEqual(false); + expect( + wrapper.find('[data-test-subj="cases-bulk-in-progress-button"]').first().props().disabled + ).toEqual(true); + expect( + wrapper.find('[data-test-subj="cases-bulk-close-button"]').first().props().disabled + ).toEqual(true); + expect( + wrapper.find('[data-test-subj="cases-bulk-delete-button"]').first().props().disabled + ).toEqual(false); + }); + }); + + it('Bulk close status update', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, + selectedCases: useGetCasesMockState.data.cases, + }); + + const wrapper = mount( + + + + ); + wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); + wrapper.find('[data-test-subj="cases-bulk-close-button"]').first().simulate('click'); + + await waitFor(() => { + expect(updateBulkStatus).toBeCalledWith(useGetCasesMockState.data.cases, CaseStatuses.closed); + }); + }); + + it('Bulk open status update', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + selectedCases: useGetCasesMockState.data.cases, + filterOptions: { + ...defaultGetCases.filterOptions, + status: CaseStatuses.closed, + }, + }); + + const wrapper = mount( + + + + ); + wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); + wrapper.find('[data-test-subj="cases-bulk-open-button"]').first().simulate('click'); + await waitFor(() => { + expect(updateBulkStatus).toBeCalledWith(useGetCasesMockState.data.cases, CaseStatuses.open); + }); + }); + + it('Bulk in-progress status update', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, + selectedCases: useGetCasesMockState.data.cases, + }); + + const wrapper = mount( + + + + ); + wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); + wrapper.find('[data-test-subj="cases-bulk-in-progress-button"]').first().simulate('click'); + await waitFor(() => { + expect(updateBulkStatus).toBeCalledWith( + useGetCasesMockState.data.cases, + CaseStatuses['in-progress'] + ); + }); + }); + + it('isDeleted is true, refetch', async () => { + useDeleteCasesMock.mockReturnValue({ + ...defaultDeleteCases, + isDeleted: true, + }); + + mount( + + + + ); + await waitFor(() => { + expect(refetchCases).toBeCalled(); + // expect(fetchCasesStatus).toBeCalled(); + expect(dispatchResetIsDeleted).toBeCalled(); + }); + }); + + it('isUpdated is true, refetch', async () => { + useUpdateCasesMock.mockReturnValue({ + ...defaultUpdateCases, + isUpdated: true, + }); + + mount( + + + + ); + await waitFor(() => { + expect(refetchCases).toBeCalled(); + // expect(fetchCasesStatus).toBeCalled(); + expect(dispatchResetIsUpdated).toBeCalled(); + }); + }); + + it('should not render table utility bar when isSelectorView=true', async () => { + const wrapper = mount( + + + + ); + await waitFor(() => { + expect(wrapper.find('[data-test-subj="case-table-selected-case-count"]').exists()).toBe( + false + ); + expect(wrapper.find('[data-test-subj="case-table-bulk-actions"]').exists()).toBe(false); + }); + }); + + it('case table should not be selectable when isSelectorView=true', async () => { + const wrapper = mount( + + + + ); + await waitFor(() => { + expect(wrapper.find('[data-test-subj="cases-table"]').first().prop('isSelectable')).toBe( + false + ); + }); + }); + + it('should call onRowClick with no cases and isSelectorView=true', async () => { + useGetCasesMock.mockReturnValue({ + ...defaultGetCases, + data: { + ...defaultGetCases.data, + total: 0, + cases: [], + }, + }); + + const wrapper = mount( + + + + ); + wrapper.find('[data-test-subj="cases-table-add-case"]').first().simulate('click'); + await waitFor(() => { + expect(onRowClick).toHaveBeenCalled(); + }); + }); + + it('should call onRowClick when clicking a case with modal=true', async () => { + const wrapper = mount( + + + + ); + + wrapper.find('[data-test-subj="cases-table-row-select-1"]').first().simulate('click'); + await waitFor(() => { + expect(onRowClick).toHaveBeenCalledWith({ + closedAt: null, + closedBy: null, + comments: [], + connector: { fields: null, id: '123', name: 'My Connector', type: '.jira' }, + createdAt: '2020-02-19T23:06:33.798Z', + createdBy: { + email: 'leslie.knope@elastic.co', + fullName: 'Leslie Knope', + username: 'lknope', + }, + description: 'Security banana Issue', + externalService: { + connectorId: '123', + connectorName: 'connector name', + externalId: 'external_id', + externalTitle: 'external title', + externalUrl: 'basicPush.com', + pushedAt: '2020-02-20T15:02:57.995Z', + pushedBy: { + email: 'leslie.knope@elastic.co', + fullName: 'Leslie Knope', + username: 'lknope', + }, + }, + id: '1', + owner: SECURITY_SOLUTION_OWNER, + status: 'open', + subCaseIds: [], + tags: ['coke', 'pepsi'], + title: 'Another horrible breach!!', + totalAlerts: 0, + totalComment: 0, + type: CaseType.individual, + updatedAt: '2020-02-20T15:02:57.995Z', + updatedBy: { + email: 'leslie.knope@elastic.co', + fullName: 'Leslie Knope', + username: 'lknope', + }, + version: 'WzQ3LDFd', + settings: { + syncAlerts: true, + }, + }); + }); + }); + + it('should NOT call onRowClick when clicking a case with modal=true', async () => { + const wrapper = mount( + + + + ); + wrapper.find('[data-test-subj="cases-table-row-1"]').first().simulate('click'); + await waitFor(() => { + expect(onRowClick).not.toHaveBeenCalled(); + }); + }); + + it('should change the status to closed', async () => { + const wrapper = mount( + + + + ); + wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); + wrapper.find('button[data-test-subj="case-status-filter-closed"]').simulate('click'); + await waitFor(() => { + expect(setQueryParams).toBeCalledWith({ + sortField: 'closedAt', + }); + }); + }); + + it('should change the status to in-progress', async () => { + const wrapper = mount( + + + + ); + wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); + wrapper.find('button[data-test-subj="case-status-filter-in-progress"]').simulate('click'); + await waitFor(() => { + expect(setQueryParams).toBeCalledWith({ + sortField: 'createdAt', + }); + }); + }); + + it('should change the status to open', async () => { + const wrapper = mount( + + + + ); + wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); + wrapper.find('button[data-test-subj="case-status-filter-open"]').simulate('click'); + await waitFor(() => { + expect(setQueryParams).toBeCalledWith({ + sortField: 'createdAt', + }); + }); + }); + + it('should show the correct count on stats', async () => { + const wrapper = mount( + + + + ); + wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); + await waitFor(() => { + expect(wrapper.find('button[data-test-subj="case-status-filter-open"]').text()).toBe( + 'Open (20)' + ); + expect(wrapper.find('button[data-test-subj="case-status-filter-in-progress"]').text()).toBe( + 'In progress (40)' + ); + expect(wrapper.find('button[data-test-subj="case-status-filter-closed"]').text()).toBe( + 'Closed (130)' + ); + }); + }); + + it('should not render status when isSelectorView=true', async () => { + const wrapper = mount( + + + + ); + + const { result } = renderHook(() => + useCasesColumns({ + ...defaultColumnArgs, + isSelectorView: true, + }) + ); + + expect(result.current.find((i) => i.name === 'Status')).toBeFalsy(); + + await waitFor(() => { + expect(wrapper.find('[data-test-subj="cases-table"]').exists()).toBeTruthy(); + }); + + expect(wrapper.find('[data-test-subj="case-view-status-dropdown"]').exists()).toBeFalsy(); + }); + + it.skip('renders the first available status when hiddenStatus is given', async () => { + const wrapper = mount( + + + + ); + + expect(wrapper.find('[data-test-subj="status-badge-in-progress"]').exists()).toBeTruthy(); + }); + + it('should call doRefresh if provided', async () => { + const doRefresh = jest.fn(); + + const wrapper = mount( + + + + ); + + await act(async () => { + wrapper.find('[data-test-subj="all-cases-refresh"] button').first().simulate('click'); + }); + + expect(doRefresh).toHaveBeenCalled(); + }); +}); diff --git a/x-pack/plugins/cases/public/components/all_cases/all_cases_generic.tsx b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx similarity index 78% rename from x-pack/plugins/cases/public/components/all_cases/all_cases_generic.tsx rename to x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx index 54867c333c2e2..bf42cfe38863e 100644 --- a/x-pack/plugins/cases/public/components/all_cases/all_cases_generic.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/all_cases_list.tsx @@ -23,20 +23,17 @@ import { caseStatuses, } from '../../../common'; import { SELECTABLE_MESSAGE_COLLECTIONS } from '../../common/translations'; -import { useGetActionLicense } from '../../containers/use_get_action_license'; import { useGetCases } from '../../containers/use_get_cases'; import { usePostComment } from '../../containers/use_post_comment'; -import { CaseDetailsHrefSchema, CasesNavigation } from '../links'; -import { getActionLicenseError } from '../use_push_to_service/helpers'; import { useCasesColumns } from './columns'; import { getExpandedRowMap } from './expanded_row'; -import { CasesTableHeader } from './header'; import { CasesTableFilters } from './table_filters'; import { EuiBasicTableOnChange } from './types'; import { CasesTable } from './table'; import { useConnectors } from '../../containers/configure/use_connectors'; +import { useCasesContext } from '../cases_context/use_cases_context'; const ProgressLoader = styled(EuiProgress)` ${({ $isShow }: { $isShow: boolean }) => @@ -54,36 +51,27 @@ const ProgressLoader = styled(EuiProgress)` const getSortField = (field: string): SortFieldCase => field === SortFieldCase.closedAt ? SortFieldCase.closedAt : SortFieldCase.createdAt; -interface AllCasesGenericProps { +export interface AllCasesListProps { alertData?: Omit; - caseDetailsNavigation?: CasesNavigation; // if not passed, case name is not displayed as a link (Formerly dependant on isSelectorView) - configureCasesNavigation?: CasesNavigation; // if not passed, header with nav is not displayed (Formerly dependant on isSelectorView) - createCaseNavigation: CasesNavigation; disableAlerts?: boolean; hiddenStatuses?: CaseStatusWithAllStatus[]; isSelectorView?: boolean; onRowClick?: (theCase?: Case | SubCase) => void; - showTitle?: boolean; updateCase?: (newCase: Case) => void; - userCanCrud: boolean; + doRefresh?: () => void; } -export const AllCasesGeneric = React.memo( +export const AllCasesList = React.memo( ({ alertData, - caseDetailsNavigation, - configureCasesNavigation, - createCaseNavigation, disableAlerts, hiddenStatuses = [], - isSelectorView, + isSelectorView = false, onRowClick, - showTitle, updateCase, - userCanCrud, + doRefresh, }) => { - const { actionLicense } = useGetActionLicense(); - + const { userCanCrud } = useCasesContext(); const firstAvailableStatus = head(difference(caseStatuses, hiddenStatuses)); const initialFilterOptions = !isEmpty(hiddenStatuses) && firstAvailableStatus ? { status: firstAvailableStatus } : {}; @@ -120,33 +108,18 @@ export const AllCasesGeneric = React.memo( }, [filterRefetch] ); - const [refresh, doRefresh] = useState(0); const [isLoading, handleIsLoading] = useState(false); const refreshCases = useCallback( (dataRefresh = true) => { if (dataRefresh) refetchCases(); - doRefresh((prev) => prev + 1); + if (doRefresh) doRefresh(); setSelectedCases([]); if (filterRefetch.current != null) { filterRefetch.current(); } }, - [filterRefetch, refetchCases, setSelectedCases] - ); - - const { onClick: onCreateCaseNavClick } = createCaseNavigation; - const goToCreateCase = useCallback( - (ev) => { - ev.preventDefault(); - if (isSelectorView && onRowClick != null) { - onRowClick(); - } else if (onCreateCaseNavClick) { - onCreateCaseNavClick(ev); - } - }, - [isSelectorView, onCreateCaseNavClick, onRowClick] + [doRefresh, filterRefetch, refetchCases, setSelectedCases] ); - const actionsErrors = useMemo(() => getActionLicenseError(actionLicense), [actionLicense]); const tableOnChangeCallback = useCallback( ({ page, sort }: EuiBasicTableOnChange) => { @@ -195,15 +168,13 @@ export const AllCasesGeneric = React.memo( const showActions = userCanCrud && !isSelectorView; const columns = useCasesColumns({ - caseDetailsNavigation, disableAlerts, dispatchUpdateCaseProperty, filterStatus: filterOptions.status, handleIsLoading, isLoadingCases: loading, refreshCases, - // isSelectorView is boolean | undefined. We need to convert it to a boolean. - isSelectorView: !!isSelectorView, + isSelectorView, userCanCrud, connectors, onRowClick, @@ -253,16 +224,6 @@ export const AllCasesGeneric = React.memo( return ( <> - {configureCasesNavigation != null && ( - - )} ( /> ( } ); -AllCasesGeneric.displayName = 'AllCasesGeneric'; +AllCasesList.displayName = 'AllCasesList'; diff --git a/x-pack/plugins/cases/public/components/all_cases/columns.tsx b/x-pack/plugins/cases/public/components/all_cases/columns.tsx index 6a23a293bfb83..67d4409444016 100644 --- a/x-pack/plugins/cases/public/components/all_cases/columns.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/columns.tsx @@ -34,7 +34,7 @@ import { } from '../../../common'; import { getEmptyTagValue } from '../empty_value'; import { FormattedRelativePreferenceDate } from '../formatted_date'; -import { CaseDetailsHrefSchema, CaseDetailsLink, CasesNavigation } from '../links'; +import { CaseDetailsLink } from '../links'; import * as i18n from './translations'; import { getSubCasesStatusCountsBadges, isSubCase } from './helpers'; import { ALERTS } from '../../common/translations'; @@ -69,7 +69,6 @@ const renderStringField = (field: string, dataTestSubj: string) => field != null ? {field} : getEmptyTagValue(); export interface GetCasesColumn { - caseDetailsNavigation?: CasesNavigation; disableAlerts?: boolean; dispatchUpdateCaseProperty: (u: UpdateCase) => void; filterStatus: string; @@ -85,7 +84,6 @@ export interface GetCasesColumn { updateCase?: (newCase: Case) => void; } export const useCasesColumns = ({ - caseDetailsNavigation, disableAlerts = false, dispatchUpdateCaseProperty, filterStatus, @@ -179,19 +177,17 @@ export const useCasesColumns = ({ name: i18n.NAME, render: (theCase: Case | SubCase) => { if (theCase.id != null && theCase.title != null) { - const caseDetailsLinkComponent = - caseDetailsNavigation != null ? ( - - - - ) : ( + const caseDetailsLinkComponent = isSelectorView ? ( + + ) : ( + - ); + + ); return theCase.status !== CaseStatuses.closed ? ( caseDetailsLinkComponent ) : ( diff --git a/x-pack/plugins/cases/public/components/all_cases/header.tsx b/x-pack/plugins/cases/public/components/all_cases/header.tsx index b2e5dafe061cf..bca8ea3cf0711 100644 --- a/x-pack/plugins/cases/public/components/all_cases/header.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/header.tsx @@ -11,16 +11,12 @@ import styled, { css } from 'styled-components'; import { HeaderPage } from '../header_page'; import * as i18n from './translations'; import { Count } from './count'; -import { CasesNavigation } from '../links'; import { ErrorMessage } from '../use_push_to_service/callout/types'; import { NavButtons } from './nav_buttons'; interface OwnProps { actionsErrors: ErrorMessage[]; - configureCasesNavigation: CasesNavigation; - createCaseNavigation: CasesNavigation; refresh: number; - showTitle?: boolean; userCanCrud: boolean; } @@ -43,13 +39,10 @@ const FlexItemDivider = styled(EuiFlexItem)` export const CasesTableHeader: FunctionComponent = ({ actionsErrors, - configureCasesNavigation, - createCaseNavigation, refresh, - showTitle = true, userCanCrud, }) => ( - + {userCanCrud ? ( <> @@ -58,11 +51,7 @@ export const CasesTableHeader: FunctionComponent = ({ - + ) : ( diff --git a/x-pack/plugins/cases/public/components/all_cases/index.test.tsx b/x-pack/plugins/cases/public/components/all_cases/index.test.tsx index 7e3ca8729ef63..8429712a30f74 100644 --- a/x-pack/plugins/cases/public/components/all_cases/index.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/index.test.tsx @@ -7,94 +7,49 @@ import React from 'react'; import { mount } from 'enzyme'; -import moment from 'moment-timezone'; import { waitFor } from '@testing-library/react'; -import { renderHook } from '@testing-library/react-hooks'; -import '../../common/mock/match_media'; +import { AllCases, AllCasesProps } from '.'; import { TestProviders } from '../../common/mock'; -import { - casesStatus, - useGetCasesMockState, - collectionCase, - connectorsMock, -} from '../../containers/mock'; - -import { CaseStatuses, CaseType, SECURITY_SOLUTION_OWNER, StatusAll } from '../../../common'; -import { getEmptyTagValue } from '../empty_value'; -import { useDeleteCases } from '../../containers/use_delete_cases'; -import { useGetCases } from '../../containers/use_get_cases'; -import { useGetCasesStatus } from '../../containers/use_get_cases_status'; -import { useUpdateCases } from '../../containers/use_bulk_update_case'; +import { useGetTags } from '../../containers/use_get_tags'; +import { useGetReporters } from '../../containers/use_get_reporters'; import { useGetActionLicense } from '../../containers/use_get_action_license'; import { useConnectors } from '../../containers/configure/use_connectors'; import { useKibana } from '../../common/lib/kibana'; -import { AllCasesGeneric as AllCases } from './all_cases_generic'; -import { AllCasesProps } from '.'; -import { CasesColumns, GetCasesColumn, useCasesColumns } from './columns'; -import { triggersActionsUiMock } from '../../../../triggers_actions_ui/public/mocks'; +import { CaseStatuses } from '../../../common'; +import { casesStatus, connectorsMock, useGetCasesMockState } from '../../containers/mock'; import { registerConnectorsToMockActionRegistry } from '../../common/mock/register_connectors'; +import { useGetCases } from '../../containers/use_get_cases'; +import { useGetCasesStatus } from '../../containers/use_get_cases_status'; -jest.mock('../../containers/use_bulk_update_case'); -jest.mock('../../containers/use_delete_cases'); -jest.mock('../../containers/use_get_cases'); -jest.mock('../../containers/use_get_cases_status'); +jest.mock('../../containers/use_get_reporters'); +jest.mock('../../containers/use_get_tags'); jest.mock('../../containers/use_get_action_license'); jest.mock('../../containers/configure/use_connectors'); +jest.mock('../../containers/api'); +jest.mock('../../common/lib/kibana'); +jest.mock('../../containers/use_get_cases'); +jest.mock('../../containers/use_get_cases_status'); -const useDeleteCasesMock = useDeleteCases as jest.Mock; +const defaultAllCasesProps: AllCasesProps = { + disableAlerts: false, +}; + +const useKibanaMock = useKibana as jest.Mocked; +const useConnectorsMock = useConnectors as jest.Mock; const useGetCasesMock = useGetCases as jest.Mock; const useGetCasesStatusMock = useGetCasesStatus as jest.Mock; -const useUpdateCasesMock = useUpdateCases as jest.Mock; const useGetActionLicenseMock = useGetActionLicense as jest.Mock; -const useKibanaMock = useKibana as jest.Mocked; -const useConnectorsMock = useConnectors as jest.Mock; -const mockTriggersActionsUiService = triggersActionsUiMock.createStart(); - -jest.mock('../../common/lib/kibana', () => { - const originalModule = jest.requireActual('../../common/lib/kibana'); - return { - ...originalModule, - useKibana: () => ({ - services: { - triggersActionsUi: mockTriggersActionsUiService, - }, - }), - }; -}); - -describe('AllCasesGeneric', () => { - const defaultAllCasesProps: AllCasesProps = { - configureCasesNavigation: { - href: 'blah', - onClick: jest.fn(), - }, - caseDetailsNavigation: { - href: jest.fn().mockReturnValue('testHref'), // string - onClick: jest.fn(), - }, - createCaseNavigation: { - href: 'bleh', - onClick: jest.fn(), - }, - userCanCrud: true, - owner: [SECURITY_SOLUTION_OWNER], - }; +describe('AllCases', () => { + const actionTypeRegistry = useKibanaMock().services.triggersActionsUi.actionTypeRegistry; - const dispatchResetIsDeleted = jest.fn(); - const dispatchResetIsUpdated = jest.fn(); const dispatchUpdateCaseProperty = jest.fn(); - const handleOnDeleteConfirm = jest.fn(); - const handleToggleModal = jest.fn(); const refetchCases = jest.fn(); const setFilters = jest.fn(); const setQueryParams = jest.fn(); const setSelectedCases = jest.fn(); - const updateBulkStatus = jest.fn(); const fetchCasesStatus = jest.fn(); - const onRowClick = jest.fn(); - const emptyTag = getEmptyTagValue().props.children; const defaultGetCases = { ...useGetCasesMockState, @@ -105,15 +60,6 @@ describe('AllCasesGeneric', () => { setSelectedCases, }; - const defaultDeleteCases = { - dispatchResetIsDeleted, - handleOnDeleteConfirm, - handleToggleModal, - isDeleted: false, - isDisplayConfirmDeleteModal: false, - isLoading: false, - }; - const defaultCasesStatus = { ...casesStatus, fetchCasesStatus, @@ -121,86 +67,34 @@ describe('AllCasesGeneric', () => { isLoading: false, }; - const defaultUpdateCases = { - isUpdated: false, - isLoading: false, - isError: false, - dispatchResetIsUpdated, - updateBulkStatus, - }; - const defaultActionLicense = { actionLicense: null, isLoading: false, isError: false, }; - const defaultColumnArgs = { - caseDetailsNavigation: { - href: jest.fn(), - onClick: jest.fn(), - }, - dispatchUpdateCaseProperty: jest.fn, - filterStatus: CaseStatuses.open, - handleIsLoading: jest.fn(), - isLoadingCases: [], - isSelectorView: false, - userCanCrud: true, - }; - - const actionTypeRegistry = useKibanaMock().services.triggersActionsUi.actionTypeRegistry; - beforeAll(() => { registerConnectorsToMockActionRegistry(actionTypeRegistry, connectorsMock); - }); - - beforeEach(() => { - jest.clearAllMocks(); - useUpdateCasesMock.mockReturnValue(defaultUpdateCases); - useGetCasesMock.mockReturnValue(defaultGetCases); - useDeleteCasesMock.mockReturnValue(defaultDeleteCases); + (useGetTags as jest.Mock).mockReturnValue({ tags: ['coke', 'pepsi'], fetchTags: jest.fn() }); + (useGetReporters as jest.Mock).mockReturnValue({ + reporters: ['casetester'], + respReporters: [{ username: 'casetester' }], + isLoading: true, + isError: false, + fetchReporters: jest.fn(), + }); + (useGetActionLicense as jest.Mock).mockReturnValue({ + actionLicense: null, + isLoading: false, + }); + useConnectorsMock.mockImplementation(() => ({ connectors: connectorsMock, loading: false })); useGetCasesStatusMock.mockReturnValue(defaultCasesStatus); useGetActionLicenseMock.mockReturnValue(defaultActionLicense); - useConnectorsMock.mockImplementation(() => ({ connectors: connectorsMock, loading: false })); - moment.tz.setDefault('UTC'); + useGetCasesMock.mockReturnValue(defaultGetCases); }); - it('should render AllCases', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, - }); - - const wrapper = mount( - - - - ); - - await waitFor(() => { - expect(wrapper.find(`a[data-test-subj="case-details-link"]`).first().prop('href')).toEqual( - `testHref` - ); - expect(wrapper.find(`a[data-test-subj="case-details-link"]`).first().text()).toEqual( - useGetCasesMockState.data.cases[0].title - ); - expect( - wrapper.find(`span[data-test-subj="case-table-column-tags-0"]`).first().prop('title') - ).toEqual(useGetCasesMockState.data.cases[0].tags[0]); - expect(wrapper.find(`[data-test-subj="case-table-column-createdBy"]`).first().text()).toEqual( - useGetCasesMockState.data.cases[0].createdBy.fullName - ); - expect( - wrapper - .find(`[data-test-subj="case-table-column-createdAt"]`) - .first() - .childAt(0) - .prop('value') - ).toBe(useGetCasesMockState.data.cases[0].createdAt); - expect(wrapper.find(`[data-test-subj="case-table-case-count"]`).first().text()).toEqual( - 'Showing 10 cases' - ); - }); + beforeEach(() => { + jest.clearAllMocks(); }); it('should render the stats', async () => { @@ -264,618 +158,6 @@ describe('AllCasesGeneric', () => { }); }); - it('should render empty fields', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, - data: { - ...defaultGetCases.data, - cases: [ - { - ...defaultGetCases.data.cases[0], - id: null, - createdAt: null, - createdBy: null, - status: null, - subCases: null, - tags: null, - title: null, - totalComment: null, - totalAlerts: null, - }, - ], - }, - }); - const wrapper = mount( - - - - ); - const checkIt = (columnName: string, key: number) => { - const column = wrapper.find('[data-test-subj="cases-table"] tbody .euiTableRowCell').at(key); - expect(column.find('.euiTableRowCell--hideForDesktop').text()).toEqual(columnName); - expect(column.find('span').text()).toEqual(emptyTag); - }; - - const { result } = renderHook(() => - useCasesColumns(defaultColumnArgs) - ); - - await waitFor(() => { - result.current.map( - (i, key) => - i.name != null && - !Object.prototype.hasOwnProperty.call(i, 'actions') && - checkIt(`${i.name}`, key) - ); - }); - }); - - it('should render delete actions for case', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, - }); - const wrapper = mount( - - - - ); - await waitFor(() => { - expect(wrapper.find('[data-test-subj="action-delete"]').first().props().disabled).toBeFalsy(); - }); - }); - - it.skip('should enable correct actions for sub cases', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - data: { - ...defaultGetCases.data, - cases: [ - { - ...defaultGetCases.data.cases[0], - id: 'my-case-with-subcases', - createdAt: null, - createdBy: null, - status: null, - subCases: [ - { - id: 'sub-case-id', - }, - ], - tags: null, - title: null, - totalComment: null, - totalAlerts: null, - type: CaseType.collection, - }, - ], - }, - }); - const wrapper = mount( - - - - ); - - expect(wrapper.find('[data-test-subj="action-delete"]').first().props().disabled).toEqual( - false - ); - }); - - it('should not render case link when caseDetailsNavigation is not passed or actions on showActions=false', async () => { - const { caseDetailsNavigation, ...rest } = defaultAllCasesProps; - const wrapper = mount( - - - - ); - const { result } = renderHook(() => - useCasesColumns({ - dispatchUpdateCaseProperty: jest.fn, - isLoadingCases: [], - filterStatus: CaseStatuses.open, - handleIsLoading: jest.fn(), - isSelectorView: true, - userCanCrud: true, - }) - ); - await waitFor(() => { - result.current.map( - (i) => i.name != null && !Object.prototype.hasOwnProperty.call(i, 'actions') - ); - expect(wrapper.find(`a[data-test-subj="case-details-link"]`).exists()).toBeFalsy(); - }); - }); - - it('should tableHeaderSortButton AllCases', async () => { - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="tableHeaderSortButton"]').first().simulate('click'); - await waitFor(() => { - expect(setQueryParams).toBeCalledWith({ - page: 1, - perPage: 5, - sortField: 'createdAt', - sortOrder: 'asc', - }); - }); - }); - - it('Updates status when status context menu is updated', async () => { - const wrapper = mount( - - - - ); - wrapper.find(`[data-test-subj="case-view-status-dropdown"] button`).first().simulate('click'); - wrapper - .find(`[data-test-subj="case-view-status-dropdown-closed"] button`) - .first() - .simulate('click'); - - await waitFor(() => { - const firstCase = useGetCasesMockState.data.cases[0]; - expect(dispatchUpdateCaseProperty.mock.calls[0][0]).toEqual( - expect.objectContaining({ - caseId: firstCase.id, - updateKey: 'status', - updateValue: CaseStatuses.closed, - version: firstCase.version, - }) - ); - }); - }); - - it('Bulk delete', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.closed }, - selectedCases: [...useGetCasesMockState.data.cases, collectionCase], - }); - - useDeleteCasesMock - .mockReturnValueOnce({ - ...defaultDeleteCases, - isDisplayConfirmDeleteModal: false, - }) - .mockReturnValue({ - ...defaultDeleteCases, - isDisplayConfirmDeleteModal: true, - }); - - const wrapper = mount( - - - - ); - - wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); - wrapper.find('[data-test-subj="cases-bulk-delete-button"]').first().simulate('click'); - - wrapper - .find( - '[data-test-subj="confirm-delete-case-modal"] [data-test-subj="confirmModalConfirmButton"]' - ) - .last() - .simulate('click'); - - await waitFor(() => { - expect(handleToggleModal).toBeCalled(); - - expect(handleOnDeleteConfirm.mock.calls[0][0]).toStrictEqual([ - ...useGetCasesMockState.data.cases.map(({ id, type, title }) => ({ id, type, title })), - { - id: collectionCase.id, - title: collectionCase.title, - type: collectionCase.type, - }, - ]); - }); - }); - - it('Renders only bulk delete on status all', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - filterOptions: { ...defaultGetCases.filterOptions, status: StatusAll }, - selectedCases: [...useGetCasesMockState.data.cases], - }); - - const wrapper = mount( - - - - ); - - wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); - - await waitFor(() => { - expect(wrapper.find('[data-test-subj="cases-bulk-open-button"]').exists()).toEqual(false); - expect(wrapper.find('[data-test-subj="cases-bulk-in-progress-button"]').exists()).toEqual( - false - ); - expect(wrapper.find('[data-test-subj="cases-bulk-close-button"]').exists()).toEqual(false); - expect( - wrapper.find('[data-test-subj="cases-bulk-delete-button"]').first().props().disabled - ).toEqual(false); - }); - }); - - it('Renders correct bulk actions for case collection when filter status is set to all - enable only bulk delete if any collection is selected', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, - selectedCases: [ - ...useGetCasesMockState.data.cases, - { - ...useGetCasesMockState.data.cases[0], - type: CaseType.collection, - }, - ], - }); - - useDeleteCasesMock - .mockReturnValueOnce({ - ...defaultDeleteCases, - isDisplayConfirmDeleteModal: false, - }) - .mockReturnValue({ - ...defaultDeleteCases, - isDisplayConfirmDeleteModal: true, - }); - - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); - await waitFor(() => { - expect(wrapper.find('[data-test-subj="cases-bulk-open-button"]').exists()).toEqual(false); - expect( - wrapper.find('[data-test-subj="cases-bulk-in-progress-button"]').first().props().disabled - ).toEqual(true); - expect( - wrapper.find('[data-test-subj="cases-bulk-close-button"]').first().props().disabled - ).toEqual(true); - expect( - wrapper.find('[data-test-subj="cases-bulk-delete-button"]').first().props().disabled - ).toEqual(false); - }); - }); - - it('Bulk close status update', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, - selectedCases: useGetCasesMockState.data.cases, - }); - - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); - wrapper.find('[data-test-subj="cases-bulk-close-button"]').first().simulate('click'); - - await waitFor(() => { - expect(updateBulkStatus).toBeCalledWith(useGetCasesMockState.data.cases, CaseStatuses.closed); - }); - }); - - it('Bulk open status update', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - selectedCases: useGetCasesMockState.data.cases, - filterOptions: { - ...defaultGetCases.filterOptions, - status: CaseStatuses.closed, - }, - }); - - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); - wrapper.find('[data-test-subj="cases-bulk-open-button"]').first().simulate('click'); - await waitFor(() => { - expect(updateBulkStatus).toBeCalledWith(useGetCasesMockState.data.cases, CaseStatuses.open); - }); - }); - - it('Bulk in-progress status update', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - filterOptions: { ...defaultGetCases.filterOptions, status: CaseStatuses.open }, - selectedCases: useGetCasesMockState.data.cases, - }); - - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="case-table-bulk-actions"] button').first().simulate('click'); - wrapper.find('[data-test-subj="cases-bulk-in-progress-button"]').first().simulate('click'); - await waitFor(() => { - expect(updateBulkStatus).toBeCalledWith( - useGetCasesMockState.data.cases, - CaseStatuses['in-progress'] - ); - }); - }); - - it('isDeleted is true, refetch', async () => { - useDeleteCasesMock.mockReturnValue({ - ...defaultDeleteCases, - isDeleted: true, - }); - - mount( - - - - ); - await waitFor(() => { - expect(refetchCases).toBeCalled(); - expect(fetchCasesStatus).toBeCalled(); - expect(dispatchResetIsDeleted).toBeCalled(); - }); - }); - - it('isUpdated is true, refetch', async () => { - useUpdateCasesMock.mockReturnValue({ - ...defaultUpdateCases, - isUpdated: true, - }); - - mount( - - - - ); - await waitFor(() => { - expect(refetchCases).toBeCalled(); - expect(fetchCasesStatus).toBeCalled(); - expect(dispatchResetIsUpdated).toBeCalled(); - }); - }); - - it('should not render header when configureCasesNavigation are not present', async () => { - const { configureCasesNavigation, ...restProps } = defaultAllCasesProps; - const wrapper = mount( - - - - ); - await waitFor(() => { - expect(wrapper.find('[data-test-subj="all-cases-header"]').exists()).toBe(false); - }); - }); - - it('should not render table utility bar when isSelectorView=true', async () => { - const wrapper = mount( - - - - ); - await waitFor(() => { - expect(wrapper.find('[data-test-subj="case-table-selected-case-count"]').exists()).toBe( - false - ); - expect(wrapper.find('[data-test-subj="case-table-bulk-actions"]').exists()).toBe(false); - }); - }); - - it('case table should not be selectable when isSelectorView=true', async () => { - const wrapper = mount( - - - - ); - await waitFor(() => { - expect(wrapper.find('[data-test-subj="cases-table"]').first().prop('isSelectable')).toBe( - false - ); - }); - }); - - it('should call onRowClick with no cases and isSelectorView=true', async () => { - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - data: { - ...defaultGetCases.data, - total: 0, - cases: [], - }, - }); - - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="cases-table-add-case"]').first().simulate('click'); - await waitFor(() => { - expect(onRowClick).toHaveBeenCalled(); - }); - }); - - it('should call createCaseNavigation.onClick with no cases and isSelectorView=false', async () => { - const createCaseNavigation = { href: '', onClick: jest.fn() }; - useGetCasesMock.mockReturnValue({ - ...defaultGetCases, - data: { - ...defaultGetCases.data, - total: 0, - cases: [], - }, - }); - - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="cases-table-add-case"]').first().simulate('click'); - await waitFor(() => { - expect(createCaseNavigation.onClick).toHaveBeenCalled(); - }); - }); - - it('should call onRowClick when clicking a case with modal=true', async () => { - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="cases-table-row-select-1"]').first().simulate('click'); - await waitFor(() => { - expect(onRowClick).toHaveBeenCalledWith({ - closedAt: null, - closedBy: null, - comments: [], - connector: { fields: null, id: '123', name: 'My Connector', type: '.jira' }, - createdAt: '2020-02-19T23:06:33.798Z', - createdBy: { - email: 'leslie.knope@elastic.co', - fullName: 'Leslie Knope', - username: 'lknope', - }, - description: 'Security banana Issue', - externalService: { - connectorId: '123', - connectorName: 'connector name', - externalId: 'external_id', - externalTitle: 'external title', - externalUrl: 'basicPush.com', - pushedAt: '2020-02-20T15:02:57.995Z', - pushedBy: { - email: 'leslie.knope@elastic.co', - fullName: 'Leslie Knope', - username: 'lknope', - }, - }, - id: '1', - owner: SECURITY_SOLUTION_OWNER, - status: 'open', - subCaseIds: [], - tags: ['coke', 'pepsi'], - title: 'Another horrible breach!!', - totalAlerts: 0, - totalComment: 0, - type: CaseType.individual, - updatedAt: '2020-02-20T15:02:57.995Z', - updatedBy: { - email: 'leslie.knope@elastic.co', - fullName: 'Leslie Knope', - username: 'lknope', - }, - version: 'WzQ3LDFd', - settings: { - syncAlerts: true, - }, - }); - }); - }); - - it('should NOT call onRowClick when clicking a case with modal=true', async () => { - const wrapper = mount( - - - - ); - wrapper.find('[data-test-subj="cases-table-row-1"]').first().simulate('click'); - await waitFor(() => { - expect(onRowClick).not.toHaveBeenCalled(); - }); - }); - - it('should change the status to closed', async () => { - const wrapper = mount( - - - - ); - wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); - wrapper.find('button[data-test-subj="case-status-filter-closed"]').simulate('click'); - await waitFor(() => { - expect(setQueryParams).toBeCalledWith({ - sortField: 'closedAt', - }); - }); - }); - - it('should change the status to in-progress', async () => { - const wrapper = mount( - - - - ); - wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); - wrapper.find('button[data-test-subj="case-status-filter-in-progress"]').simulate('click'); - await waitFor(() => { - expect(setQueryParams).toBeCalledWith({ - sortField: 'createdAt', - }); - }); - }); - - it('should change the status to open', async () => { - const wrapper = mount( - - - - ); - wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); - wrapper.find('button[data-test-subj="case-status-filter-open"]').simulate('click'); - await waitFor(() => { - expect(setQueryParams).toBeCalledWith({ - sortField: 'createdAt', - }); - }); - }); - - it('should show the correct count on stats', async () => { - const wrapper = mount( - - - - ); - wrapper.find('button[data-test-subj="case-status-filter"]').simulate('click'); - await waitFor(() => { - expect(wrapper.find('button[data-test-subj="case-status-filter-open"]').text()).toBe( - 'Open (20)' - ); - expect(wrapper.find('button[data-test-subj="case-status-filter-in-progress"]').text()).toBe( - 'In progress (40)' - ); - expect(wrapper.find('button[data-test-subj="case-status-filter-closed"]').text()).toBe( - 'Closed (130)' - ); - }); - }); - it('should not allow the user to enter configuration page with basic license', async () => { useGetActionLicenseMock.mockReturnValue({ ...defaultActionLicense, @@ -927,27 +209,4 @@ describe('AllCasesGeneric', () => { ).toBeFalsy(); }); }); - - it('should not render status when isSelectorView=true', async () => { - const wrapper = mount( - - - - ); - - const { result } = renderHook(() => - useCasesColumns({ - ...defaultColumnArgs, - isSelectorView: true, - }) - ); - - expect(result.current.find((i) => i.name === 'Status')).toBeFalsy(); - - await waitFor(() => { - expect(wrapper.find('[data-test-subj="cases-table"]').exists()).toBeTruthy(); - }); - - expect(wrapper.find('[data-test-subj="case-view-status-dropdown"]').exists()).toBeFalsy(); - }); }); diff --git a/x-pack/plugins/cases/public/components/all_cases/index.tsx b/x-pack/plugins/cases/public/components/all_cases/index.tsx index 78fa1d54a47f1..7f7de11a3435c 100644 --- a/x-pack/plugins/cases/public/components/all_cases/index.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/index.tsx @@ -5,25 +5,38 @@ * 2.0. */ -import React from 'react'; -import { Owner } from '../../types'; -import { CaseDetailsHrefSchema, CasesNavigation } from '../links'; -import { OwnerProvider } from '../owner_context'; -import { AllCasesGeneric } from './all_cases_generic'; -export interface AllCasesProps extends Owner { - caseDetailsNavigation: CasesNavigation; // if not passed, case name is not displayed as a link (Formerly dependant on isSelector) - configureCasesNavigation: CasesNavigation; // if not passed, header with nav is not displayed (Formerly dependant on isSelector) - createCaseNavigation: CasesNavigation; +import React, { useCallback, useState, useMemo } from 'react'; +import { CasesDeepLinkId } from '../../common/navigation'; +import { useGetActionLicense } from '../../containers/use_get_action_license'; +import { useCasesContext } from '../cases_context/use_cases_context'; +import { useCasesBreadcrumbs } from '../use_breadcrumbs'; +import { getActionLicenseError } from '../use_push_to_service/helpers'; +import { AllCasesList } from './all_cases_list'; +import { CasesTableHeader } from './header'; + +export interface AllCasesProps { disableAlerts?: boolean; - showTitle?: boolean; - userCanCrud: boolean; } -export const AllCases: React.FC = (props) => ( - - - -); +export const AllCases: React.FC = ({ disableAlerts }) => { + const { userCanCrud } = useCasesContext(); + const [refresh, setRefresh] = useState(0); + useCasesBreadcrumbs(CasesDeepLinkId.cases); + + const doRefresh = useCallback(() => { + setRefresh((prev) => prev + 1); + }, [setRefresh]); + + const { actionLicense } = useGetActionLicense(); + const actionsErrors = useMemo(() => getActionLicenseError(actionLicense), [actionLicense]); + + return ( + <> + + + + ); +}; // eslint-disable-next-line import/no-default-export export { AllCases as default }; diff --git a/x-pack/plugins/cases/public/components/all_cases/nav_buttons.tsx b/x-pack/plugins/cases/public/components/all_cases/nav_buttons.tsx index 0e55abd00a706..b496cd2ea18a4 100644 --- a/x-pack/plugins/cases/public/components/all_cases/nav_buttons.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/nav_buttons.tsx @@ -5,14 +5,14 @@ * 2.0. */ -import React, { FunctionComponent } from 'react'; +import React, { FunctionComponent, useCallback } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { isEmpty } from 'lodash/fp'; import styled, { css } from 'styled-components'; -import { ConfigureCaseButton } from '../configure_cases/button'; import * as i18n from './translations'; -import { CasesNavigation, LinkButton } from '../links'; +import { ConfigureCaseButton, LinkButton } from '../links'; import { ErrorMessage } from '../use_push_to_service/callout/types'; +import { useCreateCaseNavigation } from '../../common/navigation'; const ButtonFlexGroup = styled(EuiFlexGroup)` ${({ theme }) => css` @@ -26,38 +26,41 @@ const ButtonFlexGroup = styled(EuiFlexGroup)` interface OwnProps { actionsErrors: ErrorMessage[]; - configureCasesNavigation: CasesNavigation; - createCaseNavigation: CasesNavigation; } type Props = OwnProps; -export const NavButtons: FunctionComponent = ({ - actionsErrors, - configureCasesNavigation, - createCaseNavigation, -}) => ( - - - {actionsErrors[0].description} : <>} - titleTooltip={!isEmpty(actionsErrors) ? actionsErrors[0].title : ''} - /> - - - - {i18n.CREATE_TITLE} - - - -); +export const NavButtons: FunctionComponent = ({ actionsErrors }) => { + const { getCreateCaseUrl, navigateToCreateCase } = useCreateCaseNavigation(); + const navigateToCreateCaseClick = useCallback( + (e) => { + e.preventDefault(); + navigateToCreateCase(); + }, + [navigateToCreateCase] + ); + return ( + + + {actionsErrors[0].description} : <>} + titleTooltip={!isEmpty(actionsErrors) ? actionsErrors[0].title : ''} + /> + + + + {i18n.CREATE_TITLE} + + + + ); +}; diff --git a/x-pack/plugins/cases/public/components/all_cases/selector_modal/index.test.tsx b/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.test.tsx similarity index 83% rename from x-pack/plugins/cases/public/components/all_cases/selector_modal/index.test.tsx rename to x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.test.tsx index 2b34fd8b86e89..fb062fe101db5 100644 --- a/x-pack/plugins/cases/public/components/all_cases/selector_modal/index.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.test.tsx @@ -10,24 +10,21 @@ import { mount } from 'enzyme'; import { AllCasesSelectorModal } from '.'; import { TestProviders } from '../../../common/mock'; -import { AllCasesGeneric } from '../all_cases_generic'; +import { AllCasesList } from '../all_cases_list'; import { SECURITY_SOLUTION_OWNER } from '../../../../common'; jest.mock('../../../methods'); -jest.mock('../all_cases_generic'); +jest.mock('../all_cases_list'); + const onRowClick = jest.fn(); -const createCaseNavigation = { href: '', onClick: jest.fn() }; const defaultProps = { - createCaseNavigation, onRowClick, - userCanCrud: true, - owner: [SECURITY_SOLUTION_OWNER], }; const updateCase = jest.fn(); describe('AllCasesSelectorModal', () => { beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); }); it('renders', () => { @@ -66,19 +63,19 @@ describe('AllCasesSelectorModal', () => { hiddenStatuses: [], updateCase, }; + mount( ); + // @ts-ignore idk what this mock style is but it works ¯\_(ツ)_/¯ - expect(AllCasesGeneric.type.mock.calls[0][0]).toEqual( + expect(AllCasesList.type.mock.calls[0][0]).toEqual( expect.objectContaining({ alertData: fullProps.alertData, - createCaseNavigation, hiddenStatuses: fullProps.hiddenStatuses, isSelectorView: true, - userCanCrud: fullProps.userCanCrud, updateCase, }) ); diff --git a/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.tsx b/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.tsx new file mode 100644 index 0000000000000..227dd88c6f5a2 --- /dev/null +++ b/x-pack/plugins/cases/public/components/all_cases/selector_modal/all_cases_selector_modal.tsx @@ -0,0 +1,83 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState, useCallback } from 'react'; +import { + EuiButton, + EuiModal, + EuiModalBody, + EuiModalFooter, + EuiModalHeader, + EuiModalHeaderTitle, +} from '@elastic/eui'; +import styled from 'styled-components'; +import { + Case, + CaseStatusWithAllStatus, + CommentRequestAlertType, + SubCase, +} from '../../../../common'; +import * as i18n from '../../../common/translations'; +import { AllCasesList } from '../all_cases_list'; +export interface AllCasesSelectorModalProps { + alertData?: Omit; + hiddenStatuses?: CaseStatusWithAllStatus[]; + onRowClick: (theCase?: Case | SubCase) => void; + updateCase?: (newCase: Case) => void; + onClose?: () => void; +} + +const Modal = styled(EuiModal)` + ${({ theme }) => ` + width: ${theme.eui.euiBreakpoints.l}; + max-width: ${theme.eui.euiBreakpoints.l}; + `} +`; + +export const AllCasesSelectorModal = React.memo( + ({ alertData, hiddenStatuses, onRowClick, updateCase, onClose }) => { + const [isModalOpen, setIsModalOpen] = useState(true); + const closeModal = useCallback(() => { + if (onClose) { + onClose(); + } + setIsModalOpen(false); + }, [onClose]); + + const onClick = useCallback( + (theCase?: Case | SubCase) => { + closeModal(); + onRowClick(theCase); + }, + [closeModal, onRowClick] + ); + + return isModalOpen ? ( + + + {i18n.SELECT_CASE_TITLE} + + + + + + + {i18n.CANCEL} + + + + ) : null; + } +); + +AllCasesSelectorModal.displayName = 'AllCasesSelectorModal'; diff --git a/x-pack/plugins/cases/public/components/all_cases/selector_modal/index.tsx b/x-pack/plugins/cases/public/components/all_cases/selector_modal/index.tsx index 7356764802550..77e8ebc1a8071 100644 --- a/x-pack/plugins/cases/public/components/all_cases/selector_modal/index.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/selector_modal/index.tsx @@ -4,103 +4,9 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { AllCasesSelectorModal, AllCasesSelectorModalProps } from './all_cases_selector_modal'; -import React, { useState, useCallback } from 'react'; -import { - EuiButton, - EuiModal, - EuiModalBody, - EuiModalFooter, - EuiModalHeader, - EuiModalHeaderTitle, -} from '@elastic/eui'; -import styled from 'styled-components'; -import { - Case, - CaseStatusWithAllStatus, - CommentRequestAlertType, - SubCase, -} from '../../../../common'; -import { CasesNavigation } from '../../links'; -import * as i18n from '../../../common/translations'; -import { AllCasesGeneric } from '../all_cases_generic'; -import { Owner } from '../../../types'; -import { OwnerProvider } from '../../owner_context'; - -export interface AllCasesSelectorModalProps extends Owner { - alertData?: Omit; - createCaseNavigation: CasesNavigation; - hiddenStatuses?: CaseStatusWithAllStatus[]; - onRowClick: (theCase?: Case | SubCase) => void; - updateCase?: (newCase: Case) => void; - userCanCrud: boolean; - onClose?: () => void; -} - -const Modal = styled(EuiModal)` - ${({ theme }) => ` - width: ${theme.eui.euiBreakpoints.l}; - max-width: ${theme.eui.euiBreakpoints.l}; - `} -`; - -const AllCasesSelectorModalComponent: React.FC = ({ - alertData, - createCaseNavigation, - hiddenStatuses, - onRowClick, - updateCase, - userCanCrud, - onClose, -}) => { - const [isModalOpen, setIsModalOpen] = useState(true); - const closeModal = useCallback(() => { - if (onClose) { - onClose(); - } - setIsModalOpen(false); - }, [onClose]); - const onClick = useCallback( - (theCase?: Case | SubCase) => { - closeModal(); - onRowClick(theCase); - }, - [closeModal, onRowClick] - ); - return isModalOpen ? ( - - - {i18n.SELECT_CASE_TITLE} - - - - - - - {i18n.CANCEL} - - - - ) : null; -}; - -export const AllCasesSelectorModal: React.FC = React.memo((props) => { - return ( - - - - ); -}); - -AllCasesSelectorModal.displayName = 'AllCasesSelectorModal'; - +export type { AllCasesSelectorModalProps }; +export { AllCasesSelectorModal }; // eslint-disable-next-line import/no-default-export export { AllCasesSelectorModal as default }; diff --git a/x-pack/plugins/cases/public/components/all_cases/table.tsx b/x-pack/plugins/cases/public/components/all_cases/table.tsx index 3f80fc8f0d7c4..40d61007f9056 100644 --- a/x-pack/plugins/cases/public/components/all_cases/table.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/table.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FunctionComponent, MutableRefObject } from 'react'; +import React, { FunctionComponent, MutableRefObject, useCallback } from 'react'; import { EuiEmptyPrompt, EuiLoadingContent, @@ -17,16 +17,16 @@ import classnames from 'classnames'; import styled from 'styled-components'; import { CasesTableUtilityBar } from './utility_bar'; -import { CasesNavigation, LinkButton } from '../links'; +import { LinkButton } from '../links'; import { AllCases, Case, FilterOptions } from '../../../common'; import * as i18n from './translations'; +import { useCreateCaseNavigation } from '../../common/navigation'; interface CasesTableProps { columns: EuiBasicTableProps['columns']; // CasesColumns[]; - createCaseNavigation: CasesNavigation; data: AllCases; filterOptions: FilterOptions; - goToCreateCase: (e: React.MouseEvent) => void; + goToCreateCase?: () => void; handleIsLoading: (a: boolean) => void; isCasesLoading: boolean; isCommentUpdating: boolean; @@ -76,7 +76,6 @@ const Div = styled.div` export const CasesTable: FunctionComponent = ({ columns, - createCaseNavigation, data, filterOptions, goToCreateCase, @@ -96,8 +95,21 @@ export const CasesTable: FunctionComponent = ({ tableRef, tableRowProps, userCanCrud, -}) => - isCasesLoading && isDataEmpty ? ( +}) => { + const { getCreateCaseUrl, navigateToCreateCase } = useCreateCaseNavigation(); + const navigateToCreateCaseClick = useCallback( + (ev) => { + ev.preventDefault(); + if (goToCreateCase != null) { + goToCreateCase(); + } else { + navigateToCreateCase(); + } + }, + [goToCreateCase, navigateToCreateCase] + ); + + return isCasesLoading && isDataEmpty ? (
@@ -131,8 +143,8 @@ export const CasesTable: FunctionComponent = ({ isDisabled={!userCanCrud} fill size="s" - onClick={goToCreateCase} - href={createCaseNavigation.href} + onClick={navigateToCreateCaseClick} + href={getCreateCaseUrl()} iconType="plusInCircle" data-test-subj="cases-table-add-case" > @@ -151,3 +163,4 @@ export const CasesTable: FunctionComponent = ({ />
); +}; diff --git a/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx b/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx index 20892ce8e9c5d..f71009a37b747 100644 --- a/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/table_filters.test.tsx @@ -34,7 +34,7 @@ const props = { describe('CasesTableFilters ', () => { beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); (useGetTags as jest.Mock).mockReturnValue({ tags: ['coke', 'pepsi'], fetchTags }); (useGetReporters as jest.Mock).mockReturnValue({ reporters: ['casetester'], diff --git a/x-pack/plugins/cases/public/components/all_cases/utility_bar.tsx b/x-pack/plugins/cases/public/components/all_cases/utility_bar.tsx index a2b4c14c0278a..26430482bc067 100644 --- a/x-pack/plugins/cases/public/components/all_cases/utility_bar.tsx +++ b/x-pack/plugins/cases/public/components/all_cases/utility_bar.tsx @@ -141,7 +141,12 @@ export const CasesTableUtilityBar: FunctionComponent = ({ )} - + {i18n.REFRESH} diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/translations.ts b/x-pack/plugins/cases/public/components/app/index.tsx similarity index 54% rename from x-pack/plugins/observability/public/components/app/cases/callout/translations.ts rename to x-pack/plugins/cases/public/components/app/index.tsx index 20bb57daf5841..0ac336adb94a9 100644 --- a/x-pack/plugins/observability/public/components/app/cases/callout/translations.ts +++ b/x-pack/plugins/cases/public/components/app/index.tsx @@ -5,11 +5,9 @@ * 2.0. */ -import { i18n } from '@kbn/i18n'; +import { CasesRoutes } from './routes'; +import { CasesRoutesProps } from './types'; -export const DISMISS_CALLOUT = i18n.translate( - 'xpack.observability.cases.dismissErrorsPushServiceCallOutTitle', - { - defaultMessage: 'Dismiss', - } -); +export type CasesProps = CasesRoutesProps; +// eslint-disable-next-line import/no-default-export +export { CasesRoutes as default }; diff --git a/x-pack/plugins/cases/public/components/app/routes.test.tsx b/x-pack/plugins/cases/public/components/app/routes.test.tsx new file mode 100644 index 0000000000000..69410327af1ef --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/routes.test.tsx @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +// eslint-disable-next-line @kbn/eslint/module_migration +import { MemoryRouterProps } from 'react-router'; +import { render, screen } from '@testing-library/react'; +import { MemoryRouter } from 'react-router-dom'; +import { TestProviders } from '../../common/mock'; +import { CasesRoutes } from './routes'; + +jest.mock('../all_cases', () => ({ + AllCases: () =>
{'All cases'}
, +})); + +jest.mock('../case_view', () => ({ + CaseView: () =>
{'Case view'}
, +})); + +jest.mock('../create', () => ({ + CreateCase: () =>
{'Create case'}
, +})); + +jest.mock('../configure_cases', () => ({ + ConfigureCases: () =>
{'Configure cases'}
, +})); + +const getCaseViewPaths = () => [ + '/cases/test-id', + '/cases/test-id/comment-id', + '/cases/test-id/sub-cases/sub-case-id', + '/cases/test-id/sub-cases/sub-case-id/comment-id', +]; + +const renderWithRouter = ( + initialEntries: MemoryRouterProps['initialEntries'] = ['/cases'], + userCanCrud = true +) => { + return render( + + + [false, {}]} /> + + + ); +}; + +describe('Cases routes', () => { + describe('All cases', () => { + it('navigates to the all cases page', () => { + renderWithRouter(); + expect(screen.getByText('All cases')).toBeInTheDocument(); + }); + + // User has read only privileges + it('user can navigate to the all cases page with userCanCrud = false', () => { + renderWithRouter(['/cases'], false); + expect(screen.getByText('All cases')).toBeInTheDocument(); + }); + }); + + describe('Case view', () => { + it.each(getCaseViewPaths())('navigates to the cases view page for path: %s', (path: string) => { + renderWithRouter([path]); + expect(screen.getByText('Case view')).toBeInTheDocument(); + // User has read only privileges + }); + + it.each(getCaseViewPaths())( + 'user can navigate to the cases view page with userCanCrud = false and path: %s', + (path: string) => { + renderWithRouter([path], false); + expect(screen.getByText('Case view')).toBeInTheDocument(); + } + ); + }); + + describe('Create case', () => { + it('navigates to the create case page', () => { + renderWithRouter(['/cases/create']); + expect(screen.getByText('Create case')).toBeInTheDocument(); + }); + + it('shows the no privileges page if userCanCrud = false', () => { + renderWithRouter(['/cases/create'], false); + expect(screen.getByText('Privileges required')).toBeInTheDocument(); + }); + }); + + describe('Configure cases', () => { + it('navigates to the configure cases page', () => { + renderWithRouter(['/cases/configure']); + expect(screen.getByText('Configure cases')).toBeInTheDocument(); + }); + + it('shows the no privileges page if userCanCrud = false', () => { + renderWithRouter(['/cases/configure'], false); + expect(screen.getByText('Privileges required')).toBeInTheDocument(); + }); + }); +}); diff --git a/x-pack/plugins/cases/public/components/app/routes.tsx b/x-pack/plugins/cases/public/components/app/routes.tsx new file mode 100644 index 0000000000000..bd4450baaf3fb --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/routes.tsx @@ -0,0 +1,106 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useCallback } from 'react'; +import { Redirect, Route, Switch } from 'react-router-dom'; +import { AllCases } from '../all_cases'; +import { CaseView } from '../case_view'; +import { CreateCase } from '../create'; +import { ConfigureCases } from '../configure_cases'; +import { CasesRoutesProps } from './types'; +import { useCasesContext } from '../cases_context/use_cases_context'; +import { + getCasesConfigurePath, + getCreateCasePath, + getCaseViewPath, + getCaseViewWithCommentPath, + getSubCaseViewPath, + getSubCaseViewWithCommentPath, + useAllCasesNavigation, + useCaseViewNavigation, +} from '../../common/navigation'; +import { NoPrivilegesPage } from '../no_privileges'; +import * as i18n from './translations'; +import { useReadonlyHeader } from './use_readonly_header'; + +const CasesRoutesComponent: React.FC = ({ + disableAlerts, + onComponentInitialized, + actionsNavigation, + ruleDetailsNavigation, + showAlertDetails, + useFetchAlertData, + refreshRef, + hideSyncAlerts, + timelineIntegration, +}) => { + const { basePath, userCanCrud } = useCasesContext(); + const { navigateToAllCases } = useAllCasesNavigation(); + const { navigateToCaseView } = useCaseViewNavigation(); + useReadonlyHeader(); + + const onCreateCaseSuccess = useCallback( + async ({ id }) => navigateToCaseView({ detailName: id }), + [navigateToCaseView] + ); + + return ( + + + + + + + {userCanCrud ? ( + + ) : ( + + )} + + + + {userCanCrud ? ( + + ) : ( + + )} + + + + + + + + + + + ); +}; + +export const CasesRoutes = React.memo(CasesRoutesComponent); diff --git a/x-pack/plugins/cases/public/components/app/translations.ts b/x-pack/plugins/cases/public/components/app/translations.ts new file mode 100644 index 0000000000000..6796f0e03aa77 --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/translations.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const NO_PRIVILEGES_MSG = (pageName: string) => + i18n.translate('xpack.cases.noPrivileges.message', { + values: { pageName }, + defaultMessage: + 'To view {pageName} page, you must update privileges. For more information, contact your Kibana administrator.', + }); + +export const NO_PRIVILEGES_TITLE = i18n.translate('xpack.cases.noPrivileges.title', { + defaultMessage: 'Privileges required', +}); + +export const NO_PRIVILEGES_BUTTON = i18n.translate('xpack.cases.noPrivileges.button', { + defaultMessage: 'Back to Cases', +}); + +export const CREATE_CASE_PAGE_NAME = i18n.translate('xpack.cases.createCase', { + defaultMessage: 'Create Case', +}); + +export const CONFIGURE_CASES_PAGE_NAME = i18n.translate('xpack.cases.configureCases', { + defaultMessage: 'Configure Cases', +}); + +export const READ_ONLY_BADGE_TEXT = i18n.translate('xpack.cases.badge.readOnly.text', { + defaultMessage: 'Read only', +}); + +export const READ_ONLY_BADGE_TOOLTIP = i18n.translate('xpack.cases.badge.readOnly.tooltip', { + defaultMessage: 'Unable to create or edit cases', +}); diff --git a/x-pack/plugins/cases/public/components/app/types.ts b/x-pack/plugins/cases/public/components/app/types.ts new file mode 100644 index 0000000000000..943cf5fcad96d --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/types.ts @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { MutableRefObject } from 'react'; +import { Ecs, CaseViewRefreshPropInterface } from '../../../common'; +import { CasesNavigation } from '../links'; +import { CasesTimelineIntegration } from '../timeline_context'; + +export interface CasesRoutesProps { + disableAlerts?: boolean; + onComponentInitialized?: () => void; + actionsNavigation?: CasesNavigation; + ruleDetailsNavigation?: CasesNavigation; + showAlertDetails?: (alertId: string, index: string) => void; + useFetchAlertData: (alertIds: string[]) => [boolean, Record]; + /** + * A React `Ref` that Exposes data refresh callbacks. + * **NOTE**: Do not hold on to the `.current` object, as it could become stale + */ + refreshRef?: MutableRefObject; + hideSyncAlerts?: boolean; + timelineIntegration?: CasesTimelineIntegration; +} diff --git a/x-pack/plugins/cases/public/components/app/use_readonly_header.test.tsx b/x-pack/plugins/cases/public/components/app/use_readonly_header.test.tsx new file mode 100644 index 0000000000000..31c9b46ad7ea5 --- /dev/null +++ b/x-pack/plugins/cases/public/components/app/use_readonly_header.test.tsx @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { renderHook } from '@testing-library/react-hooks'; + +import { useKibana } from '../../common/lib/kibana'; +import { TestProviders } from '../../common/mock'; +import { useReadonlyHeader } from './use_readonly_header'; + +const useKibanaMock = useKibana as jest.Mocked; +jest.mock('../../common/lib/kibana'); + +const mockedSetBadge = jest.fn(); + +describe('CaseContainerComponent', () => { + beforeEach(() => { + jest.clearAllMocks(); + useKibanaMock().services.chrome.setBadge = mockedSetBadge; + }); + + it('does not display the readonly glasses badge when the user has write permissions', () => { + renderHook(() => useReadonlyHeader(), { + wrapper: ({ children }) => {children}, + }); + + expect(mockedSetBadge).not.toBeCalled(); + }); + + it('displays the readonly glasses badge read permissions but not write', () => { + renderHook(() => useReadonlyHeader(), { + wrapper: ({ children }) => {children}, + }); + + expect(mockedSetBadge).toBeCalledTimes(1); + }); +}); diff --git a/x-pack/plugins/observability/public/hooks/use_readonly_header.tsx b/x-pack/plugins/cases/public/components/app/use_readonly_header.ts similarity index 71% rename from x-pack/plugins/observability/public/hooks/use_readonly_header.tsx rename to x-pack/plugins/cases/public/components/app/use_readonly_header.ts index 4d8779e1ea150..eb522dffe4c7b 100644 --- a/x-pack/plugins/observability/public/hooks/use_readonly_header.tsx +++ b/x-pack/plugins/cases/public/components/app/use_readonly_header.ts @@ -7,27 +7,27 @@ import { useCallback, useEffect } from 'react'; -import * as i18n from '../components/app/cases/translations'; -import { useGetUserCasesPermissions } from '../hooks/use_get_user_cases_permissions'; -import { useKibana } from '../utils/kibana_react'; +import * as i18n from './translations'; +import { useKibana } from '../../common/lib/kibana'; +import { useCasesContext } from '../cases_context/use_cases_context'; /** * This component places a read-only icon badge in the header if user only has read permissions */ export function useReadonlyHeader() { - const userPermissions = useGetUserCasesPermissions(); + const { userCanCrud } = useCasesContext(); const chrome = useKibana().services.chrome; // if the user is read only then display the glasses badge in the global navigation header const setBadge = useCallback(() => { - if (userPermissions != null && !userPermissions.crud && userPermissions.read) { + if (!userCanCrud) { chrome.setBadge({ text: i18n.READ_ONLY_BADGE_TEXT, tooltip: i18n.READ_ONLY_BADGE_TOOLTIP, iconType: 'glasses', }); } - }, [chrome, userPermissions]); + }, [chrome, userCanCrud]); useEffect(() => { setBadge(); diff --git a/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx b/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx index f6d52583d436f..ada2b61c816db 100644 --- a/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx +++ b/x-pack/plugins/cases/public/components/case_action_bar/actions.tsx @@ -13,22 +13,18 @@ import { ConfirmDeleteCaseModal } from '../confirm_delete_case'; import { PropertyActions } from '../property_actions'; import { Case } from '../../../common'; import { CaseService } from '../../containers/use_get_case_user_actions'; -import { CasesNavigation } from '../links'; +import { useAllCasesNavigation } from '../../common/navigation'; interface CaseViewActions { - allCasesNavigation: CasesNavigation; caseData: Case; currentExternalIncident: CaseService | null; } -const ActionsComponent: React.FC = ({ - allCasesNavigation, - caseData, - currentExternalIncident, -}) => { +const ActionsComponent: React.FC = ({ caseData, currentExternalIncident }) => { // Delete case const { handleToggleModal, handleOnDeleteConfirm, isDeleted, isDisplayConfirmDeleteModal } = useDeleteCases(); + const { navigateToAllCases } = useAllCasesNavigation(); const propertyActions = useMemo( () => [ @@ -51,7 +47,7 @@ const ActionsComponent: React.FC = ({ ); if (isDeleted) { - allCasesNavigation.onClick(null); + navigateToAllCases(); return null; } return ( diff --git a/x-pack/plugins/cases/public/components/case_action_bar/index.tsx b/x-pack/plugins/cases/public/components/case_action_bar/index.tsx index 8149fd6591645..e95410c1967b6 100644 --- a/x-pack/plugins/cases/public/components/case_action_bar/index.tsx +++ b/x-pack/plugins/cases/public/components/case_action_bar/index.tsx @@ -25,7 +25,6 @@ import { StatusContextMenu } from './status_context_menu'; import { getStatusDate, getStatusTitle } from './helpers'; import { SyncAlertsSwitch } from '../case_settings/sync_alerts_switch'; import { OnUpdateFields } from '../case_view'; -import { CasesNavigation } from '../links'; const MyDescriptionList = styled(EuiDescriptionList)` ${({ theme }) => css` @@ -41,7 +40,6 @@ const MyDescriptionList = styled(EuiDescriptionList)` `; interface CaseActionBarProps { - allCasesNavigation: CasesNavigation; caseData: Case; currentExternalIncident: CaseService | null; userCanCrud: boolean; @@ -51,7 +49,6 @@ interface CaseActionBarProps { onUpdateField: (args: OnUpdateFields) => void; } const CaseActionBarComponent: React.FC = ({ - allCasesNavigation, caseData, currentExternalIncident, disableAlerting, @@ -157,11 +154,7 @@ const CaseActionBarComponent: React.FC = ({ {userCanCrud && ( - + )} diff --git a/x-pack/plugins/cases/public/components/case_view/does_not_exist.tsx b/x-pack/plugins/cases/public/components/case_view/does_not_exist.tsx index 627c90a45aa66..0073d2a491b74 100644 --- a/x-pack/plugins/cases/public/components/case_view/does_not_exist.tsx +++ b/x-pack/plugins/cases/public/components/case_view/does_not_exist.tsx @@ -9,24 +9,29 @@ import React from 'react'; import { EuiEmptyPrompt, EuiButton } from '@elastic/eui'; import * as i18n from './translations'; -import { CasesNavigation } from '../links'; +import { useAllCasesNavigation } from '../../common/navigation'; interface Props { - allCasesNavigation: CasesNavigation; caseId: string; } -export const DoesNotExist = ({ allCasesNavigation, caseId }: Props) => ( - {i18n.DOES_NOT_EXIST_TITLE}} - titleSize="xs" - body={

{i18n.DOES_NOT_EXIST_DESCRIPTION(caseId)}

} - actions={ - - {i18n.DOES_NOT_EXIST_BUTTON} - - } - /> -); +export const DoesNotExist = React.memo(({ caseId }: Props) => { + const { navigateToAllCases } = useAllCasesNavigation(); + + return ( + {i18n.DOES_NOT_EXIST_TITLE}} + titleSize="xs" + body={

{i18n.DOES_NOT_EXIST_DESCRIPTION(caseId)}

} + actions={ + + {i18n.DOES_NOT_EXIST_BUTTON} + + } + /> + ); +}); + +DoesNotExist.displayName = 'DoesNotExist'; diff --git a/x-pack/plugins/cases/public/components/case_view/index.test.tsx b/x-pack/plugins/cases/public/components/case_view/index.test.tsx index dcc244116fbcb..aaf4928703896 100644 --- a/x-pack/plugins/cases/public/components/case_view/index.test.tsx +++ b/x-pack/plugins/cases/public/components/case_view/index.test.tsx @@ -7,6 +7,7 @@ import React from 'react'; import { mount } from 'enzyme'; +import { act, waitFor } from '@testing-library/react'; import '../../common/mock/match_media'; import { CaseComponent, CaseComponentProps, CaseView, CaseViewProps } from '.'; @@ -22,7 +23,6 @@ import { SpacesApi } from '../../../../spaces/public'; import { useUpdateCase } from '../../containers/use_update_case'; import { useGetCase } from '../../containers/use_get_case'; import { useGetCaseUserActions } from '../../containers/use_get_case_user_actions'; -import { waitFor } from '@testing-library/react'; import { useConnectors } from '../../containers/configure/use_connectors'; import { connectorsMock } from '../../containers/configure/mock'; @@ -30,10 +30,6 @@ import { usePostPushToService } from '../../containers/use_post_push_to_service' import { CaseType, ConnectorTypes } from '../../../common'; import { useKibana } from '../../common/lib/kibana'; -const mockId = basicCase.id; -jest.mock('react-router-dom', () => ({ - useParams: () => ({ detailName: mockId }), -})); jest.mock('../../containers/use_update_case'); jest.mock('../../containers/use_get_case_user_actions'); jest.mock('../../containers/use_get_case'); @@ -41,13 +37,13 @@ jest.mock('../../containers/configure/use_connectors'); jest.mock('../../containers/use_post_push_to_service'); jest.mock('../user_action_tree/user_action_timestamp'); jest.mock('../../common/lib/kibana'); +jest.mock('../../common/navigation/hooks'); const useUpdateCaseMock = useUpdateCase as jest.Mock; const useGetCaseUserActionsMock = useGetCaseUserActions as jest.Mock; const useConnectorsMock = useConnectors as jest.Mock; const usePostPushToServiceMock = usePostPushToService as jest.Mock; -const useKibanaMock = useKibana as jest.Mocked; -const onCaseDataSuccessMock = jest.fn(); +const useKibanaMock = useKibana as jest.MockedFunction; const spacesUiApiMock = { redirectLegacyUrl: jest.fn().mockResolvedValue(undefined), @@ -84,20 +80,7 @@ const alertsHit = [ ]; export const caseProps: CaseComponentProps = { - allCasesNavigation: { - href: 'all-cases-href', - onClick: jest.fn(), - }, - caseDetailsNavigation: { - href: 'case-details-href', - onClick: jest.fn(), - }, caseId: basicCase.id, - configureCasesNavigation: { - href: 'configure-cases-href', - onClick: jest.fn(), - }, - getCaseDetailHrefWithCommentId: jest.fn(), onComponentInitialized: jest.fn(), actionsNavigation: { href: jest.fn(), @@ -115,7 +98,6 @@ export const caseProps: CaseComponentProps = { 'alert-id-2': alertsHit[1], }, ], - userCanCrud: true, caseData: { ...basicCase, comments: [...basicCase.comments, alertComment], @@ -128,7 +110,6 @@ export const caseProps: CaseComponentProps = { }, fetchCase: jest.fn(), updateCase: jest.fn(), - onCaseDataSuccess: onCaseDataSuccessMock, }; export const caseClosedProps: CaseComponentProps = { @@ -373,15 +354,6 @@ describe('CaseView ', () => { await waitFor(() => { expect(updateObject.updateKey).toEqual('title'); expect(updateObject.updateValue).toEqual(newTitle); - expect(updateObject.onSuccess).toBeDefined(); - }); - - updateObject.onSuccess(); // simulate the request has succeed - await waitFor(() => { - expect(onCaseDataSuccessMock).toHaveBeenCalledWith({ - ...caseProps.caseData, - title: newTitle, - }); }); }); @@ -472,7 +444,7 @@ describe('CaseView ', () => { expect(wrapper.find('[data-test-subj="case-view-title"]').exists()).toBeTruthy(); expect(spacesUiApiMock.components.getLegacyUrlConflict).not.toHaveBeenCalled(); expect(spacesUiApiMock.redirectLegacyUrl).toHaveBeenCalledWith( - `cases/${resolveAliasId}`, + `/cases/${resolveAliasId}`, 'case' ); }); @@ -498,7 +470,7 @@ describe('CaseView ', () => { objectNoun: 'case', currentObjectId: defaultGetCase.data.id, otherObjectId: resolveAliasId, - otherObjectPath: `cases/${resolveAliasId}`, + otherObjectPath: `/cases/${resolveAliasId}`, }); }); }); @@ -749,54 +721,41 @@ describe('CaseView ', () => { describe('when a `refreshRef` prop is provided', () => { let refreshRef: CaseViewProps['refreshRef']; - beforeEach(() => { + beforeEach(async () => { (useGetCase as jest.Mock).mockImplementation(() => defaultGetCase); refreshRef = React.createRef(); - mount( - - - - ); + await act(async () => { + mount( + + + + ); + }); }); it('should set it with expected refresh interface', async () => { - expect(refreshRef!.current).toEqual({ - refreshUserActionsAndComments: expect.any(Function), - refreshCase: expect.any(Function), + await waitFor(() => { + expect(refreshRef!.current).toEqual({ + refreshUserActionsAndComments: expect.any(Function), + refreshCase: expect.any(Function), + }); }); }); it('should refresh actions and comments', async () => { await waitFor(() => { refreshRef!.current!.refreshUserActionsAndComments(); - expect(fetchCaseUserActions).toBeCalledWith('1234', 'resilient-2', undefined); + expect(fetchCaseUserActions).toBeCalledWith('basic-case-id', 'resilient-2', undefined); expect(fetchCase).toBeCalledWith(true); }); }); diff --git a/x-pack/plugins/cases/public/components/case_view/index.tsx b/x-pack/plugins/cases/public/components/case_view/index.tsx index 75ac42ecd24ee..a67be6e44298d 100644 --- a/x-pack/plugins/cases/public/components/case_view/index.tsx +++ b/x-pack/plugins/cases/public/components/case_view/index.tsx @@ -37,24 +37,25 @@ import * as i18n from './translations'; import { CasesTimelineIntegration, CasesTimelineIntegrationProvider } from '../timeline_context'; import { useTimelineContext } from '../timeline_context/use_timeline_context'; import { CasesNavigation } from '../links'; -import { OwnerProvider } from '../owner_context'; import { getConnectorById } from '../utils'; import { DoesNotExist } from './does_not_exist'; import { useKibana } from '../../common/lib/kibana'; +import { useCasesContext } from '../cases_context/use_cases_context'; +import { + generateCaseViewPath, + useCaseViewNavigation, + useCaseViewParams, +} from '../../common/navigation'; +import { useCasesTitleBreadcrumbs } from '../use_breadcrumbs'; export interface CaseViewComponentProps { - allCasesNavigation: CasesNavigation; - caseDetailsNavigation: CasesNavigation; caseId: string; - configureCasesNavigation: CasesNavigation; - getCaseDetailHrefWithCommentId: (commentId: string) => string; + subCaseId?: string; onComponentInitialized?: () => void; actionsNavigation?: CasesNavigation; ruleDetailsNavigation?: CasesNavigation; showAlertDetails?: (alertId: string, index: string) => void; - subCaseId?: string; useFetchAlertData: (alertIds: string[]) => [boolean, Record]; - userCanCrud: boolean; /** * A React `Ref` that Exposes data refresh callbacks. * **NOTE**: Do not hold on to the `.current` object, as it could become stale @@ -63,8 +64,7 @@ export interface CaseViewComponentProps { hideSyncAlerts?: boolean; } -export interface CaseViewProps extends CaseViewComponentProps { - onCaseDataSuccess?: (data: Case) => void; +export interface CaseViewProps extends Omit { timelineIntegration?: CasesTimelineIntegration; } @@ -83,19 +83,13 @@ export interface CaseComponentProps extends CaseViewComponentProps { fetchCase: UseGetCase['fetchCase']; caseData: Case; updateCase: (newCase: Case) => void; - onCaseDataSuccess?: (newCase: Case) => void; } export const CaseComponent = React.memo( ({ - allCasesNavigation, caseData, - caseDetailsNavigation, caseId, - configureCasesNavigation, - getCaseDetailHrefWithCommentId, fetchCase, - onCaseDataSuccess, onComponentInitialized, actionsNavigation, ruleDetailsNavigation, @@ -103,10 +97,13 @@ export const CaseComponent = React.memo( subCaseId, updateCase, useFetchAlertData, - userCanCrud, refreshRef, hideSyncAlerts = false, }) => { + const { userCanCrud } = useCasesContext(); + const { getCaseViewUrl } = useCaseViewNavigation(); + useCasesTitleBreadcrumbs(caseData.title); + const [initLoadingData, setInitLoadingData] = useState(true); const init = useRef(true); const timelineUi = useTimelineContext()?.ui; @@ -321,13 +318,8 @@ export const CaseComponent = React.memo( onUpdateField({ key: 'title', value: newTitle, - onSuccess: () => { - if (onCaseDataSuccess) { - onCaseDataSuccess({ ...caseData, title: newTitle }); - } - }, }), - [caseData, onUpdateField, onCaseDataSuccess] + [onUpdateField] ); const changeStatus = useCallback( @@ -347,9 +339,9 @@ export const CaseComponent = React.memo( const emailContent = useMemo( () => ({ subject: i18n.EMAIL_SUBJECT(caseData.title), - body: i18n.EMAIL_BODY(caseDetailsNavigation.href), + body: i18n.EMAIL_BODY(getCaseViewUrl({ detailName: caseId, subCaseId })), }), - [caseDetailsNavigation.href, caseData.title] + [caseData.title, getCaseViewUrl, caseId, subCaseId] ); useEffect(() => { @@ -358,16 +350,6 @@ export const CaseComponent = React.memo( } }, [initLoadingData, isLoadingUserActions]); - const backOptions = useMemo( - () => ({ - href: allCasesNavigation.href, - text: i18n.BACK_TO_ALL, - dataTestSubj: 'backToCases', - onClick: allCasesNavigation.onClick, - }), - [allCasesNavigation] - ); - const onShowAlertDetails = useCallback( (alertId: string, index: string) => { if (showAlertDetails) { @@ -390,7 +372,7 @@ export const CaseComponent = React.memo( return ( <> ( title={caseData.title} > ( {!initLoadingData && ( <> ( ( export const CaseView = React.memo( ({ - allCasesNavigation, - caseDetailsNavigation, - caseId, - configureCasesNavigation, - getCaseDetailHrefWithCommentId, - onCaseDataSuccess, onComponentInitialized, actionsNavigation, ruleDetailsNavigation, showAlertDetails, - subCaseId, timelineIntegration, useFetchAlertData, - userCanCrud, refreshRef, hideSyncAlerts, }: CaseViewProps) => { + const { spaces: spacesApi } = useKibana().services; + const { detailName: caseId, subCaseId } = useCaseViewParams(); + const { basePath } = useCasesContext(); const { data, resolveOutcome, resolveAliasId, isLoading, isError, fetchCase, updateCase } = useGetCase(caseId, subCaseId); - const { spaces: spacesApi, http } = useKibana().services; - - useEffect(() => { - if (onCaseDataSuccess && data) { - onCaseDataSuccess(data); - } - }, [data, onCaseDataSuccess]); useEffect(() => { if (spacesApi && resolveOutcome === 'aliasMatch' && resolveAliasId != null) { - // CAUTION: the path /cases/:detailName is working in both Observability (/app/observability/cases/:detailName) and - // Security Solutions (/app/security/cases/:detailName) plugins. This will need to be changed if this component is loaded - // under any another path, passing a path builder function by props from every parent plugin. - const newPath = http.basePath.prepend( - `cases/${resolveAliasId}${window.location.search}${window.location.hash}` - ); + const newPath = `${basePath}${generateCaseViewPath({ detailName: resolveAliasId })}${ + window.location.search + }${window.location.hash}`; spacesApi.ui.redirectLegacyUrl(newPath, i18n.CASE); } - }, [resolveOutcome, resolveAliasId, spacesApi, http]); + }, [resolveOutcome, resolveAliasId, basePath, spacesApi]); const getLegacyUrlConflictCallout = useCallback(() => { // This function returns a callout component *if* we have encountered a "legacy URL conflict" scenario if (data && spacesApi && resolveOutcome === 'conflict' && resolveAliasId != null) { // We have resolved to one object, but another object has a legacy URL alias associated with this ID/page. We should display a // callout with a warning for the user, and provide a way for them to navigate to the other object. - const otherObjectId = resolveAliasId; // This is always defined if outcome === 'conflict' - // CAUTION: the path /cases/:detailName is working in both Observability (/app/observability/cases/:detailName) and - // Security Solutions (/app/security/cases/:detailName) plugins. This will need to be changed if this component is loaded - // under any another path, passing a path builder function by props from every parent plugin. - const otherObjectPath = http.basePath.prepend( - `cases/${otherObjectId}${window.location.search}${window.location.hash}` - ); + const otherObjectPath = `${basePath}${generateCaseViewPath({ + detailName: resolveAliasId, + })}${window.location.search}${window.location.hash}`; + return spacesApi.ui.components.getLegacyUrlConflict({ objectNoun: i18n.CASE, currentObjectId: data.id, - otherObjectId, + otherObjectId: resolveAliasId, otherObjectPath, }); } return null; - }, [data, resolveAliasId, resolveOutcome, spacesApi, http.basePath]); + }, [data, resolveAliasId, resolveOutcome, basePath, spacesApi]); return isError ? ( - + ) : isLoading ? ( ) : ( data && ( - - {getLegacyUrlConflictCallout()} - - + {getLegacyUrlConflictCallout()} + ) ); diff --git a/x-pack/plugins/cases/public/components/cases_context/index.tsx b/x-pack/plugins/cases/public/components/cases_context/index.tsx new file mode 100644 index 0000000000000..932ce69372110 --- /dev/null +++ b/x-pack/plugins/cases/public/components/cases_context/index.tsx @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { useState, useEffect } from 'react'; +import { DEFAULT_BASE_PATH } from '../../common/navigation'; +import { useApplication } from './use_application'; + +export interface CasesContextValue { + owner: string[]; + appId: string; + appTitle: string; + userCanCrud: boolean; + basePath: string; +} + +export const CasesContext = React.createContext(undefined); + +export interface CasesContextProps + extends Omit { + basePath?: string; +} + +export interface CasesContextStateValue + extends Omit { + appId?: string; + appTitle?: string; + userCanCrud?: boolean; +} + +export const CasesProvider: React.FC<{ value: CasesContextProps }> = ({ + children, + value: { owner, userCanCrud, basePath = DEFAULT_BASE_PATH }, +}) => { + const { appId, appTitle } = useApplication(); + const [value, setValue] = useState({ + owner, + userCanCrud, + basePath, + }); + + /** + * `userCanCrud` prop may change by the parent plugin. + * `appId` and `appTitle` are dynamically retrieved from kibana context. + * We need to update the state if any of these values change, the rest of props are never updated. + */ + useEffect(() => { + if (appId && appTitle) { + setValue((prev) => ({ + ...prev, + appId, + appTitle, + userCanCrud, + })); + } + }, [appTitle, appId, userCanCrud]); + + return isCasesContextValue(value) ? ( + {children} + ) : null; +}; + +function isCasesContextValue(value: CasesContextStateValue): value is CasesContextValue { + return value.appId != null && value.appTitle != null && value.userCanCrud != null; +} diff --git a/x-pack/plugins/cases/public/components/cases_context/use_application.tsx b/x-pack/plugins/cases/public/components/cases_context/use_application.tsx new file mode 100644 index 0000000000000..86cfded0bc9d0 --- /dev/null +++ b/x-pack/plugins/cases/public/components/cases_context/use_application.tsx @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import useObservable from 'react-use/lib/useObservable'; +import { useKibana } from '../../common/lib/kibana'; + +interface UseApplicationReturn { + appId: string | undefined; + appTitle: string | undefined; +} + +export const useApplication = (): UseApplicationReturn => { + const { currentAppId$, applications$ } = useKibana().services.application; + // retrieve the most recent value from the BehaviorSubject + const appId = useObservable(currentAppId$); + const applications = useObservable(applications$); + + const appTitle = appId ? applications?.get(appId)?.category?.label : undefined; + + return { appId, appTitle }; +}; diff --git a/x-pack/plugins/cases/public/components/owner_context/use_owner_context.ts b/x-pack/plugins/cases/public/components/cases_context/use_cases_context.ts similarity index 50% rename from x-pack/plugins/cases/public/components/owner_context/use_owner_context.ts rename to x-pack/plugins/cases/public/components/cases_context/use_cases_context.ts index a443df1809315..2244145f71111 100644 --- a/x-pack/plugins/cases/public/components/owner_context/use_owner_context.ts +++ b/x-pack/plugins/cases/public/components/cases_context/use_cases_context.ts @@ -6,16 +6,14 @@ */ import { useContext } from 'react'; -import { OwnerContext } from '.'; +import { CasesContext } from '.'; -export const useOwnerContext = () => { - const ownerContext = useContext(OwnerContext); +export const useCasesContext = () => { + const casesContext = useContext(CasesContext); - if (ownerContext.length === 0) { - throw new Error( - 'useOwnerContext must be used within an OwnerProvider and not be an empty array' - ); + if (!casesContext) { + throw new Error('useCasesContext must be used within a CasesProvider and have a defined value'); } - return ownerContext; + return casesContext; }; diff --git a/x-pack/plugins/cases/public/components/configure_cases/button.tsx b/x-pack/plugins/cases/public/components/configure_cases/button.tsx deleted file mode 100644 index 8b3c78ee3aede..0000000000000 --- a/x-pack/plugins/cases/public/components/configure_cases/button.tsx +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { EuiToolTip } from '@elastic/eui'; -import React, { memo, useMemo } from 'react'; -import { CasesNavigation, LinkButton } from '../links'; - -// TODO: Potentially move into links component? -export interface ConfigureCaseButtonProps { - configureCasesNavigation: CasesNavigation; - isDisabled: boolean; - label: string; - msgTooltip: JSX.Element; - showToolTip: boolean; - titleTooltip: string; -} - -const ConfigureCaseButtonComponent: React.FC = ({ - configureCasesNavigation: { href, onClick }, - isDisabled, - label, - msgTooltip, - showToolTip, - titleTooltip, -}: ConfigureCaseButtonProps) => { - const configureCaseButton = useMemo( - () => ( - - {label} - - ), - [label, isDisabled, onClick, href] - ); - - return showToolTip ? ( - {msgTooltip}

} - data-test-subj="configure-case-tooltip" - > - {configureCaseButton} -
- ) : ( - <>{configureCaseButton} - ); -}; - -export const ConfigureCaseButton = memo(ConfigureCaseButtonComponent); diff --git a/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx b/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx index 8843bed9a2b43..55983df8f347d 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx +++ b/x-pack/plugins/cases/public/components/configure_cases/index.test.tsx @@ -26,7 +26,7 @@ import { useConnectorsResponse, useActionTypesResponse, } from './__mock__'; -import { ConnectorTypes, SECURITY_SOLUTION_OWNER } from '../../../common'; +import { ConnectorTypes } from '../../../common'; import { actionTypeRegistryMock } from '../../../../triggers_actions_ui/public/application/action_type_registry.mock'; jest.mock('../../common/lib/kibana'); @@ -67,7 +67,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => ({ ...useConnectorsResponse, connectors: [] })); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -120,7 +120,7 @@ describe('ConfigureCases', () => { })); useConnectorsMock.mockImplementation(() => ({ ...useConnectorsResponse, connectors: [] })); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -167,7 +167,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => useConnectorsResponse); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -189,12 +189,10 @@ describe('ConfigureCases', () => { }); test('it disables correctly when the user cannot crud', () => { - const newWrapper = mount( - , - { - wrappingComponent: TestProviders, - } - ); + const newWrapper = mount(, { + wrappingComponent: TestProviders, + wrappingComponentProps: { userCanCrud: false }, + }); expect(newWrapper.find('button[data-test-subj="dropdown-connectors"]').prop('disabled')).toBe( true @@ -254,7 +252,7 @@ describe('ConfigureCases', () => { })); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -289,7 +287,7 @@ describe('ConfigureCases', () => { useActionTypesMock.mockImplementation(() => ({ ...useActionTypesResponse, loading: true })); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); expect(wrapper.find(Connectors).prop('isLoading')).toBe(true); @@ -313,7 +311,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => useConnectorsResponse); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -356,7 +354,7 @@ describe('ConfigureCases', () => { ...useConnectorsResponse, })); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -400,7 +398,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => useConnectorsResponse); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -444,7 +442,7 @@ describe('ConfigureCases', () => { }, })); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); @@ -491,7 +489,7 @@ describe('ConfigureCases', () => { useConnectorsMock.mockImplementation(() => useConnectorsResponse); useGetUrlSearchMock.mockImplementation(() => searchURL); - wrapper = mount(, { + wrapper = mount(, { wrappingComponent: TestProviders, }); }); @@ -540,7 +538,7 @@ describe('ConfigureCases', () => { }); test('it show the add flyout when pressing the add connector button', async () => { - const wrapper = mount(, { + const wrapper = mount(, { wrappingComponent: TestProviders, }); @@ -591,7 +589,7 @@ describe('ConfigureCases', () => { .fn() .mockReturnValue(true); - const wrapper = mount(, { + const wrapper = mount(, { wrappingComponent: TestProviders, }); wrapper diff --git a/x-pack/plugins/cases/public/components/configure_cases/index.tsx b/x-pack/plugins/cases/public/components/configure_cases/index.tsx index cf7962f08db93..8053804c2f779 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/index.tsx +++ b/x-pack/plugins/cases/public/components/configure_cases/index.tsx @@ -22,14 +22,16 @@ import { ClosureType } from '../../containers/configure/types'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { ActionConnectorTableItem } from '../../../../triggers_actions_ui/public/types'; -import { SectionWrapper } from '../wrappers'; +import { SectionWrapper, ContentWrapper, WhitePageWrapper } from '../wrappers'; import { Connectors } from './connectors'; import { ClosureOptions } from './closure_options'; import { getNoneConnector, normalizeActionConnector, normalizeCaseConnector } from './utils'; import * as i18n from './translations'; -import { Owner } from '../../types'; -import { OwnerProvider } from '../owner_context'; import { getConnectorById } from '../utils'; +import { HeaderPage } from '../header_page'; +import { useCasesContext } from '../cases_context/use_cases_context'; +import { useCasesBreadcrumbs } from '../use_breadcrumbs'; +import { CasesDeepLinkId } from '../../common/navigation'; const FormWrapper = styled.div` ${({ theme }) => css` @@ -49,12 +51,10 @@ const FormWrapper = styled.div` `} `; -export interface ConfigureCasesProps extends Owner { - userCanCrud: boolean; -} - -const ConfigureCasesComponent: React.FC> = ({ userCanCrud }) => { +export const ConfigureCases: React.FC = React.memo(() => { + const { userCanCrud } = useCasesContext(); const { triggersActionsUi } = useKibana().services; + useCasesBreadcrumbs(CasesDeepLinkId.casesConfigure); const [connectorIsValid, setConnectorIsValid] = useState(true); const [addFlyoutVisible, setAddFlyoutVisibility] = useState(false); @@ -185,64 +185,64 @@ const ConfigureCasesComponent: React.FC> = ({ ); return ( - - {!connectorIsValid && ( - - - - {i18n.LINK_APPROPRIATE_LICENSE} - - ), - }} - /> - - - )} - - - - - - - {ConnectorAddFlyout} - {ConnectorEditFlyout} - - ); -}; - -export const ConfigureCases: React.FC = React.memo((props) => { - return ( - - - + <> + + + + + {!connectorIsValid && ( + + + + {i18n.LINK_APPROPRIATE_LICENSE} + + ), + }} + /> + + + )} + + + + + + + {ConnectorAddFlyout} + {ConnectorEditFlyout} + + + + ); }); ConfigureCases.displayName = 'ConfigureCases'; - -// eslint-disable-next-line import/no-default-export -export default ConfigureCases; diff --git a/x-pack/plugins/cases/public/components/configure_cases/translations.ts b/x-pack/plugins/cases/public/components/configure_cases/translations.ts index 26b45a8c3a250..8b682064a0274 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/translations.ts +++ b/x-pack/plugins/cases/public/components/configure_cases/translations.ts @@ -176,3 +176,7 @@ export const DEPRECATED_TOOLTIP_CONTENT = i18n.translate( defaultMessage: 'This connector is deprecated. Update it, or create a new one.', } ); + +export const CONFIGURE_CASES_PAGE_TITLE = i18n.translate('xpack.cases.configureCases.headerTitle', { + defaultMessage: 'Configure cases', +}); diff --git a/x-pack/plugins/cases/public/components/connectors/case/alert_fields.tsx b/x-pack/plugins/cases/public/components/connectors/case/alert_fields.tsx index 8fb34e0cdcbf5..a330ae339b338 100644 --- a/x-pack/plugins/cases/public/components/connectors/case/alert_fields.tsx +++ b/x-pack/plugins/cases/public/components/connectors/case/alert_fields.tsx @@ -12,13 +12,12 @@ import styled from 'styled-components'; import { EuiCallOut, EuiSpacer } from '@elastic/eui'; import { ActionParamsProps } from '../../../../../triggers_actions_ui/public/types'; -import { CommentType, SECURITY_SOLUTION_OWNER } from '../../../../common'; +import { CommentType } from '../../../../common'; import { CaseActionParams } from './types'; import { ExistingCase } from './existing_case'; import * as i18n from './translations'; -import { OwnerProvider } from '../../owner_context'; const Container = styled.div` ${({ theme }) => ` @@ -96,9 +95,7 @@ const CaseParamsFields: React.FunctionComponent - - - +

{i18n.CASE_CONNECTOR_CALL_OUT_MSG}

diff --git a/x-pack/plugins/cases/public/components/connectors/case/existing_case.tsx b/x-pack/plugins/cases/public/components/connectors/case/existing_case.tsx index 8f2d9162a5e93..33366e11f556a 100644 --- a/x-pack/plugins/cases/public/components/connectors/case/existing_case.tsx +++ b/x-pack/plugins/cases/public/components/connectors/case/existing_case.tsx @@ -6,7 +6,6 @@ */ import React, { memo, useMemo, useCallback } from 'react'; -import { CaseType } from '../../../../common'; import { useGetCases, DEFAULT_QUERY_PARAMS, @@ -43,7 +42,6 @@ const ExistingCaseComponent: React.FC = ({ onCaseChanged, sel const { modal, openModal } = useCreateCaseModal({ onCaseCreated, - caseType: CaseType.collection, // FUTURE DEVELOPER // We are making the assumption that this component is only used in rules creation // that's why we want to hide ServiceNow SIR diff --git a/x-pack/plugins/cases/public/components/create/connector.test.tsx b/x-pack/plugins/cases/public/components/create/connector.test.tsx index ea7435c2cba45..b48e8ef82ac0e 100644 --- a/x-pack/plugins/cases/public/components/create/connector.test.tsx +++ b/x-pack/plugins/cases/public/components/create/connector.test.tsx @@ -21,22 +21,10 @@ import { schema, FormProps } from './schema'; import { TestProviders } from '../../common/mock'; import { useCaseConfigure } from '../../containers/configure/use_configure'; import { useCaseConfigureResponse } from '../configure_cases/__mock__'; -import { triggersActionsUiMock } from '../../../../triggers_actions_ui/public/mocks'; import { useKibana } from '../../common/lib/kibana'; import { registerConnectorsToMockActionRegistry } from '../../common/mock/register_connectors'; -const mockTriggersActionsUiService = triggersActionsUiMock.createStart(); - -jest.mock('../../common/lib/kibana', () => ({ - useKibana: () => ({ - services: { - notifications: {}, - http: {}, - triggersActionsUi: mockTriggersActionsUiService, - }, - }), -})); - +jest.mock('../../common/lib/kibana'); jest.mock('../connectors/resilient/use_get_incident_types'); jest.mock('../connectors/resilient/use_get_severity'); jest.mock('../connectors/servicenow/use_get_choices'); @@ -93,7 +81,7 @@ describe('Connector', () => { }); beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); useGetIncidentTypesMock.mockReturnValue(useGetIncidentTypesResponse); useGetSeverityMock.mockReturnValue(useGetSeverityResponse); useGetChoicesMock.mockReturnValue(useGetChoicesResponse); diff --git a/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx new file mode 100644 index 0000000000000..87a409fba9a0f --- /dev/null +++ b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.test.tsx @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { act, render } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; + +import { CreateCaseFlyout } from './create_case_flyout'; +import { TestProviders } from '../../../common/mock'; + +jest.mock('../../../common/lib/kibana'); + +const onClose = jest.fn(); +const onSuccess = jest.fn(); +const defaultProps = { + onClose, + onSuccess, + owner: 'securitySolution', +}; + +describe('CreateCaseFlyout', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it('renders', async () => { + const { getByTestId } = render( + + + + ); + await act(async () => { + expect(getByTestId('create-case-flyout')).toBeTruthy(); + }); + }); + + it('Closing flyout calls onCloseCaseModal', async () => { + const { getByTestId } = render( + + + + ); + await act(async () => { + userEvent.click(getByTestId('euiFlyoutCloseButton')); + }); + expect(onClose).toBeCalled(); + }); +}); diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.tsx b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.tsx similarity index 55% rename from x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.tsx rename to x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.tsx index c91c50c61fcf8..5723f78649b5c 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.tsx +++ b/x-pack/plugins/cases/public/components/create/flyout/create_case_flyout.tsx @@ -5,28 +5,25 @@ * 2.0. */ -import React, { memo, useMemo } from 'react'; +import React from 'react'; import styled, { createGlobalStyle } from 'styled-components'; import { EuiFlyout, EuiFlyoutHeader, EuiTitle, EuiFlyoutBody } from '@elastic/eui'; import * as i18n from '../translations'; -import { useKibana } from '../../../../../../../../../src/plugins/kibana_react/public'; -import { Case } from '../../../../../../../cases/common'; -import type { TimelinesStartServices } from '../../../../../types'; +import { Case } from '../../../../common'; +import { CreateCaseForm } from '../form'; -export interface CreateCaseModalProps { +export interface CreateCaseFlyoutProps { afterCaseCreated?: (theCase: Case) => Promise; - onCloseFlyout: () => void; + onClose: () => void; onSuccess: (theCase: Case) => Promise; - useInsertTimeline?: Function; - owner: string; disableAlerts?: boolean; } const StyledFlyout = styled(EuiFlyout)` ${({ theme }) => ` - z-index: ${theme.eui.euiZLevel5}; - `} + z-index: ${theme.eui.euiZModal}; + `} `; const maskOverlayClassName = 'create-case-flyout-mask-overlay'; @@ -49,47 +46,31 @@ const GlobalStyle = createGlobalStyle<{ theme: { eui: { euiZLevel5: number } } } // bottom bar gonna hide the submit button. const StyledEuiFlyoutBody = styled(EuiFlyoutBody)` ${({ theme }) => ` - && .euiFlyoutBody__overflow { - overflow-y: auto; - overflow-x: hidden; - } - - && .euiFlyoutBody__overflowContent { - display: block; - padding: ${theme.eui.paddingSizes.l} ${theme.eui.paddingSizes.l} 70px; - height: auto; - } - `} + && .euiFlyoutBody__overflow { + overflow-y: auto; + overflow-x: hidden; + } + + && .euiFlyoutBody__overflowContent { + display: block; + padding: ${theme.eui.paddingSizes.l} ${theme.eui.paddingSizes.l} 70px; + height: auto; + } + `} `; const FormWrapper = styled.div` width: 100%; `; -const CreateCaseFlyoutComponent: React.FC = ({ - afterCaseCreated, - onCloseFlyout, - onSuccess, - owner, - disableAlerts, -}) => { - const { cases } = useKibana().services; - const createCaseProps = useMemo(() => { - return { - afterCaseCreated, - onCancel: onCloseFlyout, - onSuccess, - withSteps: false, - owner: [owner], - disableAlerts, - }; - }, [afterCaseCreated, onCloseFlyout, onSuccess, owner, disableAlerts]); - return ( +export const CreateCaseFlyout = React.memo( + ({ afterCaseCreated, onClose, onSuccess, disableAlerts }) => ( <> @@ -98,13 +79,19 @@ const CreateCaseFlyoutComponent: React.FC = ({ - {cases.getCreateCase(createCaseProps)} + + + - ); -}; - -export const CreateCaseFlyout = memo(CreateCaseFlyoutComponent); + ) +); CreateCaseFlyout.displayName = 'CreateCaseFlyout'; diff --git a/x-pack/plugins/cases/public/components/create/flyout/index.tsx b/x-pack/plugins/cases/public/components/create/flyout/index.tsx new file mode 100644 index 0000000000000..5b8aef47d1544 --- /dev/null +++ b/x-pack/plugins/cases/public/components/create/flyout/index.tsx @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { CreateCaseFlyout, CreateCaseFlyoutProps } from './create_case_flyout'; + +export type { CreateCaseFlyoutProps }; +export { CreateCaseFlyout }; +// eslint-disable-next-line import/no-default-export +export { CreateCaseFlyout as default }; diff --git a/x-pack/plugins/cases/public/components/create/form.test.tsx b/x-pack/plugins/cases/public/components/create/form.test.tsx index c9d087a08ba2c..06b07ebd396a8 100644 --- a/x-pack/plugins/cases/public/components/create/form.test.tsx +++ b/x-pack/plugins/cases/public/components/create/form.test.tsx @@ -14,11 +14,10 @@ import { useGetTags } from '../../containers/use_get_tags'; import { useConnectors } from '../../containers/configure/use_connectors'; import { connectorsMock } from '../../containers/mock'; import { schema, FormProps } from './schema'; -import { CreateCaseForm } from './form'; -import { OwnerProvider } from '../owner_context'; -import { SECURITY_SOLUTION_OWNER } from '../../../common'; +import { CreateCaseForm, CreateCaseFormFields, CreateCaseFormProps } from './form'; import { useCaseConfigure } from '../../containers/configure/use_configure'; import { useCaseConfigureResponse } from '../configure_cases/__mock__'; +import { TestProviders } from '../../common/mock'; jest.mock('../../containers/use_get_tags'); jest.mock('../../containers/configure/use_connectors'); @@ -38,6 +37,11 @@ const initialCaseValue: FormProps = { syncAlerts: true, }; +const casesFormProps: CreateCaseFormProps = { + onCancel: jest.fn(), + onSuccess: jest.fn(), +}; + describe('CreateCaseForm', () => { let globalForm: FormHook; const MockHookWrapperComponent: React.FC = ({ children }) => { @@ -50,9 +54,9 @@ describe('CreateCaseForm', () => { globalForm = form; return ( - +
{children}
-
+ ); }; @@ -66,7 +70,7 @@ describe('CreateCaseForm', () => { it('it renders with steps', async () => { const wrapper = mount( - + ); @@ -76,7 +80,7 @@ describe('CreateCaseForm', () => { it('it renders without steps', async () => { const wrapper = mount( - + ); @@ -86,7 +90,7 @@ describe('CreateCaseForm', () => { it('it renders all form fields', async () => { const wrapper = mount( - + ); @@ -97,21 +101,40 @@ describe('CreateCaseForm', () => { expect(wrapper.find(`[data-test-subj="caseConnectors"]`).exists()).toBeTruthy(); }); - it('should render spinner when loading', async () => { - const wrapper = mount( + it('hides the sync alerts toggle', () => { + const { queryByText } = render( - + ); - await act(async () => { - globalForm.setFieldValue('title', 'title'); - globalForm.setFieldValue('description', 'description'); - globalForm.submit(); - // For some weird reason this is needed to pass the test. - // It does not do anything useful - await wrapper.find(`[data-test-subj="caseTitle"]`); - await wrapper.update(); + expect(queryByText('Sync alert')).not.toBeInTheDocument(); + }); + + describe('CreateCaseFormFields', () => { + it('should render spinner when loading', async () => { + const wrapper = mount( + + + + ); + + await act(async () => { + globalForm.setFieldValue('title', 'title'); + globalForm.setFieldValue('description', 'description'); + globalForm.submit(); + // For some weird reason this is needed to pass the test. + // It does not do anything useful + await wrapper.find(`[data-test-subj="caseTitle"]`); + await wrapper.update(); + }); + await waitFor(() => { expect( wrapper.find(`[data-test-subj="create-case-loading-spinner"]`).exists() @@ -119,14 +142,4 @@ describe('CreateCaseForm', () => { }); }); }); - - it('hides the sync alerts toggle', () => { - const { queryByText } = render( - - - - ); - - expect(queryByText('Sync alert')).not.toBeInTheDocument(); - }); }); diff --git a/x-pack/plugins/cases/public/components/create/form.tsx b/x-pack/plugins/cases/public/components/create/form.tsx index d9b9287534601..6105fdbb2aef3 100644 --- a/x-pack/plugins/cases/public/components/create/form.tsx +++ b/x-pack/plugins/cases/public/components/create/form.tsx @@ -6,18 +6,30 @@ */ import React, { useMemo } from 'react'; -import { EuiLoadingSpinner, EuiSteps } from '@elastic/eui'; +import { + EuiButtonEmpty, + EuiFlexGroup, + EuiFlexItem, + EuiLoadingSpinner, + EuiSteps, +} from '@elastic/eui'; import styled, { css } from 'styled-components'; import { useFormContext } from '../../common/shared_imports'; import { Title } from './title'; -import { Description } from './description'; +import { Description, fieldName as descriptionFieldName } from './description'; import { Tags } from './tags'; import { Connector } from './connector'; import * as i18n from './translations'; import { SyncAlertsToggle } from './sync_alerts_toggle'; -import { ActionConnector } from '../../../common'; +import { ActionConnector, CaseType } from '../../../common'; +import { Case } from '../../containers/types'; +import { CasesTimelineIntegration, CasesTimelineIntegrationProvider } from '../timeline_context'; +import { InsertTimeline } from '../insert_timeline'; +import { UsePostComment } from '../../containers/use_post_comment'; +import { SubmitCaseButton } from './submit_button'; +import { FormContext } from './form_context'; interface ContainerProps { big?: boolean; @@ -36,22 +48,28 @@ const MySpinner = styled(EuiLoadingSpinner)` z-index: 99; `; -interface Props { - connectors?: ActionConnector[]; - disableAlerts?: boolean; - hideConnectorServiceNowSir?: boolean; - isLoadingConnectors?: boolean; - withSteps?: boolean; +export interface CreateCaseFormFieldsProps { + connectors: ActionConnector[]; + isLoadingConnectors: boolean; + disableAlerts: boolean; + hideConnectorServiceNowSir: boolean; + withSteps: boolean; } +export interface CreateCaseFormProps + extends Pick< + Partial, + 'disableAlerts' | 'hideConnectorServiceNowSir' | 'withSteps' + > { + onCancel: () => void; + onSuccess: (theCase: Case) => Promise; + afterCaseCreated?: (theCase: Case, postComment: UsePostComment['postComment']) => Promise; + caseType?: CaseType; + timelineIntegration?: CasesTimelineIntegration; +} + const empty: ActionConnector[] = []; -export const CreateCaseForm: React.FC = React.memo( - ({ - connectors = empty, - disableAlerts = false, - isLoadingConnectors = false, - hideConnectorServiceNowSir = false, - withSteps = true, - }) => { +export const CreateCaseFormFields: React.FC = React.memo( + ({ connectors, disableAlerts, isLoadingConnectors, hideConnectorServiceNowSir, withSteps }) => { const { isSubmitting } = useFormContext(); const firstStep = useMemo( () => ({ @@ -126,4 +144,61 @@ export const CreateCaseForm: React.FC = React.memo( } ); +CreateCaseFormFields.displayName = 'CreateCaseFormFields'; + +export const CreateCaseForm: React.FC = React.memo( + ({ + disableAlerts = false, + hideConnectorServiceNowSir = false, + withSteps = true, + afterCaseCreated, + caseType, + onCancel, + onSuccess, + timelineIntegration, + }) => ( + + + + + + + + {i18n.CANCEL} + + + + + + + + + + + ) +); + CreateCaseForm.displayName = 'CreateCaseForm'; diff --git a/x-pack/plugins/cases/public/components/create/form_context.test.tsx b/x-pack/plugins/cases/public/components/create/form_context.test.tsx index b55542499fbe4..863ecd92ac4ba 100644 --- a/x-pack/plugins/cases/public/components/create/form_context.test.tsx +++ b/x-pack/plugins/cases/public/components/create/form_context.test.tsx @@ -10,7 +10,7 @@ import { mount, ReactWrapper } from 'enzyme'; import { act, waitFor } from '@testing-library/react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; -import { ConnectorTypes, SECURITY_SOLUTION_OWNER } from '../../../common'; +import { ConnectorTypes } from '../../../common'; import { useKibana } from '../../common/lib/kibana'; import { TestProviders } from '../../common/mock'; import { usePostCase } from '../../containers/use_post_case'; @@ -36,7 +36,7 @@ import { useGetChoicesResponse, } from './mock'; import { FormContext } from './form_context'; -import { CreateCaseForm } from './form'; +import { CreateCaseFormFields, CreateCaseFormFieldsProps } from './form'; import { SubmitCaseButton } from './submit_button'; import { usePostPushToService } from '../../containers/use_post_push_to_service'; @@ -77,10 +77,12 @@ const defaultPostCase = { postCase, }; -const defaultCreateCaseForm = { +const defaultCreateCaseForm: CreateCaseFormFieldsProps = { isLoadingConnectors: false, connectors: [], - owner: SECURITY_SOLUTION_OWNER, + disableAlerts: false, + withSteps: true, + hideConnectorServiceNowSir: false, }; const defaultPostPushToService = { @@ -150,12 +152,14 @@ describe('Create case', () => { const wrapper = mount( - + ); - + await act(async () => { + wrapper.update(); + }); expect(wrapper.find(`[data-test-subj="caseTitle"]`).first().exists()).toBeTruthy(); expect(wrapper.find(`[data-test-subj="caseDescription"]`).first().exists()).toBeTruthy(); expect(wrapper.find(`[data-test-subj="caseTags"]`).first().exists()).toBeTruthy(); @@ -174,7 +178,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -192,7 +196,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -224,7 +228,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -248,7 +252,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -282,7 +286,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -332,7 +336,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -357,7 +361,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -424,7 +428,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -494,7 +498,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -584,7 +588,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -682,7 +686,7 @@ describe('Create case', () => { const wrapper = mount( - + @@ -719,7 +723,7 @@ describe('Create case', () => { const wrapper = mount( - + diff --git a/x-pack/plugins/cases/public/components/create/form_context.tsx b/x-pack/plugins/cases/public/components/create/form_context.tsx index 03d8ec56fb0ae..10bfa2e78acc4 100644 --- a/x-pack/plugins/cases/public/components/create/form_context.tsx +++ b/x-pack/plugins/cases/public/components/create/form_context.tsx @@ -16,7 +16,7 @@ import { useConnectors } from '../../containers/configure/use_connectors'; import { Case } from '../../containers/types'; import { CaseType } from '../../../common'; import { UsePostComment, usePostComment } from '../../containers/use_post_comment'; -import { useOwnerContext } from '../owner_context/use_owner_context'; +import { useCasesContext } from '../cases_context/use_cases_context'; import { getConnectorById } from '../utils'; const initialCaseValue: FormProps = { @@ -46,7 +46,7 @@ export const FormContext: React.FC = ({ syncAlertsDefaultValue = true, }) => { const { connectors, loading: isLoadingConnectors } = useConnectors(); - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const { postCase } = usePostCase(); const { postComment } = usePostComment(); const { pushCaseToExternalService } = usePostPushToService(); diff --git a/x-pack/plugins/cases/public/components/create/index.test.tsx b/x-pack/plugins/cases/public/components/create/index.test.tsx index ac405673fb9c9..64935321eabac 100644 --- a/x-pack/plugins/cases/public/components/create/index.test.tsx +++ b/x-pack/plugins/cases/public/components/create/index.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; -import { act, waitFor } from '@testing-library/react'; +import { act } from '@testing-library/react'; import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; import { TestProviders } from '../../common/mock'; @@ -29,7 +29,6 @@ import { useGetFieldsByIssueTypeResponse, } from './mock'; import { CreateCase } from '.'; -import { SECURITY_SOLUTION_OWNER } from '../../../common'; jest.mock('../../containers/api'); jest.mock('../../containers/use_get_tags'); @@ -78,7 +77,7 @@ const defaultProps = { describe('CreateCase case', () => { beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); useConnectorsMock.mockReturnValue(sampleConnectorData); useCaseConfigureMock.mockImplementation(() => useCaseConfigureResponse); useGetIncidentTypesMock.mockReturnValue(useGetIncidentTypesResponse); @@ -94,36 +93,38 @@ describe('CreateCase case', () => { it('it renders', async () => { const wrapper = mount( - + ); - - expect(wrapper.find(`[data-test-subj="create-case-submit"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="create-case-cancel"]`).exists()).toBeTruthy(); + await act(async () => { + expect(wrapper.find(`[data-test-subj="create-case-submit"]`).exists()).toBeTruthy(); + expect(wrapper.find(`[data-test-subj="create-case-cancel"]`).exists()).toBeTruthy(); + }); }); it('should call cancel on cancel click', async () => { const wrapper = mount( - + ); - - wrapper.find(`[data-test-subj="create-case-cancel"]`).first().simulate('click'); + await act(async () => { + wrapper.find(`[data-test-subj="create-case-cancel"]`).first().simulate('click'); + }); expect(defaultProps.onCancel).toHaveBeenCalled(); }); it('should redirect to new case when posting the case', async () => { const wrapper = mount( - + ); - fillForm(wrapper); - wrapper.find(`[data-test-subj="create-case-submit"]`).first().simulate('click'); - await waitFor(() => { - expect(defaultProps.onSuccess).toHaveBeenCalled(); + await act(async () => { + fillForm(wrapper); + wrapper.find(`[data-test-subj="create-case-submit"]`).first().simulate('click'); }); + expect(defaultProps.onSuccess).toHaveBeenCalled(); }); }); diff --git a/x-pack/plugins/cases/public/components/create/index.tsx b/x-pack/plugins/cases/public/components/create/index.tsx index 39f10a89290d8..97a1c1d2e8ff3 100644 --- a/x-pack/plugins/cases/public/components/create/index.tsx +++ b/x-pack/plugins/cases/public/components/create/index.tsx @@ -6,100 +6,49 @@ */ import React from 'react'; -import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; -import styled from 'styled-components'; import { Field, getUseField } from '../../common/shared_imports'; import * as i18n from './translations'; -import { CreateCaseForm } from './form'; -import { FormContext } from './form_context'; -import { SubmitCaseButton } from './submit_button'; -import { Case } from '../../containers/types'; -import { CaseType } from '../../../common'; -import { CasesTimelineIntegration, CasesTimelineIntegrationProvider } from '../timeline_context'; -import { fieldName as descriptionFieldName } from './description'; -import { InsertTimeline } from '../insert_timeline'; -import { UsePostComment } from '../../containers/use_post_comment'; -import { Owner } from '../../types'; -import { OwnerProvider } from '../owner_context'; +import { CreateCaseForm, CreateCaseFormProps } from './form'; +import { HeaderPage } from '../header_page'; +import { useCasesBreadcrumbs } from '../use_breadcrumbs'; +import { CasesDeepLinkId } from '../../common/navigation'; export const CommonUseField = getUseField({ component: Field }); -const Container = styled.div` - ${({ theme }) => ` - margin-top: ${theme.eui.euiSize}; - `} -`; - -export interface CreateCaseProps extends Owner { - afterCaseCreated?: (theCase: Case, postComment: UsePostComment['postComment']) => Promise; - caseType?: CaseType; - disableAlerts?: boolean; - hideConnectorServiceNowSir?: boolean; - onCancel: () => void; - onSuccess: (theCase: Case) => Promise; - timelineIntegration?: CasesTimelineIntegration; - withSteps?: boolean; -} - -const CreateCaseComponent = ({ - afterCaseCreated, - caseType, - hideConnectorServiceNowSir, - disableAlerts, - onCancel, - onSuccess, - timelineIntegration, - withSteps, -}: Omit) => ( - - - - - - - - {i18n.CANCEL} - - - - - - - - - - +export const CreateCase = React.memo( + ({ + afterCaseCreated, + caseType, + hideConnectorServiceNowSir, + disableAlerts, + onCancel, + onSuccess, + timelineIntegration, + withSteps, + }) => { + useCasesBreadcrumbs(CasesDeepLinkId.casesCreate); + + return ( + <> + + + + ); + } ); -export const CreateCase: React.FC = React.memo((props) => ( - - - -)); - CreateCase.displayName = 'CreateCase'; - -// eslint-disable-next-line import/no-default-export -export { CreateCase as default }; diff --git a/x-pack/plugins/cases/public/components/create/tags.test.tsx b/x-pack/plugins/cases/public/components/create/tags.test.tsx index b138a5e651f1a..fbb261b3d0682 100644 --- a/x-pack/plugins/cases/public/components/create/tags.test.tsx +++ b/x-pack/plugins/cases/public/components/create/tags.test.tsx @@ -14,10 +14,11 @@ import { useForm, Form, FormHook } from '../../common/shared_imports'; import { useGetTags } from '../../containers/use_get_tags'; import { Tags } from './tags'; import { schema, FormProps } from './schema'; -import { OwnerProvider } from '../owner_context'; -import { SECURITY_SOLUTION_OWNER } from '../../../common'; +import { TestProviders } from '../../common/mock'; +jest.mock('../../common/lib/kibana'); jest.mock('../../containers/use_get_tags'); + const useGetTagsMock = useGetTags as jest.Mock; describe('Tags', () => { @@ -34,14 +35,14 @@ describe('Tags', () => { globalForm = form; return ( - +
{children}
-
+ ); }; beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); useGetTagsMock.mockReturnValue({ tags: ['test'] }); }); diff --git a/x-pack/plugins/cases/public/components/create/translations.ts b/x-pack/plugins/cases/public/components/create/translations.ts index 7e0f7e5a6b9d5..06a4ad02d1fbd 100644 --- a/x-pack/plugins/cases/public/components/create/translations.ts +++ b/x-pack/plugins/cases/public/components/create/translations.ts @@ -9,6 +9,10 @@ import { i18n } from '@kbn/i18n'; export * from '../../common/translations'; +export const CREATE_PAGE_TITLE = i18n.translate('xpack.cases.create.title', { + defaultMessage: 'Create new case', +}); + export const STEP_ONE_TITLE = i18n.translate('xpack.cases.create.stepOneTitle', { defaultMessage: 'Case fields', }); diff --git a/x-pack/plugins/cases/public/components/edit_connector/index.test.tsx b/x-pack/plugins/cases/public/components/edit_connector/index.test.tsx index eec84cdd8d90f..bcc700c543f7e 100644 --- a/x-pack/plugins/cases/public/components/edit_connector/index.test.tsx +++ b/x-pack/plugins/cases/public/components/edit_connector/index.test.tsx @@ -32,10 +32,6 @@ const caseServices = { const defaultProps: EditConnectorProps = { caseData: basicCase, caseServices, - configureCasesNavigation: { - href: 'blah', - onClick: jest.fn(), - }, connectorName: connectorsMock[0].name, connectors: connectorsMock, hasDataToPush: true, diff --git a/x-pack/plugins/cases/public/components/edit_connector/index.tsx b/x-pack/plugins/cases/public/components/edit_connector/index.tsx index 70845f28e1f6b..25cb17cdd8c98 100644 --- a/x-pack/plugins/cases/public/components/edit_connector/index.tsx +++ b/x-pack/plugins/cases/public/components/edit_connector/index.tsx @@ -30,13 +30,11 @@ import { getConnectorFieldsFromUserActions } from './helpers'; import * as i18n from './translations'; import { getConnectorById, getConnectorsFormValidators } from '../utils'; import { usePushToService } from '../use_push_to_service'; -import { CasesNavigation } from '../links'; import { CaseServices } from '../../containers/use_get_case_user_actions'; export interface EditConnectorProps { caseData: Case; caseServices: CaseServices; - configureCasesNavigation: CasesNavigation; connectorName: string; connectors: ActionConnector[]; hasDataToPush: boolean; @@ -116,7 +114,6 @@ export const EditConnector = React.memo( ({ caseData, caseServices, - configureCasesNavigation, connectorName, connectors, hasDataToPush, @@ -250,7 +247,6 @@ export const EditConnector = React.memo( }); const { pushButton, pushCallouts } = usePushToService({ - configureCasesNavigation, connector: { ...caseData.connector, name: isEmpty(connectorName) ? caseData.connector.name : connectorName, @@ -336,7 +332,7 @@ export const EditConnector = React.memo( = ({ { - const original = jest.requireActual('react-router-dom'); - - return { - ...original, - useHistory: () => ({ - useHistory: jest.fn(), - }), - }; -}); +jest.mock('../../common/navigation/hooks'); describe('HeaderPage', () => { const mount = useMountAppended(); @@ -47,10 +38,7 @@ describe('HeaderPage', () => { test('it renders the back link when provided', () => { const wrapper = mount( - + ); diff --git a/x-pack/plugins/cases/public/components/header_page/index.tsx b/x-pack/plugins/cases/public/components/header_page/index.tsx index c1c463321d86d..073e18cd7d728 100644 --- a/x-pack/plugins/cases/public/components/header_page/index.tsx +++ b/x-pack/plugins/cases/public/components/header_page/index.tsx @@ -5,14 +5,17 @@ * 2.0. */ +import React, { useCallback } from 'react'; import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiProgress } from '@elastic/eui'; -import React from 'react'; import styled, { css } from 'styled-components'; +import { useAllCasesNavigation } from '../../common/navigation'; -import { LinkIcon, LinkIconProps } from '../link_icon'; +import { LinkIcon } from '../link_icon'; import { Subtitle, SubtitleProps } from '../subtitle'; import { Title } from './title'; import { BadgeOptions, TitleProp } from './types'; +import * as i18n from './translations'; + interface HeaderProps { border?: boolean; isLoading?: boolean; @@ -57,17 +60,8 @@ const Badge = styled(EuiBadge)` ` as unknown as typeof EuiBadge; Badge.displayName = 'Badge'; -interface BackOptions { - href: LinkIconProps['href']; - onClick?: (ev: MouseEvent) => void; - text: LinkIconProps['children']; - dataTestSubj?: string; -} - export interface HeaderPageProps extends HeaderProps { - backOptions?: BackOptions; - /** A component to be displayed as the back button. Used only if `backOption` is not defined */ - backComponent?: React.ReactNode; + showBackButton?: boolean; badgeOptions?: BadgeOptions; children?: React.ReactNode; subtitle?: SubtitleProps['items']; @@ -77,8 +71,7 @@ export interface HeaderPageProps extends HeaderProps { } const HeaderPageComponent: React.FC = ({ - backOptions, - backComponent, + showBackButton = false, badgeOptions, border, children, @@ -88,39 +81,51 @@ const HeaderPageComponent: React.FC = ({ title, titleNode, ...rest -}) => ( -
- - - {backOptions && ( - - - {backOptions.text} - - - )} +}) => { + const { getAllCasesUrl, navigateToAllCases } = useAllCasesNavigation(); - {!backOptions && backComponent && <>{backComponent}} + const navigateToAllCasesClick = useCallback( + (e) => { + if (e) { + e.preventDefault(); + } + navigateToAllCases(); + }, + [navigateToAllCases] + ); - {titleNode || } + return ( + <Header border={border} {...rest}> + <EuiFlexGroup alignItems="center"> + <FlexItem> + {showBackButton && ( + <LinkBack> + <LinkIcon + dataTestSubj="backToCases" + onClick={navigateToAllCasesClick} + href={getAllCasesUrl()} + iconType="arrowLeft" + > + {i18n.BACK_TO_ALL} + </LinkIcon> + </LinkBack> + )} - {subtitle && <Subtitle data-test-subj="header-page-subtitle" items={subtitle} />} - {subtitle2 && <Subtitle data-test-subj="header-page-subtitle-2" items={subtitle2} />} - {border && isLoading && <EuiProgress size="xs" color="accent" />} - </FlexItem> + {titleNode || <Title title={title} badgeOptions={badgeOptions} />} - {children && ( - <FlexItem data-test-subj="header-page-supplements" grow={false}> - {children} + {subtitle && <Subtitle data-test-subj="header-page-subtitle" items={subtitle} />} + {subtitle2 && <Subtitle data-test-subj="header-page-subtitle-2" items={subtitle2} />} + {border && isLoading && <EuiProgress size="xs" color="accent" />} </FlexItem> - )} - </EuiFlexGroup> - </Header> -); + + {children && ( + <FlexItem data-test-subj="header-page-supplements" grow={false}> + {children} + </FlexItem> + )} + </EuiFlexGroup> + </Header> + ); +}; export const HeaderPage = React.memo(HeaderPageComponent); diff --git a/x-pack/plugins/cases/public/components/configure_cases/button.test.tsx b/x-pack/plugins/cases/public/components/links/index.test.tsx similarity index 53% rename from x-pack/plugins/cases/public/components/configure_cases/button.test.tsx rename to x-pack/plugins/cases/public/components/links/index.test.tsx index a3f95e60dc2ae..1ca81c1d6b9f6 100644 --- a/x-pack/plugins/cases/public/components/configure_cases/button.test.tsx +++ b/x-pack/plugins/cases/public/components/links/index.test.tsx @@ -7,30 +7,25 @@ import React from 'react'; import { ReactWrapper, mount } from 'enzyme'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import { EuiText } from '@elastic/eui'; import '../../common/mock/match_media'; -import { ConfigureCaseButton, ConfigureCaseButtonProps } from './button'; +import { + ConfigureCaseButton, + ConfigureCaseButtonProps, + CaseDetailsLink, + CaseDetailsLinkProps, +} from '.'; import { TestProviders } from '../../common/mock'; +import { useCaseViewNavigation } from '../../common/navigation/hooks'; -jest.mock('react-router-dom', () => { - const original = jest.requireActual('react-router-dom'); - - return { - ...original, - useHistory: () => ({ - useHistory: jest.fn(), - }), - }; -}); +jest.mock('../../common/navigation/hooks'); describe('Configuration button', () => { let wrapper: ReactWrapper; const props: ConfigureCaseButtonProps = { - configureCasesNavigation: { - href: 'testHref', - onClick: jest.fn(), - }, isDisabled: false, label: 'My label', msgTooltip: <></>, @@ -50,7 +45,7 @@ describe('Configuration button', () => { test('it pass the correct props to the button', () => { expect(wrapper.find('[data-test-subj="configure-case-button"]').first().props()).toMatchObject({ - href: `testHref`, + href: `/app/security/cases/configure`, iconType: 'controlsHorizontal', isDisabled: false, 'aria-label': 'My label', @@ -111,3 +106,60 @@ describe('Configuration button', () => { jest.clearAllMocks(); }); }); + +describe('CaseDetailsLink', () => { + const useCaseViewNavigationMock = useCaseViewNavigation as jest.Mock; + const getCaseViewUrl = jest.fn().mockReturnValue('/cases/test'); + const navigateToCaseView = jest.fn(); + + const props: CaseDetailsLinkProps = { + detailName: 'test detail name', + }; + + beforeEach(() => { + jest.clearAllMocks(); + useCaseViewNavigationMock.mockReturnValue({ getCaseViewUrl, navigateToCaseView }); + }); + + test('it renders', () => { + render(<CaseDetailsLink {...props} />); + expect(screen.getByText('test detail name')).toBeInTheDocument(); + }); + + test('it renders the children instead of the detail name if provided', () => { + render(<CaseDetailsLink {...props}>{'children'}</CaseDetailsLink>); + expect(screen.queryByText('test detail name')).toBeFalsy(); + expect(screen.getByText('children')).toBeInTheDocument(); + }); + + test('it uses the detailName in the aria-label if the title is not provided', () => { + render(<CaseDetailsLink {...props} />); + expect( + screen.getByLabelText(`click to visit case with title ${props.detailName}`) + ).toBeInTheDocument(); + }); + + test('it uses the title in the aria-label if provided', () => { + render(<CaseDetailsLink {...props} title={'my title'} />); + expect(screen.getByText('test detail name')).toBeInTheDocument(); + expect(screen.getByLabelText(`click to visit case with title my title`)).toBeInTheDocument(); + }); + + test('it calls navigateToCaseViewClick on click', () => { + render(<CaseDetailsLink {...props} subCaseId="sub-case-id" />); + userEvent.click(screen.getByText('test detail name')); + expect(navigateToCaseView).toHaveBeenCalledWith({ + detailName: props.detailName, + subCaseId: 'sub-case-id', + }); + }); + + test('it set the href correctly', () => { + render(<CaseDetailsLink {...props} subCaseId="sub-case-id" />); + expect(getCaseViewUrl).toHaveBeenCalledWith({ + detailName: props.detailName, + subCaseId: 'sub-case-id', + }); + expect(screen.getByRole('link')).toHaveAttribute('href', '/cases/test'); + }); +}); diff --git a/x-pack/plugins/cases/public/components/links/index.tsx b/x-pack/plugins/cases/public/components/links/index.tsx index 63032c6d76a29..45c7db3e896f9 100644 --- a/x-pack/plugins/cases/public/components/links/index.tsx +++ b/x-pack/plugins/cases/public/components/links/index.tsx @@ -10,10 +10,12 @@ import { EuiButtonProps, EuiLink, EuiLinkProps, + EuiToolTip, PropsForAnchor, PropsForButton, } from '@elastic/eui'; -import React, { useCallback } from 'react'; +import React, { useCallback, useMemo } from 'react'; +import { useCaseViewNavigation, useConfigureCasesNavigation } from '../../common/navigation'; import * as i18n from './translations'; export interface CasesNavigation<T = React.MouseEvent | MouseEvent | null, K = null> { @@ -30,36 +32,32 @@ export const LinkAnchor: React.FC<EuiLinkProps> = ({ children, ...props }) => ( <EuiLink {...props}>{children}</EuiLink> ); -export interface CaseDetailsHrefSchema { - detailName: string; - search?: string; - subCaseId?: string; -} - -const CaseDetailsLinkComponent: React.FC<{ +export interface CaseDetailsLinkProps { children?: React.ReactNode; detailName: string; - caseDetailsNavigation: CasesNavigation<CaseDetailsHrefSchema, 'configurable'>; subCaseId?: string; title?: string; -}> = ({ caseDetailsNavigation, children, detailName, subCaseId, title }) => { - const { href: getHref, onClick } = caseDetailsNavigation; - const goToCaseDetails = useCallback( +} + +const CaseDetailsLinkComponent: React.FC<CaseDetailsLinkProps> = ({ + children, + detailName, + subCaseId, + title, +}) => { + const { getCaseViewUrl, navigateToCaseView } = useCaseViewNavigation(); + const navigateToCaseViewClick = useCallback( (ev) => { - if (onClick) { - ev.preventDefault(); - onClick({ detailName, subCaseId }, ev); - } + ev.preventDefault(); + navigateToCaseView({ detailName, subCaseId }); }, - [detailName, onClick, subCaseId] + [navigateToCaseView, detailName, subCaseId] ); - const href = getHref({ detailName, subCaseId }); - return ( <LinkAnchor - onClick={goToCaseDetails} - href={href} + onClick={navigateToCaseViewClick} + href={getCaseViewUrl({ detailName, subCaseId })} data-test-subj="case-details-link" aria-label={i18n.CASE_DETAILS_LINK_ARIA(title ?? detailName)} > @@ -69,3 +67,61 @@ const CaseDetailsLinkComponent: React.FC<{ }; export const CaseDetailsLink = React.memo(CaseDetailsLinkComponent); CaseDetailsLink.displayName = 'CaseDetailsLink'; + +export interface ConfigureCaseButtonProps { + isDisabled: boolean; + label: string; + msgTooltip: JSX.Element; + showToolTip: boolean; + titleTooltip: string; +} + +const ConfigureCaseButtonComponent: React.FC<ConfigureCaseButtonProps> = ({ + isDisabled, + label, + msgTooltip, + showToolTip, + titleTooltip, +}: ConfigureCaseButtonProps) => { + const { getConfigureCasesUrl, navigateToConfigureCases } = useConfigureCasesNavigation(); + + const navigateToConfigureCasesClick = useCallback( + (e) => { + e.preventDefault(); + navigateToConfigureCases(); + }, + [navigateToConfigureCases] + ); + + const configureCaseButton = useMemo( + () => ( + <LinkButton + onClick={navigateToConfigureCasesClick} + href={getConfigureCasesUrl()} + iconType="controlsHorizontal" + isDisabled={isDisabled} + aria-label={label} + data-test-subj="configure-case-button" + > + {label} + </LinkButton> + ), + [label, isDisabled, navigateToConfigureCasesClick, getConfigureCasesUrl] + ); + + return showToolTip ? ( + <EuiToolTip + position="top" + title={titleTooltip} + content={<p>{msgTooltip}</p>} + data-test-subj="configure-case-tooltip" + > + {configureCaseButton} + </EuiToolTip> + ) : ( + <>{configureCaseButton}</> + ); +}; + +export const ConfigureCaseButton = React.memo(ConfigureCaseButtonComponent); +ConfigureCaseButton.displayName = 'ConfigureCaseButton'; diff --git a/x-pack/plugins/cases/public/components/no_privileges/index.tsx b/x-pack/plugins/cases/public/components/no_privileges/index.tsx new file mode 100644 index 0000000000000..58d2aa36df583 --- /dev/null +++ b/x-pack/plugins/cases/public/components/no_privileges/index.tsx @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { EuiEmptyPrompt, EuiButton } from '@elastic/eui'; +import * as i18n from './translations'; +import { useAllCasesNavigation } from '../../common/navigation'; + +interface NoPrivilegesPageProps { + pageName: string; +} + +export const NoPrivilegesPage = React.memo(({ pageName }: NoPrivilegesPageProps) => { + const { navigateToAllCases } = useAllCasesNavigation(); + + return ( + <EuiEmptyPrompt + iconColor="default" + iconType="addDataApp" + title={<h2>{i18n.NO_PRIVILEGES_TITLE}</h2>} + titleSize="xs" + body={<p>{i18n.NO_PRIVILEGES_MSG(pageName)}</p>} + actions={ + <EuiButton onClick={navigateToAllCases} size="s" color="primary" fill> + {i18n.NO_PRIVILEGES_BUTTON} + </EuiButton> + } + /> + ); +}); + +NoPrivilegesPage.displayName = 'NoPrivilegesPage'; diff --git a/x-pack/plugins/cases/public/components/no_privileges/translations.ts b/x-pack/plugins/cases/public/components/no_privileges/translations.ts new file mode 100644 index 0000000000000..b10b9eb4b6a7c --- /dev/null +++ b/x-pack/plugins/cases/public/components/no_privileges/translations.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const NO_PRIVILEGES_MSG = (pageName: string) => + i18n.translate('xpack.cases.noPrivileges.message', { + values: { pageName }, + defaultMessage: + 'To view {pageName} page, you must update privileges. For more information, contact your Kibana administrator.', + }); + +export const NO_PRIVILEGES_TITLE = i18n.translate('xpack.cases.noPrivileges.title', { + defaultMessage: 'Privileges required', +}); + +export const NO_PRIVILEGES_BUTTON = i18n.translate('xpack.cases.noPrivileges.button', { + defaultMessage: 'Back to Cases', +}); diff --git a/x-pack/plugins/cases/public/components/owner_context/index.tsx b/x-pack/plugins/cases/public/components/owner_context/index.tsx deleted file mode 100644 index 5df7eeadd70d5..0000000000000 --- a/x-pack/plugins/cases/public/components/owner_context/index.tsx +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useState } from 'react'; - -export const OwnerContext = React.createContext<string[]>([]); - -export const OwnerProvider: React.FC<{ - owner: string[]; -}> = ({ children, owner }) => { - const [currentOwner] = useState(owner); - - return <OwnerContext.Provider value={currentOwner}>{children}</OwnerContext.Provider>; -}; diff --git a/x-pack/plugins/cases/public/components/recent_cases/index.test.tsx b/x-pack/plugins/cases/public/components/recent_cases/index.test.tsx index f3094a8b80307..0a1e0447511db 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/index.test.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/index.test.tsx @@ -8,33 +8,19 @@ import React from 'react'; import { configure, render } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import RecentCases from '.'; +import RecentCases, { RecentCasesProps } from '.'; import { TestProviders } from '../../common/mock'; import { useGetCases } from '../../containers/use_get_cases'; import { useGetCasesMockState } from '../../containers/mock'; -import { SECURITY_SOLUTION_OWNER } from '../../../common'; import { useCurrentUser } from '../../common/lib/kibana/hooks'; jest.mock('../../containers/use_get_cases'); jest.mock('../../common/lib/kibana/hooks'); +jest.mock('../../common/navigation/hooks'); configure({ testIdAttribute: 'data-test-subj' }); -const defaultProps = { - allCasesNavigation: { - href: 'all-cases-href', - onClick: jest.fn(), - }, - caseDetailsNavigation: { - href: () => 'case-details-href', - onClick: jest.fn(), - }, - createCaseNavigation: { - href: 'create-details-href', - onClick: jest.fn(), - }, - hasWritePermissions: true, +const defaultProps: RecentCasesProps = { maxCasesToShow: 10, - owner: [SECURITY_SOLUTION_OWNER], }; const setFilters = jest.fn(); diff --git a/x-pack/plugins/cases/public/components/recent_cases/index.tsx b/x-pack/plugins/cases/public/components/recent_cases/index.tsx index 5c3b49b9a5dbb..0b4e65cf68709 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/index.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/index.tsx @@ -6,36 +6,35 @@ */ import { EuiFlexGroup, EuiFlexItem, EuiHorizontalRule, EuiText, EuiTitle } from '@elastic/eui'; -import React, { useMemo, useState } from 'react'; +import React, { useCallback, useMemo, useState } from 'react'; import * as i18n from './translations'; -import { CaseDetailsHrefSchema, CasesNavigation, LinkAnchor } from '../links'; +import { LinkAnchor } from '../links'; import { RecentCasesFilters } from './filters'; import { RecentCasesComp } from './recent_cases'; import { FilterMode as RecentCasesFilterMode } from './types'; import { useCurrentUser } from '../../common/lib/kibana'; -import { Owner } from '../../types'; -import { OwnerProvider } from '../owner_context'; +import { useAllCasesNavigation } from '../../common/navigation'; -export interface RecentCasesProps extends Owner { - allCasesNavigation: CasesNavigation; - caseDetailsNavigation: CasesNavigation<CaseDetailsHrefSchema, 'configurable'>; - createCaseNavigation: CasesNavigation; - hasWritePermissions: boolean; +export interface RecentCasesProps { maxCasesToShow: number; } -const RecentCasesComponent = ({ - allCasesNavigation, - caseDetailsNavigation, - createCaseNavigation, - maxCasesToShow, - hasWritePermissions, -}: Omit<RecentCasesProps, 'owner'>) => { +const RecentCases = React.memo(({ maxCasesToShow }: RecentCasesProps) => { const currentUser = useCurrentUser(); + const { getAllCasesUrl, navigateToAllCases } = useAllCasesNavigation(); + const [recentCasesFilterBy, setRecentCasesFilterBy] = useState<RecentCasesFilterMode>('recentlyCreated'); + const navigateToAllCasesClick = useCallback( + (e) => { + e.preventDefault(); + navigateToAllCases(); + }, + [navigateToAllCases] + ); + const recentCasesFilterOptions = useMemo( () => recentCasesFilterBy === 'myRecentlyReported' && currentUser != null @@ -73,16 +72,10 @@ const RecentCasesComponent = ({ <EuiHorizontalRule margin="s" /> </> <EuiText color="subdued" size="s"> - <RecentCasesComp - caseDetailsNavigation={caseDetailsNavigation} - createCaseNavigation={createCaseNavigation} - filterOptions={recentCasesFilterOptions} - maxCasesToShow={maxCasesToShow} - hasWritePermissions={hasWritePermissions} - /> + <RecentCasesComp filterOptions={recentCasesFilterOptions} maxCasesToShow={maxCasesToShow} /> <EuiHorizontalRule margin="s" /> <EuiText size="xs"> - <LinkAnchor onClick={allCasesNavigation.onClick} href={allCasesNavigation.href}> + <LinkAnchor onClick={navigateToAllCasesClick} href={getAllCasesUrl()}> {' '} {i18n.VIEW_ALL_CASES} </LinkAnchor> @@ -90,14 +83,6 @@ const RecentCasesComponent = ({ </EuiText> </> ); -}; - -export const RecentCases: React.FC<RecentCasesProps> = React.memo((props) => { - return ( - <OwnerProvider owner={props.owner}> - <RecentCasesComponent {...props} /> - </OwnerProvider> - ); }); RecentCases.displayName = 'RecentCases'; diff --git a/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.test.tsx b/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.test.tsx index 10fef0bb82df9..1fd4a28ddc1b9 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.test.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.test.tsx @@ -11,24 +11,24 @@ import { mount } from 'enzyme'; import { TestProviders } from '../../../common/mock'; import { NoCases } from '.'; -describe('RecentCases', () => { +jest.mock('../../../common/navigation/hooks'); + +describe('NoCases', () => { it('if no cases, a link to create cases will exist', () => { - const createCaseHref = '/create'; const wrapper = mount( <TestProviders> - <NoCases createCaseHref={createCaseHref} hasWritePermissions /> + <NoCases /> </TestProviders> ); expect(wrapper.find(`[data-test-subj="no-cases-create-case"]`).first().prop('href')).toEqual( - createCaseHref + '/app/security/cases/create' ); }); it('displays a message without a link to create a case when the user does not have write permissions', () => { - const createCaseHref = '/create'; const wrapper = mount( - <TestProviders> - <NoCases createCaseHref={createCaseHref} hasWritePermissions={false} /> + <TestProviders userCanCrud={false}> + <NoCases /> </TestProviders> ); expect(wrapper.find(`[data-test-subj="no-cases-create-case"]`).exists()).toBeFalsy(); diff --git a/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.tsx b/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.tsx index 2d60cc1b223ad..dce685248c4c2 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/no_cases/index.tsx @@ -8,31 +8,29 @@ import React, { useCallback } from 'react'; import * as i18n from '../translations'; -import { useKibana } from '../../../common/lib/kibana'; import { LinkAnchor } from '../../links'; +import { useCasesContext } from '../../cases_context/use_cases_context'; +import { useCreateCaseNavigation } from '../../../common/navigation'; -const NoCasesComponent = ({ - createCaseHref, - hasWritePermissions, -}: { - createCaseHref: string; - hasWritePermissions: boolean; -}) => { - const { navigateToUrl } = useKibana().services.application; - const goToCaseCreation = useCallback( +const NoCasesComponent = () => { + const { userCanCrud } = useCasesContext(); + const { getCreateCaseUrl, navigateToCreateCase } = useCreateCaseNavigation(); + + const navigateToCreateCaseClick = useCallback( (e) => { e.preventDefault(); - navigateToUrl(createCaseHref); + navigateToCreateCase(); }, - [createCaseHref, navigateToUrl] + [navigateToCreateCase] ); - return hasWritePermissions ? ( + + return userCanCrud ? ( <> <span>{i18n.NO_CASES}</span> <LinkAnchor data-test-subj="no-cases-create-case" - onClick={goToCaseCreation} - href={createCaseHref} + onClick={navigateToCreateCaseClick} + href={getCreateCaseUrl()} >{` ${i18n.START_A_NEW_CASE}`}</LinkAnchor> {'!'} </> diff --git a/x-pack/plugins/cases/public/components/recent_cases/recent_cases.tsx b/x-pack/plugins/cases/public/components/recent_cases/recent_cases.tsx index 961353206ccfa..794984c08d79c 100644 --- a/x-pack/plugins/cases/public/components/recent_cases/recent_cases.tsx +++ b/x-pack/plugins/cases/public/components/recent_cases/recent_cases.tsx @@ -13,7 +13,7 @@ import styled from 'styled-components'; import { IconWithCount } from './icon_with_count'; import * as i18n from './translations'; import { useGetCases } from '../../containers/use_get_cases'; -import { CaseDetailsHrefSchema, CaseDetailsLink, CasesNavigation } from '../links'; +import { CaseDetailsLink } from '../links'; import { LoadingPlaceholders } from './loading_placeholders'; import { NoCases } from './no_cases'; import { isSubCase } from '../all_cases/helpers'; @@ -29,10 +29,7 @@ const MarkdownContainer = styled.div` export interface RecentCasesProps { filterOptions: Partial<FilterOptions>; - caseDetailsNavigation: CasesNavigation<CaseDetailsHrefSchema, 'configurable'>; - createCaseNavigation: CasesNavigation; maxCasesToShow: number; - hasWritePermissions: boolean; } const usePrevious = (value: Partial<FilterOptions>) => { @@ -43,13 +40,7 @@ const usePrevious = (value: Partial<FilterOptions>) => { return ref.current; }; -export const RecentCasesComp = ({ - caseDetailsNavigation, - createCaseNavigation, - filterOptions, - maxCasesToShow, - hasWritePermissions, -}: RecentCasesProps) => { +export const RecentCasesComp = ({ filterOptions, maxCasesToShow }: RecentCasesProps) => { const previousFilterOptions = usePrevious(filterOptions); const { data, loading, setFilters } = useGetCases({ initialQueryParams: { perPage: maxCasesToShow }, @@ -69,7 +60,7 @@ export const RecentCasesComp = ({ return isLoadingCases ? ( <LoadingPlaceholders lines={2} placeholders={3} /> ) : !isLoadingCases && data.cases.length === 0 ? ( - <NoCases createCaseHref={createCaseNavigation.href} hasWritePermissions={hasWritePermissions} /> + <NoCases /> ) : ( <> {data.cases.map((c, i) => ( @@ -77,7 +68,6 @@ export const RecentCasesComp = ({ <EuiFlexItem grow={false}> <EuiText size="s"> <CaseDetailsLink - caseDetailsNavigation={caseDetailsNavigation} detailName={isSubCase(c) ? c.caseParentId : c.id} title={c.title} subCaseId={isSubCase(c) ? c.id : undefined} diff --git a/x-pack/plugins/cases/public/components/tag_list/index.tsx b/x-pack/plugins/cases/public/components/tag_list/index.tsx index 925e198e4a478..44643412faa5f 100644 --- a/x-pack/plugins/cases/public/components/tag_list/index.tsx +++ b/x-pack/plugins/cases/public/components/tag_list/index.tsx @@ -163,7 +163,7 @@ export const TagList = React.memo( <EuiFlexGroup gutterSize="s" alignItems="center" responsive={false}> <EuiFlexItem grow={false}> <EuiButton - color="secondary" + color="success" data-test-subj="edit-tags-submit" fill iconType="save" diff --git a/x-pack/plugins/cases/public/components/use_breadcrumbs/index.test.tsx b/x-pack/plugins/cases/public/components/use_breadcrumbs/index.test.tsx new file mode 100644 index 0000000000000..04e848e92d63a --- /dev/null +++ b/x-pack/plugins/cases/public/components/use_breadcrumbs/index.test.tsx @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { ReactNode } from 'react'; +import { renderHook } from '@testing-library/react-hooks'; +import { TestProviders } from '../../common/mock'; +import { useCasesBreadcrumbs, useCasesTitleBreadcrumbs } from '.'; +import { CasesDeepLinkId } from '../../common/navigation'; + +const mockSetBreadcrumbs = jest.fn(); +const mockSetTitle = jest.fn(); + +jest.mock('../../common/lib/kibana', () => { + const originalModule = jest.requireActual('../../common/lib/kibana'); + return { + ...originalModule, + useNavigation: jest.fn().mockReturnValue({ + getAppUrl: jest.fn((params?: { deepLinkId: string }) => params?.deepLinkId ?? '/test'), + }), + useKibana: () => { + const { services } = originalModule.useKibana(); + return { + services: { + ...services, + chrome: { setBreadcrumbs: mockSetBreadcrumbs, docTitle: { change: mockSetTitle } }, + }, + }; + }, + }; +}); + +const wrapper = ({ children }: { children?: ReactNode }) => ( + <TestProviders>{children}</TestProviders> +); + +describe('useCasesBreadcrumbs', () => { + afterEach(() => { + jest.clearAllMocks(); + }); + + describe('set all_cases breadcrumbs', () => { + it('call setBreadcrumbs with all items', async () => { + renderHook(() => useCasesBreadcrumbs(CasesDeepLinkId.cases), { wrapper }); + expect(mockSetBreadcrumbs).toHaveBeenCalledWith([ + { href: '/test', onClick: expect.any(Function), text: 'Test' }, + { text: 'Cases' }, + ]); + }); + + it('should sets the cases title', () => { + renderHook(() => useCasesBreadcrumbs(CasesDeepLinkId.cases), { wrapper }); + expect(mockSetTitle).toHaveBeenCalledWith(['Cases', 'Test']); + }); + }); + + describe('set create_case breadcrumbs', () => { + it('call setBreadcrumbs with all items', () => { + renderHook(() => useCasesBreadcrumbs(CasesDeepLinkId.casesCreate), { wrapper }); + expect(mockSetBreadcrumbs).toHaveBeenCalledWith([ + { href: '/test', onClick: expect.any(Function), text: 'Test' }, + { href: CasesDeepLinkId.cases, onClick: expect.any(Function), text: 'Cases' }, + { text: 'Create' }, + ]); + }); + + it('should sets the cases title', () => { + renderHook(() => useCasesBreadcrumbs(CasesDeepLinkId.casesCreate), { wrapper }); + expect(mockSetTitle).toHaveBeenCalledWith(['Create', 'Cases', 'Test']); + }); + }); + + describe('set case_view breadcrumbs', () => { + const title = 'Fake Title'; + it('call setBreadcrumbs with title', () => { + renderHook(() => useCasesTitleBreadcrumbs(title), { wrapper }); + expect(mockSetBreadcrumbs).toHaveBeenCalledWith([ + { href: '/test', onClick: expect.any(Function), text: 'Test' }, + { href: CasesDeepLinkId.cases, onClick: expect.any(Function), text: 'Cases' }, + { text: title }, + ]); + }); + + it('should sets the cases title', () => { + renderHook(() => useCasesTitleBreadcrumbs(title), { wrapper }); + expect(mockSetTitle).toHaveBeenCalledWith([title, 'Cases', 'Test']); + }); + }); +}); diff --git a/x-pack/plugins/cases/public/components/use_breadcrumbs/index.ts b/x-pack/plugins/cases/public/components/use_breadcrumbs/index.ts new file mode 100644 index 0000000000000..7c7625507fe9e --- /dev/null +++ b/x-pack/plugins/cases/public/components/use_breadcrumbs/index.ts @@ -0,0 +1,107 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { ChromeBreadcrumb } from 'kibana/public'; +import { useCallback, useEffect } from 'react'; +import { useKibana, useNavigation } from '../../common/lib/kibana'; +import { CasesDeepLinkId, ICasesDeepLinkId } from '../../common/navigation'; +import { useCasesContext } from '../cases_context/use_cases_context'; + +const casesBreadcrumbTitle: Record<ICasesDeepLinkId, string> = { + [CasesDeepLinkId.cases]: i18n.translate('xpack.cases.breadcrumbs.all_cases', { + defaultMessage: 'Cases', + }), + [CasesDeepLinkId.casesCreate]: i18n.translate('xpack.cases.breadcrumbs.create_case', { + defaultMessage: 'Create', + }), + [CasesDeepLinkId.casesConfigure]: i18n.translate('xpack.cases.breadcrumbs.configure_cases', { + defaultMessage: 'Configure', + }), +}; + +function getTitleFromBreadcrumbs(breadcrumbs: ChromeBreadcrumb[]): string[] { + return breadcrumbs.map(({ text }) => text?.toString() ?? '').reverse(); +} + +const useApplyBreadcrumbs = () => { + const { + chrome: { docTitle, setBreadcrumbs }, + application: { navigateToUrl }, + } = useKibana().services; + return useCallback( + (breadcrumbs: ChromeBreadcrumb[]) => { + docTitle.change(getTitleFromBreadcrumbs(breadcrumbs)); + setBreadcrumbs( + breadcrumbs.map((breadcrumb) => { + const { href, onClick } = breadcrumb; + return { + ...breadcrumb, + ...(href && !onClick + ? { + onClick: (event) => { + if (event) { + event.preventDefault(); + } + navigateToUrl(href); + }, + } + : {}), + }; + }) + ); + }, + [docTitle, setBreadcrumbs, navigateToUrl] + ); +}; + +export const useCasesBreadcrumbs = (pageDeepLink: ICasesDeepLinkId) => { + const { appId, appTitle } = useCasesContext(); + const { getAppUrl } = useNavigation(appId); + const applyBreadcrumbs = useApplyBreadcrumbs(); + + useEffect(() => { + applyBreadcrumbs([ + { text: appTitle, href: getAppUrl() }, + { + text: casesBreadcrumbTitle[CasesDeepLinkId.cases], + ...(pageDeepLink !== CasesDeepLinkId.cases + ? { + href: getAppUrl({ deepLinkId: CasesDeepLinkId.cases }), + } + : {}), + }, + ...(pageDeepLink !== CasesDeepLinkId.cases + ? [ + { + text: casesBreadcrumbTitle[pageDeepLink], + }, + ] + : []), + ]); + }, [pageDeepLink, appTitle, getAppUrl, applyBreadcrumbs]); +}; + +export const useCasesTitleBreadcrumbs = (caseTitle: string) => { + const { appId, appTitle } = useCasesContext(); + const { getAppUrl } = useNavigation(appId); + const applyBreadcrumbs = useApplyBreadcrumbs(); + + useEffect(() => { + const casesBreadcrumbs: ChromeBreadcrumb[] = [ + { text: appTitle, href: getAppUrl() }, + { + text: casesBreadcrumbTitle[CasesDeepLinkId.cases], + href: getAppUrl({ deepLinkId: CasesDeepLinkId.cases }), + }, + { + text: caseTitle, + }, + ]; + applyBreadcrumbs(casesBreadcrumbs); + }, [caseTitle, appTitle, getAppUrl, applyBreadcrumbs]); +}; diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.test.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.test.tsx index 4c39b721cac47..7c88d9425bd7e 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.test.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.test.tsx @@ -10,11 +10,15 @@ import { mount } from 'enzyme'; import { CreateCaseModal } from './create_case_modal'; import { TestProviders } from '../../common/mock'; -import { getCreateCaseLazy as getCreateCase } from '../../methods'; import { SECURITY_SOLUTION_OWNER } from '../../../common'; +import { CreateCase } from '../create'; + +jest.mock('../create', () => ({ + CreateCase: jest.fn(), +})); + +const CreateCaseMock = CreateCase as unknown as jest.Mock; -jest.mock('../../methods'); -const getCreateCaseMock = getCreateCase as jest.Mock; const onCloseCaseModal = jest.fn(); const onSuccess = jest.fn(); const defaultProps = { @@ -26,8 +30,8 @@ const defaultProps = { describe('CreateCaseModal', () => { beforeEach(() => { - jest.resetAllMocks(); - getCreateCaseMock.mockReturnValue(<></>); + jest.clearAllMocks(); + CreateCaseMock.mockReturnValue(<></>); }); it('renders', () => { @@ -68,7 +72,7 @@ describe('CreateCaseModal', () => { </TestProviders> ); - expect(getCreateCaseMock.mock.calls[0][0]).toEqual( + expect(CreateCaseMock.mock.calls[0][0]).toEqual( expect.objectContaining({ onSuccess, onCancel: onCloseCaseModal, diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.tsx index 677aabd593adf..e1cefa34f2efe 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/create_case_modal.tsx @@ -10,25 +10,20 @@ import { EuiModal, EuiModalBody, EuiModalHeader, EuiModalHeaderTitle } from '@el import { Case } from '../../containers/types'; import * as i18n from '../../common/translations'; -import { CaseType } from '../../../common'; -import { getCreateCaseLazy as getCreateCase } from '../../methods'; +import { CreateCase } from '../create'; export interface CreateCaseModalProps { - caseType?: CaseType; hideConnectorServiceNowSir?: boolean; isModalOpen: boolean; onCloseCaseModal: () => void; onSuccess: (theCase: Case) => Promise<void>; - owner: string; } const CreateModalComponent: React.FC<CreateCaseModalProps> = ({ - caseType = CaseType.individual, hideConnectorServiceNowSir, isModalOpen, onCloseCaseModal, onSuccess, - owner, }) => isModalOpen ? ( <EuiModal onClose={onCloseCaseModal} data-test-subj="create-case-modal"> @@ -36,14 +31,12 @@ const CreateModalComponent: React.FC<CreateCaseModalProps> = ({ <EuiModalHeaderTitle>{i18n.CREATE_TITLE}</EuiModalHeaderTitle> </EuiModalHeader> <EuiModalBody> - {getCreateCase({ - caseType, - hideConnectorServiceNowSir, - onCancel: onCloseCaseModal, - onSuccess, - withSteps: false, - owner: [owner], - })} + <CreateCase + onCancel={onCloseCaseModal} + onSuccess={onSuccess} + withSteps={false} + hideConnectorServiceNowSir={hideConnectorServiceNowSir} + /> </EuiModalBody> </EuiModal> ) : null; diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx index b227dd4b898b2..8225b62d7f4a7 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/index.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { renderHook, act } from '@testing-library/react-hooks'; -import { render } from '@testing-library/react'; +import { render, act as reactAct } from '@testing-library/react'; import { useKibana } from '../../common/lib/kibana'; import { useCreateCaseModal, UseCreateCaseModalProps, UseCreateCaseModalReturnedValues } from '.'; @@ -95,8 +95,10 @@ describe('useCreateCaseModal', () => { result.current.openModal(); }); - const modal = result.current.modal; - render(<TestProviders>{modal}</TestProviders>); + await reactAct(async () => { + const modal = result.current.modal; + render(<TestProviders>{modal}</TestProviders>); + }); act(() => { result.current.modal.props.onSuccess({ id: 'case-id' }); diff --git a/x-pack/plugins/cases/public/components/use_create_case_modal/index.tsx b/x-pack/plugins/cases/public/components/use_create_case_modal/index.tsx index 09f8eb65b12b7..2e9f3559d98d0 100644 --- a/x-pack/plugins/cases/public/components/use_create_case_modal/index.tsx +++ b/x-pack/plugins/cases/public/components/use_create_case_modal/index.tsx @@ -6,13 +6,11 @@ */ import React, { useState, useCallback, useMemo } from 'react'; -import { Case, CaseType } from '../../../common'; -import { useOwnerContext } from '../owner_context/use_owner_context'; +import { Case } from '../../../common'; import { CreateCaseModal } from './create_case_modal'; export interface UseCreateCaseModalProps { onCaseCreated: (theCase: Case) => void; - caseType?: CaseType; hideConnectorServiceNowSir?: boolean; } export interface UseCreateCaseModalReturnedValues { @@ -23,11 +21,9 @@ export interface UseCreateCaseModalReturnedValues { } export const useCreateCaseModal = ({ - caseType = CaseType.individual, onCaseCreated, hideConnectorServiceNowSir = false, }: UseCreateCaseModalProps) => { - const owner = useOwnerContext(); const [isModalOpen, setIsModalOpen] = useState<boolean>(false); const closeModal = useCallback(() => setIsModalOpen(false), []); const openModal = useCallback(() => setIsModalOpen(true), []); @@ -43,18 +39,16 @@ export const useCreateCaseModal = ({ () => ({ modal: ( <CreateCaseModal - caseType={caseType} hideConnectorServiceNowSir={hideConnectorServiceNowSir} isModalOpen={isModalOpen} onCloseCaseModal={closeModal} onSuccess={onSuccess} - owner={owner[0]} /> ), isModalOpen, closeModal, openModal, }), - [caseType, closeModal, hideConnectorServiceNowSir, isModalOpen, onSuccess, openModal, owner] + [closeModal, hideConnectorServiceNowSir, isModalOpen, onSuccess, openModal] ); }; diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/callout/callout.test.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/callout/callout.test.tsx index c2e6e493308c0..b77abd0fd189c 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/callout/callout.test.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/callout/callout.test.tsx @@ -57,7 +57,7 @@ describe('Callout', () => { const className = wrapper.find(`button[data-test-subj="callout-onclick-md5-hex"]`).first().prop('className') ?? ''; - expect(className.includes('euiButton--secondary')).toBeTruthy(); + expect(className.includes('euiButton--success')).toBeTruthy(); }); it('transform the button color correctly - warning', () => { diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/callout/callout.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/callout/callout.tsx index ce96d2e1024fa..4c27d8ce7f87b 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/callout/callout.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/callout/callout.tsx @@ -59,7 +59,7 @@ const CallOutComponent = ({ {!isCaseClosed && !hasLicenseError && ( <EuiButton data-test-subj={`callout-onclick-${id}`} - color={type === 'success' ? 'secondary' : type} + color={type === 'success' ? 'success' : type} onClick={handleCallOut} > {i18n.ADD_CONNECTOR} diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.test.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.test.tsx index 0db01e74d90a7..fb37a1b99b380 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.test.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.test.tsx @@ -18,10 +18,6 @@ describe('CaseCallOut ', () => { }); const defaultProps: CaseCallOutProps = { - configureCasesNavigation: { - href: 'testHref', - onClick: jest.fn(), - }, hasConnectors: true, messages: [ { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, @@ -83,7 +79,6 @@ describe('CaseCallOut ', () => { const id = createCalloutId(['message-one', 'message-two']); wrapper.find(`[data-test-subj="callout-onclick-${id}"]`).last().simulate('click'); expect(defaultProps.onEditClick).toHaveBeenCalled(); - expect(defaultProps.configureCasesNavigation.onClick).not.toHaveBeenCalled(); }); it('Redirects to configure page when hasConnectors=false', () => { @@ -100,6 +95,5 @@ describe('CaseCallOut ', () => { const id = createCalloutId(['message-one', 'message-two']); wrapper.find(`[data-test-subj="callout-onclick-${id}"]`).last().simulate('click'); expect(defaultProps.onEditClick).not.toHaveBeenCalled(); - expect(defaultProps.configureCasesNavigation.onClick).toHaveBeenCalled(); }); }); diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.tsx index 40c4070c6634d..40c61175153c0 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/callout/index.tsx @@ -11,12 +11,11 @@ import React, { memo, useCallback, useMemo } from 'react'; import { CallOut } from './callout'; import { ErrorMessage } from './types'; import { createCalloutId } from './helpers'; -import { CasesNavigation } from '../../links'; +import { useConfigureCasesNavigation } from '../../../common/navigation'; export * from './helpers'; export interface CaseCallOutProps { - configureCasesNavigation: CasesNavigation; hasConnectors: boolean; hasLicenseError: boolean; messages?: ErrorMessage[]; @@ -30,23 +29,24 @@ type GroupByTypeMessages = { }; }; const CaseCallOutComponent = ({ - configureCasesNavigation, hasConnectors, hasLicenseError, onEditClick, messages = [], }: CaseCallOutProps) => { + const { navigateToConfigureCases } = useConfigureCasesNavigation(); const handleCallOut = useCallback( (e) => { + e.preventDefault(); // if theres connectors open dropdown editor // if no connectors, redirect to create case page if (hasConnectors) { onEditClick(); } else { - configureCasesNavigation.onClick(e); + navigateToConfigureCases(); } }, - [hasConnectors, onEditClick, configureCasesNavigation] + [hasConnectors, onEditClick, navigateToConfigureCases] ); const groupedByTypeErrorMessages = useMemo( diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/index.test.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/index.test.tsx index 93ea8f7e43de2..19c0bf58de7bf 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/index.test.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/index.test.tsx @@ -20,20 +20,10 @@ import { connectorsMock } from '../../containers/configure/mock'; import { CLOSED_CASE_PUSH_ERROR_ID } from './callout/types'; import * as i18n from './translations'; -jest.mock('react-router-dom', () => { - const original = jest.requireActual('react-router-dom'); - - return { - ...original, - useHistory: () => ({ - useHistory: jest.fn(), - }), - }; -}); - jest.mock('../../containers/use_get_action_license'); jest.mock('../../containers/use_post_push_to_service'); jest.mock('../../containers/configure/api'); +jest.mock('../../common/navigation/hooks'); describe('usePushToService', () => { const caseId = '12345'; @@ -81,7 +71,7 @@ describe('usePushToService', () => { }; beforeEach(() => { - jest.resetAllMocks(); + jest.clearAllMocks(); (usePostPushToService as jest.Mock).mockImplementation(() => mockPostPush); (useGetActionLicense as jest.Mock).mockImplementation(() => ({ isLoading: false, diff --git a/x-pack/plugins/cases/public/components/use_push_to_service/index.tsx b/x-pack/plugins/cases/public/components/use_push_to_service/index.tsx index 75bd3307b2582..c1ba6f1fbeb25 100644 --- a/x-pack/plugins/cases/public/components/use_push_to_service/index.tsx +++ b/x-pack/plugins/cases/public/components/use_push_to_service/index.tsx @@ -21,14 +21,12 @@ import { import * as i18n from './translations'; import { Case, CaseConnector, ActionConnector, CaseStatuses } from '../../../common'; import { CaseServices } from '../../containers/use_get_case_user_actions'; -import { CasesNavigation } from '../links'; import { ErrorMessage } from './callout/types'; export interface UsePushToService { caseId: string; caseServices: CaseServices; caseStatus: string; - configureCasesNavigation: CasesNavigation; connector: CaseConnector; connectors: ActionConnector[]; hasDataToPush: boolean; @@ -47,7 +45,6 @@ export const usePushToService = ({ caseId, caseServices, caseStatus, - configureCasesNavigation, connector, connectors, hasDataToPush, @@ -175,7 +172,6 @@ export const usePushToService = ({ pushCallouts: errorsMsg.length > 0 ? ( <CaseCallOut - configureCasesNavigation={configureCasesNavigation} hasConnectors={connectors.length > 0} hasLicenseError={hasLicenseError} messages={errorsMsg} @@ -184,7 +180,6 @@ export const usePushToService = ({ ) : null, }), [ - configureCasesNavigation, connector.name, connectors.length, errorsMsg, diff --git a/x-pack/plugins/cases/public/components/user_action_tree/helpers.tsx b/x-pack/plugins/cases/public/components/user_action_tree/helpers.tsx index 2419ac0d048e9..a7b4624835882 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/helpers.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/helpers.tsx @@ -190,12 +190,10 @@ const getUpdateActionIcon = (actionField: string): string => { export const getUpdateAction = ({ action, - getCaseDetailHrefWithCommentId, label, handleOutlineComment, }: { action: CaseUserActions; - getCaseDetailHrefWithCommentId: (commentId: string) => string; label: string | JSX.Element; handleOutlineComment: (id: string) => void; }): EuiCommentProps => ({ @@ -213,10 +211,7 @@ export const getUpdateAction = ({ actions: ( <EuiFlexGroup responsive={false}> <EuiFlexItem grow={false}> - <UserActionCopyLink - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} - id={action.actionId} - /> + <UserActionCopyLink id={action.actionId} /> </EuiFlexItem> {action.action === 'update' && action.commentId != null && ( <EuiFlexItem grow={false}> @@ -230,7 +225,6 @@ export const getUpdateAction = ({ export const getAlertAttachment = ({ action, alertId, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, index, loadingAlertData, @@ -241,7 +235,6 @@ export const getAlertAttachment = ({ }: { action: CaseUserActions; alertId: string; - getCaseDetailHrefWithCommentId: (commentId: string) => string; getRuleDetailsHref: RuleDetailsNavigation['href']; index: string; loadingAlertData: boolean; @@ -275,10 +268,7 @@ export const getAlertAttachment = ({ actions: ( <EuiFlexGroup responsive={false}> <EuiFlexItem grow={false}> - <UserActionCopyLink - id={action.actionId} - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} - /> + <UserActionCopyLink id={action.actionId} /> </EuiFlexItem> <EuiFlexItem grow={false}> <UserActionShowAlert @@ -330,7 +320,6 @@ export const toStringArray = (value: unknown): string[] => { export const getGeneratedAlertsAttachment = ({ action, alertIds, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, onRuleDetailsClick, renderInvestigateInTimelineActionComponent, @@ -339,7 +328,6 @@ export const getGeneratedAlertsAttachment = ({ }: { action: CaseUserActions; alertIds: string[]; - getCaseDetailHrefWithCommentId: (commentId: string) => string; getRuleDetailsHref: RuleDetailsNavigation['href']; onRuleDetailsClick?: RuleDetailsNavigation['onClick']; renderInvestigateInTimelineActionComponent?: (alertIds: string[]) => JSX.Element; @@ -366,10 +354,7 @@ export const getGeneratedAlertsAttachment = ({ actions: ( <EuiFlexGroup responsive={false}> <EuiFlexItem grow={false}> - <UserActionCopyLink - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} - id={action.actionId} - /> + <UserActionCopyLink id={action.actionId} /> </EuiFlexItem> {renderInvestigateInTimelineActionComponent ? ( <EuiFlexItem grow={false}> @@ -402,14 +387,12 @@ export const getActionAttachment = ({ comment, userCanCrud, isLoadingIds, - getCaseDetailHrefWithCommentId, actionsNavigation, action, }: { comment: Comment & CommentRequestActionsType; userCanCrud: boolean; isLoadingIds: string[]; - getCaseDetailHrefWithCommentId: (commentId: string) => string; actionsNavigation?: ActionsNavigation; action: CaseUserActions; }): EuiCommentProps => ({ @@ -431,12 +414,7 @@ export const getActionAttachment = ({ 'data-test-subj': 'endpoint-action', timestamp: <UserActionTimestamp createdAt={action.actionAt} />, timelineIcon: <ActionIcon actionType={comment.actions.type} />, - actions: ( - <UserActionCopyLink - id={comment.id} - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} - /> - ), + actions: <UserActionCopyLink id={comment.id} />, children: comment.comment.trim().length > 0 && ( <ContentWrapper data-test-subj="user-action-markdown"> <MarkdownRenderer>{comment.comment}</MarkdownRenderer> diff --git a/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx index 5241b0e66fb38..e9cd556706646 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/index.test.tsx @@ -11,7 +11,6 @@ import { waitFor } from '@testing-library/react'; // eslint-disable-next-line @kbn/eslint/module_migration import routeData from 'react-router'; -import { getFormMock, useFormMock, useFormDataMock } from '../__mock__/form'; import { useUpdateComment } from '../../containers/use_update_comment'; import { basicCase, @@ -34,7 +33,6 @@ const defaultProps = { caseServices: {}, caseUserActions: [], connectors: [], - getCaseDetailHrefWithCommentId: jest.fn(), actionsNavigation: { href: jest.fn(), onClick: jest.fn() }, getRuleDetailsHref: jest.fn(), onRuleDetailsClick: jest.fn(), @@ -71,9 +69,6 @@ describe(`UserActionTree`, () => { isLoadingIds: [], patchComment, })); - const formHookMock = getFormMock(sampleData); - useFormMock.mockImplementation(() => ({ form: formHookMock })); - useFormDataMock.mockImplementation(() => [{ content: sampleData.content, comment: '' }]); jest .spyOn(routeData, 'useParams') @@ -259,6 +254,13 @@ describe(`UserActionTree`, () => { .first() .simulate('click'); + wrapper + .find(`.euiMarkdownEditorTextArea`) + .first() + .simulate('change', { + target: { value: sampleData.content }, + }); + wrapper .find( `[data-test-subj="comment-create-action-${props.data.comments[0].id}"] [data-test-subj="user-action-save-markdown"]` @@ -304,6 +306,13 @@ describe(`UserActionTree`, () => { .first() .simulate('click'); + wrapper + .find(`.euiMarkdownEditorTextArea`) + .first() + .simulate('change', { + target: { value: sampleData.content }, + }); + wrapper .find(`[data-test-subj="description-action"] [data-test-subj="user-action-save-markdown"]`) .first() @@ -322,22 +331,17 @@ describe(`UserActionTree`, () => { }); }); - it('quotes', async () => { - const commentData = { - comment: '', - }; - const setFieldValue = jest.fn(); - - const formHookMock = getFormMock(commentData); - useFormMock.mockImplementation(() => ({ form: { ...formHookMock, setFieldValue } })); + it('shows quoted text in last MarkdownEditorTextArea', async () => { + const quoteableText = `> ${defaultProps.data.description} \n\n`; - const props = defaultProps; const wrapper = mount( <TestProviders> - <UserActionTree {...props} /> + <UserActionTree {...defaultProps} /> </TestProviders> ); + expect(wrapper.find(`.euiMarkdownEditorTextArea`).text()).not.toContain(quoteableText); + wrapper .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-ellipses"]`) .first() @@ -347,8 +351,9 @@ describe(`UserActionTree`, () => { .find(`[data-test-subj="description-action"] [data-test-subj="property-actions-quote"]`) .first() .simulate('click'); + await waitFor(() => { - expect(setFieldValue).toBeCalledWith('comment', `> ${props.data.description} \n\n`); + expect(wrapper.find(`.euiMarkdownEditorTextArea`).text()).toContain(quoteableText); }); }); diff --git a/x-pack/plugins/cases/public/components/user_action_tree/index.tsx b/x-pack/plugins/cases/public/components/user_action_tree/index.tsx index c1ba83e324ed2..6197303a8d7ce 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/index.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/index.tsx @@ -17,7 +17,6 @@ import { ALERT_RULE_NAME, ALERT_RULE_UUID } from '@kbn/rule-data-utils/technical import classNames from 'classnames'; import { get, isEmpty } from 'lodash'; import React, { useCallback, useMemo, useRef, useState, useEffect } from 'react'; -import { useParams } from 'react-router-dom'; import styled from 'styled-components'; import { isRight } from 'fp-ts/Either'; @@ -58,6 +57,7 @@ import { UserActionUsername } from './user_action_username'; import { UserActionContentToolbar } from './user_action_content_toolbar'; import { getManualAlertIdsWithNoRuleId } from '../case_view/helpers'; import { useLensDraftComment } from '../markdown_editor/plugins/lens/use_lens_draft_comment'; +import { useCaseViewParams } from '../../common/navigation'; export interface UserActionTreeProps { caseServices: CaseServices; @@ -65,7 +65,6 @@ export interface UserActionTreeProps { connectors: ActionConnector[]; data: Case; fetchUserActions: () => void; - getCaseDetailHrefWithCommentId: (commentId: string) => string; getRuleDetailsHref?: RuleDetailsNavigation['href']; actionsNavigation?: ActionsNavigation; isLoadingDescription: boolean; @@ -149,7 +148,6 @@ export const UserActionTree = React.memo( connectors, data: caseData, fetchUserActions, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, actionsNavigation, isLoadingDescription, @@ -163,15 +161,7 @@ export const UserActionTree = React.memo( useFetchAlertData, userCanCrud, }: UserActionTreeProps) => { - const { - detailName: caseId, - commentId, - subCaseId, - } = useParams<{ - detailName: string; - commentId?: string; - subCaseId?: string; - }>(); + const { detailName: caseId, subCaseId, commentId } = useCaseViewParams(); const handlerTimeoutId = useRef(0); const [initLoading, setInitLoading] = useState(true); const [selectedOutlineCommentId, setSelectedOutlineCommentId] = useState(''); @@ -325,7 +315,6 @@ export const UserActionTree = React.memo( actions: ( <UserActionContentToolbar commentMarkdown={caseData.description} - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} id={DESCRIPTION_ID} editLabel={i18n.EDIT_DESCRIPTION} quoteLabel={i18n.QUOTE} @@ -339,7 +328,6 @@ export const UserActionTree = React.memo( [ MarkdownDescription, caseData, - getCaseDetailHrefWithCommentId, handleManageMarkdownEditId, handleManageQuote, isLoadingDescription, @@ -403,7 +391,6 @@ export const UserActionTree = React.memo( ), actions: ( <UserActionContentToolbar - getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} id={comment.id} commentMarkdown={comment.comment} editLabel={i18n.EDIT_COMMENT} @@ -456,7 +443,6 @@ export const UserActionTree = React.memo( getAlertAttachment({ action, alertId, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, index: alertIndex, loadingAlertData, @@ -485,7 +471,6 @@ export const UserActionTree = React.memo( getGeneratedAlertsAttachment({ action, alertIds, - getCaseDetailHrefWithCommentId, getRuleDetailsHref, onRuleDetailsClick, renderInvestigateInTimelineActionComponent, @@ -508,7 +493,6 @@ export const UserActionTree = React.memo( comment, userCanCrud, isLoadingIds, - getCaseDetailHrefWithCommentId, actionsNavigation, action, }), @@ -526,7 +510,6 @@ export const UserActionTree = React.memo( getUpdateAction({ action, label, - getCaseDetailHrefWithCommentId, handleOutlineComment, }), ]; @@ -589,7 +572,6 @@ export const UserActionTree = React.memo( getUpdateAction({ action, label, - getCaseDetailHrefWithCommentId, handleOutlineComment, }), ...footers, @@ -612,7 +594,6 @@ export const UserActionTree = React.memo( getUpdateAction({ action, label, - getCaseDetailHrefWithCommentId, handleOutlineComment, }), ]; @@ -630,7 +611,6 @@ export const UserActionTree = React.memo( manageMarkdownEditIds, handleManageMarkdownEditId, handleSaveComment, - getCaseDetailHrefWithCommentId, actionsNavigation, userCanCrud, isLoadingIds, diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_alert_comment_event.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_alert_comment_event.test.tsx index a049deb264d4c..73a61ed3afd5f 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_alert_comment_event.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_alert_comment_event.test.tsx @@ -15,7 +15,6 @@ import { CommentType } from '../../../common'; const props = { alertId: 'alert-id-1', - getCaseDetailHrefWithCommentId: jest.fn().mockReturnValue('someCaseDetail-withcomment'), getRuleDetailsHref: jest.fn().mockReturnValue('some-detection-rule-link'), onRuleDetailsClick: jest.fn(), ruleId: 'rule-id-1', diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.test.tsx index 5820f057259a4..c2edfe2739715 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.test.tsx @@ -12,20 +12,11 @@ import { UserActionContentToolbarProps, } from './user_action_content_toolbar'; -jest.mock('react-router-dom', () => { - const originalModule = jest.requireActual('react-router-dom'); - - return { - ...originalModule, - useParams: jest.fn().mockReturnValue({ detailName: 'case-1' }), - }; -}); - +jest.mock('../../common/navigation/hooks'); jest.mock('../../common/lib/kibana'); const props: UserActionContentToolbarProps = { commentMarkdown: '', - getCaseDetailHrefWithCommentId: jest.fn().mockReturnValue('case-detail-url-with-comment-id-1'), id: '1', editLabel: 'edit', quoteLabel: 'quote', diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.tsx index 0728eda13fd54..ab030348595d1 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_content_toolbar.tsx @@ -14,7 +14,6 @@ import { UserActionPropertyActions } from './user_action_property_actions'; export interface UserActionContentToolbarProps { commentMarkdown: string; id: string; - getCaseDetailHrefWithCommentId: (commentId: string) => string; editLabel: string; quoteLabel: string; isLoading: boolean; @@ -26,7 +25,6 @@ export interface UserActionContentToolbarProps { const UserActionContentToolbarComponent = ({ commentMarkdown, id, - getCaseDetailHrefWithCommentId, editLabel, quoteLabel, isLoading, @@ -36,7 +34,7 @@ const UserActionContentToolbarComponent = ({ }: UserActionContentToolbarProps) => ( <EuiFlexGroup responsive={false} alignItems="center"> <EuiFlexItem grow={false}> - <UserActionCopyLink id={id} getCaseDetailHrefWithCommentId={getCaseDetailHrefWithCommentId} /> + <UserActionCopyLink id={id} /> </EuiFlexItem> <EuiFlexItem grow={false}> <UserActionPropertyActions diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.test.tsx index 91184d49479ba..67d2b837d27e3 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.test.tsx @@ -9,57 +9,45 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; -import { useParams } from 'react-router-dom'; import copy from 'copy-to-clipboard'; +import { useKibana } from '../../common/lib/kibana'; import { TestProviders } from '../../common/mock'; import { UserActionCopyLink } from './user_action_copy_link'; -jest.mock('react-router-dom', () => { - const originalModule = jest.requireActual('react-router-dom'); - - return { - ...originalModule, - useParams: jest.fn(), - }; -}); +const useKibanaMock = useKibana as jest.Mocked<typeof useKibana>; +jest.mock('../../common/navigation/hooks'); jest.mock('copy-to-clipboard', () => jest.fn()); +jest.mock('../../common/lib/kibana'); const mockGetUrlForApp = jest.fn( (appId: string, options?: { path?: string; absolute?: boolean }) => `${appId}${options?.path ?? ''}` ); -jest.mock('../../common/lib/kibana', () => ({ - useKibana: () => ({ - services: { - application: { - getUrlForApp: mockGetUrlForApp, - }, - }, - }), -})); - const props = { id: 'comment-id', - getCaseDetailHrefWithCommentId: jest.fn().mockReturnValue('random-url'), }; describe('UserActionCopyLink ', () => { let wrapper: ReactWrapper; beforeAll(() => { - (useParams as jest.Mock).mockReturnValue({ detailName: 'case-1' }); wrapper = mount(<UserActionCopyLink {...props} />, { wrappingComponent: TestProviders }); }); + beforeEach(() => { + jest.clearAllMocks(); + useKibanaMock().services.application.getUrlForApp = mockGetUrlForApp; + }); + it('it renders', async () => { expect(wrapper.find(`[data-test-subj="copy-link-${props.id}"]`).first().exists()).toBeTruthy(); }); it('calls copy clipboard correctly', async () => { wrapper.find(`[data-test-subj="copy-link-${props.id}"]`).first().simulate('click'); - expect(copy).toHaveBeenCalledWith('random-url'); + expect(copy).toHaveBeenCalledWith('/app/security/cases/test'); }); }); diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.tsx index 0cc837fcb60b5..54c9b36c53962 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_copy_link.tsx @@ -10,19 +10,19 @@ import { EuiToolTip, EuiButtonIcon } from '@elastic/eui'; import copy from 'copy-to-clipboard'; import * as i18n from './translations'; +import { useCaseViewNavigation, useCaseViewParams } from '../../common/navigation'; interface UserActionCopyLinkProps { id: string; - getCaseDetailHrefWithCommentId: (commentId: string) => string; } -const UserActionCopyLinkComponent = ({ - id: commentId, - getCaseDetailHrefWithCommentId, -}: UserActionCopyLinkProps) => { +const UserActionCopyLinkComponent = ({ id: commentId }: UserActionCopyLinkProps) => { + const { getCaseViewUrl } = useCaseViewNavigation(); + const { detailName, subCaseId } = useCaseViewParams(); + const handleAnchorLink = useCallback(() => { - copy(getCaseDetailHrefWithCommentId(commentId)); - }, [getCaseDetailHrefWithCommentId, commentId]); + copy(getCaseViewUrl({ detailName, subCaseId, commentId }, true)); + }, [detailName, subCaseId, commentId, getCaseViewUrl]); return ( <EuiToolTip position="top" content={<p>{i18n.COPY_REFERENCE_LINK}</p>}> diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.test.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.test.tsx index 43c51e9e394dd..0695f9d5a2c44 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.test.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.test.tsx @@ -13,6 +13,7 @@ import { waitFor } from '@testing-library/react'; const onChangeEditable = jest.fn(); const onSaveContent = jest.fn(); +const newValue = 'Hello from Tehas'; const hyperlink = `[hyperlink](http://elastic.co)`; const defaultProps = { content: `A link to a timeline ${hyperlink}`, @@ -37,18 +38,40 @@ describe('UserActionMarkdown ', () => { expect(wrapper.find(`[data-test-subj="markdown-link"]`).first().text()).toContain('hyperlink'); }); - it('Save button click calls onSaveContent and onChangeEditable', async () => { + it('Save button click calls onSaveContent and onChangeEditable when text area value changed', async () => { const wrapper = mount( <TestProviders> <UserActionMarkdown {...defaultProps} /> </TestProviders> ); + + wrapper + .find(`.euiMarkdownEditorTextArea`) + .first() + .simulate('change', { + target: { value: newValue }, + }); + + wrapper.find(`[data-test-subj="user-action-save-markdown"]`).first().simulate('click'); + + await waitFor(() => { + expect(onSaveContent).toHaveBeenCalledWith(newValue); + expect(onChangeEditable).toHaveBeenCalledWith(defaultProps.id); + }); + }); + it('Does not call onSaveContent if no change from current text', async () => { + const wrapper = mount( + <TestProviders> + <UserActionMarkdown {...defaultProps} /> + </TestProviders> + ); + wrapper.find(`[data-test-subj="user-action-save-markdown"]`).first().simulate('click'); await waitFor(() => { - expect(onSaveContent).toHaveBeenCalledWith(defaultProps.content); expect(onChangeEditable).toHaveBeenCalledWith(defaultProps.id); }); + expect(onSaveContent).not.toHaveBeenCalled(); }); it('Cancel button click calls only onChangeEditable', async () => { const wrapper = mount( diff --git a/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.tsx b/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.tsx index 93212d2b11016..692fbbb318b22 100644 --- a/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.tsx +++ b/x-pack/plugins/cases/public/components/user_action_tree/user_action_markdown.tsx @@ -49,11 +49,12 @@ export const UserActionMarkdown = forwardRef<UserActionMarkdownRefObject, UserAc const handleSaveAction = useCallback(async () => { const { isValid, data } = await submit(); - if (isValid) { + + if (isValid && data.content !== content) { onSaveContent(data.content); } onChangeEditable(id); - }, [id, onChangeEditable, onSaveContent, submit]); + }, [content, id, onChangeEditable, onSaveContent, submit]); const setComment = useCallback( (newComment) => { @@ -78,7 +79,7 @@ export const UserActionMarkdown = forwardRef<UserActionMarkdownRefObject, UserAc <EuiFlexItem grow={false}> <EuiButton data-test-subj="user-action-save-markdown" - color="secondary" + color="success" fill iconType="save" onClick={handleSaveAction} diff --git a/x-pack/plugins/cases/public/containers/configure/use_configure.test.tsx b/x-pack/plugins/cases/public/containers/configure/use_configure.test.tsx index d8d552ceb8b7a..1814020de8465 100644 --- a/x-pack/plugins/cases/public/containers/configure/use_configure.test.tsx +++ b/x-pack/plugins/cases/public/containers/configure/use_configure.test.tsx @@ -50,14 +50,11 @@ describe('useConfigure', () => { }); test('init', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, ReturnUseCaseConfigure>( - () => useCaseConfigure(), - { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - } - ); - await waitForNextUpdate(); + const { result } = renderHook<string, ReturnUseCaseConfigure>(() => useCaseConfigure(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); + + await act(async () => expect(result.current).toEqual({ ...initialState, refetchCaseConfigure: result.current.refetchCaseConfigure, @@ -66,8 +63,8 @@ describe('useConfigure', () => { setConnector: result.current.setConnector, setClosureType: result.current.setClosureType, setMappings: result.current.setMappings, - }); - }); + }) + ); }); test('fetch case configuration', async () => { @@ -79,7 +76,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ ...initialState, closureType: caseConfigurationCamelCaseResponseMock.closureType, @@ -114,7 +110,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.refetchCaseConfigure(); expect(spyOnGetCaseConfigure).toHaveBeenCalledTimes(2); }); @@ -129,7 +124,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current.mappings).toEqual([]); result.current.setMappings(mappings); expect(result.current.mappings).toEqual(mappings); @@ -145,7 +139,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.refetchCaseConfigure(); expect(result.current.loading).toBe(true); @@ -161,7 +154,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.persistCaseConfigure(configuration); expect(result.current.persistLoading).toBeTruthy(); }); @@ -193,7 +185,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(mockErrorToast).not.toHaveBeenCalled(); result.current.persistCaseConfigure(configuration); @@ -222,7 +213,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(mockErrorToast).toHaveBeenCalled(); }); }); @@ -254,7 +244,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(mockErrorToast).not.toHaveBeenCalled(); result.current.persistCaseConfigure(configuration); @@ -281,7 +270,6 @@ describe('useConfigure', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.persistCaseConfigure(configuration); @@ -305,7 +293,6 @@ describe('useConfigure', () => { } ); - await waitForNextUpdate(); await waitForNextUpdate(); expect(result.current).toEqual({ @@ -344,7 +331,6 @@ describe('useConfigure', () => { } ); - await waitForNextUpdate(); await waitForNextUpdate(); result.current.persistCaseConfigure(configuration); diff --git a/x-pack/plugins/cases/public/containers/configure/use_configure.tsx b/x-pack/plugins/cases/public/containers/configure/use_configure.tsx index d02a22bde408c..afac625c7682e 100644 --- a/x-pack/plugins/cases/public/containers/configure/use_configure.tsx +++ b/x-pack/plugins/cases/public/containers/configure/use_configure.tsx @@ -12,7 +12,7 @@ import * as i18n from './translations'; import { ClosureType, CaseConfigure, CaseConnector, CaseConnectorMapping } from './types'; import { ConnectorTypes } from '../../../common'; import { useToasts } from '../../common/lib/kibana'; -import { useOwnerContext } from '../../components/owner_context/use_owner_context'; +import { useCasesContext } from '../../components/cases_context/use_cases_context'; export type ConnectorConfiguration = { connector: CaseConnector } & { closureType: CaseConfigure['closureType']; @@ -156,7 +156,7 @@ export const initialState: State = { }; export const useCaseConfigure = (): ReturnUseCaseConfigure => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const [state, dispatch] = useReducer(configureCasesReducer, initialState); const toasts = useToasts(); const setCurrentConfiguration = useCallback((configuration: ConnectorConfiguration) => { diff --git a/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx b/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx index b3a6932c6971c..97de7a9073269 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases.test.tsx @@ -25,24 +25,23 @@ jest.mock('../common/lib/kibana'); describe('useGetCases', () => { const abortCtrl = new AbortController(); + beforeEach(() => { jest.clearAllMocks(); - jest.restoreAllMocks(); }); it('init', async () => { - await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, UseGetCases>(() => useGetCases(), { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - }); + const { result } = renderHook<string, UseGetCases>(() => useGetCases(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); - await waitForNextUpdate(); + await act(async () => { expect(result.current).toEqual({ data: initialData, dispatchUpdateCaseProperty: result.current.dispatchUpdateCaseProperty, filterOptions: DEFAULT_FILTER_OPTIONS, isError: false, - loading: [], + loading: ['cases'], queryParams: DEFAULT_QUERY_PARAMS, refetchCases: result.current.refetchCases, selectedCases: [], @@ -60,7 +59,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(spyOnGetCases).toBeCalledWith({ filterOptions: { ...DEFAULT_FILTER_OPTIONS, owner: [SECURITY_SOLUTION_OWNER] }, queryParams: DEFAULT_QUERY_PARAMS, @@ -75,7 +73,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ data: allCases, dispatchUpdateCaseProperty: result.current.dispatchUpdateCaseProperty, @@ -106,7 +103,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.dispatchUpdateCaseProperty(updateCase); expect(result.current.loading).toEqual(['caseUpdate']); expect(spyOnPatchCase).toBeCalledWith( @@ -125,7 +121,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.refetchCases(); expect(spyOnGetCases).toHaveBeenCalledTimes(2); }); @@ -137,7 +132,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.refetchCases(); expect(result.current.loading).toEqual(['cases']); @@ -155,7 +149,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ data: initialData, @@ -186,7 +179,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); - await waitForNextUpdate(); await waitForNextUpdate(); result.current.setFilters(newFilters); await waitForNextUpdate(); @@ -214,7 +206,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); - await waitForNextUpdate(); await waitForNextUpdate(); result.current.setQueryParams(newQueryParams); await waitForNextUpdate(); @@ -237,7 +228,6 @@ describe('useGetCases', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.setSelectedCases(selectedCases); expect(result.current.selectedCases).toEqual(selectedCases); }); diff --git a/x-pack/plugins/cases/public/containers/use_get_cases.tsx b/x-pack/plugins/cases/public/containers/use_get_cases.tsx index b3aa374f5418e..a54a4183f766a 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases.tsx @@ -19,7 +19,7 @@ import { import { useToasts } from '../common/lib/kibana'; import * as i18n from './translations'; import { getCases, patchCase } from './api'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; export interface UseGetCasesState { data: AllCases; @@ -145,7 +145,7 @@ export const useGetCases = ( initialFilterOptions?: Partial<FilterOptions>; } = {} ): UseGetCases => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const { initialQueryParams = empty, initialFilterOptions = empty } = params; const [state, dispatch] = useReducer(dataFetchReducer, { data: initialData, diff --git a/x-pack/plugins/cases/public/containers/use_get_cases_status.test.tsx b/x-pack/plugins/cases/public/containers/use_get_cases_status.test.tsx index b9047fdafee61..93da0ecbd14ae 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases_status.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases_status.test.tsx @@ -24,14 +24,11 @@ describe('useGetCasesStatus', () => { }); it('init', async () => { + const { result } = renderHook<string, UseGetCasesStatus>(() => useGetCasesStatus(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); + await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, UseGetCasesStatus>( - () => useGetCasesStatus(), - { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - } - ); - await waitForNextUpdate(); expect(result.current).toEqual({ countClosedCases: null, countOpenCases: null, @@ -53,7 +50,6 @@ describe('useGetCasesStatus', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(spyOnGetCasesStatus).toBeCalledWith(abortCtrl.signal, [SECURITY_SOLUTION_OWNER]); }); }); @@ -67,7 +63,6 @@ describe('useGetCasesStatus', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ countClosedCases: casesStatus.countClosedCases, countOpenCases: casesStatus.countOpenCases, @@ -93,7 +88,6 @@ describe('useGetCasesStatus', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ countClosedCases: 0, diff --git a/x-pack/plugins/cases/public/containers/use_get_cases_status.tsx b/x-pack/plugins/cases/public/containers/use_get_cases_status.tsx index 909bc42345759..5e21c339856fb 100644 --- a/x-pack/plugins/cases/public/containers/use_get_cases_status.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_cases_status.tsx @@ -7,7 +7,7 @@ import { useCallback, useEffect, useState, useRef } from 'react'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; import { getCasesStatus } from './api'; import * as i18n from './translations'; import { CasesStatus } from './types'; @@ -31,7 +31,7 @@ export interface UseGetCasesStatus extends CasesStatusState { } export const useGetCasesStatus = (): UseGetCasesStatus => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const [casesStatusState, setCasesStatusState] = useState<CasesStatusState>(initialData); const toasts = useToasts(); const isCancelledRef = useRef(false); diff --git a/x-pack/plugins/cases/public/containers/use_get_reporters.test.tsx b/x-pack/plugins/cases/public/containers/use_get_reporters.test.tsx index 692c5237f58bf..21f9352a7cbc0 100644 --- a/x-pack/plugins/cases/public/containers/use_get_reporters.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_reporters.test.tsx @@ -24,14 +24,11 @@ describe('useGetReporters', () => { }); it('init', async () => { + const { result } = renderHook<string, UseGetReporters>(() => useGetReporters(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); + await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, UseGetReporters>( - () => useGetReporters(), - { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - } - ); - await waitForNextUpdate(); expect(result.current).toEqual({ reporters: [], respReporters: [], @@ -49,7 +46,6 @@ describe('useGetReporters', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(spyOnGetReporters).toBeCalledWith(abortCtrl.signal, [SECURITY_SOLUTION_OWNER]); }); }); @@ -63,7 +59,6 @@ describe('useGetReporters', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ reporters, respReporters, @@ -84,7 +79,6 @@ describe('useGetReporters', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.fetchReporters(); expect(spyOnGetReporters).toHaveBeenCalledTimes(2); }); @@ -104,7 +98,6 @@ describe('useGetReporters', () => { } ); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ reporters: [], diff --git a/x-pack/plugins/cases/public/containers/use_get_reporters.tsx b/x-pack/plugins/cases/public/containers/use_get_reporters.tsx index b3c2eff2c8e01..881933419d60b 100644 --- a/x-pack/plugins/cases/public/containers/use_get_reporters.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_reporters.tsx @@ -12,7 +12,7 @@ import { User } from '../../common'; import { getReporters } from './api'; import * as i18n from './translations'; import { useToasts } from '../common/lib/kibana'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; interface ReportersState { reporters: string[]; @@ -33,7 +33,7 @@ export interface UseGetReporters extends ReportersState { } export const useGetReporters = (): UseGetReporters => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const [reportersState, setReporterState] = useState<ReportersState>(initialData); const toasts = useToasts(); diff --git a/x-pack/plugins/cases/public/containers/use_get_tags.test.tsx b/x-pack/plugins/cases/public/containers/use_get_tags.test.tsx index 60d368aca0a04..b2bf4737356cc 100644 --- a/x-pack/plugins/cases/public/containers/use_get_tags.test.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_tags.test.tsx @@ -24,11 +24,11 @@ describe('useGetTags', () => { }); it('init', async () => { + const { result } = renderHook<string, UseGetTags>(() => useGetTags(), { + wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, + }); + await act(async () => { - const { result, waitForNextUpdate } = renderHook<string, UseGetTags>(() => useGetTags(), { - wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, - }); - await waitForNextUpdate(); expect(result.current).toEqual({ tags: [], isLoading: true, @@ -45,7 +45,6 @@ describe('useGetTags', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(spyOnGetTags).toBeCalledWith(abortCtrl.signal, [SECURITY_SOLUTION_OWNER]); }); }); @@ -56,7 +55,6 @@ describe('useGetTags', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ tags, isLoading: false, @@ -73,7 +71,6 @@ describe('useGetTags', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); result.current.fetchTags(); expect(spyOnGetTags).toHaveBeenCalledTimes(2); }); @@ -90,7 +87,6 @@ describe('useGetTags', () => { wrapper: ({ children }) => <TestProviders>{children}</TestProviders>, }); await waitForNextUpdate(); - await waitForNextUpdate(); expect(result.current).toEqual({ tags: [], diff --git a/x-pack/plugins/cases/public/containers/use_get_tags.tsx b/x-pack/plugins/cases/public/containers/use_get_tags.tsx index 362e7ebf8fbf3..15f3eafb2f113 100644 --- a/x-pack/plugins/cases/public/containers/use_get_tags.tsx +++ b/x-pack/plugins/cases/public/containers/use_get_tags.tsx @@ -7,7 +7,7 @@ import { useEffect, useReducer, useRef, useCallback } from 'react'; import { useToasts } from '../common/lib/kibana'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; import { getTags } from './api'; import * as i18n from './translations'; @@ -53,7 +53,7 @@ const dataFetchReducer = (state: TagsState, action: Action): TagsState => { const initialData: string[] = []; export const useGetTags = (): UseGetTags => { - const owner = useOwnerContext(); + const { owner } = useCasesContext(); const [state, dispatch] = useReducer(dataFetchReducer, { isLoading: true, isError: false, diff --git a/x-pack/plugins/cases/public/containers/use_update_comment.tsx b/x-pack/plugins/cases/public/containers/use_update_comment.tsx index 3c307d86ac7bc..cc287d4dee863 100644 --- a/x-pack/plugins/cases/public/containers/use_update_comment.tsx +++ b/x-pack/plugins/cases/public/containers/use_update_comment.tsx @@ -7,7 +7,7 @@ import { useReducer, useCallback, useRef, useEffect } from 'react'; import { useToasts } from '../common/lib/kibana'; -import { useOwnerContext } from '../components/owner_context/use_owner_context'; +import { useCasesContext } from '../components/cases_context/use_cases_context'; import { patchComment } from './api'; import * as i18n from './translations'; import { Case } from './types'; @@ -75,7 +75,7 @@ export const useUpdateComment = (): UseUpdateComment => { const abortCtrlRef = useRef(new AbortController()); // this hook guarantees that there will be at least one value in the owner array, we'll // just use the first entry just in case there are more than one entry - const owner = useOwnerContext()[0]; + const owner = useCasesContext().owner[0]; const dispatchUpdateComment = useCallback( async ({ diff --git a/x-pack/plugins/cases/public/index.tsx b/x-pack/plugins/cases/public/index.tsx index a33bb14cd78c1..79eefba78a488 100644 --- a/x-pack/plugins/cases/public/index.tsx +++ b/x-pack/plugins/cases/public/index.tsx @@ -14,9 +14,17 @@ export function plugin(initializerContext: PluginInitializerContext) { export type { CasesUiPlugin }; export type { CasesUiStart } from './types'; -export type { AllCasesProps } from './components/all_cases'; -export type { AllCasesSelectorModalProps } from './components/all_cases/selector_modal'; -export type { CaseViewProps } from './components/case_view'; -export type { ConfigureCasesProps } from './components/configure_cases'; -export type { CreateCaseProps } from './components/create'; -export type { RecentCasesProps } from './components/recent_cases'; +export type { GetCasesProps } from './methods/get_cases'; +export type { GetCreateCaseFlyoutProps } from './methods/get_create_case_flyout'; +export type { GetAllCasesSelectorModalProps } from './methods/get_all_cases_selector_modal'; +export type { GetRecentCasesProps } from './methods/get_recent_cases'; + +export type { ICasesDeepLinkId } from './common/navigation'; +export { + getCasesDeepLinks, + CasesDeepLinkId, + generateCaseViewPath, + getCreateCasePath, + getCaseViewPath, + getCasesConfigurePath, +} from './common/navigation'; diff --git a/x-pack/plugins/cases/public/methods/get_all_cases.tsx b/x-pack/plugins/cases/public/methods/get_all_cases.tsx deleted file mode 100644 index d3e7a924788f3..0000000000000 --- a/x-pack/plugins/cases/public/methods/get_all_cases.tsx +++ /dev/null @@ -1,17 +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 { EuiLoadingSpinner } from '@elastic/eui'; -import React, { lazy, Suspense } from 'react'; -import { AllCasesProps } from '../components/all_cases'; - -const AllCasesLazy = lazy(() => import('../components/all_cases')); -export const getAllCasesLazy = (props: AllCasesProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <AllCasesLazy {...props} /> - </Suspense> -); diff --git a/x-pack/plugins/cases/public/methods/get_all_cases_selector_modal.tsx b/x-pack/plugins/cases/public/methods/get_all_cases_selector_modal.tsx index dbb466129c60b..0710dcd30508b 100644 --- a/x-pack/plugins/cases/public/methods/get_all_cases_selector_modal.tsx +++ b/x-pack/plugins/cases/public/methods/get_all_cases_selector_modal.tsx @@ -8,14 +8,31 @@ import React, { lazy, Suspense } from 'react'; import { EuiLoadingSpinner } from '@elastic/eui'; import { AllCasesSelectorModalProps } from '../components/all_cases/selector_modal'; -import { OwnerProvider } from '../components/owner_context'; -import { Owner } from '../types'; +import { CasesProvider, CasesContextProps } from '../components/cases_context'; -const AllCasesSelectorModalLazy = lazy(() => import('../components/all_cases/selector_modal')); -export const getAllCasesSelectorModalLazy = (props: AllCasesSelectorModalProps & Owner) => ( - <OwnerProvider owner={props.owner}> +export type GetAllCasesSelectorModalProps = AllCasesSelectorModalProps & CasesContextProps; + +const AllCasesSelectorModalLazy: React.FC<AllCasesSelectorModalProps> = lazy( + () => import('../components/all_cases/selector_modal') +); +export const getAllCasesSelectorModalLazy = ({ + owner, + userCanCrud, + alertData, + hiddenStatuses, + onRowClick, + updateCase, + onClose, +}: GetAllCasesSelectorModalProps) => ( + <CasesProvider value={{ owner, userCanCrud }}> <Suspense fallback={<EuiLoadingSpinner />}> - <AllCasesSelectorModalLazy {...props} /> + <AllCasesSelectorModalLazy + alertData={alertData} + hiddenStatuses={hiddenStatuses} + onRowClick={onRowClick} + updateCase={updateCase} + onClose={onClose} + /> </Suspense> - </OwnerProvider> + </CasesProvider> ); diff --git a/x-pack/plugins/cases/public/methods/get_case_view.tsx b/x-pack/plugins/cases/public/methods/get_case_view.tsx deleted file mode 100644 index 00fe2438a1a7d..0000000000000 --- a/x-pack/plugins/cases/public/methods/get_case_view.tsx +++ /dev/null @@ -1,17 +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, { lazy, Suspense } from 'react'; -import { EuiLoadingSpinner } from '@elastic/eui'; -import { CaseViewProps } from '../components/case_view'; - -const CaseViewLazy = lazy(() => import('../components/case_view')); -export const getCaseViewLazy = (props: CaseViewProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <CaseViewLazy {...props} /> - </Suspense> -); diff --git a/x-pack/plugins/cases/public/methods/get_cases.tsx b/x-pack/plugins/cases/public/methods/get_cases.tsx new file mode 100644 index 0000000000000..432c2d9fc5b2b --- /dev/null +++ b/x-pack/plugins/cases/public/methods/get_cases.tsx @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiLoadingSpinner } from '@elastic/eui'; +import React, { lazy, Suspense } from 'react'; +import type { CasesProps } from '../components/app'; +import { CasesProvider, CasesContextProps } from '../components/cases_context'; + +export type GetCasesProps = CasesProps & CasesContextProps; + +const CasesLazy: React.FC<CasesProps> = lazy(() => import('../components/app')); +export const getCasesLazy = ({ + owner, + userCanCrud, + basePath, + disableAlerts, + onComponentInitialized, + actionsNavigation, + ruleDetailsNavigation, + showAlertDetails, + useFetchAlertData, + refreshRef, + hideSyncAlerts, + timelineIntegration, +}: GetCasesProps) => ( + <CasesProvider value={{ owner, userCanCrud, basePath }}> + <Suspense fallback={<EuiLoadingSpinner />}> + <CasesLazy + disableAlerts={disableAlerts} + onComponentInitialized={onComponentInitialized} + actionsNavigation={actionsNavigation} + ruleDetailsNavigation={ruleDetailsNavigation} + showAlertDetails={showAlertDetails} + useFetchAlertData={useFetchAlertData} + refreshRef={refreshRef} + hideSyncAlerts={hideSyncAlerts} + timelineIntegration={timelineIntegration} + /> + </Suspense> + </CasesProvider> +); diff --git a/x-pack/plugins/cases/public/methods/get_configure_cases.tsx b/x-pack/plugins/cases/public/methods/get_configure_cases.tsx deleted file mode 100644 index 96a3dbd55d7de..0000000000000 --- a/x-pack/plugins/cases/public/methods/get_configure_cases.tsx +++ /dev/null @@ -1,17 +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 { EuiLoadingSpinner } from '@elastic/eui'; -import React, { lazy, Suspense } from 'react'; -import { ConfigureCasesProps } from '../components/configure_cases'; - -const ConfigureCasesLazy = lazy(() => import('../components/configure_cases')); -export const getConfigureCasesLazy = (props: ConfigureCasesProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <ConfigureCasesLazy {...props} /> - </Suspense> -); diff --git a/x-pack/plugins/cases/public/methods/get_create_case.tsx b/x-pack/plugins/cases/public/methods/get_create_case.tsx deleted file mode 100644 index b030ed669b663..0000000000000 --- a/x-pack/plugins/cases/public/methods/get_create_case.tsx +++ /dev/null @@ -1,17 +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, { lazy, Suspense } from 'react'; -import { EuiLoadingSpinner } from '@elastic/eui'; -import { CreateCaseProps } from '../components/create'; - -const CreateCaseLazy = lazy(() => import('../components/create')); -export const getCreateCaseLazy = (props: CreateCaseProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <CreateCaseLazy {...props} /> - </Suspense> -); diff --git a/x-pack/plugins/cases/public/methods/get_create_case_flyout.tsx b/x-pack/plugins/cases/public/methods/get_create_case_flyout.tsx new file mode 100644 index 0000000000000..2128063ea9084 --- /dev/null +++ b/x-pack/plugins/cases/public/methods/get_create_case_flyout.tsx @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { lazy, Suspense } from 'react'; +import { EuiLoadingSpinner } from '@elastic/eui'; +import type { CreateCaseFlyoutProps } from '../components/create/flyout'; +import { CasesProvider, CasesContextProps } from '../components/cases_context'; + +export type GetCreateCaseFlyoutProps = CreateCaseFlyoutProps & CasesContextProps; + +const CreateCaseFlyoutLazy: React.FC<CreateCaseFlyoutProps> = lazy( + () => import('../components/create/flyout') +); +export const getCreateCaseFlyoutLazy = ({ + owner, + userCanCrud, + afterCaseCreated, + onClose, + onSuccess, + disableAlerts, +}: GetCreateCaseFlyoutProps) => ( + <CasesProvider value={{ owner, userCanCrud }}> + <Suspense fallback={<EuiLoadingSpinner />}> + <CreateCaseFlyoutLazy + afterCaseCreated={afterCaseCreated} + onClose={onClose} + onSuccess={onSuccess} + disableAlerts={disableAlerts} + /> + </Suspense> + </CasesProvider> +); diff --git a/x-pack/plugins/cases/public/methods/get_recent_cases.tsx b/x-pack/plugins/cases/public/methods/get_recent_cases.tsx index e87db9320ca3d..32ad7932eeeb4 100644 --- a/x-pack/plugins/cases/public/methods/get_recent_cases.tsx +++ b/x-pack/plugins/cases/public/methods/get_recent_cases.tsx @@ -7,11 +7,18 @@ import { EuiLoadingSpinner } from '@elastic/eui'; import React, { lazy, Suspense } from 'react'; +import { CasesProvider, CasesContextProps } from '../components/cases_context'; import { RecentCasesProps } from '../components/recent_cases'; -const RecentCasesLazy = lazy(() => import('../components/recent_cases')); -export const getRecentCasesLazy = (props: RecentCasesProps) => ( - <Suspense fallback={<EuiLoadingSpinner />}> - <RecentCasesLazy {...props} /> - </Suspense> +export type GetRecentCasesProps = RecentCasesProps & CasesContextProps; + +const RecentCasesLazy: React.FC<RecentCasesProps> = lazy( + () => import('../components/recent_cases') +); +export const getRecentCasesLazy = ({ owner, userCanCrud, maxCasesToShow }: GetRecentCasesProps) => ( + <CasesProvider value={{ owner, userCanCrud }}> + <Suspense fallback={<EuiLoadingSpinner />}> + <RecentCasesLazy maxCasesToShow={maxCasesToShow} /> + </Suspense> + </CasesProvider> ); diff --git a/x-pack/plugins/cases/public/methods/index.ts b/x-pack/plugins/cases/public/methods/index.ts index 1d91e7c4df6d2..ee62ddaae7ce5 100644 --- a/x-pack/plugins/cases/public/methods/index.ts +++ b/x-pack/plugins/cases/public/methods/index.ts @@ -5,9 +5,7 @@ * 2.0. */ -export * from './get_all_cases'; -export * from './get_create_case'; -export * from './get_case_view'; -export * from './get_configure_cases'; +export * from './get_cases'; export * from './get_recent_cases'; export * from './get_all_cases_selector_modal'; +export * from './get_create_case_flyout'; diff --git a/x-pack/plugins/cases/public/mocks.ts b/x-pack/plugins/cases/public/mocks.ts index c543baa477475..f2c7984f1469e 100644 --- a/x-pack/plugins/cases/public/mocks.ts +++ b/x-pack/plugins/cases/public/mocks.ts @@ -8,11 +8,9 @@ import { CasesUiStart } from './types'; const createStartContract = (): jest.Mocked<CasesUiStart> => ({ - getAllCases: jest.fn(), + getCases: jest.fn(), getAllCasesSelectorModal: jest.fn(), - getCaseView: jest.fn(), - getConfigureCases: jest.fn(), - getCreateCase: jest.fn(), + getCreateCaseFlyout: jest.fn(), getRecentCases: jest.fn(), }); diff --git a/x-pack/plugins/cases/public/plugin.ts b/x-pack/plugins/cases/public/plugin.ts index 2b4fb40545548..b6b9643ea5856 100644 --- a/x-pack/plugins/cases/public/plugin.ts +++ b/x-pack/plugins/cases/public/plugin.ts @@ -10,12 +10,10 @@ import { CasesUiStart, SetupPlugins, StartPlugins } from './types'; import { KibanaServices } from './common/lib/kibana'; import { getCaseConnectorUi } from './components/connectors'; import { - getAllCasesLazy, - getCaseViewLazy, - getConfigureCasesLazy, - getCreateCaseLazy, + getCasesLazy, getRecentCasesLazy, getAllCasesSelectorModalLazy, + getCreateCaseFlyoutLazy, } from './methods'; import { CasesUiConfigType, ENABLE_CASE_CONNECTOR } from '../common'; @@ -39,41 +37,9 @@ export class CasesUiPlugin implements Plugin<void, CasesUiStart, SetupPlugins, S const config = this.initializerContext.config.get<CasesUiConfigType>(); KibanaServices.init({ ...core, ...plugins, kibanaVersion: this.kibanaVersion, config }); return { - /** - * Get the all cases table - * @param props AllCasesProps - * @return {ReactElement<AllCasesProps>} - */ - getAllCases: getAllCasesLazy, - /** - * Get the case view component - * @param props CaseViewProps - * @return {ReactElement<CaseViewProps>} - */ - getCaseView: getCaseViewLazy, - /** - * Get the configure case component - * @param props ConfigureCasesProps - * @return {ReactElement<ConfigureCasesProps>} - */ - getConfigureCases: getConfigureCasesLazy, - /** - * Get the create case form - * @param props CreateCaseProps - * @return {ReactElement<CreateCaseProps>} - */ - getCreateCase: getCreateCaseLazy, - /** - * Get the recent cases component - * @param props RecentCasesProps - * @return {ReactElement<RecentCasesProps>} - */ + getCases: getCasesLazy, getRecentCases: getRecentCasesLazy, - /** - * use Modal hook for all cases selector - * @param props UseAllCasesSelectorModalProps - * @return UseAllCasesSelectorModalReturnedValues - */ + getCreateCaseFlyout: getCreateCaseFlyoutLazy, getAllCasesSelectorModal: getAllCasesSelectorModalLazy, }; } diff --git a/x-pack/plugins/cases/public/types.ts b/x-pack/plugins/cases/public/types.ts index 5b19bcfa8ac46..1e995db3caa31 100644 --- a/x-pack/plugins/cases/public/types.ts +++ b/x-pack/plugins/cases/public/types.ts @@ -19,12 +19,12 @@ import type { EmbeddableStart } from '../../../../src/plugins/embeddable/public' import type { SpacesPluginStart } from '../../spaces/public'; import type { Storage } from '../../../../src/plugins/kibana_utils/public'; -import { AllCasesProps } from './components/all_cases'; -import { CaseViewProps } from './components/case_view'; -import { ConfigureCasesProps } from './components/configure_cases'; -import { CreateCaseProps } from './components/create'; -import { RecentCasesProps } from './components/recent_cases'; -import { AllCasesSelectorModalProps } from './components/all_cases/selector_modal'; +import { + GetCasesProps, + GetAllCasesSelectorModalProps, + GetCreateCaseFlyoutProps, + GetRecentCasesProps, +} from './methods'; export interface SetupPlugins { security: SecurityPluginSetup; @@ -51,47 +51,31 @@ export type StartServices = CoreStart & security: SecurityPluginSetup; }; -export interface Owner { - owner: string[]; -} - export interface CasesUiStart { /** - * Get the all cases table - * @param props AllCasesProps - * @returns A react component that displays all cases + * Get cases + * @param props GetCasesProps + * @return {ReactElement<GetCasesProps>} */ - getAllCases: (props: AllCasesProps) => ReactElement<AllCasesProps>; + getCases: (props: GetCasesProps) => ReactElement<GetCasesProps>; /** - * use Modal hook for all cases selector - * @param props UseAllCasesSelectorModalProps + * Modal to select a case in a list of all owner cases + * @param props GetAllCasesSelectorModalProps * @returns A react component that is a modal for selecting a case */ getAllCasesSelectorModal: ( - props: AllCasesSelectorModalProps - ) => ReactElement<AllCasesSelectorModalProps>; - /** - * Get the case view component - * @param props CaseViewProps - * @returns A react component for viewing a specific case - */ - getCaseView: (props: CaseViewProps) => ReactElement<CaseViewProps>; - /** - * Get the configure case component - * @param props ConfigureCasesProps - * @returns A react component for configuring a specific case - */ - getConfigureCases: (props: ConfigureCasesProps) => ReactElement<ConfigureCasesProps>; + props: GetAllCasesSelectorModalProps + ) => ReactElement<GetAllCasesSelectorModalProps>; /** - * Get the create case form - * @param props CreateCaseProps - * @returns A react component for creating a new case + * Flyout with the form to create a case for the owner + * @param props GetCreateCaseFlyoutProps + * @returns A react component that is a flyout for creating a case */ - getCreateCase: (props: CreateCaseProps) => ReactElement<CreateCaseProps>; + getCreateCaseFlyout: (props: GetCreateCaseFlyoutProps) => ReactElement<GetCreateCaseFlyoutProps>; /** * Get the recent cases component - * @param props RecentCasesProps + * @param props GetRecentCasesProps * @returns A react component for showing recent cases */ - getRecentCases: (props: RecentCasesProps) => ReactElement<RecentCasesProps>; + getRecentCases: (props: GetRecentCasesProps) => ReactElement<GetRecentCasesProps>; } diff --git a/x-pack/plugins/cases/server/authorization/types.ts b/x-pack/plugins/cases/server/authorization/types.ts index 40d2b1fc4f6e5..8abea391cc9ac 100644 --- a/x-pack/plugins/cases/server/authorization/types.ts +++ b/x-pack/plugins/cases/server/authorization/types.ts @@ -6,7 +6,7 @@ */ import { EcsEventType, KibanaRequest } from 'kibana/server'; -import { KueryNode } from 'src/plugins/data/common'; +import type { KueryNode } from '@kbn/es-query'; import { Space } from '../../../spaces/server'; /** diff --git a/x-pack/plugins/cases/server/authorization/utils.test.ts b/x-pack/plugins/cases/server/authorization/utils.test.ts index 3ebf6ee398e38..2afffbbb768b8 100644 --- a/x-pack/plugins/cases/server/authorization/utils.test.ts +++ b/x-pack/plugins/cases/server/authorization/utils.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { nodeBuilder } from '../../../../../src/plugins/data/common'; +import { nodeBuilder } from '@kbn/es-query'; import { OWNER_FIELD } from '../../common'; import { combineFilterWithAuthorizationFilter, diff --git a/x-pack/plugins/cases/server/authorization/utils.ts b/x-pack/plugins/cases/server/authorization/utils.ts index 92293d2814474..f3a8512548430 100644 --- a/x-pack/plugins/cases/server/authorization/utils.ts +++ b/x-pack/plugins/cases/server/authorization/utils.ts @@ -6,7 +6,7 @@ */ import { remove, uniq } from 'lodash'; -import { nodeBuilder, KueryNode } from '../../../../../src/plugins/data/common'; +import { nodeBuilder, KueryNode } from '@kbn/es-query'; import { OWNER_FIELD } from '../../common'; export const getOwnersFilter = ( diff --git a/x-pack/plugins/cases/server/client/attachments/add.ts b/x-pack/plugins/cases/server/client/attachments/add.ts index 159ff3b41aba9..7f6ede930e4c3 100644 --- a/x-pack/plugins/cases/server/client/attachments/add.ts +++ b/x-pack/plugins/cases/server/client/attachments/add.ts @@ -10,6 +10,7 @@ import { pipe } from 'fp-ts/lib/pipeable'; import { fold } from 'fp-ts/lib/Either'; import { identity } from 'fp-ts/lib/function'; +import { nodeBuilder } from '@kbn/es-query'; import { SavedObject, SavedObjectsClientContract, @@ -17,7 +18,6 @@ import { SavedObjectsUtils, } from '../../../../../../src/core/server'; import { LensServerPluginSetup } from '../../../../lens/server'; -import { nodeBuilder } from '../../../../../../src/plugins/data/common'; import { AlertCommentRequestRt, diff --git a/x-pack/plugins/cases/server/client/cases/update.ts b/x-pack/plugins/cases/server/client/cases/update.ts index ed19444414d57..da1c25c83a37b 100644 --- a/x-pack/plugins/cases/server/client/cases/update.ts +++ b/x-pack/plugins/cases/server/client/cases/update.ts @@ -18,7 +18,7 @@ import { SavedObjectsFindResult, } from 'kibana/server'; -import { nodeBuilder } from '../../../../../../src/plugins/data/common'; +import { nodeBuilder } from '@kbn/es-query'; import { AssociationType, diff --git a/x-pack/plugins/cases/server/client/sub_cases/update.ts b/x-pack/plugins/cases/server/client/sub_cases/update.ts index c8cb96cbb6b8c..c0d3d571bb1e8 100644 --- a/x-pack/plugins/cases/server/client/sub_cases/update.ts +++ b/x-pack/plugins/cases/server/client/sub_cases/update.ts @@ -16,7 +16,7 @@ import { Logger, } from 'kibana/server'; -import { nodeBuilder } from '../../../../../../src/plugins/data/common'; +import { nodeBuilder } from '@kbn/es-query'; import { CasesService } from '../../services'; import { CASE_COMMENT_SAVED_OBJECT, diff --git a/x-pack/plugins/cases/server/client/utils.ts b/x-pack/plugins/cases/server/client/utils.ts index a6fd9984bfea6..87bf4d04b3e8f 100644 --- a/x-pack/plugins/cases/server/client/utils.ts +++ b/x-pack/plugins/cases/server/client/utils.ts @@ -12,8 +12,7 @@ import { fold } from 'fp-ts/lib/Either'; import { identity } from 'fp-ts/lib/function'; import { pipe } from 'fp-ts/lib/pipeable'; -import { nodeBuilder, KueryNode } from '../../../../../src/plugins/data/common'; -import { esKuery } from '../../../../../src/plugins/data/server'; +import { nodeBuilder, fromKueryExpression, KueryNode } from '@kbn/es-query'; import { AlertCommentRequestRt, ActionsCommentRequestRt, @@ -183,7 +182,7 @@ export function stringToKueryNode(expression?: string): KueryNode | undefined { return; } - return esKuery.fromKueryExpression(expression); + return fromKueryExpression(expression); } /** diff --git a/x-pack/plugins/cases/server/common/types.ts b/x-pack/plugins/cases/server/common/types.ts index 067f2fc7c311b..364be027221d0 100644 --- a/x-pack/plugins/cases/server/common/types.ts +++ b/x-pack/plugins/cases/server/common/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { KueryNode } from '../../../../../src/plugins/data/server'; +import type { KueryNode } from '@kbn/es-query'; import { SavedObjectFindOptions } from '../../common'; /** diff --git a/x-pack/plugins/cases/server/services/attachments/index.ts b/x-pack/plugins/cases/server/services/attachments/index.ts index 105b6a3125523..95a66fd9af192 100644 --- a/x-pack/plugins/cases/server/services/attachments/index.ts +++ b/x-pack/plugins/cases/server/services/attachments/index.ts @@ -12,7 +12,7 @@ import { SavedObjectsUpdateOptions, } from 'kibana/server'; -import { KueryNode } from '../../../../../../src/plugins/data/common'; +import type { KueryNode } from '@kbn/es-query'; import { AttributesTypeAlerts, CASE_COMMENT_SAVED_OBJECT, diff --git a/x-pack/plugins/cases/server/services/cases/index.ts b/x-pack/plugins/cases/server/services/cases/index.ts index 4a22793f78af5..15e60c49768a5 100644 --- a/x-pack/plugins/cases/server/services/cases/index.ts +++ b/x-pack/plugins/cases/server/services/cases/index.ts @@ -20,7 +20,7 @@ import { } from 'kibana/server'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { nodeBuilder, KueryNode } from '../../../../../../src/plugins/data/common'; +import { nodeBuilder, KueryNode } from '@kbn/es-query'; import { SecurityPluginSetup } from '../../../../security/server'; import { diff --git a/x-pack/plugins/cross_cluster_replication/public/app/components/auto_follow_pattern_form.js b/x-pack/plugins/cross_cluster_replication/public/app/components/auto_follow_pattern_form.js index a412841686f27..04479133b3cea 100644 --- a/x-pack/plugins/cross_cluster_replication/public/app/components/auto_follow_pattern_form.js +++ b/x-pack/plugins/cross_cluster_replication/public/app/components/auto_follow_pattern_form.js @@ -22,7 +22,7 @@ import { EuiForm, EuiFormHelpText, EuiFormRow, - EuiLoadingKibana, + EuiLoadingLogo, EuiLoadingSpinner, EuiOverlayMask, EuiSpacer, @@ -645,7 +645,7 @@ export class AutoFollowPatternForm extends PureComponent { <EuiFlexGroup gutterSize="m" alignItems="center"> <EuiFlexItem grow={false}> <EuiButton - color="secondary" + color="success" iconType="check" onClick={this.sendForm} fill @@ -707,7 +707,7 @@ export class AutoFollowPatternForm extends PureComponent { if (apiStatus === API_STATUS.SAVING) { return ( <EuiOverlayMask> - <EuiLoadingKibana size="xl" /> + <EuiLoadingLogo logo="logoKibana" size="xl" /> </EuiOverlayMask> ); } diff --git a/x-pack/plugins/cross_cluster_replication/public/app/components/follower_index_form/follower_index_form.js b/x-pack/plugins/cross_cluster_replication/public/app/components/follower_index_form/follower_index_form.js index 451f2a94fe91f..506946de609af 100644 --- a/x-pack/plugins/cross_cluster_replication/public/app/components/follower_index_form/follower_index_form.js +++ b/x-pack/plugins/cross_cluster_replication/public/app/components/follower_index_form/follower_index_form.js @@ -20,7 +20,7 @@ import { EuiFlexItem, EuiForm, EuiHorizontalRule, - EuiLoadingKibana, + EuiLoadingLogo, EuiLoadingSpinner, EuiOverlayMask, EuiSpacer, @@ -727,7 +727,7 @@ export class FollowerIndexForm extends PureComponent { <EuiFlexGroup gutterSize="m" alignItems="center"> <EuiFlexItem grow={false}> <EuiButton - color="secondary" + color="success" iconType="check" onClick={this.sendForm} fill @@ -794,7 +794,7 @@ export class FollowerIndexForm extends PureComponent { if (apiStatus === API_STATUS.SAVING) { return ( <EuiOverlayMask> - <EuiLoadingKibana size="xl" /> + <EuiLoadingLogo logo="logoKibana" size="xl" /> </EuiOverlayMask> ); } diff --git a/x-pack/plugins/cross_cluster_replication/public/app/sections/home/auto_follow_pattern_list/components/auto_follow_pattern_table/auto_follow_pattern_table.js b/x-pack/plugins/cross_cluster_replication/public/app/sections/home/auto_follow_pattern_list/components/auto_follow_pattern_table/auto_follow_pattern_table.js index 0d228f2e63802..6873c4f2920f6 100644 --- a/x-pack/plugins/cross_cluster_replication/public/app/sections/home/auto_follow_pattern_list/components/auto_follow_pattern_table/auto_follow_pattern_table.js +++ b/x-pack/plugins/cross_cluster_replication/public/app/sections/home/auto_follow_pattern_list/components/auto_follow_pattern_table/auto_follow_pattern_table.js @@ -14,7 +14,7 @@ import { EuiInMemoryTable, EuiButton, EuiLink, - EuiLoadingKibana, + EuiLoadingLogo, EuiOverlayMask, EuiHealth, } from '@elastic/eui'; @@ -273,7 +273,7 @@ export class AutoFollowPatternTable extends PureComponent { if (apiStatusDelete === API_STATUS.DELETING) { return ( <EuiOverlayMask> - <EuiLoadingKibana size="xl" /> + <EuiLoadingLogo logo="logoKibana" size="xl" /> </EuiOverlayMask> ); } diff --git a/x-pack/plugins/cross_cluster_replication/public/app/sections/home/follower_indices_list/components/detail_panel/detail_panel.js b/x-pack/plugins/cross_cluster_replication/public/app/sections/home/follower_indices_list/components/detail_panel/detail_panel.js index 488311e4ae078..0c5883471e98c 100644 --- a/x-pack/plugins/cross_cluster_replication/public/app/sections/home/follower_indices_list/components/detail_panel/detail_panel.js +++ b/x-pack/plugins/cross_cluster_replication/public/app/sections/home/follower_indices_list/components/detail_panel/detail_panel.js @@ -30,6 +30,7 @@ import { EuiTextColor, EuiTitle, } from '@elastic/eui'; +import 'react-ace'; import 'brace/theme/textmate'; import { getIndexListUri } from '../../../../../../../../../plugins/index_management/public'; diff --git a/x-pack/plugins/cross_cluster_replication/public/app/sections/home/follower_indices_list/components/follower_indices_table/follower_indices_table.js b/x-pack/plugins/cross_cluster_replication/public/app/sections/home/follower_indices_list/components/follower_indices_table/follower_indices_table.js index 909fa44319ae9..c3ae1678c3055 100644 --- a/x-pack/plugins/cross_cluster_replication/public/app/sections/home/follower_indices_list/components/follower_indices_table/follower_indices_table.js +++ b/x-pack/plugins/cross_cluster_replication/public/app/sections/home/follower_indices_list/components/follower_indices_table/follower_indices_table.js @@ -14,7 +14,7 @@ import { EuiButton, EuiInMemoryTable, EuiLink, - EuiLoadingKibana, + EuiLoadingLogo, EuiOverlayMask, } from '@elastic/eui'; @@ -262,7 +262,7 @@ export class FollowerIndicesTable extends PureComponent { if (apiStatusDelete === API_STATUS.DELETING) { return ( <EuiOverlayMask> - <EuiLoadingKibana size="xl" /> + <EuiLoadingLogo logo="logoKibana" size="xl" /> </EuiOverlayMask> ); } diff --git a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/status.test.tsx b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/status.test.tsx index 4711ff975fbd7..b3d299bd30613 100644 --- a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/status.test.tsx +++ b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/status.test.tsx @@ -82,7 +82,7 @@ describe('Background Search Session management status labels', () => { const label = statusIndicator .find(`[data-test-subj="sessionManagementStatusLabel"][data-test-status="complete"]`) .first(); - expect((label.props() as EuiTextProps).color).toBe('secondary'); + expect((label.props() as EuiTextProps).color).toBe('success'); expect(label.text()).toBe('Complete'); }); diff --git a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/status.tsx b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/status.tsx index 0fbfd4db1ca47..1f62ca05f50cb 100644 --- a/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/status.tsx +++ b/x-pack/plugins/data_enhanced/public/search/sessions_mgmt/components/status.tsx @@ -135,8 +135,8 @@ const getStatusAttributes = ({ }); return { - textColor: 'secondary', - icon: <EuiIcon color="secondary" type="checkInCircleFilled" />, + textColor: 'success', + icon: <EuiIcon color="success" type="checkInCircleFilled" />, label: <TableText>{getStatusText(session.status)}</TableText>, toolTipContent, }; diff --git a/x-pack/plugins/data_enhanced/public/search/ui/search_session_indicator/search_session_indicator.tsx b/x-pack/plugins/data_enhanced/public/search/ui/search_session_indicator/search_session_indicator.tsx index ad34ab3d490d4..eb67a6c5889f0 100644 --- a/x-pack/plugins/data_enhanced/public/search/ui/search_session_indicator/search_session_indicator.tsx +++ b/x-pack/plugins/data_enhanced/public/search/ui/search_session_indicator/search_session_indicator.tsx @@ -148,7 +148,7 @@ const searchSessionIndicatorViewStateToProps: { [SearchSessionState.None]: null, [SearchSessionState.Loading]: { button: { - color: 'subdued', + color: 'text', iconType: PartialClock, 'aria-label': i18n.translate( 'xpack.data.searchSessionIndicator.loadingResultsIconAriaLabel', @@ -179,7 +179,7 @@ const searchSessionIndicatorViewStateToProps: { }, [SearchSessionState.Completed]: { button: { - color: 'subdued', + color: 'text', iconType: 'check', 'aria-label': i18n.translate('xpack.data.searchSessionIndicator.resultsLoadedIconAriaLabel', { defaultMessage: 'Search session complete', diff --git a/x-pack/plugins/data_visualizer/kibana.json b/x-pack/plugins/data_visualizer/kibana.json index 81fc0a2fdfe02..8a4695cf08524 100644 --- a/x-pack/plugins/data_visualizer/kibana.json +++ b/x-pack/plugins/data_visualizer/kibana.json @@ -17,7 +17,7 @@ "maps", "home", "lens", - "indexPatternFieldEditor", + "dataViewFieldEditor", "customIntegrations" ], "requiredBundles": [ diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts b/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts index 4c8949ca22224..8476e53b9143f 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/actions.ts @@ -63,7 +63,7 @@ export function getActions( } // Allow to edit data view field - if (services.indexPatternFieldEditor?.userPermissions.editIndexPattern()) { + if (services.dataViewFieldEditor?.userPermissions.editIndexPattern()) { actions.push({ name: i18n.translate('xpack.dataVisualizer.index.dataGrid.editDataViewFieldTitle', { defaultMessage: 'Edit data view field', @@ -77,8 +77,8 @@ export function getActions( type: 'icon', icon: 'indexEdit', onClick: (item: FieldVisConfig) => { - actionFlyoutRef.current = services.indexPatternFieldEditor?.openEditor({ - ctx: { indexPattern }, + actionFlyoutRef.current = services.dataViewFieldEditor?.openEditor({ + ctx: { dataView: indexPattern }, fieldName: item.fieldName, onSave: refreshPage, }); @@ -101,8 +101,8 @@ export function getActions( return item.deletable === true; }, onClick: (item: FieldVisConfig) => { - actionFlyoutRef.current = services.indexPatternFieldEditor?.openDeleteModal({ - ctx: { indexPattern }, + actionFlyoutRef.current = services.dataViewFieldEditor?.openDeleteModal({ + ctx: { dataView: indexPattern }, fieldName: item.fieldName!, onDelete: refreshPage, }); diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts b/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts index db04712271587..70aa103b86d53 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts +++ b/x-pack/plugins/data_visualizer/public/application/common/components/field_data_row/action_menu/lens_utils.ts @@ -10,7 +10,10 @@ import type { Filter } from '@kbn/es-query'; import type { IndexPattern } from '../../../../../../../../../src/plugins/data/common'; import type { CombinedQuery } from '../../../../index_data_visualizer/types/combined_query'; import type { - IndexPatternColumn, + DateHistogramIndexPatternColumn, + GenericIndexPatternColumn, + RangeIndexPatternColumn, + TermsIndexPatternColumn, TypedLensByValueInput, XYLayerConfig, } from '../../../../../../../lens/public'; @@ -18,7 +21,7 @@ import { FieldVisConfig } from '../../stats_table/types'; import { JOB_FIELD_TYPES } from '../../../../../../common'; interface ColumnsAndLayer { - columns: Record<string, IndexPatternColumn>; + columns: Record<string, GenericIndexPatternColumn>; layer: XYLayerConfig; } @@ -32,7 +35,7 @@ const COUNT = i18n.translate('xpack.dataVisualizer.index.lensChart.countLabel', export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: IndexPattern) { // if index has no timestamp field if (defaultIndexPattern.timeFieldName === undefined) { - const columns: Record<string, IndexPatternColumn> = { + const columns: Record<string, GenericIndexPatternColumn> = { col1: { label: item.fieldName!, dataType: 'number', @@ -44,7 +47,7 @@ export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: Ind ranges: [], }, sourceField: item.fieldName!, - }, + } as RangeIndexPatternColumn, col2: { label: COUNT, dataType: 'number', @@ -64,7 +67,7 @@ export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: Ind return { columns, layer }; } - const columns: Record<string, IndexPatternColumn> = { + const columns: Record<string, GenericIndexPatternColumn> = { col2: { dataType: 'number', isBucketed: false, @@ -83,7 +86,7 @@ export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: Ind params: { interval: 'auto' }, scale: 'interval', sourceField: defaultIndexPattern.timeFieldName!, - }, + } as DateHistogramIndexPatternColumn, }; const layer: XYLayerConfig = { @@ -97,7 +100,7 @@ export function getNumberSettings(item: FieldVisConfig, defaultIndexPattern: Ind return { columns, layer }; } export function getDateSettings(item: FieldVisConfig) { - const columns: Record<string, IndexPatternColumn> = { + const columns: Record<string, GenericIndexPatternColumn> = { col2: { dataType: 'number', isBucketed: false, @@ -114,7 +117,7 @@ export function getDateSettings(item: FieldVisConfig) { params: { interval: 'auto' }, scale: 'interval', sourceField: item.fieldName!, - }, + } as DateHistogramIndexPatternColumn, }; const layer: XYLayerConfig = { accessors: ['col2'], @@ -128,7 +131,7 @@ export function getDateSettings(item: FieldVisConfig) { } export function getKeywordSettings(item: FieldVisConfig) { - const columns: Record<string, IndexPatternColumn> = { + const columns: Record<string, GenericIndexPatternColumn> = { col1: { label: TOP_VALUES_LABEL, dataType: 'string', @@ -140,7 +143,7 @@ export function getKeywordSettings(item: FieldVisConfig) { orderDirection: 'desc', }, sourceField: item.fieldName!, - }, + } as TermsIndexPatternColumn, col2: { label: COUNT, dataType: 'number', @@ -161,7 +164,7 @@ export function getKeywordSettings(item: FieldVisConfig) { } export function getBooleanSettings(item: FieldVisConfig) { - const columns: Record<string, IndexPatternColumn> = { + const columns: Record<string, GenericIndexPatternColumn> = { col1: { label: TOP_VALUES_LABEL, dataType: 'string', @@ -173,7 +176,7 @@ export function getBooleanSettings(item: FieldVisConfig) { orderDirection: 'desc', }, sourceField: item.fieldName!, - }, + } as TermsIndexPatternColumn, col2: { label: COUNT, dataType: 'number', diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/ip_content.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/ip_content.tsx index d32a8a6dfb907..2b10a4d133498 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/ip_content.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/ip_content.tsx @@ -25,7 +25,7 @@ export const IpContent: FC<FieldDataRowProps> = ({ config, onAddFilter }) => { <TopValues stats={stats} fieldFormat={fieldFormat} - barColor="secondary" + barColor="success" onAddFilter={onAddFilter} /> )} diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/keyword_content.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/keyword_content.tsx index 2bae49323a6bb..c35fa70170f14 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/keyword_content.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/keyword_content.tsx @@ -47,7 +47,7 @@ export const KeywordContent: FC<FieldDataRowProps> = ({ config, onAddFilter }) = <TopValues stats={stats} fieldFormat={fieldFormat} - barColor="secondary" + barColor="success" onAddFilter={onAddFilter} /> {EMSSuggestion && stats && <ChoroplethMap stats={stats} suggestion={EMSSuggestion} />} diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/number_content.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/number_content.tsx index a48d932ad356b..23f3d35b703be 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/number_content.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/stats_table/components/field_data_expanded_row/number_content.tsx @@ -127,7 +127,7 @@ export const NumberContent: FC<FieldDataRowProps> = ({ config, onAddFilter }) => <TopValues stats={stats} fieldFormat={fieldFormat} - barColor="secondary" + barColor="success" compressed={true} onAddFilter={onAddFilter} /> diff --git a/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx b/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx index c9b4137a0106d..59ba70d00a5a6 100644 --- a/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx +++ b/x-pack/plugins/data_visualizer/public/application/common/components/top_values/top_values.tsx @@ -28,7 +28,7 @@ import { IndexPatternField } from '../../../../../../../../src/plugins/data_view interface Props { stats: FieldVisStats | undefined; fieldFormat?: any; - barColor?: 'primary' | 'secondary' | 'danger' | 'subdued' | 'accent'; + barColor?: 'primary' | 'success' | 'danger' | 'subdued' | 'accent'; compressed?: boolean; onAddFilter?: (field: IndexPatternField | string, value: string, type: '+' | '-') => void; } diff --git a/x-pack/plugins/data_visualizer/public/application/file_data_visualizer/components/json_editor/json_editor.tsx b/x-pack/plugins/data_visualizer/public/application/file_data_visualizer/components/json_editor/json_editor.tsx index 283e146abd00d..5c28b4bb31088 100644 --- a/x-pack/plugins/data_visualizer/public/application/file_data_visualizer/components/json_editor/json_editor.tsx +++ b/x-pack/plugins/data_visualizer/public/application/file_data_visualizer/components/json_editor/json_editor.tsx @@ -7,8 +7,12 @@ import React, { FC } from 'react'; -import { EuiCodeEditor, EuiCodeEditorProps } from '@elastic/eui'; -import { expandLiteralStrings, XJsonMode } from '../../../shared_imports'; +import { + expandLiteralStrings, + XJsonMode, + EuiCodeEditor, + EuiCodeEditorProps, +} from '../../../shared_imports'; export const EDITOR_MODE = { TEXT: 'text', JSON: 'json', XJSON: new XJsonMode() }; diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_pattern_management/index_pattern_management.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_pattern_management/index_pattern_management.tsx index ade16e61050bc..eb3c5d278e94a 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_pattern_management/index_pattern_management.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/components/index_pattern_management/index_pattern_management.tsx @@ -27,12 +27,11 @@ export function DataVisualizerIndexPatternManagement( props: DataVisualizerIndexPatternManagementProps ) { const { - services: { indexPatternFieldEditor, application }, + services: { dataViewFieldEditor, application }, } = useDataVisualizerKibana(); const { useNewFieldsApi, currentIndexPattern } = props; - const indexPatternFieldEditPermission = - indexPatternFieldEditor?.userPermissions.editIndexPattern(); + const indexPatternFieldEditPermission = dataViewFieldEditor?.userPermissions.editIndexPattern(); const canEditIndexPatternField = !!indexPatternFieldEditPermission && useNewFieldsApi; const [isAddIndexPatternFieldPopoverOpen, setIsAddIndexPatternFieldPopoverOpen] = useState(false); @@ -46,14 +45,14 @@ export function DataVisualizerIndexPatternManagement( }; }, []); - if (indexPatternFieldEditor === undefined || !currentIndexPattern || !canEditIndexPatternField) { + if (dataViewFieldEditor === undefined || !currentIndexPattern || !canEditIndexPatternField) { return null; } const addField = () => { - closeFieldEditor.current = indexPatternFieldEditor.openEditor({ + closeFieldEditor.current = dataViewFieldEditor.openEditor({ ctx: { - indexPattern: currentIndexPattern, + dataView: currentIndexPattern, }, onSave: () => { const refresh: Refresh = { diff --git a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx index 83e013703c1fc..0970938f8099f 100644 --- a/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx +++ b/x-pack/plugins/data_visualizer/public/application/index_data_visualizer/index_data_visualizer.tsx @@ -178,7 +178,7 @@ export const DataVisualizerUrlStateContextProvider: FC<DataVisualizerUrlStateCon export const IndexDataVisualizer: FC<{ additionalLinks: ResultLink[] }> = ({ additionalLinks }) => { const coreStart = getCoreStart(); - const { data, maps, embeddable, share, security, fileUpload, lens, indexPatternFieldEditor } = + const { data, maps, embeddable, share, security, fileUpload, lens, dataViewFieldEditor } = getPluginsStart(); const services = { data, @@ -188,7 +188,7 @@ export const IndexDataVisualizer: FC<{ additionalLinks: ResultLink[] }> = ({ add security, fileUpload, lens, - indexPatternFieldEditor, + dataViewFieldEditor, ...coreStart, }; diff --git a/x-pack/plugins/data_visualizer/public/application/shared_imports.ts b/x-pack/plugins/data_visualizer/public/application/shared_imports.ts index 20481d2fde9be..df07c0cc0d161 100644 --- a/x-pack/plugins/data_visualizer/public/application/shared_imports.ts +++ b/x-pack/plugins/data_visualizer/public/application/shared_imports.ts @@ -5,6 +5,9 @@ * 2.0. */ +export { EuiCodeEditor } from '../../../../../src/plugins/es_ui_shared/public'; +export type { EuiCodeEditorProps } from '../../../../../src/plugins/es_ui_shared/public'; + import { XJson } from '../../../../../src/plugins/es_ui_shared/public'; const { collapseLiteralStrings, expandLiteralStrings } = XJson; diff --git a/x-pack/plugins/data_visualizer/public/plugin.ts b/x-pack/plugins/data_visualizer/public/plugin.ts index dd1d2acccf8cd..e1c6acf5c65a8 100644 --- a/x-pack/plugins/data_visualizer/public/plugin.ts +++ b/x-pack/plugins/data_visualizer/public/plugin.ts @@ -17,7 +17,7 @@ import type { FileUploadPluginStart } from '../../file_upload/public'; import type { MapsStartApi } from '../../maps/public'; import type { SecurityPluginSetup } from '../../security/public'; import type { LensPublicStart } from '../../lens/public'; -import type { IndexPatternFieldEditorStart } from '../../../../src/plugins/index_pattern_field_editor/public'; +import type { IndexPatternFieldEditorStart } from '../../../../src/plugins/data_view_field_editor/public'; import { getFileDataVisualizerComponent, getIndexDataVisualizerComponent } from './api'; import { getMaxBytesFormatted } from './application/common/util/get_max_bytes'; import { registerHomeAddData, registerHomeFeatureCatalogue } from './register_home'; @@ -36,7 +36,7 @@ export interface DataVisualizerStartDependencies { security?: SecurityPluginSetup; share: SharePluginStart; lens?: LensPublicStart; - indexPatternFieldEditor?: IndexPatternFieldEditorStart; + dataViewFieldEditor?: IndexPatternFieldEditorStart; fieldFormats: FieldFormatsStart; } diff --git a/x-pack/plugins/enterprise_search/common/__mocks__/initial_app_data.ts b/x-pack/plugins/enterprise_search/common/__mocks__/initial_app_data.ts index aa3020a9577f9..dd6dd58d02f70 100644 --- a/x-pack/plugins/enterprise_search/common/__mocks__/initial_app_data.ts +++ b/x-pack/plugins/enterprise_search/common/__mocks__/initial_app_data.ts @@ -6,6 +6,8 @@ */ export const DEFAULT_INITIAL_APP_DATA = { + kibanaVersion: '7.16.0', + enterpriseSearchVersion: '7.16.0', readOnlyMode: false, searchOAuth: { clientId: 'someUID', diff --git a/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.test.ts b/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.test.ts new file mode 100644 index 0000000000000..4cd7ceef0b758 --- /dev/null +++ b/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.test.ts @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { isVersionMismatch } from './index'; + +describe('isVersionMismatch', () => { + it('no mismatch if major and minor are the same', () => { + expect(isVersionMismatch('8.0.0', '8.0.1')).toBe(false); + }); + + it('mismatch if kibana minor is different than enterprise search minor', () => { + expect(isVersionMismatch('8.0.0', '8.1.0')).toBe(true); + }); + + it('mismatch if major is different', () => { + expect(isVersionMismatch('7.0.0', '8.0.0')).toBe(true); + }); + + it('no mismatch if versions are not available to analyze', () => { + expect(isVersionMismatch()).toBe(false); + }); +}); diff --git a/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.ts b/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.ts new file mode 100644 index 0000000000000..4147b17feefa5 --- /dev/null +++ b/x-pack/plugins/enterprise_search/common/is_version_mismatch/index.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. + */ + +export const isVersionMismatch = (enterpriseSearchVersion?: string, kibanaVersion?: string) => { + // Don't consider it a mismatch unless we know for certain it is + if (!enterpriseSearchVersion || !kibanaVersion) return false; + const [enterpriseSearchMajor, enterpriseSearchMinor] = enterpriseSearchVersion.split('.'); + const [kibanaMajor, kibanaMinor] = kibanaVersion.split('.'); + if (enterpriseSearchMajor !== kibanaMajor || enterpriseSearchMinor !== kibanaMinor) return true; + return false; +}; diff --git a/x-pack/plugins/enterprise_search/common/types/index.ts b/x-pack/plugins/enterprise_search/common/types/index.ts index 8addf17f97476..57fe3f3807783 100644 --- a/x-pack/plugins/enterprise_search/common/types/index.ts +++ b/x-pack/plugins/enterprise_search/common/types/index.ts @@ -15,6 +15,8 @@ import { } from './workplace_search'; export interface InitialAppData { + enterpriseSearchVersion?: string; + kibanaVersion?: string; readOnlyMode?: boolean; searchOAuth?: SearchOAuth; configuredLimits?: ConfiguredLimits; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts index ac464e2af353d..5a9007e3b66e3 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.test.ts @@ -28,7 +28,7 @@ describe('getDateString', () => { describe('getStatusColor', () => { it('returns a valid EUI badge color based on the status code', () => { - expect(getStatusColor(200)).toEqual('secondary'); + expect(getStatusColor(200)).toEqual('success'); expect(getStatusColor(301)).toEqual('primary'); expect(getStatusColor(404)).toEqual('warning'); expect(getStatusColor(503)).toEqual('danger'); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts index 7e5f19686f13b..9c0a186daddb1 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/utils.ts @@ -13,7 +13,7 @@ export const getDateString = (offSetDays?: number) => { export const getStatusColor = (status: number) => { let color = ''; - if (status >= 100 && status < 300) color = 'secondary'; + if (status >= 100 && status < 300) color = 'success'; if (status >= 300 && status < 400) color = 'primary'; if (status >= 400 && status < 500) color = 'warning'; if (status >= 500) color = 'danger'; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx new file mode 100644 index 0000000000000..b0ff75e73e86c --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx @@ -0,0 +1,71 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import '../../../__mocks__/engine_logic.mock'; + +import { shallow } from 'enzyme'; + +import { EuiBadge } from '@elastic/eui'; + +import { mountWithIntl } from '../../../../test_helpers'; + +import { CrawlEvent, CrawlerStatus, CrawlType } from '../types'; + +import { CrawlEventTypeBadge } from './crawl_event_type_badge'; + +const MOCK_EVENT: CrawlEvent = { + id: '618d0e66abe97bc688328900', + status: CrawlerStatus.Pending, + stage: 'crawl', + createdAt: 'Mon, 31 Aug 2020 17:00:00 +0000', + beganAt: null, + completedAt: null, + type: CrawlType.Full, + crawlConfig: { + domainAllowlist: ['https://www.elastic.co'], + }, +}; + +describe('CrawlEventTypeBadge', () => { + it('renders a badge for process crawls', () => { + const wrapper = mountWithIntl( + <CrawlEventTypeBadge event={{ ...MOCK_EVENT, stage: 'process' }} /> + ); + + const badge = wrapper.find(EuiBadge); + expect(badge.prop('color')).toEqual('hollow'); + expect(badge.text()).toEqual('Re-applied crawl rules'); + }); + + it('renders a badge for partial crawls', () => { + const wrapper = mountWithIntl( + <CrawlEventTypeBadge event={{ ...MOCK_EVENT, type: CrawlType.Partial }} /> + ); + + const badge = wrapper.find(EuiBadge); + expect(badge.prop('color')).toEqual('hollow'); + expect(badge.text()).toEqual('Partial'); + }); + + it('renders a badge for full crawls', () => { + const wrapper = mountWithIntl( + <CrawlEventTypeBadge event={{ ...MOCK_EVENT, type: CrawlType.Full }} /> + ); + + const badge = wrapper.find(EuiBadge); + expect(badge.prop('color')).toBeUndefined(); + expect(badge.text()).toEqual('Full'); + }); + + it('is empty by default', () => { + const wrapper = shallow(<CrawlEventTypeBadge event={{} as CrawlEvent} />); + + expect(wrapper.isEmptyRender()).toBe(true); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.tsx new file mode 100644 index 0000000000000..6195b5616a30b --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.tsx @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { EuiBadge } from '@elastic/eui'; + +import { i18n } from '@kbn/i18n'; + +import { CrawlEvent, CrawlType, readableCrawlTypes } from '../types'; + +export const CrawlEventTypeBadge: React.FC<{ event: CrawlEvent }> = ({ event }) => { + if (event.stage === 'process') { + return ( + <EuiBadge color="hollow"> + {i18n.translate( + 'xpack.enterpriseSearch.appSearch.crawler.crawlTypeOptions.reAppliedCrawlRules', + { + defaultMessage: 'Re-applied crawl rules', + } + )} + </EuiBadge> + ); + } + if (event.type === CrawlType.Full) { + return <EuiBadge>{readableCrawlTypes[CrawlType.Full]}</EuiBadge>; + } + if (event.type === CrawlType.Partial) { + return <EuiBadge color="hollow">{readableCrawlTypes[CrawlType.Partial]}</EuiBadge>; + } + return null; +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx index b36b92bc42847..e9ff60e4b6082 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx @@ -16,7 +16,7 @@ import { EuiBasicTable, EuiEmptyPrompt } from '@elastic/eui'; import { mountWithIntl } from '../../../../test_helpers'; -import { CrawlEvent, CrawlerStatus } from '../types'; +import { CrawlEvent, CrawlerStatus, CrawlType } from '../types'; import { CrawlRequestsTable } from './crawl_requests_table'; @@ -30,6 +30,10 @@ const values: { events: CrawlEvent[] } = { createdAt: 'Mon, 31 Aug 2020 17:00:00 +0000', beganAt: null, completedAt: null, + type: CrawlType.Full, + crawlConfig: { + domainAllowlist: ['https://www.elastic.co'], + }, }, ], }; @@ -60,6 +64,16 @@ describe('CrawlRequestsTable', () => { expect(tableContent).toContain('Aug 31, 2020'); }); + it('renders a type column', () => { + expect(tableContent).toContain('Crawl type'); + expect(tableContent).toContain('Full'); + }); + + it('renders a domains column', () => { + expect(tableContent).toContain('Domains'); + // TODO How to test for the contents of this badge? + }); + it('renders a status column', () => { expect(tableContent).toContain('Status'); expect(tableContent).toContain('Pending'); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.tsx index 6d14e35946adf..c066e734827a8 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.tsx @@ -9,21 +9,17 @@ import React from 'react'; import { useValues } from 'kea'; -import { - EuiBasicTable, - EuiEmptyPrompt, - EuiIconTip, - EuiTableFieldDataColumnType, -} from '@elastic/eui'; +import { EuiBadge, EuiBasicTable, EuiBasicTableColumn, EuiEmptyPrompt } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { CrawlerLogic } from '../crawler_logic'; import { CrawlEvent, readableCrawlerStatuses } from '../types'; +import { CrawlEventTypeBadge } from './crawl_event_type_badge'; import { CustomFormattedTimestamp } from './custom_formatted_timestamp'; -const columns: Array<EuiTableFieldDataColumnType<CrawlEvent>> = [ +const columns: Array<EuiBasicTableColumn<CrawlEvent>> = [ { field: 'id', name: i18n.translate( @@ -45,6 +41,25 @@ const columns: Array<EuiTableFieldDataColumnType<CrawlEvent>> = [ <CustomFormattedTimestamp timestamp={createdAt} /> ), }, + { + field: 'type', + name: i18n.translate( + 'xpack.enterpriseSearch.appSearch.crawler.crawlRequestsTable.column.crawlType', + { + defaultMessage: 'Crawl type', + } + ), + render: (_, event: CrawlEvent) => <CrawlEventTypeBadge event={event} />, + }, + { + name: i18n.translate( + 'xpack.enterpriseSearch.appSearch.crawler.crawlRequestsTable.column.domains', + { + defaultMessage: 'Domains', + } + ), + render: (event: CrawlEvent) => <EuiBadge>{event.crawlConfig.domainAllowlist.length}</EuiBadge>, + }, { field: 'status', name: i18n.translate( @@ -53,22 +68,7 @@ const columns: Array<EuiTableFieldDataColumnType<CrawlEvent>> = [ defaultMessage: 'Status', } ), - align: 'right', - render: (status: CrawlEvent['status'], event: CrawlEvent) => ( - <> - {event.stage === 'process' && ( - <EuiIconTip - aria-label="Process crawl" - size="m" - type="iInCircle" - color="primary" - position="top" - content="Re-applied crawl rules" - /> - )} - {readableCrawlerStatuses[status]} - </> - ), + render: (status: CrawlEvent['status']) => readableCrawlerStatuses[status], }, ]; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts index b2321073f3d95..f1e8dc6a6efa4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts @@ -25,6 +25,7 @@ import { CrawlerRules, CrawlerStatus, CrawlRule, + CrawlType, } from './types'; import { crawlerDataServerToClient } from './utils'; @@ -132,6 +133,10 @@ describe('CrawlerLogic', () => { createdAt: 'Mon, 31 Aug 2020 17:00:00 +0000', beganAt: null, completedAt: null, + type: CrawlType.Full, + crawlConfig: { + domainAllowlist: ['elastic.co'], + }, }, ], mostRecentCrawlRequest: { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx index 67f8826dace8a..8a8d789ba5705 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx @@ -29,6 +29,7 @@ import { CrawlerRules, CrawlerStatus, CrawlEventFromServer, + CrawlType, } from './types'; const domains: CrawlerDomainFromServer[] = [ @@ -73,6 +74,10 @@ const events: CrawlEventFromServer[] = [ created_at: 'Mon, 31 Aug 2020 11:00:00 +0000', began_at: 'Mon, 31 Aug 2020 12:00:00 +0000', completed_at: 'Mon, 31 Aug 2020 13:00:00 +0000', + type: CrawlType.Full, + crawl_config: { + domain_allowlist: ['moviedatabase.com', 'swiftype.com'], + }, }, { id: 'b', @@ -81,6 +86,10 @@ const events: CrawlEventFromServer[] = [ created_at: 'Mon, 31 Aug 2020 14:00:00 +0000', began_at: 'Mon, 31 Aug 2020 15:00:00 +0000', completed_at: 'Mon, 31 Aug 2020 16:00:00 +0000', + type: CrawlType.Partial, + crawl_config: { + domain_allowlist: ['swiftype.com'], + }, }, ]; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts index a4d5a984faaec..260d63974c748 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts @@ -179,6 +179,10 @@ export enum CrawlerStatus { Skipped = 'skipped', } +export enum CrawlType { + Full = 'full', + Partial = 'partial', +} export interface CrawlRequestFromServer { id: string; status: CrawlerStatus; @@ -197,6 +201,13 @@ export interface CrawlRequest { export type CrawlEventStage = 'crawl' | 'process'; +export interface CrawlConfig { + domainAllowlist: string[]; +} + +export interface CrawlConfigFromServer { + domain_allowlist: string[]; +} export interface CrawlEventFromServer { id: string; stage: CrawlEventStage; @@ -204,6 +215,8 @@ export interface CrawlEventFromServer { created_at: string; began_at: string | null; completed_at: string | null; + type: CrawlType; + crawl_config: CrawlConfigFromServer; } export interface CrawlEvent { @@ -213,6 +226,8 @@ export interface CrawlEvent { createdAt: string; beganAt: string | null; completedAt: string | null; + type: CrawlType; + crawlConfig: CrawlConfig; } export const readableCrawlerStatuses: { [key in CrawlerStatus]: string } = { @@ -258,6 +273,17 @@ export const readableCrawlerStatuses: { [key in CrawlerStatus]: string } = { ), }; +export const readableCrawlTypes: { [key in CrawlType]: string } = { + [CrawlType.Full]: i18n.translate( + 'xpack.enterpriseSearch.appSearch.crawler.crawlTypeOptions.full', + { defaultMessage: 'Full' } + ), + [CrawlType.Partial]: i18n.translate( + 'xpack.enterpriseSearch.appSearch.crawler.crawlTypeOptions.partial', + { defaultMessage: 'Partial' } + ), +}; + export interface CrawlSchedule { frequency: number; unit: CrawlUnits; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts index 0fc608ac6f5e4..fa61a1a886be5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts @@ -17,6 +17,7 @@ import { CrawlerData, CrawlRequest, CrawlerDomain, + CrawlType, } from './types'; import { @@ -162,6 +163,10 @@ describe('crawlerDataServerToClient', () => { created_at: 'Mon, 31 Aug 2020 17:00:00 +0000', began_at: null, completed_at: null, + type: CrawlType.Full, + crawl_config: { + domain_allowlist: ['https://www.elastic.co'], + }, }, ], most_recent_crawl_request: { @@ -211,6 +216,10 @@ describe('crawlerDataServerToClient', () => { createdAt: 'Mon, 31 Aug 2020 17:00:00 +0000', beganAt: null, completedAt: null, + type: 'full', + crawlConfig: { + domainAllowlist: ['https://www.elastic.co'], + }, }, ]); expect(output.mostRecentCrawlRequest).toEqual({ diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts index 817f10b70dca5..b05ff582ac7a7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts @@ -20,6 +20,8 @@ import { CrawlerRules, CrawlEventFromServer, CrawlEvent, + CrawlConfigFromServer, + CrawlConfig, } from './types'; export function crawlerDomainServerToClient(payload: CrawlerDomainFromServer): CrawlerDomain { @@ -80,6 +82,14 @@ export function crawlRequestServerToClient(crawlRequest: CrawlRequestFromServer) }; } +export function crawlConfigServerToClient(crawlConfig: CrawlConfigFromServer): CrawlConfig { + const { domain_allowlist: domainAllowlist } = crawlConfig; + + return { + domainAllowlist, + }; +} + export function crawlerEventServerToClient(event: CrawlEventFromServer): CrawlEvent { const { id, @@ -88,6 +98,8 @@ export function crawlerEventServerToClient(event: CrawlEventFromServer): CrawlEv created_at: createdAt, began_at: beganAt, completed_at: completedAt, + type, + crawl_config: crawlConfig, } = event; return { @@ -97,6 +109,8 @@ export function crawlerEventServerToClient(event: CrawlEventFromServer): CrawlEv createdAt, beganAt, completedAt, + type, + crawlConfig: crawlConfigServerToClient(crawlConfig), }; } diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/footer.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/footer.tsx index b23987aaecfbd..98facae7a6fb6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/footer.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_flyout/footer.tsx @@ -41,7 +41,7 @@ export const CredentialsFlyoutFooter: React.FC = () => { <EuiButton onClick={onApiTokenChange} fill - color="secondary" + color="success" iconType="check" data-test-subj="APIKeyActionButton" > diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_suggestion/curation_result_panel.scss b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_suggestion/curation_result_panel.scss index 1fa988014edb7..65ed80d75c78d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_suggestion/curation_result_panel.scss +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curation_suggestion/curation_result_panel.scss @@ -10,7 +10,7 @@ } .curationResultPanel--suggested { - border: $euiBorderWidthThick solid $euiColorSecondary; + border: $euiBorderWidthThick solid $euiColorSuccess; background-color: tintOrShade($euiColorSuccess, 90%, 70%); // Copied from @elastit/eui/src/global_styling/variables/_panels.scss } diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx index d8a651aa73d7d..4736c2d4ac55a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_creation/engine_creation.tsx @@ -121,7 +121,7 @@ export const EngineCreation: React.FC = () => { isLoading={isLoading} type="submit" data-test-subj="NewEngineSubmitButton" - color="secondary" + color="success" fill > {ENGINE_CREATION_FORM_SUBMIT_BUTTON_LABEL} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_overview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_overview.tsx index 4a08c592fdb64..87b023c69c4c7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_overview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/engines_overview.tsx @@ -77,7 +77,7 @@ export const EnginesOverview: React.FC = () => { action={ canManageEngines && ( <EuiButtonTo - color="secondary" + color="success" size="s" iconType="plusInCircle" data-test-subj="appSearchEnginesEngineCreationButton" @@ -109,7 +109,7 @@ export const EnginesOverview: React.FC = () => { action={ canManageMetaEngines && ( <EuiButtonTo - color="secondary" + color="success" size="s" iconType="plusInCircle" data-test-subj="appSearchEnginesMetaEngineCreationButton" diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx index d83379fb7a2a4..ed1ac6fdce0b6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/meta_engine_creation.tsx @@ -155,7 +155,7 @@ export const MetaEngineCreation: React.FC = () => { isLoading={isLoading} type="submit" data-test-subj="NewMetaEngineSubmitButton" - color="secondary" + color="success" fill > {META_ENGINE_CREATION_FORM_SUBMIT_BUTTON_LABEL} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/views/schema.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/views/schema.tsx index f8273edd5dfcb..48059d6698fd1 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/views/schema.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/views/schema.tsx @@ -55,7 +55,7 @@ export const Schema: React.FC = () => { )} </EuiButton>, <EuiButton - color="secondary" + color="success" iconType="plusInCircle" disabled={isUpdating} onClick={openModal} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx index 6647b4032e4bc..2f415840a6c4a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/index.test.tsx @@ -16,6 +16,7 @@ import { Redirect } from 'react-router-dom'; import { shallow, ShallowWrapper } from 'enzyme'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { rerender } from '../test_helpers'; jest.mock('./app_logic', () => ({ AppLogic: jest.fn() })); @@ -41,6 +42,12 @@ describe('AppSearch', () => { expect(wrapper.find(SetupGuide)).toHaveLength(1); }); + it('renders VersionMismatchPage when there are mismatching versions', () => { + const wrapper = shallow(<AppSearch enterpriseSearchVersion="7.15.0" kibanaVersion="7.16.0" />); + + expect(wrapper.find(VersionMismatchPage)).toHaveLength(1); + }); + it('renders AppSearchUnconfigured when config.host is not set', () => { setMockValues({ config: { host: '' } }); const wrapper = shallow(<AppSearch />); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx index 11f706bff028f..027a4dbee5ef6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/index.tsx @@ -10,9 +10,11 @@ import { Route, Redirect, Switch } from 'react-router-dom'; import { useValues } from 'kea'; +import { isVersionMismatch } from '../../../common/is_version_mismatch'; import { InitialAppData } from '../../../common/types'; import { HttpLogic } from '../shared/http'; import { KibanaLogic } from '../shared/kibana'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { AppLogic } from './app_logic'; import { Credentials } from './components/credentials'; @@ -43,21 +45,32 @@ import { export const AppSearch: React.FC<InitialAppData> = (props) => { const { config } = useValues(KibanaLogic); const { errorConnecting } = useValues(HttpLogic); + const { enterpriseSearchVersion, kibanaVersion } = props; + const incompatibleVersions = isVersionMismatch(enterpriseSearchVersion, kibanaVersion); + + const showView = () => { + if (!config.host) { + return <AppSearchUnconfigured />; + } else if (incompatibleVersions) { + return ( + <VersionMismatchPage + enterpriseSearchVersion={enterpriseSearchVersion} + kibanaVersion={kibanaVersion} + /> + ); + } else if (errorConnecting) { + return <ErrorConnecting />; + } + + return <AppSearchConfigured {...(props as Required<InitialAppData>)} />; + }; return ( <Switch> <Route exact path={SETUP_GUIDE_PATH}> <SetupGuide /> </Route> - <Route> - {!config.host ? ( - <AppSearchUnconfigured /> - ) : errorConnecting ? ( - <ErrorConnecting /> - ) : ( - <AppSearchConfigured {...(props as Required<InitialAppData>)} /> - )} - </Route> + <Route>{showView()}</Route> </Switch> ); }; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx index fbb3e58f198a7..7b5c748b013e5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.test.tsx @@ -11,6 +11,7 @@ import React from 'react'; import { shallow } from 'enzyme'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { rerender } from '../test_helpers'; import { ErrorConnecting } from './components/error_connecting'; @@ -38,6 +39,7 @@ describe('EnterpriseSearch', () => { }); const wrapper = shallow(<EnterpriseSearch />); + expect(wrapper.find(VersionMismatchPage)).toHaveLength(0); expect(wrapper.find(ErrorConnecting)).toHaveLength(1); expect(wrapper.find(ProductSelector)).toHaveLength(0); @@ -47,7 +49,22 @@ describe('EnterpriseSearch', () => { }); rerender(wrapper); + expect(wrapper.find(VersionMismatchPage)).toHaveLength(0); expect(wrapper.find(ErrorConnecting)).toHaveLength(0); expect(wrapper.find(ProductSelector)).toHaveLength(1); }); + + it('renders the version error message if versions mismatch and the host is configured', () => { + setMockValues({ + errorConnecting: false, + config: { host: 'localhost' }, + }); + const wrapper = shallow( + <EnterpriseSearch enterpriseSearchVersion="7.15.0" kibanaVersion="7.16.0" /> + ); + + expect(wrapper.find(VersionMismatchPage)).toHaveLength(1); + expect(wrapper.find(ErrorConnecting)).toHaveLength(0); + expect(wrapper.find(ProductSelector)).toHaveLength(0); + }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.tsx index 17387ae482325..81aa587e3a133 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/index.tsx @@ -10,33 +10,54 @@ import { Route, Switch } from 'react-router-dom'; import { useValues } from 'kea'; +import { isVersionMismatch } from '../../../common/is_version_mismatch'; import { InitialAppData } from '../../../common/types'; import { HttpLogic } from '../shared/http'; import { KibanaLogic } from '../shared/kibana'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { ErrorConnecting } from './components/error_connecting'; import { ProductSelector } from './components/product_selector'; import { SetupGuide } from './components/setup_guide'; import { ROOT_PATH, SETUP_GUIDE_PATH } from './routes'; -export const EnterpriseSearch: React.FC<InitialAppData> = ({ access = {}, workplaceSearch }) => { +export const EnterpriseSearch: React.FC<InitialAppData> = ({ + access = {}, + workplaceSearch, + enterpriseSearchVersion, + kibanaVersion, +}) => { const { errorConnecting } = useValues(HttpLogic); const { config } = useValues(KibanaLogic); const showErrorConnecting = !!(config.host && errorConnecting); + const incompatibleVersions = !!( + config.host && isVersionMismatch(enterpriseSearchVersion, kibanaVersion) + ); const isWorkplaceSearchAdmin = !!workplaceSearch?.account?.isAdmin; + const showView = () => { + if (incompatibleVersions) { + return ( + <VersionMismatchPage + enterpriseSearchVersion={enterpriseSearchVersion} + kibanaVersion={kibanaVersion} + /> + ); + } else if (showErrorConnecting) { + return <ErrorConnecting />; + } + + return <ProductSelector isWorkplaceSearchAdmin={isWorkplaceSearchAdmin} access={access} />; + }; + return ( <Switch> <Route exact path={SETUP_GUIDE_PATH}> <SetupGuide /> </Route> <Route exact path={ROOT_PATH}> - {showErrorConnecting ? ( - <ErrorConnecting /> - ) : ( - <ProductSelector isWorkplaceSearchAdmin={isWorkplaceSearchAdmin} access={access} /> - )} + {showView()} </Route> </Switch> ); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/constants.ts b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/constants.ts index 0a99b0991f4ed..e94eb39f8cc75 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/constants.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/constants.ts @@ -242,6 +242,13 @@ export const ROLES_DISABLED_NOTE = i18n.translate( } ); +export const RBAC_BUTTON_DISABLED_LABEL = i18n.translate( + 'xpack.enterpriseSearch.roleMapping.rbacButtonDisabledLabel', + { + defaultMessage: 'Enabling RBAC can be performed by a superuser.', + } +); + export const ENABLE_ROLES_BUTTON = i18n.translate( 'xpack.enterpriseSearch.roleMapping.enableRolesButton', { defaultMessage: 'Enable role-based access' } diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.test.tsx index 8331a45849e3a..974c0d17c29f9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.test.tsx @@ -5,6 +5,9 @@ * 2.0. */ +import '../../__mocks__/shallow_useeffect.mock'; +import { mockKibanaValues } from '../../__mocks__/kea_logic'; + import React from 'react'; import { shallow } from 'enzyme'; @@ -14,6 +17,18 @@ import { EuiButton, EuiLink, EuiEmptyPrompt } from '@elastic/eui'; import { RolesEmptyPrompt } from './roles_empty_prompt'; describe('RolesEmptyPrompt', () => { + const { + security: { + authc: { getCurrentUser }, + }, + } = mockKibanaValues; + + const mockCurrentUser = (user?: unknown) => + (getCurrentUser as jest.Mock).mockReturnValue(Promise.resolve(user)); + + const mockCurrentUserError = () => + (getCurrentUser as jest.Mock).mockReturnValue(Promise.reject()); + const onEnable = jest.fn(); const props = { @@ -22,15 +37,52 @@ describe('RolesEmptyPrompt', () => { onEnable, }; - it('renders', () => { - const wrapper = shallow(<RolesEmptyPrompt {...props} />); + const mockUser = { + username: 'elastic', + roles: ['superuser'], + }; + + beforeAll(() => { + mockCurrentUser(); + }); + + it('gets the current user on mount', () => { + shallow(<RolesEmptyPrompt {...props} />); + + expect(getCurrentUser).toHaveBeenCalled(); + }); + + it('does not render if the getCurrentUser promise returns error', async () => { + mockCurrentUserError(); + const wrapper = await shallow(<RolesEmptyPrompt {...props} />); + + expect(wrapper.isEmptyRender()).toBe(true); + }); + + it('renders', async () => { + mockCurrentUser(mockUser); + const wrapper = await shallow(<RolesEmptyPrompt {...props} />); expect(wrapper.find(EuiEmptyPrompt)).toHaveLength(1); expect(wrapper.find(EuiEmptyPrompt).dive().find(EuiLink).prop('href')).toEqual(props.docsLink); }); - it('calls onEnable on change', () => { - const wrapper = shallow(<RolesEmptyPrompt {...props} />); + it('disables button when non-superuser', async () => { + mockCurrentUser({ + username: 'user', + roles: ['foo'], + }); + const wrapper = await shallow(<RolesEmptyPrompt {...props} />); + + expect(wrapper.find(EuiEmptyPrompt).dive().find(EuiButton).prop('disabled')).toBe(true); + expect( + wrapper.find(EuiEmptyPrompt).dive().find('[data-test-subj="rbacDisabledLabel"]') + ).toHaveLength(1); + }); + + it('calls onEnable on change', async () => { + mockCurrentUser(mockUser); + const wrapper = await shallow(<RolesEmptyPrompt {...props} />); const prompt = wrapper.find(EuiEmptyPrompt).dive(); prompt.find(EuiButton).simulate('click'); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.tsx index 11d50573c45f6..b325863b54430 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/roles_empty_prompt.tsx @@ -5,13 +5,18 @@ * 2.0. */ -import React from 'react'; +import React, { useState, useEffect } from 'react'; -import { EuiEmptyPrompt, EuiButton, EuiLink, EuiSpacer } from '@elastic/eui'; +import { useValues } from 'kea'; +import { EuiEmptyPrompt, EuiButton, EuiLink, EuiSpacer, EuiText } from '@elastic/eui'; + +import type { AuthenticatedUser } from '../../../../../security/public'; +import { KibanaLogic } from '../kibana/kibana_logic'; import { ProductName } from '../types'; import { + RBAC_BUTTON_DISABLED_LABEL, ROLES_DISABLED_TITLE, ROLES_DISABLED_DESCRIPTION, ROLES_DISABLED_NOTE, @@ -25,24 +30,49 @@ interface Props { onEnable(): void; } -export const RolesEmptyPrompt: React.FC<Props> = ({ onEnable, docsLink, productName }) => ( - <EuiEmptyPrompt - iconType="lockOpen" - title={<h2>{ROLES_DISABLED_TITLE}</h2>} - body={ - <> - <p>{ROLES_DISABLED_DESCRIPTION(productName)}</p> - <p>{ROLES_DISABLED_NOTE}</p> - </> - } - actions={[ - <EuiButton key="enableRolesButton" fill onClick={onEnable}> - {ENABLE_ROLES_BUTTON} - </EuiButton>, - <EuiSpacer key="spacer" size="xs" />, - <EuiLink key="enableRolesLink" href={docsLink} target="_blank" external> - {ENABLE_ROLES_LINK} - </EuiLink>, - ]} - /> -); +export const RolesEmptyPrompt: React.FC<Props> = ({ onEnable, docsLink, productName }) => { + const { security } = useValues(KibanaLogic); + const [currentUser, setCurrentUser] = useState<AuthenticatedUser | null>(null); + const isSuperUser = currentUser?.roles.includes('superuser'); + const rbacDisabledLabel = !isSuperUser && ( + <EuiText color="subdued" size="xs" data-test-subj="rbacDisabledLabel"> + {RBAC_BUTTON_DISABLED_LABEL} + </EuiText> + ); + + useEffect(() => { + security.authc + .getCurrentUser() + .then(setCurrentUser) + .catch(() => { + setCurrentUser(null); + }); + }, [security.authc]); + + if (!currentUser) { + return null; + } + + return ( + <EuiEmptyPrompt + iconType="lockOpen" + title={<h2>{ROLES_DISABLED_TITLE}</h2>} + body={ + <> + <p>{ROLES_DISABLED_DESCRIPTION(productName)}</p> + <p>{ROLES_DISABLED_NOTE}</p> + </> + } + actions={[ + <EuiButton disabled={!isSuperUser} key="enableRolesButton" fill onClick={onEnable}> + {ENABLE_ROLES_BUTTON} + </EuiButton>, + rbacDisabledLabel, + <EuiSpacer key="spacer" size="xs" />, + <EuiLink key="enableRolesLink" href={docsLink} target="_blank" external> + {ENABLE_ROLES_LINK} + </EuiLink>, + ]} + /> + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_flyout.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_flyout.test.tsx index f48ed6a6c7eb9..9e516192772d6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_flyout.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_flyout.test.tsx @@ -54,7 +54,7 @@ describe('UserFlyout', () => { const wrapper = shallow(<UserFlyout {...props} isNew={false} isComplete />); const icon = ( <EuiIcon - color="secondary" + color="success" size="l" type="checkInCircleFilled" style={{ marginLeft: 5, marginTop: -5 }} diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_flyout.tsx index 8741a2b4517d3..b04b936a17c3f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_flyout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_flyout.tsx @@ -56,7 +56,7 @@ export const UserFlyout: React.FC<Props> = ({ }) => { const savedIcon = ( <EuiIcon - color="secondary" + color="success" size="l" type="checkInCircleFilled" style={{ marginLeft: 5, marginTop: -5 }} diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/helpers.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/index.ts similarity index 65% rename from x-pack/plugins/security_solution/public/cases/components/callout/helpers.tsx rename to x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/index.ts index fdd49ad17168d..90d007d1d9411 100644 --- a/x-pack/plugins/security_solution/public/cases/components/callout/helpers.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/index.ts @@ -5,7 +5,5 @@ * 2.0. */ -import md5 from 'md5'; - -export const createCalloutId = (ids: string[], delimiter: string = '|'): string => - md5(ids.join(delimiter)); +export { VersionMismatchPage } from './version_mismatch_page'; +export { VersionMismatchError } from './version_mismatch_error'; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.test.tsx new file mode 100644 index 0000000000000..f6d5ef4aa4212 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.test.tsx @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { mount } from 'enzyme'; + +import { VersionMismatchError } from './version_mismatch_error'; + +describe('VersionMismatchError', () => { + it('renders', () => { + const wrapper = mount( + <VersionMismatchError kibanaVersion="8.1.0" enterpriseSearchVersion="8.0.0" /> + ); + + expect(wrapper.find('EuiEmptyPrompt').text()).toContain('Enterprise Search version: 8.0.0'); + expect(wrapper.find('EuiEmptyPrompt').text()).toContain('Kibana version: 8.1.0'); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.tsx new file mode 100644 index 0000000000000..f2f913902f97f --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_error.tsx @@ -0,0 +1,57 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { EuiEmptyPrompt, EuiSpacer } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + +interface Props { + enterpriseSearchVersion?: string; + kibanaVersion?: string; +} + +export const VersionMismatchError: React.FC<Props> = ({ + enterpriseSearchVersion, + kibanaVersion, +}) => { + return ( + <EuiEmptyPrompt + iconType="alert" + iconColor="danger" + title={ + <h2> + {i18n.translate('xpack.enterpriseSearch.versionMismatch.title', { + defaultMessage: 'Incompatible version error', + })} + </h2> + } + titleSize="l" + body={ + <> + {i18n.translate('xpack.enterpriseSearch.versionMismatch.body', { + defaultMessage: + 'Your Kibana and Enterprise Search versions do not match. To access Enterprise Search, use the same major and minor version for each service.', + })} + <EuiSpacer /> + <div> + {i18n.translate('xpack.enterpriseSearch.versionMismatch.enterpriseSearchVersionText', { + defaultMessage: 'Enterprise Search version: {enterpriseSearchVersion}', + values: { enterpriseSearchVersion }, + })} + </div> + <div> + {i18n.translate('xpack.enterpriseSearch.versionMismatch.kibanaVersionText', { + defaultMessage: 'Kibana version: {kibanaVersion}', + values: { kibanaVersion }, + })} + </div> + </> + } + /> + ); +}; diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.test.tsx new file mode 100644 index 0000000000000..d86a1187bd4b9 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.test.tsx @@ -0,0 +1,26 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { shallow } from 'enzyme'; + +import { VersionMismatchError } from './version_mismatch_error'; +import { VersionMismatchPage } from './version_mismatch_page'; + +describe('VersionMismatchPage', () => { + it('renders', () => { + const wrapper = shallow( + <VersionMismatchPage kibanaVersion="8.1.0" enterpriseSearchVersion="8.0.0" /> + ); + expect(wrapper.find(VersionMismatchError).exists()).toBe(true); + expect(wrapper.find(VersionMismatchError).props()).toEqual({ + kibanaVersion: '8.1.0', + enterpriseSearchVersion: '8.0.0', + }); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.tsx new file mode 100644 index 0000000000000..f60ccf2d19e50 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/version_mismatch/version_mismatch_page.tsx @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; + +import { KibanaPageTemplate } from '../../../../../../../src/plugins/kibana_react/public'; + +import { VersionMismatchError } from './version_mismatch_error'; + +interface Props { + enterpriseSearchVersion?: string; + kibanaVersion?: string; +} + +export const VersionMismatchPage: React.FC<Props> = (props) => ( + <KibanaPageTemplate isEmptyState> + <VersionMismatchError {...props} /> + </KibanaPageTemplate> +); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx index 3ddccde6abd33..7274ee8855705 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.test.tsx @@ -15,6 +15,8 @@ import { Redirect } from 'react-router-dom'; import { shallow } from 'enzyme'; +import { VersionMismatchPage } from '../shared/version_mismatch'; + import { WorkplaceSearchHeaderActions } from './components/layout'; import { SourceAdded } from './views/content_sources/components/source_added'; import { ErrorState } from './views/error_state'; @@ -24,6 +26,14 @@ import { SetupGuide } from './views/setup_guide'; import { WorkplaceSearch, WorkplaceSearchUnconfigured, WorkplaceSearchConfigured } from './'; describe('WorkplaceSearch', () => { + it('renders VersionMismatchPage when there are mismatching versions', () => { + const wrapper = shallow( + <WorkplaceSearch enterpriseSearchVersion="7.15.0" kibanaVersion="7.16.0" /> + ); + + expect(wrapper.find(VersionMismatchPage)).toHaveLength(1); + }); + it('renders WorkplaceSearchUnconfigured when config.host is not set', () => { setMockValues({ config: { host: '' } }); const wrapper = shallow(<WorkplaceSearch />); diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx index 1ed77ea0fb1fd..2b24e09f96315 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/index.tsx @@ -10,9 +10,11 @@ import { Route, Redirect, Switch, useRouteMatch } from 'react-router-dom'; import { useActions, useValues } from 'kea'; +import { isVersionMismatch } from '../../../common/is_version_mismatch'; import { InitialAppData } from '../../../common/types'; import { HttpLogic } from '../shared/http'; import { KibanaLogic } from '../shared/kibana'; +import { VersionMismatchPage } from '../shared/version_mismatch'; import { AppLogic } from './app_logic'; import { WorkplaceSearchHeaderActions } from './components/layout'; @@ -47,13 +49,23 @@ import { SetupGuide } from './views/setup_guide'; export const WorkplaceSearch: React.FC<InitialAppData> = (props) => { const { config } = useValues(KibanaLogic); const { errorConnecting } = useValues(HttpLogic); - return !config.host ? ( - <WorkplaceSearchUnconfigured /> - ) : errorConnecting ? ( - <ErrorState /> - ) : ( - <WorkplaceSearchConfigured {...props} /> - ); + const { enterpriseSearchVersion, kibanaVersion } = props; + const incompatibleVersions = isVersionMismatch(enterpriseSearchVersion, kibanaVersion); + + if (!config.host) { + return <WorkplaceSearchUnconfigured />; + } else if (incompatibleVersions) { + return ( + <VersionMismatchPage + enterpriseSearchVersion={enterpriseSearchVersion} + kibanaVersion={kibanaVersion} + /> + ); + } else if (errorConnecting) { + return <ErrorState />; + } + + return <WorkplaceSearchConfigured {...props} />; }; export const WorkplaceSearchConfigured: React.FC<InitialAppData> = (props) => { diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/overview.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/overview.tsx index 9441f43dc253f..b27f5f9ccd9d5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/overview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/components/overview.tsx @@ -373,7 +373,7 @@ export const Overview: React.FC = () => { <EuiSpacer size="s" /> <EuiFlexGroup gutterSize="m" alignItems="center"> <EuiFlexItem grow={false}> - <EuiIcon size="l" type="checkInCircleFilled" color="secondary" /> + <EuiIcon size="l" type="checkInCircleFilled" color="success" /> </EuiFlexItem> <EuiFlexItem> <EuiText> diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx index 3ff21566cf916..687461296ac9e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx @@ -180,6 +180,7 @@ export const staticSourceData = [ FeatureIds.SyncedItems, FeatureIds.GlobalAccessPermissions, ], + basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions], platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems], platinumPrivateContext: [ FeatureIds.Private, @@ -215,6 +216,7 @@ export const staticSourceData = [ FeatureIds.SyncedItems, FeatureIds.GlobalAccessPermissions, ], + basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions], platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems], platinumPrivateContext: [ FeatureIds.Private, @@ -256,6 +258,7 @@ export const staticSourceData = [ FeatureIds.SyncedItems, FeatureIds.GlobalAccessPermissions, ], + basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions], platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems], platinumPrivateContext: [ FeatureIds.Private, diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups.tsx index 5ecaef95c8be1..7af93490b2eb2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/groups/groups.tsx @@ -53,7 +53,7 @@ export const Groups: React.FC = () => { messages[0].description = ( <EuiButtonTo to={getGroupPath(newGroup.id)} - color="secondary" + color="success" data-test-subj="NewGroupManageButton" > {i18n.translate('xpack.enterpriseSearch.workplaceSearch.groups.newGroup.action', { diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_card.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_card.tsx index 652fb89f41c7c..f225c7ef9c067 100644 --- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_card.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/overview/onboarding_card.tsx @@ -69,7 +69,7 @@ export const OnboardingCard: React.FC<OnboardingCardProps> = ({ <EuiPanel color="subdued" hasShadow={false}> <EuiEmptyPrompt iconType={complete ? 'checkInCircleFilled' : (icon as IconType)} - iconColor={complete ? 'secondary' : 'subdued'} + iconColor={complete ? 'success' : 'subdued'} title={<h2>{title}</h2>} body={description} actions={complete ? completeButton : incompleteButton} diff --git a/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.test.ts b/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.test.ts index ba600de298976..f6e3280a8abb2 100644 --- a/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.test.ts +++ b/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.test.ts @@ -41,7 +41,7 @@ describe('callEnterpriseSearchConfigAPI', () => { const mockResponse = { version: { - number: '1.0.0', + number: '7.16.0', }, settings: { external_url: 'http://some.vanity.url/', @@ -120,6 +120,7 @@ describe('callEnterpriseSearchConfigAPI', () => { expect(await callEnterpriseSearchConfigAPI(mockDependencies)).toEqual({ ...DEFAULT_INITIAL_APP_DATA, + kibanaVersion: '1.0.0', access: { hasAppSearchAccess: true, hasWorkplaceSearchAccess: false, @@ -132,6 +133,7 @@ describe('callEnterpriseSearchConfigAPI', () => { (fetch as unknown as jest.Mock).mockReturnValueOnce(Promise.resolve(new Response('{}'))); expect(await callEnterpriseSearchConfigAPI(mockDependencies)).toEqual({ + kibanaVersion: '1.0.0', access: { hasAppSearchAccess: false, hasWorkplaceSearchAccess: false, diff --git a/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts b/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts index d652d56c28efe..a427beb6769c9 100644 --- a/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts +++ b/x-pack/plugins/enterprise_search/server/lib/enterprise_search_config_api.ts @@ -12,6 +12,7 @@ import { kibanaPackageJson } from '@kbn/utils'; import { KibanaRequest, Logger } from 'src/core/server'; +import { isVersionMismatch } from '../../common/is_version_mismatch'; import { stripTrailingSlash } from '../../common/strip_slashes'; import { InitialAppData } from '../../common/types'; import { ConfigType } from '../index'; @@ -68,6 +69,8 @@ export const callEnterpriseSearchConfigAPI = async ({ warnMismatchedVersions(data?.version?.number, log); return { + enterpriseSearchVersion: data?.version?.number, + kibanaVersion: kibanaPackageJson.version, access: { hasAppSearchAccess: !!data?.current_user?.access?.app_search, hasWorkplaceSearchAccess: !!data?.current_user?.access?.workplace_search, @@ -147,7 +150,7 @@ export const callEnterpriseSearchConfigAPI = async ({ export const warnMismatchedVersions = (enterpriseSearchVersion: string, log: Logger) => { const kibanaVersion = kibanaPackageJson.version; - if (enterpriseSearchVersion !== kibanaVersion) { + if (isVersionMismatch(enterpriseSearchVersion, kibanaVersion)) { log.warn( `Your Kibana instance (v${kibanaVersion}) is not the same version as your Enterprise Search instance (v${enterpriseSearchVersion}), which may cause unexpected behavior. Use matching versions for the best experience.` ); diff --git a/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.test.ts b/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.test.ts index fa0694fed9d03..e92dc63952eb5 100644 --- a/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.test.ts +++ b/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.test.ts @@ -33,7 +33,7 @@ describe('reference application routes', () => { }); expect(mockRequestHandler.createRequest).toHaveBeenCalledWith({ - path: '/as/engines/:engineName/reference_application/field_config', + path: '/as/engines/:engineName/search_experience/field_config', }); }); }); diff --git a/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.ts b/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.ts index 2a9d99e6e5882..3d9a671b6e81a 100644 --- a/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.ts +++ b/x-pack/plugins/enterprise_search/server/routes/app_search/search_ui.ts @@ -23,7 +23,7 @@ export function registerSearchUIRoutes({ }, }, enterpriseSearchRequestHandler.createRequest({ - path: '/as/engines/:engineName/reference_application/field_config', + path: '/as/engines/:engineName/search_experience/field_config', }) ); } diff --git a/x-pack/plugins/fleet/common/constants/epm.ts b/x-pack/plugins/fleet/common/constants/epm.ts index 734d578687bcd..5137e422e0975 100644 --- a/x-pack/plugins/fleet/common/constants/epm.ts +++ b/x-pack/plugins/fleet/common/constants/epm.ts @@ -32,6 +32,13 @@ export const STANDALONE_RUN_INSTRUCTIONS = './elastic-agent install'; removable, but it doesn't install by default. Following the table, it needs to be in `unremovablePackages` and in `autoUpdatePackages`, but not in `defaultPackages`. + + +We also define "auto upgrade policies" packages below. These are packages that are considered "stack-aligned" +and require policies to be auto-upgraded in order to properly function. Commonly, packages that ship custom policy +editor UI's in the Kibana codebase will be included in this set of packages to avoid backwards-compatibility concerns +in their custom policy editor implementations. + */ export const unremovablePackages = [ @@ -49,6 +56,8 @@ export const autoUpdatePackages = [ FLEET_SYNTHETICS_PACKAGE, ]; +export const autoUpgradePoliciesPackages = [FLEET_APM_PACKAGE, FLEET_SYNTHETICS_PACKAGE]; + export const agentAssetTypes = { Input: 'input', } as const; diff --git a/x-pack/plugins/fleet/common/constants/preconfiguration.ts b/x-pack/plugins/fleet/common/constants/preconfiguration.ts index 2ec67393df76b..3e7377477c93e 100644 --- a/x-pack/plugins/fleet/common/constants/preconfiguration.ts +++ b/x-pack/plugins/fleet/common/constants/preconfiguration.ts @@ -5,6 +5,8 @@ * 2.0. */ +import { uniqBy } from 'lodash'; + import type { PreconfiguredAgentPolicy } from '../types'; import { @@ -13,6 +15,7 @@ import { FLEET_SERVER_PACKAGE, autoUpdatePackages, monitoringTypes, + autoUpgradePoliciesPackages, } from './epm'; export const PRECONFIGURATION_DELETION_RECORD_SAVED_OBJECT_TYPE = @@ -72,6 +75,18 @@ export const AUTO_UPDATE_PACKAGES = autoUpdatePackages.map((name) => ({ version: PRECONFIGURATION_LATEST_KEYWORD, })); +// These packages default to `keep_policies_up_to_date: true` and don't allow users to opt out +export const AUTO_UPGRADE_POLICIES_PACKAGES = autoUpgradePoliciesPackages.map((name) => ({ + name, + version: PRECONFIGURATION_LATEST_KEYWORD, +})); + +// Controls whether the `Keep Policies up to date` setting is exposed to the user +export const KEEP_POLICIES_UP_TO_DATE_PACKAGES = uniqBy( + [...AUTO_UPGRADE_POLICIES_PACKAGES, ...DEFAULT_PACKAGES, ...AUTO_UPDATE_PACKAGES], + ({ name }) => name +); + export interface PreconfigurationError { package?: { name: string; version: string }; agentPolicy?: { name: string }; diff --git a/x-pack/plugins/fleet/common/constants/routes.ts b/x-pack/plugins/fleet/common/constants/routes.ts index 235a1c5bd85e5..9fc20bbf38eb7 100644 --- a/x-pack/plugins/fleet/common/constants/routes.ts +++ b/x-pack/plugins/fleet/common/constants/routes.ts @@ -46,6 +46,7 @@ export const PACKAGE_POLICY_API_ROUTES = { UPDATE_PATTERN: `${PACKAGE_POLICY_API_ROOT}/{packagePolicyId}`, DELETE_PATTERN: `${PACKAGE_POLICY_API_ROOT}/delete`, UPGRADE_PATTERN: `${PACKAGE_POLICY_API_ROOT}/upgrade`, + DRYRUN_PATTERN: `${PACKAGE_POLICY_API_ROOT}/upgrade/dryrun`, }; // Agent policy API routes diff --git a/x-pack/plugins/fleet/common/openapi/bundled.json b/x-pack/plugins/fleet/common/openapi/bundled.json index a9e92e3fc293a..1e17c693e01b9 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.json +++ b/x-pack/plugins/fleet/common/openapi/bundled.json @@ -1603,6 +1603,115 @@ ] } }, + "/package_policies/upgrade": { + "post": { + "summary": "Package policy - Upgrade", + "operationId": "upgrade-package-policy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "packagePolicyIds": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "packagePolicyIds" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "success": { + "type": "boolean" + } + }, + "required": [ + "id", + "success" + ] + } + } + } + } + } + } + } + }, + "/package_policies/upgrade/dryrun": { + "post": { + "summary": "Package policy - Upgrade Dry run", + "operationId": "upgrade-package-policy", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "packagePolicyIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "packageVersion": { + "type": "string" + } + }, + "required": [ + "packagePolicyIds" + ] + } + } + } + }, + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "hasErrors": { + "type": "boolean" + }, + "diff": { + "schema": null, + "$ref": "#/components/schemas/upgrade_diff" + }, + "required": [ + "hasErrors" + ] + } + } + } + } + } + } + } + }, "/package_policies/{packagePolicyId}": { "get": { "summary": "Package policy - Info", @@ -1716,6 +1825,74 @@ } }, "operationId": "get-outputs" + }, + "post": { + "summary": "Outputs", + "description": "Create a new output", + "tags": [], + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "item": { + "$ref": "#/components/schemas/output" + } + } + } + } + } + } + }, + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "elasticsearch" + ] + }, + "is_default": { + "type": "boolean" + }, + "is_default_monitoring": { + "type": "boolean" + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + }, + "ca_sha256": { + "type": "string" + }, + "config_yaml": { + "type": "string" + } + }, + "required": [ + "name", + "type" + ] + } + } + } + }, + "operationId": "post-outputs" } }, "/outputs/{outputId}": { @@ -1754,6 +1931,35 @@ "required": true } ], + "delete": { + "summary": "Output - Delete", + "operationId": "delete-output", + "responses": { + "200": { + "description": "OK", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + }, + "required": [ + "id" + ] + } + } + } + } + }, + "parameters": [ + { + "$ref": "#/components/parameters/kbn_xsrf" + } + ] + }, "put": { "summary": "Output - Update", "operationId": "update-output", @@ -1763,19 +1969,38 @@ "schema": { "type": "object", "properties": { - "hosts": { + "name": { "type": "string" }, + "type": { + "type": "string", + "enum": [ + "elasticsearch" + ] + }, + "is_default": { + "type": "boolean" + }, + "is_default_monitoring": { + "type": "boolean" + }, + "hosts": { + "type": "array", + "items": { + "type": "string" + } + }, "ca_sha256": { "type": "string" }, - "config": { - "type": "object" - }, "config_yaml": { "type": "string" } - } + }, + "required": [ + "name", + "type" + ] } } } @@ -2626,6 +2851,11 @@ "created_at" ] }, + "upgrade_diff": { + "title": "Package policy Upgrade dryrun", + "type": "array", + "items": {} + }, "update_package_policy": { "title": "Update package policy", "allOf": [ @@ -2652,6 +2882,9 @@ "is_default": { "type": "boolean" }, + "is_default_monitoring": { + "type": "boolean" + }, "name": { "type": "string" }, diff --git a/x-pack/plugins/fleet/common/openapi/bundled.yaml b/x-pack/plugins/fleet/common/openapi/bundled.yaml index b997e31f4bb8d..1d7f1cb9ccf1f 100644 --- a/x-pack/plugins/fleet/common/openapi/bundled.yaml +++ b/x-pack/plugins/fleet/common/openapi/bundled.yaml @@ -8,9 +8,9 @@ info: name: Fleet Team license: name: Elastic License 2.0 - url: 'https://www.elastic.co/licensing/elastic-license' + url: https://www.elastic.co/licensing/elastic-license servers: - - url: 'http://localhost:5601/api/fleet' + - url: http://localhost:5601/api/fleet description: local paths: /setup: @@ -99,7 +99,7 @@ paths: $ref: '#/components/schemas/search_result' operationId: list-all-packages parameters: [] - '/epm/packages/{pkgkey}': + /epm/packages/{pkgkey}: get: summary: Packages - Info tags: [] @@ -361,7 +361,7 @@ paths: application/json: schema: $ref: '#/components/schemas/bulk_upgrade_agents' - '/agents/{agentId}': + /agents/{agentId}: parameters: - schema: type: string @@ -422,7 +422,7 @@ paths: operationId: delete-agent parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agents/{agentId}/reassign': + /agents/{agentId}/reassign: parameters: - schema: type: string @@ -453,7 +453,7 @@ paths: type: string required: - policy_id - '/agents/{agentId}/unenroll': + /agents/{agentId}/unenroll: parameters: - schema: type: string @@ -498,7 +498,7 @@ paths: type: boolean force: type: boolean - '/agents/{agentId}/upgrade': + /agents/{agentId}/upgrade: parameters: - schema: type: string @@ -666,7 +666,7 @@ paths: security: [] parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agent_policies/{agentPolicyId}': + /agent_policies/{agentPolicyId}: parameters: - schema: type: string @@ -714,7 +714,7 @@ paths: $ref: '#/components/schemas/new_agent_policy' parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/agent_policies/{agentPolicyId}/copy': + /agent_policies/{agentPolicyId}/copy: parameters: - schema: type: string @@ -832,7 +832,7 @@ paths: operationId: create-enrollment-api-keys parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/enrollment-api-keys/{keyId}': + /enrollment-api-keys/{keyId}: parameters: - schema: type: string @@ -973,7 +973,75 @@ paths: - success parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/package_policies/{packagePolicyId}': + /package_policies/upgrade: + post: + summary: Package policy - Upgrade + operationId: upgrade-package-policy + requestBody: + content: + application/json: + schema: + type: object + properties: + packagePolicyIds: + type: array + items: + type: string + required: + - packagePolicyIds + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success + /package_policies/upgrade/dryrun: + post: + summary: Package policy - Upgrade Dry run + operationId: upgrade-package-policy + requestBody: + content: + application/json: + schema: + type: object + properties: + packagePolicyIds: + type: array + items: + type: string + packageVersion: + type: string + required: + - packagePolicyIds + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + hasErrors: + type: boolean + diff: + schema: null + $ref: '#/components/schemas/upgrade_diff' + required: + - hasErrors + /package_policies/{packagePolicyId}: get: summary: Package policy - Info tags: [] @@ -1044,7 +1112,51 @@ paths: perPage: type: integer operationId: get-outputs - '/outputs/{outputId}': + post: + summary: Outputs + description: Create a new output + tags: [] + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + item: + $ref: '#/components/schemas/output' + requestBody: + content: + application/json: + schema: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + enum: + - elasticsearch + is_default: + type: boolean + is_default_monitoring: + type: boolean + hosts: + type: array + items: + type: string + ca_sha256: + type: string + config_yaml: + type: string + required: + - name + - type + operationId: post-outputs + /outputs/{outputId}: get: summary: Output - Info tags: [] @@ -1067,6 +1179,23 @@ paths: name: outputId in: path required: true + delete: + summary: Output - Delete + operationId: delete-output + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + id: + type: string + required: + - id + parameters: + - $ref: '#/components/parameters/kbn_xsrf' put: summary: Output - Update operationId: update-output @@ -1076,14 +1205,27 @@ paths: schema: type: object properties: - hosts: + name: + type: string + type: type: string + enum: + - elasticsearch + is_default: + type: boolean + is_default_monitoring: + type: boolean + hosts: + type: array + items: + type: string ca_sha256: type: string - config: - type: object config_yaml: type: string + required: + - name + - type responses: '200': description: OK @@ -1098,7 +1240,7 @@ paths: - item parameters: - $ref: '#/components/parameters/kbn_xsrf' - '/epm/packages/{pkgName}/stats': + /epm/packages/{pkgName}/stats: get: summary: Get stats for a package tags: [] @@ -1653,6 +1795,10 @@ components: - api_key - active - created_at + upgrade_diff: + title: Package policy Upgrade dryrun + type: array + items: {} update_package_policy: title: Update package policy allOf: @@ -1669,6 +1815,8 @@ components: type: string is_default: type: boolean + is_default_monitoring: + type: boolean name: type: string type: diff --git a/x-pack/plugins/fleet/common/openapi/components/schemas/upgrade_diff.yaml b/x-pack/plugins/fleet/common/openapi/components/schemas/upgrade_diff.yaml new file mode 100644 index 0000000000000..e3a2fc708dc62 --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/components/schemas/upgrade_diff.yaml @@ -0,0 +1,3 @@ +title: Package policy Upgrade dryrun +type: array +items: {} \ No newline at end of file diff --git a/x-pack/plugins/fleet/common/openapi/entrypoint.yaml b/x-pack/plugins/fleet/common/openapi/entrypoint.yaml index ad8ef1408ae6b..5495f2b3ccacf 100644 --- a/x-pack/plugins/fleet/common/openapi/entrypoint.yaml +++ b/x-pack/plugins/fleet/common/openapi/entrypoint.yaml @@ -62,6 +62,10 @@ paths: $ref: paths/package_policies.yaml /package_policies/delete: $ref: paths/package_policies@delete.yaml + /package_policies/upgrade: + $ref: paths/package_policies@upgrade.yaml + /package_policies/upgrade/dryrun: + $ref: paths/package_policies@upgrade_dryrun.yaml '/package_policies/{packagePolicyId}': $ref: 'paths/package_policies@{package_policy_id}.yaml' /outputs: diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml new file mode 100644 index 0000000000000..92c316a498905 --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade.yaml @@ -0,0 +1,34 @@ +post: + summary: Package policy - Upgrade + operationId: upgrade-package-policy + requestBody: + content: + application/json: + schema: + type: object + properties: + packagePolicyIds: + type: array + items: + type: string + required: + - packagePolicyIds + responses: + '200': + description: OK + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: + type: string + name: + type: string + success: + type: boolean + required: + - id + - success diff --git a/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml new file mode 100644 index 0000000000000..8b3b0c6147621 --- /dev/null +++ b/x-pack/plugins/fleet/common/openapi/paths/package_policies@upgrade_dryrun.yaml @@ -0,0 +1,32 @@ +post: + summary: Package policy - Upgrade Dry run + operationId: upgrade-package-policy + requestBody: + content: + application/json: + schema: + type: object + properties: + packagePolicyIds: + type: array + items: + type: string + packageVersion: + type: string + required: + - packagePolicyIds + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + hasErrors: + type: boolean + diff: + schema: + $ref: ../components/schemas/upgrade_diff.yaml + required: + - hasErrors diff --git a/x-pack/plugins/fleet/common/services/routes.ts b/x-pack/plugins/fleet/common/services/routes.ts index c9ab68fb54d8f..8ab02c462cfa4 100644 --- a/x-pack/plugins/fleet/common/services/routes.ts +++ b/x-pack/plugins/fleet/common/services/routes.ts @@ -89,6 +89,10 @@ export const packagePolicyRouteService = { getUpgradePath: () => { return PACKAGE_POLICY_API_ROUTES.UPGRADE_PATTERN; }, + + getDryRunPath: () => { + return PACKAGE_POLICY_API_ROUTES.DRYRUN_PATTERN; + }, }; export const agentPolicyRouteService = { diff --git a/x-pack/plugins/fleet/common/types/models/epm.ts b/x-pack/plugins/fleet/common/types/models/epm.ts index 078281fec9806..f7b446cc53c7d 100644 --- a/x-pack/plugins/fleet/common/types/models/epm.ts +++ b/x-pack/plugins/fleet/common/types/models/epm.ts @@ -402,7 +402,7 @@ export interface Installation extends SavedObjectAttributes { install_version: string; install_started_at: string; install_source: InstallSource; - keep_policies_up_to_date: boolean; + keep_policies_up_to_date?: boolean; } export interface PackageUsageStats { diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/index.tsx index 875180e5795c2..ac828f5fb40ac 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/index.tsx @@ -60,6 +60,11 @@ const StepsWithLessPadding = styled(EuiSteps)` .euiStep__content { padding-bottom: ${(props) => props.theme.eui.paddingSizes.m}; } + + // compensating for EuiBottomBar hiding the content + @media (max-width: ${(props) => props.theme.eui.euiBreakpoints.m}) { + margin-bottom: 100px; + } `; const CustomEuiBottomBar = styled(EuiBottomBar)` diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_configure_package.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_configure_package.tsx index 390e540f1b10f..b3de6785a7dac 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_configure_package.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/step_configure_package.tsx @@ -106,7 +106,7 @@ export const StepConfigurePackagePolicy: React.FunctionComponent<{ ) : ( <EuiEmptyPrompt iconType="checkInCircleFilled" - iconColor="secondary" + iconColor="success" body={ <EuiText> <p> diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx index 783a960aff120..045c9c28c378c 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_details_page/components/agent_logs/agent_logs.tsx @@ -277,9 +277,9 @@ export const AgentLogsUI: React.FunctionComponent<AgentLogsProps> = memo( return ( <WrapperFlexGroup direction="column" gutterSize="m"> - {agentPolicy && !agentPolicy.monitoring_enabled?.includes('logs') && ( - <AgentPolicyLogsNotEnabledCallout agentPolicy={agentPolicy} /> - )} + {agentPolicy && + !agentPolicy.monitoring_enabled?.includes('logs') && + !agentPolicy.is_managed && <AgentPolicyLogsNotEnabledCallout agentPolicy={agentPolicy} />} <EuiFlexItem grow={false}> <EuiFlexGroup gutterSize="m"> <EuiFlexItem> diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx index 9ba63475aaaad..2e984a58bb429 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_list_page/index.tsx @@ -48,7 +48,10 @@ import { AgentHealth, AgentUnenrollAgentModal, AgentUpgradeAgentModal, + FleetServerCloudUnhealthyCallout, + FleetServerOnPremUnhealthyCallout, } from '../components'; +import { useFleetServerUnhealthy } from '../hooks/use_fleet_server_unhealthy'; import { AgentTableHeader } from './components/table_header'; import type { SelectionMode } from './components/bulk_actions'; @@ -145,7 +148,7 @@ function safeMetadata(val: any) { } export const AgentListPage: React.FunctionComponent<{}> = () => { - const { notifications } = useStartServices(); + const { notifications, cloud } = useStartServices(); useBreadcrumbs('agent_list'); const { getHref } = useLink(); const defaultKuery: string = (useUrlParams().urlParams.kuery as string) || ''; @@ -193,7 +196,12 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { }, [setSearch, setDraftKuery, setSelectedAgentPolicies, setSelectedStatus, setShowUpgradeable]); // Agent enrollment flyout state - const [isEnrollmentFlyoutOpen, setIsEnrollmentFlyoutOpen] = useState<boolean>(false); + const [enrollmentFlyout, setEnrollmentFlyoutState] = useState<{ + isOpen: boolean; + selectedPolicyId?: string; + }>({ + isOpen: false, + }); // Agent actions states const [agentToReassign, setAgentToReassign] = useState<Agent | undefined>(undefined); @@ -369,6 +377,15 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { ); }, [agentToUnenroll, agentPoliciesIndexedById]); + // Fleet server unhealthy status + const { isUnhealthy: isFleetServerUnhealthy } = useFleetServerUnhealthy(); + const onClickAddFleetServer = useCallback(() => { + const defaultPolicy = agentPolicies.find((policy) => policy.is_default_fleet_server); + if (defaultPolicy) { + setEnrollmentFlyoutState({ isOpen: true, selectedPolicyId: defaultPolicy.id }); + } + }, [agentPolicies]); + const columns = [ { field: 'local_metadata.host.hostname', @@ -491,7 +508,11 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { } actions={ hasWriteCapabilites ? ( - <EuiButton fill iconType="plusInCircle" onClick={() => setIsEnrollmentFlyoutOpen(true)}> + <EuiButton + fill + iconType="plusInCircle" + onClick={() => setEnrollmentFlyoutState({ isOpen: true })} + > <FormattedMessage id="xpack.fleet.agentList.addButton" defaultMessage="Add agent" /> </EuiButton> ) : null @@ -501,11 +522,12 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { return ( <> - {isEnrollmentFlyoutOpen ? ( + {enrollmentFlyout.isOpen ? ( <EuiPortal> <AgentEnrollmentFlyout agentPolicies={agentPolicies} - onClose={() => setIsEnrollmentFlyoutOpen(false)} + agentPolicy={agentPolicies.find((p) => p.id === enrollmentFlyout.selectedPolicyId)} + onClose={() => setEnrollmentFlyoutState({ isOpen: false })} /> </EuiPortal> ) : null} @@ -549,6 +571,17 @@ export const AgentListPage: React.FunctionComponent<{}> = () => { </EuiPortal> )} + {isFleetServerUnhealthy && ( + <> + {cloud?.deploymentUrl ? ( + <FleetServerCloudUnhealthyCallout deploymentUrl={cloud.deploymentUrl} /> + ) : ( + <FleetServerOnPremUnhealthyCallout onClickAddFleetServer={onClickAddFleetServer} /> + )} + <EuiSpacer size="l" /> + </> + )} + {/* Search and filter bar */} <SearchAndFilterBar agentPolicies={agentPolicies} diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/fleet_server_on_prem_instructions.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/fleet_server_on_prem_instructions.tsx index e3bb252beb96f..0b4461e26851e 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/fleet_server_on_prem_instructions.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/components/fleet_server_on_prem_instructions.tsx @@ -46,6 +46,7 @@ import { import type { PLATFORM_TYPE } from '../../../../hooks'; import type { PackagePolicy } from '../../../../types'; import { FLEET_SERVER_PACKAGE } from '../../../../constants'; +import { FleetServerOnPremRequiredCallout } from '../../components'; import { getInstallCommandForPlatform } from './install_command_utils'; @@ -720,6 +721,8 @@ export const OnPremInstructions: React.FC = () => { return ( <> + <FleetServerOnPremRequiredCallout /> + <EuiSpacer size="xl" /> <EuiText> <h2> <FormattedMessage @@ -751,8 +754,8 @@ export const OnPremInstructions: React.FC = () => { <EuiSteps className="eui-textLeft" steps={[ - DownloadStep(), AgentPolicySelectionStep({ policyId, setPolicyId }), + DownloadStep(true), deploymentModeStep({ deploymentMode, setDeploymentMode }), addFleetServerHostStep({ addFleetServerHost }), ServiceTokenStep({ diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/fleet_server_requirement_page.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/fleet_server_requirement_page.tsx index 28332961f37a2..b317801d46a85 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/fleet_server_requirement_page.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/agent_requirements_page/fleet_server_requirement_page.tsx @@ -29,7 +29,12 @@ export const FleetServerRequirementPage = () => { return ( <> - <ContentWrapper gutterSize="l" justifyContent="center" alignItems="center" direction="column"> + <ContentWrapper + gutterSize="none" + justifyContent="center" + alignItems="center" + direction="column" + > <FlexItemWithMinWidth grow={false}> {deploymentUrl ? ( <CloudInstructions deploymentUrl={deploymentUrl} /> diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_health.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_health.tsx index 701d68c0e29e3..3d7b717fcb13f 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_health.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/agent_health.tsx @@ -19,7 +19,7 @@ interface Props { const Status = { Healthy: ( - <EuiBadge color="secondary"> + <EuiBadge color="success"> <FormattedMessage id="xpack.fleet.agentHealth.healthyStatusText" defaultMessage="Healthy" /> </EuiBadge> ), diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_cloud_unhealthy_callout.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_cloud_unhealthy_callout.tsx new file mode 100644 index 0000000000000..a2128b52db999 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_cloud_unhealthy_callout.tsx @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { EuiCallOut, EuiLink, EuiButton, EuiSpacer } from '@elastic/eui'; + +import { useStartServices } from '../../../../hooks'; + +export interface FleetServerCloudUnhealthyCalloutProps { + deploymentUrl: string; +} + +export const FleetServerCloudUnhealthyCallout: React.FunctionComponent<FleetServerCloudUnhealthyCalloutProps> = + ({ deploymentUrl }) => { + const { docLinks } = useStartServices(); + return ( + <EuiCallOut + iconType="alert" + color="warning" + title={ + <FormattedMessage + id="xpack.fleet.fleetServerCloudUnhealthyCallout.calloutTitle" + defaultMessage="Fleet Server is not Healthy" + /> + } + > + <FormattedMessage + id="xpack.fleet.fleetServerCloudRequiredCallout.calloutDescription" + defaultMessage="A healthy Fleet server is required to enroll agents with Fleet. Enable Fleet Server in you {cloudDeploymentLink}. For more information see the {guideLink}." + values={{ + cloudDeploymentLink: ( + <EuiLink href={deploymentUrl} target="_blank" external> + <FormattedMessage + id="xpack.fleet.fleetServerCloudRequiredCallout.cloudDeploymentLink" + defaultMessage="cloud deployment" + /> + </EuiLink> + ), + guideLink: ( + <EuiLink + href={docLinks.links.fleet.fleetServerAddFleetServer} + target="_blank" + external + > + <FormattedMessage + id="xpack.fleet.fleetServerCloudRequiredCallout.guideLink" + defaultMessage="Fleet and Elastic Agent Guide" + /> + </EuiLink> + ), + }} + /> + <EuiSpacer size="m" /> + <EuiButton href={deploymentUrl} target="_blank" color="warning" fill> + <FormattedMessage + id="xpack.fleet.fleetServerCloudRequiredCallout.editDeploymentButtonLabel" + defaultMessage="Edit deployment" + /> + </EuiButton> + </EuiCallOut> + ); + }; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_required_callout.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_required_callout.tsx new file mode 100644 index 0000000000000..74703a32a500c --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_required_callout.tsx @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { EuiCallOut, EuiLink } from '@elastic/eui'; + +import { useStartServices } from '../../../../hooks'; + +export const FleetServerOnPremRequiredCallout = () => { + const { docLinks } = useStartServices(); + return ( + <EuiCallOut + iconType="alert" + title={ + <FormattedMessage + id="xpack.fleet.fleetServerOnPremRequiredCallout.calloutTitle" + defaultMessage="A Fleet Server is required before enrolling agents with Fleet." + /> + } + > + <FormattedMessage + id="xpack.fleet.fleetServerOnPremRequiredCallout.calloutDescription" + defaultMessage="Follow the instructions below to set up a Fleet Server. For more information, see the {guideLink}." + values={{ + guideLink: ( + <EuiLink href={docLinks.links.fleet.fleetServerAddFleetServer} target="_blank" external> + <FormattedMessage + id="xpack.fleet.fleetServerOnPremRequiredCallout.guideLink" + defaultMessage="Fleet and Elastic Agent Guide" + /> + </EuiLink> + ), + }} + /> + </EuiCallOut> + ); +}; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_unhealthy_callout.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_unhealthy_callout.tsx new file mode 100644 index 0000000000000..aedd682831db5 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/fleet_server_on_prem_unhealthy_callout.tsx @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { EuiCallOut, EuiLink, EuiButton, EuiSpacer } from '@elastic/eui'; + +import { useStartServices } from '../../../../hooks'; + +export interface FleetServerOnPremUnhealthyCalloutProps { + onClickAddFleetServer: () => void; +} +export const FleetServerOnPremUnhealthyCallout: React.FunctionComponent<FleetServerOnPremUnhealthyCalloutProps> = + ({ onClickAddFleetServer }) => { + const { docLinks } = useStartServices(); + return ( + <EuiCallOut + iconType="alert" + color="warning" + title={ + <FormattedMessage + id="xpack.fleet.fleetServerOnPremUnhealthyCallout.calloutTitle" + defaultMessage="Fleet Server is not Healthy" + /> + } + > + <FormattedMessage + id="xpack.fleet.fleetServerOnPremUnhealthyCallout.calloutDescription" + defaultMessage="A healthy Fleet server is required before you can enroll agents with Fleet. For more information see the {guideLink}." + values={{ + guideLink: ( + <EuiLink + href={docLinks.links.fleet.fleetServerAddFleetServer} + target="_blank" + external + > + <FormattedMessage + id="xpack.fleet.fleetServerOnPremUnhealthyCallout.guideLink" + defaultMessage="Fleet and Elastic Agent Guide" + /> + </EuiLink> + ), + }} + /> + <EuiSpacer size="m" /> + <EuiButton onClick={onClickAddFleetServer} color="warning" fill> + <FormattedMessage + id="xpack.fleet.fleetServerOnPremUnhealthyCallout.addFleetServerButtonLabel" + defaultMessage="Add Fleet Server" + /> + </EuiButton> + </EuiCallOut> + ); + }; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.stories.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.stories.tsx new file mode 100644 index 0000000000000..d16026851a2d8 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.stories.tsx @@ -0,0 +1,74 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiSpacer } from '@elastic/eui'; + +import { FleetServerOnPremUnhealthyCallout as FleetServerOnPremUnhealthyCalloutComponent } from './fleet_server_on_prem_unhealthy_callout'; +import { FleetServerCloudUnhealthyCallout as FleetServerCloudUnhealthyCalloutComponent } from './fleet_server_cloud_unhealthy_callout'; +import { FleetServerOnPremRequiredCallout as FleetServerOnPremRequiredCalloutComponent } from './fleet_server_on_prem_required_callout'; + +interface Args { + width: number; +} + +export const FleetServerCallouts = ({ width }: Args) => { + return ( + <div style={{ width }}> + <FleetServerCloudUnhealthyCalloutComponent deploymentUrl="https://linktoclouddeployment/deployment123" /> + <EuiSpacer size="m" /> + <FleetServerOnPremUnhealthyCalloutComponent onClickAddFleetServer={() => {}} /> + <EuiSpacer size="m" /> + <FleetServerOnPremRequiredCalloutComponent /> + </div> + ); +}; + +FleetServerCallouts.args = { + width: 900, +} as Args; + +export const FleetServerCloudUnhealthyCallout = ({ width }: Args) => { + return ( + <div style={{ width }}> + <FleetServerCloudUnhealthyCalloutComponent deploymentUrl="https://linktoclouddeployment/deployment123" /> + </div> + ); +}; + +FleetServerCloudUnhealthyCallout.args = { + width: 900, +} as Args; + +export const FleetServerOnPremUnhealthyCallout = ({ width }: Args) => { + return ( + <div style={{ width }}> + <FleetServerOnPremUnhealthyCalloutComponent onClickAddFleetServer={() => {}} /> + </div> + ); +}; + +FleetServerOnPremUnhealthyCallout.args = { + width: 900, +} as Args; + +export const FleetServerOnPremRequiredCallout = ({ width }: Args) => { + return ( + <div style={{ width }}> + <FleetServerOnPremRequiredCalloutComponent /> + </div> + ); +}; + +FleetServerOnPremRequiredCallout.args = { + width: 900, +} as Args; + +export default { + component: FleetServerCallouts, + title: 'Sections/Fleet/Agents/FleetServerCallouts', +}; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.tsx new file mode 100644 index 0000000000000..1346153d0b34d --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/fleet_server_callouts/index.tsx @@ -0,0 +1,10 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export * from './fleet_server_cloud_unhealthy_callout'; +export * from './fleet_server_on_prem_unhealthy_callout'; +export * from './fleet_server_on_prem_required_callout'; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/index.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/index.tsx index 966a777941373..27fcc06045314 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/index.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/components/index.tsx @@ -10,3 +10,4 @@ export * from './agent_reassign_policy_modal'; export * from './agent_health'; export * from './agent_unenroll_modal'; export * from './agent_upgrade_modal'; +export * from './fleet_server_callouts'; diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.test.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.test.tsx new file mode 100644 index 0000000000000..87a269672ed9c --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.test.tsx @@ -0,0 +1,121 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { createFleetTestRendererMock } from '../../../../../mock'; +import type { MockedFleetStartServices } from '../../../../../mock'; + +import { useFleetServerUnhealthy } from './use_fleet_server_unhealthy'; + +function defaultHttpClientGetImplementation(path: any) { + if (typeof path !== 'string') { + throw new Error('Invalid request'); + } + const err = new Error(`API [GET ${path}] is not MOCKED!`); + // eslint-disable-next-line no-console + console.log(err); + throw err; +} + +const mockApiCallsWithHealthyFleetServer = (http: MockedFleetStartServices['http']) => { + http.get.mockImplementation(async (path) => { + if (typeof path !== 'string') { + throw new Error('Invalid request'); + } + if (path === '/api/fleet/package_policies') { + return { + data: { + items: [ + { + policy_id: 'policy1', + }, + ], + }, + }; + } + + if (path === '/api/fleet/agent-status') { + return { + data: { + results: { online: 1, updating: 0, offline: 0 }, + }, + }; + } + return defaultHttpClientGetImplementation(path); + }); +}; + +const mockApiCallsWithoutHealthyFleetServer = (http: MockedFleetStartServices['http']) => { + http.get.mockImplementation(async (path) => { + if (typeof path !== 'string') { + throw new Error('Invalid request'); + } + if (path === '/api/fleet/package_policies') { + return { + data: { + items: [ + { + policy_id: 'policy1', + }, + ], + }, + }; + } + + if (path === '/api/fleet/agent-status') { + return { + data: { + results: { online: 0, updating: 0, offline: 1 }, + }, + }; + } + return defaultHttpClientGetImplementation(path); + }); +}; + +const mockApiCallsWithError = (http: MockedFleetStartServices['http']) => { + http.get.mockImplementation(async (path) => { + const error = new Error('Invalid request'); + // @ts-ignore + error.body = 'Invalid request, ...'; + throw error; + }); +}; + +describe('useFleetServerUnhealthy', () => { + it('should return isUnHealthy:false with an online fleet slerver', async () => { + const testRenderer = createFleetTestRendererMock(); + mockApiCallsWithHealthyFleetServer(testRenderer.startServices.http); + const { result, waitForNextUpdate } = testRenderer.renderHook(() => useFleetServerUnhealthy()); + expect(result.current.isLoading).toBeTruthy(); + + await waitForNextUpdate(); + expect(result.current.isLoading).toBeFalsy(); + expect(result.current.isUnhealthy).toBeFalsy(); + }); + it('should return isUnHealthy:true with only one offline fleet slerver', async () => { + const testRenderer = createFleetTestRendererMock(); + mockApiCallsWithoutHealthyFleetServer(testRenderer.startServices.http); + const { result, waitForNextUpdate } = testRenderer.renderHook(() => useFleetServerUnhealthy()); + expect(result.current.isLoading).toBeTruthy(); + + await waitForNextUpdate(); + expect(result.current.isLoading).toBeFalsy(); + expect(result.current.isUnhealthy).toBeTruthy(); + }); + + it('should call notifications service if an error happen while fetching status', async () => { + const testRenderer = createFleetTestRendererMock(); + mockApiCallsWithError(testRenderer.startServices.http); + const { result, waitForNextUpdate } = testRenderer.renderHook(() => useFleetServerUnhealthy()); + expect(result.current.isLoading).toBeTruthy(); + + await waitForNextUpdate(); + expect(result.current.isLoading).toBeFalsy(); + expect(result.current.isUnhealthy).toBeFalsy(); + expect(testRenderer.startServices.notifications.toasts.addError).toBeCalled(); + }); +}); diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.tsx new file mode 100644 index 0000000000000..d97051c7bd969 --- /dev/null +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/hooks/use_fleet_server_unhealthy.tsx @@ -0,0 +1,70 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; +import { useEffect, useCallback, useState } from 'react'; + +import { FLEET_SERVER_PACKAGE, PACKAGE_POLICY_SAVED_OBJECT_TYPE } from '../../../constants'; +import { sendGetAgentStatus, sendGetPackagePolicies, useStartServices } from '../../../hooks'; + +export function useFleetServerUnhealthy() { + const { notifications } = useStartServices(); + const [isLoading, setIsLoading] = useState(true); + const [isUnhealthy, setIsUnhealthy] = useState(false); + const fetchData = useCallback(async () => { + try { + const packagePoliciesRes = await sendGetPackagePolicies({ + page: 1, + perPage: 10000, + kuery: `${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name:${FLEET_SERVER_PACKAGE}`, + }); + + if (packagePoliciesRes.error) { + throw packagePoliciesRes.error; + } + + const agentPolicyIds = [ + ...new Set(packagePoliciesRes.data?.items.map((p) => p.policy_id) ?? []), + ]; + + if (agentPolicyIds.length > 0) { + const agentStatusesRes = await sendGetAgentStatus({ + kuery: agentPolicyIds.map((policyId) => `policy_id:"${policyId}"`).join(' or '), + }); + + if (agentStatusesRes.error) { + throw agentStatusesRes.error; + } + + if ( + agentStatusesRes.data?.results.online === 0 && + agentStatusesRes.data?.results.updating === 0 + ) { + setIsUnhealthy(true); + } + } + + setIsLoading(false); + } catch (err) { + notifications.toasts.addError(err, { + title: i18n.translate('xpack.fleet.fleetServerUnhealthy.requestError', { + defaultMessage: 'An error happened while fetching fleet server status', + }), + }); + setIsLoading(false); + } + }, [notifications.toasts]); + + useEffect(() => { + fetchData(); + }, [fetchData]); + + return { + isLoading, + isUnhealthy, + }; +} diff --git a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/services/agent_status.tsx b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/services/agent_status.tsx index 8eafcef0dc6de..d98e9d8673755 100644 --- a/x-pack/plugins/fleet/public/applications/fleet/sections/agents/services/agent_status.tsx +++ b/x-pack/plugins/fleet/public/applications/fleet/sections/agents/services/agent_status.tsx @@ -16,7 +16,7 @@ const colorToHexMap = { // using variables as mentioned here https://elastic.github.io/eui/#/guidelines/getting-started default: euiLightVars.euiColorLightShade, primary: visColors[1], - secondary: visColors[0], + success: visColors[0], accent: visColors[2], warning: visColors[5], danger: visColors[9], @@ -34,7 +34,7 @@ export const AGENT_STATUSES: SimplifiedAgentStatus[] = [ export function getColorForAgentStatus(agentStatus: SimplifiedAgentStatus): string { switch (agentStatus) { case 'healthy': - return colorToHexMap.secondary; + return colorToHexMap.success; case 'offline': return colorToHexMap.default; case 'inactive': diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/keep_policies_up_to_date_switch.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/keep_policies_up_to_date_switch.tsx index 751282cc42288..364b24ab48912 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/keep_policies_up_to_date_switch.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/components/keep_policies_up_to_date_switch.tsx @@ -12,11 +12,13 @@ import { EuiSwitch, EuiSpacer, EuiText, EuiFlexGroup, EuiFlexItem, EuiIcon } fro interface Props { checked: boolean; + disabled?: boolean; onChange: () => void; } export const KeepPoliciesUpToDateSwitch: React.FunctionComponent<Props> = ({ checked, + disabled = false, onChange, }) => ( <> @@ -27,6 +29,7 @@ export const KeepPoliciesUpToDateSwitch: React.FunctionComponent<Props> = ({ )} checked={checked} onChange={onChange} + disabled={disabled} /> <EuiSpacer size="s" /> <EuiText color="subdued" size="xs"> @@ -35,10 +38,17 @@ export const KeepPoliciesUpToDateSwitch: React.FunctionComponent<Props> = ({ <EuiIcon type="iInCircle" /> </EuiFlexItem> <EuiFlexItem grow={false}> - <FormattedMessage - id="xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateDescription" - defaultMessage="When enabled, Fleet will attempt to upgrade and deploy integration policies automatically" - /> + {disabled ? ( + <FormattedMessage + id="xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateDisabledDescription" + defaultMessage="This integration requires Fleet to automatically upgrade its integration policies" + /> + ) : ( + <FormattedMessage + id="xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateDescription" + defaultMessage="When enabled, Fleet will attempt to upgrade and deploy integration policies automatically" + /> + )} </EuiFlexItem> </EuiFlexGroup> </EuiText> diff --git a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx index 5fa274c0feb98..31a01ffd7bdc8 100644 --- a/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx +++ b/x-pack/plugins/fleet/public/applications/integrations/sections/epm/screens/detail/settings/settings.tsx @@ -9,7 +9,6 @@ import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n/react'; import semverLt from 'semver/functions/lt'; -import { uniq } from 'lodash'; import { EuiCallOut, @@ -35,8 +34,8 @@ import { } from '../../../../../hooks'; import { PACKAGE_POLICY_SAVED_OBJECT_TYPE, - AUTO_UPDATE_PACKAGES, - DEFAULT_PACKAGES, + KEEP_POLICIES_UP_TO_DATE_PACKAGES, + AUTO_UPGRADE_POLICIES_PACKAGES, } from '../../../../../constants'; import { KeepPoliciesUpToDateSwitch } from '../components'; @@ -107,11 +106,11 @@ export const SettingsPage: React.FC<Props> = memo(({ packageInfo }: Props) => { const { notifications } = useStartServices(); const shouldShowKeepPoliciesUpToDateSwitch = useMemo(() => { - const packages = [...DEFAULT_PACKAGES, ...AUTO_UPDATE_PACKAGES]; - - const packageNames = uniq(packages.map((pkg) => pkg.name)); + return KEEP_POLICIES_UP_TO_DATE_PACKAGES.some((pkg) => pkg.name === name); + }, [name]); - return packageNames.includes(name); + const isShowKeepPoliciesUpToDateSwitchDisabled = useMemo(() => { + return AUTO_UPGRADE_POLICIES_PACKAGES.some((pkg) => pkg.name === name); }, [name]); const [keepPoliciesUpToDateSwitchValue, setKeepPoliciesUpToDateSwitchValue] = useState<boolean>( @@ -274,6 +273,7 @@ export const SettingsPage: React.FC<Props> = memo(({ packageInfo }: Props) => { <KeepPoliciesUpToDateSwitch checked={keepPoliciesUpToDateSwitchValue} onChange={handleKeepPoliciesUpToDateSwitchChange} + disabled={isShowKeepPoliciesUpToDateSwitchDisabled} /> <EuiSpacer size="l" /> </> diff --git a/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/managed_instructions.tsx b/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/managed_instructions.tsx index 8054c48fbbaa8..95f716acf89e4 100644 --- a/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/managed_instructions.tsx +++ b/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/managed_instructions.tsx @@ -95,7 +95,6 @@ export const ManagedInstructions = React.memo<Props>( const steps = useMemo(() => { const fleetServerHosts = settings?.fleet_server_hosts || []; const baseSteps: EuiContainedStepProps[] = [ - DownloadStep(), !agentPolicy ? AgentPolicySelectionStep({ agentPolicies, @@ -104,6 +103,7 @@ export const ManagedInstructions = React.memo<Props>( setSelectedPolicyId, }) : AgentEnrollmentKeySelectionStep({ agentPolicy, selectedApiKeyId, setSelectedAPIKeyId }), + DownloadStep(isFleetServerPolicySelected || false), ]; if (isFleetServerPolicySelected) { baseSteps.push(...fleetServerSteps); diff --git a/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/standalone_instructions.tsx b/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/standalone_instructions.tsx index 99e8809923140..f9d4c2d162c5f 100644 --- a/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/standalone_instructions.tsx +++ b/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/standalone_instructions.tsx @@ -186,10 +186,10 @@ export const StandaloneInstructions = React.memo<Props>(({ agentPolicy, agentPol ); const steps = [ - DownloadStep(), !agentPolicy ? AgentPolicySelectionStep({ agentPolicies, setSelectedPolicyId, excludeFleetServer: true }) : undefined, + DownloadStep(false), { title: i18n.translate('xpack.fleet.agentEnrollment.stepConfigureAgentTitle', { defaultMessage: 'Configure the agent', diff --git a/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/steps.tsx b/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/steps.tsx index 03b0cc52c53f8..aa40e2ffc9140 100644 --- a/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/steps.tsx +++ b/x-pack/plugins/fleet/public/components/agent_enrollment_flyout/steps.tsx @@ -19,25 +19,36 @@ import { useKibanaVersion } from '../../hooks'; import { EnrollmentStepAgentPolicy } from './agent_policy_selection'; import { AdvancedAgentAuthenticationSettings } from './advanced_agent_authentication_settings'; -export const DownloadStep = () => { +export const DownloadStep = (hasFleetServer: boolean) => { const kibanaVersion = useKibanaVersion(); const kibanaVersionURLString = useMemo( () => `${semverMajor(kibanaVersion)}-${semverMinor(kibanaVersion)}-${semverPatch(kibanaVersion)}`, [kibanaVersion] ); + const title = hasFleetServer + ? i18n.translate('xpack.fleet.agentEnrollment.stepDownloadAgentForFleetServerTitle', { + defaultMessage: 'Download the Fleet Server to a centralized host', + }) + : i18n.translate('xpack.fleet.agentEnrollment.stepDownloadAgentTitle', { + defaultMessage: 'Download the Elastic Agent to your host', + }); + const downloadDescription = hasFleetServer ? ( + <FormattedMessage + id="xpack.fleet.agentEnrollment.downloadDescriptionForFleetServer" + defaultMessage="Fleet Server runs on an Elastic Agent. Install this agent on a centralized host so that other hosts you wish to monitor can connect to it. In production, we recommend using one or more dedicated hosts. You can download the Elastic Agent binaries and verification signatures from Elastic’s download page." + /> + ) : ( + <FormattedMessage + id="xpack.fleet.agentEnrollment.downloadDescription" + defaultMessage="Install the Elastic Agent on the hosts you wish to monitor. Do not install this agent policy on a host containing Fleet Server. You can download the Elastic Agent binaries and verification signatures from Elastic’s download page." + /> + ); return { - title: i18n.translate('xpack.fleet.agentEnrollment.stepDownloadAgentTitle', { - defaultMessage: 'Download the Elastic Agent to your host', - }), + title, children: ( <> - <EuiText> - <FormattedMessage - id="xpack.fleet.agentEnrollment.downloadDescription" - defaultMessage="Fleet Server runs on an Elastic Agent. You can download the Elastic Agent binaries and verification signatures from Elastic’s download page." - /> - </EuiText> + <EuiText>{downloadDescription}</EuiText> <EuiSpacer size="s" /> <EuiText size="s"> <FormattedMessage diff --git a/x-pack/plugins/fleet/public/constants/index.ts b/x-pack/plugins/fleet/public/constants/index.ts index 38b7875c93b3b..139f9d3d1f1c4 100644 --- a/x-pack/plugins/fleet/public/constants/index.ts +++ b/x-pack/plugins/fleet/public/constants/index.ts @@ -21,6 +21,8 @@ export { // Preconfiguration AUTO_UPDATE_PACKAGES, DEFAULT_PACKAGES, + KEEP_POLICIES_UP_TO_DATE_PACKAGES, + AUTO_UPGRADE_POLICIES_PACKAGES, } from '../../common/constants'; export * from './page_paths'; diff --git a/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx b/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx index c8965f8be0156..b1665f0ac2e76 100644 --- a/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx +++ b/x-pack/plugins/fleet/public/hooks/use_fleet_status.tsx @@ -54,6 +54,7 @@ export const FleetStatusProvider: React.FC = ({ children }) => { }, [setState] ); + useEffect(() => { sendGetStatus(); }, [sendGetStatus]); diff --git a/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts b/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts index 5aa36ba2e8268..0d2e1179108f2 100644 --- a/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts +++ b/x-pack/plugins/fleet/public/hooks/use_request/package_policy.ts @@ -59,6 +59,14 @@ export function useGetPackagePolicies(query: GetPackagePoliciesRequest['query']) }); } +export const sendGetPackagePolicies = (query: GetPackagePoliciesRequest['query']) => { + return sendRequest<GetPackagePoliciesResponse>({ + method: 'get', + path: packagePolicyRouteService.getListPath(), + query, + }); +}; + export const useGetOnePackagePolicy = (packagePolicyId: string) => { return useRequest<GetOnePackagePolicyResponse>({ path: packagePolicyRouteService.getInfoPath(packagePolicyId), @@ -77,9 +85,8 @@ export function sendUpgradePackagePolicyDryRun( packagePolicyIds: string[], packageVersion?: string ) { - const body: { packagePolicyIds: string[]; dryRun: boolean; packageVersion?: string } = { + const body: { packagePolicyIds: string[]; packageVersion?: string } = { packagePolicyIds, - dryRun: true, }; if (packageVersion) { @@ -87,7 +94,7 @@ export function sendUpgradePackagePolicyDryRun( } return sendRequest<UpgradePackagePolicyDryRunResponse>({ - path: packagePolicyRouteService.getUpgradePath(), + path: packagePolicyRouteService.getDryRunPath(), method: 'post', body: JSON.stringify(body), }); @@ -99,7 +106,6 @@ export function sendUpgradePackagePolicy(packagePolicyIds: string[]) { method: 'post', body: JSON.stringify({ packagePolicyIds, - dryRun: false, }), }); } diff --git a/x-pack/plugins/fleet/public/mock/create_test_renderer.tsx b/x-pack/plugins/fleet/public/mock/create_test_renderer.tsx index a0a9ef405540a..ad07e020eadd9 100644 --- a/x-pack/plugins/fleet/public/mock/create_test_renderer.tsx +++ b/x-pack/plugins/fleet/public/mock/create_test_renderer.tsx @@ -10,7 +10,10 @@ import { createMemoryHistory } from 'history'; import React, { memo } from 'react'; import type { RenderOptions, RenderResult } from '@testing-library/react'; import { render as reactRender, act } from '@testing-library/react'; +import { renderHook } from '@testing-library/react-hooks'; +import type { RenderHookResult } from '@testing-library/react-hooks'; +import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; import { ScopedHistory } from '../../../../../src/core/public'; import { FleetAppContext } from '../applications/fleet/app'; import { IntegrationsAppContext } from '../applications/integrations/app'; @@ -40,7 +43,11 @@ export interface TestRenderer { startInterface: MockedFleetStart; kibanaVersion: string; AppWrapper: React.FC<any>; + HookWrapper: React.FC<any>; render: UiRender; + renderHook: <TProps, TResult>( + callback: (props: TProps) => TResult + ) => RenderHookResult<TProps, TResult>; setHeaderActionMenu: Function; } @@ -49,6 +56,15 @@ export const createFleetTestRendererMock = (): TestRenderer => { const extensions: UIExtensionsStorage = {}; const startServices = createStartServices(basePath); const history = createMemoryHistory({ initialEntries: [basePath] }); + + const HookWrapper = memo(({ children }) => { + return ( + <startServices.i18n.Context> + <KibanaContextProvider services={{ ...startServices }}>{children}</KibanaContextProvider> + </startServices.i18n.Context> + ); + }); + const testRendererMocks: TestRenderer = { history, mountHistory: new ScopedHistory(history, basePath), @@ -72,6 +88,12 @@ export const createFleetTestRendererMock = (): TestRenderer => { </FleetAppContext> ); }), + HookWrapper, + renderHook: (callback) => { + return renderHook(callback, { + wrapper: testRendererMocks.HookWrapper, + }); + }, render: (ui, options) => { let renderResponse: RenderResult; act(() => { @@ -91,6 +113,13 @@ export const createIntegrationsTestRendererMock = (): TestRenderer => { const basePath = '/mock'; const extensions: UIExtensionsStorage = {}; const startServices = createStartServices(basePath); + const HookWrapper = memo(({ children }) => { + return ( + <startServices.i18n.Context> + <KibanaContextProvider services={{ ...startServices }}>{children}</KibanaContextProvider> + </startServices.i18n.Context> + ); + }); const testRendererMocks: TestRenderer = { history: createMemoryHistory(), mountHistory: new ScopedHistory(createMemoryHistory({ initialEntries: [basePath] }), basePath), @@ -115,6 +144,7 @@ export const createIntegrationsTestRendererMock = (): TestRenderer => { </IntegrationsAppContext> ); }), + HookWrapper, render: (ui, options) => { let renderResponse: RenderResult; act(() => { @@ -125,6 +155,11 @@ export const createIntegrationsTestRendererMock = (): TestRenderer => { }); return renderResponse!; }, + renderHook: (callback) => { + return renderHook(callback, { + wrapper: testRendererMocks.HookWrapper, + }); + }, }; return testRendererMocks; diff --git a/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts b/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts index f61890f852798..330db62bbd604 100644 --- a/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts +++ b/x-pack/plugins/fleet/server/routes/package_policy/handlers.ts @@ -18,6 +18,7 @@ import type { UpdatePackagePolicyRequestSchema, DeletePackagePoliciesRequestSchema, UpgradePackagePoliciesRequestSchema, + DryRunPackagePoliciesRequestSchema, } from '../../types'; import type { CreatePackagePolicyResponse, @@ -192,8 +193,6 @@ export const deletePackagePolicyHandler: RequestHandler< } }; -// TODO: Separate the upgrade and dry-run processes into separate endpoints, and address -// duplicate logic in error handling as part of https://github.com/elastic/kibana/issues/63123 export const upgradePackagePolicyHandler: RequestHandler< unknown, unknown, @@ -203,50 +202,56 @@ export const upgradePackagePolicyHandler: RequestHandler< const esClient = context.core.elasticsearch.client.asCurrentUser; const user = appContextService.getSecurity()?.authc.getCurrentUser(request) || undefined; try { - if (request.body.dryRun) { - const body: UpgradePackagePolicyDryRunResponse = []; - - for (const id of request.body.packagePolicyIds) { - const result = await packagePolicyService.getUpgradeDryRunDiff( - soClient, - id, - request.body.packageVersion - ); - body.push(result); - } - - const firstFatalError = body.find((item) => item.statusCode && item.statusCode !== 200); - - if (firstFatalError) { - return response.customError({ - statusCode: firstFatalError.statusCode!, - body: { message: firstFatalError.body!.message }, - }); - } + const body: UpgradePackagePolicyResponse = await packagePolicyService.upgrade( + soClient, + esClient, + request.body.packagePolicyIds, + { user } + ); - return response.ok({ - body, + const firstFatalError = body.find((item) => item.statusCode && item.statusCode !== 200); + + if (firstFatalError) { + return response.customError({ + statusCode: firstFatalError.statusCode!, + body: { message: firstFatalError.body!.message }, }); - } else { - const body: UpgradePackagePolicyResponse = await packagePolicyService.upgrade( - soClient, - esClient, - request.body.packagePolicyIds, - { user } - ); + } + return response.ok({ + body, + }); + } catch (error) { + return defaultIngestErrorHandler({ error, response }); + } +}; - const firstFatalError = body.find((item) => item.statusCode && item.statusCode !== 200); +export const dryRunUpgradePackagePolicyHandler: RequestHandler< + unknown, + unknown, + TypeOf<typeof DryRunPackagePoliciesRequestSchema.body> +> = async (context, request, response) => { + const soClient = context.core.savedObjects.client; + try { + const body: UpgradePackagePolicyDryRunResponse = []; + const { packagePolicyIds, packageVersion } = request.body; - if (firstFatalError) { - return response.customError({ - statusCode: firstFatalError.statusCode!, - body: { message: firstFatalError.body!.message }, - }); - } - return response.ok({ - body, + for (const id of packagePolicyIds) { + const result = await packagePolicyService.getUpgradeDryRunDiff(soClient, id, packageVersion); + body.push(result); + } + + const firstFatalError = body.find((item) => item.statusCode && item.statusCode !== 200); + + if (firstFatalError) { + return response.customError({ + statusCode: firstFatalError.statusCode!, + body: { message: firstFatalError.body!.message }, }); } + + return response.ok({ + body, + }); } catch (error) { return defaultIngestErrorHandler({ error, response }); } diff --git a/x-pack/plugins/fleet/server/routes/package_policy/index.ts b/x-pack/plugins/fleet/server/routes/package_policy/index.ts index 9639f22e479f5..596532a17a8c8 100644 --- a/x-pack/plugins/fleet/server/routes/package_policy/index.ts +++ b/x-pack/plugins/fleet/server/routes/package_policy/index.ts @@ -15,6 +15,7 @@ import { UpdatePackagePolicyRequestSchema, DeletePackagePoliciesRequestSchema, UpgradePackagePoliciesRequestSchema, + DryRunPackagePoliciesRequestSchema, } from '../../types'; import { @@ -24,6 +25,7 @@ import { updatePackagePolicyHandler, deletePackagePolicyHandler, upgradePackagePolicyHandler, + dryRunUpgradePackagePolicyHandler, } from './handlers'; export const registerRoutes = (router: IRouter) => { @@ -86,4 +88,14 @@ export const registerRoutes = (router: IRouter) => { }, upgradePackagePolicyHandler ); + + // Upgrade - DryRun + router.post( + { + path: PACKAGE_POLICY_API_ROUTES.DRYRUN_PATTERN, + validate: DryRunPackagePoliciesRequestSchema, + options: { tags: [`access:${PLUGIN_ID}-all`] }, + }, + dryRunUpgradePackagePolicyHandler + ); }; diff --git a/x-pack/plugins/fleet/server/saved_objects/index.ts b/x-pack/plugins/fleet/server/saved_objects/index.ts index 3b459c938b5f0..26adf7b9fcbc7 100644 --- a/x-pack/plugins/fleet/server/saved_objects/index.ts +++ b/x-pack/plugins/fleet/server/saved_objects/index.ts @@ -35,7 +35,7 @@ import { import { migratePackagePolicyToV7140, migrateInstallationToV7140 } from './migrations/to_v7_14_0'; import { migratePackagePolicyToV7150 } from './migrations/to_v7_15_0'; import { migrateInstallationToV7160, migratePackagePolicyToV7160 } from './migrations/to_v7_16_0'; -import { migrateOutputToV800 } from './migrations/to_v8_0_0'; +import { migrateInstallationToV800, migrateOutputToV800 } from './migrations/to_v8_0_0'; /* * Saved object types and mappings @@ -255,6 +255,7 @@ const getSavedObjectTypes = ( '7.14.0': migrateInstallationToV7140, '7.14.1': migrateInstallationToV7140, '7.16.0': migrateInstallationToV7160, + '8.0.0': migrateInstallationToV800, }, }, [ASSETS_SAVED_OBJECT_TYPE]: { diff --git a/x-pack/plugins/fleet/server/saved_objects/migrations/to_v8_0_0.ts b/x-pack/plugins/fleet/server/saved_objects/migrations/to_v8_0_0.ts index 77797b3d27ba5..61db35fd9faf5 100644 --- a/x-pack/plugins/fleet/server/saved_objects/migrations/to_v8_0_0.ts +++ b/x-pack/plugins/fleet/server/saved_objects/migrations/to_v8_0_0.ts @@ -7,8 +7,8 @@ import type { SavedObjectMigrationFn } from 'kibana/server'; -import type { Output } from '../../../common'; -import {} from '../../../common'; +import type { Installation, Output } from '../../../common'; +import { AUTO_UPGRADE_POLICIES_PACKAGES } from '../../../common'; export const migrateOutputToV800: SavedObjectMigrationFn<Output, Output> = ( outputDoc, @@ -20,3 +20,20 @@ export const migrateOutputToV800: SavedObjectMigrationFn<Output, Output> = ( return outputDoc; }; + +export const migrateInstallationToV800: SavedObjectMigrationFn<Installation, Installation> = ( + installationDoc, + migrationContext +) => { + const updatedInstallationDoc = installationDoc; + + const shouldKeepPoliciesUpToDate = AUTO_UPGRADE_POLICIES_PACKAGES.some( + (pkg) => pkg.name === updatedInstallationDoc.attributes.name + ); + + if (shouldKeepPoliciesUpToDate) { + updatedInstallationDoc.attributes.keep_policies_up_to_date = true; + } + + return updatedInstallationDoc; +}; diff --git a/x-pack/plugins/fleet/server/services/epm/packages/install.ts b/x-pack/plugins/fleet/server/services/epm/packages/install.ts index 5b86c944feb39..db26dc3a20a80 100644 --- a/x-pack/plugins/fleet/server/services/epm/packages/install.ts +++ b/x-pack/plugins/fleet/server/services/epm/packages/install.ts @@ -18,7 +18,7 @@ import type { InstallablePackage, InstallSource, } from '../../../../common'; -import { DEFAULT_PACKAGES } from '../../../../common'; +import { AUTO_UPGRADE_POLICIES_PACKAGES } from '../../../../common'; import { IngestManagerError, PackageOperationNotSupportedError, @@ -534,11 +534,14 @@ export async function createInstallation(options: { const removable = !isUnremovablePackage(pkgName); const toSaveESIndexPatterns = generateESIndexPatterns(packageInfo.data_streams); - // For default packages, default the `keep_policies_up_to_date` setting to true. For all other - // package, default it to false. - const defaultKeepPoliciesUpToDate = DEFAULT_PACKAGES.some( + // For "stack-aligned" packages, default the `keep_policies_up_to_date` setting to true. For all other + // packages, default it to undefined. Use undefined rather than false to allow us to differentiate + // between "unset" and "user explicitly disabled". + const defaultKeepPoliciesUpToDate = AUTO_UPGRADE_POLICIES_PACKAGES.some( ({ name }) => name === packageInfo.name - ); + ) + ? true + : undefined; const created = await savedObjectsClient.create<Installation>( PACKAGES_SAVED_OBJECT_TYPE, diff --git a/x-pack/plugins/fleet/server/services/managed_package_policies.test.ts b/x-pack/plugins/fleet/server/services/managed_package_policies.test.ts index b27248a3cb933..7ccfeb4fe7641 100644 --- a/x-pack/plugins/fleet/server/services/managed_package_policies.test.ts +++ b/x-pack/plugins/fleet/server/services/managed_package_policies.test.ts @@ -8,7 +8,6 @@ import { elasticsearchServiceMock, savedObjectsClientMock } from 'src/core/server/mocks'; import type { Installation, PackageInfo } from '../../common'; -import { AUTO_UPDATE_PACKAGES } from '../../common'; import { shouldUpgradePolicies, upgradeManagedPackagePolicies } from './managed_package_policies'; import { packagePolicyService } from './package_policy'; @@ -227,50 +226,6 @@ describe('upgradeManagedPackagePolicies', () => { }); describe('shouldUpgradePolicies', () => { - describe('package is marked as AUTO_UPDATE', () => { - describe('keep_policies_up_to_date is true', () => { - it('returns false', () => { - const packageInfo = { - version: '1.0.0', - keepPoliciesUpToDate: true, - name: AUTO_UPDATE_PACKAGES[0].name, - }; - - const installedPackage = { - version: '1.0.0', - }; - - const result = shouldUpgradePolicies( - packageInfo as PackageInfo, - installedPackage as Installation - ); - - expect(result).toBe(false); - }); - }); - - describe('keep_policies_up_to_date is false', () => { - it('returns false', () => { - const packageInfo = { - version: '1.0.0', - keepPoliciesUpToDate: false, - name: AUTO_UPDATE_PACKAGES[0].name, - }; - - const installedPackage = { - version: '1.0.0', - }; - - const result = shouldUpgradePolicies( - packageInfo as PackageInfo, - installedPackage as Installation - ); - - expect(result).toBe(false); - }); - }); - }); - describe('package policy is up-to-date', () => { describe('keep_policies_up_to_date is true', () => { it('returns false', () => { diff --git a/x-pack/plugins/fleet/server/services/managed_package_policies.ts b/x-pack/plugins/fleet/server/services/managed_package_policies.ts index e78bc096b8711..c702cfe96d986 100644 --- a/x-pack/plugins/fleet/server/services/managed_package_policies.ts +++ b/x-pack/plugins/fleet/server/services/managed_package_policies.ts @@ -74,7 +74,7 @@ export const upgradeManagedPackagePolicies = async ( if (dryRunResults.hasErrors) { const errors = dryRunResults.diff ? dryRunResults.diff?.[1].errors - : dryRunResults.body?.message; + : [dryRunResults.body?.message]; appContextService .getLogger() diff --git a/x-pack/plugins/fleet/server/services/package_policy.ts b/x-pack/plugins/fleet/server/services/package_policy.ts index 856bf077b33d3..4a91979224017 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.ts @@ -428,7 +428,6 @@ class PackagePolicyService { currentVersion: currentVersion || 'unknown', newVersion: packagePolicy.package.version, status: 'success', - dryRun: false, eventType: 'package-policy-upgrade' as UpdateEventType, }; sendTelemetryEvents( diff --git a/x-pack/plugins/fleet/server/services/setup.ts b/x-pack/plugins/fleet/server/services/setup.ts index 1c84073552e57..d39a5f4473199 100644 --- a/x-pack/plugins/fleet/server/services/setup.ts +++ b/x-pack/plugins/fleet/server/services/setup.ts @@ -220,8 +220,15 @@ export function formatNonFatalErrors( name: e.error.name, message: e.error.message, }; - } else { + } else if ('errors' in e) { return e.errors.map((upgradePackagePolicyError: any) => { + if (typeof upgradePackagePolicyError === 'string') { + return { + name: 'SetupNonFatalError', + message: upgradePackagePolicyError, + }; + } + return { name: upgradePackagePolicyError.key, message: upgradePackagePolicyError.message, diff --git a/x-pack/plugins/fleet/server/types/rest_spec/package_policy.ts b/x-pack/plugins/fleet/server/types/rest_spec/package_policy.ts index 4ccc57aca0ebd..34649602d2a02 100644 --- a/x-pack/plugins/fleet/server/types/rest_spec/package_policy.ts +++ b/x-pack/plugins/fleet/server/types/rest_spec/package_policy.ts @@ -40,7 +40,12 @@ export const DeletePackagePoliciesRequestSchema = { export const UpgradePackagePoliciesRequestSchema = { body: schema.object({ packagePolicyIds: schema.arrayOf(schema.string()), - dryRun: schema.maybe(schema.boolean()), + }), +}; + +export const DryRunPackagePoliciesRequestSchema = { + body: schema.object({ + packagePolicyIds: schema.arrayOf(schema.string()), packageVersion: schema.maybe(schema.string()), }), }; diff --git a/x-pack/plugins/graph/public/components/guidance_panel/_guidance_panel.scss b/x-pack/plugins/graph/public/components/guidance_panel/_guidance_panel.scss index e1423b794dcd3..add1d0bdf8aa3 100644 --- a/x-pack/plugins/graph/public/components/guidance_panel/_guidance_panel.scss +++ b/x-pack/plugins/graph/public/components/guidance_panel/_guidance_panel.scss @@ -34,7 +34,7 @@ padding: $euiSizeXS; &--done { - background-color: $euiColorSecondary; + background-color: $euiColorSuccess; color: $euiColorEmptyShade; border-radius: 50%; } diff --git a/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx b/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx index 90cb48df4b8d9..e71dc13e7f678 100644 --- a/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx +++ b/x-pack/plugins/index_management/public/application/components/component_templates/component_template_list/table.tsx @@ -84,7 +84,7 @@ export const ComponentTable: FunctionComponent<Props> = ({ <EuiButton key="reloadButton" iconType="refresh" - color="secondary" + color="success" data-test-subj="reloadButton" onClick={onReloadClick} > diff --git a/x-pack/plugins/index_management/public/application/components/component_templates/component_template_selector/component_templates_list_item.tsx b/x-pack/plugins/index_management/public/application/components/component_templates/component_template_selector/component_templates_list_item.tsx index 8f1d6e220e8c3..e31f06d2b6f2b 100644 --- a/x-pack/plugins/index_management/public/application/components/component_templates/component_template_selector/component_templates_list_item.tsx +++ b/x-pack/plugins/index_management/public/application/components/component_templates/component_template_selector/component_templates_list_item.tsx @@ -99,7 +99,7 @@ export const ComponentTemplatesListItem = ({ {/* Check icon when selected */} {isSelectedValue && ( - <EuiIcon className="componentTemplatesListItem__checkIcon" type="check" color="secondary" /> + <EuiIcon className="componentTemplatesListItem__checkIcon" type="check" color="success" /> )} </div> ); diff --git a/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx b/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx index aa6ed7ae910f8..cbfe133b2909d 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/data_stream_list/data_stream_table/data_stream_table.tsx @@ -183,7 +183,7 @@ export const DataStreamTable: React.FunctionComponent<Props> = ({ ) : undefined, toolsRight: [ <EuiButton - color="secondary" + color="success" iconType="refresh" onClick={reload} data-test-subj="reloadButton" diff --git a/x-pack/plugins/index_management/public/application/sections/home/index_list/index_table/index_table.js b/x-pack/plugins/index_management/public/application/sections/home/index_list/index_table/index_table.js index d40f04d03cc92..83c7df52fb679 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/index_list/index_table/index_table.js +++ b/x-pack/plugins/index_management/public/application/sections/home/index_list/index_table/index_table.js @@ -603,7 +603,7 @@ export class IndexTable extends Component { <EuiFlexItem grow={false}> <EuiButton isLoading={indicesLoading} - color="secondary" + color="success" onClick={() => { loadIndices(); }} diff --git a/x-pack/plugins/index_management/public/application/sections/home/template_list/template_list.tsx b/x-pack/plugins/index_management/public/application/sections/home/template_list/template_list.tsx index 57f18134be5d6..2df312771ca12 100644 --- a/x-pack/plugins/index_management/public/application/sections/home/template_list/template_list.tsx +++ b/x-pack/plugins/index_management/public/application/sections/home/template_list/template_list.tsx @@ -162,7 +162,7 @@ export const TemplateList: React.FunctionComponent<RouteComponentProps<MatchPara </EuiFlexItem> <EuiFlexItem grow={false}> <EuiButton - color="secondary" + color="success" iconType="refresh" onClick={reload} data-test-subj="reloadButton" diff --git a/x-pack/plugins/infra/common/inventory_models/host/layout.tsx b/x-pack/plugins/infra/common/inventory_models/host/layout.tsx index 98d2b1a595bc5..c28a29f9c0751 100644 --- a/x-pack/plugins/infra/common/inventory_models/host/layout.tsx +++ b/x-pack/plugins/infra/common/inventory_models/host/layout.tsx @@ -256,7 +256,7 @@ export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPr defaultMessage: 'CPU Capacity', } ), - color: 'secondary', + color: 'success', formatter: 'percent', gaugeMax: 1, }, @@ -267,7 +267,7 @@ export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPr defaultMessage: 'Load (5m)', } ), - color: 'secondary', + color: 'success', }, memorycap: { name: i18n.translate( @@ -276,7 +276,7 @@ export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPr defaultMessage: 'Memory Capacity', } ), - color: 'secondary', + color: 'success', formatter: 'percent', gaugeMax: 1, }, @@ -287,7 +287,7 @@ export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPr defaultMessage: 'Pod Capacity', } ), - color: 'secondary', + color: 'success', formatter: 'percent', gaugeMax: 1, }, @@ -298,7 +298,7 @@ export const Layout = withTheme(({ metrics, onChangeRangeTime, theme }: LayoutPr defaultMessage: 'Disk Capacity', } ), - color: 'secondary', + color: 'success', formatter: 'percent', gaugeMax: 1, }, diff --git a/x-pack/plugins/infra/public/alerting/inventory/components/expression.tsx b/x-pack/plugins/infra/public/alerting/inventory/components/expression.tsx index f72c9d4531424..95ea78ac98ee9 100644 --- a/x-pack/plugins/infra/public/alerting/inventory/components/expression.tsx +++ b/x-pack/plugins/infra/public/alerting/inventory/components/expression.tsx @@ -638,7 +638,7 @@ export const ExpressionRow: React.FC<ExpressionRowProps> = (props) => { } )} iconSize="s" - color={'subdued'} + color="text" iconType={'crossInACircleFilled'} onClick={toggleWarningThreshold} /> diff --git a/x-pack/plugins/infra/public/alerting/inventory/components/metric.tsx b/x-pack/plugins/infra/public/alerting/inventory/components/metric.tsx index 7f8bcd6ae419b..3d9116905fb25 100644 --- a/x-pack/plugins/infra/public/alerting/inventory/components/metric.tsx +++ b/x-pack/plugins/infra/public/alerting/inventory/components/metric.tsx @@ -186,7 +186,7 @@ export const MetricExpression = ({ onClick={() => { setPopoverOpen(true); }} - color={errors.metric?.length ? 'danger' : 'secondary'} + color={errors.metric?.length ? 'danger' : 'success'} /> } isOpen={popoverOpen} diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx index 47ba580c272bd..3dd092fa48b99 100644 --- a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/criterion.tsx @@ -176,7 +176,7 @@ export const Criterion: React.FC<Props> = ({ uppercase={true} value={criterion.field ?? 'a chosen field'} isActive={isFieldPopoverOpen} - color={errors.field.length === 0 ? 'secondary' : 'danger'} + color={errors.field.length === 0 ? 'success' : 'danger'} onClick={(e) => { e.stopPropagation(); setIsFieldPopoverOpen(!isFieldPopoverOpen); @@ -227,7 +227,7 @@ export const Criterion: React.FC<Props> = ({ isActive={isComparatorPopoverOpen} color={ errors.comparator.length === 0 && errors.value.length === 0 - ? 'secondary' + ? 'success' : 'danger' } onClick={(e) => { diff --git a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx index 2664a0d6aa2b0..02b827d5915dd 100644 --- a/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx +++ b/x-pack/plugins/infra/public/alerting/log_threshold/components/expression_editor/editor.tsx @@ -339,7 +339,7 @@ export default ExpressionEditor; // components. export const ExpressionLike = ({ text }: { text: string }) => { return ( - <div className="euiExpression euiExpression-isUppercase euiExpression--secondary"> + <div className="euiExpression euiExpression-isUppercase euiExpression--success"> <span className="euiExpression__description">{text}</span> </div> ); diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_row.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_row.tsx index 4dd191313261b..b4472b90efdb2 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_row.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_row.tsx @@ -276,7 +276,7 @@ export const ExpressionRow: React.FC<ExpressionRowProps> = (props) => { } )} iconSize="s" - color={'subdued'} + color="text" iconType={'crossInACircleFilled'} onClick={toggleWarningThreshold} /> diff --git a/x-pack/plugins/infra/public/components/logging/log_analysis_setup/setup_flyout/module_list_card.tsx b/x-pack/plugins/infra/public/components/logging/log_analysis_setup/setup_flyout/module_list_card.tsx index 5931e1cbe49ee..4424410f552c6 100644 --- a/x-pack/plugins/infra/public/components/logging/log_analysis_setup/setup_flyout/module_list_card.tsx +++ b/x-pack/plugins/infra/public/components/logging/log_analysis_setup/setup_flyout/module_list_card.tsx @@ -65,7 +65,7 @@ export const LogAnalysisModuleListCard: React.FC<{ moduleStatus.type === 'required' ? ( <EuiIcon size="xxl" type="machineLearningApp" /> ) : ( - <EuiIcon color="secondary" size="xxl" type="check" /> + <EuiIcon color="success" size="xxl" type="check" /> ); const moduleSetupButton = diff --git a/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/single_metric_comparison.tsx b/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/single_metric_comparison.tsx index 8eed47c1a833e..fe9297b9409c7 100644 --- a/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/single_metric_comparison.tsx +++ b/x-pack/plugins/infra/public/pages/logs/log_entry_categories/sections/top_categories/single_metric_comparison.tsx @@ -29,14 +29,14 @@ export const SingleMetricComparison: React.FunctionComponent<{ return ( <NoWrapSpan> <EuiIcon type="sortUp" color="success" /> - <EuiTextColor color="secondary">{formatPercentage(changeFactor)}</EuiTextColor> + <EuiTextColor color="success">{formatPercentage(changeFactor)}</EuiTextColor> </NoWrapSpan> ); } else if (changeFactor > 0 && !Number.isFinite(changeFactor)) { return ( <NoWrapSpan> <EuiIcon type="sortUp" color="success" /> - <EuiTextColor color="secondary">{newCategoryTrendLabel}</EuiTextColor> + <EuiTextColor color="success">{newCategoryTrendLabel}</EuiTextColor> </NoWrapSpan> ); } diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/processes_table.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/processes_table.tsx index 427f67ec7a211..8c51fbf9d805b 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/processes_table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/processes_table.tsx @@ -202,7 +202,7 @@ const ProcessesTableBody = ({ items, currentTime }: TableBodyProps) => ( const cells = columns.map((column) => ( <EuiTableRowCell key={`${String(column.field)}-${i}`} - header={column.name} + mobileOptions={{ header: column.name }} align={column.align ?? LEFT_ALIGNMENT} textOnly={column.textOnly ?? true} > diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/state_badge.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/state_badge.tsx index c354ddcd55d71..47049c7d9c893 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/state_badge.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/processes/state_badge.tsx @@ -12,7 +12,7 @@ import { STATE_NAMES } from './states'; export const StateBadge = ({ state }: { state: string }) => { switch (state) { case 'running': - return <EuiBadge color="secondary">{STATE_NAMES.running}</EuiBadge>; + return <EuiBadge color="success">{STATE_NAMES.running}</EuiBadge>; case 'sleeping': return <EuiBadge color="default">{STATE_NAMES.sleeping}</EuiBadge>; case 'dead': diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/properties/table.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/properties/table.tsx index 053e50ff87049..996e90c03f3db 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/properties/table.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/node_details/tabs/properties/table.tsx @@ -65,7 +65,7 @@ export const Table = (props: Props) => { )} > <EuiButtonIcon - color="subdued" + color="text" size="s" iconType="filter" aria-label={i18n.translate( diff --git a/x-pack/plugins/infra/server/lib/domains/log_entries_domain/queries/log_entry_datasets.ts b/x-pack/plugins/infra/server/lib/domains/log_entries_domain/queries/log_entry_datasets.ts index 4386b6ccef9c1..a658c7deb317c 100644 --- a/x-pack/plugins/infra/server/lib/domains/log_entries_domain/queries/log_entry_datasets.ts +++ b/x-pack/plugins/infra/server/lib/domains/log_entries_domain/queries/log_entry_datasets.ts @@ -29,6 +29,7 @@ export const createLogEntryDatasetsQuery = ( [timestampField]: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/host_details/process_list.ts b/x-pack/plugins/infra/server/lib/host_details/process_list.ts index 6e608bfa2ddca..27563e3218aae 100644 --- a/x-pack/plugins/infra/server/lib/host_details/process_list.ts +++ b/x-pack/plugins/infra/server/lib/host_details/process_list.ts @@ -26,6 +26,7 @@ export const getProcessList = async ( [TIMESTAMP_FIELD]: { gte: to - 60 * 1000, // 1 minute lte: to, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/host_details/process_list_chart.ts b/x-pack/plugins/infra/server/lib/host_details/process_list_chart.ts index 7ff66a80e967b..03b7e8f825686 100644 --- a/x-pack/plugins/infra/server/lib/host_details/process_list_chart.ts +++ b/x-pack/plugins/infra/server/lib/host_details/process_list_chart.ts @@ -30,6 +30,7 @@ export const getProcessListChart = async ( [TIMESTAMP_FIELD]: { gte: to - 60 * 1000, // 1 minute lte: to, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/infra_ml/queries/common.ts b/x-pack/plugins/infra/server/lib/infra_ml/queries/common.ts index 594dc3371f3a2..8fbe7bd98ed9c 100644 --- a/x-pack/plugins/infra/server/lib/infra_ml/queries/common.ts +++ b/x-pack/plugins/infra/server/lib/infra_ml/queries/common.ts @@ -44,6 +44,7 @@ export const createTimeRangeFilters = (startTime: number, endTime: number) => [ timestamp: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/log_analysis/queries/common.ts b/x-pack/plugins/infra/server/lib/log_analysis/queries/common.ts index b05e4ce00fe9c..293cd8e6153e7 100644 --- a/x-pack/plugins/infra/server/lib/log_analysis/queries/common.ts +++ b/x-pack/plugins/infra/server/lib/log_analysis/queries/common.ts @@ -36,6 +36,7 @@ export const createTimeRangeFilters = (startTime: number, endTime: number) => [ timestamp: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_category_examples.ts b/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_category_examples.ts index dd68de4e49d34..c79f4ddc2dc56 100644 --- a/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_category_examples.ts +++ b/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_category_examples.ts @@ -30,6 +30,7 @@ export const createLogEntryCategoryExamplesQuery = ( [timestampField]: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_examples.ts b/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_examples.ts index d6099404daa80..a975c6a79f99a 100644 --- a/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_examples.ts +++ b/x-pack/plugins/infra/server/lib/log_analysis/queries/log_entry_examples.ts @@ -32,6 +32,7 @@ export const createLogEntryExamplesQuery = ( [timestampField]: { gte: startTime, lte: endTime, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/infra/server/routes/overview/lib/create_top_nodes_query.ts b/x-pack/plugins/infra/server/routes/overview/lib/create_top_nodes_query.ts index ccead528749cd..a915a7882e231 100644 --- a/x-pack/plugins/infra/server/routes/overview/lib/create_top_nodes_query.ts +++ b/x-pack/plugins/infra/server/routes/overview/lib/create_top_nodes_query.ts @@ -26,6 +26,7 @@ export const createTopNodesQuery = ( [TIMESTAMP_FIELD]: { gte: options.timerange.from, lte: options.timerange.to, + format: 'epoch_millis', }, }, }, diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item/pipeline_processors_editor_item.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item/pipeline_processors_editor_item.tsx index 4d3238bdb7e44..49dc6d3a4e7f7 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item/pipeline_processors_editor_item.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/pipeline_processors_editor_item/pipeline_processors_editor_item.tsx @@ -139,7 +139,7 @@ export const PipelineProcessorsEditorItem: FunctionComponent<Props> = memo( const disabled = isEditorNotInIdleMode && !isMovingThisProcessor; const moveButton = ( <EuiButtonIcon - color={isMovingThisProcessor ? 'primary' : 'subdued'} + color={isMovingThisProcessor ? 'primary' : 'text'} iconType={icon} data-test-subj={dataTestSubj} size="s" diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/test_pipeline/test_pipeline_tabs/tab_documents/add_document_form.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/test_pipeline/test_pipeline_tabs/tab_documents/add_document_form.tsx index b3055bda37814..1b77f02bbfb7e 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/test_pipeline/test_pipeline_tabs/tab_documents/add_document_form.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_editor/components/test_pipeline/test_pipeline_tabs/tab_documents/add_document_form.tsx @@ -194,10 +194,10 @@ export const AddDocumentForm: FunctionComponent<Props> = ({ onAddDocuments }) => <EuiFlexItem> <EuiFlexGroup gutterSize="s" alignItems="center"> <EuiFlexItem grow={false}> - <EuiIcon type="check" color="secondary" /> + <EuiIcon type="check" color="success" /> </EuiFlexItem> <EuiFlexItem grow={false}> - <EuiText color="secondary" data-test-subj="addDocumentSuccess"> + <EuiText color="success" data-test-subj="addDocumentSuccess"> {i18nTexts.addDocumentSuccessMessage} </EuiText> </EuiFlexItem> diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx index 02fd7ec65957d..eeda40c96418c 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/pipeline_form.tsx @@ -138,7 +138,7 @@ export const PipelineForm: React.FunctionComponent<PipelineFormProps> = ({ <EuiFlexItem grow={false}> <EuiButton fill - color="secondary" + color="success" iconType="check" onClick={form.submit} data-test-subj="submitButton" diff --git a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/table.tsx b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/table.tsx index 1001bf96a53d9..a8b434e4fed22 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/table.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/table.tsx @@ -101,7 +101,7 @@ export const PipelineTable: FunctionComponent<Props> = ({ <EuiButton key="reloadButton" iconType="refresh" - color="secondary" + color="success" data-test-subj="reloadButton" onClick={onReloadClick} > diff --git a/x-pack/plugins/ingest_pipelines/server/lib/mapper.test.ts b/x-pack/plugins/ingest_pipelines/server/lib/mapper.test.ts index 0c2f52d3c3bdf..2e02d83b17bfd 100644 --- a/x-pack/plugins/ingest_pipelines/server/lib/mapper.test.ts +++ b/x-pack/plugins/ingest_pipelines/server/lib/mapper.test.ts @@ -31,16 +31,29 @@ describe('mapper', () => { ); }); - it('missing the required headers errors', () => { - const noHeadersCsv = 'srcip,,,,source.address,Copying srcip to source.address'; + describe('missing the required headers errors', () => { + it('single missing headers', () => { + const noHeadersCsv = + 'test_header,copy_action,format_action,timestamp_format,destination_field,Notes\nsrcip,,,,source.address,Copying srcip to source.address'; - expect(() => { - csvToIngestPipeline(noHeadersCsv, FieldCopyAction.Copy); - }).toThrow( - new Error( - 'Missing required headers: Include [source_field, destination_field] header(s) in the CSV file.' - ) - ); + expect(() => { + csvToIngestPipeline(noHeadersCsv, FieldCopyAction.Copy); + }).toThrow( + new Error('Missing required headers: Include source_field header in the CSV file.') + ); + }); + + it('multiple missing headers', () => { + const noHeadersCsv = 'srcip,,,,source.address,Copying srcip to source.address'; + + expect(() => { + csvToIngestPipeline(noHeadersCsv, FieldCopyAction.Copy); + }).toThrow( + new Error( + 'Missing required headers: Include source_field, destination_field headers in the CSV file.' + ) + ); + }); }); it('unacceptable format action errors', () => { diff --git a/x-pack/plugins/ingest_pipelines/server/lib/mapper.ts b/x-pack/plugins/ingest_pipelines/server/lib/mapper.ts index 86a2a886156d8..421ee636856b8 100644 --- a/x-pack/plugins/ingest_pipelines/server/lib/mapper.ts +++ b/x-pack/plugins/ingest_pipelines/server/lib/mapper.ts @@ -79,8 +79,12 @@ function parseAndValidate(file: string) { if (missingHeaders.length > 0) { throw new Error( i18n.translate('xpack.ingestPipelines.mapToIngestPipeline.error.missingHeaders', { - defaultMessage: 'Missing required headers: Include [{missing}] header(s) in the CSV file.', - values: { missing: missingHeaders.join(', ') }, + defaultMessage: + 'Missing required headers: Include {missingHeaders} {missingHeadersCount, plural, one {header} other {headers}} in the CSV file.', + values: { + missingHeaders: missingHeaders.join(', '), + missingHeadersCount: missingHeaders.length, + }, }) ); } diff --git a/x-pack/plugins/lens/common/embeddable_factory/index.ts b/x-pack/plugins/lens/common/embeddable_factory/index.ts index 2ea5c5192a1da..e3ed6dc36da25 100644 --- a/x-pack/plugins/lens/common/embeddable_factory/index.ts +++ b/x-pack/plugins/lens/common/embeddable_factory/index.ts @@ -18,7 +18,20 @@ export const inject: EmbeddableRegistryDefinition['inject'] = (state, references const typedState = state as LensEmbeddablePersistableState; if ('attributes' in typedState && typedState.attributes !== undefined) { - typedState.attributes.references = references as unknown as Serializable[]; + // match references based on name, so only references associated with this lens panel are injected. + const matchedReferences: SavedObjectReference[] = []; + + if (Array.isArray(typedState.attributes.references)) { + typedState.attributes.references.forEach((serializableRef) => { + const internalReference = serializableRef as unknown as SavedObjectReference; + const matchedReference = references.find( + (reference) => reference.name === internalReference.name + ); + if (matchedReference) matchedReferences.push(matchedReference); + }); + } + + typedState.attributes.references = matchedReferences as unknown as Serializable[]; } return typedState; diff --git a/x-pack/plugins/lens/common/expressions/metric_chart/metric_chart.ts b/x-pack/plugins/lens/common/expressions/metric_chart/metric_chart.ts index 6676ead2bca9e..4a79644d7fe54 100644 --- a/x-pack/plugins/lens/common/expressions/metric_chart/metric_chart.ts +++ b/x-pack/plugins/lens/common/expressions/metric_chart/metric_chart.ts @@ -5,6 +5,8 @@ * 2.0. */ +import { i18n } from '@kbn/i18n'; +import { ColorMode } from '../../../../../../src/plugins/charts/common'; import type { ExpressionFunctionDefinition } from '../../../../../../src/plugins/expressions/common'; import type { LensMultiTable } from '../../types'; import type { MetricConfig } from './types'; @@ -32,7 +34,9 @@ export const metricChart: ExpressionFunctionDefinition< args: { title: { types: ['string'], - help: 'The chart title.', + help: i18n.translate('xpack.lens.metric.title.help', { + defaultMessage: 'The chart title.', + }), }, description: { types: ['string'], @@ -40,17 +44,38 @@ export const metricChart: ExpressionFunctionDefinition< }, metricTitle: { types: ['string'], - help: 'The title of the metric shown.', + help: i18n.translate('xpack.lens.metric.metricTitle.help', { + defaultMessage: 'The title of the metric shown.', + }), }, accessor: { types: ['string'], - help: 'The column whose value is being displayed', + help: i18n.translate('xpack.lens.metric.accessor.help', { + defaultMessage: 'The column whose value is being displayed', + }), }, mode: { types: ['string'], options: ['reduced', 'full'], default: 'full', - help: 'The display mode of the chart - reduced will only show the metric itself without min size', + help: i18n.translate('xpack.lens.metric.mode.help', { + defaultMessage: + 'The display mode of the chart - reduced will only show the metric itself without min size', + }), + }, + colorMode: { + types: ['string'], + default: `"${ColorMode.None}"`, + options: [ColorMode.None, ColorMode.Labels, ColorMode.Background], + help: i18n.translate('xpack.lens.metric.colorMode.help', { + defaultMessage: 'Which part of metric to color', + }), + }, + palette: { + types: ['palette'], + help: i18n.translate('xpack.lens.metric.palette.help', { + defaultMessage: 'Provides colors for the values', + }), }, }, inputTypes: ['lens_multitable'], diff --git a/x-pack/plugins/lens/common/expressions/metric_chart/types.ts b/x-pack/plugins/lens/common/expressions/metric_chart/types.ts index 65a72632a5491..8a52506a83ec8 100644 --- a/x-pack/plugins/lens/common/expressions/metric_chart/types.ts +++ b/x-pack/plugins/lens/common/expressions/metric_chart/types.ts @@ -5,17 +5,26 @@ * 2.0. */ -import { LayerType } from '../../types'; +import { + ColorMode, + CustomPaletteState, + PaletteOutput, +} from '../../../../../../src/plugins/charts/common'; +import { CustomPaletteParams, LayerType } from '../../types'; export interface MetricState { layerId: string; accessor?: string; layerType: LayerType; + colorMode?: ColorMode; + palette?: PaletteOutput<CustomPaletteParams>; } -export interface MetricConfig extends MetricState { +export interface MetricConfig extends Omit<MetricState, 'palette' | 'colorMode'> { title: string; description: string; metricTitle: string; mode: 'reduced' | 'full'; + colorMode: ColorMode; + palette: PaletteOutput<CustomPaletteState>; } diff --git a/x-pack/plugins/lens/common/expressions/pie_chart/pie_chart.ts b/x-pack/plugins/lens/common/expressions/pie_chart/pie_chart.ts index ed0391a16af25..053b46e480c7b 100644 --- a/x-pack/plugins/lens/common/expressions/pie_chart/pie_chart.ts +++ b/x-pack/plugins/lens/common/expressions/pie_chart/pie_chart.ts @@ -49,7 +49,7 @@ export const pie: ExpressionFunctionDefinition< }, shape: { types: ['string'], - options: ['pie', 'donut', 'treemap'], + options: ['pie', 'donut', 'treemap', 'mosaic'], help: '', }, hideLabels: { diff --git a/x-pack/plugins/lens/common/expressions/pie_chart/types.ts b/x-pack/plugins/lens/common/expressions/pie_chart/types.ts index 8712675740f1c..00fc7abaa043b 100644 --- a/x-pack/plugins/lens/common/expressions/pie_chart/types.ts +++ b/x-pack/plugins/lens/common/expressions/pie_chart/types.ts @@ -8,6 +8,8 @@ import type { PaletteOutput } from '../../../../../../src/plugins/charts/common'; import type { LensMultiTable, LayerType } from '../../types'; +export type PieChartTypes = 'donut' | 'pie' | 'treemap' | 'mosaic'; + export interface SharedPieLayerState { groups: string[]; metric?: string; @@ -27,7 +29,7 @@ export type PieLayerState = SharedPieLayerState & { }; export interface PieVisualizationState { - shape: 'donut' | 'pie' | 'treemap'; + shape: PieChartTypes; layers: PieLayerState[]; palette?: PaletteOutput; } @@ -35,7 +37,7 @@ export interface PieVisualizationState { export type PieExpressionArgs = SharedPieLayerState & { title?: string; description?: string; - shape: 'pie' | 'donut' | 'treemap'; + shape: PieChartTypes; hideLabels: boolean; palette: PaletteOutput; }; diff --git a/x-pack/plugins/lens/common/types.ts b/x-pack/plugins/lens/common/types.ts index 307ed856c7c66..152eef4ebd3fe 100644 --- a/x-pack/plugins/lens/common/types.ts +++ b/x-pack/plugins/lens/common/types.ts @@ -58,8 +58,13 @@ export interface CustomPaletteParams { colorStops?: ColorStop[]; steps?: number; } +export type CustomPaletteParamsConfig = CustomPaletteParams & { + maxSteps?: number; +}; -export type RequiredPaletteParamTypes = Required<CustomPaletteParams>; +export type RequiredPaletteParamTypes = Required<CustomPaletteParams> & { + maxSteps?: number; +}; export type LayerType = 'data' | 'referenceLine'; diff --git a/x-pack/plugins/lens/kibana.json b/x-pack/plugins/lens/kibana.json index f82f3366448da..2df7c5b5eddd3 100644 --- a/x-pack/plugins/lens/kibana.json +++ b/x-pack/plugins/lens/kibana.json @@ -18,7 +18,7 @@ "embeddable", "share", "presentationUtil", - "indexPatternFieldEditor" + "dataViewFieldEditor" ], "optionalPlugins": [ "usageCollection", diff --git a/x-pack/plugins/lens/public/assets/chart_mosaic.tsx b/x-pack/plugins/lens/public/assets/chart_mosaic.tsx new file mode 100644 index 0000000000000..c385f0df1a008 --- /dev/null +++ b/x-pack/plugins/lens/public/assets/chart_mosaic.tsx @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import type { EuiIconProps } from '@elastic/eui'; + +export const LensIconChartMosaic = ({ title, titleId, ...props }: Omit<EuiIconProps, 'type'>) => ( + <svg + viewBox="0 0 30 22" + width={30} + height={22} + fill="none" + xmlns="http://www.w3.org/2000/svg" + aria-labelledby={titleId} + {...props} + > + {title ? <title id={titleId} /> : null} + <path + className="lensChartIcon__subdued" + d="M2 0a1 1 0 00-1 1v2a1 1 0 001 1h6a1 1 0 001-1V1a1 1 0 00-1-1H2zM2 14a1 1 0 00-1 1v6a1 1 0 001 1h6a1 1 0 001-1v-6a1 1 0 00-1-1H2zM11 13a1 1 0 011-1h6a1 1 0 011 1v8a1 1 0 01-1 1h-6a1 1 0 01-1-1v-8zM12 0a1 1 0 100 2h6a1 1 0 100-2h-6zM21 15a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1h-6a1 1 0 01-1-1v-6zM22 0a1 1 0 00-1 1v4a1 1 0 001 1h6a1 1 0 001-1V1a1 1 0 00-1-1h-6z" + /> + <path + className="lensChartIcon__accent" + d="M11 5a1 1 0 011-1h6a1 1 0 011 1v4a1 1 0 01-1 1h-6a1 1 0 01-1-1V5zM1 7a1 1 0 011-1h6a1 1 0 011 1v4a1 1 0 01-1 1H2a1 1 0 01-1-1V7zM22 8a1 1 0 00-1 1v2a1 1 0 001 1h6a1 1 0 001-1V9a1 1 0 00-1-1h-6z" + /> + </svg> +); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.test.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.test.tsx index 92633d5e7305b..a6be4acfbbcf1 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.test.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.test.tsx @@ -225,7 +225,39 @@ describe('LayerPanel', () => { const group = instance .find(EuiFormRow) - .findWhere((e) => e.prop('error') === 'Required dimension'); + .findWhere((e) => e.prop('error') === 'Requires field'); + + expect(group).toHaveLength(1); + }); + + it('should render the required warning when only one group is configured (with requiredMinDimensionCount)', async () => { + mockVisualization.getConfiguration.mockReturnValue({ + groups: [ + { + groupLabel: 'A', + groupId: 'a', + accessors: [{ columnId: 'x' }], + filterOperations: () => true, + supportsMoreColumns: false, + dataTestSubj: 'lnsGroup', + }, + { + groupLabel: 'B', + groupId: 'b', + accessors: [{ columnId: 'y' }], + filterOperations: () => true, + supportsMoreColumns: true, + dataTestSubj: 'lnsGroup', + requiredMinDimensionCount: 2, + }, + ], + }); + + const { instance } = await mountWithProvider(<LayerPanel {...getDefaultProps()} />); + + const group = instance + .find(EuiFormRow) + .findWhere((e) => e.prop('error') === 'Requires 2 fields'); expect(group).toHaveLength(1); }); diff --git a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx index 6af3d88b17d41..84c7722ca1b88 100644 --- a/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx +++ b/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_panel.tsx @@ -385,7 +385,27 @@ export function LayerPanel( </header> {groups.map((group, groupIndex) => { - const isMissing = !isEmptyLayer && group.required && group.accessors.length === 0; + let isMissing = false; + + if (!isEmptyLayer) { + if (group.requiredMinDimensionCount) { + isMissing = group.accessors.length < group.requiredMinDimensionCount; + } else if (group.required) { + isMissing = group.accessors.length === 0; + } + } + + const isMissingError = group.requiredMinDimensionCount + ? i18n.translate('xpack.lens.editorFrame.requiresTwoOrMoreFieldsWarningLabel', { + defaultMessage: 'Requires {requiredMinDimensionCount} fields', + values: { + requiredMinDimensionCount: group.requiredMinDimensionCount, + }, + }) + : i18n.translate('xpack.lens.editorFrame.requiresFieldWarningLabel', { + defaultMessage: 'Requires field', + }); + const isOptional = !group.required; return ( <EuiFormRow @@ -423,13 +443,7 @@ export function LayerPanel( labelType="legend" key={group.groupId} isInvalid={isMissing} - error={ - isMissing - ? i18n.translate('xpack.lens.editorFrame.requiredDimensionWarningLabel', { - defaultMessage: 'Required dimension', - }) - : [] - } + error={isMissing ? isMissingError : []} > <> {group.accessors.length ? ( diff --git a/x-pack/plugins/lens/public/index.ts b/x-pack/plugins/lens/public/index.ts index fb7cefb22d175..29dce6f0d1090 100644 --- a/x-pack/plugins/lens/public/index.ts +++ b/x-pack/plugins/lens/public/index.ts @@ -31,10 +31,10 @@ export type { DatatableVisualizationState } from './datatable_visualization/visu export type { IndexPatternPersistedState, PersistedIndexPatternLayer, - IndexPatternColumn, - FieldBasedIndexPatternColumn, OperationType, IncompleteColumn, + GenericIndexPatternColumn, + FieldBasedIndexPatternColumn, FiltersIndexPatternColumn, RangeIndexPatternColumn, TermsIndexPatternColumn, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx index a6a3cda0ca033..27d03a1e3edc8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.test.tsx @@ -23,9 +23,10 @@ import { EuiProgress, EuiLoadingSpinner } from '@elastic/eui'; import { documentField } from './document_field'; import { chartPluginMock } from '../../../../../src/plugins/charts/public/mocks'; import { fieldFormatsServiceMock } from '../../../../../src/plugins/field_formats/public/mocks'; -import { indexPatternFieldEditorPluginMock } from '../../../../../src/plugins/index_pattern_field_editor/public/mocks'; +import { indexPatternFieldEditorPluginMock } from '../../../../../src/plugins/data_view_field_editor/public/mocks'; import { getFieldByNameFactory } from './pure_helpers'; import { uiActionsPluginMock } from '../../../../../src/plugins/ui_actions/public/mocks'; +import { TermsIndexPatternColumn } from './operations'; const fieldsOne = [ { @@ -173,7 +174,7 @@ const initialState: IndexPatternPrivateState = { type: 'alphabetical', }, }, - }, + } as TermsIndexPatternColumn, col2: { label: 'My Op', dataType: 'number', @@ -200,7 +201,7 @@ const initialState: IndexPatternPrivateState = { type: 'alphabetical', }, }, - }, + } as TermsIndexPatternColumn, col2: { label: 'My Op', dataType: 'number', @@ -875,7 +876,7 @@ describe('IndexPattern Data Panel', () => { expect(props.indexPatternFieldEditor.openEditor).toHaveBeenCalledWith( expect.objectContaining({ ctx: expect.objectContaining({ - indexPattern: mockIndexPattern, + dataView: mockIndexPattern, }), }) ); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx index f48e704846133..1b2e9df82b6df 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/datapanel.tsx @@ -42,7 +42,7 @@ import { loadIndexPatterns, syncExistingFields } from './loader'; import { fieldExists } from './pure_helpers'; import { Loader } from '../loader'; import { esQuery } from '../../../../../src/plugins/data/public'; -import { IndexPatternFieldEditorStart } from '../../../../../src/plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../../../src/plugins/data_view_field_editor/public'; import { VISUALIZE_GEO_FIELD_TRIGGER } from '../../../../../src/plugins/ui_actions/public'; export type Props = Omit<DatasourceDataPanelProps<IndexPatternPrivateState>, 'core'> & { @@ -522,7 +522,7 @@ export const InnerIndexPatternDataPanel = function InnerIndexPatternDataPanel({ const indexPatternInstance = await data.indexPatterns.get(currentIndexPattern.id); closeFieldEditor.current = indexPatternFieldEditor.openEditor({ ctx: { - indexPattern: indexPatternInstance, + dataView: indexPatternInstance, }, fieldName, onSave: async () => { @@ -543,7 +543,7 @@ export const InnerIndexPatternDataPanel = function InnerIndexPatternDataPanel({ const indexPatternInstance = await data.indexPatterns.get(currentIndexPattern.id); closeFieldEditor.current = indexPatternFieldEditor.openDeleteModal({ ctx: { - indexPattern: indexPatternInstance, + dataView: indexPatternInstance, }, fieldName, onDelete: async () => { diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.test.tsx index b48d13d6d3499..fbecfeed0f321 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.test.tsx @@ -8,7 +8,7 @@ import { mount } from 'enzyme'; import React from 'react'; import { BucketNestingEditor } from './bucket_nesting_editor'; -import { IndexPatternColumn } from '../indexpattern'; +import { GenericIndexPatternColumn } from '../indexpattern'; import { IndexPatternField } from '../types'; const fieldMap: Record<string, IndexPatternField> = { @@ -20,7 +20,7 @@ const fieldMap: Record<string, IndexPatternField> = { const getFieldByName = (name: string): IndexPatternField | undefined => fieldMap[name]; describe('BucketNestingEditor', () => { - function mockCol(col: Partial<IndexPatternColumn> = {}): IndexPatternColumn { + function mockCol(col: Partial<GenericIndexPatternColumn> = {}): GenericIndexPatternColumn { const result = { dataType: 'string', isBucketed: true, @@ -35,7 +35,7 @@ describe('BucketNestingEditor', () => { ...col, }; - return result as IndexPatternColumn; + return result as GenericIndexPatternColumn; } it('should display the top level grouping when at the root', () => { diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx index 8456552be8ec6..3979bfb8c9ac4 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/bucket_nesting_editor.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { EuiFormRow, EuiSwitch, EuiSelect } from '@elastic/eui'; import { IndexPatternLayer, IndexPatternField } from '../types'; import { hasField } from '../utils'; -import { IndexPatternColumn } from '../operations'; +import { GenericIndexPatternColumn } from '../operations'; function nestColumn(columnOrder: string[], outer: string, inner: string) { const result = columnOrder.filter((c) => c !== inner); @@ -22,7 +22,7 @@ function nestColumn(columnOrder: string[], outer: string, inner: string) { } function getFieldName( - column: IndexPatternColumn, + column: GenericIndexPatternColumn, getFieldByName: (name: string) => IndexPatternField | undefined ) { return hasField(column) diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx index d34430e717e66..c8452340e993a 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_editor.tsx @@ -19,7 +19,7 @@ import { } from '@elastic/eui'; import { IndexPatternDimensionEditorProps } from './dimension_panel'; import { OperationSupportMatrix } from './operation_support'; -import { IndexPatternColumn } from '../indexpattern'; +import { GenericIndexPatternColumn } from '../indexpattern'; import { operationDefinitionMap, getOperationDisplay, @@ -62,7 +62,7 @@ import type { TemporaryState } from './dimensions_editor_helpers'; const operationPanels = getOperationDisplay(); export interface DimensionEditorProps extends IndexPatternDimensionEditorProps { - selectedColumn?: IndexPatternColumn; + selectedColumn?: GenericIndexPatternColumn; layerType: LayerType; operationSupportMatrix: OperationSupportMatrix; currentIndexPattern: IndexPattern; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx index 6d9e1ae3fe81b..06c1bb931f730 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.test.tsx @@ -27,7 +27,12 @@ import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup, CoreSetup } f import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { generateId } from '../../id_generator'; import { IndexPatternPrivateState } from '../types'; -import { IndexPatternColumn, replaceColumn } from '../operations'; +import { + FiltersIndexPatternColumn, + GenericIndexPatternColumn, + replaceColumn, + TermsIndexPatternColumn, +} from '../operations'; import { documentField } from '../document_field'; import { OperationMetadata } from '../../types'; import { DateHistogramIndexPatternColumn } from '../operations/definitions/date_histogram'; @@ -108,7 +113,7 @@ const expectedIndexPatterns = { }, }; -const bytesColumn: IndexPatternColumn = { +const bytesColumn: GenericIndexPatternColumn = { label: 'Max of bytes', dataType: 'number', isBucketed: false, @@ -133,7 +138,7 @@ describe('IndexPatternDimensionEditorPanel', () => { let setState: jest.Mock; let defaultProps: IndexPatternDimensionEditorProps; - function getStateWithColumns(columns: Record<string, IndexPatternColumn>) { + function getStateWithColumns(columns: Record<string, GenericIndexPatternColumn>) { return { ...state, layers: { first: { ...state.layers.first, columns, columnOrder: Object.keys(columns) } }, @@ -171,7 +176,7 @@ describe('IndexPatternDimensionEditorPanel', () => { interval: '1d', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, incompleteColumns: {}, }, @@ -264,7 +269,7 @@ describe('IndexPatternDimensionEditorPanel', () => { // Private operationType: 'filters', params: { filters: [] }, - }, + } as FiltersIndexPatternColumn, })} /> ); @@ -427,7 +432,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'date_histogram', sourceField: '@timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, col1: { label: 'Counter rate', dataType: 'number', @@ -464,7 +469,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'date_histogram', sourceField: '@timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, col1: { label: 'Cumulative sum', dataType: 'number', @@ -839,7 +844,7 @@ describe('IndexPatternDimensionEditorPanel', () => { // Private operationType: 'filters', params: { filters: [] }, - }, + } as FiltersIndexPatternColumn, })} /> ); @@ -1066,7 +1071,7 @@ describe('IndexPatternDimensionEditorPanel', () => { }); describe('time scaling', () => { - function getProps(colOverrides: Partial<IndexPatternColumn>) { + function getProps(colOverrides: Partial<GenericIndexPatternColumn>) { return { ...defaultProps, state: getStateWithColumns({ @@ -1080,7 +1085,7 @@ describe('IndexPatternDimensionEditorPanel', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -1088,7 +1093,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'count', sourceField: 'Records', ...colOverrides, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }), columnId: 'col2', }; @@ -1296,7 +1301,7 @@ describe('IndexPatternDimensionEditorPanel', () => { }); describe('time shift', () => { - function getProps(colOverrides: Partial<IndexPatternColumn>) { + function getProps(colOverrides: Partial<GenericIndexPatternColumn>) { return { ...defaultProps, state: getStateWithColumns({ @@ -1310,7 +1315,7 @@ describe('IndexPatternDimensionEditorPanel', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -1318,7 +1323,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'count', sourceField: 'Records', ...colOverrides, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }), columnId: 'col2', }; @@ -1334,7 +1339,7 @@ describe('IndexPatternDimensionEditorPanel', () => { label: 'Count of records', operationType: 'count', sourceField: 'Records', - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }), columnId: 'col2', }; @@ -1483,7 +1488,7 @@ describe('IndexPatternDimensionEditorPanel', () => { }); describe('filtering', () => { - function getProps(colOverrides: Partial<IndexPatternColumn>) { + function getProps(colOverrides: Partial<GenericIndexPatternColumn>) { return { ...defaultProps, state: getStateWithColumns({ @@ -1497,7 +1502,7 @@ describe('IndexPatternDimensionEditorPanel', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -1505,7 +1510,7 @@ describe('IndexPatternDimensionEditorPanel', () => { operationType: 'count', sourceField: 'Records', ...colOverrides, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }), columnId: 'col2', }; @@ -1522,7 +1527,7 @@ describe('IndexPatternDimensionEditorPanel', () => { orderBy: { type: 'alphabetical' }, size: 5, }, - })} + } as TermsIndexPatternColumn)} /> ); expect( diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx index f27b2c8938b2c..6479fb5b8af4f 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimension_panel.tsx @@ -12,7 +12,7 @@ import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup } from 'kibana import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { DatasourceDimensionTriggerProps, DatasourceDimensionEditorProps } from '../../types'; import { DataPublicPluginStart } from '../../../../../../src/plugins/data/public'; -import { IndexPatternColumn } from '../indexpattern'; +import { GenericIndexPatternColumn } from '../indexpattern'; import { isColumnInvalid } from '../utils'; import { IndexPatternPrivateState } from '../types'; import { DimensionEditor } from './dimension_editor'; @@ -56,7 +56,7 @@ export const IndexPatternDimensionTriggerComponent = function IndexPatternDimens [layer, columnId, currentIndexPattern, invalid] ); - const selectedColumn: IndexPatternColumn | null = layer.columns[props.columnId] ?? null; + const selectedColumn: GenericIndexPatternColumn | null = layer.columns[props.columnId] ?? null; if (!selectedColumn) { return null; @@ -126,7 +126,7 @@ export const IndexPatternDimensionEditorComponent = function IndexPatternDimensi } const operationSupportMatrix = getOperationSupportMatrix(props); - const selectedColumn: IndexPatternColumn | null = + const selectedColumn: GenericIndexPatternColumn | null = props.state.layers[layerId].columns[props.columnId] || null; return ( <DimensionEditor diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimensions_editor_helpers.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimensions_editor_helpers.tsx index ce8c7d61bfc16..bcfa0d797b51c 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimensions_editor_helpers.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/dimensions_editor_helpers.tsx @@ -16,7 +16,7 @@ import './dimension_editor.scss'; import React from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFormRow, EuiFieldText, EuiTabs, EuiTab, EuiCallOut } from '@elastic/eui'; -import { IndexPatternColumn, operationDefinitionMap } from '../operations'; +import { GenericIndexPatternColumn, operationDefinitionMap } from '../operations'; import { useDebouncedValue } from '../../shared_components'; export const formulaOperationName = 'formula'; @@ -176,7 +176,7 @@ export const DimensionEditorTabs = ({ tabs }: { tabs: DimensionEditorTab[] }) => }; export function getErrorMessage( - selectedColumn: IndexPatternColumn | undefined, + selectedColumn: GenericIndexPatternColumn | undefined, incompleteOperation: boolean, input: 'none' | 'field' | 'fullReference' | 'managedReference' | undefined, fieldInvalid: boolean diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts index 85807721f80f6..fa200e8b55626 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/droppable.test.ts @@ -14,7 +14,12 @@ import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import { IndexPatternLayer, IndexPatternPrivateState } from '../../types'; import { documentField } from '../../document_field'; import { OperationMetadata, DropType } from '../../../types'; -import { IndexPatternColumn, MedianIndexPatternColumn } from '../../operations'; +import { + DateHistogramIndexPatternColumn, + GenericIndexPatternColumn, + MedianIndexPatternColumn, + TermsIndexPatternColumn, +} from '../../operations'; import { getFieldByNameFactory } from '../../pure_helpers'; import { generateId } from '../../../id_generator'; import { layerTypes } from '../../../../common'; @@ -128,7 +133,7 @@ const oneColumnLayer: IndexPatternLayer = { interval: '1d', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, incompleteColumns: {}, }; @@ -150,7 +155,7 @@ const multipleColumnsLayer: IndexPatternLayer = { size: 10, }, sourceField: 'src', - }, + } as TermsIndexPatternColumn, col3: { label: 'Top values of dest', dataType: 'string', @@ -164,7 +169,7 @@ const multipleColumnsLayer: IndexPatternLayer = { size: 10, }, sourceField: 'dest', - }, + } as TermsIndexPatternColumn, col4: { label: 'Median of bytes', dataType: 'number', @@ -416,7 +421,7 @@ describe('IndexPatternDimensionEditorPanel', () => { interval: '1d', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; @@ -771,7 +776,7 @@ describe('IndexPatternDimensionEditorPanel', () => { interval: '1d', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { label: 'Top values of bar', dataType: 'number', @@ -783,7 +788,7 @@ describe('IndexPatternDimensionEditorPanel', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, col3: { operationType: 'average', sourceField: 'memory', @@ -1158,17 +1163,17 @@ describe('IndexPatternDimensionEditorPanel', () => { label: 'Date histogram of timestamp', dataType: 'date', isBucketed: true, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, col2: { label: 'Top values of bar', dataType: 'number', isBucketed: true, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, col3: { label: 'Top values of memory', dataType: 'number', isBucketed: true, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }, }, }, @@ -1293,7 +1298,7 @@ describe('IndexPatternDimensionEditorPanel', () => { size: 10, }, sourceField: 'src', - }, + } as TermsIndexPatternColumn, col3: { label: 'Count', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts index 0e87cc680c2f6..08361490cdc2c 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/droppable/get_drop_props.ts @@ -16,7 +16,7 @@ import { hasField, isDraggedField } from '../../utils'; import { DragContextState } from '../../../drag_drop/providers'; import { OperationMetadata } from '../../../types'; import { getOperationTypesForField } from '../../operations'; -import { IndexPatternColumn } from '../../indexpattern'; +import { GenericIndexPatternColumn } from '../../indexpattern'; import { IndexPatternPrivateState, IndexPattern, @@ -36,7 +36,7 @@ const operationLabels = getOperationDisplay(); export function getNewOperation( field: IndexPatternField | undefined | false, filterOperations: (meta: OperationMetadata) => boolean, - targetColumn: IndexPatternColumn + targetColumn: GenericIndexPatternColumn ) { if (!field) { return; @@ -50,7 +50,10 @@ export function getNewOperation( return shouldOperationPersist ? targetColumn.operationType : newOperations[0]; } -export function getField(column: IndexPatternColumn | undefined, indexPattern: IndexPattern) { +export function getField( + column: GenericIndexPatternColumn | undefined, + indexPattern: IndexPattern +) { if (!column) { return; } @@ -89,7 +92,10 @@ export function getDropProps(props: GetDropProps) { } } -function hasTheSameField(sourceColumn: IndexPatternColumn, targetColumn?: IndexPatternColumn) { +function hasTheSameField( + sourceColumn: GenericIndexPatternColumn, + targetColumn?: GenericIndexPatternColumn +) { return ( targetColumn && hasField(targetColumn) && @@ -127,11 +133,11 @@ function getDropPropsForField({ return; } -function getDropPropsForSameGroup(targetColumn?: IndexPatternColumn): DropProps { +function getDropPropsForSameGroup(targetColumn?: GenericIndexPatternColumn): DropProps { return targetColumn ? { dropTypes: ['reorder'] } : { dropTypes: ['duplicate_compatible'] }; } -function getDropPropsForCompatibleGroup(targetColumn?: IndexPatternColumn): DropProps { +function getDropPropsForCompatibleGroup(targetColumn?: GenericIndexPatternColumn): DropProps { return { dropTypes: targetColumn ? ['replace_compatible', 'replace_duplicate_compatible', 'swap_compatible'] diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/filtering.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/filtering.tsx index ddd9718839649..d88edff3f0cc3 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/filtering.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/filtering.tsx @@ -18,7 +18,7 @@ import { EuiPopoverProps, } from '@elastic/eui'; import type { Query } from 'src/plugins/data/public'; -import { IndexPatternColumn, operationDefinitionMap } from '../operations'; +import { GenericIndexPatternColumn, operationDefinitionMap } from '../operations'; import { validateQuery } from '../operations/definitions/filters'; import { QueryInput } from '../query_input'; import type { IndexPattern, IndexPatternLayer } from '../types'; @@ -54,7 +54,7 @@ export function Filtering({ indexPattern, isInitiallyOpen, }: { - selectedColumn: IndexPatternColumn; + selectedColumn: GenericIndexPatternColumn; indexPattern: IndexPattern; columnId: string; layer: IndexPatternLayer; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/format_selector.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/format_selector.tsx index ff10810208e70..7ee25a790db62 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/format_selector.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/format_selector.tsx @@ -8,7 +8,7 @@ import React, { useCallback, useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFormRow, EuiComboBox, EuiSpacer, EuiRange } from '@elastic/eui'; -import { IndexPatternColumn } from '../indexpattern'; +import { GenericIndexPatternColumn } from '../indexpattern'; const supportedFormats: Record<string, { title: string }> = { number: { @@ -36,7 +36,7 @@ const defaultOption = { }; interface FormatSelectorProps { - selectedColumn: IndexPatternColumn; + selectedColumn: GenericIndexPatternColumn; onChange: (newFormat?: { id: string; params?: Record<string, unknown> }) => void; } @@ -136,7 +136,7 @@ export function FormatSelector(props: FormatSelectorProps) { onChange={(e) => { setState({ decimalPlaces: Number(e.currentTarget.value) }); onChange({ - id: (selectedColumn.params as { format: { id: string } }).format.id, + id: currentFormat.id, params: { decimals: Number(e.currentTarget.value), }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/reference_editor.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/reference_editor.test.tsx index 21251b59d4533..16251654a6355 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/reference_editor.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/reference_editor.test.tsx @@ -17,7 +17,11 @@ import type { DataPublicPluginStart } from 'src/plugins/data/public'; import { OperationMetadata } from '../../types'; import { createMockedIndexPattern, createMockedIndexPatternWithoutType } from '../mocks'; import { ReferenceEditor, ReferenceEditorProps } from './reference_editor'; -import { insertOrReplaceColumn } from '../operations'; +import { + insertOrReplaceColumn, + LastValueIndexPatternColumn, + TermsIndexPatternColumn, +} from '../operations'; import { FieldSelect } from './field_select'; jest.mock('../operations'); @@ -123,7 +127,7 @@ describe('reference editor', () => { operationType: 'terms', sourceField: 'dest', params: { size: 5, orderBy: { type: 'alphabetical' }, orderDirection: 'desc' }, - }, + } as TermsIndexPatternColumn, }, }} validation={{ @@ -490,7 +494,7 @@ describe('reference editor', () => { params: { sortField: 'timestamp', }, - }, + } as LastValueIndexPatternColumn, }, }} validation={{ @@ -522,7 +526,7 @@ describe('reference editor', () => { params: { sortField: 'timestamp', }, - }, + } as LastValueIndexPatternColumn, }, incompleteColumns: { ref: { operationType: 'max' }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_scaling.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_scaling.tsx index 8a670e7562573..6e3a43cbb1a03 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_scaling.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_scaling.tsx @@ -19,7 +19,7 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; import { adjustTimeScaleLabelSuffix, - IndexPatternColumn, + GenericIndexPatternColumn, operationDefinitionMap, } from '../operations'; import type { TimeScaleUnit } from '../../../common/expressions'; @@ -60,7 +60,7 @@ export function TimeScaling({ layer, updateLayer, }: { - selectedColumn: IndexPatternColumn; + selectedColumn: GenericIndexPatternColumn; columnId: string; layer: IndexPatternLayer; updateLayer: (newLayer: IndexPatternLayer) => void; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_shift.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_shift.tsx index c2415c9c9a75a..36cc4a3c22e44 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_shift.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/dimension_panel/time_shift.tsx @@ -14,7 +14,7 @@ import { Query } from 'src/plugins/data/public'; import { parseTimeShift } from '../../../../../../src/plugins/data/common'; import { adjustTimeScaleLabelSuffix, - IndexPatternColumn, + GenericIndexPatternColumn, operationDefinitionMap, } from '../operations'; import { IndexPattern, IndexPatternLayer } from '../types'; @@ -70,7 +70,7 @@ export function TimeShift({ activeData, layerId, }: { - selectedColumn: IndexPatternColumn; + selectedColumn: GenericIndexPatternColumn; indexPattern: IndexPattern; columnId: string; layer: IndexPatternLayer; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/index.ts b/x-pack/plugins/lens/public/indexpattern_datasource/index.ts index 5ec90d84f6c4d..386cd7a58ae01 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/index.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/index.ts @@ -9,7 +9,7 @@ import type { CoreSetup } from 'kibana/public'; import { createStartServicesGetter, Storage } from '../../../../../src/plugins/kibana_utils/public'; import type { ExpressionsSetup } from '../../../../../src/plugins/expressions/public'; import type { ChartsPluginSetup } from '../../../../../src/plugins/charts/public'; -import type { IndexPatternFieldEditorStart } from '../../../../../src/plugins/index_pattern_field_editor/public'; +import type { IndexPatternFieldEditorStart } from '../../../../../src/plugins/data_view_field_editor/public'; import type { DataPublicPluginSetup, DataPublicPluginStart, @@ -32,7 +32,7 @@ export interface IndexPatternDatasourceSetupPlugins { export interface IndexPatternDatasourceStartPlugins { data: DataPublicPluginStart; fieldFormats: FieldFormatsStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; uiActions: UiActionsStart; } @@ -60,7 +60,7 @@ export class IndexPatternDatasource { fieldFormatsSetup.register([suffixFormatter]); } - const [coreStart, { indexPatternFieldEditor, uiActions, data, fieldFormats }] = + const [coreStart, { dataViewFieldEditor, uiActions, data, fieldFormats }] = await core.getStartServices(); return getIndexPatternDatasource({ @@ -69,7 +69,7 @@ export class IndexPatternDatasource { storage: new Storage(localStorage), data, charts, - indexPatternFieldEditor, + dataViewFieldEditor, uiActions, }); }); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts index 8f180d4a021e0..da5e39c907d07 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.test.ts @@ -8,7 +8,7 @@ import React from 'react'; import 'jest-canvas-mock'; import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; -import { getIndexPatternDatasource, IndexPatternColumn } from './indexpattern'; +import { getIndexPatternDatasource, GenericIndexPatternColumn } from './indexpattern'; import { DatasourcePublicAPI, Operation, Datasource, FramePublicAPI } from '../types'; import { coreMock } from 'src/core/public/mocks'; import { IndexPatternPersistedState, IndexPatternPrivateState } from './types'; @@ -16,11 +16,20 @@ import { dataPluginMock } from '../../../../../src/plugins/data/public/mocks'; import { Ast } from '@kbn/interpreter/common'; import { chartPluginMock } from '../../../../../src/plugins/charts/public/mocks'; import { getFieldByNameFactory } from './pure_helpers'; -import { operationDefinitionMap, getErrorMessages } from './operations'; +import { + operationDefinitionMap, + getErrorMessages, + TermsIndexPatternColumn, + DateHistogramIndexPatternColumn, + MovingAverageIndexPatternColumn, + MathIndexPatternColumn, + FormulaIndexPatternColumn, +} from './operations'; import { createMockedFullReference } from './operations/mocks'; -import { indexPatternFieldEditorPluginMock } from 'src/plugins/index_pattern_field_editor/public/mocks'; +import { indexPatternFieldEditorPluginMock } from 'src/plugins/data_view_field_editor/public/mocks'; import { uiActionsPluginMock } from '../../../../../src/plugins/ui_actions/public/mocks'; import { fieldFormatsServiceMock } from '../../../../../src/plugins/field_formats/public/mocks'; +import { TinymathAST } from 'packages/kbn-tinymath'; jest.mock('./loader'); jest.mock('../id_generator'); @@ -176,7 +185,7 @@ describe('IndexPattern Data Source', () => { data: dataPluginMock.createStartContract(), fieldFormats: fieldFormatsServiceMock.createStartContract(), charts: chartPluginMock.createSetupContract(), - indexPatternFieldEditor: indexPatternFieldEditorPluginMock.createStartContract(), + dataViewFieldEditor: indexPatternFieldEditorPluginMock.createStartContract(), uiActions: uiActionsPluginMock.createStartContract(), }); @@ -200,7 +209,7 @@ describe('IndexPattern Data Source', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -209,7 +218,7 @@ describe('IndexPattern Data Source', () => { describe('uniqueLabels', () => { it('appends a suffix to duplicates', () => { - const col: IndexPatternColumn = { + const col: GenericIndexPatternColumn = { dataType: 'number', isBucketed: false, label: 'Foo', @@ -355,7 +364,7 @@ describe('IndexPattern Data Source', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -505,7 +514,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, col3: { label: 'Date 2', dataType: 'date', @@ -515,7 +524,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -552,7 +561,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -601,7 +610,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -727,7 +736,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -794,7 +803,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, metric: { label: 'Count of records', dataType: 'number', @@ -812,7 +821,7 @@ describe('IndexPattern Data Source', () => { params: { window: 5, }, - }, + } as MovingAverageIndexPatternColumn, }, }, }, @@ -850,7 +859,7 @@ describe('IndexPattern Data Source', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, bucket2: { label: 'Terms', dataType: 'string', @@ -862,7 +871,7 @@ describe('IndexPattern Data Source', () => { orderDirection: 'asc', size: 10, }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -902,7 +911,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, }, }, }, @@ -947,7 +956,6 @@ describe('IndexPattern Data Source', () => { label: 'Reference', dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -983,7 +991,6 @@ describe('IndexPattern Data Source', () => { label: 'Reference', dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -1030,7 +1037,7 @@ describe('IndexPattern Data Source', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, formula: { label: 'Formula', dataType: 'number', @@ -1042,7 +1049,7 @@ describe('IndexPattern Data Source', () => { isFormulaBroken: false, }, references: ['math'], - }, + } as FormulaIndexPatternColumn, countX0: { label: 'countX0', dataType: 'number', @@ -1062,8 +1069,7 @@ describe('IndexPattern Data Source', () => { tinymathAst: { type: 'function', name: 'add', - // @ts-expect-error String args are not valid tinymath, but signals something unique to Lens - args: ['countX0', 'count'], + args: ['countX0', 'count'] as unknown as TinymathAST[], location: { min: 0, max: 17, @@ -1073,7 +1079,7 @@ describe('IndexPattern Data Source', () => { }, references: ['countX0', 'count'], customLabel: true, - }, + } as MathIndexPatternColumn, }, }, }, @@ -1217,7 +1223,7 @@ describe('IndexPattern Data Source', () => { operationType: 'sum', sourceField: 'test', params: {}, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, col2: { label: 'Cumulative sum', dataType: 'number', @@ -1226,7 +1232,7 @@ describe('IndexPattern Data Source', () => { operationType: 'cumulative_sum', references: ['col1'], params: {}, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }, }, }, @@ -1268,7 +1274,7 @@ describe('IndexPattern Data Source', () => { operationType: 'sum', sourceField: 'test', params: {}, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, col2: { label: 'Cumulative sum', dataType: 'number', @@ -1277,7 +1283,7 @@ describe('IndexPattern Data Source', () => { operationType: 'cumulative_sum', references: ['col1'], params: {}, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, }, }, }, @@ -1368,7 +1374,7 @@ describe('IndexPattern Data Source', () => { dataType: 'date', isBucketed: true, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { operationType: 'count', label: '', @@ -1606,7 +1612,7 @@ describe('IndexPattern Data Source', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, bucket2: { label: 'Terms', dataType: 'string', @@ -1618,7 +1624,7 @@ describe('IndexPattern Data Source', () => { orderDirection: 'asc', size: 10, }, - }, + } as TermsIndexPatternColumn, }, }, }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx index b970ad092c7f4..8924684621995 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern.tsx @@ -12,7 +12,7 @@ import type { CoreStart, SavedObjectReference } from 'kibana/public'; import { i18n } from '@kbn/i18n'; import type { IStorageWrapper } from 'src/plugins/kibana_utils/public'; import type { FieldFormatsStart } from 'src/plugins/field_formats/public'; -import type { IndexPatternFieldEditorStart } from '../../../../../src/plugins/index_pattern_field_editor/public'; +import type { IndexPatternFieldEditorStart } from '../../../../../src/plugins/data_view_field_editor/public'; import type { DatasourceDimensionEditorProps, DatasourceDimensionTriggerProps, @@ -44,7 +44,7 @@ import { import { isColumnInvalid, isDraggedField, normalizeOperationDataType } from './utils'; import { LayerPanel } from './layerpanel'; -import { IndexPatternColumn, getErrorMessages, insertNewColumn } from './operations'; +import { GenericIndexPatternColumn, getErrorMessages, insertNewColumn } from './operations'; import { IndexPatternField, IndexPatternPrivateState, IndexPatternPersistedState } from './types'; import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; import { DataPublicPluginStart } from '../../../../../src/plugins/data/public'; @@ -58,10 +58,13 @@ import { GeoFieldWorkspacePanel } from '../editor_frame_service/editor_frame/wor import { DraggingIdentifier } from '../drag_drop'; import { getStateTimeShiftWarningMessages } from './time_shift_utils'; import { getPrecisionErrorWarningMessages } from './utils'; -export type { OperationType, IndexPatternColumn } from './operations'; +export type { OperationType, GenericIndexPatternColumn } from './operations'; export { deleteColumn } from './operations'; -export function columnToOperation(column: IndexPatternColumn, uniqueLabel?: string): Operation { +export function columnToOperation( + column: GenericIndexPatternColumn, + uniqueLabel?: string +): Operation { const { dataType, label, isBucketed, scale } = column; return { dataType: normalizeOperationDataType(dataType), @@ -85,7 +88,7 @@ export function getIndexPatternDatasource({ data, fieldFormats, charts, - indexPatternFieldEditor, + dataViewFieldEditor, uiActions, }: { core: CoreStart; @@ -93,7 +96,7 @@ export function getIndexPatternDatasource({ data: DataPublicPluginStart; fieldFormats: FieldFormatsStart; charts: ChartsPluginSetup; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; uiActions: UiActionsStart; }) { const uiSettings = core.uiSettings; @@ -227,7 +230,7 @@ export function getIndexPatternDatasource({ data={data} fieldFormats={fieldFormats} charts={charts} - indexPatternFieldEditor={indexPatternFieldEditor} + indexPatternFieldEditor={dataViewFieldEditor} {...props} core={core} uiActions={uiActions} diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx index 5df02482a2745..a821dcee29d6d 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.test.tsx @@ -18,6 +18,12 @@ import { import { documentField } from './document_field'; import { getFieldByNameFactory } from './pure_helpers'; import { isEqual } from 'lodash'; +import { DateHistogramIndexPatternColumn, TermsIndexPatternColumn } from './operations'; +import { + MathIndexPatternColumn, + RangeIndexPatternColumn, + StaticValueIndexPatternColumn, +} from './operations/definitions'; jest.mock('./loader'); jest.mock('../id_generator'); @@ -179,7 +185,7 @@ function testInitialState(): IndexPatternPrivateState { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -733,7 +739,7 @@ describe('IndexPattern Data Source suggestions', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, colb: { dataType: 'number', isBucketed: false, @@ -768,7 +774,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { interval: 'w', }, - }, + } as DateHistogramIndexPatternColumn, colb: { dataType: 'number', isBucketed: false, @@ -976,7 +982,7 @@ describe('IndexPattern Data Source suggestions', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, }, columnOrder: ['cola'], }, @@ -1086,7 +1092,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, metric: { label: '', customLabel: true, @@ -1218,7 +1224,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { value: '0' }, references: [], scale: 'ratio', - }, + } as StaticValueIndexPatternColumn, }, }, currentLayer: { @@ -1506,7 +1512,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -1648,7 +1654,7 @@ describe('IndexPattern Data Source suggestions', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, colb: { label: 'My Op', customLabel: true, @@ -1726,7 +1732,7 @@ describe('IndexPattern Data Source suggestions', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, colb: { label: 'My Op', customLabel: true, @@ -1830,7 +1836,7 @@ describe('IndexPattern Data Source suggestions', () => { maxBars: 100, ranges: [], }, - }, + } as RangeIndexPatternColumn, }, }, }, @@ -1876,7 +1882,7 @@ describe('IndexPattern Data Source suggestions', () => { maxBars: 100, ranges: [{ from: 1, to: 2, label: '' }], }, - }, + } as RangeIndexPatternColumn, }, }, }, @@ -1954,7 +1960,7 @@ describe('IndexPattern Data Source suggestions', () => { it("should not propose an over time suggestion if there's a top values aggregation with an high size", () => { const initialState = testInitialState(); - (initialState.layers.first.columns.col1 as { params: { size: number } }).params!.size = 6; + (initialState.layers.first.columns.col1 as TermsIndexPatternColumn).params!.size = 6; const suggestions = getDatasourceSuggestionsFromCurrentState({ ...initialState, indexPatterns: { 1: { ...initialState.indexPatterns['1'], timeFieldName: undefined } }, @@ -1995,7 +2001,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, }, }, @@ -2080,7 +2086,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, col2: { label: 'My Op', customLabel: true, @@ -2094,7 +2100,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, col3: { label: 'My Op', customLabel: true, @@ -2108,7 +2114,7 @@ describe('IndexPattern Data Source suggestions', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, col4: { label: 'My Op', customLabel: true, @@ -2217,7 +2223,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, id2: { label: 'Average of field1', dataType: 'number', @@ -2348,7 +2354,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, id2: { label: 'Top 5', dataType: 'string', @@ -2357,7 +2363,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'terms', sourceField: 'dest', params: { size: 5, orderBy: { type: 'alphabetical' }, orderDirection: 'asc' }, - }, + } as TermsIndexPatternColumn, id3: { label: 'Average of field1', dataType: 'number', @@ -2403,7 +2409,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'terms', sourceField: 'nonExistingField', params: { size: 5, orderBy: { type: 'alphabetical' }, orderDirection: 'asc' }, - }, + } as TermsIndexPatternColumn, }, columnOrder: ['col1', 'col2'], }, @@ -2539,7 +2545,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, ref: { label: '', dataType: 'number', @@ -2629,7 +2635,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, metric: { label: '', dataType: 'number', @@ -2681,7 +2687,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { tinymathAst: '', }, - }, + } as MathIndexPatternColumn, ref4: { label: '', dataType: 'number', @@ -2691,7 +2697,7 @@ describe('IndexPattern Data Source suggestions', () => { params: { tinymathAst: '', }, - }, + } as MathIndexPatternColumn, }, }, }, @@ -2756,7 +2762,7 @@ describe('IndexPattern Data Source suggestions', () => { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, ref: { label: '', dataType: 'number', @@ -2806,7 +2812,7 @@ describe('IndexPattern Data Source suggestions', () => { tinymathAst: '', }, references: ['metric'], - }, + } as MathIndexPatternColumn, metric: { label: '', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts index 8b940ec1f05af..6b15a5a8d1daf 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/indexpattern_suggestions.ts @@ -16,7 +16,7 @@ import { getMetricOperationTypes, getOperationTypesForField, operationDefinitionMap, - IndexPatternColumn, + BaseIndexPatternColumn, OperationType, getExistingColumnGroups, isReferenced, @@ -62,11 +62,11 @@ function buildSuggestion({ // two match up. const layers = mapValues(updatedState.layers, (layer) => ({ ...layer, - columns: pick(layer.columns, layer.columnOrder) as Record<string, IndexPatternColumn>, + columns: pick(layer.columns, layer.columnOrder) as Record<string, BaseIndexPatternColumn>, })); const columnOrder = layers[layerId].columnOrder; - const columnMap = layers[layerId].columns as Record<string, IndexPatternColumn>; + const columnMap = layers[layerId].columns as Record<string, BaseIndexPatternColumn>; const isMultiRow = Object.values(columnMap).some((column) => column.isBucketed); return { @@ -221,7 +221,7 @@ function getExistingLayerSuggestionsForField( indexPattern, field, columnId: generateId(), - op: metricOperation.type, + op: metricOperation.type as OperationType, visualizationGroups: [], }); if (layerWithNewMetric) { @@ -243,7 +243,7 @@ function getExistingLayerSuggestionsForField( indexPattern, field, columnId: metrics[0], - op: metricOperation.type, + op: metricOperation.type as OperationType, visualizationGroups: [], }); if (layerWithReplacedMetric) { @@ -336,7 +336,7 @@ function createNewLayerWithMetricAggregation( return insertNewColumn({ op: 'date_histogram', layer: insertNewColumn({ - op: metricOperation.type, + op: metricOperation.type as OperationType, layer: { indexPatternId: indexPattern.id, columns: {}, columnOrder: [] }, columnId: generateId(), field, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/layerpanel.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/layerpanel.test.tsx index 6161bcee4678f..335796442bd8b 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/layerpanel.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/layerpanel.test.tsx @@ -13,6 +13,7 @@ import { ShallowWrapper } from 'enzyme'; import { EuiSelectable } from '@elastic/eui'; import { ChangeIndexPattern } from './change_indexpattern'; import { getFieldByNameFactory } from './pure_helpers'; +import { TermsIndexPatternColumn } from './operations'; interface IndexPatternPickerOption { label: string; @@ -160,7 +161,7 @@ const initialState: IndexPatternPrivateState = { type: 'alphabetical', }, }, - }, + } as TermsIndexPatternColumn, col2: { label: 'My Op', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts index d731069e6e7eb..431b8a84341e8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/loader.test.ts @@ -26,6 +26,7 @@ import { } from './types'; import { createMockedRestrictedIndexPattern, createMockedIndexPattern } from './mocks'; import { documentField } from './document_field'; +import { DateHistogramIndexPatternColumn } from './operations'; const createMockStorage = (lastData?: Record<string, string>) => { return { @@ -512,7 +513,7 @@ describe('loader', () => { interval: 'm', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -563,7 +564,7 @@ describe('loader', () => { interval: 'm', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -650,7 +651,7 @@ describe('loader', () => { interval: 'm', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -870,7 +871,7 @@ describe('loader', () => { interval: 'm', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, indexPatternId: '1', }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions.test.ts index c131b16512823..974e37c2aea8e 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions.test.ts @@ -19,7 +19,8 @@ import { import { getFieldByNameFactory } from '../pure_helpers'; import { documentField } from '../document_field'; import { IndexPattern, IndexPatternLayer, IndexPatternField } from '../types'; -import { IndexPatternColumn } from '.'; +import { GenericIndexPatternColumn } from '.'; +import { DateHistogramIndexPatternColumn } from './definitions/date_histogram'; const indexPatternFields = [ { @@ -77,7 +78,7 @@ const indexPattern = { }; const baseColumnArgs: { - previousColumn: IndexPatternColumn; + previousColumn: GenericIndexPatternColumn; indexPattern: IndexPattern; layer: IndexPatternLayer; field: IndexPatternField; @@ -113,7 +114,7 @@ const layer: IndexPatternLayer = { operationType: 'date_histogram', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, metric: { label: 'metricLabel', customLabel: true, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/utils.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/utils.test.ts index 8b1eaeb109d9b..1dacb334413f8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/utils.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/calculations/utils.test.ts @@ -9,6 +9,7 @@ import { checkReferences, checkForDataLayerType } from './utils'; import { operationDefinitionMap } from '..'; import { createMockedFullReference } from '../../mocks'; import { layerTypes } from '../../../../../common'; +import { DateHistogramIndexPatternColumn } from '../date_histogram'; // Mock prevents issue with circular loading jest.mock('..'); @@ -35,7 +36,6 @@ describe('utils', () => { columns: { ref: { label: 'Label', - // @ts-expect-error test-only operation type operationType: 'testReference', isBucketed: false, dataType: 'number', @@ -57,7 +57,6 @@ describe('utils', () => { columns: { ref: { label: 'Label', - // @ts-expect-error test-only operation type operationType: 'testReference', isBucketed: false, dataType: 'number', @@ -70,7 +69,7 @@ describe('utils', () => { dataType: 'date', sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, }, columnOrder: ['invalid', 'ref'], indexPatternId: '', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/column_types.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/column_types.ts index 15bd7d4242b92..233138ef4ff0a 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/column_types.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/column_types.ts @@ -42,6 +42,11 @@ export interface ReferenceBasedIndexPatternColumn references: string[]; } +export type GenericIndexPatternColumn = + | BaseIndexPatternColumn + | FieldBasedIndexPatternColumn + | ReferenceBasedIndexPatternColumn; + // Used to store the temporary invalid state export interface IncompleteColumn { operationType?: OperationType; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx index a6134ddc67bc0..6290abac77844 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/count.tsx @@ -11,7 +11,7 @@ import { buildExpressionFunction } from '../../../../../../../src/plugins/expres import { OperationDefinition } from './index'; import { FormattedIndexPatternColumn, FieldBasedIndexPatternColumn } from './column_types'; import { IndexPatternField } from '../../types'; -import { getInvalidFieldMessage, getFilter } from './helpers'; +import { getInvalidFieldMessage, getFilter, isColumnFormatted } from './helpers'; import { adjustTimeScaleLabelSuffix, adjustTimeScaleOnOtherColumnChange, @@ -84,9 +84,8 @@ export const countOperation: OperationDefinition<CountIndexPatternColumn, 'field timeShift: columnParams?.shift || previousColumn?.timeShift, params: previousColumn?.dataType === 'number' && - previousColumn.params && - 'format' in previousColumn.params && - previousColumn.params.format + isColumnFormatted(previousColumn) && + previousColumn.params ? { format: previousColumn.params.format } : undefined, }; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.test.tsx index b7d2302ec0326..26cbd2a990978 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.test.tsx @@ -124,7 +124,7 @@ describe('date_histogram', () => { interval: '42w', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; }); @@ -332,7 +332,7 @@ describe('date_histogram', () => { interval: 'd', }, sourceField: 'other_timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; const instance = shallow( @@ -366,7 +366,7 @@ describe('date_histogram', () => { interval: 'auto', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; @@ -401,7 +401,7 @@ describe('date_histogram', () => { interval: 'auto', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, }; @@ -594,7 +594,7 @@ describe('date_histogram', () => { operationType: 'date_histogram', sourceField: 'missing', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, } ) ).toEqual('Missing field'); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.tsx index ea875c069150d..efc7a10090cfa 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/date_histogram.tsx @@ -71,272 +71,275 @@ function getMultipleDateHistogramsErrorMessage(layer: IndexPatternLayer, columnI }); } -export const dateHistogramOperation: OperationDefinition<DateHistogramIndexPatternColumn, 'field'> = - { - type: 'date_histogram', - displayName: i18n.translate('xpack.lens.indexPattern.dateHistogram', { - defaultMessage: 'Date histogram', - }), - input: 'field', - priority: 5, // Highest priority level used - operationParams: [{ name: 'interval', type: 'string', required: false }], - getErrorMessage: (layer, columnId, indexPattern) => - [ - ...(getInvalidFieldMessage( - layer.columns[columnId] as FieldBasedIndexPatternColumn, - indexPattern - ) || []), - getMultipleDateHistogramsErrorMessage(layer, columnId) || '', - ].filter(Boolean), - getHelpMessage: (props) => <AutoDateHistogramPopover {...props} />, - getPossibleOperationForField: ({ aggregationRestrictions, aggregatable, type }) => { - if ( - (type === 'date' || type === 'date_range') && - aggregatable && - (!aggregationRestrictions || aggregationRestrictions.date_histogram) - ) { - return { - dataType: 'date', - isBucketed: true, - scale: 'interval', - }; - } - }, - getDefaultLabel: (column, indexPattern) => getSafeName(column.sourceField, indexPattern), - buildColumn({ field }, columnParams) { +export const dateHistogramOperation: OperationDefinition< + DateHistogramIndexPatternColumn, + 'field', + { interval: string } +> = { + type: 'date_histogram', + displayName: i18n.translate('xpack.lens.indexPattern.dateHistogram', { + defaultMessage: 'Date histogram', + }), + input: 'field', + priority: 5, // Highest priority level used + operationParams: [{ name: 'interval', type: 'string', required: false }], + getErrorMessage: (layer, columnId, indexPattern) => + [ + ...(getInvalidFieldMessage( + layer.columns[columnId] as FieldBasedIndexPatternColumn, + indexPattern + ) || []), + getMultipleDateHistogramsErrorMessage(layer, columnId) || '', + ].filter(Boolean), + getHelpMessage: (props) => <AutoDateHistogramPopover {...props} />, + getPossibleOperationForField: ({ aggregationRestrictions, aggregatable, type }) => { + if ( + (type === 'date' || type === 'date_range') && + aggregatable && + (!aggregationRestrictions || aggregationRestrictions.date_histogram) + ) { return { - label: field.displayName, dataType: 'date', - operationType: 'date_histogram', - sourceField: field.name, isBucketed: true, scale: 'interval', - params: { - interval: columnParams?.interval ?? autoInterval, - }, }; - }, - isTransferable: (column, newIndexPattern) => { - const newField = newIndexPattern.getFieldByName(column.sourceField); + } + }, + getDefaultLabel: (column, indexPattern) => getSafeName(column.sourceField, indexPattern), + buildColumn({ field }, columnParams) { + return { + label: field.displayName, + dataType: 'date', + operationType: 'date_histogram', + sourceField: field.name, + isBucketed: true, + scale: 'interval', + params: { + interval: columnParams?.interval ?? autoInterval, + }, + }; + }, + isTransferable: (column, newIndexPattern) => { + const newField = newIndexPattern.getFieldByName(column.sourceField); - return Boolean( - newField && - newField.type === 'date' && - newField.aggregatable && - (!newField.aggregationRestrictions || newField.aggregationRestrictions.date_histogram) - ); - }, - onFieldChange: (oldColumn, field) => { - return { - ...oldColumn, - label: field.displayName, - sourceField: field.name, - }; - }, - toEsAggsFn: (column, columnId, indexPattern) => { - const usedField = indexPattern.getFieldByName(column.sourceField); - let timeZone: string | undefined; - let interval = column.params?.interval ?? autoInterval; - if ( - usedField && - usedField.aggregationRestrictions && - usedField.aggregationRestrictions.date_histogram - ) { - interval = restrictedInterval(usedField.aggregationRestrictions) as string; - timeZone = usedField.aggregationRestrictions.date_histogram.time_zone; - } - return buildExpressionFunction<AggFunctionsMapping['aggDateHistogram']>('aggDateHistogram', { - id: columnId, - enabled: true, - schema: 'segment', - field: column.sourceField, - time_zone: timeZone, - useNormalizedEsInterval: !usedField?.aggregationRestrictions?.date_histogram, - interval, - drop_partials: false, - min_doc_count: 0, - extended_bounds: extendedBoundsToAst({}), - }).toAst(); - }, - paramEditor: function ParamEditor({ - layer, - columnId, - currentColumn, - updateLayer, - dateRange, - data, - indexPattern, - }: ParamEditorProps<DateHistogramIndexPatternColumn>) { - const field = currentColumn && indexPattern.getFieldByName(currentColumn.sourceField); - const intervalIsRestricted = - field!.aggregationRestrictions && field!.aggregationRestrictions.date_histogram; + return Boolean( + newField && + newField.type === 'date' && + newField.aggregatable && + (!newField.aggregationRestrictions || newField.aggregationRestrictions.date_histogram) + ); + }, + onFieldChange: (oldColumn, field) => { + return { + ...oldColumn, + label: field.displayName, + sourceField: field.name, + }; + }, + toEsAggsFn: (column, columnId, indexPattern) => { + const usedField = indexPattern.getFieldByName(column.sourceField); + let timeZone: string | undefined; + let interval = column.params?.interval ?? autoInterval; + if ( + usedField && + usedField.aggregationRestrictions && + usedField.aggregationRestrictions.date_histogram + ) { + interval = restrictedInterval(usedField.aggregationRestrictions) as string; + timeZone = usedField.aggregationRestrictions.date_histogram.time_zone; + } + return buildExpressionFunction<AggFunctionsMapping['aggDateHistogram']>('aggDateHistogram', { + id: columnId, + enabled: true, + schema: 'segment', + field: column.sourceField, + time_zone: timeZone, + useNormalizedEsInterval: !usedField?.aggregationRestrictions?.date_histogram, + interval, + drop_partials: false, + min_doc_count: 0, + extended_bounds: extendedBoundsToAst({}), + }).toAst(); + }, + paramEditor: function ParamEditor({ + layer, + columnId, + currentColumn, + updateLayer, + dateRange, + data, + indexPattern, + }: ParamEditorProps<DateHistogramIndexPatternColumn>) { + const field = currentColumn && indexPattern.getFieldByName(currentColumn.sourceField); + const intervalIsRestricted = + field!.aggregationRestrictions && field!.aggregationRestrictions.date_histogram; - const interval = parseInterval(currentColumn.params.interval); + const interval = parseInterval(currentColumn.params.interval); - // We force the interval value to 1 if it's empty, since that is the ES behavior, - // and the isValidInterval function doesn't handle the empty case properly. Fixing - // isValidInterval involves breaking changes in other areas. - const isValid = isValidInterval( - `${interval.value === '' ? '1' : interval.value}${interval.unit}`, - restrictedInterval(field!.aggregationRestrictions) - ); + // We force the interval value to 1 if it's empty, since that is the ES behavior, + // and the isValidInterval function doesn't handle the empty case properly. Fixing + // isValidInterval involves breaking changes in other areas. + const isValid = isValidInterval( + `${interval.value === '' ? '1' : interval.value}${interval.unit}`, + restrictedInterval(field!.aggregationRestrictions) + ); - function onChangeAutoInterval(ev: EuiSwitchEvent) { - const { fromDate, toDate } = dateRange; - const value = ev.target.checked - ? data.search.aggs.calculateAutoTimeExpression({ from: fromDate, to: toDate }) || '1h' - : autoInterval; - updateLayer(updateColumnParam({ layer, columnId, paramName: 'interval', value })); - } + function onChangeAutoInterval(ev: EuiSwitchEvent) { + const { fromDate, toDate } = dateRange; + const value = ev.target.checked + ? data.search.aggs.calculateAutoTimeExpression({ from: fromDate, to: toDate }) || '1h' + : autoInterval; + updateLayer(updateColumnParam({ layer, columnId, paramName: 'interval', value })); + } - const setInterval = (newInterval: typeof interval) => { - const isCalendarInterval = calendarOnlyIntervals.has(newInterval.unit); - const value = `${isCalendarInterval ? '1' : newInterval.value}${newInterval.unit || 'd'}`; + const setInterval = (newInterval: typeof interval) => { + const isCalendarInterval = calendarOnlyIntervals.has(newInterval.unit); + const value = `${isCalendarInterval ? '1' : newInterval.value}${newInterval.unit || 'd'}`; - updateLayer(updateColumnParam({ layer, columnId, paramName: 'interval', value })); - }; + updateLayer(updateColumnParam({ layer, columnId, paramName: 'interval', value })); + }; - return ( - <> - {!intervalIsRestricted && ( - <EuiFormRow display="rowCompressed" hasChildLabel={false}> - <EuiSwitch - label={i18n.translate('xpack.lens.indexPattern.dateHistogram.autoInterval', { - defaultMessage: 'Customize time interval', - })} - checked={currentColumn.params.interval !== autoInterval} - onChange={onChangeAutoInterval} - compressed - /> - </EuiFormRow> - )} - {currentColumn.params.interval !== autoInterval && ( - <EuiFormRow - label={i18n.translate('xpack.lens.indexPattern.dateHistogram.minimumInterval', { - defaultMessage: 'Minimum interval', + return ( + <> + {!intervalIsRestricted && ( + <EuiFormRow display="rowCompressed" hasChildLabel={false}> + <EuiSwitch + label={i18n.translate('xpack.lens.indexPattern.dateHistogram.autoInterval', { + defaultMessage: 'Customize time interval', })} - fullWidth - display="rowCompressed" - > - {intervalIsRestricted ? ( - <FormattedMessage - id="xpack.lens.indexPattern.dateHistogram.restrictedInterval" - defaultMessage="Interval fixed to {intervalValue} due to aggregation restrictions." - values={{ - intervalValue: restrictedInterval(field!.aggregationRestrictions), - }} - /> - ) : ( - <> - <EuiFlexGroup responsive={false} gutterSize="s"> - <EuiFlexItem> - <EuiFieldNumber - compressed - data-test-subj="lensDateHistogramValue" - value={ - typeof interval.value === 'number' || interval.value === '' - ? interval.value - : parseInt(interval.value, 10) - } - disabled={calendarOnlyIntervals.has(interval.unit)} - isInvalid={!isValid} - onChange={(e) => { - const newInterval = { - ...interval, - value: e.target.value, - }; - setInterval(newInterval); - }} - /> - </EuiFlexItem> - <EuiFlexItem> - <EuiSelect - compressed - data-test-subj="lensDateHistogramUnit" - value={interval.unit} - onChange={(e) => { - const newInterval = { - ...interval, - unit: e.target.value, - }; - setInterval(newInterval); - }} - isInvalid={!isValid} - options={[ - { - value: 'ms', - text: i18n.translate( - 'xpack.lens.indexPattern.dateHistogram.milliseconds', - { - defaultMessage: 'milliseconds', - } - ), - }, - { - value: 's', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.seconds', { - defaultMessage: 'seconds', - }), - }, - { - value: 'm', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.minutes', { - defaultMessage: 'minutes', - }), - }, - { - value: 'h', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.hours', { - defaultMessage: 'hours', - }), - }, - { - value: 'd', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.days', { - defaultMessage: 'days', - }), - }, - { - value: 'w', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.week', { - defaultMessage: 'week', - }), - }, - { - value: 'M', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.month', { - defaultMessage: 'month', - }), - }, - // Quarterly intervals appear to be unsupported by esaggs - { - value: 'y', - text: i18n.translate('xpack.lens.indexPattern.dateHistogram.year', { - defaultMessage: 'year', - }), - }, - ]} - /> - </EuiFlexItem> - </EuiFlexGroup> - {!isValid && ( - <> - <EuiSpacer size="s" /> - <EuiTextColor color="danger" data-test-subj="lensDateHistogramError"> - {i18n.translate('xpack.lens.indexPattern.invalidInterval', { - defaultMessage: 'Invalid interval value', - })} - </EuiTextColor> - </> - )} - </> - )} - </EuiFormRow> - )} - </> - ); - }, - }; + checked={currentColumn.params.interval !== autoInterval} + onChange={onChangeAutoInterval} + compressed + /> + </EuiFormRow> + )} + {currentColumn.params.interval !== autoInterval && ( + <EuiFormRow + label={i18n.translate('xpack.lens.indexPattern.dateHistogram.minimumInterval', { + defaultMessage: 'Minimum interval', + })} + fullWidth + display="rowCompressed" + > + {intervalIsRestricted ? ( + <FormattedMessage + id="xpack.lens.indexPattern.dateHistogram.restrictedInterval" + defaultMessage="Interval fixed to {intervalValue} due to aggregation restrictions." + values={{ + intervalValue: restrictedInterval(field!.aggregationRestrictions), + }} + /> + ) : ( + <> + <EuiFlexGroup responsive={false} gutterSize="s"> + <EuiFlexItem> + <EuiFieldNumber + compressed + data-test-subj="lensDateHistogramValue" + value={ + typeof interval.value === 'number' || interval.value === '' + ? interval.value + : parseInt(interval.value, 10) + } + disabled={calendarOnlyIntervals.has(interval.unit)} + isInvalid={!isValid} + onChange={(e) => { + const newInterval = { + ...interval, + value: e.target.value, + }; + setInterval(newInterval); + }} + /> + </EuiFlexItem> + <EuiFlexItem> + <EuiSelect + compressed + data-test-subj="lensDateHistogramUnit" + value={interval.unit} + onChange={(e) => { + const newInterval = { + ...interval, + unit: e.target.value, + }; + setInterval(newInterval); + }} + isInvalid={!isValid} + options={[ + { + value: 'ms', + text: i18n.translate( + 'xpack.lens.indexPattern.dateHistogram.milliseconds', + { + defaultMessage: 'milliseconds', + } + ), + }, + { + value: 's', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.seconds', { + defaultMessage: 'seconds', + }), + }, + { + value: 'm', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.minutes', { + defaultMessage: 'minutes', + }), + }, + { + value: 'h', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.hours', { + defaultMessage: 'hours', + }), + }, + { + value: 'd', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.days', { + defaultMessage: 'days', + }), + }, + { + value: 'w', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.week', { + defaultMessage: 'week', + }), + }, + { + value: 'M', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.month', { + defaultMessage: 'month', + }), + }, + // Quarterly intervals appear to be unsupported by esaggs + { + value: 'y', + text: i18n.translate('xpack.lens.indexPattern.dateHistogram.year', { + defaultMessage: 'year', + }), + }, + ]} + /> + </EuiFlexItem> + </EuiFlexGroup> + {!isValid && ( + <> + <EuiSpacer size="s" /> + <EuiTextColor color="danger" data-test-subj="lensDateHistogramError"> + {i18n.translate('xpack.lens.indexPattern.invalidInterval', { + defaultMessage: 'Invalid interval value', + })} + </EuiTextColor> + </> + )} + </> + )} + </EuiFormRow> + )} + </> + ); + }, +}; function parseInterval(currentInterval: string) { const interval = currentInterval || ''; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filters.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filters.test.tsx index 640ea3a1a41f6..b215e6ed7e318 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filters.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/filters/filters.test.tsx @@ -74,7 +74,7 @@ describe('filters', () => { }, ], }, - }, + } as FiltersIndexPatternColumn, col2: { label: 'Count', dataType: 'number', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/editor/formula_help.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/editor/formula_help.tsx index 47dd8fbc9c569..203774c6b1561 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/editor/formula_help.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/editor/formula_help.tsx @@ -28,7 +28,7 @@ import { hasFunctionFieldArgument } from '../validation'; import type { GenericOperationDefinition, - IndexPatternColumn, + GenericIndexPatternColumn, OperationDefinition, ParamEditorProps, } from '../../index'; @@ -503,7 +503,7 @@ export function getFunctionSignatureLabel( function getFunctionArgumentsStringified( params: Required< - OperationDefinition<IndexPatternColumn, 'field' | 'fullReference'> + OperationDefinition<GenericIndexPatternColumn, 'field' | 'fullReference'> >['operationParams'] ) { return params diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx index d3dc8e95933a3..93df78ec3f5ff 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.test.tsx @@ -6,15 +6,18 @@ */ import { createMockedIndexPattern } from '../../../mocks'; -import { formulaOperation, GenericOperationDefinition, IndexPatternColumn } from '../index'; +import { formulaOperation, GenericOperationDefinition, GenericIndexPatternColumn } from '../index'; import { FormulaIndexPatternColumn } from './formula'; import { regenerateLayerFromAst } from './parse'; import type { IndexPattern, IndexPatternField, IndexPatternLayer } from '../../../types'; import { tinymathFunctions } from './util'; +import { TermsIndexPatternColumn } from '../terms'; +import { MovingAverageIndexPatternColumn } from '../calculations'; +import { StaticValueIndexPatternColumn } from '../static_value'; jest.mock('../../layer_helpers', () => { return { - getColumnOrder: jest.fn(({ columns }: { columns: Record<string, IndexPatternColumn> }) => + getColumnOrder: jest.fn(({ columns }: { columns: Record<string, GenericIndexPatternColumn> }) => Object.keys(columns) ), getManagedColumnsFrom: jest.fn().mockReturnValue([]), @@ -113,7 +116,7 @@ describe('formula', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, }, }; }); @@ -191,7 +194,7 @@ describe('formula', () => { }, }, }, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, layer, indexPattern, }) @@ -225,7 +228,7 @@ describe('formula', () => { // Need to test with multiple replaces due to string replace query: `category.keyword: "Men's Clothing" or category.keyword: "Men's Shoes"`, }, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, layer, indexPattern, }) @@ -254,7 +257,7 @@ describe('formula', () => { language: 'lucene', query: `*`, }, - } as IndexPatternColumn, + } as GenericIndexPatternColumn, layer, indexPattern, }) @@ -285,7 +288,7 @@ describe('formula', () => { references: ['col2'], timeScale: 'd', params: { window: 3 }, - }, + } as MovingAverageIndexPatternColumn, layer: { indexPatternId: '1', columnOrder: [], @@ -299,7 +302,7 @@ describe('formula', () => { references: ['col2'], timeScale: 'd', params: { window: 3 }, - }, + } as MovingAverageIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -345,7 +348,7 @@ describe('formula', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, layer: { indexPatternId: '1', columnOrder: [], @@ -361,7 +364,7 @@ describe('formula', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, }, }, indexPattern, @@ -392,7 +395,7 @@ describe('formula', () => { params: { value: '0', }, - }, + } as StaticValueIndexPatternColumn, layer, indexPattern, }) @@ -668,7 +671,7 @@ describe('formula', () => { scale: 'ratio', params: { formula, isFormulaBroken: isBroken }, references: [], - }, + } as FormulaIndexPatternColumn, }, columnOrder: [], indexPatternId: '', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.tsx index 511f18415272e..5842cde4fea31 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/formula.tsx @@ -15,6 +15,7 @@ import { regenerateLayerFromAst } from './parse'; import { generateFormula } from './generate'; import { filterByVisibleOperation } from './util'; import { getManagedColumnsFrom } from '../../layer_helpers'; +import { isColumnFormatted } from '../helpers'; const defaultLabel = i18n.translate('xpack.lens.indexPattern.formulaLabel', { defaultMessage: 'Formula', @@ -120,8 +121,8 @@ export const formulaOperation: OperationDefinition<FormulaIndexPatternColumn, 'm // carry over the format settings from previous operation for seamless transfer // NOTE: this works only for non-default formatters set in Lens let prevFormat = {}; - if (previousColumn?.params && 'format' in previousColumn.params) { - prevFormat = { format: previousColumn.params.format }; + if (previousColumn && isColumnFormatted(previousColumn)) { + prevFormat = { format: previousColumn.params?.format }; } return { label: previousFormula || defaultLabel, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/generate.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/generate.ts index 3db9ebc6f969d..a36f24ef7d048 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/generate.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/generate.ts @@ -9,11 +9,13 @@ import { isObject } from 'lodash'; import { FieldBasedIndexPatternColumn, GenericOperationDefinition, - IndexPatternColumn, + GenericIndexPatternColumn, } from '../index'; -import { ReferenceBasedIndexPatternColumn } from '../column_types'; +import { BaseIndexPatternColumn, ReferenceBasedIndexPatternColumn } from '../column_types'; import { IndexPatternLayer } from '../../../types'; import { unquotedStringRegex } from './util'; +import { isColumnOfType } from '../helpers'; +import { StaticValueIndexPatternColumn } from '../static_value'; // Just handle two levels for now type OperationParams = Record<string, string | number | Record<string, string | number>>; @@ -33,12 +35,12 @@ export function getSafeFieldName({ } export function generateFormula( - previousColumn: ReferenceBasedIndexPatternColumn | IndexPatternColumn, + previousColumn: ReferenceBasedIndexPatternColumn | GenericIndexPatternColumn, layer: IndexPatternLayer, previousFormula: string, operationDefinitionMap: Record<string, GenericOperationDefinition> | undefined ) { - if (previousColumn.operationType === 'static_value') { + if (isColumnOfType<StaticValueIndexPatternColumn>('static_value', previousColumn)) { if (previousColumn.params && 'value' in previousColumn.params) { return String(previousColumn.params.value); // make sure it's a string } @@ -81,17 +83,25 @@ export function generateFormula( return previousFormula; } +interface ParameterizedColumn extends BaseIndexPatternColumn { + params: OperationParams; +} + +function isParameterizedColumn(col: GenericIndexPatternColumn): col is ParameterizedColumn { + return Boolean('params' in col && col.params); +} + function extractParamsForFormula( - column: IndexPatternColumn | ReferenceBasedIndexPatternColumn, + column: GenericIndexPatternColumn, operationDefinitionMap: Record<string, GenericOperationDefinition> | undefined ) { if (!operationDefinitionMap) { return []; } const def = operationDefinitionMap[column.operationType]; - if ('operationParams' in def && column.params) { + if ('operationParams' in def && isParameterizedColumn(column)) { return (def.operationParams || []).flatMap(({ name, required }) => { - const value = (column.params as OperationParams)![name]; + const value = column.params[name]; if (isObject(value)) { return Object.keys(value).map((subName) => ({ name: `${name}-${subName}`, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/parse.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/parse.ts index adccecc875c22..ead2467416ce2 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/parse.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/parse.ts @@ -8,7 +8,11 @@ import { i18n } from '@kbn/i18n'; import { isObject } from 'lodash'; import type { TinymathAST, TinymathVariable, TinymathLocation } from '@kbn/tinymath'; -import { OperationDefinition, GenericOperationDefinition, IndexPatternColumn } from '../index'; +import { + OperationDefinition, + GenericOperationDefinition, + GenericIndexPatternColumn, +} from '../index'; import { IndexPattern, IndexPatternLayer } from '../../../types'; import { mathOperation } from './math'; import { documentField } from '../../../document_field'; @@ -67,8 +71,8 @@ function extractColumns( layer: IndexPatternLayer, indexPattern: IndexPattern, label: string -): Array<{ column: IndexPatternColumn; location?: TinymathLocation }> { - const columns: Array<{ column: IndexPatternColumn; location?: TinymathLocation }> = []; +): Array<{ column: GenericIndexPatternColumn; location?: TinymathLocation }> { + const columns: Array<{ column: GenericIndexPatternColumn; location?: TinymathLocation }> = []; function parseNode(node: TinymathAST) { if (typeof node === 'number' || node.type !== 'function') { @@ -102,7 +106,7 @@ function extractColumns( const mappedParams = getOperationParams(nodeOperation, namedArguments || []); const newCol = ( - nodeOperation as OperationDefinition<IndexPatternColumn, 'field'> + nodeOperation as OperationDefinition<GenericIndexPatternColumn, 'field'> ).buildColumn( { layer, @@ -139,7 +143,7 @@ function extractColumns( const mappedParams = getOperationParams(nodeOperation, namedArguments || []); const newCol = ( - nodeOperation as OperationDefinition<IndexPatternColumn, 'fullReference'> + nodeOperation as OperationDefinition<GenericIndexPatternColumn, 'fullReference'> ).buildColumn( { layer, @@ -227,7 +231,7 @@ export function regenerateLayerFromAst( isFormulaBroken: !isValid, }, references: !isValid ? [] : [getManagedId(columnId, extracted.length - 1)], - }; + } as FormulaIndexPatternColumn; return { newLayer: { diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/util.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/util.ts index f1530ba46caef..db267bfb0d564 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/util.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/util.ts @@ -13,7 +13,11 @@ import type { TinymathNamedArgument, TinymathVariable, } from 'packages/kbn-tinymath'; -import type { OperationDefinition, IndexPatternColumn, GenericOperationDefinition } from '../index'; +import type { + OperationDefinition, + GenericIndexPatternColumn, + GenericOperationDefinition, +} from '../index'; import type { GroupedNodes } from './types'; export const unquotedStringRegex = /[^0-9A-Za-z._@\[\]/]/; @@ -46,8 +50,8 @@ export function getValueOrName(node: TinymathAST) { export function getOperationParams( operation: - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'fullReference'>, + | OperationDefinition<GenericIndexPatternColumn, 'field'> + | OperationDefinition<GenericIndexPatternColumn, 'fullReference'>, params: TinymathNamedArgument[] = [] ): Record<string, string | number> { const formalArgs: Record<string, string> = (operation.operationParams || []).reduce( diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts index 1a8d8529a9b90..d6b9a1fff8e9d 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/formula/validation.ts @@ -20,7 +20,11 @@ import { tinymathFunctions, } from './util'; -import type { OperationDefinition, IndexPatternColumn, GenericOperationDefinition } from '../index'; +import type { + OperationDefinition, + GenericIndexPatternColumn, + GenericOperationDefinition, +} from '../index'; import type { IndexPattern, IndexPatternLayer } from '../../../types'; import type { TinymathNodeTypes } from './types'; import { parseTimeShift } from '../../../../../../../../src/plugins/data/common'; @@ -482,8 +486,8 @@ function checkSingleQuery(namedArguments: TinymathNamedArgument[] | undefined) { function validateNameArguments( node: TinymathFunction, nodeOperation: - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'fullReference'>, + | OperationDefinition<GenericIndexPatternColumn, 'field'> + | OperationDefinition<GenericIndexPatternColumn, 'fullReference'>, namedArguments: TinymathNamedArgument[] | undefined, indexPattern: IndexPattern ) { @@ -749,16 +753,16 @@ function runFullASTValidation( export function canHaveParams( operation: - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'fullReference'> + | OperationDefinition<GenericIndexPatternColumn, 'field'> + | OperationDefinition<GenericIndexPatternColumn, 'fullReference'> ) { return Boolean((operation.operationParams || []).length) || operation.filterable; } export function getInvalidParams( operation: - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'fullReference'>, + | OperationDefinition<GenericIndexPatternColumn, 'field'> + | OperationDefinition<GenericIndexPatternColumn, 'fullReference'>, params: TinymathNamedArgument[] = [] ) { return validateParams(operation, params).filter( @@ -768,8 +772,8 @@ export function getInvalidParams( export function getMissingParams( operation: - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'fullReference'>, + | OperationDefinition<GenericIndexPatternColumn, 'field'> + | OperationDefinition<GenericIndexPatternColumn, 'fullReference'>, params: TinymathNamedArgument[] = [] ) { return validateParams(operation, params).filter( @@ -779,8 +783,8 @@ export function getMissingParams( export function getWrongTypeParams( operation: - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'fullReference'>, + | OperationDefinition<GenericIndexPatternColumn, 'field'> + | OperationDefinition<GenericIndexPatternColumn, 'fullReference'>, params: TinymathNamedArgument[] = [] ) { return validateParams(operation, params).filter( @@ -789,7 +793,7 @@ export function getWrongTypeParams( } function getReturnedType( - operation: OperationDefinition<IndexPatternColumn, 'field'>, + operation: OperationDefinition<GenericIndexPatternColumn, 'field'>, indexPattern: IndexPattern, firstArg: TinymathAST ) { @@ -822,8 +826,8 @@ function getDuplicateParams(params: TinymathNamedArgument[] = []) { export function validateParams( operation: - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'fullReference'>, + | OperationDefinition<GenericIndexPatternColumn, 'field'> + | OperationDefinition<GenericIndexPatternColumn, 'fullReference'>, params: TinymathNamedArgument[] = [] ) { const paramsObj = getOperationParams(operation, params); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/helpers.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/helpers.tsx index a399183694863..9b22ef02fb3b5 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/helpers.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/helpers.tsx @@ -6,8 +6,12 @@ */ import { i18n } from '@kbn/i18n'; -import { IndexPatternColumn, operationDefinitionMap } from '.'; -import { FieldBasedIndexPatternColumn, ReferenceBasedIndexPatternColumn } from './column_types'; +import { GenericIndexPatternColumn, operationDefinitionMap } from '.'; +import { + FieldBasedIndexPatternColumn, + FormattedIndexPatternColumn, + ReferenceBasedIndexPatternColumn, +} from './column_types'; import { IndexPattern } from '../../types'; export function getInvalidFieldMessage( @@ -36,7 +40,7 @@ export function getInvalidFieldMessage( operationDefinition && field && !operationDefinition.isTransferable( - column as IndexPatternColumn, + column as GenericIndexPatternColumn, indexPattern, operationDefinitionMap ) @@ -90,19 +94,35 @@ export function isValidNumber( ); } +export function isColumnOfType<C extends GenericIndexPatternColumn>( + type: C['operationType'], + column: GenericIndexPatternColumn +): column is C { + return column.operationType === type; +} + +export function isColumnFormatted( + column: GenericIndexPatternColumn +): column is FormattedIndexPatternColumn { + return Boolean( + 'params' in column && + (column as FormattedIndexPatternColumn).params && + 'format' in (column as FormattedIndexPatternColumn).params! + ); +} + export function getFormatFromPreviousColumn( - previousColumn: IndexPatternColumn | ReferenceBasedIndexPatternColumn | undefined + previousColumn: GenericIndexPatternColumn | ReferenceBasedIndexPatternColumn | undefined ) { return previousColumn?.dataType === 'number' && - previousColumn.params && - 'format' in previousColumn.params && - previousColumn.params.format + isColumnFormatted(previousColumn) && + previousColumn.params ? { format: previousColumn.params.format } : undefined; } export function getFilter( - previousColumn: IndexPatternColumn | undefined, + previousColumn: GenericIndexPatternColumn | undefined, columnParams: { kql?: string | undefined; lucene?: string | undefined } | undefined ) { let filter = previousColumn?.filter; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/index.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/index.ts index 5898cfc26d88c..f18bdb9498f25 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/index.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/index.ts @@ -7,93 +7,51 @@ import { IUiSettingsClient, SavedObjectsClientContract, HttpSetup, CoreStart } from 'kibana/public'; import { IStorageWrapper } from 'src/plugins/kibana_utils/public'; -import { termsOperation, TermsIndexPatternColumn } from './terms'; -import { filtersOperation, FiltersIndexPatternColumn } from './filters'; -import { cardinalityOperation, CardinalityIndexPatternColumn } from './cardinality'; -import { percentileOperation, PercentileIndexPatternColumn } from './percentile'; +import { termsOperation } from './terms'; +import { filtersOperation } from './filters'; +import { cardinalityOperation } from './cardinality'; +import { percentileOperation } from './percentile'; import { minOperation, - MinIndexPatternColumn, averageOperation, - AvgIndexPatternColumn, sumOperation, - SumIndexPatternColumn, maxOperation, - MaxIndexPatternColumn, medianOperation, - MedianIndexPatternColumn, } from './metrics'; -import { dateHistogramOperation, DateHistogramIndexPatternColumn } from './date_histogram'; +import { dateHistogramOperation } from './date_histogram'; import { cumulativeSumOperation, - CumulativeSumIndexPatternColumn, counterRateOperation, - CounterRateIndexPatternColumn, derivativeOperation, - DerivativeIndexPatternColumn, movingAverageOperation, - MovingAverageIndexPatternColumn, - OverallSumIndexPatternColumn, overallSumOperation, - OverallMinIndexPatternColumn, overallMinOperation, - OverallMaxIndexPatternColumn, overallMaxOperation, - OverallAverageIndexPatternColumn, overallAverageOperation, } from './calculations'; -import { countOperation, CountIndexPatternColumn } from './count'; -import { - mathOperation, - MathIndexPatternColumn, - formulaOperation, - FormulaIndexPatternColumn, -} from './formula'; -import { staticValueOperation, StaticValueIndexPatternColumn } from './static_value'; -import { lastValueOperation, LastValueIndexPatternColumn } from './last_value'; +import { countOperation } from './count'; +import { mathOperation, formulaOperation } from './formula'; +import { staticValueOperation } from './static_value'; +import { lastValueOperation } from './last_value'; import { FrameDatasourceAPI, OperationMetadata, ParamEditorCustomProps } from '../../../types'; -import type { BaseIndexPatternColumn, ReferenceBasedIndexPatternColumn } from './column_types'; +import type { + BaseIndexPatternColumn, + GenericIndexPatternColumn, + ReferenceBasedIndexPatternColumn, +} from './column_types'; import { IndexPattern, IndexPatternField, IndexPatternLayer } from '../../types'; import { DateRange, LayerType } from '../../../../common'; import { ExpressionAstFunction } from '../../../../../../../src/plugins/expressions/public'; import { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; -import { RangeIndexPatternColumn, rangeOperation } from './ranges'; +import { rangeOperation } from './ranges'; import { IndexPatternDimensionEditorProps } from '../../dimension_panel'; -/** - * A union type of all available column types. If a column is of an unknown type somewhere - * withing the indexpattern data source it should be typed as `IndexPatternColumn` to make - * typeguards possible that consider all available column types. - */ -export type IndexPatternColumn = - | FiltersIndexPatternColumn - | RangeIndexPatternColumn - | TermsIndexPatternColumn - | DateHistogramIndexPatternColumn - | MinIndexPatternColumn - | MaxIndexPatternColumn - | AvgIndexPatternColumn - | CardinalityIndexPatternColumn - | SumIndexPatternColumn - | MedianIndexPatternColumn - | PercentileIndexPatternColumn - | CountIndexPatternColumn - | LastValueIndexPatternColumn - | CumulativeSumIndexPatternColumn - | OverallSumIndexPatternColumn - | OverallMinIndexPatternColumn - | OverallMaxIndexPatternColumn - | OverallAverageIndexPatternColumn - | CounterRateIndexPatternColumn - | DerivativeIndexPatternColumn - | MovingAverageIndexPatternColumn - | MathIndexPatternColumn - | FormulaIndexPatternColumn - | StaticValueIndexPatternColumn; - -export type FieldBasedIndexPatternColumn = Extract<IndexPatternColumn, { sourceField: string }>; - -export type { IncompleteColumn } from './column_types'; +export type { + IncompleteColumn, + BaseIndexPatternColumn, + GenericIndexPatternColumn, + FieldBasedIndexPatternColumn, +} from './column_types'; export type { TermsIndexPatternColumn } from './terms'; export type { FiltersIndexPatternColumn } from './filters'; @@ -125,7 +83,7 @@ export type { StaticValueIndexPatternColumn } from './static_value'; // List of all operation definitions registered to this data source. // If you want to implement a new operation, add the definition to this array and -// the column type to the `IndexPatternColumn` union type below. +// the column type to the `GenericIndexPatternColumn` union type below. const internalOperationDefinitions = [ filtersOperation, termsOperation, @@ -227,7 +185,7 @@ interface BaseOperationDefinitionProps<C extends BaseIndexPatternColumn> { getDefaultLabel: ( column: C, indexPattern: IndexPattern, - columns: Record<string, IndexPatternColumn> + columns: Record<string, GenericIndexPatternColumn> ) => string; /** * This function is called if another column in the same layer changed or got added/removed. @@ -337,7 +295,7 @@ interface OperationParam { defaultValue?: string | number; } -interface FieldlessOperationDefinition<C extends BaseIndexPatternColumn> { +interface FieldlessOperationDefinition<C extends BaseIndexPatternColumn, P = {}> { input: 'none'; /** @@ -350,9 +308,9 @@ interface FieldlessOperationDefinition<C extends BaseIndexPatternColumn> { */ buildColumn: ( arg: BaseBuildColumnArgs & { - previousColumn?: IndexPatternColumn; + previousColumn?: GenericIndexPatternColumn; }, - columnParams?: (IndexPatternColumn & C)['params'] + columnParams?: P ) => C; /** * Returns the meta data of the operation if applied. Undefined @@ -372,7 +330,7 @@ interface FieldlessOperationDefinition<C extends BaseIndexPatternColumn> { ) => ExpressionAstFunction; } -interface FieldBasedOperationDefinition<C extends BaseIndexPatternColumn> { +interface FieldBasedOperationDefinition<C extends BaseIndexPatternColumn, P = {}> { input: 'field'; /** @@ -391,9 +349,9 @@ interface FieldBasedOperationDefinition<C extends BaseIndexPatternColumn> { buildColumn: ( arg: BaseBuildColumnArgs & { field: IndexPatternField; - previousColumn?: IndexPatternColumn; + previousColumn?: GenericIndexPatternColumn; }, - columnParams?: (IndexPatternColumn & C)['params'] & { + columnParams?: P & { kql?: string; lucene?: string; shift?: string; @@ -498,7 +456,7 @@ interface FullReferenceOperationDefinition<C extends BaseIndexPatternColumn> { buildColumn: ( arg: BaseBuildColumnArgs & { referenceIds: string[]; - previousColumn?: IndexPatternColumn; + previousColumn?: GenericIndexPatternColumn; }, columnParams?: (ReferenceBasedIndexPatternColumn & C)['params'] & { kql?: string; @@ -528,7 +486,7 @@ interface ManagedReferenceOperationDefinition<C extends BaseIndexPatternColumn> */ buildColumn: ( arg: BaseBuildColumnArgs & { - previousColumn?: IndexPatternColumn | ReferenceBasedIndexPatternColumn; + previousColumn?: GenericIndexPatternColumn; }, columnParams?: (ReferenceBasedIndexPatternColumn & C)['params'], operationDefinitionMap?: Record<string, GenericOperationDefinition> @@ -559,9 +517,9 @@ interface ManagedReferenceOperationDefinition<C extends BaseIndexPatternColumn> ) => IndexPatternLayer; } -interface OperationDefinitionMap<C extends BaseIndexPatternColumn> { - field: FieldBasedOperationDefinition<C>; - none: FieldlessOperationDefinition<C>; +interface OperationDefinitionMap<C extends BaseIndexPatternColumn, P = {}> { + field: FieldBasedOperationDefinition<C, P>; + none: FieldlessOperationDefinition<C, P>; fullReference: FullReferenceOperationDefinition<C>; managedReference: ManagedReferenceOperationDefinition<C>; } @@ -573,24 +531,25 @@ interface OperationDefinitionMap<C extends BaseIndexPatternColumn> { */ export type OperationDefinition< C extends BaseIndexPatternColumn, - Input extends keyof OperationDefinitionMap<C> -> = BaseOperationDefinitionProps<C> & OperationDefinitionMap<C>[Input]; + Input extends keyof OperationDefinitionMap<C>, + P = {} +> = BaseOperationDefinitionProps<C> & OperationDefinitionMap<C, P>[Input]; /** * A union type of all available operation types. The operation type is a unique id of an operation. * Each column is assigned to exactly one operation type. */ -export type OperationType = typeof internalOperationDefinitions[number]['type']; +export type OperationType = string; /** * This is an operation definition of an unspecified column out of all possible * column types. */ export type GenericOperationDefinition = - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'none'> - | OperationDefinition<IndexPatternColumn, 'fullReference'> - | OperationDefinition<IndexPatternColumn, 'managedReference'>; + | OperationDefinition<BaseIndexPatternColumn, 'field'> + | OperationDefinition<BaseIndexPatternColumn, 'none'> + | OperationDefinition<BaseIndexPatternColumn, 'fullReference'> + | OperationDefinition<BaseIndexPatternColumn, 'managedReference'>; /** * List of all available operation definitions diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.test.tsx index 13e16fe1af4d0..26074b47e0f48 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/last_value.test.tsx @@ -15,6 +15,7 @@ import { createMockedIndexPattern } from '../../mocks'; import { LastValueIndexPatternColumn } from './last_value'; import { lastValueOperation } from './index'; import type { IndexPattern, IndexPatternLayer } from '../../types'; +import { TermsIndexPatternColumn } from './terms'; const uiSettingsMock = {} as IUiSettingsClient; @@ -56,7 +57,7 @@ describe('last_value', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, col2: { label: 'Last value of a', dataType: 'number', @@ -66,7 +67,7 @@ describe('last_value', () => { params: { sortField: 'datefield', }, - }, + } as LastValueIndexPatternColumn, }, }; }); @@ -467,7 +468,7 @@ describe('last_value', () => { params: { sortField: 'timestamp' }, scale: 'ratio', sourceField: 'bytes', - }, + } as LastValueIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -499,7 +500,7 @@ describe('last_value', () => { col1: { ...errorLayer.columns.col1, params: { - ...errorLayer.columns.col1.params, + ...(errorLayer.columns.col1 as LastValueIndexPatternColumn).params, sortField: 'notExisting', }, } as LastValueIndexPatternColumn, @@ -530,7 +531,7 @@ describe('last_value', () => { col1: { ...errorLayer.columns.col1, params: { - ...errorLayer.columns.col1.params, + ...(errorLayer.columns.col1 as LastValueIndexPatternColumn).params, sortField: 'bytes', }, } as LastValueIndexPatternColumn, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx index 61f2390820067..a8851c79be2ae 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.test.tsx @@ -17,6 +17,7 @@ import { PercentileIndexPatternColumn } from './percentile'; import { EuiFieldNumber } from '@elastic/eui'; import { act } from 'react-dom/test-utils'; import { EuiFormRow } from '@elastic/eui'; +import { TermsIndexPatternColumn } from './terms'; const uiSettingsMock = {} as IUiSettingsClient; @@ -58,7 +59,7 @@ describe('percentile', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, col2: { label: '23rd percentile of a', dataType: 'number', @@ -68,7 +69,7 @@ describe('percentile', () => { params: { percentile: 23, }, - }, + } as PercentileIndexPatternColumn, }, }; }); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.tsx index 9c9f7e8b66a1f..3aaeb9d944728 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/percentile.tsx @@ -17,6 +17,7 @@ import { getSafeName, isValidNumber, getFilter, + isColumnOfType, } from './helpers'; import { FieldBasedIndexPatternColumn } from './column_types'; import { adjustTimeScaleLabelSuffix } from '../time_scale_utils'; @@ -53,7 +54,11 @@ const DEFAULT_PERCENTILE_VALUE = 95; const supportedFieldTypes = ['number', 'histogram']; -export const percentileOperation: OperationDefinition<PercentileIndexPatternColumn, 'field'> = { +export const percentileOperation: OperationDefinition< + PercentileIndexPatternColumn, + 'field', + { percentile: number } +> = { type: 'percentile', displayName: i18n.translate('xpack.lens.indexPattern.percentile', { defaultMessage: 'Percentile', @@ -91,9 +96,8 @@ export const percentileOperation: OperationDefinition<PercentileIndexPatternColu ), buildColumn: ({ field, previousColumn, indexPattern }, columnParams) => { const existingPercentileParam = - previousColumn?.operationType === 'percentile' && - previousColumn.params && - 'percentile' in previousColumn.params && + previousColumn && + isColumnOfType<PercentileIndexPatternColumn>('percentile', previousColumn) && previousColumn.params.percentile; const newPercentileParam = columnParams?.percentile ?? (existingPercentileParam || DEFAULT_PERCENTILE_VALUE); @@ -174,7 +178,7 @@ export const percentileOperation: OperationDefinition<PercentileIndexPatternColu ...currentColumn.params, percentile: inputValueAsNumber, }, - }, + } as PercentileIndexPatternColumn, }, }); }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.test.tsx index 2877094ac81f8..9b1fde8561363 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.test.tsx @@ -154,7 +154,7 @@ describe('ranges', () => { ranges: [{ from: 0, to: DEFAULT_INTERVAL, label: '' }], maxBars: 'auto', }, - }, + } as RangeIndexPatternColumn, col2: { label: 'Count', dataType: 'number', @@ -385,10 +385,10 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, maxBars: MAX_HISTOGRAM_VALUE, }, - }, + } as RangeIndexPatternColumn, }, }); }); @@ -424,7 +424,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, maxBars: GRANULARITY_DEFAULT_VALUE - GRANULARITY_STEP, }, }, @@ -448,7 +448,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, maxBars: GRANULARITY_DEFAULT_VALUE, }, }, @@ -511,7 +511,10 @@ describe('ranges', () => { currentColumn={ { ...layer.columns.col1, - params: { ...layer.columns.col1.params, parentFormat: undefined }, + params: { + ...(layer.columns.col1 as RangeIndexPatternColumn).params, + parentFormat: undefined, + }, } as RangeIndexPatternColumn } /> @@ -565,7 +568,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, ranges: [ { from: 0, to: DEFAULT_INTERVAL, label: '' }, { from: 50, to: Infinity, label: '' }, @@ -620,7 +623,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, ranges: [ { from: 0, to: DEFAULT_INTERVAL, label: '' }, { from: DEFAULT_INTERVAL, to: Infinity, label: 'customlabel' }, @@ -670,7 +673,7 @@ describe('ranges', () => { col1: { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as RangeIndexPatternColumn).params, ranges: [{ from: 0, to: 50, label: '' }], }, }, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx index 6e397a926c7a0..63ec5293ddd79 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/ranges/ranges.tsx @@ -244,7 +244,7 @@ export const rangeOperation: OperationDefinition<RangeIndexPatternColumn, 'field format: currentColumn.params.format, parentFormat, }, - }, + } as RangeIndexPatternColumn, }, }); }; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.test.tsx index 816324f9f8fb5..3e56565b2e13e 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.test.tsx @@ -16,6 +16,7 @@ import { IndexPattern, IndexPatternLayer } from '../../types'; import { StaticValueIndexPatternColumn } from './static_value'; import { EuiFieldNumber } from '@elastic/eui'; import { act } from 'react-dom/test-utils'; +import { TermsIndexPatternColumn } from './terms'; jest.mock('lodash', () => { const original = jest.requireActual('lodash'); @@ -65,7 +66,7 @@ describe('static_value', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, col2: { label: 'Static value: 23', dataType: 'number', @@ -75,7 +76,7 @@ describe('static_value', () => { params: { value: '23', }, - }, + } as StaticValueIndexPatternColumn, }, }; }); @@ -256,7 +257,7 @@ describe('static_value', () => { scale: 'ratio', params: { value: '23' }, references: [], - }, + } as StaticValueIndexPatternColumn, }) ).toEqual({ label: 'Static value: 23', @@ -303,7 +304,7 @@ describe('static_value', () => { scale: 'ratio', params: { value: '23' }, references: [], - }, + } as StaticValueIndexPatternColumn, }, { value: '53' } ) @@ -351,7 +352,7 @@ describe('static_value', () => { params: { value: '0', }, - }, + } as StaticValueIndexPatternColumn, }, } as IndexPatternLayer; const instance = shallow( diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx index b66092e8a48c3..45a35d18873fc 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/static_value.tsx @@ -8,7 +8,7 @@ import React, { useCallback } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiFieldNumber, EuiFormLabel, EuiSpacer } from '@elastic/eui'; import { OperationDefinition } from './index'; -import { ReferenceBasedIndexPatternColumn } from './column_types'; +import { ReferenceBasedIndexPatternColumn, GenericIndexPatternColumn } from './column_types'; import type { IndexPattern } from '../../types'; import { useDebouncedValue } from '../../../shared_components'; import { getFormatFromPreviousColumn, isValidNumber } from './helpers'; @@ -46,6 +46,12 @@ export interface StaticValueIndexPatternColumn extends ReferenceBasedIndexPatter }; } +function isStaticValueColumnLike( + col: GenericIndexPatternColumn +): col is StaticValueIndexPatternColumn { + return Boolean('params' in col && col.params && 'value' in col.params); +} + export const staticValueOperation: OperationDefinition< StaticValueIndexPatternColumn, 'managedReference' @@ -102,8 +108,8 @@ export const staticValueOperation: OperationDefinition< }, buildColumn({ previousColumn, layer, indexPattern }, columnParams, operationDefinitionMap) { const existingStaticValue = - previousColumn?.params && - 'value' in previousColumn.params && + previousColumn && + isStaticValueColumnLike(previousColumn) && isValidNumber(previousColumn.params.value) ? previousColumn.params.value : undefined; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx index 180d5ed5e49b7..9b19ab43473d2 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/definitions/terms/terms.test.tsx @@ -20,9 +20,10 @@ import { dataPluginMock } from '../../../../../../../../src/plugins/data/public/ import { createMockedIndexPattern } from '../../../mocks'; import { ValuesInput } from './values_input'; import type { TermsIndexPatternColumn } from '.'; -import { termsOperation } from '../index'; +import { termsOperation, LastValueIndexPatternColumn } from '../index'; import { IndexPattern, IndexPatternLayer } from '../../../types'; import { FrameDatasourceAPI } from '../../../../types'; +import { DateHistogramIndexPatternColumn } from '../date_histogram'; const uiSettingsMock = {} as IUiSettingsClient; @@ -61,7 +62,7 @@ describe('terms', () => { orderDirection: 'asc', }, sourceField: 'source', - }, + } as TermsIndexPatternColumn, col2: { label: 'Count', dataType: 'number', @@ -357,7 +358,7 @@ describe('terms', () => { params: { sortField: 'datefield', }, - }, + } as LastValueIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -472,7 +473,7 @@ describe('terms', () => { params: { sortField: 'time', }, - }, + } as LastValueIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -551,7 +552,7 @@ describe('terms', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -583,7 +584,7 @@ describe('terms', () => { orderDirection: 'asc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, col1: { label: 'Value of timestamp', dataType: 'date', @@ -595,7 +596,7 @@ describe('terms', () => { interval: 'w', }, sourceField: 'timestamp', - }, + } as DateHistogramIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -627,7 +628,7 @@ describe('terms', () => { orderDirection: 'desc', }, sourceField: 'category', - }, + } as TermsIndexPatternColumn, }, columnOrder: [], indexPatternId: '', @@ -755,7 +756,7 @@ describe('terms', () => { { ...layer.columns.col1, params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as TermsIndexPatternColumn).params, otherBucket: true, }, } as TermsIndexPatternColumn @@ -783,7 +784,7 @@ describe('terms', () => { ...layer.columns.col1, sourceField: 'bytes', params: { - ...layer.columns.col1.params, + ...(layer.columns.col1 as TermsIndexPatternColumn).params, otherBucket: true, }, } as TermsIndexPatternColumn @@ -1018,7 +1019,7 @@ describe('terms', () => { }, scale: 'ordinal', sourceField: 'bytes', - }, + } as TermsIndexPatternColumn, }, columnOrder: [], indexPatternId: '', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/index.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/index.ts index 86add22b2b8ce..b9d675716c788 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/index.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/index.ts @@ -10,7 +10,9 @@ export * from './layer_helpers'; export * from './time_scale_utils'; export type { OperationType, - IndexPatternColumn, + BaseIndexPatternColumn, + GenericOperationDefinition, + GenericIndexPatternColumn, FieldBasedIndexPatternColumn, IncompleteColumn, RequiredReference, diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.test.ts index 3dc0677f3b9b6..66ed0e83c97e4 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.test.ts @@ -21,13 +21,21 @@ import { operationDefinitionMap, OperationType } from '../operations'; import { TermsIndexPatternColumn } from './definitions/terms'; import { DateHistogramIndexPatternColumn } from './definitions/date_histogram'; import { AvgIndexPatternColumn } from './definitions/metrics'; -import type { IndexPattern, IndexPatternLayer } from '../types'; +import type { IndexPattern, IndexPatternLayer, IndexPatternPrivateState } from '../types'; import { documentField } from '../document_field'; import { getFieldByNameFactory } from '../pure_helpers'; import { generateId } from '../../id_generator'; import { createMockedFullReference, createMockedManagedReference } from './mocks'; -import { IndexPatternColumn, OperationDefinition } from './definitions'; +import { + FiltersIndexPatternColumn, + FormulaIndexPatternColumn, + GenericIndexPatternColumn, + MathIndexPatternColumn, + MovingAverageIndexPatternColumn, + OperationDefinition, +} from './definitions'; import { TinymathAST } from 'packages/kbn-tinymath'; +import { CoreStart } from 'kibana/public'; jest.mock('../operations'); jest.mock('../../id_generator'); @@ -292,7 +300,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }; expect( @@ -323,7 +331,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, col3: { label: 'Reference', dataType: 'number', @@ -362,7 +370,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, col3: { label: 'Count of records', dataType: 'document', @@ -458,7 +466,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col2', @@ -488,7 +496,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col2', @@ -520,7 +528,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, }, }, columnId: 'col2', @@ -598,7 +606,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col2', @@ -680,8 +688,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error invalid type op: 'testReference', + visualizationGroups: [], }); expect(result.columnOrder).toEqual(['id1', 'col1']); expect(result.columns).toEqual( @@ -700,8 +708,8 @@ describe('state_helpers', () => { col1: { dataType: 'number', isBucketed: false, + label: '', - // @ts-expect-error only in test operationType: 'testReference', references: ['ref1'], }, @@ -745,7 +753,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col2', @@ -848,7 +856,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col1', @@ -878,7 +886,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col1', @@ -914,7 +922,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, columnId: 'col1', @@ -948,7 +956,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, incompleteColumns: { col1: { operationType: 'terms' }, @@ -986,7 +994,7 @@ describe('state_helpers', () => { params: { filters: [], }, - }, + } as FiltersIndexPatternColumn, }, }, indexPattern, @@ -1022,7 +1030,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, indexPattern, @@ -1058,7 +1066,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, indexPattern, @@ -1093,7 +1101,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }, indexPattern, @@ -1128,7 +1136,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, }, }, indexPattern, @@ -1160,7 +1168,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 5, }, - }, + } as TermsIndexPatternColumn, }, }, indexPattern, @@ -1215,7 +1223,7 @@ describe('state_helpers', () => { scale: 'ratio', params: { isFormulaBroken: false, formula: 'average(bytes)' }, references: [], - }, + } as FormulaIndexPatternColumn, }, }, indexPattern, @@ -1244,7 +1252,7 @@ describe('state_helpers', () => { scale: 'ratio', params: { isFormulaBroken: false, formula: 'average(bytes)' }, references: [], - }, + } as FormulaIndexPatternColumn, }, }, indexPattern, @@ -1490,8 +1498,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error op: 'testReference', + visualizationGroups: [], }); expect(result.columnOrder).toEqual(['id1', 'col1']); @@ -1531,8 +1539,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error test only op: 'testReference', + visualizationGroups: [], }); expect(result.columnOrder).toEqual(['col1', 'id1']); @@ -1572,8 +1580,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error op: 'testReference', + visualizationGroups: [], }); expect(result.incompleteColumns).toEqual({ @@ -1612,8 +1620,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'col1', - // @ts-expect-error op: 'testReference', + visualizationGroups: [], }); expect(result.incompleteColumns).toEqual({}); @@ -1631,8 +1639,8 @@ describe('state_helpers', () => { operationDefinitionMap.secondTest = { input: 'fullReference', displayName: 'Reference test 2', - // @ts-expect-error this type is not statically available type: 'secondTest', + selectionStyle: 'full', requiredReferences: [ { // Any numeric metric that isn't also a reference @@ -1641,7 +1649,6 @@ describe('state_helpers', () => { meta.dataType === 'number' && !meta.isBucketed, }, ], - // @ts-expect-error don't want to define valid arguments buildColumn: jest.fn((args) => { return { label: 'Test reference', @@ -1684,7 +1691,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: [], }, @@ -1693,7 +1699,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['ref1', 'invalid'], }, @@ -1704,8 +1709,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'output', - // @ts-expect-error not statically available op: 'secondTest', + visualizationGroups: [], }) ).toEqual( expect.objectContaining({ @@ -1738,7 +1743,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: [], }, @@ -1747,7 +1751,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['ref1', 'invalid'], }, @@ -1757,8 +1760,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'output', - // @ts-expect-error not statically available op: 'secondTest', + visualizationGroups: [], }); expect(layer.columns.output).toEqual( expect.objectContaining({ references: ['ref1', 'invalid'] }) @@ -1787,7 +1790,7 @@ describe('state_helpers', () => { isFormulaBroken: false, }, references: ['formulaX3'], - }, + } as FormulaIndexPatternColumn, formulaX0: { customLabel: true, dataType: 'number' as const, @@ -1802,7 +1805,7 @@ describe('state_helpers', () => { label: 'formulaX1', references: ['formulaX0'], params: { tinymathAst: 'formulaX0' }, - }, + } as MathIndexPatternColumn, formulaX2: { customLabel: true, dataType: 'number' as const, @@ -1811,13 +1814,13 @@ describe('state_helpers', () => { operationType: 'moving_average' as const, params: { window: 5 }, references: ['formulaX1'], - }, + } as MovingAverageIndexPatternColumn, formulaX3: { ...math, label: 'formulaX3', references: ['formulaX2'], params: { tinymathAst: 'formulaX2' }, - }, + } as MathIndexPatternColumn, }, }; @@ -1826,8 +1829,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'source', - // @ts-expect-error not statically available op: 'secondTest', + visualizationGroups: [], }) ).toEqual( expect.objectContaining({ @@ -1854,12 +1857,11 @@ describe('state_helpers', () => { operationType: 'date_histogram' as const, sourceField: 'timestamp', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, output: { label: 'Test reference', dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['fieldReused'], }, @@ -1870,8 +1872,8 @@ describe('state_helpers', () => { layer, indexPattern, columnId: 'output', - // @ts-expect-error not statically available op: 'secondTest', + visualizationGroups: [], }) ).toEqual( expect.objectContaining({ @@ -1922,7 +1924,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -1967,7 +1968,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], filter: { language: 'kuery', query: 'bytes > 4000' }, @@ -2113,7 +2113,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -2281,7 +2280,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -2310,7 +2308,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -2356,7 +2353,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col1'], }, @@ -2365,7 +2361,6 @@ describe('state_helpers', () => { dataType: 'number', isBucketed: false, - // @ts-expect-error not a valid type operationType: 'testReference', references: ['col2'], }, @@ -2469,7 +2464,7 @@ describe('state_helpers', () => { params: { interval: 'h', }, - }, + } as DateHistogramIndexPatternColumn, }, }) ).toEqual(['col1']); @@ -2496,7 +2491,7 @@ describe('state_helpers', () => { }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, col2: { label: 'Average of bytes', dataType: 'number', @@ -2517,7 +2512,7 @@ describe('state_helpers', () => { params: { interval: '1d', }, - }, + } as DateHistogramIndexPatternColumn, }, }) ).toEqual(['col1', 'col3', 'col2']); @@ -2548,7 +2543,7 @@ describe('state_helpers', () => { params: { interval: 'auto', }, - }, + } as DateHistogramIndexPatternColumn, formula: { label: 'Formula', dataType: 'number', @@ -2560,7 +2555,7 @@ describe('state_helpers', () => { isFormulaBroken: false, }, references: ['math'], - }, + } as FormulaIndexPatternColumn, countX0: { label: 'countX0', dataType: 'number', @@ -2580,8 +2575,7 @@ describe('state_helpers', () => { tinymathAst: { type: 'function', name: 'add', - // @ts-expect-error String args are not valid tinymath, but signals something unique to Lens - args: ['countX0', 'count'], + args: ['countX0', 'count'] as unknown as TinymathAST[], location: { min: 0, max: 17, @@ -2591,7 +2585,7 @@ describe('state_helpers', () => { }, references: ['countX0', 'count'], customLabel: true, - }, + } as MathIndexPatternColumn, }, }) ).toEqual(['date', 'count', 'formula', 'countX0', 'math']); @@ -2679,7 +2673,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 3, }, - }, + } as TermsIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2713,7 +2707,7 @@ describe('state_helpers', () => { params: { window: 7, }, - }, + } as MovingAverageIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2742,7 +2736,7 @@ describe('state_helpers', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2765,10 +2759,10 @@ describe('state_helpers', () => { operationDefinitionMap.date_histogram.transfer = ((oldColumn) => ({ ...oldColumn, params: { - ...oldColumn.params, + ...(oldColumn as DateHistogramIndexPatternColumn).params, interval: 'w', }, - })) as OperationDefinition<IndexPatternColumn, 'field'>['transfer']; + })) as OperationDefinition<GenericIndexPatternColumn, 'field'>['transfer']; const layer: IndexPatternLayer = { columnOrder: ['col1', 'col2'], columns: { @@ -2781,7 +2775,7 @@ describe('state_helpers', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, }, indexPatternId: 'original', }; @@ -2813,7 +2807,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 3, }, - }, + } as TermsIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2846,7 +2840,7 @@ describe('state_helpers', () => { orderDirection: 'asc', size: 3, }, - }, + } as TermsIndexPatternColumn, col2: { dataType: 'number', isBucketed: false, @@ -2895,15 +2889,19 @@ describe('state_helpers', () => { indexPatternId: '1', columnOrder: [], columns: { - col1: - // @ts-expect-error not statically analyzed - { operationType: 'testReference', references: [] }, + col1: { + operationType: 'testReference', + references: [], + label: '', + dataType: 'number', + isBucketed: false, + }, }, }, indexPattern, - {}, + {} as IndexPatternPrivateState, '1', - {} + {} as CoreStart ); expect(mock).toHaveBeenCalled(); expect(errors).toHaveLength(1); @@ -2919,20 +2917,26 @@ describe('state_helpers', () => { indexPatternId: '1', columnOrder: [], columns: { - col1: - // @ts-expect-error not statically analyzed - { operationType: 'managedReference', references: ['col2'] }, + col1: { + operationType: 'managedReference', + references: ['col2'], + label: '', + dataType: 'number', + isBucketed: false, + }, col2: { - // @ts-expect-error not statically analyzed operationType: 'testReference', references: [], + label: '', + dataType: 'number', + isBucketed: false, }, }, }, indexPattern, - {}, + {} as IndexPatternPrivateState, '1', - {} + {} as CoreStart ); expect(notCalledMock).not.toHaveBeenCalled(); expect(mock).toHaveBeenCalledTimes(1); @@ -2953,19 +2957,22 @@ describe('state_helpers', () => { indexPatternId: '1', columnOrder: [], columns: { - col1: - // @ts-expect-error not statically analyzed - { operationType: 'testReference', references: [] }, + col1: { + operationType: 'testReference', + references: [], + label: '', + dataType: 'number', + isBucketed: false, + }, }, incompleteColumns: { - // @ts-expect-error not statically analyzed col1: { operationType: 'testIncompleteReference' }, }, }, indexPattern, - {}, + {} as IndexPatternPrivateState, '1', - {} + {} as CoreStart ); expect(savedRef).toHaveBeenCalled(); expect(incompleteRef).not.toHaveBeenCalled(); @@ -2982,22 +2989,32 @@ describe('state_helpers', () => { indexPatternId: '1', columnOrder: [], columns: { - col1: - // @ts-expect-error not statically analyzed - { operationType: 'testReference', references: [] }, + col1: { + operationType: 'testReference', + references: [], + label: '', + dataType: 'number', + isBucketed: false, + }, }, }, indexPattern, - {}, + {} as IndexPatternPrivateState, '1', - {} + {} as CoreStart ); expect(mock).toHaveBeenCalledWith( { indexPatternId: '1', columnOrder: [], columns: { - col1: { operationType: 'testReference', references: [] }, + col1: { + operationType: 'testReference', + references: [], + dataType: 'number', + isBucketed: false, + label: '', + }, }, }, 'col1', @@ -3021,7 +3038,7 @@ describe('state_helpers', () => { params: { interval: 'd', }, - }, + } as DateHistogramIndexPatternColumn, }, indexPatternId: 'original', }; @@ -3047,7 +3064,7 @@ describe('state_helpers', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, indexPatternId: 'original', }; @@ -3073,7 +3090,7 @@ describe('state_helpers', () => { orderBy: { type: 'alphabetical' }, orderDirection: 'asc', }, - }, + } as TermsIndexPatternColumn, }, indexPatternId: 'original', }; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.ts index 67546ca6009cf..289161c9d3e37 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/layer_helpers.ts @@ -18,10 +18,10 @@ import { operationDefinitionMap, operationDefinitions, OperationType, - IndexPatternColumn, RequiredReference, OperationDefinition, GenericOperationDefinition, + TermsIndexPatternColumn, } from './definitions'; import type { IndexPattern, @@ -31,9 +31,14 @@ import type { } from '../types'; import { getSortScoreByPriority } from './operations'; import { generateId } from '../../id_generator'; -import { ReferenceBasedIndexPatternColumn } from './definitions/column_types'; +import { + GenericIndexPatternColumn, + ReferenceBasedIndexPatternColumn, + BaseIndexPatternColumn, +} from './definitions/column_types'; import { FormulaIndexPatternColumn, regenerateLayerFromAst } from './definitions/formula'; import type { TimeScaleUnit } from '../../../common/expressions'; +import { isColumnOfType } from './definitions/helpers'; interface ColumnAdvancedParams { filter?: Query | undefined; @@ -57,7 +62,7 @@ interface ColumnChange { interface ColumnCopy { layer: IndexPatternLayer; targetId: string; - sourceColumn: IndexPatternColumn; + sourceColumn: GenericIndexPatternColumn; sourceColumnId: string; indexPattern: IndexPattern; shouldDeleteSource?: boolean; @@ -92,7 +97,7 @@ export function copyColumn({ function copyReferencesRecursively( layer: IndexPatternLayer, - sourceColumn: IndexPatternColumn, + sourceColumn: GenericIndexPatternColumn, sourceId: string, targetId: string, indexPattern: IndexPattern @@ -511,7 +516,7 @@ export function replaceColumn({ if (operationDefinition.input === 'managedReference') { const newColumn = operationDefinition.buildColumn( { ...baseOptions, layer: tempLayer }, - previousColumn.params, + 'params' in previousColumn ? previousColumn.params : undefined, operationDefinitionMap ) as FormulaIndexPatternColumn; @@ -665,11 +670,11 @@ export function replaceColumn({ function removeOrphanedColumns( previousDefinition: - | OperationDefinition<IndexPatternColumn, 'field'> - | OperationDefinition<IndexPatternColumn, 'none'> - | OperationDefinition<IndexPatternColumn, 'fullReference'> - | OperationDefinition<IndexPatternColumn, 'managedReference'>, - previousColumn: IndexPatternColumn, + | OperationDefinition<GenericIndexPatternColumn, 'field'> + | OperationDefinition<GenericIndexPatternColumn, 'none'> + | OperationDefinition<GenericIndexPatternColumn, 'fullReference'> + | OperationDefinition<GenericIndexPatternColumn, 'managedReference'>, + previousColumn: GenericIndexPatternColumn, tempLayer: IndexPatternLayer, indexPattern: IndexPattern ) { @@ -765,7 +770,7 @@ function applyReferenceTransition({ }: { layer: IndexPatternLayer; columnId: string; - previousColumn: IndexPatternColumn; + previousColumn: GenericIndexPatternColumn; op: OperationType; indexPattern: IndexPattern; visualizationGroups: VisualizationDimensionGroupConfig[]; @@ -962,7 +967,10 @@ function applyReferenceTransition({ ); } -function copyCustomLabel(newColumn: IndexPatternColumn, previousOptions: IndexPatternColumn) { +function copyCustomLabel( + newColumn: GenericIndexPatternColumn, + previousOptions: GenericIndexPatternColumn +) { const adjustedColumn = { ...newColumn }; const operationChanged = newColumn.operationType !== previousOptions.operationType; const fieldChanged = @@ -978,7 +986,7 @@ function copyCustomLabel(newColumn: IndexPatternColumn, previousOptions: IndexPa function addBucket( layer: IndexPatternLayer, - column: IndexPatternColumn, + column: BaseIndexPatternColumn, addedColumnId: string, visualizationGroups: VisualizationDimensionGroupConfig[], targetGroup?: string @@ -1071,7 +1079,7 @@ export function reorderByGroups( function addMetric( layer: IndexPatternLayer, - column: IndexPatternColumn, + column: BaseIndexPatternColumn, addedColumnId: string ): IndexPatternLayer { const tempLayer = { @@ -1096,7 +1104,7 @@ export function getMetricOperationTypes(field: IndexPatternField) { }); } -export function updateColumnParam<C extends IndexPatternColumn>({ +export function updateColumnParam<C extends GenericIndexPatternColumn>({ layer, columnId, paramName, @@ -1107,18 +1115,19 @@ export function updateColumnParam<C extends IndexPatternColumn>({ paramName: string; value: unknown; }): IndexPatternLayer { + const oldColumn = layer.columns[columnId]; return { ...layer, columns: { ...layer.columns, [columnId]: { - ...layer.columns[columnId], + ...oldColumn, params: { - ...layer.columns[columnId].params, + ...('params' in oldColumn ? oldColumn.params : {}), [paramName]: value, }, }, - } as Record<string, IndexPatternColumn>, + } as Record<string, GenericIndexPatternColumn>, }; } @@ -1228,7 +1237,7 @@ export function getExistingColumnGroups(layer: IndexPatternLayer): [string[], st * Returns true if the given column can be applied to the given index pattern */ export function isColumnTransferable( - column: IndexPatternColumn, + column: GenericIndexPatternColumn, newIndexPattern: IndexPattern, layer: IndexPatternLayer ): boolean { @@ -1373,9 +1382,7 @@ export function hasTermsWithManyBuckets(layer: IndexPatternLayer): boolean { return layer.columnOrder.some((columnId) => { const column = layer.columns[columnId]; if (column) { - return ( - column.isBucketed && column.params && 'size' in column.params && column.params.size > 5 - ); + return isColumnOfType<TermsIndexPatternColumn>('terms', column) && column.params.size > 5; } }); } @@ -1447,7 +1454,7 @@ function maybeValidateOperations({ column, validation, }: { - column: IndexPatternColumn; + column: GenericIndexPatternColumn; validation: RequiredReference; }) { if (!validation.specificOperations) { @@ -1463,7 +1470,7 @@ export function isColumnValidAsReference({ column, validation, }: { - column: IndexPatternColumn; + column: GenericIndexPatternColumn; validation: RequiredReference; }): boolean { if (!column) return false; @@ -1481,14 +1488,14 @@ export function isColumnValidAsReference({ export function getManagedColumnsFrom( columnId: string, - columns: Record<string, IndexPatternColumn> -): Array<[string, IndexPatternColumn]> { + columns: Record<string, GenericIndexPatternColumn> +): Array<[string, GenericIndexPatternColumn]> { const allNodes: Record<string, string[]> = {}; Object.entries(columns).forEach(([id, col]) => { allNodes[id] = 'references' in col ? [...col.references] : []; }); const queue: string[] = allNodes[columnId]; - const store: Array<[string, IndexPatternColumn]> = []; + const store: Array<[string, GenericIndexPatternColumn]> = []; while (queue.length > 0) { const nextId = queue.shift()!; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.test.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.test.ts index dbdfd5c564125..30f8c85a81b90 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.test.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.test.ts @@ -7,7 +7,7 @@ import type { IndexPatternLayer } from '../types'; import type { TimeScaleUnit } from '../../../common/expressions'; -import type { IndexPatternColumn } from './definitions'; +import type { DateHistogramIndexPatternColumn, GenericIndexPatternColumn } from './definitions'; import { adjustTimeScaleLabelSuffix, adjustTimeScaleOnOtherColumnChange } from './time_scale_utils'; export const DEFAULT_TIME_SCALE = 's' as TimeScaleUnit; @@ -97,7 +97,7 @@ describe('time scale utils', () => { }); describe('adjustTimeScaleOnOtherColumnChange', () => { - const baseColumn: IndexPatternColumn = { + const baseColumn: GenericIndexPatternColumn = { operationType: 'count', sourceField: 'Records', label: 'Count of records per second', @@ -135,7 +135,7 @@ describe('time scale utils', () => { label: '', sourceField: 'date', params: { interval: 'auto' }, - }, + } as DateHistogramIndexPatternColumn, }, }, 'col1', diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.ts b/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.ts index a6c056933f022..a8e71c0fd86e5 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/operations/time_scale_utils.ts @@ -8,7 +8,7 @@ import { unitSuffixesLong } from '../../../common/suffix_formatter'; import type { TimeScaleUnit } from '../../../common/expressions'; import type { IndexPatternLayer } from '../types'; -import type { IndexPatternColumn } from './definitions'; +import type { GenericIndexPatternColumn } from './definitions'; export const DEFAULT_TIME_SCALE = 's' as TimeScaleUnit; @@ -44,7 +44,7 @@ export function adjustTimeScaleLabelSuffix( return `${cleanedLabel}${getSuffix(newTimeScale, newShift)}`; } -export function adjustTimeScaleOnOtherColumnChange<T extends IndexPatternColumn>( +export function adjustTimeScaleOnOtherColumnChange<T extends GenericIndexPatternColumn>( layer: IndexPatternLayer, thisColumnId: string, changedColumnId: string diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/time_shift_utils.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/time_shift_utils.tsx index 1258100375a39..d7f238171128d 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/time_shift_utils.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/time_shift_utils.tsx @@ -11,7 +11,7 @@ import { uniq } from 'lodash'; import { FormattedMessage } from '@kbn/i18n/react'; import { IndexPattern, - IndexPatternColumn, + GenericIndexPatternColumn, IndexPatternLayer, IndexPatternPrivateState, } from './types'; @@ -229,7 +229,7 @@ export function getStateTimeShiftWarningMessages( export function getColumnTimeShiftWarnings( dateHistogramInterval: ReturnType<typeof getDateHistogramInterval>, - column: IndexPatternColumn + column: GenericIndexPatternColumn ) { const { isValueTooSmall, isValueNotMultiple } = getLayerTimeShiftChecks(dateHistogramInterval); diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts b/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts index 15b9b47d7a565..432c932b85da8 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/to_expression.ts @@ -20,12 +20,14 @@ import { ExpressionAstExpressionBuilder, ExpressionAstFunction, } from '../../../../../src/plugins/expressions/public'; -import { IndexPatternColumn } from './indexpattern'; +import { GenericIndexPatternColumn } from './indexpattern'; import { operationDefinitionMap } from './operations'; import { IndexPattern, IndexPatternPrivateState, IndexPatternLayer } from './types'; -import { dateHistogramOperation } from './operations/definitions'; +import { DateHistogramIndexPatternColumn, RangeIndexPatternColumn } from './operations/definitions'; +import { FormattedIndexPatternColumn } from './operations/definitions/column_types'; +import { isColumnFormatted, isColumnOfType } from './operations/definitions/helpers'; -type OriginalColumn = { id: string } & IndexPatternColumn; +type OriginalColumn = { id: string } & GenericIndexPatternColumn; function getExpressionForLayer( layer: IndexPatternLayer, @@ -147,50 +149,29 @@ function getExpressionForLayer( }, }; }, {} as Record<string, OriginalColumn>); - - type FormattedColumn = Required< - Extract< - IndexPatternColumn, - | { - params?: { - format: unknown; - }; - } - // when formatters are nested there's a slightly different format - | { - params: { - format?: unknown; - parentFormat?: unknown; - }; - } - > - >; const columnsWithFormatters = columnEntries.filter( ([, col]) => - col.params && - (('format' in col.params && col.params.format) || - ('parentFormat' in col.params && col.params.parentFormat)) - ) as Array<[string, FormattedColumn]>; - const formatterOverrides: ExpressionAstFunction[] = columnsWithFormatters.map( - ([id, col]: [string, FormattedColumn]) => { - // TODO: improve the type handling here - const parentFormat = 'parentFormat' in col.params ? col.params!.parentFormat! : undefined; - const format = (col as FormattedColumn).params!.format; + (isColumnOfType<RangeIndexPatternColumn>('range', col) && col.params?.parentFormat) || + (isColumnFormatted(col) && col.params?.format) + ) as Array<[string, RangeIndexPatternColumn | FormattedIndexPatternColumn]>; + const formatterOverrides: ExpressionAstFunction[] = columnsWithFormatters.map(([id, col]) => { + // TODO: improve the type handling here + const parentFormat = 'parentFormat' in col.params! ? col.params!.parentFormat! : undefined; + const format = col.params!.format; - const base: ExpressionAstFunction = { - type: 'function', - function: 'lens_format_column', - arguments: { - format: format ? [format.id] : [''], - columnId: [id], - decimals: typeof format?.params?.decimals === 'number' ? [format.params.decimals] : [], - parentFormat: parentFormat ? [JSON.stringify(parentFormat)] : [], - }, - }; + const base: ExpressionAstFunction = { + type: 'function', + function: 'lens_format_column', + arguments: { + format: format ? [format.id] : [''], + columnId: [id], + decimals: typeof format?.params?.decimals === 'number' ? [format.params.decimals] : [], + parentFormat: parentFormat ? [JSON.stringify(parentFormat)] : [], + }, + }; - return base; - } - ); + return base; + }); const firstDateHistogramColumn = columnEntries.find( ([, col]) => col.operationType === 'date_histogram' @@ -254,7 +235,9 @@ function getExpressionForLayer( const allDateHistogramFields = Object.values(columns) .map((column) => - column.operationType === dateHistogramOperation.type ? column.sourceField : null + isColumnOfType<DateHistogramIndexPatternColumn>('date_histogram', column) + ? column.sourceField + : null ) .filter((field): field is string => Boolean(field)); @@ -291,7 +274,7 @@ function getExpressionForLayer( } // Topologically sorts references so that we can execute them in sequence -function sortedReferences(columns: Array<readonly [string, IndexPatternColumn]>) { +function sortedReferences(columns: Array<readonly [string, GenericIndexPatternColumn]>) { const allNodes: Record<string, string[]> = {}; columns.forEach(([id, col]) => { allNodes[id] = 'references' in col ? col.references : []; diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/types.ts b/x-pack/plugins/lens/public/indexpattern_datasource/types.ts index 515693b4dd5c8..a0d43c5523c5b 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/types.ts +++ b/x-pack/plugins/lens/public/indexpattern_datasource/types.ts @@ -5,17 +5,17 @@ * 2.0. */ -import type { IndexPatternColumn, IncompleteColumn } from './operations'; +import type { IncompleteColumn, GenericIndexPatternColumn } from './operations'; import type { IndexPatternAggRestrictions } from '../../../../../src/plugins/data/public'; import type { FieldSpec } from '../../../../../src/plugins/data/common'; import type { DragDropIdentifier } from '../drag_drop/providers'; import type { FieldFormatParams } from '../../../../../src/plugins/field_formats/common'; export type { - FieldBasedIndexPatternColumn, - IndexPatternColumn, + GenericIndexPatternColumn, OperationType, IncompleteColumn, + FieldBasedIndexPatternColumn, FiltersIndexPatternColumn, RangeIndexPatternColumn, TermsIndexPatternColumn, @@ -67,7 +67,7 @@ export type IndexPatternField = FieldSpec & { export interface IndexPatternLayer { columnOrder: string[]; - columns: Record<string, IndexPatternColumn>; + columns: Record<string, GenericIndexPatternColumn>; // Each layer is tied to the index pattern that created it indexPatternId: string; // Partial columns represent the temporary invalid states diff --git a/x-pack/plugins/lens/public/indexpattern_datasource/utils.tsx b/x-pack/plugins/lens/public/indexpattern_datasource/utils.tsx index 6d3f75a403dd7..f1f8f2cfe3e62 100644 --- a/x-pack/plugins/lens/public/indexpattern_datasource/utils.tsx +++ b/x-pack/plugins/lens/public/indexpattern_datasource/utils.tsx @@ -24,7 +24,7 @@ import type { ReferenceBasedIndexPatternColumn, } from './operations/definitions/column_types'; -import { operationDefinitionMap, IndexPatternColumn } from './operations'; +import { operationDefinitionMap, GenericIndexPatternColumn } from './operations'; import { getInvalidFieldMessage } from './operations/definitions/helpers'; import { isQueryValid } from './operations/definitions/filters'; @@ -65,7 +65,7 @@ export function isColumnInvalid( columnId: string, indexPattern: IndexPattern ) { - const column: IndexPatternColumn | undefined = layer.columns[columnId]; + const column: GenericIndexPatternColumn | undefined = layer.columns[columnId]; if (!column || !indexPattern) return; const operationDefinition = column.operationType && operationDefinitionMap[column.operationType]; @@ -75,12 +75,9 @@ export function isColumnInvalid( 'references' in column && Boolean(getReferencesErrors(layer, column, indexPattern).filter(Boolean).length); - const operationErrorMessages = operationDefinition.getErrorMessage?.( - layer, - columnId, - indexPattern, - operationDefinitionMap - ); + const operationErrorMessages = + operationDefinition && + operationDefinition.getErrorMessage?.(layer, columnId, indexPattern, operationDefinitionMap); const filterHasError = column.filter ? !isQueryValid(column.filter, indexPattern) : false; @@ -108,7 +105,10 @@ function getReferencesErrors( }); } -export function fieldIsInvalid(column: IndexPatternColumn | undefined, indexPattern: IndexPattern) { +export function fieldIsInvalid( + column: GenericIndexPatternColumn | undefined, + indexPattern: IndexPattern +) { if (!column || !hasField(column)) { return false; } diff --git a/x-pack/plugins/lens/public/metric_visualization/dimension_editor.scss b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.scss new file mode 100644 index 0000000000000..d7664b9d2da16 --- /dev/null +++ b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.scss @@ -0,0 +1,3 @@ +.lnsDynamicColoringRow { + align-items: center; +} \ No newline at end of file diff --git a/x-pack/plugins/lens/public/metric_visualization/dimension_editor.test.tsx b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.test.tsx new file mode 100644 index 0000000000000..ef0687a2cd519 --- /dev/null +++ b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.test.tsx @@ -0,0 +1,224 @@ +/* + * Copyright 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 { EuiButtonGroup } from '@elastic/eui'; +import { FramePublicAPI, VisualizationDimensionEditorProps } from '../types'; +import { createMockDatasource, createMockFramePublicAPI } from '../mocks'; +import { mountWithIntl } from '@kbn/test/jest'; +import { MetricDimensionEditor } from './dimension_editor'; +import { chartPluginMock } from 'src/plugins/charts/public/mocks'; +import { ColorMode, PaletteOutput, PaletteRegistry } from 'src/plugins/charts/public'; +import { act } from 'react-dom/test-utils'; +import { CustomizablePalette, PalettePanelContainer } from '../shared_components'; +import { CustomPaletteParams, layerTypes } from '../../common'; +import { MetricState } from '../../common/expressions'; + +// mocking random id generator function +jest.mock('@elastic/eui', () => { + const original = jest.requireActual('@elastic/eui'); + + return { + ...original, + htmlIdGenerator: (fn: unknown) => { + let counter = 0; + return () => counter++; + }, + }; +}); + +function paletteParamsContaining(paramsToCheck: PaletteOutput<CustomPaletteParams>['params']) { + return expect.objectContaining({ + palette: expect.objectContaining({ + params: expect.objectContaining(paramsToCheck), + }), + }); +} + +describe('metric dimension editor', () => { + let frame: FramePublicAPI; + let state: MetricState; + let setState: (newState: MetricState) => void; + let props: VisualizationDimensionEditorProps<MetricState> & { + paletteService: PaletteRegistry; + }; + + function testState(): MetricState { + return { + layerId: 'first', + layerType: layerTypes.DATA, + accessor: 'foo', + }; + } + + beforeEach(() => { + state = testState(); + frame = createMockFramePublicAPI(); + frame.datasourceLayers = { + first: createMockDatasource('test').publicAPIMock, + }; + frame.activeData = { + first: { + type: 'datatable', + columns: [ + { + id: 'foo', + name: 'foo', + meta: { + type: 'string', + }, + }, + ], + rows: [{ foo: 5 }], + }, + }; + setState = jest.fn(); + props = { + accessor: 'foo', + frame, + groupId: 'columns', + layerId: 'first', + state, + setState, + paletteService: chartPluginMock.createPaletteRegistry(), + panelRef: React.createRef(), + }; + // add a div to the ref + props.panelRef.current = document.createElement('div'); + }); + + it('should not show the dynamic coloring option for non numeric columns', () => { + const instance = mountWithIntl(<MetricDimensionEditor {...props} />); + expect(instance.find('[data-test-subj="lnsMetric_dynamicColoring_groups"]').exists()).toBe( + false + ); + expect(instance.find('[data-test-subj="lnsMetric_dynamicColoring_palette"]').exists()).toBe( + false + ); + }); + + it('should set the dynamic coloring default to "none"', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + const instance = mountWithIntl(<MetricDimensionEditor {...props} />); + expect( + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_groups"]') + .find(EuiButtonGroup) + .prop('idSelected') + ).toEqual(expect.stringContaining(ColorMode.None)); + + expect(instance.find('[data-test-subj="lnsMetric_dynamicColoring_palette"]').exists()).toBe( + false + ); + }); + + it('should show the dynamic palette display ony when colorMode is different from "none"', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + state.colorMode = ColorMode.Labels; + const instance = mountWithIntl(<MetricDimensionEditor {...props} />); + expect( + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_groups"]') + .find(EuiButtonGroup) + .prop('idSelected') + ).toEqual(expect.stringContaining(ColorMode.Labels)); + + expect(instance.find('[data-test-subj="lnsMetric_dynamicColoring_palette"]').exists()).toBe( + true + ); + }); + + it('should prefill the palette stops with some colors when enabling coloring', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + const instance = mountWithIntl(<MetricDimensionEditor {...props} />); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_groups"]') + .find(EuiButtonGroup) + .prop('onChange')!(ColorMode.Labels); + }); + instance.update(); + + expect(props.setState).toHaveBeenCalledWith( + paletteParamsContaining({ + stops: expect.any(Array), // shallow check it's ok + }) + ); + }); + + it('should open the palette panel when "Settings" link is clicked in the palette input', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + state.colorMode = ColorMode.Background; + const instance = mountWithIntl(<MetricDimensionEditor {...props} />); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_trigger"]') + .first() + .simulate('click'); + }); + instance.update(); + + expect(instance.find(PalettePanelContainer).exists()).toBe(true); + }); + + it('should provide have a special data min/max for zero metric value', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + frame.activeData!.first.rows[0].foo = 0; + state.colorMode = ColorMode.Background; + const instance = mountWithIntl(<MetricDimensionEditor {...props} />); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_trigger"]') + .first() + .simulate('click'); + }); + instance.update(); + + expect(instance.find(CustomizablePalette).prop('dataBounds')).toEqual({ min: -50, max: 100 }); + }); + + it('should work for negative metric value', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + frame.activeData!.first.rows[0].foo = -1; + state.colorMode = ColorMode.Background; + const instance = mountWithIntl(<MetricDimensionEditor {...props} />); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_trigger"]') + .first() + .simulate('click'); + }); + instance.update(); + + expect(instance.find(CustomizablePalette).prop('dataBounds')).toEqual({ min: -2, max: 0 }); + }); + + it('should apply an initial range with shifted stops (first stop === rangeMin)', () => { + frame.activeData!.first.columns[0].meta.type = 'number'; + frame.activeData!.first.rows[0].foo = 5; + state.colorMode = ColorMode.None; + state.palette = undefined; + const instance = mountWithIntl(<MetricDimensionEditor {...props} />); + + act(() => { + instance + .find('[data-test-subj="lnsMetric_dynamicColoring_groups"]') + .find(EuiButtonGroup) + .prop('onChange')!(ColorMode.Background); + }); + + expect(setState).toHaveBeenCalledWith( + paletteParamsContaining({ + stops: expect.arrayContaining([]), + }) + ); + }); +}); diff --git a/x-pack/plugins/lens/public/metric_visualization/dimension_editor.tsx b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.tsx new file mode 100644 index 0000000000000..fd804ee5a82ad --- /dev/null +++ b/x-pack/plugins/lens/public/metric_visualization/dimension_editor.tsx @@ -0,0 +1,224 @@ +/* + * Copyright 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 { + EuiButtonEmpty, + EuiButtonGroup, + EuiColorPaletteDisplay, + EuiFlexGroup, + EuiFlexItem, + EuiFormRow, + htmlIdGenerator, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import React, { useCallback, useState } from 'react'; +import { ColorMode } from '../../../../../src/plugins/charts/common'; +import type { PaletteRegistry } from '../../../../../src/plugins/charts/public'; +import { isNumericFieldForDatatable, MetricState } from '../../common/expressions'; +import { + applyPaletteParams, + CustomizablePalette, + CUSTOM_PALETTE, + FIXED_PROGRESSION, + getStopsForFixedMode, + PalettePanelContainer, +} from '../shared_components'; +import type { VisualizationDimensionEditorProps } from '../types'; +import { defaultPaletteParams } from './palette_config'; + +import './dimension_editor.scss'; + +const idPrefix = htmlIdGenerator()(); + +export function MetricDimensionEditor( + props: VisualizationDimensionEditorProps<MetricState> & { + paletteService: PaletteRegistry; + } +) { + const { state, setState, frame, accessor } = props; + const [isPaletteOpen, setIsPaletteOpen] = useState(false); + + const togglePalette = useCallback(() => { + setIsPaletteOpen(!isPaletteOpen); + }, [isPaletteOpen]); + + const currentData = frame.activeData?.[state.layerId]; + const [firstRow] = currentData?.rows || []; + + if (accessor == null || firstRow == null || !isNumericFieldForDatatable(currentData, accessor)) { + return null; + } + const currentColorMode = state?.colorMode || ColorMode.None; + const hasDynamicColoring = currentColorMode !== ColorMode.None; + + const currentMinMax = { + min: Math.min(firstRow[accessor] * 2, firstRow[accessor] === 0 ? -50 : 0), + // if value is 0, then fallback to 100 as last resort + max: Math.max(firstRow[accessor] * 2, firstRow[accessor] === 0 ? 100 : 0), + }; + + const activePalette = state?.palette || { + type: 'palette', + name: defaultPaletteParams.name, + params: { + ...defaultPaletteParams, + stops: undefined, + colorStops: undefined, + rangeMin: currentMinMax.min, + rangeMax: (currentMinMax.max * 3) / 4, + }, + }; + + // need to tell the helper that the colorStops are required to display + const displayStops = applyPaletteParams(props.paletteService, activePalette, currentMinMax); + + return ( + <> + <EuiFormRow + display="columnCompressed" + fullWidth + label={i18n.translate('xpack.lens.metric.dynamicColoring.label', { + defaultMessage: 'Color by value', + })} + > + <EuiButtonGroup + isFullWidth + legend={i18n.translate('xpack.lens.metric.dynamicColoring.label', { + defaultMessage: 'Color by value', + })} + data-test-subj="lnsMetric_dynamicColoring_groups" + name="dynamicColoring" + buttonSize="compressed" + options={[ + { + id: `${idPrefix}None`, + label: i18n.translate('xpack.lens.metric.dynamicColoring.none', { + defaultMessage: 'None', + }), + 'data-test-subj': 'lnsMetric_dynamicColoring_groups_none', + }, + { + id: `${idPrefix}Background`, + label: i18n.translate('xpack.lens.metric.dynamicColoring.background', { + defaultMessage: 'Fill', + }), + 'data-test-subj': 'lnsMetric_dynamicColoring_groups_background', + }, + { + id: `${idPrefix}Labels`, + label: i18n.translate('xpack.lens.metric.dynamicColoring.text', { + defaultMessage: 'Text', + }), + 'data-test-subj': 'lnsMetric_dynamicColoring_groups_labels', + }, + ]} + idSelected={`${idPrefix}${currentColorMode}`} + onChange={(id) => { + const newMode = id.replace(idPrefix, '') as ColorMode; + const params: Partial<MetricState> = { + colorMode: newMode, + }; + if (!state?.palette && newMode !== ColorMode.None) { + params.palette = { + ...activePalette, + params: { + ...activePalette.params, + // align this initial computation with same format for default + // palettes in the panel. This to avoid custom computation issue with metric + // fake data range + stops: displayStops.map((v, i, array) => ({ + ...v, + stop: currentMinMax.min + (i === 0 ? 0 : array[i - 1].stop), + })), + }, + }; + } + // clear up when switching to no coloring + if (state?.palette && newMode === ColorMode.None) { + params.palette = undefined; + } + setState({ + ...state, + ...params, + }); + }} + /> + </EuiFormRow> + {hasDynamicColoring && ( + <EuiFormRow + className="lnsDynamicColoringRow" + display="columnCompressed" + fullWidth + label={i18n.translate('xpack.lens.paletteMetricGradient.label', { + defaultMessage: 'Color', + })} + > + <EuiFlexGroup + alignItems="center" + gutterSize="s" + responsive={false} + className="lnsDynamicColoringClickable" + > + <EuiFlexItem> + <EuiColorPaletteDisplay + data-test-subj="lnsMetric_dynamicColoring_palette" + palette={ + activePalette.params?.name === CUSTOM_PALETTE + ? getStopsForFixedMode( + activePalette.params.stops!, + activePalette.params.colorStops + ) + : displayStops.map(({ color }) => color) + } + type={FIXED_PROGRESSION} + onClick={togglePalette} + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <EuiButtonEmpty + data-test-subj="lnsMetric_dynamicColoring_trigger" + iconType="controlsHorizontal" + onClick={togglePalette} + size="xs" + flush="both" + > + {i18n.translate('xpack.lens.paletteTableGradient.customize', { + defaultMessage: 'Edit', + })} + </EuiButtonEmpty> + <PalettePanelContainer + siblingRef={props.panelRef} + isOpen={isPaletteOpen} + handleClose={togglePalette} + > + <CustomizablePalette + palettes={props.paletteService} + activePalette={activePalette} + dataBounds={currentMinMax} + setPalette={(newPalette) => { + // if the new palette is not custom, replace the rangeMin with the artificial one + if ( + newPalette.name !== CUSTOM_PALETTE && + newPalette.params && + newPalette.params.rangeMin !== currentMinMax.min + ) { + newPalette.params.rangeMin = currentMinMax.min; + } + setState({ + ...state, + palette: newPalette, + }); + }} + showRangeTypeSelector={false} + /> + </PalettePanelContainer> + </EuiFlexItem> + </EuiFlexGroup> + </EuiFormRow> + )} + </> + ); +} diff --git a/x-pack/plugins/lens/public/metric_visualization/expression.scss b/x-pack/plugins/lens/public/metric_visualization/expression.scss index 2339031539997..ad2a175b5b5fc 100644 --- a/x-pack/plugins/lens/public/metric_visualization/expression.scss +++ b/x-pack/plugins/lens/public/metric_visualization/expression.scss @@ -6,4 +6,15 @@ width: 100%; height: 100%; text-align: center; -} + + .lnsMetricExpression__value { + font-size: $euiSizeXXL * 2; + font-weight: $euiFontWeightSemiBold; + border-radius: $euiBorderRadius; + padding: 0 $euiSize; + } + + .lnsMetricExpression__title { + font-size: $euiSizeXL; + } +} \ No newline at end of file diff --git a/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx b/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx index baa0a5adc3b70..56bb9235aa3a1 100644 --- a/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/expression.test.tsx @@ -13,6 +13,8 @@ import { createMockExecutionContext } from '../../../../../src/plugins/expressio import type { IFieldFormat } from '../../../../../src/plugins/field_formats/common'; import { layerTypes } from '../../common'; import type { LensMultiTable } from '../../common'; +import { IUiSettingsClient } from 'kibana/public'; +import { ColorMode } from 'src/plugins/charts/common'; function sampleArgs() { const data: LensMultiTable = { @@ -43,6 +45,8 @@ function sampleArgs() { description: 'Fancy chart description', metricTitle: 'My fanci metric chart', mode: 'full', + colorMode: ColorMode.None, + palette: { type: 'palette', name: 'status' }, }; const noAttributesArgs: MetricConfig = { @@ -53,6 +57,8 @@ function sampleArgs() { description: '', metricTitle: 'My fanci metric chart', mode: 'full', + colorMode: ColorMode.None, + palette: { type: 'palette', name: 'status' }, }; return { data, args, noAttributesArgs }; @@ -82,6 +88,7 @@ describe('metric_expression', () => { data={data} args={args} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -92,23 +99,15 @@ describe('metric_expression', () => { key="3" > <div + className="lnsMetricExpression__value" data-test-subj="lns_metric_value" - style={ - Object { - "fontSize": "60pt", - "fontWeight": 600, - } - } + style={Object {}} > 3 </div> <div + className="lnsMetricExpression__title" data-test-subj="lns_metric_title" - style={ - Object { - "fontSize": "24pt", - } - } > My fanci metric chart </div> @@ -127,6 +126,7 @@ describe('metric_expression', () => { data={data} args={args} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -137,23 +137,15 @@ describe('metric_expression', () => { key="last" > <div + className="lnsMetricExpression__value" data-test-subj="lns_metric_value" - style={ - Object { - "fontSize": "60pt", - "fontWeight": 600, - } - } + style={Object {}} > last </div> <div + className="lnsMetricExpression__title" data-test-subj="lns_metric_title" - style={ - Object { - "fontSize": "24pt", - } - } > My fanci metric chart </div> @@ -171,6 +163,7 @@ describe('metric_expression', () => { data={data} args={noAttributesArgs} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -181,23 +174,15 @@ describe('metric_expression', () => { key="3" > <div + className="lnsMetricExpression__value" data-test-subj="lns_metric_value" - style={ - Object { - "fontSize": "60pt", - "fontWeight": 600, - } - } + style={Object {}} > 3 </div> <div + className="lnsMetricExpression__title" data-test-subj="lns_metric_title" - style={ - Object { - "fontSize": "24pt", - } - } > My fanci metric chart </div> @@ -215,6 +200,7 @@ describe('metric_expression', () => { data={data} args={{ ...noAttributesArgs, mode: 'reduced' }} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -225,13 +211,9 @@ describe('metric_expression', () => { key="3" > <div + className="lnsMetricExpression__value" data-test-subj="lns_metric_value" - style={ - Object { - "fontSize": "60pt", - "fontWeight": 600, - } - } + style={Object {}} > 3 </div> @@ -249,6 +231,7 @@ describe('metric_expression', () => { data={{ ...data, tables: {} }} args={noAttributesArgs} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -273,6 +256,7 @@ describe('metric_expression', () => { data={data} args={noAttributesArgs} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -297,6 +281,7 @@ describe('metric_expression', () => { data={data} args={noAttributesArgs} formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} /> ) ).toMatchInlineSnapshot(` @@ -307,23 +292,15 @@ describe('metric_expression', () => { key="0" > <div + className="lnsMetricExpression__value" data-test-subj="lns_metric_value" - style={ - Object { - "fontSize": "60pt", - "fontWeight": 600, - } - } + style={Object {}} > 0 </div> <div + className="lnsMetricExpression__title" data-test-subj="lns_metric_title" - style={ - Object { - "fontSize": "24pt", - } - } > My fanci metric chart </div> @@ -336,8 +313,237 @@ describe('metric_expression', () => { const { data, args } = sampleArgs(); const factory = jest.fn(() => ({ convert: (x) => x } as IFieldFormat)); - shallow(<MetricChart data={data} args={args} formatFactory={factory} />); + shallow( + <MetricChart + data={data} + args={args} + formatFactory={factory} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); expect(factory).toHaveBeenCalledWith({ id: 'percent', params: { format: '0.000%' } }); }); + + test('it renders the correct color styling for numeric value if coloring config is passed', () => { + const { data, args } = sampleArgs(); + + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + }; + + const instance = shallow( + <MetricChart + data={data} + args={args} + formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect(instance.find('[data-test-subj="lns_metric_value"]').first().prop('style')).toEqual( + expect.objectContaining({ + color: 'red', + }) + ); + }); + + test('it renders no color styling for numeric value if value is lower then rangeMin and continuity is "above"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = -1; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'above', + }; + + const instance = shallow( + <MetricChart + data={data} + args={args} + formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect( + instance.find('[data-test-subj="lns_metric_value"]').first().prop('style') + ).not.toEqual( + expect.objectContaining({ + color: expect.any(String), + }) + ); + }); + test('it renders no color styling for numeric value if value is higher than rangeMax and continuity is "below"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = 500; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'below', + }; + + const instance = shallow( + <MetricChart + data={data} + args={args} + formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect( + instance.find('[data-test-subj="lns_metric_value"]').first().prop('style') + ).not.toEqual( + expect.objectContaining({ + color: expect.any(String), + }) + ); + }); + + test('it renders no color styling for numeric value if value is higher than rangeMax and continuity is "none"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = 500; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'none', + }; + + const instance = shallow( + <MetricChart + data={data} + args={args} + formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect( + instance.find('[data-test-subj="lns_metric_value"]').first().prop('style') + ).not.toEqual( + expect.objectContaining({ + color: expect.any(String), + }) + ); + }); + + test('it renders no color styling for numeric value if value is lower than rangeMin and continuity is "none"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = -1; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'none', + }; + + const instance = shallow( + <MetricChart + data={data} + args={args} + formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect( + instance.find('[data-test-subj="lns_metric_value"]').first().prop('style') + ).not.toEqual( + expect.objectContaining({ + color: expect.any(String), + }) + ); + }); + + test('it renders the color styling for numeric value if value is higher than rangeMax and continuity is "all"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = 500; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'all', + }; + + const instance = shallow( + <MetricChart + data={data} + args={args} + formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect(instance.find('[data-test-subj="lns_metric_value"]').first().prop('style')).toEqual( + expect.objectContaining({ + color: 'green', + }) + ); + }); + + test('it renders the color styling for numeric value if value is lower than rangeMin and continuity is "all"', () => { + const { data, args } = sampleArgs(); + + data.tables.l1.rows[0].c = -1; + args.colorMode = ColorMode.Labels; + args.palette.params = { + rangeMin: 0, + rangeMax: 400, + stops: [100, 200, 400], + gradient: false, + range: 'number', + colors: ['red', 'yellow', 'green'], + continuity: 'all', + }; + + const instance = shallow( + <MetricChart + data={data} + args={args} + formatFactory={() => ({ convert: (x) => x } as IFieldFormat)} + uiSettings={{ get: jest.fn() } as unknown as IUiSettingsClient} + /> + ); + + expect(instance.find('[data-test-subj="lns_metric_value"]').first().prop('style')).toEqual( + expect.objectContaining({ + color: 'red', + }) + ); + }); }); }); diff --git a/x-pack/plugins/lens/public/metric_visualization/expression.tsx b/x-pack/plugins/lens/public/metric_visualization/expression.tsx index 6ec9e94bde585..fd4b4f20c5c50 100644 --- a/x-pack/plugins/lens/public/metric_visualization/expression.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/expression.tsx @@ -9,20 +9,27 @@ import './expression.scss'; import { I18nProvider } from '@kbn/i18n/react'; import React from 'react'; import ReactDOM from 'react-dom'; +import { IUiSettingsClient } from 'kibana/public'; import type { ExpressionRenderDefinition, IInterpreterRenderHandlers, } from '../../../../../src/plugins/expressions/public'; +import { + ColorMode, + CustomPaletteState, + PaletteOutput, +} from '../../../../../src/plugins/charts/public'; import { AutoScale } from './auto_scale'; import { VisualizationContainer } from '../visualization_container'; -import { EmptyPlaceholder } from '../shared_components'; +import { EmptyPlaceholder, getContrastColor } from '../shared_components'; import { LensIconChartMetric } from '../assets/chart_metric'; import type { FormatFactory } from '../../common'; import type { MetricChartProps } from '../../common/expressions'; export type { MetricChartProps, MetricState, MetricConfig } from '../../common/expressions'; export const getMetricChartRenderer = ( - formatFactory: FormatFactory + formatFactory: FormatFactory, + uiSettings: IUiSettingsClient ): ExpressionRenderDefinition<MetricChartProps> => ({ name: 'lens_metric_chart_renderer', displayName: 'Metric chart', @@ -32,7 +39,7 @@ export const getMetricChartRenderer = ( render: (domNode: Element, config: MetricChartProps, handlers: IInterpreterRenderHandlers) => { ReactDOM.render( <I18nProvider> - <MetricChart {...config} formatFactory={formatFactory} /> + <MetricChart {...config} formatFactory={formatFactory} uiSettings={uiSettings} /> </I18nProvider>, domNode, () => { @@ -43,12 +50,61 @@ export const getMetricChartRenderer = ( }, }); +function getColorStyling( + value: number, + colorMode: ColorMode, + palette: PaletteOutput<CustomPaletteState> | undefined, + isDarkTheme: boolean +) { + if ( + colorMode === ColorMode.None || + !palette?.params || + !palette?.params.colors?.length || + isNaN(value) + ) { + return {}; + } + + const { continuity = 'above', rangeMin, stops, colors } = palette.params; + const penultimateStop = stops[stops.length - 2]; + + if (continuity === 'none' && (value < rangeMin || value > penultimateStop)) { + return {}; + } + if (continuity === 'below' && value > penultimateStop) { + return {}; + } + if (continuity === 'above' && value < rangeMin) { + return {}; + } + const cssProp = colorMode === ColorMode.Background ? 'backgroundColor' : 'color'; + const rawIndex = stops.findIndex((v) => v > value); + + let colorIndex = rawIndex; + if (['all', 'below'].includes(continuity) && value < rangeMin && colorIndex < 0) { + colorIndex = 0; + } + if (['all', 'above'].includes(continuity) && value > penultimateStop && colorIndex < 0) { + colorIndex = stops.length - 1; + } + + const color = colors[colorIndex]; + const styling = { + [cssProp]: color, + }; + if (colorMode === ColorMode.Background && color) { + styling.color = getContrastColor(color, isDarkTheme); + } + return styling; +} + export function MetricChart({ data, args, formatFactory, -}: MetricChartProps & { formatFactory: FormatFactory }) { - const { metricTitle, accessor, mode } = args; + uiSettings, +}: MetricChartProps & { formatFactory: FormatFactory; uiSettings: IUiSettingsClient }) { + const { metricTitle, accessor, mode, colorMode, palette } = args; const firstTable = Object.values(data.tables)[0]; const getEmptyState = () => ( @@ -66,27 +122,29 @@ export function MetricChart({ if (!column || !row) { return getEmptyState(); } + const rawValue = row[accessor]; // NOTE: Cardinality and Sum never receives "null" as value, but always 0, even for empty dataset. // Mind falsy values here as 0! - const shouldShowResults = row[accessor] != null; - if (!shouldShowResults) { + if (!['number', 'string'].includes(typeof rawValue)) { return getEmptyState(); } const value = column && column.meta?.params - ? formatFactory(column.meta?.params).convert(row[accessor]) - : Number(Number(row[accessor]).toFixed(3)).toString(); + ? formatFactory(column.meta?.params).convert(rawValue) + : Number(Number(rawValue).toFixed(3)).toString(); + + const color = getColorStyling(rawValue, colorMode, palette, uiSettings.get('theme:darkMode')); return ( <VisualizationContainer className="lnsMetricExpression__container"> <AutoScale key={value}> - <div data-test-subj="lns_metric_value" style={{ fontSize: '60pt', fontWeight: 600 }}> + <div data-test-subj="lns_metric_value" className="lnsMetricExpression__value" style={color}> {value} </div> {mode === 'full' && ( - <div data-test-subj="lns_metric_title" style={{ fontSize: '24pt' }}> + <div data-test-subj="lns_metric_title" className="lnsMetricExpression__title"> {metricTitle} </div> )} diff --git a/x-pack/plugins/lens/public/metric_visualization/index.ts b/x-pack/plugins/lens/public/metric_visualization/index.ts index 20c25b285bd5b..bff5f71f8ba1d 100644 --- a/x-pack/plugins/lens/public/metric_visualization/index.ts +++ b/x-pack/plugins/lens/public/metric_visualization/index.ts @@ -7,6 +7,7 @@ import type { CoreSetup } from 'kibana/public'; import type { ExpressionsSetup } from '../../../../../src/plugins/expressions/public'; +import type { ChartsPluginSetup } from '../../../../../src/plugins/charts/public'; import type { EditorFrameSetup } from '../types'; import type { FormatFactory } from '../../common'; @@ -14,18 +15,20 @@ export interface MetricVisualizationPluginSetupPlugins { expressions: ExpressionsSetup; formatFactory: FormatFactory; editorFrame: EditorFrameSetup; + charts: ChartsPluginSetup; } export class MetricVisualization { setup( - _core: CoreSetup | null, - { expressions, formatFactory, editorFrame }: MetricVisualizationPluginSetupPlugins + core: CoreSetup, + { expressions, formatFactory, editorFrame, charts }: MetricVisualizationPluginSetupPlugins ) { editorFrame.registerVisualization(async () => { - const { metricVisualization, getMetricChartRenderer } = await import('../async_services'); + const { getMetricVisualization, getMetricChartRenderer } = await import('../async_services'); + const palettes = await charts.palettes.getPalettes(); - expressions.registerRenderer(() => getMetricChartRenderer(formatFactory)); - return metricVisualization; + expressions.registerRenderer(() => getMetricChartRenderer(formatFactory, core.uiSettings)); + return getMetricVisualization({ paletteService: palettes }); }); } } diff --git a/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx b/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx new file mode 100644 index 0000000000000..08cff1c777d2e --- /dev/null +++ b/x-pack/plugins/lens/public/metric_visualization/palette_config.tsx @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { RequiredPaletteParamTypes } from '../../common'; +import { defaultPaletteParams as sharedDefaultParams } from '../shared_components/'; + +export const DEFAULT_PALETTE_NAME = 'status'; +export const DEFAULT_COLOR_STEPS = 3; +export const defaultPaletteParams: RequiredPaletteParamTypes = { + ...sharedDefaultParams, + maxSteps: 5, + name: DEFAULT_PALETTE_NAME, + rangeType: 'number', + steps: DEFAULT_COLOR_STEPS, +}; diff --git a/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts b/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts index ef9d7959ed109..889b711739fb3 100644 --- a/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts +++ b/x-pack/plugins/lens/public/metric_visualization/visualization.test.ts @@ -5,12 +5,14 @@ * 2.0. */ -import { metricVisualization } from './visualization'; +import { getMetricVisualization } from './visualization'; import { MetricState } from '../../common/expressions'; import { layerTypes } from '../../common'; import { createMockDatasource, createMockFramePublicAPI } from '../mocks'; import { generateId } from '../id_generator'; import { DatasourcePublicAPI, FramePublicAPI } from '../types'; +import { chartPluginMock } from 'src/plugins/charts/public/mocks'; +import { ColorMode } from 'src/plugins/charts/common'; jest.mock('../id_generator'); @@ -32,6 +34,10 @@ function mockFrame(): FramePublicAPI { }; } +const metricVisualization = getMetricVisualization({ + paletteService: chartPluginMock.createPaletteRegistry(), +}); + describe('metric_visualization', () => { describe('#initialize', () => { it('loads default state', () => { @@ -110,6 +116,54 @@ describe('metric_visualization', () => { ], }); }); + + it('should show the palette when metric has coloring enabled', () => { + expect( + metricVisualization.getConfiguration({ + state: { + accessor: 'a', + layerId: 'l1', + layerType: layerTypes.DATA, + palette: { + type: 'palette', + name: 'status', + }, + }, + layerId: 'l1', + frame: mockFrame(), + }) + ).toEqual({ + groups: [ + expect.objectContaining({ + accessors: expect.arrayContaining([ + { columnId: 'a', triggerIcon: 'colorBy', palette: [] }, + ]), + }), + ], + }); + }); + + it('should not show the palette when not enabled', () => { + expect( + metricVisualization.getConfiguration({ + state: { + accessor: 'a', + layerId: 'l1', + layerType: layerTypes.DATA, + }, + layerId: 'l1', + frame: mockFrame(), + }) + ).toEqual({ + groups: [ + expect.objectContaining({ + accessors: expect.arrayContaining([ + { columnId: 'a', triggerIcon: undefined, palette: undefined }, + ]), + }), + ], + }); + }); }); describe('#setDimension', () => { @@ -151,6 +205,41 @@ describe('metric_visualization', () => { accessor: undefined, layerId: 'l1', layerType: layerTypes.DATA, + colorMode: ColorMode.None, + palette: undefined, + }); + }); + + it('removes the palette configuration', () => { + expect( + metricVisualization.removeDimension({ + prevState: { + accessor: 'a', + layerId: 'l1', + layerType: layerTypes.DATA, + colorMode: ColorMode.Background, + palette: { + type: 'palette', + name: 'status', + params: { + rangeType: 'number', + stops: [ + { color: 'blue', stop: 100 }, + { color: 'red', stop: 150 }, + ], + }, + }, + }, + layerId: 'l1', + columnId: 'a', + frame: mockFrame(), + }) + ).toEqual({ + accessor: undefined, + layerId: 'l1', + layerType: layerTypes.DATA, + colorMode: ColorMode.None, + palette: undefined, }); }); }); @@ -196,6 +285,9 @@ describe('metric_visualization', () => { "accessor": Array [ "a", ], + "colorMode": Array [ + "None", + ], "description": Array [ "", ], @@ -205,6 +297,7 @@ describe('metric_visualization', () => { "mode": Array [ "full", ], + "palette": Array [], "title": Array [ "", ], diff --git a/x-pack/plugins/lens/public/metric_visualization/visualization.tsx b/x-pack/plugins/lens/public/metric_visualization/visualization.tsx index 5693d67546f99..63da7c4b44317 100644 --- a/x-pack/plugins/lens/public/metric_visualization/visualization.tsx +++ b/x-pack/plugins/lens/public/metric_visualization/visualization.tsx @@ -5,18 +5,26 @@ * 2.0. */ +import React from 'react'; import { i18n } from '@kbn/i18n'; +import { I18nProvider } from '@kbn/i18n/react'; +import { render } from 'react-dom'; import { Ast } from '@kbn/interpreter/common'; +import { ColorMode } from '../../../../../src/plugins/charts/common'; +import { PaletteRegistry } from '../../../../../src/plugins/charts/public'; import { getSuggestions } from './metric_suggestions'; import { LensIconChartMetric } from '../assets/chart_metric'; import { Visualization, OperationMetadata, DatasourcePublicAPI } from '../types'; -import type { MetricState } from '../../common/expressions'; +import type { MetricConfig, MetricState } from '../../common/expressions'; import { layerTypes } from '../../common'; +import { CUSTOM_PALETTE, getStopsForFixedMode, shiftPalette } from '../shared_components'; +import { MetricDimensionEditor } from './dimension_editor'; const toExpression = ( + paletteService: PaletteRegistry, state: MetricState, datasourceLayers: Record<string, DatasourcePublicAPI>, - attributes?: { mode?: 'reduced' | 'full'; title?: string; description?: string } + attributes?: Partial<Omit<MetricConfig, keyof MetricState>> ): Ast | null => { if (!state.accessor) { return null; @@ -25,6 +33,22 @@ const toExpression = ( const [datasource] = Object.values(datasourceLayers); const operation = datasource && datasource.getOperationForColumnId(state.accessor); + const stops = state.palette?.params?.stops || []; + const isCustomPalette = state.palette?.params?.name === CUSTOM_PALETTE; + + const paletteParams = { + ...state.palette?.params, + colors: stops.map(({ color }) => color), + stops: + isCustomPalette || state.palette?.params?.rangeMax == null + ? stops.map(({ stop }) => stop) + : shiftPalette( + stops, + Math.max(state.palette?.params?.rangeMax, ...stops.map(({ stop }) => stop)) + ).map(({ stop }) => stop), + reverse: false, + }; + return { type: 'expression', chain: [ @@ -34,16 +58,24 @@ const toExpression = ( arguments: { title: [attributes?.title || ''], description: [attributes?.description || ''], - metricTitle: [(operation && operation.label) || ''], + metricTitle: [operation?.label || ''], accessor: [state.accessor], mode: [attributes?.mode || 'full'], + colorMode: [state?.colorMode || ColorMode.None], + palette: + state?.colorMode && state?.colorMode !== ColorMode.None + ? [paletteService.get(CUSTOM_PALETTE).toExpression(paletteParams)] + : [], }, }, ], }; }; - -export const metricVisualization: Visualization<MetricState> = { +export const getMetricVisualization = ({ + paletteService, +}: { + paletteService: PaletteRegistry; +}): Visualization<MetricState> => ({ id: 'lnsMetric', visualizationTypes: [ @@ -97,15 +129,30 @@ export const metricVisualization: Visualization<MetricState> = { }, getConfiguration(props) { + const hasColoring = props.state.palette != null; + const stops = props.state.palette?.params?.stops || []; return { groups: [ { groupId: 'metric', groupLabel: i18n.translate('xpack.lens.metric.label', { defaultMessage: 'Metric' }), layerId: props.state.layerId, - accessors: props.state.accessor ? [{ columnId: props.state.accessor }] : [], + accessors: props.state.accessor + ? [ + { + columnId: props.state.accessor, + triggerIcon: hasColoring ? 'colorBy' : undefined, + palette: hasColoring + ? props.state.palette?.params?.name === CUSTOM_PALETTE + ? getStopsForFixedMode(stops, props.state.palette?.params.colorStops) + : stops.map(({ color }) => color) + : undefined, + }, + ] + : [], supportsMoreColumns: !props.state.accessor, filterOperations: (op: OperationMetadata) => !op.isBucketed && op.dataType === 'number', + enableDimensionEditor: true, required: true, }, ], @@ -129,20 +176,30 @@ export const metricVisualization: Visualization<MetricState> = { } }, - toExpression, + toExpression: (state, datasourceLayers, attributes) => + toExpression(paletteService, state, datasourceLayers, { ...attributes }), toPreviewExpression: (state, datasourceLayers) => - toExpression(state, datasourceLayers, { mode: 'reduced' }), + toExpression(paletteService, state, datasourceLayers, { mode: 'reduced' }), setDimension({ prevState, columnId }) { return { ...prevState, accessor: columnId }; }, removeDimension({ prevState }) { - return { ...prevState, accessor: undefined }; + return { ...prevState, accessor: undefined, colorMode: ColorMode.None, palette: undefined }; + }, + + renderDimensionEditor(domElement, props) { + render( + <I18nProvider> + <MetricDimensionEditor {...props} paletteService={paletteService} /> + </I18nProvider>, + domElement + ); }, getErrorMessages(state) { // Is it possible to break it? return undefined; }, -}; +}); diff --git a/x-pack/plugins/lens/public/pie_visualization/constants.ts b/x-pack/plugins/lens/public/pie_visualization/constants.ts index 9a2f39e7d34a5..be0afc65aed3b 100644 --- a/x-pack/plugins/lens/public/pie_visualization/constants.ts +++ b/x-pack/plugins/lens/public/pie_visualization/constants.ts @@ -6,41 +6,100 @@ */ import { i18n } from '@kbn/i18n'; +import { PartitionLayout } from '@elastic/charts'; import { LensIconChartDonut } from '../assets/chart_donut'; import { LensIconChartPie } from '../assets/chart_pie'; import { LensIconChartTreemap } from '../assets/chart_treemap'; +import { LensIconChartMosaic } from '../assets/chart_mosaic'; + +import type { SharedPieLayerState } from '../../common/expressions'; + +interface CategoryOption { + value: SharedPieLayerState['categoryDisplay']; + inputDisplay: string; +} const groupLabel = i18n.translate('xpack.lens.pie.groupLabel', { defaultMessage: 'Proportion', }); +const categoryOptions: CategoryOption[] = [ + { + value: 'default', + inputDisplay: i18n.translate('xpack.lens.pieChart.showCategoriesLabel', { + defaultMessage: 'Inside or outside', + }), + }, + { + value: 'inside', + inputDisplay: i18n.translate('xpack.lens.pieChart.fitInsideOnlyLabel', { + defaultMessage: 'Inside only', + }), + }, + { + value: 'hide', + inputDisplay: i18n.translate('xpack.lens.pieChart.categoriesInLegendLabel', { + defaultMessage: 'Hide labels', + }), + }, +]; + +const categoryOptionsTreemap: CategoryOption[] = [ + { + value: 'default', + inputDisplay: i18n.translate('xpack.lens.pieChart.showTreemapCategoriesLabel', { + defaultMessage: 'Show labels', + }), + }, + { + value: 'hide', + inputDisplay: i18n.translate('xpack.lens.pieChart.categoriesInLegendLabel', { + defaultMessage: 'Hide labels', + }), + }, +]; + export const CHART_NAMES = { donut: { icon: LensIconChartDonut, label: i18n.translate('xpack.lens.pie.donutLabel', { defaultMessage: 'Donut', }), + partitionType: PartitionLayout.sunburst, groupLabel, + categoryOptions, }, pie: { icon: LensIconChartPie, label: i18n.translate('xpack.lens.pie.pielabel', { defaultMessage: 'Pie', }), - + partitionType: PartitionLayout.sunburst, groupLabel, + categoryOptions, }, treemap: { icon: LensIconChartTreemap, label: i18n.translate('xpack.lens.pie.treemaplabel', { defaultMessage: 'Treemap', }), - + partitionType: PartitionLayout.treemap, + groupLabel, + categoryOptions: categoryOptionsTreemap, + }, + mosaic: { + icon: LensIconChartMosaic, + label: i18n.translate('xpack.lens.pie.mosaiclabel', { + defaultMessage: 'Mosaic', + }), + partitionType: PartitionLayout.mosaic, groupLabel, + categoryOptions: [] as CategoryOption[], }, }; export const MAX_PIE_BUCKETS = 3; export const MAX_TREEMAP_BUCKETS = 2; +export const MAX_MOSAIC_BUCKETS = 2; export const DEFAULT_PERCENT_DECIMALS = 2; diff --git a/x-pack/plugins/lens/public/pie_visualization/render_function.tsx b/x-pack/plugins/lens/public/pie_visualization/render_function.tsx index 05b9ca9c34168..2bf9827bb976e 100644 --- a/x-pack/plugins/lens/public/pie_visualization/render_function.tsx +++ b/x-pack/plugins/lens/public/pie_visualization/render_function.tsx @@ -16,7 +16,6 @@ import { Partition, PartitionConfig, PartitionLayer, - PartitionLayout, PartitionFillLabel, RecursivePartial, Position, @@ -29,7 +28,13 @@ import { VisualizationContainer } from '../visualization_container'; import { CHART_NAMES, DEFAULT_PERCENT_DECIMALS } from './constants'; import type { FormatFactory } from '../../common'; import type { PieExpressionProps } from '../../common/expressions'; -import { getSliceValue, getFilterContext } from './render_helpers'; +import { + getSliceValue, + getFilterContext, + isTreemapOrMosaicShape, + byDataColorPaletteMap, + extractUniqTermsMap, +} from './render_helpers'; import { EmptyPlaceholder } from '../shared_components'; import './visualization.scss'; import { @@ -110,6 +115,22 @@ export function PieComponent( }) ).length; + const shouldUseByDataPalette = !syncColors && ['mosaic'].includes(shape) && bucketColumns[1]?.id; + let byDataPalette: ReturnType<typeof byDataColorPaletteMap>; + if (shouldUseByDataPalette) { + byDataPalette = byDataColorPaletteMap( + firstTable, + bucketColumns[1].id, + paletteService.get(palette.name), + palette + ); + } + + let sortingMap: Record<string, number>; + if (shape === 'mosaic') { + sortingMap = extractUniqTermsMap(firstTable, bucketColumns[0].id); + } + const layers: PartitionLayer[] = bucketColumns.map((col, layerIndex) => { return { groupByRollup: (d: Datum) => d[col.id] ?? EMPTY_SLICE, @@ -124,13 +145,29 @@ export function PieComponent( return String(d); }, fillLabel, + sortPredicate: + shape === 'mosaic' + ? ([name1, node1], [, node2]) => { + // Sorting for first group + if (bucketColumns.length === 1 || (node1.children.length && name1 in sortingMap)) { + return sortingMap[name1]; + } + // Sorting for second group + return node2.value - node1.value; + } + : undefined, shape: { fillColor: (d) => { const seriesLayers: SeriesLayer[] = []; + // Mind the difference here: the contrast computation for the text ignores the alpha/opacity + // therefore change it for dask mode + const defaultColor = isDarkMode ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)'; + // Color is determined by round-robin on the index of the innermost slice // This has to be done recursively until we get to the slice index let tempParent: typeof d | typeof d['parent'] = d; + while (tempParent.parent && tempParent.depth > 0) { seriesLayers.unshift({ name: String(tempParent.parent.children[tempParent.sortIndex][0]), @@ -140,12 +177,14 @@ export function PieComponent( tempParent = tempParent.parent; } - if (shape === 'treemap') { + if (byDataPalette && seriesLayers[1]) { + return byDataPalette.getColor(seriesLayers[1].name) || defaultColor; + } + + if (isTreemapOrMosaicShape(shape)) { // Only highlight the innermost color of the treemap, as it accurately represents area if (layerIndex < bucketColumns.length - 1) { - // Mind the difference here: the contrast computation for the text ignores the alpha/opacity - // therefore change it for dask mode - return isDarkMode ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)'; + return defaultColor; } // only use the top level series layer for coloring if (seriesLayers.length > 1) { @@ -164,14 +203,14 @@ export function PieComponent( palette.params ); - return outputColor || 'rgba(0,0,0,0)'; + return outputColor || defaultColor; }, }, }; }); const config: RecursivePartial<PartitionConfig> = { - partitionLayout: shape === 'treemap' ? PartitionLayout.treemap : PartitionLayout.sunburst, + partitionLayout: CHART_NAMES[shape].partitionType, fontFamily: chartTheme.barSeriesStyle?.displayValue?.fontFamily, outerSizeRatio: 1, specialFirstInnermostSector: true, @@ -191,7 +230,7 @@ export function PieComponent( sectorLineWidth: 1.5, circlePadding: 4, }; - if (shape === 'treemap') { + if (isTreemapOrMosaicShape(shape)) { if (hideLabels || categoryDisplay === 'hide') { config.fillLabel = { textColor: 'rgba(0,0,0,0)' }; } @@ -279,7 +318,9 @@ export function PieComponent( showLegend={ !hideLabels && (legendDisplay === 'show' || - (legendDisplay === 'default' && bucketColumns.length > 1 && shape !== 'treemap')) + (legendDisplay === 'default' && + bucketColumns.length > 1 && + !isTreemapOrMosaicShape(shape))) } legendPosition={legendPosition || Position.Right} legendMaxDepth={nestedLegend ? undefined : 1 /* Color is based only on first layer */} diff --git a/x-pack/plugins/lens/public/pie_visualization/render_helpers.test.ts b/x-pack/plugins/lens/public/pie_visualization/render_helpers.test.ts index 7c55c0fa61931..dd27632b36e44 100644 --- a/x-pack/plugins/lens/public/pie_visualization/render_helpers.test.ts +++ b/x-pack/plugins/lens/public/pie_visualization/render_helpers.test.ts @@ -5,8 +5,16 @@ * 2.0. */ -import { Datatable } from 'src/plugins/expressions/public'; -import { getSliceValue, getFilterContext } from './render_helpers'; +import type { Datatable } from 'src/plugins/expressions/public'; +import type { PaletteDefinition, PaletteOutput } from 'src/plugins/charts/public'; + +import { + getSliceValue, + getFilterContext, + byDataColorPaletteMap, + extractUniqTermsMap, +} from './render_helpers'; +import { chartPluginMock } from '../../../../../src/plugins/charts/public/mocks'; describe('render helpers', () => { describe('#getSliceValue', () => { @@ -200,4 +208,113 @@ describe('render helpers', () => { }); }); }); + + describe('#extractUniqTermsMap', () => { + it('should extract map', () => { + const table: Datatable = { + type: 'datatable', + columns: [ + { id: 'a', name: 'A', meta: { type: 'string' } }, + { id: 'b', name: 'B', meta: { type: 'string' } }, + { id: 'c', name: 'C', meta: { type: 'number' } }, + ], + rows: [ + { a: 'Hi', b: 'Two', c: 2 }, + { a: 'Test', b: 'Two', c: 5 }, + { a: 'Foo', b: 'Three', c: 6 }, + ], + }; + expect(extractUniqTermsMap(table, 'a')).toMatchInlineSnapshot(` + Object { + "Foo": 2, + "Hi": 0, + "Test": 1, + } + `); + expect(extractUniqTermsMap(table, 'b')).toMatchInlineSnapshot(` + Object { + "Three": 1, + "Two": 0, + } + `); + }); + }); + + describe('#byDataColorPaletteMap', () => { + let datatable: Datatable; + let paletteDefinition: PaletteDefinition; + let palette: PaletteOutput; + const columnId = 'foo'; + + beforeEach(() => { + datatable = { + rows: [ + { + [columnId]: '1', + }, + { + [columnId]: '2', + }, + ], + } as unknown as Datatable; + paletteDefinition = chartPluginMock.createPaletteRegistry().get('default'); + palette = { type: 'palette' } as PaletteOutput; + }); + + it('should create byDataColorPaletteMap', () => { + expect(byDataColorPaletteMap(datatable, columnId, paletteDefinition, palette)) + .toMatchInlineSnapshot(` + Object { + "getColor": [Function], + } + `); + }); + + it('should get color', () => { + const colorPaletteMap = byDataColorPaletteMap( + datatable, + columnId, + paletteDefinition, + palette + ); + + expect(colorPaletteMap.getColor('1')).toBe('black'); + }); + + it('should return undefined in case if values not in datatable', () => { + const colorPaletteMap = byDataColorPaletteMap( + datatable, + columnId, + paletteDefinition, + palette + ); + + expect(colorPaletteMap.getColor('wrong')).toBeUndefined(); + }); + + it('should increase rankAtDepth for each new value', () => { + const colorPaletteMap = byDataColorPaletteMap( + datatable, + columnId, + paletteDefinition, + palette + ); + colorPaletteMap.getColor('1'); + colorPaletteMap.getColor('2'); + + expect(paletteDefinition.getCategoricalColor).toHaveBeenNthCalledWith( + 1, + [{ name: '1', rankAtDepth: 0, totalSeriesAtDepth: 2 }], + { behindText: false }, + undefined + ); + + expect(paletteDefinition.getCategoricalColor).toHaveBeenNthCalledWith( + 2, + [{ name: '2', rankAtDepth: 1, totalSeriesAtDepth: 2 }], + { behindText: false }, + undefined + ); + }); + }); }); diff --git a/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts b/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts index d2858efa90153..bdffacde65639 100644 --- a/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts +++ b/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts @@ -5,9 +5,11 @@ * 2.0. */ -import { Datum, LayerValue } from '@elastic/charts'; -import { Datatable, DatatableColumn } from 'src/plugins/expressions/public'; -import { LensFilterEvent } from '../types'; +import type { Datum, LayerValue } from '@elastic/charts'; +import type { Datatable, DatatableColumn } from 'src/plugins/expressions/public'; +import type { LensFilterEvent } from '../types'; +import type { PieChartTypes } from '../../common/expressions/pie_chart/types'; +import type { PaletteDefinition, PaletteOutput } from '../../../../../src/plugins/charts/public'; export function getSliceValue(d: Datum, metricColumn: DatatableColumn) { const value = d[metricColumn.id]; @@ -35,3 +37,61 @@ export function getFilterContext( })), }; } + +export const isPartitionShape = (shape: PieChartTypes | string) => + ['donut', 'pie', 'treemap', 'mosaic'].includes(shape); + +export const isTreemapOrMosaicShape = (shape: PieChartTypes | string) => + ['treemap', 'mosaic'].includes(shape); + +export const extractUniqTermsMap = (dataTable: Datatable, columnId: string) => + [...new Set(dataTable.rows.map((item) => item[columnId]))].reduce( + (acc, item, index) => ({ + ...acc, + [item]: index, + }), + {} + ); + +export const byDataColorPaletteMap = ( + dataTable: Datatable, + columnId: string, + paletteDefinition: PaletteDefinition, + { params }: PaletteOutput +) => { + const colorMap = new Map<string, string | undefined>( + dataTable.rows.map((item) => [String(item[columnId]), undefined]) + ); + let rankAtDepth = 0; + + return { + getColor: (item: unknown) => { + const key = String(item); + + if (colorMap.has(key)) { + let color = colorMap.get(key); + + if (color) { + return color; + } + color = + paletteDefinition.getCategoricalColor( + [ + { + name: key, + totalSeriesAtDepth: colorMap.size, + rankAtDepth: rankAtDepth++, + }, + ], + { + behindText: false, + }, + params + ) || undefined; + + colorMap.set(key, color); + return color; + } + }, + }; +}; diff --git a/x-pack/plugins/lens/public/pie_visualization/suggestions.test.ts b/x-pack/plugins/lens/public/pie_visualization/suggestions.test.ts index 5a57371eb6459..656d00960766e 100644 --- a/x-pack/plugins/lens/public/pie_visualization/suggestions.test.ts +++ b/x-pack/plugins/lens/public/pie_visualization/suggestions.test.ts @@ -6,9 +6,9 @@ */ import { PaletteOutput } from 'src/plugins/charts/public'; -import { DataType, SuggestionRequest } from '../types'; import { suggestions } from './suggestions'; -import { PieVisualizationState } from '../../common/expressions'; +import type { DataType, SuggestionRequest } from '../types'; +import type { PieLayerState, PieVisualizationState } from '../../common/expressions'; import { layerTypes } from '../../common'; describe('suggestions', () => { @@ -144,6 +144,38 @@ describe('suggestions', () => { ).toHaveLength(0); }); + it('should not reject histogram operations in case of switching between partition charts', () => { + expect( + suggestions({ + table: { + layerId: 'first', + isMultiRow: true, + columns: [ + { + columnId: 'b', + operation: { + label: 'Durations', + dataType: 'number' as DataType, + isBucketed: true, + scale: 'interval', + }, + }, + { + columnId: 'c', + operation: { label: 'Count', dataType: 'number' as DataType, isBucketed: false }, + }, + ], + changeType: 'initial', + }, + state: { + shape: 'mosaic', + layers: [{} as PieLayerState], + }, + keptLayerIds: ['first'], + }).length + ).toBeGreaterThan(0); + }); + it('should reject when there are too many buckets', () => { expect( suggestions({ @@ -272,7 +304,7 @@ describe('suggestions', () => { state: undefined, keptLayerIds: ['first'], }); - expect(currentSuggestions).toHaveLength(3); + expect(currentSuggestions).toHaveLength(4); expect(currentSuggestions.every((s) => s.hide)).toEqual(true); }); @@ -292,7 +324,7 @@ describe('suggestions', () => { state: undefined, keptLayerIds: ['first'], }); - expect(currentSuggestions).toHaveLength(3); + expect(currentSuggestions).toHaveLength(4); expect(currentSuggestions.every((s) => s.hide)).toEqual(true); }); @@ -721,4 +753,172 @@ describe('suggestions', () => { ); }); }); + + describe('mosaic', () => { + it('should reject when currently active and unchanged data', () => { + expect( + suggestions({ + table: { + layerId: 'first', + isMultiRow: true, + columns: [], + changeType: 'unchanged', + }, + state: { + shape: 'mosaic', + layers: [ + { + layerId: 'first', + layerType: layerTypes.DATA, + groups: [], + metric: 'a', + + numberDisplay: 'hidden', + categoryDisplay: 'default', + legendDisplay: 'default', + }, + ], + }, + keptLayerIds: ['first'], + }) + ).toHaveLength(0); + }); + + it('mosaic type should be added only in case of 2 groups', () => { + expect( + suggestions({ + table: { + layerId: 'first', + isMultiRow: true, + columns: [ + { + columnId: 'a', + operation: { label: 'Top 5', dataType: 'string' as DataType, isBucketed: true }, + }, + { + columnId: 'b', + operation: { label: 'Top 6', dataType: 'string' as DataType, isBucketed: true }, + }, + { + columnId: 'c', + operation: { label: 'Count', dataType: 'number' as DataType, isBucketed: false }, + }, + ], + changeType: 'unchanged', + }, + state: { + shape: 'treemap', + layers: [ + { + layerId: 'first', + layerType: layerTypes.DATA, + groups: ['a', 'b'], + metric: 'c', + + numberDisplay: 'hidden', + categoryDisplay: 'inside', + legendDisplay: 'show', + percentDecimals: 0, + legendMaxLines: 1, + truncateLegend: true, + nestedLegend: true, + }, + ], + }, + keptLayerIds: ['first'], + }).filter(({ hide, state }) => !hide && state.shape === 'mosaic') + ).toMatchInlineSnapshot(` + Array [ + Object { + "hide": false, + "previewIcon": "bullseye", + "score": 0.6, + "state": Object { + "layers": Array [ + Object { + "categoryDisplay": "default", + "groups": Array [ + "a", + "b", + ], + "layerId": "first", + "layerType": "data", + "legendDisplay": "show", + "legendMaxLines": 1, + "metric": "c", + "nestedLegend": true, + "numberDisplay": "hidden", + "percentDecimals": 0, + "truncateLegend": true, + }, + ], + "palette": undefined, + "shape": "mosaic", + }, + "title": "As Mosaic", + }, + ] + `); + }); + + it('mosaic type should be added only in case of 2 groups (negative test)', () => { + const meta: Parameters<typeof suggestions>[0] = { + table: { + layerId: 'first', + isMultiRow: true, + columns: [ + { + columnId: 'a', + operation: { label: 'Top 5', dataType: 'string' as DataType, isBucketed: true }, + }, + { + columnId: 'c', + operation: { label: 'Count', dataType: 'number' as DataType, isBucketed: false }, + }, + ], + changeType: 'unchanged', + }, + state: { + shape: 'pie', + layers: [ + { + layerId: 'first', + layerType: layerTypes.DATA, + groups: ['a', 'b'], + metric: 'c', + + numberDisplay: 'hidden', + categoryDisplay: 'inside', + legendDisplay: 'show', + percentDecimals: 0, + legendMaxLines: 1, + truncateLegend: true, + nestedLegend: true, + }, + ], + }, + keptLayerIds: ['first'], + }; + + // test with 1 group + expect( + suggestions(meta).filter(({ hide, state }) => !hide && state.shape === 'mosaic') + ).toMatchInlineSnapshot(`Array []`); + + meta.table.columns.push({ + columnId: 'b', + operation: { label: 'Top 6', dataType: 'string' as DataType, isBucketed: true }, + }); + + meta.table.columns.push({ + columnId: 'c', + operation: { label: 'Top 7', dataType: 'string' as DataType, isBucketed: true }, + }); + + // test with 3 groups + expect( + suggestions(meta).filter(({ hide, state }) => !hide && state.shape === 'mosaic') + ).toMatchInlineSnapshot(`Array []`); + }); + }); }); diff --git a/x-pack/plugins/lens/public/pie_visualization/suggestions.ts b/x-pack/plugins/lens/public/pie_visualization/suggestions.ts index 9078e18588a2f..30cd63752f420 100644 --- a/x-pack/plugins/lens/public/pie_visualization/suggestions.ts +++ b/x-pack/plugins/lens/public/pie_visualization/suggestions.ts @@ -7,17 +7,26 @@ import { partition } from 'lodash'; import { i18n } from '@kbn/i18n'; -import type { SuggestionRequest, VisualizationSuggestion } from '../types'; +import type { SuggestionRequest, TableSuggestionColumn, VisualizationSuggestion } from '../types'; import { layerTypes } from '../../common'; import type { PieVisualizationState } from '../../common/expressions'; -import { CHART_NAMES, MAX_PIE_BUCKETS, MAX_TREEMAP_BUCKETS } from './constants'; +import { CHART_NAMES, MAX_MOSAIC_BUCKETS, MAX_PIE_BUCKETS, MAX_TREEMAP_BUCKETS } from './constants'; +import { isPartitionShape, isTreemapOrMosaicShape } from './render_helpers'; + +function hasIntervalScale(columns: TableSuggestionColumn[]) { + return columns.some((col) => col.operation.scale === 'interval'); +} + +function shouldReject({ table, keptLayerIds, state }: SuggestionRequest<PieVisualizationState>) { + // Histograms are not good for pi. But we should not reject them on switching between partition charts. + const shouldRejectIntervals = + state?.shape && isPartitionShape(state.shape) ? false : hasIntervalScale(table.columns); -function shouldReject({ table, keptLayerIds }: SuggestionRequest<PieVisualizationState>) { return ( keptLayerIds.length > 1 || (keptLayerIds.length && table.layerId !== keptLayerIds[0]) || table.changeType === 'reorder' || - table.columns.some((col) => col.operation.scale === 'interval') // Histograms are not good for pie + shouldRejectIntervals ); } @@ -52,7 +61,7 @@ export function suggestions({ const results: Array<VisualizationSuggestion<PieVisualizationState>> = []; - if (groups.length <= MAX_PIE_BUCKETS && subVisualizationId !== 'treemap') { + if (groups.length <= MAX_PIE_BUCKETS && !isTreemapOrMosaicShape(subVisualizationId!)) { let newShape: PieVisualizationState['shape'] = (subVisualizationId as PieVisualizationState['shape']) || 'donut'; if (groups.length !== 1 && !subVisualizationId) { @@ -65,7 +74,7 @@ export function suggestions({ values: { chartName: CHART_NAMES[newShape].label }, description: 'chartName is already translated', }), - score: state && state.shape !== 'treemap' ? 0.6 : 0.4, + score: state && !isTreemapOrMosaicShape(state.shape) ? 0.6 : 0.4, state: { shape: newShape, palette: mainPalette || state?.palette, @@ -92,7 +101,10 @@ export function suggestions({ }, previewIcon: 'bullseye', // dont show suggestions for same type - hide: table.changeType === 'reduced' || (state && state.shape !== 'treemap'), + hide: + table.changeType === 'reduced' || + hasIntervalScale(groups) || + (state && !isTreemapOrMosaicShape(state.shape)), }; results.push(baseSuggestion); @@ -153,7 +165,54 @@ export function suggestions({ }, previewIcon: 'bullseye', // hide treemap suggestions from bottom bar, but keep them for chart switcher - hide: table.changeType === 'reduced' || !state || (state && state.shape === 'treemap'), + hide: + table.changeType === 'reduced' || + !state || + hasIntervalScale(groups) || + (state && state.shape === 'treemap'), + }); + } + + if ( + groups.length <= MAX_MOSAIC_BUCKETS && + (!subVisualizationId || subVisualizationId === 'mosaic') + ) { + results.push({ + title: i18n.translate('xpack.lens.pie.mosaicSuggestionLabel', { + defaultMessage: 'As Mosaic', + }), + score: state?.shape === 'mosaic' ? 0.7 : 0.5, + state: { + shape: 'mosaic', + palette: mainPalette || state?.palette, + layers: [ + state?.layers[0] + ? { + ...state.layers[0], + layerId: table.layerId, + groups: groups.map((col) => col.columnId), + metric: metricColumnId, + categoryDisplay: 'default', + layerType: layerTypes.DATA, + } + : { + layerId: table.layerId, + groups: groups.map((col) => col.columnId), + metric: metricColumnId, + numberDisplay: 'percent', + categoryDisplay: 'default', + legendDisplay: 'default', + nestedLegend: false, + layerType: layerTypes.DATA, + }, + ], + }, + previewIcon: 'bullseye', + hide: + groups.length !== 2 || + table.changeType === 'reduced' || + hasIntervalScale(groups) || + (state && state.shape === 'mosaic'), }); } diff --git a/x-pack/plugins/lens/public/pie_visualization/toolbar.tsx b/x-pack/plugins/lens/public/pie_visualization/toolbar.tsx index 685a8392dcfd3..23003a4ec3404 100644 --- a/x-pack/plugins/lens/public/pie_visualization/toolbar.tsx +++ b/x-pack/plugins/lens/public/pie_visualization/toolbar.tsx @@ -17,7 +17,7 @@ import { } from '@elastic/eui'; import type { Position } from '@elastic/charts'; import type { PaletteRegistry } from 'src/plugins/charts/public'; -import { DEFAULT_PERCENT_DECIMALS } from './constants'; +import { DEFAULT_PERCENT_DECIMALS, CHART_NAMES } from './constants'; import type { PieVisualizationState, SharedPieLayerState } from '../../common/expressions'; import { VisualizationDimensionEditorProps, VisualizationToolbarProps } from '../types'; import { ToolbarPopover, LegendSettingsPopover, useDebouncedValue } from '../shared_components'; @@ -47,48 +47,6 @@ const numberOptions: Array<{ }, ]; -const categoryOptions: Array<{ - value: SharedPieLayerState['categoryDisplay']; - inputDisplay: string; -}> = [ - { - value: 'default', - inputDisplay: i18n.translate('xpack.lens.pieChart.showCategoriesLabel', { - defaultMessage: 'Inside or outside', - }), - }, - { - value: 'inside', - inputDisplay: i18n.translate('xpack.lens.pieChart.fitInsideOnlyLabel', { - defaultMessage: 'Inside only', - }), - }, - { - value: 'hide', - inputDisplay: i18n.translate('xpack.lens.pieChart.categoriesInLegendLabel', { - defaultMessage: 'Hide labels', - }), - }, -]; - -const categoryOptionsTreemap: Array<{ - value: SharedPieLayerState['categoryDisplay']; - inputDisplay: string; -}> = [ - { - value: 'default', - inputDisplay: i18n.translate('xpack.lens.pieChart.showTreemapCategoriesLabel', { - defaultMessage: 'Show labels', - }), - }, - { - value: 'hide', - inputDisplay: i18n.translate('xpack.lens.pieChart.categoriesInLegendLabel', { - defaultMessage: 'Hide labels', - }), - }, -]; - const legendOptions: Array<{ value: SharedPieLayerState['legendDisplay']; label: string; @@ -133,25 +91,27 @@ export function PieToolbar(props: VisualizationToolbarProps<PieVisualizationStat groupPosition="left" buttonDataTestSubj="lnsLabelsButton" > - <EuiFormRow - label={i18n.translate('xpack.lens.pieChart.labelPositionLabel', { - defaultMessage: 'Position', - })} - fullWidth - display="columnCompressed" - > - <EuiSuperSelect - compressed - valueOfSelected={layer.categoryDisplay} - options={state.shape === 'treemap' ? categoryOptionsTreemap : categoryOptions} - onChange={(option) => { - setState({ - ...state, - layers: [{ ...layer, categoryDisplay: option }], - }); - }} - /> - </EuiFormRow> + {state.shape && CHART_NAMES[state.shape].categoryOptions.length ? ( + <EuiFormRow + label={i18n.translate('xpack.lens.pieChart.labelPositionLabel', { + defaultMessage: 'Position', + })} + fullWidth + display="columnCompressed" + > + <EuiSuperSelect + compressed + valueOfSelected={layer.categoryDisplay} + options={CHART_NAMES[state.shape].categoryOptions} + onChange={(option) => { + setState({ + ...state, + layers: [{ ...layer, categoryDisplay: option }], + }); + }} + /> + </EuiFormRow> + ) : null} <EuiFormRow label={i18n.translate('xpack.lens.pieChart.numberLabels', { defaultMessage: 'Values', diff --git a/x-pack/plugins/lens/public/pie_visualization/visualization.tsx b/x-pack/plugins/lens/public/pie_visualization/visualization.tsx index ea89ef0bfb854..f72a6e5bef11e 100644 --- a/x-pack/plugins/lens/public/pie_visualization/visualization.tsx +++ b/x-pack/plugins/lens/public/pie_visualization/visualization.tsx @@ -10,7 +10,12 @@ import { render } from 'react-dom'; import { i18n } from '@kbn/i18n'; import { FormattedMessage, I18nProvider } from '@kbn/i18n/react'; import type { PaletteRegistry } from 'src/plugins/charts/public'; -import type { Visualization, OperationMetadata, AccessorConfig } from '../types'; +import type { + Visualization, + OperationMetadata, + AccessorConfig, + VisualizationDimensionGroupConfig, +} from '../types'; import { toExpression, toPreviewExpression } from './to_expression'; import type { PieLayerState, PieVisualizationState } from '../../common/expressions'; import { layerTypes } from '../../common'; @@ -35,6 +40,24 @@ const bucketedOperations = (op: OperationMetadata) => op.isBucketed; const numberMetricOperations = (op: OperationMetadata) => !op.isBucketed && op.dataType === 'number'; +const applyPaletteToColumnConfig = ( + columns: AccessorConfig[], + { shape, palette }: PieVisualizationState, + paletteService: PaletteRegistry +) => { + const colorPickerIndex = shape === 'mosaic' ? columns.length - 1 : 0; + + if (colorPickerIndex >= 0) { + columns[colorPickerIndex] = { + columnId: columns[colorPickerIndex].columnId, + triggerIcon: 'colorBy', + palette: paletteService + .get(palette?.name || 'default') + .getCategoricalColors(10, palette?.params), + }; + } +}; + export const getPieVisualization = ({ paletteService, }: { @@ -61,6 +84,13 @@ export const getPieVisualization = ({ label: CHART_NAMES.treemap.label, groupLabel: CHART_NAMES.treemap.groupLabel, }, + { + id: 'mosaic', + icon: CHART_NAMES.mosaic.icon, + label: CHART_NAMES.mosaic.label, + showExperimentalBadge: true, + groupLabel: CHART_NAMES.mosaic.groupLabel, + }, ], getVisualizationTypeId(state) { @@ -79,13 +109,7 @@ export const getPieVisualization = ({ }, getDescription(state) { - if (state.shape === 'treemap') { - return CHART_NAMES.treemap; - } - if (state.shape === 'donut') { - return CHART_NAMES.donut; - } - return CHART_NAMES.pie; + return CHART_NAMES[state.shape] ?? CHART_NAMES.pie; }, switchVisualizationType: (visualizationTypeId, state) => ({ @@ -122,76 +146,58 @@ export const getPieVisualization = ({ const sortedColumns: AccessorConfig[] = Array.from( new Set(originalOrder.concat(layer.groups)) ).map((accessor) => ({ columnId: accessor })); - if (sortedColumns.length > 0) { - sortedColumns[0] = { - columnId: sortedColumns[0].columnId, - triggerIcon: 'colorBy', - palette: paletteService - .get(state.palette?.name || 'default') - .getCategoricalColors(10, state.palette?.params), - }; + + if (sortedColumns.length) { + applyPaletteToColumnConfig(sortedColumns, state, paletteService); } - if (state.shape === 'treemap') { - return { - groups: [ - { - groupId: 'groups', + const getSliceByGroup = (): VisualizationDimensionGroupConfig => { + const baseProps = { + required: true, + groupId: 'groups', + accessors: sortedColumns, + enableDimensionEditor: true, + filterOperations: bucketedOperations, + }; + + switch (state.shape) { + case 'mosaic': + case 'treemap': + return { + ...baseProps, groupLabel: i18n.translate('xpack.lens.pie.treemapGroupLabel', { defaultMessage: 'Group by', }), - layerId, - accessors: sortedColumns, supportsMoreColumns: sortedColumns.length < MAX_TREEMAP_BUCKETS, - filterOperations: bucketedOperations, - required: true, dataTestSubj: 'lnsPie_groupByDimensionPanel', - enableDimensionEditor: true, - }, - { - groupId: 'metric', - groupLabel: i18n.translate('xpack.lens.pie.groupsizeLabel', { - defaultMessage: 'Size by', + requiredMinDimensionCount: state.shape === 'mosaic' ? 2 : undefined, + }; + default: + return { + ...baseProps, + groupLabel: i18n.translate('xpack.lens.pie.sliceGroupLabel', { + defaultMessage: 'Slice by', }), - layerId, - accessors: layer.metric ? [{ columnId: layer.metric }] : [], - supportsMoreColumns: !layer.metric, - filterOperations: numberMetricOperations, - required: true, - dataTestSubj: 'lnsPie_sizeByDimensionPanel', - }, - ], - }; - } + supportsMoreColumns: sortedColumns.length < MAX_PIE_BUCKETS, + dataTestSubj: 'lnsPie_sliceByDimensionPanel', + }; + } + }; + + const getMetricGroup = (): VisualizationDimensionGroupConfig => ({ + groupId: 'metric', + groupLabel: i18n.translate('xpack.lens.pie.groupsizeLabel', { + defaultMessage: 'Size by', + }), + accessors: layer.metric ? [{ columnId: layer.metric }] : [], + supportsMoreColumns: !layer.metric, + filterOperations: numberMetricOperations, + required: true, + dataTestSubj: 'lnsPie_sizeByDimensionPanel', + }); return { - groups: [ - { - groupId: 'groups', - groupLabel: i18n.translate('xpack.lens.pie.sliceGroupLabel', { - defaultMessage: 'Slice by', - }), - layerId, - accessors: sortedColumns, - supportsMoreColumns: sortedColumns.length < MAX_PIE_BUCKETS, - filterOperations: bucketedOperations, - required: true, - dataTestSubj: 'lnsPie_sliceByDimensionPanel', - enableDimensionEditor: true, - }, - { - groupId: 'metric', - groupLabel: i18n.translate('xpack.lens.pie.groupsizeLabel', { - defaultMessage: 'Size by', - }), - layerId, - accessors: layer.metric ? [{ columnId: layer.metric }] : [], - supportsMoreColumns: !layer.metric, - filterOperations: numberMetricOperations, - required: true, - dataTestSubj: 'lnsPie_sizeByDimensionPanel', - }, - ], + groups: [getSliceByGroup(), getMetricGroup()], }; }, diff --git a/x-pack/plugins/lens/public/plugin.ts b/x-pack/plugins/lens/public/plugin.ts index fb0a922c7e9a2..5724e98f9bba9 100644 --- a/x-pack/plugins/lens/public/plugin.ts +++ b/x-pack/plugins/lens/public/plugin.ts @@ -35,7 +35,7 @@ import type { ChartsPluginSetup, ChartsPluginStart } from '../../../../src/plugi import type { PresentationUtilPluginStart } from '../../../../src/plugins/presentation_util/public'; import { EmbeddableStateTransfer } from '../../../../src/plugins/embeddable/public'; import type { EditorFrameService as EditorFrameServiceType } from './editor_frame_service'; -import { IndexPatternFieldEditorStart } from '../../../../src/plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../../src/plugins/data_view_field_editor/public'; import type { IndexPatternDatasource as IndexPatternDatasourceType, IndexPatternDatasourceSetupPlugins, @@ -109,7 +109,7 @@ export interface LensPluginStartDependencies { charts: ChartsPluginStart; savedObjectsTagging?: SavedObjectTaggingPluginStart; presentationUtil: PresentationUtilPluginStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; inspector: InspectorStartContract; spaces: SpacesPluginStart; usageCollection?: UsageCollectionStart; diff --git a/x-pack/plugins/lens/public/shared_components/coloring/color_stops.test.tsx b/x-pack/plugins/lens/public/shared_components/coloring/color_stops.test.tsx index b6482b0d89e04..5489c0cbd9693 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/color_stops.test.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/color_stops.test.tsx @@ -58,6 +58,33 @@ describe('Color Stops component', () => { ).toBe(true); }); + it('should disable "add new" button if there is maxStops configured', () => { + props.colorStops = [ + { color: '#aaa', stop: 20 }, + { color: '#bbb', stop: 40 }, + { color: '#ccc', stop: 60 }, + { color: '#ccc', stop: 80 }, + { color: '#ccc', stop: 90 }, + ]; + const component = mount(<CustomStops {...props} />); + const componentWithMaxSteps = mount( + <CustomStops {...props} paletteConfiguration={{ maxSteps: 5 }} /> + ); + expect( + component + .find('[data-test-subj="my-test_dynamicColoring_addStop"]') + .first() + .prop('isDisabled') + ).toBe(false); + + expect( + componentWithMaxSteps + .find('[data-test-subj="my-test_dynamicColoring_addStop"]') + .first() + .prop('isDisabled') + ).toBe(true); + }); + it('should add a new stop with default color and reasonable distance from last one', () => { let component = mount(<CustomStops {...props} />); const addStopButton = component diff --git a/x-pack/plugins/lens/public/shared_components/coloring/color_stops.tsx b/x-pack/plugins/lens/public/shared_components/coloring/color_stops.tsx index 1431e6ad135be..65f07351021b7 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/color_stops.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/color_stops.tsx @@ -22,7 +22,7 @@ import useUnmount from 'react-use/lib/useUnmount'; import { DEFAULT_COLOR } from './constants'; import { getDataMinMax, getStepValue, isValidColor } from './utils'; import { TooltipWrapper, useDebouncedValue } from '../index'; -import type { ColorStop, CustomPaletteParams } from '../../../common'; +import type { ColorStop, CustomPaletteParamsConfig } from '../../../common'; const idGeneratorFn = htmlIdGenerator(); @@ -44,7 +44,7 @@ export interface CustomStopsProps { colorStops: ColorStop[]; onChange: (colorStops: ColorStop[]) => void; dataBounds: { min: number; max: number }; - paletteConfiguration: CustomPaletteParams | undefined; + paletteConfiguration: CustomPaletteParamsConfig | undefined; 'data-test-prefix': string; } export const CustomStops = ({ @@ -80,6 +80,9 @@ export const CustomStops = ({ }); const [sortedReason, setSortReason] = useState<string>(''); const shouldEnableDelete = localColorStops.length > 2; + const shouldDisableAdd = Boolean( + paletteConfiguration?.maxSteps && localColorStops.length >= paletteConfiguration?.maxSteps + ); const [popoverInFocus, setPopoverInFocus] = useState<boolean>(false); @@ -257,38 +260,51 @@ export const CustomStops = ({ <EuiSpacer size="s" /> - <EuiButtonEmpty - data-test-subj={`${dataTestPrefix}_dynamicColoring_addStop`} - iconType="plusInCircle" - color="primary" - aria-label={i18n.translate('xpack.lens.dynamicColoring.customPalette.addColorStop', { - defaultMessage: 'Add color stop', - })} - size="xs" - flush="left" - onClick={() => { - const newColorStops = [...localColorStops]; - const length = newColorStops.length; - const { max } = getDataMinMax(rangeType, dataBounds); - const step = getStepValue( - colorStops, - newColorStops.map(({ color, stop }) => ({ color, stop: Number(stop) })), - max - ); - const prevColor = localColorStops[length - 1].color || DEFAULT_COLOR; - const newStop = step + Number(localColorStops[length - 1].stop); - newColorStops.push({ - color: prevColor, - stop: String(newStop), - id: idGeneratorFn(), - }); - setLocalColorStops(newColorStops); - }} + <TooltipWrapper + tooltipContent={i18n.translate( + 'xpack.lens.dynamicColoring.customPalette.maximumStepsApplied', + { + defaultMessage: `You've applied the maximum number of steps`, + } + )} + condition={shouldDisableAdd} + position="top" + delay="regular" > - {i18n.translate('xpack.lens.dynamicColoring.customPalette.addColorStop', { - defaultMessage: 'Add color stop', - })} - </EuiButtonEmpty> + <EuiButtonEmpty + data-test-subj={`${dataTestPrefix}_dynamicColoring_addStop`} + iconType="plusInCircle" + color="primary" + aria-label={i18n.translate('xpack.lens.dynamicColoring.customPalette.addColorStop', { + defaultMessage: 'Add color stop', + })} + size="xs" + isDisabled={shouldDisableAdd} + flush="left" + onClick={() => { + const newColorStops = [...localColorStops]; + const length = newColorStops.length; + const { max } = getDataMinMax(rangeType, dataBounds); + const step = getStepValue( + colorStops, + newColorStops.map(({ color, stop }) => ({ color, stop: Number(stop) })), + max + ); + const prevColor = localColorStops[length - 1].color || DEFAULT_COLOR; + const newStop = step + Number(localColorStops[length - 1].stop); + newColorStops.push({ + color: prevColor, + stop: String(newStop), + id: idGeneratorFn(), + }); + setLocalColorStops(newColorStops); + }} + > + {i18n.translate('xpack.lens.dynamicColoring.customPalette.addColorStop', { + defaultMessage: 'Add color stop', + })} + </EuiButtonEmpty> + </TooltipWrapper> </> ); }; diff --git a/x-pack/plugins/lens/public/shared_components/coloring/constants.ts b/x-pack/plugins/lens/public/shared_components/coloring/constants.ts index 29b50d3aee22d..fafa2cd613930 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/constants.ts +++ b/x-pack/plugins/lens/public/shared_components/coloring/constants.ts @@ -16,6 +16,7 @@ export const DEFAULT_MAX_STOP = 100; export const DEFAULT_COLOR_STEPS = 5; export const DEFAULT_COLOR = '#6092C0'; // Same as EUI ColorStops default for new stops export const defaultPaletteParams: RequiredPaletteParamTypes = { + maxSteps: undefined, name: DEFAULT_PALETTE_NAME, reverse: false, rangeType: 'percent', diff --git a/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.test.tsx b/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.test.tsx index 120975b5f3859..0840c19495eaa 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.test.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.test.tsx @@ -257,6 +257,17 @@ describe('palette panel', () => { }) ); }); + + it('should not render the switch disabled from props', () => { + const instance = mountWithIntl( + <CustomizablePalette {...props} showRangeTypeSelector={false} /> + ); + expect( + instance + .find('[data-test-subj="lnsPalettePanel_dynamicColoring_custom_range_groups"]') + .exists() + ).toBe(false); + }); }); describe('custom stops', () => { diff --git a/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.tsx b/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.tsx index 0493a212f46de..d1f1bc813deab 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/palette_configuration.tsx @@ -73,12 +73,14 @@ export function CustomizablePalette({ setPalette, dataBounds, showContinuity = true, + showRangeTypeSelector = true, }: { palettes: PaletteRegistry; activePalette?: PaletteOutput<CustomPaletteParams>; setPalette: (palette: PaletteOutput<CustomPaletteParams>) => void; dataBounds?: { min: number; max: number }; showContinuity?: boolean; + showRangeTypeSelector?: boolean; }) { if (!dataBounds || !activePalette) { return null; @@ -218,98 +220,100 @@ export function CustomizablePalette({ /> </EuiFormRow> )} - <EuiFormRow - label={ - <> - {i18n.translate('xpack.lens.table.dynamicColoring.rangeType.label', { - defaultMessage: 'Value type', - })}{' '} - <EuiIconTip - content={i18n.translate( - 'xpack.lens.table.dynamicColoring.customPalette.colorStopsHelpPercentage', - { - defaultMessage: - 'Percent value types are relative to the full range of available data values.', - } - )} - position="top" - size="s" - /> - </> - } - display="rowCompressed" - > - <EuiButtonGroup - isFullWidth - legend={i18n.translate('xpack.lens.table.dynamicColoring.rangeType.label', { - defaultMessage: 'Value type', - })} - data-test-subj="lnsPalettePanel_dynamicColoring_custom_range_groups" - name="dynamicColoringRangeType" - buttonSize="compressed" - options={[ - { - id: `${idPrefix}percent`, - label: i18n.translate('xpack.lens.table.dynamicColoring.rangeType.percent', { - defaultMessage: 'Percent', - }), - 'data-test-subj': 'lnsPalettePanel_dynamicColoring_rangeType_groups_percent', - }, - { - id: `${idPrefix}number`, - label: i18n.translate('xpack.lens.table.dynamicColoring.rangeType.number', { - defaultMessage: 'Number', - }), - 'data-test-subj': 'lnsPalettePanel_dynamicColoring_rangeType_groups_number', - }, - ]} - idSelected={ - activePalette.params?.rangeType - ? `${idPrefix}${activePalette.params?.rangeType}` - : `${idPrefix}percent` + {showRangeTypeSelector && ( + <EuiFormRow + label={ + <> + {i18n.translate('xpack.lens.table.dynamicColoring.rangeType.label', { + defaultMessage: 'Value type', + })}{' '} + <EuiIconTip + content={i18n.translate( + 'xpack.lens.table.dynamicColoring.customPalette.colorStopsHelpPercentage', + { + defaultMessage: + 'Percent value types are relative to the full range of available data values.', + } + )} + position="top" + size="s" + /> + </> } - onChange={(id) => { - const newRangeType = id.replace( - idPrefix, - '' - ) as RequiredPaletteParamTypes['rangeType']; + display="rowCompressed" + > + <EuiButtonGroup + isFullWidth + legend={i18n.translate('xpack.lens.table.dynamicColoring.rangeType.label', { + defaultMessage: 'Value type', + })} + data-test-subj="lnsPalettePanel_dynamicColoring_custom_range_groups" + name="dynamicColoringRangeType" + buttonSize="compressed" + options={[ + { + id: `${idPrefix}percent`, + label: i18n.translate('xpack.lens.table.dynamicColoring.rangeType.percent', { + defaultMessage: 'Percent', + }), + 'data-test-subj': 'lnsPalettePanel_dynamicColoring_rangeType_groups_percent', + }, + { + id: `${idPrefix}number`, + label: i18n.translate('xpack.lens.table.dynamicColoring.rangeType.number', { + defaultMessage: 'Number', + }), + 'data-test-subj': 'lnsPalettePanel_dynamicColoring_rangeType_groups_number', + }, + ]} + idSelected={ + activePalette.params?.rangeType + ? `${idPrefix}${activePalette.params?.rangeType}` + : `${idPrefix}percent` + } + onChange={(id) => { + const newRangeType = id.replace( + idPrefix, + '' + ) as RequiredPaletteParamTypes['rangeType']; - const params: CustomPaletteParams = { rangeType: newRangeType }; - const { min: newMin, max: newMax } = getDataMinMax(newRangeType, dataBounds); - const { min: oldMin, max: oldMax } = getDataMinMax( - activePalette.params?.rangeType, - dataBounds - ); - const newColorStops = remapStopsByNewInterval(colorStopsToShow, { - oldInterval: oldMax - oldMin, - newInterval: newMax - newMin, - newMin, - oldMin, - }); - if (isCurrentPaletteCustom) { - const stops = getPaletteStops( - palettes, - { ...activePalette.params, colorStops: newColorStops, ...params }, - { dataBounds } - ); - params.colorStops = newColorStops; - params.stops = stops; - } else { - params.stops = getPaletteStops( - palettes, - { ...activePalette.params, ...params }, - { prevPalette: activePalette.name, dataBounds } + const params: CustomPaletteParams = { rangeType: newRangeType }; + const { min: newMin, max: newMax } = getDataMinMax(newRangeType, dataBounds); + const { min: oldMin, max: oldMax } = getDataMinMax( + activePalette.params?.rangeType, + dataBounds ); - } - // why not use newMin/newMax here? - // That's because there's the concept of continuity to accomodate, where in some scenarios it has to - // take into account the stop value rather than the data value - params.rangeMin = newColorStops[0].stop; - params.rangeMax = newColorStops[newColorStops.length - 1].stop; - setPalette(mergePaletteParams(activePalette, params)); - }} - /> - </EuiFormRow> + const newColorStops = remapStopsByNewInterval(colorStopsToShow, { + oldInterval: oldMax - oldMin, + newInterval: newMax - newMin, + newMin, + oldMin, + }); + if (isCurrentPaletteCustom) { + const stops = getPaletteStops( + palettes, + { ...activePalette.params, colorStops: newColorStops, ...params }, + { dataBounds } + ); + params.colorStops = newColorStops; + params.stops = stops; + } else { + params.stops = getPaletteStops( + palettes, + { ...activePalette.params, ...params }, + { prevPalette: activePalette.name, dataBounds } + ); + } + // why not use newMin/newMax here? + // That's because there's the concept of continuity to accomodate, where in some scenarios it has to + // take into account the stop value rather than the data value + params.rangeMin = newColorStops[0].stop; + params.rangeMax = newColorStops[newColorStops.length - 1].stop; + setPalette(mergePaletteParams(activePalette, params)); + }} + /> + </EuiFormRow> + )} <EuiFormRow display="rowCompressed" label={i18n.translate('xpack.lens.table.dynamicColoring.customPalette.colorStopsLabel', { diff --git a/x-pack/plugins/lens/public/shared_components/coloring/palette_panel_container.tsx b/x-pack/plugins/lens/public/shared_components/coloring/palette_panel_container.tsx index b546ffe5fb6fb..abcd714b3af97 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/palette_panel_container.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/palette_panel_container.tsx @@ -56,6 +56,7 @@ export function PalettePanelContainer({ <div role="dialog" aria-labelledby="lnsPalettePanelContainerTitle" + data-test-subj="lns-indexPattern-PalettePanelContainer" className="lnsPalettePanelContainer" > <EuiFlyoutHeader hasBorder className="lnsPalettePanelContainer__header"> diff --git a/x-pack/plugins/lens/public/shared_components/coloring/palette_picker.tsx b/x-pack/plugins/lens/public/shared_components/coloring/palette_picker.tsx index b21b732820eaa..19da4eef29969 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/palette_picker.tsx +++ b/x-pack/plugins/lens/public/shared_components/coloring/palette_picker.tsx @@ -27,7 +27,10 @@ function getCustomPaletteConfig( if (activePalette && activePalette.name !== CUSTOM_PALETTE) { const currentPalette = palettes.get(activePalette.name); if (currentPalette) { - const stops = currentPalette.getCategoricalColors(DEFAULT_COLOR_STEPS, activePalette?.params); + const stops = currentPalette.getCategoricalColors( + activePalette?.params?.steps || DEFAULT_COLOR_STEPS, + activePalette?.params + ); const palette = activePalette.params?.reverse ? stops.reverse() : stops; return { value: id, @@ -76,7 +79,7 @@ export function PalettePicker({ ) .map(({ id, title, getCategoricalColors }) => { const colors = getCategoricalColors( - DEFAULT_COLOR_STEPS, + activePalette?.params?.steps || DEFAULT_COLOR_STEPS, id === activePalette?.name ? activePalette?.params : undefined ); return { diff --git a/x-pack/plugins/lens/public/shared_components/coloring/utils.ts b/x-pack/plugins/lens/public/shared_components/coloring/utils.ts index 182e502563cd0..6b61b4e568cf4 100644 --- a/x-pack/plugins/lens/public/shared_components/coloring/utils.ts +++ b/x-pack/plugins/lens/public/shared_components/coloring/utils.ts @@ -42,19 +42,19 @@ export function applyPaletteParams<T extends PaletteOutput<CustomPaletteParams>> dataBounds: { min: number; max: number } ) { // make a copy of it as they have to be manipulated later on - let displayStops = getPaletteStops(palettes, activePalette?.params || {}, { + const displayStops = getPaletteStops(palettes, activePalette?.params || {}, { dataBounds, defaultPaletteName: activePalette?.name, }); if (activePalette?.params?.reverse && activePalette?.params?.name !== CUSTOM_PALETTE) { - displayStops = reversePalette(displayStops); + return reversePalette(displayStops); } return displayStops; } // Need to shift the Custom palette in order to correctly visualize it when in display mode -function shiftPalette(stops: ColorStop[], max: number) { +export function shiftPalette(stops: ColorStop[], max: number) { // shift everything right and add an additional stop at the end const result = stops.map((entry, i, array) => ({ ...entry, @@ -136,14 +136,16 @@ export function getPaletteStops( // need to generate the palette from the existing controlStops return shiftPalette(activePaletteParams.colorStops, maxValue); } + + const steps = activePaletteParams?.steps || defaultPaletteParams.steps; // generate a palette from predefined ones and customize the domain const colorStopsFromPredefined = palettes .get( prevPalette || activePaletteParams?.name || defaultPaletteName || defaultPaletteParams.name ) - .getCategoricalColors(defaultPaletteParams.steps, otherParams); + .getCategoricalColors(steps, otherParams); - const newStopsMin = mapFromMinValue ? minValue : interval / defaultPaletteParams.steps; + const newStopsMin = mapFromMinValue ? minValue : interval / steps; const stops = remapStopsByNewInterval( colorStopsFromPredefined.map((color, index) => ({ color, stop: index })), @@ -198,7 +200,8 @@ export function isValidColor(colorString: string) { export function roundStopValues(colorStops: ColorStop[]) { return colorStops.map(({ color, stop }) => { - const roundedStop = Number(stop.toFixed(2)); + // when rounding mind to not go in excess, rather use the floor function + const roundedStop = Number((Math.floor(stop * 100) / 100).toFixed(2)); return { color, stop: roundedStop }; }); } diff --git a/x-pack/plugins/lens/public/shared_components/empty_placeholder.tsx b/x-pack/plugins/lens/public/shared_components/empty_placeholder.tsx index 5812b02759803..8115a9f647e94 100644 --- a/x-pack/plugins/lens/public/shared_components/empty_placeholder.tsx +++ b/x-pack/plugins/lens/public/shared_components/empty_placeholder.tsx @@ -9,17 +9,22 @@ import React from 'react'; import { EuiIcon, EuiText, IconType, EuiSpacer } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -export const EmptyPlaceholder = (props: { icon: IconType }) => ( +const noResultsMessage = ( + <FormattedMessage id="xpack.lens.xyVisualization.noDataLabel" defaultMessage="No results found" /> +); + +export const EmptyPlaceholder = ({ + icon, + message = noResultsMessage, +}: { + icon: IconType; + message?: JSX.Element; +}) => ( <> <EuiText className="lnsChart__empty" textAlign="center" color="subdued" size="xs"> - <EuiIcon type={props.icon} color="subdued" size="l" /> + <EuiIcon type={icon} color="subdued" size="l" /> <EuiSpacer size="s" /> - <p> - <FormattedMessage - id="xpack.lens.xyVisualization.noDataLabel" - defaultMessage="No results found" - /> - </p> + <p>{message}</p> </EuiText> </> ); diff --git a/x-pack/plugins/lens/public/types.ts b/x-pack/plugins/lens/public/types.ts index a9a9539064659..ab6f1d8d55082 100644 --- a/x-pack/plugins/lens/public/types.ts +++ b/x-pack/plugins/lens/public/types.ts @@ -470,6 +470,7 @@ export type VisualizationDimensionGroupConfig = SharedDimensionProps & { supportsMoreColumns: boolean; /** If required, a warning will appear if accessors are empty */ required?: boolean; + requiredMinDimensionCount?: number; dataTestSubj?: string; /** diff --git a/x-pack/plugins/lens/server/routes/existing_fields.ts b/x-pack/plugins/lens/server/routes/existing_fields.ts index 704b248faeadb..d3a79dc7d8bfc 100644 --- a/x-pack/plugins/lens/server/routes/existing_fields.ts +++ b/x-pack/plugins/lens/server/routes/existing_fields.ts @@ -53,8 +53,12 @@ export async function existingFieldsRoute(setup: CoreSetup<PluginStartContract>, }, }, async (context, req, res) => { - const [{ savedObjects, elasticsearch }, { data }] = await setup.getStartServices(); + const [{ savedObjects, elasticsearch, uiSettings }, { data }] = + await setup.getStartServices(); const savedObjectsClient = savedObjects.getScopedClient(req); + const includeFrozen: boolean = await uiSettings + .asScopedToClient(savedObjectsClient) + .get(UI_SETTINGS.SEARCH_INCLUDE_FROZEN); const esClient = elasticsearch.client.asScoped(req).asCurrentUser; try { return res.ok({ @@ -66,6 +70,7 @@ export async function existingFieldsRoute(setup: CoreSetup<PluginStartContract>, esClient ), context, + includeFrozen, }), }); } catch (e) { @@ -103,6 +108,7 @@ async function fetchFieldExistence({ fromDate, toDate, timeFieldName, + includeFrozen, }: { indexPatternId: string; context: RequestHandlerContext; @@ -111,6 +117,7 @@ async function fetchFieldExistence({ fromDate?: string; toDate?: string; timeFieldName?: string; + includeFrozen: boolean; }) { const metaFields: string[] = await context.core.uiSettings.client.get(UI_SETTINGS.META_FIELDS); const indexPattern = await indexPatternsService.get(indexPatternId); @@ -124,6 +131,7 @@ async function fetchFieldExistence({ index: indexPattern.title, timeFieldName: timeFieldName || indexPattern.timeFieldName, fields, + includeFrozen, }); return { @@ -158,6 +166,7 @@ async function fetchIndexPatternStats({ fromDate, toDate, fields, + includeFrozen, }: { client: ElasticsearchClient; index: string; @@ -166,6 +175,7 @@ async function fetchIndexPatternStats({ fromDate?: string; toDate?: string; fields: Field[]; + includeFrozen: boolean; }) { const filter = timeFieldName && fromDate && toDate @@ -193,6 +203,7 @@ async function fetchIndexPatternStats({ const { body: result } = await client.search( { index, + ...(includeFrozen ? { ignore_throttled: false } : {}), body: { size: SAMPLE_SIZE, query, diff --git a/x-pack/plugins/lens/tsconfig.json b/x-pack/plugins/lens/tsconfig.json index 16287ae596df3..25b7789d1e096 100644 --- a/x-pack/plugins/lens/tsconfig.json +++ b/x-pack/plugins/lens/tsconfig.json @@ -21,7 +21,7 @@ { "path": "../global_search/tsconfig.json"}, { "path": "../saved_objects_tagging/tsconfig.json"}, { "path": "../../../src/plugins/data/tsconfig.json"}, - { "path": "../../../src/plugins/index_pattern_field_editor/tsconfig.json"}, + { "path": "../../../src/plugins/data_view_field_editor/tsconfig.json"}, { "path": "../../../src/plugins/charts/tsconfig.json"}, { "path": "../../../src/plugins/expressions/tsconfig.json"}, { "path": "../../../src/plugins/navigation/tsconfig.json" }, diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/builder.stories.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/builder.stories.tsx index 73b7fe53b1ccc..5fcb8270c33ad 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/builder.stories.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/builder.stories.tsx @@ -9,7 +9,7 @@ import { Story, addDecorator } from '@storybook/react'; import React from 'react'; import { HttpStart } from 'kibana/public'; -import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import type { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { EuiThemeProvider } from '../../../../../../../src/plugins/kibana_react/common'; import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; import { getEntryMatchAnyMock } from '../../../../common/schemas/types/entry_match_any.mock'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx index b1357f35d140b..b0a32df8b4d02 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.stories.tsx @@ -14,7 +14,7 @@ import { ListOperatorTypeEnum as OperatorTypeEnum, } from '@kbn/securitysolution-io-ts-list-types'; -import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import type { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { fields } from '../../../../../../../src/plugins/data/common/mocks'; import { EuiThemeProvider } from '../../../../../../../src/plugins/kibana_react/common'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx index a06115c970221..1ac35608f884a 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.test.tsx @@ -20,7 +20,7 @@ import { isOperator, } from '@kbn/securitysolution-list-utils'; import { useFindLists } from '@kbn/securitysolution-list-hooks'; -import { FieldSpec } from 'src/plugins/data/common'; +import type { FieldSpec } from 'src/plugins/data/common'; import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx index e2650b9c8cfb3..88a83b354cf89 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/entry_renderer.tsx @@ -37,7 +37,7 @@ import { } from '@kbn/securitysolution-autocomplete'; import { IndexPatternBase, IndexPatternFieldBase } from '@kbn/es-query'; -import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import type { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { HttpStart } from '../../../../../../../src/core/public'; import { getEmptyValue } from '../../../common/empty_value'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx index 4b3f094aa4f22..708543ac8888e 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/exception_item_renderer.tsx @@ -9,7 +9,7 @@ import React, { useCallback, useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; import { HttpStart } from 'kibana/public'; -import { AutocompleteStart } from 'src/plugins/data/public'; +import type { AutocompleteStart } from 'src/plugins/data/public'; import { ExceptionListType, OsTypeArray } from '@kbn/securitysolution-io-ts-list-types'; import { BuilderEntry, diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx b/x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx index 280dd8acbc7e5..064d227c6f3d4 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx +++ b/x-pack/plugins/lists/public/exceptions/components/builder/exception_items_renderer.tsx @@ -33,7 +33,7 @@ import { } from '@kbn/securitysolution-list-utils'; import { IndexPatternBase } from '@kbn/es-query'; -import { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; +import type { AutocompleteStart } from '../../../../../../../src/plugins/data/public'; import { AndOrBadge } from '../and_or_badge'; import { BuilderExceptionListItemComponent } from './exception_item_renderer'; diff --git a/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts index fab49453958dd..43d392b40e9fd 100644 --- a/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts +++ b/x-pack/plugins/lists/public/exceptions/components/builder/helpers.test.ts @@ -58,7 +58,7 @@ import { ENTRIES_WITH_IDS } from '../../../../common/constants.mock'; import { getEntryExistsMock } from '../../../../common/schemas/types/entry_exists.mock'; import { getExceptionListItemSchemaMock } from '../../../../common/schemas/response/exception_list_item_schema.mock'; import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; -import { FieldSpec } from '../../../../../../../src/plugins/data/common'; +import type { FieldSpec } from '../../../../../../../src/plugins/data/common'; import { getEntryNestedMock } from '../../../../common/schemas/types/entry_nested.mock'; import { getEntryMatchMock } from '../../../../common/schemas/types/entry_match.mock'; import { getEntryMatchAnyMock } from '../../../../common/schemas/types/entry_match_any.mock'; diff --git a/x-pack/plugins/lists/server/services/exception_lists/delete_exception_list_items_by_list.ts b/x-pack/plugins/lists/server/services/exception_lists/delete_exception_list_items_by_list.ts index 23c389f2a5331..873fe66b1ad3b 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/delete_exception_list_items_by_list.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/delete_exception_list_items_by_list.ts @@ -9,7 +9,7 @@ import type { ListId, NamespaceType } from '@kbn/securitysolution-io-ts-list-typ import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { asyncForEach } from '@kbn/std'; -import { SavedObjectsClientContract } from '../../../../../../src/core/server/'; +import { SavedObjectsClientContract } from '../../../../../../src/core/server'; import { findExceptionListItem } from './find_exception_list_item'; diff --git a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list.ts b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list.ts index 2b09642f59c9c..b0b66ffb70d77 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list.ts @@ -16,7 +16,7 @@ import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { SavedObjectsClientContract, SavedObjectsErrorHelpers, -} from '../../../../../../src/core/server/'; +} from '../../../../../../src/core/server'; import { ExceptionListSoSchema } from '../../schemas/saved_objects'; import { transformSavedObjectToExceptionList } from './utils'; diff --git a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_item.ts b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_item.ts index ef825b4cf5e3e..12580af8a1d07 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_item.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_item.ts @@ -16,7 +16,7 @@ import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { SavedObjectsClientContract, SavedObjectsErrorHelpers, -} from '../../../../../../src/core/server/'; +} from '../../../../../../src/core/server'; import { ExceptionListSoSchema } from '../../schemas/saved_objects'; import { transformSavedObjectToExceptionListItem } from './utils'; diff --git a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.ts b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.ts index f5722ea26ccf7..272fd70bcb322 100644 --- a/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.ts +++ b/x-pack/plugins/lists/server/services/exception_lists/get_exception_list_summary.ts @@ -16,7 +16,7 @@ import { getSavedObjectType } from '@kbn/securitysolution-list-utils'; import { SavedObjectsClientContract, SavedObjectsErrorHelpers, -} from '../../../../../../src/core/server/'; +} from '../../../../../../src/core/server'; import { ExceptionListSoSchema } from '../../schemas/saved_objects'; interface GetExceptionListSummaryOptions { diff --git a/x-pack/plugins/logstash/kibana.json b/x-pack/plugins/logstash/kibana.json index 2ff4aac9ba55b..48391c9bc68c4 100644 --- a/x-pack/plugins/logstash/kibana.json +++ b/x-pack/plugins/logstash/kibana.json @@ -11,5 +11,5 @@ "optionalPlugins": ["home", "monitoring", "security"], "server": true, "ui": true, - "requiredBundles": ["home"] + "requiredBundles": ["esUiShared", "home"] } diff --git a/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js b/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js index 334c7d0322a84..9d5f3b2d4af06 100644 --- a/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js +++ b/x-pack/plugins/logstash/public/application/components/pipeline_editor/pipeline_editor.js @@ -15,10 +15,10 @@ import 'brace/theme/github'; import { isEmpty } from 'lodash'; import { TOOLTIPS } from '../../../../common/constants/tooltips'; +import { EuiCodeEditor } from '../../../../../../../src/plugins/es_ui_shared/public'; import { EuiButton, EuiButtonEmpty, - EuiCodeEditor, EuiFlexGroup, EuiFieldNumber, EuiFlexItem, diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.tsx.snap b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.tsx.snap index 58af4d009e43a..dba9fa59dd424 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.tsx.snap +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.tsx.snap @@ -91,7 +91,7 @@ exports[`renderLegendDetailRow categorical Should render categorical legend with isPointsOnly={true} label={ <EuiTextColor - color="secondary" + color="success" > Other </EuiTextColor> diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_icon_property.test.tsx.snap b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_icon_property.test.tsx.snap index 11a4fafda29e1..a3f23536326aa 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_icon_property.test.tsx.snap +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_icon_property.test.tsx.snap @@ -71,7 +71,7 @@ exports[`renderLegendDetailRow Should render categorical legend with breaks 1`] isPointsOnly={true} label={ <EuiTextColor - color="secondary" + color="success" > Other </EuiTextColor> diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx index cfb5d54720ce7..03800fa03827e 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.tsx @@ -425,7 +425,7 @@ export class DynamicColorProperty extends DynamicStyleProperty<ColorDynamicOptio if (defaultColor) { breaks.push({ color: defaultColor, - label: <EuiTextColor color="secondary">{getOtherCategoryLabel()}</EuiTextColor>, + label: <EuiTextColor color="success">{getOtherCategoryLabel()}</EuiTextColor>, symbolId, }); } diff --git a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx index 15672bda941be..b5d5e90efa45f 100644 --- a/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx +++ b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.tsx @@ -129,7 +129,7 @@ export class DynamicIconProperty extends DynamicStyleProperty<IconDynamicOptions if (fallbackSymbolId) { breaks.push({ color: 'grey', - label: <EuiTextColor color="secondary">{getOtherCategoryLabel()}</EuiTextColor>, + label: <EuiTextColor color="success">{getOtherCategoryLabel()}</EuiTextColor>, symbolId: fallbackSymbolId, }); } diff --git a/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx b/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx index dc3ad26b48e84..1a4c8e36b3457 100644 --- a/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx +++ b/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx @@ -217,7 +217,7 @@ export class TooltipSelector extends Component<Props, State> { <EuiButtonIcon className="mapTooltipSelector__grab" iconType="grab" - color="subdued" + color="text" title={i18n.translate('xpack.maps.tooltipSelector.grabButtonTitle', { defaultMessage: 'Reorder property', })} diff --git a/x-pack/plugins/maps/public/connected_components/add_layer_panel/flyout_body/__snapshots__/layer_wizard_select.test.tsx.snap b/x-pack/plugins/maps/public/connected_components/add_layer_panel/flyout_body/__snapshots__/layer_wizard_select.test.tsx.snap index 18e28b715680e..358f1897d184a 100644 --- a/x-pack/plugins/maps/public/connected_components/add_layer_panel/flyout_body/__snapshots__/layer_wizard_select.test.tsx.snap +++ b/x-pack/plugins/maps/public/connected_components/add_layer_panel/flyout_body/__snapshots__/layer_wizard_select.test.tsx.snap @@ -43,6 +43,11 @@ exports[`LayerWizardSelect Should render layer select after layer wizards are lo key="wizard 1" > <EuiCard + betaBadgeProps={ + Object { + "label": undefined, + } + } data-test-subj="wizard1" description="mock wizard without icon" isDisabled={false} @@ -55,6 +60,11 @@ exports[`LayerWizardSelect Should render layer select after layer wizards are lo key="wizard 2" > <EuiCard + betaBadgeProps={ + Object { + "label": undefined, + } + } data-test-subj="wizard2" description="mock wizard with icon" icon={ diff --git a/x-pack/plugins/maps/public/connected_components/add_layer_panel/flyout_body/layer_wizard_select.tsx b/x-pack/plugins/maps/public/connected_components/add_layer_panel/flyout_body/layer_wizard_select.tsx index a4dfb3497078b..d21389f8f6958 100644 --- a/x-pack/plugins/maps/public/connected_components/add_layer_panel/flyout_body/layer_wizard_select.tsx +++ b/x-pack/plugins/maps/public/connected_components/add_layer_panel/flyout_body/layer_wizard_select.tsx @@ -157,7 +157,7 @@ export class LayerWizardSelect extends Component<Props, State> { <EuiCard title={layerWizard.title} titleSize="xs" - betaBadgeLabel={layerWizard.isBeta ? 'beta' : undefined} + betaBadgeProps={{ label: layerWizard.isBeta ? 'beta' : undefined }} icon={icon} onClick={onClick} description={layerWizard.description} diff --git a/x-pack/plugins/maps/public/connected_components/timeslider/timeslider.tsx b/x-pack/plugins/maps/public/connected_components/timeslider/timeslider.tsx index 08d3af09b60a1..c91c6bc5f91c1 100644 --- a/x-pack/plugins/maps/public/connected_components/timeslider/timeslider.tsx +++ b/x-pack/plugins/maps/public/connected_components/timeslider/timeslider.tsx @@ -171,7 +171,7 @@ class KeyedTimeslider extends Component<Props, State> { <EuiButtonIcon onClick={this.props.closeTimeslider} iconType="cross" - color="subdued" + color="text" className="mapTimeslider__close" aria-label={i18n.translate('xpack.maps.timeslider.closeLabel', { defaultMessage: 'Close timeslider', diff --git a/x-pack/plugins/maps/server/mvt/get_grid_tile.ts b/x-pack/plugins/maps/server/mvt/get_grid_tile.ts index 86abff86081a6..59e3d791fd8a9 100644 --- a/x-pack/plugins/maps/server/mvt/get_grid_tile.ts +++ b/x-pack/plugins/maps/server/mvt/get_grid_tile.ts @@ -23,6 +23,7 @@ export async function getEsGridTile({ z, requestBody = {}, requestType = RENDER_AS.POINT, + abortController, }: { x: number; y: number; @@ -33,6 +34,7 @@ export async function getEsGridTile({ logger: Logger; requestBody: any; requestType: RENDER_AS.GRID | RENDER_AS.POINT; + abortController: AbortController; }): Promise<Buffer | null> { try { const path = `/${encodeURIComponent(index)}/_mvt/${geometryFieldName}/${z}/${x}/${y}`; @@ -47,11 +49,16 @@ export async function getEsGridTile({ fields: requestBody.fields, runtime_mappings: requestBody.runtime_mappings, }; - const tile = await context.core.elasticsearch.client.asCurrentUser.transport.request({ - method: 'GET', - path, - body, - }); + const tile = await context.core.elasticsearch.client.asCurrentUser.transport.request( + { + method: 'GET', + path, + body, + }, + { + signal: abortController.signal, + } + ); return tile.body as unknown as Buffer; } catch (e) { if (!isAbortError(e)) { diff --git a/x-pack/plugins/maps/server/mvt/get_tile.ts b/x-pack/plugins/maps/server/mvt/get_tile.ts index 0864b373af3f8..478b4343038e3 100644 --- a/x-pack/plugins/maps/server/mvt/get_tile.ts +++ b/x-pack/plugins/maps/server/mvt/get_tile.ts @@ -22,6 +22,7 @@ export async function getEsTile({ y, z, requestBody = {}, + abortController, }: { x: number; y: number; @@ -31,6 +32,7 @@ export async function getEsTile({ context: DataRequestHandlerContext; logger: Logger; requestBody: any; + abortController: AbortController; }): Promise<Buffer | null> { try { const path = `/${encodeURIComponent(index)}/_mvt/${geometryFieldName}/${z}/${x}/${y}`; @@ -45,11 +47,16 @@ export async function getEsTile({ runtime_mappings: requestBody.runtime_mappings, track_total_hits: requestBody.size + 1, }; - const tile = await context.core.elasticsearch.client.asCurrentUser.transport.request({ - method: 'GET', - path, - body, - }); + const tile = await context.core.elasticsearch.client.asCurrentUser.transport.request( + { + method: 'GET', + path, + body, + }, + { + signal: abortController.signal, + } + ); return tile.body as unknown as Buffer; } catch (e) { if (!isAbortError(e)) { diff --git a/x-pack/plugins/maps/server/mvt/mvt_routes.ts b/x-pack/plugins/maps/server/mvt/mvt_routes.ts index 3c61a47a383d6..317f62e50825e 100644 --- a/x-pack/plugins/maps/server/mvt/mvt_routes.ts +++ b/x-pack/plugins/maps/server/mvt/mvt_routes.ts @@ -10,8 +10,6 @@ import { schema } from '@kbn/config-schema'; import { KibanaRequest, KibanaResponseFactory, Logger } from 'src/core/server'; import { IRouter } from 'src/core/server'; import type { DataRequestHandlerContext } from 'src/plugins/data/server'; -// @ts-ignore not typed -import { AbortController } from 'abortcontroller-polyfill/dist/cjs-ponyfill'; import { MVT_GETTILE_API_PATH, API_ROOT_PATH, @@ -54,11 +52,10 @@ export function initMVTRoutes({ ) => { const { query, params } = request; - // todo - replace with direct abortion of raw transport request - // const abortController = new AbortController(); - // request.events.aborted$.subscribe(() => { - // abortController.abort(); - // }); + const abortController = new AbortController(); + request.events.aborted$.subscribe(() => { + abortController.abort(); + }); const requestBodyDSL = rison.decode(query.requestBody as string); @@ -71,6 +68,7 @@ export function initMVTRoutes({ z: parseInt((params as any).z, 10) as number, index: query.index as string, requestBody: requestBodyDSL as any, + abortController, }); return sendResponse(response, tile); @@ -102,11 +100,10 @@ export function initMVTRoutes({ ) => { const { query, params } = request; - // todo - replace with direct abortion of raw transport request - // const abortController = new AbortController(); - // request.events.aborted$.subscribe(() => { - // abortController.abort(); - // }); + const abortController = new AbortController(); + request.events.aborted$.subscribe(() => { + abortController.abort(); + }); const requestBodyDSL = rison.decode(query.requestBody as string); @@ -120,6 +117,7 @@ export function initMVTRoutes({ index: query.index as string, requestBody: requestBodyDSL as any, requestType: query.requestType as RENDER_AS.POINT | RENDER_AS.GRID, + abortController, }); return sendResponse(response, tile); diff --git a/x-pack/plugins/ml/common/index.ts b/x-pack/plugins/ml/common/index.ts index ad9927a533a60..ea8ad43d6bb3b 100644 --- a/x-pack/plugins/ml/common/index.ts +++ b/x-pack/plugins/ml/common/index.ts @@ -14,3 +14,4 @@ export { composeValidators, patternValidator } from './util/validators'; export { isRuntimeMappings, isRuntimeField } from './util/runtime_field_utils'; export { extractErrorMessage } from './util/errors'; export type { RuntimeMappings } from './types/fields'; +export { getDefaultCapabilities as getDefaultMlCapabilities } from './types/capabilities'; diff --git a/x-pack/plugins/ml/common/types/capabilities.ts b/x-pack/plugins/ml/common/types/capabilities.ts index ed0f3595cb94c..36377aaa1ed3f 100644 --- a/x-pack/plugins/ml/common/types/capabilities.ts +++ b/x-pack/plugins/ml/common/types/capabilities.ts @@ -63,6 +63,8 @@ export const adminMlCapabilities = { // Alerts canCreateMlAlerts: false, canUseMlAlerts: false, + // Model management + canViewMlNodes: false, }; export type UserMlCapabilities = typeof userMlCapabilities; diff --git a/x-pack/plugins/ml/common/types/trained_models.ts b/x-pack/plugins/ml/common/types/trained_models.ts index 89b8a50846cb3..0670849f07f26 100644 --- a/x-pack/plugins/ml/common/types/trained_models.ts +++ b/x-pack/plugins/ml/common/types/trained_models.ts @@ -151,6 +151,8 @@ export interface TrainedModelDeploymentStatsResponse { routing_state: { routing_state: string }; average_inference_time_ms: number; last_access: number; + number_of_pending_requests: number; + start_time: number; }>; } @@ -161,11 +163,18 @@ export interface AllocatedModel { state: string; allocation_count: number; }; - model_id: string; + /** + * Not required for rendering in the Model stats + */ + model_id?: string; state: string; model_threads: number; model_size_bytes: number; node: { + /** + * Not required for rendering in the Nodes overview + */ + name?: string; average_inference_time_ms: number; inference_count: number; routing_state: { @@ -173,13 +182,14 @@ export interface AllocatedModel { reason?: string; }; last_access?: number; + number_of_pending_requests: number; + start_time: number; }; } export interface NodeDeploymentStatsResponse { id: string; name: string; - transport_address: string; attributes: Record<string, string>; roles: string[]; allocated_models: AllocatedModel[]; diff --git a/x-pack/plugins/ml/public/application/components/help_icon/help_icon.tsx b/x-pack/plugins/ml/public/application/components/help_icon/help_icon.tsx new file mode 100644 index 0000000000000..5ab4fd4de5dd3 --- /dev/null +++ b/x-pack/plugins/ml/public/application/components/help_icon/help_icon.tsx @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FC, ReactNode } from 'react'; +import { EuiIcon, EuiToolTip } from '@elastic/eui'; + +export const HelpIcon: FC<{ content: ReactNode | string }> = ({ content }) => { + return ( + <EuiToolTip position="top" content={content}> + <EuiIcon + tabIndex={0} + type="questionInCircle" + color={'subdued'} + className="eui-alignTop" + size="s" + /> + </EuiToolTip> + ); +}; diff --git a/x-pack/plugins/ml/public/application/components/help_icon/index.tsx b/x-pack/plugins/ml/public/application/components/help_icon/index.tsx new file mode 100644 index 0000000000000..712f457da47c8 --- /dev/null +++ b/x-pack/plugins/ml/public/application/components/help_icon/index.tsx @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { HelpIcon } from './help_icon'; diff --git a/x-pack/plugins/ml/public/application/components/import_export_jobs/import_jobs_flyout/import_jobs_flyout.tsx b/x-pack/plugins/ml/public/application/components/import_export_jobs/import_jobs_flyout/import_jobs_flyout.tsx index b51c8ad987a35..64b2f63883254 100644 --- a/x-pack/plugins/ml/public/application/components/import_export_jobs/import_jobs_flyout/import_jobs_flyout.tsx +++ b/x-pack/plugins/ml/public/application/components/import_export_jobs/import_jobs_flyout/import_jobs_flyout.tsx @@ -330,7 +330,7 @@ export const ImportJobsFlyout: FC<Props> = ({ isDisabled }) => { aria-label={i18n.translate('xpack.ml.importExport.importFlyout.deleteButtonAria', { defaultMessage: 'Delete', })} - color={deleteDisabled ? 'subdued' : 'danger'} + color={deleteDisabled ? 'text' : 'danger'} disabled={deleteDisabled} onClick={() => deleteJob(index)} /> diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/cytoscape_options.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/cytoscape_options.tsx index 4cd76b4e410c7..b7dc4d617427d 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/cytoscape_options.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/job_map/components/cytoscape_options.tsx @@ -65,7 +65,7 @@ function borderColorForNode(el: cytoscape.NodeSingular, theme: EuiThemeType) { switch (type) { case JOB_MAP_NODE_TYPES.ANALYTICS: - return theme.euiColorSecondary; + return theme.euiColorSuccess; case JOB_MAP_NODE_TYPES.TRANSFORM: return theme.euiColorVis1; case JOB_MAP_NODE_TYPES.INDEX: diff --git a/x-pack/plugins/ml/public/application/explorer/anomaly_context_menu.tsx b/x-pack/plugins/ml/public/application/explorer/anomaly_context_menu.tsx index d40e9cae1a04f..c32745f8bce8c 100644 --- a/x-pack/plugins/ml/public/application/explorer/anomaly_context_menu.tsx +++ b/x-pack/plugins/ml/public/application/explorer/anomaly_context_menu.tsx @@ -75,7 +75,7 @@ export const AnomalyContextMenu: FC<AnomalyContextMenuProps> = ({ aria-label={i18n.translate('xpack.ml.explorer.anomalies.actionsAriaLabel', { defaultMessage: 'Actions', })} - color="subdued" + color="text" iconType="boxesHorizontal" onClick={setIsMenuOpen.bind(null, !isMenuOpen)} data-test-subj="mlExplorerAnomalyPanelMenu" diff --git a/x-pack/plugins/ml/public/application/explorer/anomaly_timeline.tsx b/x-pack/plugins/ml/public/application/explorer/anomaly_timeline.tsx index 6091ab22692af..c8006292f8e09 100644 --- a/x-pack/plugins/ml/public/application/explorer/anomaly_timeline.tsx +++ b/x-pack/plugins/ml/public/application/explorer/anomaly_timeline.tsx @@ -184,7 +184,7 @@ export const AnomalyTimeline: FC<AnomalyTimelineProps> = React.memo( aria-label={i18n.translate('xpack.ml.explorer.swimlaneActions', { defaultMessage: 'Actions', })} - color="subdued" + color="text" iconType="boxesHorizontal" onClick={setIsMenuOpen.bind(null, !isMenuOpen)} data-test-subj="mlAnomalyTimelinePanelMenu" diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx index 96708e83dd8be..9ee583ba2d3e7 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/ml_job_editor/ml_job_editor.tsx @@ -7,8 +7,12 @@ import React, { FC } from 'react'; -import { EuiCodeEditor, EuiCodeEditorProps } from '@elastic/eui'; -import { expandLiteralStrings, XJsonMode } from '../../../../../../shared_imports'; +import { + expandLiteralStrings, + XJsonMode, + EuiCodeEditor, + EuiCodeEditorProps, +} from '../../../../../../shared_imports'; export const ML_EDITOR_MODE = { TEXT: 'text', JSON: 'json', XJSON: new XJsonMode() }; diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/job_item.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/job_item.tsx index 39d3eb634e9ce..53ffa593830e0 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/job_item.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/job_item.tsx @@ -53,7 +53,7 @@ export const JobItem: FC<JobItemProps> = memo( <EuiFlexItem> <EuiFlexGroup gutterSize="s"> <EuiFlexItem grow={false}> - <EuiText size="s" color="secondary"> + <EuiText size="s" color="success"> {jobPrefix} {id} </EuiText> @@ -118,7 +118,7 @@ export const JobItem: FC<JobItemProps> = memo( <EuiFlexItem grow={false}> <EuiIcon type={setupResult.success ? 'check' : 'cross'} - color={setupResult.success ? 'secondary' : 'danger'} + color={setupResult.success ? 'success' : 'danger'} size="m" aria-label={ setupResult.success @@ -135,7 +135,7 @@ export const JobItem: FC<JobItemProps> = memo( <EuiFlexItem grow={false}> <EuiIcon type={datafeedResult.success ? 'check' : 'cross'} - color={datafeedResult.success ? 'secondary' : 'danger'} + color={datafeedResult.success ? 'success' : 'danger'} size="m" aria-label={ setupResult.success @@ -181,5 +181,5 @@ function getDatafeedStartedIcon({ awaitingMlNodeAllocation, success }: DatafeedR return { type: 'alert', color: 'warning' }; } - return success ? { type: 'check', color: 'secondary' } : { type: 'cross', color: 'danger' }; + return success ? { type: 'check', color: 'success' } : { type: 'cross', color: 'danger' }; } diff --git a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/kibana_objects.tsx b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/kibana_objects.tsx index d010eb5d8336a..610151632c6e5 100644 --- a/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/kibana_objects.tsx +++ b/x-pack/plugins/ml/public/application/jobs/new_job/recognize/components/kibana_objects.tsx @@ -54,7 +54,7 @@ export const KibanaObjects: FC<KibanaObjectItemProps> = memo( <EuiFlexItem> <EuiFlexGroup gutterSize="xs"> <EuiFlexItem grow={false}> - <EuiText size="s" color={exists ? 'subdued' : 'secondary'}> + <EuiText size="s" color={exists ? 'subdued' : 'success'}> {title} </EuiText> {success === false && error !== undefined && ( diff --git a/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts b/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts index c483b0a23c2d0..822c5059982e7 100644 --- a/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts +++ b/x-pack/plugins/ml/public/application/services/ml_api_service/trained_models.ts @@ -15,7 +15,6 @@ import { ModelPipelines, TrainedModelStat, NodesOverviewResponse, - TrainedModelDeploymentStatsResponse, } from '../../../../common/types/trained_models'; export interface InferenceQueryParams { @@ -122,21 +121,6 @@ export function trainedModelsApiProvider(httpService: HttpService) { }); }, - getTrainedModelDeploymentStats(modelId?: string | string[]) { - let model = modelId ?? '*'; - if (Array.isArray(modelId)) { - model = modelId.join(','); - } - - return httpService.http<{ - count: number; - deployment_stats: TrainedModelDeploymentStatsResponse[]; - }>({ - path: `${apiBasePath}/trained_models/${model}/deployment/_stats`, - method: 'GET', - }); - }, - getTrainedModelsNodesOverview() { return httpService.http<NodesOverviewResponse>({ path: `${apiBasePath}/trained_models/nodes_overview`, diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/_timeseriesexplorer.scss b/x-pack/plugins/ml/public/application/timeseriesexplorer/_timeseriesexplorer.scss index cfd521c882fb7..63cb8a57adba6 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/_timeseriesexplorer.scss +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/_timeseriesexplorer.scss @@ -10,7 +10,7 @@ } .entity-count-text { - color: $euiColorSecondary; + color: $euiColorSuccess; font-size: $euiFontSizeS; } } diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx index 6dd7db1dbb7b6..469973a378c83 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/expanded_row.tsx @@ -5,53 +5,50 @@ * 2.0. */ -import React, { FC, Fragment, useEffect, useState } from 'react'; -import { omit } from 'lodash'; +import React, { FC, useEffect, useState } from 'react'; +import { omit, pick } from 'lodash'; import { EuiBadge, - EuiButtonEmpty, EuiCodeBlock, EuiDescriptionList, EuiFlexGrid, - EuiFlexGroup, EuiFlexItem, - EuiHorizontalRule, - EuiListGroup, EuiNotificationBadge, EuiPanel, EuiSpacer, EuiTabbedContent, - EuiText, - EuiTextColor, EuiTitle, } from '@elastic/eui'; -import { EuiDescriptionListProps } from '@elastic/eui/src/components/description_list/description_list'; +import type { EuiDescriptionListProps } from '@elastic/eui/src/components/description_list/description_list'; import { FormattedMessage } from '@kbn/i18n/react'; -import type { EuiListGroupItemProps } from '@elastic/eui/src/components/list_group/list_group_item'; -import { ModelItemFull } from './models_list'; -import { useMlKibana, useMlLocator } from '../../contexts/kibana'; +import type { ModelItemFull } from './models_list'; import { timeFormatter } from '../../../../common/util/date_utils'; import { isDefined } from '../../../../common/types/guards'; import { isPopulatedObject } from '../../../../common'; -import { ML_PAGES } from '../../../../common/constants/locator'; +import { ModelPipelines } from './pipelines'; +import { AllocatedModels } from '../nodes_overview/allocated_models'; +import type { AllocatedModel } from '../../../../common/types/trained_models'; interface ExpandedRowProps { item: ModelItemFull; } +const badgeFormatter = (items: string[]) => { + if (items.length === 0) return; + return ( + <div> + {items.map((item) => ( + <EuiBadge key={item} color="hollow"> + {item} + </EuiBadge> + ))} + </div> + ); +}; + const formatterDictionary: Record<string, (value: any) => JSX.Element | string | undefined> = { - tags: (tags: string[]) => { - if (tags.length === 0) return; - return ( - <div> - {tags.map((tag) => ( - <EuiBadge key={tag} color="hollow"> - {tag} - </EuiBadge> - ))} - </div> - ); - }, + tags: badgeFormatter, + roles: badgeFormatter, create_time: timeFormatter, timestamp: timeFormatter, }; @@ -89,11 +86,7 @@ export function formatToListItems( } export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { - const mlLocator = useMlLocator(); - - const [deploymentStatsItems, setDeploymentStats] = useState<EuiDescriptionListProps['listItems']>( - [] - ); + const [modelItems, setModelItems] = useState<AllocatedModel[]>([]); const { inference_config: inferenceConfig, @@ -125,41 +118,32 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { license_level, }; - const { - services: { share }, - } = useMlKibana(); - useEffect( - function updateDeploymentState() { + function updateModelItems() { (async function () { - const { nodes, ...deploymentStats } = stats.deployment_stats ?? {}; - - if (!isPopulatedObject(deploymentStats)) return; + const deploymentStats = stats.deployment_stats; - const result = formatToListItems(deploymentStats)!; + if (!deploymentStats) return; - const items: EuiListGroupItemProps[] = await Promise.all( - nodes!.map(async (v) => { - const nodeObject = Object.values(v.node)[0]; - const href = await mlLocator!.getUrl({ - page: ML_PAGES.TRAINED_MODELS_NODES, - pageState: { - nodeId: nodeObject.name, - }, - }); - return { - label: nodeObject.name, - href, - }; - }) - ); - - result.push({ - title: 'nodes', - description: <EuiListGroup size={'s'} gutterSize={'s'} listItems={items} />, + const items: AllocatedModel[] = deploymentStats.nodes.map((n) => { + const nodeName = Object.values(n.node)[0].name; + return { + ...deploymentStats, + node: { + ...pick(n, [ + 'average_inference_time_ms', + 'inference_count', + 'routing_state', + 'last_access', + 'number_of_pending_requests', + 'start_time', + ]), + name: nodeName, + } as AllocatedModel['node'], + }; }); - setDeploymentStats(result); + setModelItems(items); })(); }, [stats.deployment_stats] @@ -176,7 +160,7 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ), content: ( <> - <EuiSpacer size={'m'} /> + <EuiSpacer size={'s'} /> <EuiFlexGrid columns={2} gutterSize={'m'}> <EuiFlexItem> <EuiPanel> @@ -232,7 +216,7 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ), content: ( <> - <EuiSpacer size={'m'} /> + <EuiSpacer size={'s'} /> <EuiFlexGrid columns={2} gutterSize={'m'}> <EuiFlexItem> <EuiPanel> @@ -280,7 +264,7 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { }, ] : []), - ...(isPopulatedObject(omit(stats, 'pipeline_count')) + ...(isPopulatedObject(omit(stats, ['pipeline_count', 'ingest'])) ? [ { id: 'stats', @@ -292,57 +276,33 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ), content: ( <> - <EuiSpacer size={'m'} /> - {!!deploymentStatsItems?.length ? ( - <> - <EuiPanel> - <EuiTitle size={'xs'}> - <h5> - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.deploymentStatsTitle" - defaultMessage="Deployment stats" - /> - </h5> - </EuiTitle> - <EuiSpacer size={'m'} /> - <EuiDescriptionList - compressed={true} - type="column" - listItems={deploymentStatsItems} - /> - </EuiPanel> - <EuiSpacer size={'m'} /> - </> - ) : null} - <EuiFlexGrid columns={2}> - {stats.inference_stats && ( - <EuiFlexItem> + <EuiSpacer size={'s'} /> + + <EuiFlexGrid columns={2} gutterSize={'m'}> + {!!modelItems?.length ? ( + <EuiFlexItem grow={2}> <EuiPanel> <EuiTitle size={'xs'}> <h5> <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.inferenceStatsTitle" - defaultMessage="Inference stats" + id="xpack.ml.trainedModels.modelsList.expandedRow.deploymentStatsTitle" + defaultMessage="Deployment stats" /> </h5> </EuiTitle> <EuiSpacer size={'m'} /> - <EuiDescriptionList - compressed={true} - type="column" - listItems={formatToListItems(stats.inference_stats)} - /> + <AllocatedModels models={modelItems} hideColumns={['model_id']} /> </EuiPanel> </EuiFlexItem> - )} - {stats.ingest?.total && ( + ) : null} + {stats.inference_stats ? ( <EuiFlexItem> - <EuiPanel style={{ maxHeight: '400px', overflow: 'auto' }}> + <EuiPanel> <EuiTitle size={'xs'}> <h5> <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.ingestStatsTitle" - defaultMessage="Ingest stats" + id="xpack.ml.trainedModels.modelsList.expandedRow.inferenceStatsTitle" + defaultMessage="Inference stats" /> </h5> </EuiTitle> @@ -350,99 +310,18 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { <EuiDescriptionList compressed={true} type="column" - listItems={formatToListItems(stats.ingest.total)} + listItems={formatToListItems(stats.inference_stats)} /> - - {stats.ingest?.pipelines && ( - <> - <EuiSpacer size={'m'} /> - <EuiTitle size={'xs'}> - <h5> - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.byPipelineTitle" - defaultMessage="By pipeline" - /> - </h5> - </EuiTitle> - <EuiSpacer size={'s'} /> - {Object.entries(stats.ingest.pipelines).map( - ([pipelineName, { processors, ...pipelineStats }], i) => { - return ( - <Fragment key={pipelineName}> - <EuiFlexGroup> - <EuiFlexItem grow={false}> - <EuiTitle size={'xs'}> - <EuiTextColor color="subdued"> - <h5> - {i + 1}. {pipelineName} - </h5> - </EuiTextColor> - </EuiTitle> - </EuiFlexItem> - <EuiFlexItem> - <EuiHorizontalRule size={'full'} margin={'s'} /> - </EuiFlexItem> - </EuiFlexGroup> - <EuiSpacer size={'m'} /> - <EuiDescriptionList - compressed={true} - type="column" - listItems={formatToListItems(pipelineStats)} - /> - <EuiSpacer size={'m'} /> - <EuiTitle size={'xxs'}> - <h6> - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.byProcessorTitle" - defaultMessage="By processor" - /> - </h6> - </EuiTitle> - <EuiSpacer size={'s'} /> - <> - {processors.map((processor) => { - const name = Object.keys(processor)[0]; - const { stats: processorStats } = processor[name]; - return ( - <Fragment key={name}> - <EuiFlexGroup> - <EuiFlexItem grow={false}> - <EuiTitle size={'xxs'}> - <EuiTextColor color="subdued"> - <h6>{name}</h6> - </EuiTextColor> - </EuiTitle> - </EuiFlexItem> - <EuiFlexItem> - <EuiHorizontalRule size={'full'} margin={'s'} /> - </EuiFlexItem> - </EuiFlexGroup> - <EuiSpacer size={'m'} /> - <EuiDescriptionList - compressed={true} - type="column" - listItems={formatToListItems(processorStats)} - /> - </Fragment> - ); - })} - </> - </Fragment> - ); - } - )} - </> - )} </EuiPanel> </EuiFlexItem> - )} + ) : null} </EuiFlexGrid> </> ), }, ] : []), - ...(pipelines && Object.keys(pipelines).length > 0 + ...((pipelines && Object.keys(pipelines).length > 0) || stats.ingest ? [ { id: 'pipelines', @@ -457,66 +336,8 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ), content: ( <> - <EuiSpacer size={'m'} /> - <EuiFlexGrid columns={2} gutterSize={'m'}> - {Object.entries(pipelines).map( - ([pipelineName, { processors, description: pipelineDescription }]) => { - return ( - <EuiFlexItem key={pipelineName}> - <EuiPanel> - <EuiFlexGroup alignItems="center" justifyContent="spaceBetween"> - <EuiFlexItem grow={false}> - <EuiTitle size={'xs'}> - <h5>{pipelineName}</h5> - </EuiTitle> - </EuiFlexItem> - <EuiFlexItem grow={false}> - <EuiButtonEmpty - onClick={() => { - const locator = share.url.locators.get( - 'INGEST_PIPELINES_APP_LOCATOR' - ); - if (!locator) return; - locator.navigate({ - page: 'pipeline_edit', - pipelineId: pipelineName, - absolute: true, - }); - }} - > - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.editPipelineLabel" - defaultMessage="Edit" - /> - </EuiButtonEmpty> - </EuiFlexItem> - </EuiFlexGroup> - - {pipelineDescription && <EuiText>{pipelineDescription}</EuiText>} - <EuiSpacer size={'m'} /> - <EuiTitle size={'xxs'}> - <h6> - <FormattedMessage - id="xpack.ml.trainedModels.modelsList.expandedRow.processorsTitle" - defaultMessage="Processors" - /> - </h6> - </EuiTitle> - <EuiCodeBlock - language="json" - fontSize="m" - paddingSize="m" - overflowHeight={300} - isCopyable - > - {JSON.stringify(processors, null, 2)} - </EuiCodeBlock> - </EuiPanel> - </EuiFlexItem> - ); - } - )} - </EuiFlexGrid> + <EuiSpacer size={'s'} /> + <ModelPipelines pipelines={pipelines!} ingestStats={stats.ingest} /> </> ), }, diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx index 9c3cc1f93a9cd..ce0e47df292de 100644 --- a/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/models_list.tsx @@ -6,7 +6,6 @@ */ import React, { FC, useCallback, useEffect, useMemo, useState } from 'react'; -import { omit } from 'lodash'; import { EuiBadge, EuiButton, @@ -153,9 +152,7 @@ export const ModelsList: FC = () => { } // Need to fetch state for 3rd party models to enable/disable actions - await fetchAndPopulateDeploymentStats( - newItems.filter((v) => v.model_type.includes('pytorch')) - ); + await fetchModelsStats(newItems.filter((v) => v.model_type.includes('pytorch'))); setItems(newItems); @@ -237,39 +234,6 @@ export const ModelsList: FC = () => { } }, []); - /** - * Updates model items with deployment stats; - * - * We have to fetch all deployment stats on each update, - * because for stopped models the API returns 404 response. - */ - const fetchAndPopulateDeploymentStats = useCallback(async (modelItems: ModelItem[]) => { - try { - const { deployment_stats: deploymentStats } = - await trainedModelsApiService.getTrainedModelDeploymentStats('*'); - - for (const deploymentStat of deploymentStats) { - const deployedModel = modelItems.find( - (model) => model.model_id === deploymentStat.model_id - ); - - if (deployedModel) { - deployedModel.stats = { - ...(deployedModel.stats ?? {}), - deployment_stats: omit(deploymentStat, 'model_id'), - }; - } - } - } catch (error) { - displayErrorToast( - error, - i18n.translate('xpack.ml.trainedModels.modelsList.fetchDeploymentStatsErrorMessage', { - defaultMessage: 'Fetch deployment stats failed', - }) - ); - } - }, []); - /** * Unique inference types from models */ @@ -398,11 +362,11 @@ export const ModelsList: FC = () => { }, }, { - name: i18n.translate('xpack.ml.inference.modelsList.startModelAllocationActionLabel', { - defaultMessage: 'Start allocation', + name: i18n.translate('xpack.ml.inference.modelsList.startModelDeploymentActionLabel', { + defaultMessage: 'Start deployment', }), - description: i18n.translate('xpack.ml.inference.modelsList.startModelAllocationActionLabel', { - defaultMessage: 'Start allocation', + description: i18n.translate('xpack.ml.inference.modelsList.startModelDeploymentActionLabel', { + defaultMessage: 'Start deployment', }), icon: 'play', type: 'icon', @@ -442,11 +406,11 @@ export const ModelsList: FC = () => { }, }, { - name: i18n.translate('xpack.ml.inference.modelsList.stopModelAllocationActionLabel', { - defaultMessage: 'Stop allocation', + name: i18n.translate('xpack.ml.inference.modelsList.stopModelDeploymentActionLabel', { + defaultMessage: 'Stop deployment', }), - description: i18n.translate('xpack.ml.inference.modelsList.stopModelAllocationActionLabel', { - defaultMessage: 'Stop allocation', + description: i18n.translate('xpack.ml.inference.modelsList.stopModelDeploymentActionLabel', { + defaultMessage: 'Stop deployment', }), icon: 'stop', type: 'icon', @@ -567,6 +531,7 @@ export const ModelsList: FC = () => { defaultMessage: 'Type', }), sortable: true, + truncateText: true, align: 'left', render: (types: string[]) => ( <EuiFlexGroup gutterSize={'xs'} wrap> @@ -587,6 +552,7 @@ export const ModelsList: FC = () => { }), sortable: (item) => item.stats?.deployment_stats?.state, align: 'left', + truncateText: true, render: (model: ModelItem) => { const state = model.stats?.deployment_stats?.state; return state ? <EuiBadge color="hollow">{state}</EuiBadge> : null; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx new file mode 100644 index 0000000000000..7430d50219d3e --- /dev/null +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/expanded_row.tsx @@ -0,0 +1,177 @@ +/* + * Copyright 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, { FC } from 'react'; +import { EuiBadge, EuiInMemoryTable, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; + +import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; +import { i18n } from '@kbn/i18n'; +import { useFieldFormatter } from '../../../contexts/kibana/use_field_formatter'; +import { FIELD_FORMAT_IDS } from '../../../../../../../../src/plugins/field_formats/common'; +import { IngestStatsResponse } from './pipelines'; +import { HelpIcon } from '../../../components/help_icon'; + +interface ProcessorsStatsProps { + stats: Exclude<IngestStatsResponse, undefined>['pipelines'][string]['processors']; +} + +type ProcessorStatsItem = ProcessorsStatsProps['stats'][number][string] & { id: string }; + +export const ProcessorsStats: FC<ProcessorsStatsProps> = ({ stats }) => { + const durationFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DURATION); + + const items: ProcessorStatsItem[] = stats.map((v, i) => { + const key = Object.keys(v)[0]; + return { + ...v[key], + id: `${key}_${i}`, + }; + }); + + const columns: Array<EuiBasicTableColumn<ProcessorStatsItem>> = [ + { + field: 'type', + name: i18n.translate( + 'xpack.ml.trainedModels.modelsList.pipelines.processorStats.typeHeader', + { + defaultMessage: 'Processor type', + } + ), + width: '100px', + sortable: true, + truncateText: false, + render: (type: string) => { + return <EuiBadge color="hollow">{type}</EuiBadge>; + }, + 'data-test-subj': 'mlProcessorStatsType', + }, + { + field: 'stats.count', + name: ( + <EuiFlexGroup gutterSize="xs"> + <EuiFlexItem grow={false}> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.countHeader" + defaultMessage="Count" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <HelpIcon + content={ + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.countDescription" + defaultMessage="Total number of documents ingested during the lifetime of this node" + /> + } + /> + </EuiFlexItem> + </EuiFlexGroup> + ), + width: '100px', + truncateText: true, + 'data-test-subj': 'mlProcessorStatsCount', + }, + { + field: 'stats.time_in_millis', + name: ( + <EuiFlexGroup gutterSize="xs"> + <EuiFlexItem grow={false}> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.timePerDocHeader" + defaultMessage="Time per doc" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <HelpIcon + content={ + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.timePerDocDescription" + defaultMessage="Total time spent preprocessing ingest documents during the lifetime of this node" + /> + } + /> + </EuiFlexItem> + </EuiFlexGroup> + ), + width: '100px', + truncateText: false, + 'data-test-subj': 'mlProcessorStatsTimePerDoc', + render: (v: number) => { + return durationFormatter(v); + }, + }, + { + field: 'stats.current', + name: ( + <EuiFlexGroup gutterSize="xs"> + <EuiFlexItem grow={false}> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.currentHeader" + defaultMessage="Current" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <HelpIcon + content={ + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.currentDescription" + defaultMessage="Total number of documents currently being ingested" + /> + } + /> + </EuiFlexItem> + </EuiFlexGroup> + ), + width: '100px', + truncateText: false, + 'data-test-subj': 'mlProcessorStatsCurrent', + }, + { + field: 'stats.failed', + name: ( + <EuiFlexGroup gutterSize="xs"> + <EuiFlexItem grow={false}> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.failedHeader" + defaultMessage="Failed" + /> + </EuiFlexItem> + <EuiFlexItem grow={false}> + <HelpIcon + content={ + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.pipelines.processorStats.failedDescription" + defaultMessage="Total number of failed ingest operations during the lifetime of this node" + /> + } + /> + </EuiFlexItem> + </EuiFlexGroup> + ), + width: '100px', + 'data-test-subj': 'mlProcessorStatsFailed', + }, + ]; + + return ( + <EuiInMemoryTable<ProcessorStatsItem> + allowNeutralSort={false} + columns={columns} + hasActions={false} + isExpandable={false} + isSelectable={false} + items={items} + itemId={'id'} + rowProps={(item) => ({ + 'data-test-subj': `mlProcessorStatsTableRow row-${item.id}`, + })} + onTableChange={() => {}} + data-test-subj={'mlProcessorStatsTable'} + /> + ); +}; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/index.ts b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts similarity index 83% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/index.ts rename to x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts index 8a9a9faa6d098..791561b958164 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/index.ts +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/index.ts @@ -5,4 +5,4 @@ * 2.0. */ -export { getFixLogsStep } from './fix_logs_step'; +export { ModelPipelines } from './pipelines'; diff --git a/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx new file mode 100644 index 0000000000000..9b2af52eb03c8 --- /dev/null +++ b/x-pack/plugins/ml/public/application/trained_models/models_management/pipelines/pipelines.tsx @@ -0,0 +1,119 @@ +/* + * Copyright 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, { FC } from 'react'; +import { + EuiButtonEmpty, + EuiCodeBlock, + EuiFlexGrid, + EuiFlexItem, + EuiTitle, + EuiPanel, + EuiAccordion, +} from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; +import { useMlKibana } from '../../../contexts/kibana'; +import { ModelItem } from '../models_list'; +import { ProcessorsStats } from './expanded_row'; + +export type IngestStatsResponse = Exclude<ModelItem['stats'], undefined>['ingest']; + +interface ModelPipelinesProps { + pipelines: Exclude<ModelItem['pipelines'], null | undefined>; + ingestStats: IngestStatsResponse; +} + +export const ModelPipelines: FC<ModelPipelinesProps> = ({ pipelines, ingestStats }) => { + const { + services: { share }, + } = useMlKibana(); + + return ( + <> + {Object.entries(pipelines).map(([pipelineName, pipelineDefinition], i) => { + // Expand first 3 pipelines by default + const initialIsOpen = i <= 2; + return ( + <> + <EuiAccordion + key={pipelineName} + id={pipelineName} + buttonContent={ + <EuiTitle size="xs"> + <h5>{pipelineName}</h5> + </EuiTitle> + } + extraAction={ + <EuiButtonEmpty + onClick={() => { + const locator = share.url.locators.get('INGEST_PIPELINES_APP_LOCATOR'); + if (!locator) return; + locator.navigate({ + page: 'pipeline_edit', + pipelineId: pipelineName, + absolute: true, + }); + }} + iconType={'documentEdit'} + iconSide="left" + > + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.expandedRow.editPipelineLabel" + defaultMessage="Edit" + /> + </EuiButtonEmpty> + } + paddingSize="l" + initialIsOpen={initialIsOpen} + > + <EuiFlexGrid columns={2}> + {ingestStats?.pipelines ? ( + <EuiFlexItem> + <EuiPanel> + <EuiTitle size={'xxs'}> + <h6> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.expandedRow.ingestStatsTitle" + defaultMessage="Ingest stats" + /> + </h6> + </EuiTitle> + + <ProcessorsStats stats={ingestStats!.pipelines[pipelineName].processors} /> + </EuiPanel> + </EuiFlexItem> + ) : null} + + <EuiFlexItem> + <EuiPanel> + <EuiTitle size={'xxs'}> + <h6> + <FormattedMessage + id="xpack.ml.trainedModels.modelsList.expandedRow.processorsTitle" + defaultMessage="Definition" + /> + </h6> + </EuiTitle> + <EuiCodeBlock + language="json" + fontSize="m" + paddingSize="m" + overflowHeight={300} + isCopyable + > + {JSON.stringify(pipelineDefinition, null, 2)} + </EuiCodeBlock> + </EuiPanel> + </EuiFlexItem> + </EuiFlexGrid> + </EuiAccordion> + </> + ); + })} + </> + ); +}; diff --git a/x-pack/plugins/ml/public/application/trained_models/navigation_bar.tsx b/x-pack/plugins/ml/public/application/trained_models/navigation_bar.tsx index da8605f075c2f..ec91499bdb722 100644 --- a/x-pack/plugins/ml/public/application/trained_models/navigation_bar.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/navigation_bar.tsx @@ -9,6 +9,7 @@ import React, { FC, useCallback, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { EuiTab, EuiTabs } from '@elastic/eui'; import { useNavigateToPath } from '../contexts/kibana'; +import { checkPermission } from '../capabilities/check_capabilities'; interface Tab { id: string; @@ -21,6 +22,8 @@ export const TrainedModelsNavigationBar: FC<{ }> = ({ selectedTabId }) => { const navigateToPath = useNavigateToPath(); + const canViewMlNodes = checkPermission('canViewMlNodes'); + const tabs = useMemo(() => { const navTabs = [ { @@ -31,17 +34,21 @@ export const TrainedModelsNavigationBar: FC<{ path: '/trained_models', testSubj: 'mlTrainedModelsTab', }, - { - id: 'nodes', - name: i18n.translate('xpack.ml.trainedModels.nodesTabLabel', { - defaultMessage: 'Nodes', - }), - path: '/trained_models/nodes', - testSubj: 'mlNodesOverviewTab', - }, + ...(canViewMlNodes + ? [ + { + id: 'nodes', + name: i18n.translate('xpack.ml.trainedModels.nodesTabLabel', { + defaultMessage: 'Nodes', + }), + path: '/trained_models/nodes', + testSubj: 'mlNodesOverviewTab', + }, + ] + : []), ]; return navTabs; - }, []); + }, [canViewMlNodes]); const onTabClick = useCallback( async (tab: Tab) => { diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx index 2aad8183b7998..f26be61fce6f7 100644 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/allocated_models.tsx @@ -17,15 +17,31 @@ import { FIELD_FORMAT_IDS } from '../../../../../../../src/plugins/field_formats interface AllocatedModelsProps { models: NodeDeploymentStatsResponse['allocated_models']; + hideColumns?: string[]; } -export const AllocatedModels: FC<AllocatedModelsProps> = ({ models }) => { +export const AllocatedModels: FC<AllocatedModelsProps> = ({ + models, + hideColumns = ['node_name'], +}) => { const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); const dateFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DATE); const durationFormatter = useFieldFormatter(FIELD_FORMAT_IDS.DURATION); const columns: Array<EuiBasicTableColumn<AllocatedModel>> = [ { + id: 'node_name', + field: 'node.name', + name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.nodeNameHeader', { + defaultMessage: 'Node name', + }), + width: '200px', + sortable: true, + truncateText: false, + 'data-test-subj': 'mlAllocatedModelsTableNodeName', + }, + { + id: 'model_id', field: 'model_id', name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelNameHeader', { defaultMessage: 'Name', @@ -84,6 +100,16 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ models }) => { return v.node.inference_count; }, }, + { + name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelStartTimeHeader', { + defaultMessage: 'Start time', + }), + width: '200px', + 'data-test-subj': 'mlAllocatedModelsTableStartedTime', + render: (v: AllocatedModel) => { + return dateFormatter(v.node.start_time); + }, + }, { name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelLastAccessHeader', { defaultMessage: 'Last access', @@ -94,6 +120,19 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ models }) => { return dateFormatter(v.node.last_access); }, }, + { + name: i18n.translate( + 'xpack.ml.trainedModels.nodesList.modelsList.modelNumberOfPendingRequestsHeader', + { + defaultMessage: 'Pending requests', + } + ), + width: '100px', + 'data-test-subj': 'mlAllocatedModelsTableNumberOfPendingRequests', + render: (v: AllocatedModel) => { + return v.node.number_of_pending_requests; + }, + }, { name: i18n.translate('xpack.ml.trainedModels.nodesList.modelsList.modelRoutingStateHeader', { defaultMessage: 'Routing state', @@ -110,7 +149,7 @@ export const AllocatedModels: FC<AllocatedModelsProps> = ({ models }) => { ); }, }, - ]; + ].filter((v) => !hideColumns.includes(v.id!)); return ( <EuiInMemoryTable<AllocatedModel> diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx index 508a5689e1c9b..ba5cdd9093210 100644 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/expanded_row.tsx @@ -15,15 +15,19 @@ import { EuiTitle, } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import { NodeItemWithStats } from './nodes_list'; +import { NodeItem } from './nodes_list'; import { formatToListItems } from '../models_management/expanded_row'; import { AllocatedModels } from './allocated_models'; +import { useFieldFormatter } from '../../contexts/kibana/use_field_formatter'; +import { FIELD_FORMAT_IDS } from '../../../../../../../src/plugins/field_formats/common'; interface ExpandedRowProps { - item: NodeItemWithStats; + item: NodeItem; } export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { + const bytesFormatter = useFieldFormatter(FIELD_FORMAT_IDS.BYTES); + const { allocated_models: allocatedModels, attributes, @@ -31,6 +35,11 @@ export const ExpandedRow: FC<ExpandedRowProps> = ({ item }) => { ...details } = item; + // Process node attributes + attributes['ml.machine_memory'] = bytesFormatter(attributes['ml.machine_memory']); + attributes['ml.max_jvm_size'] = bytesFormatter(attributes['ml.max_jvm_size']); + delete attributes['xpack.installed']; + return ( <> <EuiSpacer size={'m'} /> diff --git a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx index b1cc18e698c9d..87211fedaea43 100644 --- a/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/nodes_overview/nodes_list.tsx @@ -36,10 +36,6 @@ import { useRefresh } from '../../routing/use_refresh'; export type NodeItem = NodeDeploymentStatsResponse; -export interface NodeItemWithStats extends NodeItem { - stats: any; -} - export const getDefaultNodesListState = (): ListingPageUrlState => ({ pageIndex: 0, pageSize: 10, @@ -70,6 +66,14 @@ export const NodesList: FC = () => { try { const nodesResponse = await trainedModelsApiService.getTrainedModelsNodesOverview(); setItems(nodesResponse.nodes); + + // Update expanded rows. + nodesResponse.nodes.forEach((node) => { + if (itemIdToExpandedRowMap[node.id]) { + itemIdToExpandedRowMap[node.id] = <ExpandedRow item={node} />; + } + }); + setIsLoading(false); refreshAnalyticsList$.next(REFRESH_ANALYTICS_LIST_STATE.IDLE); } catch (e) { @@ -80,14 +84,14 @@ export const NodesList: FC = () => { }) ); } - }, []); + }, [itemIdToExpandedRowMap]); const toggleDetails = (item: NodeItem) => { const itemIdToExpandedRowMapValues = { ...itemIdToExpandedRowMap }; if (itemIdToExpandedRowMapValues[item.id]) { delete itemIdToExpandedRowMapValues[item.id]; } else { - itemIdToExpandedRowMapValues[item.id] = <ExpandedRow item={item as NodeItemWithStats} />; + itemIdToExpandedRowMapValues[item.id] = <ExpandedRow item={item} />; } setItemIdToExpandedRowMap(itemIdToExpandedRowMapValues); }; diff --git a/x-pack/plugins/ml/public/application/trained_models/page.tsx b/x-pack/plugins/ml/public/application/trained_models/page.tsx index 54849f3e651df..afbebf58937b3 100644 --- a/x-pack/plugins/ml/public/application/trained_models/page.tsx +++ b/x-pack/plugins/ml/public/application/trained_models/page.tsx @@ -28,14 +28,9 @@ import { ModelsList } from './models_management'; import { TrainedModelsNavigationBar } from './navigation_bar'; import { RefreshAnalyticsListButton } from '../data_frame_analytics/pages/analytics_management/components/refresh_analytics_list_button'; import { DatePickerWrapper } from '../components/navigation_menu/date_picker_wrapper'; -import { useRefreshAnalyticsList } from '../data_frame_analytics/common'; -import { useRefreshInterval } from '../data_frame_analytics/pages/analytics_management/components/analytics_list/use_refresh_interval'; import { NodesList } from './nodes_overview'; export const Page: FC = () => { - useRefreshInterval(() => {}); - - useRefreshAnalyticsList({ isLoading: () => {} }); const location = useLocation(); const selectedTabId = useMemo(() => location.pathname.split('/').pop(), [location]); diff --git a/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts b/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts index 920e1f703422d..c72b4d5cb5dd7 100644 --- a/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts +++ b/x-pack/plugins/ml/server/lib/capabilities/check_capabilities.test.ts @@ -51,7 +51,7 @@ describe('check_capabilities', () => { ); const { capabilities } = await getCapabilities(); const count = Object.keys(capabilities).length; - expect(count).toBe(31); + expect(count).toBe(32); }); }); @@ -101,6 +101,7 @@ describe('check_capabilities', () => { expect(capabilities.canCreateDataFrameAnalytics).toBe(false); expect(capabilities.canStartStopDataFrameAnalytics).toBe(false); expect(capabilities.canCreateMlAlerts).toBe(false); + expect(capabilities.canViewMlNodes).toBe(false); }); test('full capabilities', async () => { @@ -146,6 +147,7 @@ describe('check_capabilities', () => { expect(capabilities.canDeleteDataFrameAnalytics).toBe(true); expect(capabilities.canCreateDataFrameAnalytics).toBe(true); expect(capabilities.canStartStopDataFrameAnalytics).toBe(true); + expect(capabilities.canViewMlNodes).toBe(true); }); test('upgrade in progress with full capabilities', async () => { diff --git a/x-pack/plugins/ml/server/lib/ml_client/ml_client.ts b/x-pack/plugins/ml/server/lib/ml_client/ml_client.ts index 6169d9ee9db47..c2b98ab1b0c29 100644 --- a/x-pack/plugins/ml/server/lib/ml_client/ml_client.ts +++ b/x-pack/plugins/ml/server/lib/ml_client/ml_client.ts @@ -380,11 +380,6 @@ export function getMlClient( async getTrainedModelsStats(...p: Parameters<MlClient['getTrainedModelsStats']>) { return mlClient.getTrainedModelsStats(...p); }, - async getTrainedModelDeploymentStats( - ...p: Parameters<MlClient['getTrainedModelDeploymentStats']> - ) { - return mlClient.getTrainedModelDeploymentStats(...p); - }, async startTrainedModelDeployment(...p: Parameters<MlClient['startTrainedModelDeployment']>) { return mlClient.startTrainedModelDeployment(...p); }, diff --git a/x-pack/plugins/ml/server/lib/ml_client/types.ts b/x-pack/plugins/ml/server/lib/ml_client/types.ts index d8c65c4f56814..b4778f4e6d5b1 100644 --- a/x-pack/plugins/ml/server/lib/ml_client/types.ts +++ b/x-pack/plugins/ml/server/lib/ml_client/types.ts @@ -48,7 +48,6 @@ export type MlClientParams = | Parameters<MlClient['getRecords']> | Parameters<MlClient['getTrainedModels']> | Parameters<MlClient['getTrainedModelsStats']> - | Parameters<MlClient['getTrainedModelDeploymentStats']> | Parameters<MlClient['startTrainedModelDeployment']> | Parameters<MlClient['stopTrainedModelDeployment']> | Parameters<MlClient['info']> diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json b/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json index 0742c249b67b0..5d80fa26b4c34 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/__mocks__/mock_deployment_response.json @@ -1,357 +1,355 @@ -{ - "count" : 4, - "deployment_stats" : [ - { - "model_id" : "distilbert-base-uncased-finetuned-sst-2-english", - "model_size_bytes" : 267386880, - "inference_threads" : 1, - "model_threads" : 1, - "state" : "started", - "allocation_status" : { - "allocation_count" : 2, - "target_allocation_count" : 3, - "state" : "started" - }, - "nodes" : [ - { - "node" : { - "3qIoLFnbSi-DwVrYioUCdw" : { - "name" : "node3", - "ephemeral_id" : "WeA49KLuRPmJM_ulLx0ANg", - "transport_address" : "10.142.0.2:9353", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "ingest", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 +[ + { + "model_id": "distilbert-base-uncased-finetuned-sst-2-english", + "model_size_bytes": 267386880, + "inference_threads": 1, + "model_threads": 1, + "state": "started", + "allocation_status": { + "allocation_count": 2, + "target_allocation_count": 3, + "state": "started" + }, + "nodes": [ + { + "node": { + "3qIoLFnbSi-DwVrYioUCdw": { + "name": "node3", + "ephemeral_id": "WeA49KLuRPmJM_ulLx0ANg", + "transport_address": "10.142.0.2:9353", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "ingest", + "master", + "ml", + "transform" + ] + } }, - { - "node" : { - "DpCy7SOBQla3pu0Dq-tnYw" : { - "name" : "node2", - "ephemeral_id" : "17qcsXsNTYqbJ6uwSvdl9g", - "transport_address" : "10.142.0.2:9352", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "failed", - "reason" : "The object cannot be set twice!" + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + }, + { + "node": { + "DpCy7SOBQla3pu0Dq-tnYw": { + "name": "node2", + "ephemeral_id": "17qcsXsNTYqbJ6uwSvdl9g", + "transport_address": "10.142.0.2:9352", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml", + "transform" + ] } }, - { - "node" : { - "pt7s6lKHQJaP4QHKtU-Q0Q" : { - "name" : "node1", - "ephemeral_id" : "nMJBE9WSRQSWotk0zDPi_Q", - "transport_address" : "10.142.0.2:9351", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + "routing_state": { + "routing_state": "failed", + "reason": "The object cannot be set twice!" } - ] - }, - { - "model_id" : "elastic__distilbert-base-cased-finetuned-conll03-english", - "model_size_bytes" : 260947500, - "inference_threads" : 1, - "model_threads" : 1, - "state" : "started", - "allocation_status" : { - "allocation_count" : 2, - "target_allocation_count" : 3, - "state" : "started" }, - "nodes" : [ - { - "node" : { - "3qIoLFnbSi-DwVrYioUCdw" : { - "name" : "node3", - "ephemeral_id" : "WeA49KLuRPmJM_ulLx0ANg", - "transport_address" : "10.142.0.2:9353", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "ingest", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + { + "node": { + "pt7s6lKHQJaP4QHKtU-Q0Q": { + "name": "node1", + "ephemeral_id": "nMJBE9WSRQSWotk0zDPi_Q", + "transport_address": "10.142.0.2:9351", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml" + ] + } }, - { - "node" : { - "DpCy7SOBQla3pu0Dq-tnYw" : { - "name" : "node2", - "ephemeral_id" : "17qcsXsNTYqbJ6uwSvdl9g", - "transport_address" : "10.142.0.2:9352", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "failed", - "reason" : "The object cannot be set twice!" + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + } + ] + }, + { + "model_id": "elastic__distilbert-base-cased-finetuned-conll03-english", + "model_size_bytes": 260947500, + "inference_threads": 1, + "model_threads": 1, + "state": "started", + "allocation_status": { + "allocation_count": 2, + "target_allocation_count": 3, + "state": "started" + }, + "nodes": [ + { + "node": { + "3qIoLFnbSi-DwVrYioUCdw": { + "name": "node3", + "ephemeral_id": "WeA49KLuRPmJM_ulLx0ANg", + "transport_address": "10.142.0.2:9353", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "ingest", + "master", + "ml", + "transform" + ] } }, - { - "node" : { - "pt7s6lKHQJaP4QHKtU-Q0Q" : { - "name" : "node1", - "ephemeral_id" : "nMJBE9WSRQSWotk0zDPi_Q", - "transport_address" : "10.142.0.2:9351", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + }, + { + "node": { + "DpCy7SOBQla3pu0Dq-tnYw": { + "name": "node2", + "ephemeral_id": "17qcsXsNTYqbJ6uwSvdl9g", + "transport_address": "10.142.0.2:9352", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml", + "transform" + ] + } + }, + "routing_state": { + "routing_state": "failed", + "reason": "The object cannot be set twice!" } - ] - }, - { - "model_id" : "sentence-transformers__msmarco-minilm-l-12-v3", - "model_size_bytes" : 133378867, - "inference_threads" : 1, - "model_threads" : 1, - "state" : "started", - "allocation_status" : { - "allocation_count" : 2, - "target_allocation_count" : 3, - "state" : "started" }, - "nodes" : [ - { - "node" : { - "3qIoLFnbSi-DwVrYioUCdw" : { - "name" : "node3", - "ephemeral_id" : "WeA49KLuRPmJM_ulLx0ANg", - "transport_address" : "10.142.0.2:9353", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "ingest", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + { + "node": { + "pt7s6lKHQJaP4QHKtU-Q0Q": { + "name": "node1", + "ephemeral_id": "nMJBE9WSRQSWotk0zDPi_Q", + "transport_address": "10.142.0.2:9351", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml" + ] + } }, - { - "node" : { - "DpCy7SOBQla3pu0Dq-tnYw" : { - "name" : "node2", - "ephemeral_id" : "17qcsXsNTYqbJ6uwSvdl9g", - "transport_address" : "10.142.0.2:9352", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "failed", - "reason" : "The object cannot be set twice!" + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + } + ] + }, + { + "model_id": "sentence-transformers__msmarco-minilm-l-12-v3", + "model_size_bytes": 133378867, + "inference_threads": 1, + "model_threads": 1, + "state": "started", + "allocation_status": { + "allocation_count": 2, + "target_allocation_count": 3, + "state": "started" + }, + "nodes": [ + { + "node": { + "3qIoLFnbSi-DwVrYioUCdw": { + "name": "node3", + "ephemeral_id": "WeA49KLuRPmJM_ulLx0ANg", + "transport_address": "10.142.0.2:9353", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "ingest", + "master", + "ml", + "transform" + ] } }, - { - "node" : { - "pt7s6lKHQJaP4QHKtU-Q0Q" : { - "name" : "node1", - "ephemeral_id" : "nMJBE9WSRQSWotk0zDPi_Q", - "transport_address" : "10.142.0.2:9351", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + }, + { + "node": { + "DpCy7SOBQla3pu0Dq-tnYw": { + "name": "node2", + "ephemeral_id": "17qcsXsNTYqbJ6uwSvdl9g", + "transport_address": "10.142.0.2:9352", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml", + "transform" + ] + } + }, + "routing_state": { + "routing_state": "failed", + "reason": "The object cannot be set twice!" } - ] - }, - { - "model_id" : "typeform__mobilebert-uncased-mnli", - "model_size_bytes" : 100139008, - "inference_threads" : 1, - "model_threads" : 1, - "state" : "started", - "allocation_status" : { - "allocation_count" : 2, - "target_allocation_count" : 3, - "state" : "started" }, - "nodes" : [ - { - "node" : { - "3qIoLFnbSi-DwVrYioUCdw" : { - "name" : "node3", - "ephemeral_id" : "WeA49KLuRPmJM_ulLx0ANg", - "transport_address" : "10.142.0.2:9353", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "ingest", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + { + "node": { + "pt7s6lKHQJaP4QHKtU-Q0Q": { + "name": "node1", + "ephemeral_id": "nMJBE9WSRQSWotk0zDPi_Q", + "transport_address": "10.142.0.2:9351", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml" + ] + } + }, + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + } + ] + }, + { + "model_id": "typeform__mobilebert-uncased-mnli", + "model_size_bytes": 100139008, + "inference_threads": 1, + "model_threads": 1, + "state": "started", + "allocation_status": { + "allocation_count": 2, + "target_allocation_count": 3, + "state": "started" + }, + "nodes": [ + { + "node": { + "3qIoLFnbSi-DwVrYioUCdw": { + "name": "node3", + "ephemeral_id": "WeA49KLuRPmJM_ulLx0ANg", + "transport_address": "10.142.0.2:9353", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "ingest", + "master", + "ml", + "transform" + ] + } }, - { - "node" : { - "DpCy7SOBQla3pu0Dq-tnYw" : { - "name" : "node2", - "ephemeral_id" : "17qcsXsNTYqbJ6uwSvdl9g", - "transport_address" : "10.142.0.2:9352", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml", - "transform" - ] - } - }, - "routing_state" : { - "routing_state" : "failed", - "reason" : "The object cannot be set twice!" + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + }, + { + "node": { + "DpCy7SOBQla3pu0Dq-tnYw": { + "name": "node2", + "ephemeral_id": "17qcsXsNTYqbJ6uwSvdl9g", + "transport_address": "10.142.0.2:9352", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml", + "transform" + ] } }, - { - "node" : { - "pt7s6lKHQJaP4QHKtU-Q0Q" : { - "name" : "node1", - "ephemeral_id" : "nMJBE9WSRQSWotk0zDPi_Q", - "transport_address" : "10.142.0.2:9351", - "attributes" : { - "ml.machine_memory" : "15599742976", - "xpack.installed" : "true", - "ml.max_jvm_size" : "1073741824" - }, - "roles" : [ - "data", - "master", - "ml" - ] - } - }, - "routing_state" : { - "routing_state" : "started" - }, - "inference_count" : 0, - "average_inference_time_ms" : 0.0 + "routing_state": { + "routing_state": "failed", + "reason": "The object cannot be set twice!" } - ] - } - ] -} + }, + { + "node": { + "pt7s6lKHQJaP4QHKtU-Q0Q": { + "name": "node1", + "ephemeral_id": "nMJBE9WSRQSWotk0zDPi_Q", + "transport_address": "10.142.0.2:9351", + "attributes": { + "ml.machine_memory": "15599742976", + "xpack.installed": "true", + "ml.max_jvm_size": "1073741824" + }, + "roles": [ + "data", + "master", + "ml" + ] + } + }, + "routing_state": { + "routing_state": "started" + }, + "inference_count": 0, + "average_inference_time_ms": 0.0 + } + ] + } +] + diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/model_provider.test.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/model_provider.test.ts index 4f5e1ee9b230c..c0d70aa471992 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/model_provider.test.ts +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/model_provider.test.ts @@ -104,8 +104,16 @@ describe('Model service', () => { }, } as unknown as jest.Mocked<IScopedClusterClient>; const mlClient = { - getTrainedModelDeploymentStats: jest.fn(() => { - return Promise.resolve({ body: mockResponse }); + getTrainedModelsStats: jest.fn(() => { + return Promise.resolve({ + body: { + trained_model_stats: mockResponse.map((v) => { + return { + deployment_stats: v, + }; + }), + }, + }); }), } as unknown as jest.Mocked<MlClient>; const memoryOverviewService = { @@ -214,9 +222,7 @@ describe('Model service', () => { 'ml.max_jvm_size': '1073741824', 'xpack.installed': 'true', }, - host: '10.10.10.2', id: '3qIoLFnbSi-DwVrYioUCdw', - ip: '10.10.10.2:9353', memory_overview: { anomaly_detection: { total: 0, @@ -251,7 +257,6 @@ describe('Model service', () => { }, }, roles: ['data', 'ingest', 'master', 'ml', 'transform'], - transport_address: '10.10.10.2:9353', }, { name: 'node2', @@ -334,9 +339,7 @@ describe('Model service', () => { 'ml.max_jvm_size': '1073741824', 'xpack.installed': 'true', }, - host: '10.10.10.2', id: 'DpCy7SOBQla3pu0Dq-tnYw', - ip: '10.10.10.2:9352', memory_overview: { anomaly_detection: { total: 0, @@ -371,7 +374,6 @@ describe('Model service', () => { }, }, roles: ['data', 'master', 'ml', 'transform'], - transport_address: '10.10.10.2:9352', }, { allocated_models: [ @@ -457,9 +459,7 @@ describe('Model service', () => { 'ml.max_jvm_size': '1073741824', 'xpack.installed': 'true', }, - host: '10.10.10.2', id: 'pt7s6lKHQJaP4QHKtU-Q0Q', - ip: '10.10.10.2:9351', memory_overview: { anomaly_detection: { total: 0, @@ -495,7 +495,6 @@ describe('Model service', () => { }, name: 'node1', roles: ['data', 'master', 'ml'], - transport_address: '10.10.10.2:9351', }, ], }); diff --git a/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts b/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts index 2f40081f1458d..104e320e7fab1 100644 --- a/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts +++ b/x-pack/plugins/ml/server/models/data_frame_analytics/models_provider.ts @@ -19,18 +19,11 @@ import { NATIVE_EXECUTABLE_CODE_OVERHEAD, } from '../memory_overview/memory_overview_service'; import { TrainedModelDeploymentStatsResponse } from '../../../common/types/trained_models'; +import { isDefined } from '../../../common/types/guards'; export type ModelService = ReturnType<typeof modelsProvider>; -const NODE_FIELDS = [ - 'attributes', - 'name', - 'roles', - 'ip', - 'host', - 'transport_address', - 'version', -] as const; +const NODE_FIELDS = ['attributes', 'name', 'roles', 'version'] as const; export type RequiredNodeFields = Pick<NodesInfoNodeInfo, typeof NODE_FIELDS[number]>; @@ -87,8 +80,11 @@ export function modelsProvider( throw new Error('Memory overview service is not provided'); } - const { body: deploymentStats } = await mlClient.getTrainedModelDeploymentStats({ - model_id: '*', + const { + body: { trained_model_stats: trainedModelStats }, + } = await mlClient.getTrainedModelsStats({ + model_id: '_all', + size: 10000, }); const { @@ -105,7 +101,12 @@ export function modelsProvider( const nodeFields = pick(node, NODE_FIELDS) as RequiredNodeFields; const allocatedModels = ( - deploymentStats.deployment_stats as TrainedModelDeploymentStatsResponse[] + trainedModelStats + .map((v) => { + // @ts-ignore new prop + return v.deployment_stats; + }) + .filter(isDefined) as TrainedModelDeploymentStatsResponse[] ) .filter((v) => v.nodes.some((n) => Object.keys(n.node)[0] === nodeId)) .map(({ nodes, ...rest }) => { diff --git a/x-pack/plugins/ml/server/routes/apidoc.json b/x-pack/plugins/ml/server/routes/apidoc.json index b7bd92c913891..e1a839b21f7b0 100644 --- a/x-pack/plugins/ml/server/routes/apidoc.json +++ b/x-pack/plugins/ml/server/routes/apidoc.json @@ -160,7 +160,6 @@ "TrainedModels", "GetTrainedModel", "GetTrainedModelStats", - "GetTrainedModelDeploymentStats", "GetTrainedModelsNodesOverview", "GetTrainedModelPipelines", "StartTrainedModelDeployment", diff --git a/x-pack/plugins/ml/server/routes/trained_models.ts b/x-pack/plugins/ml/server/routes/trained_models.ts index 1837f9e88edf3..e7696861153ff 100644 --- a/x-pack/plugins/ml/server/routes/trained_models.ts +++ b/x-pack/plugins/ml/server/routes/trained_models.ts @@ -198,7 +198,11 @@ export function trainedModelsRoutes({ router, routeGuard }: RouteInitialization) path: '/api/ml/trained_models/nodes_overview', validate: {}, options: { - tags: ['access:ml:canGetDataFrameAnalytics'], + tags: [ + 'access:ml:canViewMlNodes', + 'access:ml:canGetDataFrameAnalytics', + 'access:ml:canGetJobs', + ], }, }, routeGuard.fullLicenseAPIGuard(async ({ client, mlClient, request, response }) => { @@ -281,36 +285,4 @@ export function trainedModelsRoutes({ router, routeGuard }: RouteInitialization) } }) ); - - /** - * @apiGroup TrainedModels - * - * @api {get} /api/ml/trained_models/:modelId/deployment/_stats Get trained model deployment stats - * @apiName GetTrainedModelDeploymentStats - * @apiDescription Gets trained model deployment stats. - */ - router.get( - { - path: '/api/ml/trained_models/{modelId}/deployment/_stats', - validate: { - params: modelIdSchema, - }, - options: { - tags: ['access:ml:canGetDataFrameAnalytics'], - }, - }, - routeGuard.fullLicenseAPIGuard(async ({ mlClient, request, response }) => { - try { - const { modelId } = request.params; - const { body } = await mlClient.getTrainedModelDeploymentStats({ - model_id: modelId, - }); - return response.ok({ - body, - }); - } catch (e) { - return response.customError(wrapError(e)); - } - }) - ); } diff --git a/x-pack/plugins/ml/shared_imports.ts b/x-pack/plugins/ml/shared_imports.ts index 255a1e3c20d60..e70410c99a8f4 100644 --- a/x-pack/plugins/ml/shared_imports.ts +++ b/x-pack/plugins/ml/shared_imports.ts @@ -5,6 +5,9 @@ * 2.0. */ +export { EuiCodeEditor } from '../../../src/plugins/es_ui_shared/public'; +export type { EuiCodeEditorProps } from '../../../src/plugins/es_ui_shared/public'; + import { XJson } from '../../../src/plugins/es_ui_shared/public'; const { collapseLiteralStrings, expandLiteralStrings } = XJson; diff --git a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/__snapshots__/shard.test.js.snap b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/__snapshots__/shard.test.js.snap index dcad0937066d5..5c0294ffdc8d8 100644 --- a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/__snapshots__/shard.test.js.snap +++ b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/__snapshots__/shard.test.js.snap @@ -27,7 +27,7 @@ exports[`Shard should show for assigned replica shards 1`] = ` onMouseLeave={[Function]} > <EuiBadge - color="secondary" + color="success" > 0 </EuiBadge> diff --git a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/shard.js b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/shard.js index a81e1f8db5ec8..6676b71b4bf13 100644 --- a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/shard.js +++ b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/components/shard.js @@ -39,7 +39,7 @@ function getColor(classes) { } if (classList.includes('replica')) { - return 'secondary'; + return 'success'; } } diff --git a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/shard_allocation.js b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/shard_allocation.js index 7ca24853a9ccb..1c9021aeedf74 100644 --- a/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/shard_allocation.js +++ b/x-pack/plugins/monitoring/public/components/elasticsearch/shard_allocation/shard_allocation.js @@ -24,7 +24,7 @@ export const ShardAllocation = (props) => { label: i18n.translate('xpack.monitoring.elasticsearch.shardAllocation.replicaLabel', { defaultMessage: 'Replica', }), - color: 'secondary', + color: 'success', }, { label: i18n.translate('xpack.monitoring.elasticsearch.shardAllocation.relocatingLabel', { diff --git a/x-pack/plugins/monitoring/public/components/setup_mode/__snapshots__/tooltip.test.js.snap b/x-pack/plugins/monitoring/public/components/setup_mode/__snapshots__/tooltip.test.js.snap index 2a3a27cbc7c12..2edd5c1ab0cf2 100644 --- a/x-pack/plugins/monitoring/public/components/setup_mode/__snapshots__/tooltip.test.js.snap +++ b/x-pack/plugins/monitoring/public/components/setup_mode/__snapshots__/tooltip.test.js.snap @@ -127,7 +127,7 @@ exports[`setupMode SetupModeTooltip allMonitoredByMetricbeat should render for a position="top" > <EuiBadge - color="secondary" + color="success" href="" iconType="flag" onClickAriaLabel="Metricbeat monitoring" @@ -150,7 +150,7 @@ exports[`setupMode SetupModeTooltip allMonitoredByMetricbeat should render for b position="top" > <EuiBadge - color="secondary" + color="success" href="" iconType="flag" onClickAriaLabel="Metricbeat monitoring" @@ -173,7 +173,7 @@ exports[`setupMode SetupModeTooltip allMonitoredByMetricbeat should render for e position="top" > <EuiBadge - color="secondary" + color="success" href="" iconType="flag" onClickAriaLabel="Metricbeat monitoring" @@ -196,7 +196,7 @@ exports[`setupMode SetupModeTooltip allMonitoredByMetricbeat should render for k position="top" > <EuiBadge - color="secondary" + color="success" href="" iconType="flag" onClickAriaLabel="Metricbeat monitoring" @@ -219,7 +219,7 @@ exports[`setupMode SetupModeTooltip allMonitoredByMetricbeat should render for l position="top" > <EuiBadge - color="secondary" + color="success" href="" iconType="flag" onClickAriaLabel="Metricbeat monitoring" diff --git a/x-pack/plugins/monitoring/public/components/setup_mode/tooltip.js b/x-pack/plugins/monitoring/public/components/setup_mode/tooltip.js index 507dd12d6c56a..1fd9cdf6c3c70 100644 --- a/x-pack/plugins/monitoring/public/components/setup_mode/tooltip.js +++ b/x-pack/plugins/monitoring/public/components/setup_mode/tooltip.js @@ -145,7 +145,7 @@ export function SetupModeTooltip({ setupModeData, badgeClickLink, productName }) })} > <EuiBadge - color="secondary" + color="success" iconType="flag" href={badgeClickLink} onClickAriaLabel={metricbeatCollection} diff --git a/x-pack/plugins/monitoring/public/components/summary_status/summary_status.test.js b/x-pack/plugins/monitoring/public/components/summary_status/summary_status.test.js index f3e4670c40dc4..1428418ad3705 100644 --- a/x-pack/plugins/monitoring/public/components/summary_status/summary_status.test.js +++ b/x-pack/plugins/monitoring/public/components/summary_status/summary_status.test.js @@ -8,7 +8,6 @@ import React from 'react'; import { renderWithIntl } from '@kbn/test/jest'; import { SummaryStatus } from './summary_status'; -jest.mock(`@elastic/eui/lib/components/form/form_row/make_id`, () => () => `generated-id`); describe('Summary Status Component', () => { it('should render metrics in a summary bar', () => { diff --git a/x-pack/plugins/observability/common/index.ts b/x-pack/plugins/observability/common/index.ts index 6b4ea62c16762..fcc3fdd64c36c 100644 --- a/x-pack/plugins/observability/common/index.ts +++ b/x-pack/plugins/observability/common/index.ts @@ -21,3 +21,6 @@ export const observabilityAppId = 'observability-overview'; // Used by feature and "solution" registration export const observabilityFeatureId = 'observability'; + +// Used by Cases to install routes +export const casesPath = '/cases'; diff --git a/x-pack/plugins/observability/kibana.json b/x-pack/plugins/observability/kibana.json index 822e0cf9efe7c..343e16f4a4095 100644 --- a/x-pack/plugins/observability/kibana.json +++ b/x-pack/plugins/observability/kibana.json @@ -11,6 +11,7 @@ "observability" ], "optionalPlugins": [ + "discover", "embeddable", "home", "lens", diff --git a/x-pack/plugins/observability/public/application/index.tsx b/x-pack/plugins/observability/public/application/index.tsx index 69ee6fa19cf0f..ff1b630862e71 100644 --- a/x-pack/plugins/observability/public/application/index.tsx +++ b/x-pack/plugins/observability/public/application/index.tsx @@ -31,12 +31,12 @@ function App() { <Switch> {Object.keys(routes).map((key) => { const path = key as keyof typeof routes; - const route = routes[path]; + const { handler, exact } = routes[path]; const Wrapper = () => { const params = useRouteParams(path); - return route.handler(params); + return handler(params); }; - return <Route key={path} path={path} exact={true} component={Wrapper} />; + return <Route key={path} path={path} exact={exact} component={Wrapper} />; })} </Switch> </> diff --git a/x-pack/plugins/observability/public/components/app/cases/all_cases/index.tsx b/x-pack/plugins/observability/public/components/app/cases/all_cases/index.tsx deleted file mode 100644 index 4b57475343605..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/all_cases/index.tsx +++ /dev/null @@ -1,70 +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 { observabilityAppId } from '../../../../../common'; - -import { - getCaseDetailsUrl, - getConfigureCasesUrl, - getCreateCaseUrl, - useFormatUrl, -} from '../../../../pages/cases/links'; -import { useKibana } from '../../../../utils/kibana_react'; -import { CASES_OWNER } from '../constants'; - -export interface AllCasesNavProps { - detailName: string; - search?: string; - subCaseId?: string; -} - -interface AllCasesProps { - userCanCrud: boolean; -} -export const AllCases = React.memo<AllCasesProps>(({ userCanCrud }) => { - const { - cases: casesUi, - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - const { formatUrl } = useFormatUrl(); - - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - return casesUi.getAllCases({ - caseDetailsNavigation: { - href: ({ detailName, subCaseId }: AllCasesNavProps) => { - return formatUrl(getCaseDetailsUrl({ id: detailName, subCaseId })); - }, - onClick: async ({ detailName, subCaseId, search }: AllCasesNavProps) => - navigateToUrl(`${casesUrl}${getCaseDetailsUrl({ id: detailName, subCaseId })}`), - }, - configureCasesNavigation: { - href: formatUrl(getConfigureCasesUrl()), - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(`${casesUrl}${getConfigureCasesUrl()}`); - }, - }, - createCaseNavigation: { - href: formatUrl(getCreateCaseUrl()), - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(`${casesUrl}${getCreateCaseUrl()}`); - }, - }, - disableAlerts: true, - showTitle: true, - userCanCrud, - owner: [CASES_OWNER], - }); -}); - -AllCases.displayName = 'AllCases'; diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx deleted file mode 100644 index 25d32d0cae884..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/callout.test.tsx +++ /dev/null @@ -1,90 +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 { mount } from 'enzyme'; - -import { CallOut, CallOutProps } from './callout'; - -describe('Callout', () => { - const defaultProps: CallOutProps = { - id: 'md5-hex', - type: 'primary', - title: 'a tittle', - messages: [ - { - id: 'generic-error', - title: 'message-one', - description: <p>{'error'}</p>, - }, - ], - showCallOut: true, - handleDismissCallout: jest.fn(), - }; - - beforeEach(() => { - jest.clearAllMocks(); - }); - - it('renders the callout', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - expect(wrapper.find(`[data-test-subj="caseCallout-md5-hex"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="calloutMessages-md5-hex"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="calloutDismiss-md5-hex"]`).exists()).toBeTruthy(); - }); - - it('hides the callout', () => { - const wrapper = mount(<CallOut {...defaultProps} showCallOut={false} />); - expect(wrapper.find(`[data-test-subj="caseCallout-md5-hex"]`).exists()).toBeFalsy(); - }); - - it('does not show any messages when the list is empty', () => { - const wrapper = mount(<CallOut {...defaultProps} messages={[]} />); - expect(wrapper.find(`[data-test-subj="calloutMessages-md5-hex"]`).exists()).toBeFalsy(); - }); - - it('transform the button color correctly - primary', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - const className = - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--primary')).toBeTruthy(); - }); - - it('transform the button color correctly - success', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'success'} />); - const className = - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--secondary')).toBeTruthy(); - }); - - it('transform the button color correctly - warning', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'warning'} />); - const className = - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--warning')).toBeTruthy(); - }); - - it('transform the button color correctly - danger', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'danger'} />); - const className = - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--danger')).toBeTruthy(); - }); - - it('dismiss the callout correctly', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - expect(wrapper.find(`[data-test-subj="calloutDismiss-md5-hex"]`).exists()).toBeTruthy(); - wrapper.find(`button[data-test-subj="calloutDismiss-md5-hex"]`).simulate('click'); - wrapper.update(); - - expect(defaultProps.handleDismissCallout).toHaveBeenCalledWith('md5-hex', 'primary'); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx deleted file mode 100644 index 15bd250c6ceb6..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/callout.tsx +++ /dev/null @@ -1,51 +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 { EuiCallOut, EuiButton, EuiDescriptionList } from '@elastic/eui'; -import { isEmpty } from 'lodash/fp'; -import React, { memo, useCallback } from 'react'; - -import { ErrorMessage } from './types'; -import * as i18n from './translations'; - -export interface CallOutProps { - id: string; - type: NonNullable<ErrorMessage['errorType']>; - title: string; - messages: ErrorMessage[]; - showCallOut: boolean; - handleDismissCallout: (id: string, type: NonNullable<ErrorMessage['errorType']>) => void; -} - -function CallOutComponent({ - id, - type, - title, - messages, - showCallOut, - handleDismissCallout, -}: CallOutProps) { - const handleCallOut = useCallback( - () => handleDismissCallout(id, type), - [handleDismissCallout, id, type] - ); - - return showCallOut && !isEmpty(messages) ? ( - <EuiCallOut title={title} color={type} iconType="gear" data-test-subj={`caseCallout-${id}`}> - <EuiDescriptionList data-test-subj={`calloutMessages-${id}`} listItems={messages} /> - <EuiButton - data-test-subj={`calloutDismiss-${id}`} - color={type === 'success' ? 'secondary' : type} - onClick={handleCallOut} - > - {i18n.DISMISS_CALLOUT} - </EuiButton> - </EuiCallOut> - ) : null; -} - -export const CallOut = memo(CallOutComponent); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/helpers.test.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/helpers.test.tsx deleted file mode 100644 index b5b92a3374874..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/helpers.test.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import md5 from 'md5'; -import { createCalloutId } from './helpers'; - -describe('createCalloutId', () => { - it('creates id correctly with one id', () => { - const digest = md5('one'); - const id = createCalloutId(['one']); - expect(id).toBe(digest); - }); - - it('creates id correctly with multiples ids', () => { - const digest = md5('one|two|three'); - const id = createCalloutId(['one', 'two', 'three']); - expect(id).toBe(digest); - }); - - it('creates id correctly with multiples ids and delimiter', () => { - const digest = md5('one,two,three'); - const id = createCalloutId(['one', 'two', 'three'], ','); - expect(id).toBe(digest); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/index.test.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/index.test.tsx deleted file mode 100644 index bb0284398f4b3..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/index.test.tsx +++ /dev/null @@ -1,215 +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 { mount } from 'enzyme'; - -import { EuiThemeProvider } from '../../../../../../../../src/plugins/kibana_react/common'; -import { useMessagesStorage } from '../../../../hooks/use_messages_storage'; -import { createCalloutId } from './helpers'; -import { CaseCallOut, CaseCallOutProps } from '.'; -import { observabilityAppId } from '../../../../../common'; - -jest.mock('../../../../hooks/use_messages_storage'); -const useSecurityLocalStorageMock = useMessagesStorage as jest.Mock; -const securityLocalStorageMock = { - getMessages: jest.fn(() => []), - addMessage: jest.fn(), -}; - -describe('CaseCallOut ', () => { - beforeEach(() => { - jest.clearAllMocks(); - useSecurityLocalStorageMock.mockImplementation(() => securityLocalStorageMock); - }); - - it('renders a callout correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - { id: 'message-two', title: 'title', description: <p>{'for real'}</p> }, - ], - }; - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one', 'message-two']); - expect(wrapper.find(`[data-test-subj="calloutMessages-${id}"]`).last().exists()).toBeTruthy(); - }); - - it('groups the messages correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'danger', - }, - { id: 'message-two', title: 'title two', description: <p>{'for real'}</p> }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const idDanger = createCalloutId(['message-one']); - const idPrimary = createCalloutId(['message-two']); - - expect( - wrapper.find(`[data-test-subj="caseCallout-${idPrimary}"]`).last().exists() - ).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="caseCallout-${idDanger}"]`).last().exists()).toBeTruthy(); - }); - - it('dismisses the callout correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - - expect(wrapper.find(`[data-test-subj="caseCallout-${id}"]`).last().exists()).toBeTruthy(); - wrapper.find(`[data-test-subj="calloutDismiss-${id}"]`).last().simulate('click'); - expect(wrapper.find(`[data-test-subj="caseCallout-${id}"]`).exists()).toBeFalsy(); - }); - - it('persist the callout of type primary when dismissed', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - expect(securityLocalStorageMock.getMessages).toHaveBeenCalledWith(observabilityAppId); - wrapper.find(`[data-test-subj="calloutDismiss-${id}"]`).last().simulate('click'); - expect(securityLocalStorageMock.addMessage).toHaveBeenCalledWith(observabilityAppId, id); - }); - - it('do not show the callout if is in the localStorage', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - - const id = createCalloutId(['message-one']); - - useSecurityLocalStorageMock.mockImplementation(() => ({ - ...securityLocalStorageMock, - getMessages: jest.fn(() => [id]), - })); - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - expect(wrapper.find(`[data-test-subj="caseCallout-${id}"]`).last().exists()).toBeFalsy(); - }); - - it('do not persist a callout of type danger', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'danger', - }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="calloutDismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); - - it('do not persist a callout of type warning', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'warning', - }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="calloutDismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); - - it('do not persist a callout of type success', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'success', - }, - ], - }; - - const wrapper = mount( - <EuiThemeProvider> - <CaseCallOut {...props} /> - </EuiThemeProvider> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="calloutDismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/index.tsx b/x-pack/plugins/observability/public/components/app/cases/callout/index.tsx deleted file mode 100644 index 67c442d62262f..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/callout/index.tsx +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { EuiSpacer } from '@elastic/eui'; -import React, { memo, useCallback, useState, useMemo } from 'react'; - -import { CallOut } from './callout'; -import { ErrorMessage } from './types'; -import { createCalloutId } from './helpers'; -import { useMessagesStorage } from '../../../../hooks/use_messages_storage'; -import { observabilityAppId } from '../../../../../common'; - -export * from './helpers'; - -export interface CaseCallOutProps { - title: string; - messages?: ErrorMessage[]; -} - -type GroupByTypeMessages = { - [key in NonNullable<ErrorMessage['errorType']>]: { - messagesId: string[]; - messages: ErrorMessage[]; - }; -}; - -interface CalloutVisibility { - [index: string]: boolean; -} - -function CaseCallOutComponent({ title, messages = [] }: CaseCallOutProps) { - const { getMessages, addMessage } = useMessagesStorage(); - - const caseMessages = useMemo(() => getMessages(observabilityAppId), [getMessages]); - const dismissedCallouts = useMemo( - () => - caseMessages.reduce<CalloutVisibility>( - (acc: CalloutVisibility, id) => ({ - ...acc, - [id]: false, - }), - {} - ), - [caseMessages] - ); - - const [calloutVisibility, setCalloutVisibility] = useState(dismissedCallouts); - const handleCallOut = useCallback( - (id, type) => { - setCalloutVisibility((prevState) => ({ ...prevState, [id]: false })); - if (type === 'primary') { - addMessage(observabilityAppId, id); - } - }, - [setCalloutVisibility, addMessage] - ); - - const groupedByTypeErrorMessages = useMemo( - () => - messages.reduce<GroupByTypeMessages>( - (acc: GroupByTypeMessages, currentMessage: ErrorMessage) => { - const type = currentMessage.errorType == null ? 'primary' : currentMessage.errorType; - return { - ...acc, - [type]: { - messagesId: [...(acc[type]?.messagesId ?? []), currentMessage.id], - messages: [...(acc[type]?.messages ?? []), currentMessage], - }, - }; - }, - {} as GroupByTypeMessages - ), - [messages] - ); - - return ( - <> - {(Object.keys(groupedByTypeErrorMessages) as Array<keyof ErrorMessage['errorType']>).map( - (type: NonNullable<ErrorMessage['errorType']>) => { - const id = createCalloutId(groupedByTypeErrorMessages[type].messagesId); - return ( - <React.Fragment key={id}> - <CallOut - id={id} - type={type} - title={title} - messages={groupedByTypeErrorMessages[type].messages} - showCallOut={calloutVisibility[id] ?? true} - handleDismissCallout={handleCallOut} - /> - <EuiSpacer /> - </React.Fragment> - ); - } - )} - </> - ); -} - -export const CaseCallOut = memo(CaseCallOutComponent); diff --git a/x-pack/plugins/observability/public/components/app/cases/case_view/index.tsx b/x-pack/plugins/observability/public/components/app/cases/case_view/index.tsx deleted file mode 100644 index 87c7aef88eef0..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/case_view/index.tsx +++ /dev/null @@ -1,163 +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, { useCallback, useState, Suspense } from 'react'; -import { - casesBreadcrumbs, - getCaseDetailsUrl, - getCaseDetailsUrlWithCommentId, - getCaseUrl, - getConfigureCasesUrl, - useFormatUrl, -} from '../../../../pages/cases/links'; -import { Case } from '../../../../../../cases/common'; -import { useFetchAlertData, useFetchAlertDetail } from './helpers'; -import { useKibana } from '../../../../utils/kibana_react'; -import { usePluginContext } from '../../../../hooks/use_plugin_context'; -import { useBreadcrumbs } from '../../../../hooks/use_breadcrumbs'; -import { observabilityAppId } from '../../../../../common'; -import { LazyAlertsFlyout } from '../../../..'; - -interface Props { - caseId: string; - subCaseId?: string; - userCanCrud: boolean; -} - -export interface OnUpdateFields { - key: keyof Case; - value: Case[keyof Case]; - onSuccess?: () => void; - onError?: () => void; -} - -export interface CaseProps extends Props { - fetchCase: () => void; - caseData: Case; - updateCase: (newCase: Case) => void; -} - -export const CaseView = React.memo(({ caseId, subCaseId, userCanCrud }: Props) => { - const [caseTitle, setCaseTitle] = useState<string | null>(null); - const { observabilityRuleTypeRegistry } = usePluginContext(); - - const { - cases: casesUi, - application: { getUrlForApp, navigateToUrl, navigateToApp }, - } = useKibana().services; - const allCasesLink = getCaseUrl(); - const { formatUrl } = useFormatUrl(); - const href = formatUrl(allCasesLink); - const [selectedAlertId, setSelectedAlertId] = useState<string>(''); - - useBreadcrumbs([ - { ...casesBreadcrumbs.cases, href }, - ...(caseTitle !== null - ? [ - { - text: caseTitle, - }, - ] - : []), - ]); - - const onCaseDataSuccess = useCallback( - (data: Case) => { - if (caseTitle === null || caseTitle !== data.title) { - setCaseTitle(data.title); - } - }, - [caseTitle] - ); - - const configureCasesLink = getConfigureCasesUrl(); - const allCasesHref = href; - const configureCasesHref = formatUrl(configureCasesLink); - const caseDetailsHref = formatUrl(getCaseDetailsUrl({ id: caseId }), { absolute: true }); - const getCaseDetailHrefWithCommentId = useCallback( - (commentId: string) => - formatUrl(getCaseDetailsUrlWithCommentId({ id: caseId, commentId, subCaseId }), { - absolute: true, - }), - [caseId, formatUrl, subCaseId] - ); - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - - const handleFlyoutClose = useCallback(() => { - setSelectedAlertId(''); - }, []); - - const [alertLoading, alert] = useFetchAlertDetail(selectedAlertId); - - return ( - <> - {alertLoading === false && alert && selectedAlertId !== '' && ( - <Suspense fallback={null}> - <LazyAlertsFlyout - alert={alert} - observabilityRuleTypeRegistry={observabilityRuleTypeRegistry} - onClose={handleFlyoutClose} - /> - </Suspense> - )} - {casesUi.getCaseView({ - allCasesNavigation: { - href: allCasesHref, - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(casesUrl); - }, - }, - caseDetailsNavigation: { - href: caseDetailsHref, - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(`${casesUrl}${getCaseDetailsUrl({ id: caseId })}`); - }, - }, - caseId, - configureCasesNavigation: { - href: configureCasesHref, - onClick: async (ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToUrl(`${casesUrl}${configureCasesLink}`); - }, - }, - ruleDetailsNavigation: { - href: (ruleId) => { - return getUrlForApp('management', { - path: `/insightsAndAlerting/triggersActions/rule/${ruleId}`, - }); - }, - onClick: async (ruleId, ev) => { - if (ev != null) { - ev.preventDefault(); - } - return navigateToApp('management', { - path: `/insightsAndAlerting/triggersActions/rule/${ruleId}`, - }); - }, - }, - getCaseDetailHrefWithCommentId, - onCaseDataSuccess, - subCaseId, - useFetchAlertData, - showAlertDetails: (alertId) => { - setSelectedAlertId(alertId); - }, - userCanCrud, - hideSyncAlerts: true, - })} - </> - ); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/create/flyout.test.tsx b/x-pack/plugins/observability/public/components/app/cases/create/flyout.test.tsx deleted file mode 100644 index 977263a9721ea..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/create/flyout.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 { mount } from 'enzyme'; -import { EuiThemeProvider } from '../../../../../../../../src/plugins/kibana_react/common'; - -import { CreateCaseFlyout } from './flyout'; -import { render } from '@testing-library/react'; - -import { useKibana } from '../../../../utils/kibana_react'; -import { CASES_OWNER } from '../constants'; - -jest.mock('../../../../utils/kibana_react'); - -const onCloseFlyout = jest.fn(); -const onSuccess = jest.fn(); -const defaultProps = { - onCloseFlyout, - onSuccess, -}; - -describe('CreateCaseFlyout', () => { - const mockCreateCase = jest.fn(); - - beforeEach(() => { - jest.resetAllMocks(); - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: mockCreateCase, - }, - }, - }); - }); - - it('renders', () => { - const wrapper = mount( - <EuiThemeProvider> - <CreateCaseFlyout {...defaultProps} /> - </EuiThemeProvider> - ); - - expect(wrapper.find(`[data-test-subj='createCaseFlyout']`).exists()).toBeTruthy(); - }); - - it('Closing modal calls onCloseCaseModal', () => { - const wrapper = mount( - <EuiThemeProvider> - <CreateCaseFlyout {...defaultProps} /> - </EuiThemeProvider> - ); - - wrapper.find(`[data-test-subj='euiFlyoutCloseButton']`).first().simulate('click'); - expect(onCloseFlyout).toBeCalled(); - }); - - it('does not show the sync alerts toggle', () => { - render( - <EuiThemeProvider> - <CreateCaseFlyout {...defaultProps} /> - </EuiThemeProvider> - ); - - expect(mockCreateCase).toBeCalledTimes(1); - expect(mockCreateCase).toBeCalledWith({ - onCancel: onCloseFlyout, - onSuccess, - afterCaseCreated: undefined, - withSteps: false, - owner: [CASES_OWNER], - disableAlerts: true, - }); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/create/flyout.tsx b/x-pack/plugins/observability/public/components/app/cases/create/flyout.tsx deleted file mode 100644 index e8147ef7098ad..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/create/flyout.tsx +++ /dev/null @@ -1,82 +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, { memo } from 'react'; -import styled from 'styled-components'; -import { EuiFlyout, EuiFlyoutHeader, EuiTitle, EuiFlyoutBody } from '@elastic/eui'; - -import * as i18n from '../translations'; -import { Case } from '../../../../../../cases/common'; -import { CASES_OWNER } from '../constants'; -import { useKibana } from '../../../../utils/kibana_react'; - -export interface CreateCaseModalProps { - afterCaseCreated?: (theCase: Case) => Promise<void>; - onCloseFlyout: () => void; - onSuccess: (theCase: Case) => Promise<void>; -} - -const StyledFlyout = styled(EuiFlyout)` - ${({ theme }) => ` - z-index: ${theme.eui.euiZModal}; - `} -`; -// Adding bottom padding because timeline's -// bottom bar gonna hide the submit button. -// might not need for obs, test this when implementing this component -const StyledEuiFlyoutBody = styled(EuiFlyoutBody)` - ${({ theme }) => ` - && .euiFlyoutBody__overflow { - overflow-y: auto; - overflow-x: hidden; - } - - && .euiFlyoutBody__overflowContent { - display: block; - padding: ${theme.eui.paddingSizes.l} ${theme.eui.paddingSizes.l} 70px; - height: auto; - } - `} -`; - -const FormWrapper = styled.div` - width: 100%; -`; - -function CreateCaseFlyoutComponent({ - afterCaseCreated, - onCloseFlyout, - onSuccess, -}: CreateCaseModalProps) { - const { cases } = useKibana().services; - return ( - <StyledFlyout onClose={onCloseFlyout} data-test-subj="createCaseFlyout"> - <EuiFlyoutHeader hasBorder> - <EuiTitle size="m"> - <h2>{i18n.CREATE_TITLE}</h2> - </EuiTitle> - </EuiFlyoutHeader> - <StyledEuiFlyoutBody> - <FormWrapper> - {cases.getCreateCase({ - afterCaseCreated, - onCancel: onCloseFlyout, - onSuccess, - withSteps: false, - owner: [CASES_OWNER], - disableAlerts: true, - })} - </FormWrapper> - </StyledEuiFlyoutBody> - </StyledFlyout> - ); -} -// not yet used -// committing for use with alerting #RAC -export const CreateCaseFlyout = memo(CreateCaseFlyoutComponent); - -CreateCaseFlyout.displayName = 'CreateCaseFlyout'; diff --git a/x-pack/plugins/observability/public/components/app/cases/create/index.test.tsx b/x-pack/plugins/observability/public/components/app/cases/create/index.test.tsx deleted file mode 100644 index 4f68f8f4a00c0..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/create/index.test.tsx +++ /dev/null @@ -1,94 +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 { mount } from 'enzyme'; -import { waitFor } from '@testing-library/react'; -import { EuiThemeProvider } from '../../../../../../../../src/plugins/kibana_react/common'; -import { Create } from '.'; -import { useKibana } from '../../../../utils/kibana_react'; -import { basicCase } from '../../../../../../cases/public/containers/mock'; -import { CASES_OWNER } from '../constants'; -import { Case } from '../../../../../../cases/common'; -import { getCaseDetailsUrl } from '../../../../pages/cases/links'; - -jest.mock('../../../../utils/kibana_react'); - -describe('Create case', () => { - const mockCreateCase = jest.fn(); - const mockNavigateToUrl = jest.fn(); - const mockObservabilityUrl = 'https://elastic.co/app/observability'; - beforeEach(() => { - jest.resetAllMocks(); - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: mockCreateCase, - }, - application: { navigateToUrl: mockNavigateToUrl, getUrlForApp: () => mockObservabilityUrl }, - }, - }); - }); - - it('it renders', () => { - mount( - <EuiThemeProvider> - <Create /> - </EuiThemeProvider> - ); - - expect(mockCreateCase).toHaveBeenCalled(); - expect(mockCreateCase.mock.calls[0][0].owner).toEqual([CASES_OWNER]); - }); - - it('should redirect to all cases on cancel click', async () => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: ({ onCancel }: { onCancel: () => Promise<void> }) => { - onCancel(); - }, - }, - application: { navigateToUrl: mockNavigateToUrl, getUrlForApp: () => mockObservabilityUrl }, - }, - }); - mount( - <EuiThemeProvider> - <Create /> - </EuiThemeProvider> - ); - - await waitFor(() => - expect(mockNavigateToUrl).toHaveBeenCalledWith(`${mockObservabilityUrl}/cases`) - ); - }); - - it('should redirect to new case when posting the case', async () => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: ({ onSuccess }: { onSuccess: (theCase: Case) => Promise<void> }) => { - onSuccess(basicCase); - }, - }, - application: { navigateToUrl: mockNavigateToUrl, getUrlForApp: () => mockObservabilityUrl }, - }, - }); - mount( - <EuiThemeProvider> - <Create /> - </EuiThemeProvider> - ); - - await waitFor(() => - expect(mockNavigateToUrl).toHaveBeenNthCalledWith( - 1, - `${mockObservabilityUrl}/cases${getCaseDetailsUrl({ id: basicCase.id })}` - ) - ); - }); -}); diff --git a/x-pack/plugins/observability/public/components/app/cases/create/index.tsx b/x-pack/plugins/observability/public/components/app/cases/create/index.tsx deleted file mode 100644 index 153797df7cd83..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/create/index.tsx +++ /dev/null @@ -1,39 +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, { useCallback } from 'react'; - -import { useKibana } from '../../../../utils/kibana_react'; -import { getCaseDetailsUrl } from '../../../../pages/cases/links'; -import { CASES_OWNER } from '../constants'; -import { observabilityAppId } from '../../../../../common'; - -export const Create = React.memo(() => { - const { - cases, - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - const onSuccess = useCallback( - async ({ id }) => navigateToUrl(`${casesUrl}${getCaseDetailsUrl({ id })}`), - [casesUrl, navigateToUrl] - ); - - const handleSetIsCancel = useCallback( - () => navigateToUrl(`${casesUrl}`), - [casesUrl, navigateToUrl] - ); - - return cases.getCreateCase({ - disableAlerts: true, - onCancel: handleSetIsCancel, - onSuccess, - owner: [CASES_OWNER], - }); -}); - -Create.displayName = 'Create'; diff --git a/x-pack/plugins/observability/public/components/app/cases/translations.ts b/x-pack/plugins/observability/public/components/app/cases/translations.ts deleted file mode 100644 index af016be0182a3..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/translations.ts +++ /dev/null @@ -1,213 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; - -export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( - 'xpack.observability.cases.caseFeatureNoPermissionsTitle', - { - defaultMessage: 'Kibana feature privileges required', - } -); - -export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( - 'xpack.observability.cases.caseFeatureNoPermissionsMessage', - { - defaultMessage: - 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', - } -); -export const BACK_TO_ALL = i18n.translate('xpack.observability.cases.caseView.backLabel', { - defaultMessage: 'Back to cases', -}); - -export const CANCEL = i18n.translate('xpack.observability.cases.caseView.cancel', { - defaultMessage: 'Cancel', -}); - -export const DELETE_CASE = i18n.translate( - 'xpack.observability.cases.confirmDeleteCase.deleteCase', - { - defaultMessage: 'Delete case', - } -); - -export const DELETE_CASES = i18n.translate( - 'xpack.observability.cases.confirmDeleteCase.deleteCases', - { - defaultMessage: 'Delete cases', - } -); - -export const NAME = i18n.translate('xpack.observability.cases.caseView.name', { - defaultMessage: 'Name', -}); - -export const REPORTER = i18n.translate('xpack.observability.cases.caseView.reporterLabel', { - defaultMessage: 'Reporter', -}); - -export const PARTICIPANTS = i18n.translate('xpack.observability.cases.caseView.particpantsLabel', { - defaultMessage: 'Participants', -}); - -export const CREATE_TITLE = i18n.translate('xpack.observability.cases.caseView.create', { - defaultMessage: 'Create new case', -}); - -export const DESCRIPTION = i18n.translate('xpack.observability.cases.caseView.description', { - defaultMessage: 'Description', -}); - -export const DESCRIPTION_REQUIRED = i18n.translate( - 'xpack.observability.cases.createCase.descriptionFieldRequiredError', - { - defaultMessage: 'A description is required.', - } -); - -export const COMMENT_REQUIRED = i18n.translate( - 'xpack.observability.cases.caseView.commentFieldRequiredError', - { - defaultMessage: 'A comment is required.', - } -); - -export const REQUIRED_FIELD = i18n.translate( - 'xpack.observability.cases.caseView.fieldRequiredError', - { - defaultMessage: 'Required field', - } -); - -export const EDIT = i18n.translate('xpack.observability.cases.caseView.edit', { - defaultMessage: 'Edit', -}); - -export const OPTIONAL = i18n.translate('xpack.observability.cases.caseView.optional', { - defaultMessage: 'Optional', -}); - -export const CREATE_CASE = i18n.translate('xpack.observability.cases.caseView.createCase', { - defaultMessage: 'Create case', -}); - -export const CLOSE_CASE = i18n.translate('xpack.observability.cases.caseView.closeCase', { - defaultMessage: 'Close case', -}); - -export const REOPEN_CASE = i18n.translate('xpack.observability.cases.caseView.reopenCase', { - defaultMessage: 'Reopen case', -}); - -export const CASE_NAME = i18n.translate('xpack.observability.cases.caseView.caseName', { - defaultMessage: 'Case name', -}); - -export const TO = i18n.translate('xpack.observability.cases.caseView.to', { - defaultMessage: 'to', -}); - -export const TAGS = i18n.translate('xpack.observability.cases.caseView.tags', { - defaultMessage: 'Tags', -}); - -export const ACTIONS = i18n.translate('xpack.observability.cases.allCases.actions', { - defaultMessage: 'Actions', -}); - -export const NO_TAGS_AVAILABLE = i18n.translate( - 'xpack.observability.cases.allCases.noTagsAvailable', - { - defaultMessage: 'No tags available', - } -); - -export const NO_REPORTERS_AVAILABLE = i18n.translate( - 'xpack.observability.cases.caseView.noReportersAvailable', - { - defaultMessage: 'No reporters available.', - } -); - -export const COMMENTS = i18n.translate('xpack.observability.cases.allCases.comments', { - defaultMessage: 'Comments', -}); - -export const TAGS_HELP = i18n.translate('xpack.observability.cases.createCase.fieldTagsHelpText', { - defaultMessage: - 'Type one or more custom identifying tags for this case. Press enter after each tag to begin a new one.', -}); - -export const NO_TAGS = i18n.translate('xpack.observability.cases.caseView.noTags', { - defaultMessage: 'No tags are currently assigned to this case.', -}); - -export const TITLE_REQUIRED = i18n.translate( - 'xpack.observability.cases.createCase.titleFieldRequiredError', - { - defaultMessage: 'A title is required.', - } -); - -export const CONFIGURE_CASES_PAGE_TITLE = i18n.translate( - 'xpack.observability.cases.configureCases.headerTitle', - { - defaultMessage: 'Configure cases', - } -); - -export const CONFIGURE_CASES_BUTTON = i18n.translate( - 'xpack.observability.cases.configureCasesButton', - { - defaultMessage: 'Edit external connection', - } -); - -export const ADD_COMMENT = i18n.translate('xpack.observability.cases.caseView.comment.addComment', { - defaultMessage: 'Add comment', -}); - -export const ADD_COMMENT_HELP_TEXT = i18n.translate( - 'xpack.observability.cases.caseView.comment.addCommentHelpText', - { - defaultMessage: 'Add a new comment...', - } -); - -export const SAVE = i18n.translate('xpack.observability.cases.caseView.description.save', { - defaultMessage: 'Save', -}); - -export const GO_TO_DOCUMENTATION = i18n.translate( - 'xpack.observability.cases.caseView.goToDocumentationButton', - { - defaultMessage: 'View documentation', - } -); - -export const CONNECTORS = i18n.translate('xpack.observability.cases.caseView.connectors', { - defaultMessage: 'External Incident Management System', -}); - -export const EDIT_CONNECTOR = i18n.translate('xpack.observability.cases.caseView.editConnector', { - defaultMessage: 'Change external incident management system', -}); - -export const READ_ONLY_BADGE_TEXT = i18n.translate( - 'xpack.observability.cases.badge.readOnly.text', - { - defaultMessage: 'Read only', - } -); - -export const READ_ONLY_BADGE_TOOLTIP = i18n.translate( - 'xpack.observability.cases.badge.readOnly.tooltip', - { - defaultMessage: 'Unable to create or edit cases', - } -); diff --git a/x-pack/plugins/observability/public/components/app/cases/wrappers/index.tsx b/x-pack/plugins/observability/public/components/app/cases/wrappers/index.tsx deleted file mode 100644 index 477fb77d98ee8..0000000000000 --- a/x-pack/plugins/observability/public/components/app/cases/wrappers/index.tsx +++ /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 styled from 'styled-components'; - -export const WhitePageWrapper = styled.div` - background-color: ${({ theme }) => theme.eui.euiColorEmptyShade}; - border-top: ${({ theme }) => theme.eui.euiBorderThin}; - flex: 1 1 auto; -`; - -export const SectionWrapper = styled.div` - box-sizing: content-box; - margin: 0 auto; - max-width: 1175px; - width: 100%; -`; diff --git a/x-pack/plugins/observability/public/components/shared/add_data_buttons/synthetics_add_data.tsx b/x-pack/plugins/observability/public/components/shared/add_data_buttons/synthetics_add_data.tsx index d852d6fdb9a31..af91624769e6b 100644 --- a/x-pack/plugins/observability/public/components/shared/add_data_buttons/synthetics_add_data.tsx +++ b/x-pack/plugins/observability/public/components/shared/add_data_buttons/synthetics_add_data.tsx @@ -16,9 +16,9 @@ export function SyntheticsAddData() { return ( <EuiHeaderLink aria-label={i18n.translate('xpack.observability.page_header.addUptimeDataLink.label', { - defaultMessage: 'Navigate to the Elastic Synthetics integration to add Uptime data', + defaultMessage: 'Navigate to a tutorial about adding Uptime data', })} - href={kibana.services?.application?.getUrlForApp('/integrations/detail/synthetics/overview')} + href={kibana.services?.application?.getUrlForApp('/home#/tutorial/uptimeMonitors')} color="primary" iconType="indexOpen" > diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants/elasticsearch_fieldnames.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants/elasticsearch_fieldnames.ts index 01dd2a49b9be0..1b20b82c1202c 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants/elasticsearch_fieldnames.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/constants/elasticsearch_fieldnames.ts @@ -49,7 +49,6 @@ export const TRANSACTION_RESULT = 'transaction.result'; export const TRANSACTION_NAME = 'transaction.name'; export const TRANSACTION_ID = 'transaction.id'; export const TRANSACTION_SAMPLED = 'transaction.sampled'; -export const TRANSACTION_BREAKDOWN_COUNT = 'transaction.breakdown.count'; export const TRANSACTION_PAGE_URL = 'transaction.page.url'; // for transaction metrics export const TRANSACTION_ROOT = 'transaction.root'; diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts index 56e6cb5210356..7eab266ea35d1 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/configurations/utils.ts @@ -5,10 +5,15 @@ * 2.0. */ import rison, { RisonValue } from 'rison-node'; +import { buildQueryFilter } from '@kbn/es-query'; import type { ReportViewType, SeriesUrl, UrlFilter } from '../types'; import type { AllSeries, AllShortSeries } from '../hooks/use_series_storage'; import { IndexPattern } from '../../../../../../../../src/plugins/data/common'; -import { esFilters, ExistsFilter } from '../../../../../../../../src/plugins/data/public'; +import { + esFilters, + ExistsFilter, + PhraseFilter, +} from '../../../../../../../../src/plugins/data/public'; import { URL_KEYS } from './constants/url_constants'; import { PersistableFilter } from '../../../../../../lens/common'; @@ -64,9 +69,32 @@ export function buildPhraseFilter(field: string, value: string, indexPattern: In return []; } +export function getQueryFilter(field: string, value: string[], indexPattern: IndexPattern) { + const fieldMeta = indexPattern?.fields.find((fieldT) => fieldT.name === field); + if (fieldMeta && indexPattern.id) { + return value.map((val) => + buildQueryFilter( + { + query_string: { + fields: [field], + query: `*${val}*`, + }, + }, + indexPattern.id!, + '' + ) + ); + } + + return []; +} + export function buildPhrasesFilter(field: string, value: string[], indexPattern: IndexPattern) { const fieldMeta = indexPattern?.fields.find((fieldT) => fieldT.name === field); if (fieldMeta) { + if (value.length === 1) { + return [esFilters.buildPhraseFilter(fieldMeta, value[0], indexPattern)]; + } return [esFilters.buildPhrasesFilter(fieldMeta, value, indexPattern)]; } return []; @@ -80,7 +108,7 @@ export function buildExistsFilter(field: string, indexPattern: IndexPattern) { return []; } -type FiltersType = PersistableFilter[] | ExistsFilter[]; +type FiltersType = Array<PersistableFilter | ExistsFilter | PhraseFilter>; export function urlFilterToPersistedFilter({ urlFilters, @@ -88,23 +116,36 @@ export function urlFilterToPersistedFilter({ indexPattern, }: { urlFilters: UrlFilter[]; - initFilters: FiltersType; + initFilters?: FiltersType; indexPattern: IndexPattern; }) { const parsedFilters: FiltersType = initFilters ? [...initFilters] : []; - urlFilters.forEach(({ field, values = [], notValues = [] }) => { - if (values?.length > 0) { - const filter = buildPhrasesFilter(field, values, indexPattern); - parsedFilters.push(...filter); - } + urlFilters.forEach( + ({ field, values = [], notValues = [], wildcards = [], notWildcards = ([] = []) }) => { + if (values.length > 0) { + const filter = buildPhrasesFilter(field, values, indexPattern); + parsedFilters.push(...filter); + } + + if (notValues.length > 0) { + const filter = buildPhrasesFilter(field, notValues, indexPattern)[0]; + filter.meta.negate = true; + parsedFilters.push(filter); + } - if (notValues?.length > 0) { - const filter = buildPhrasesFilter(field, notValues, indexPattern)[0]; - filter.meta.negate = true; - parsedFilters.push(filter); + if (wildcards.length > 0) { + const filter = getQueryFilter(field, wildcards, indexPattern); + parsedFilters.push(...filter); + } + + if (notWildcards.length > 0) { + const filter = getQueryFilter(field, notWildcards, indexPattern)[0]; + filter.meta.negate = true; + parsedFilters.push(filter); + } } - }); + ); return parsedFilters; } diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.test.tsx index e4c9e25f6b29f..c825d0af6e47f 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.test.tsx @@ -74,7 +74,6 @@ describe('AddToCaseAction', function () { expect(core?.cases?.getAllCasesSelectorModal).toHaveBeenCalledTimes(1); expect(core?.cases?.getAllCasesSelectorModal).toHaveBeenCalledWith( expect.objectContaining({ - createCaseNavigation: expect.objectContaining({ href: '/app/observability/cases/create' }), owner: ['observability'], userCanCrud: true, }) diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.tsx index 1d230c765edae..440e2d36e2c83 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/add_to_case_action.tsx @@ -10,11 +10,14 @@ import { i18n } from '@kbn/i18n'; import React, { useCallback } from 'react'; import { toMountPoint, useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; import { ObservabilityAppServices } from '../../../../application/types'; -import { AllCasesSelectorModalProps } from '../../../../../../cases/public'; +import { + CasesDeepLinkId, + generateCaseViewPath, + GetAllCasesSelectorModalProps, +} from '../../../../../../cases/public'; import { TypedLensByValueInput } from '../../../../../../lens/public'; import { useAddToCase } from '../hooks/use_add_to_case'; -import { Case, SubCase } from '../../../../../../cases/common'; -import { observabilityFeatureId } from '../../../../../common'; +import { observabilityFeatureId, observabilityAppId } from '../../../../../common'; import { parseRelativeDate } from '../components/date_range_picker'; export interface AddToCaseProps { @@ -25,28 +28,34 @@ export interface AddToCaseProps { export function AddToCaseAction({ lensAttributes, timeRange }: AddToCaseProps) { const kServices = useKibana<ObservabilityAppServices>().services; - const { cases, http } = kServices; + const { + cases, + application: { getUrlForApp }, + } = kServices; const getToastText = useCallback( - (theCase) => toMountPoint(<CaseToastText theCase={theCase} basePath={http.basePath.get()} />), - [http.basePath] + (theCase) => + toMountPoint( + <CaseToastText + linkUrl={getUrlForApp(observabilityAppId, { + deepLinkId: CasesDeepLinkId.cases, + path: generateCaseViewPath({ detailName: theCase.id }), + })} + /> + ), + [getUrlForApp] ); const absoluteFromDate = parseRelativeDate(timeRange.from); const absoluteToDate = parseRelativeDate(timeRange.to, { roundUp: true }); - const { createCaseUrl, goToCreateCase, onCaseClicked, isCasesOpen, setIsCasesOpen, isSaving } = - useAddToCase({ - lensAttributes, - getToastText, - timeRange: { from: absoluteFromDate.toISOString(), to: absoluteToDate.toISOString() }, - }); + const { onCaseClicked, isCasesOpen, setIsCasesOpen, isSaving } = useAddToCase({ + lensAttributes, + getToastText, + timeRange: { from: absoluteFromDate.toISOString(), to: absoluteToDate.toISOString() }, + }); - const getAllCasesSelectorModalProps: AllCasesSelectorModalProps = { - createCaseNavigation: { - href: createCaseUrl, - onClick: goToCreateCase, - }, + const getAllCasesSelectorModalProps: GetAllCasesSelectorModalProps = { onRowClick: onCaseClicked, userCanCrud: true, owner: [observabilityFeatureId], @@ -79,11 +88,11 @@ export function AddToCaseAction({ lensAttributes, timeRange }: AddToCaseProps) { ); } -function CaseToastText({ theCase, basePath }: { theCase: Case | SubCase; basePath: string }) { +export function CaseToastText({ linkUrl }: { linkUrl: string }) { return ( <EuiFlexGroup justifyContent="center"> <EuiFlexItem> - <EuiLink href={`${basePath}/app/observability/cases/${theCase.id}`} target="_blank"> + <EuiLink href={linkUrl} target="_blank"> {i18n.translate('xpack.observability.expView.heading.addToCase.notification.viewCase', { defaultMessage: 'View case', })} diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx index 22245f111293c..8ef3f228a5854 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/header/header.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { EuiBetaBadge, EuiButton, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import { EuiButton, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; import { TypedLensByValueInput } from '../../../../../../lens/public'; import { useSeriesStorage } from '../hooks/use_series_storage'; import { ExpViewActionMenu } from '../components/action_menu'; @@ -34,15 +34,7 @@ export function ExploratoryViewHeader({ lensAttributes, chartTimeRange }: Props) <h2> {i18n.translate('xpack.observability.expView.heading.label', { defaultMessage: 'Explore data', - })}{' '} - <EuiBetaBadge - style={{ - verticalAlign: `middle`, - }} - label={i18n.translate('xpack.observability.expView.heading.experimental', { - defaultMessage: 'Experimental', - })} - /> + })} </h2> </EuiText> </EuiFlexItem> diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.test.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.test.tsx index 272f69ece2fa1..6e94170343a77 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.test.tsx @@ -10,6 +10,7 @@ import React, { useEffect } from 'react'; import { render } from '../rtl_helpers'; import { EuiButton } from '@elastic/eui'; import { fireEvent } from '@testing-library/dom'; +import { act } from '@testing-library/react'; describe('useAddToCase', function () { function setupTestComponent() { @@ -28,7 +29,7 @@ describe('useAddToCase', function () { return ( <span> - <EuiButton onClick={result.goToCreateCase}>Add new case</EuiButton> + <EuiButton onClick={() => result.onCaseClicked()}>Add new case</EuiButton> <EuiButton onClick={() => result.onCaseClicked({ id: 'test' } as any)}> On case click </EuiButton> @@ -44,21 +45,25 @@ describe('useAddToCase', function () { const { setData, core, findByText } = setupTestComponent(); expect(setData).toHaveBeenLastCalledWith({ - createCaseUrl: '/app/observability/cases/create', - goToCreateCase: expect.any(Function), isCasesOpen: false, isSaving: false, onCaseClicked: expect.any(Function), setIsCasesOpen: expect.any(Function), }); - fireEvent.click(await findByText('Add new case')); + + await act(async () => { + fireEvent.click(await findByText('Add new case')); + }); expect(core.application?.navigateToApp).toHaveBeenCalledTimes(1); expect(core.application?.navigateToApp).toHaveBeenCalledWith('observability', { - path: '/cases/create', + deepLinkId: 'cases_create', + openInNewTab: true, }); - fireEvent.click(await findByText('On case click')); + await act(async () => { + fireEvent.click(await findByText('On case click')); + }); expect(core.http?.post).toHaveBeenCalledTimes(1); expect(core.http?.post).toHaveBeenCalledWith('/api/cases/test/comments', { diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.ts b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.ts index d1e15aa916eed..1f6620e632eff 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.ts +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_add_to_case.ts @@ -5,8 +5,7 @@ * 2.0. */ -import { useCallback, useMemo, useState } from 'react'; -import { isEmpty } from 'lodash'; +import { useCallback, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { HttpSetup, MountPoint } from 'kibana/public'; import { useKibana } from '../../../../utils/kibana_react'; @@ -14,12 +13,7 @@ import { Case, SubCase } from '../../../../../../cases/common'; import { TypedLensByValueInput } from '../../../../../../lens/public'; import { AddToCaseProps } from '../header/add_to_case_action'; import { observabilityFeatureId } from '../../../../../common'; - -const appendSearch = (search?: string) => - isEmpty(search) ? '' : `${search?.startsWith('?') ? search : `?${search}`}`; - -const getCreateCaseUrl = (search?: string | null) => - `/cases/create${appendSearch(search ?? undefined)}`; +import { CasesDeepLinkId } from '../../../../../../cases/public'; async function addToCase( http: HttpSetup, @@ -53,25 +47,10 @@ export const useAddToCase = ({ const { http, - application: { navigateToApp, getUrlForApp }, + application: { navigateToApp }, notifications: { toasts }, } = useKibana().services; - const createCaseUrl = useMemo( - () => getUrlForApp(observabilityFeatureId) + getCreateCaseUrl(), - [getUrlForApp] - ); - - const goToCreateCase = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToApp(observabilityFeatureId, { - path: getCreateCaseUrl(), - }); - }, - [navigateToApp] - ); - const onCaseClicked = useCallback( (theCase?: Case | SubCase) => { if (theCase && lensAttributes) { @@ -109,7 +88,7 @@ export const useAddToCase = ({ ); } else { navigateToApp(observabilityFeatureId, { - path: getCreateCaseUrl(), + deepLinkId: CasesDeepLinkId.casesCreate, openInNewTab: true, }); } @@ -118,8 +97,6 @@ export const useAddToCase = ({ ); return { - createCaseUrl, - goToCreateCase, onCaseClicked, isSaving, isCasesOpen, diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx index 4f19a8131f669..03396ffef9d8d 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/hooks/use_discover_link.tsx @@ -9,7 +9,7 @@ import { useCallback, useEffect, useState } from 'react'; import { useKibana } from '../../../../utils/kibana_react'; import { SeriesConfig, SeriesUrl } from '../types'; import { useAppIndexPatternContext } from './use_app_index_pattern'; -import { buildExistsFilter, buildPhraseFilter, buildPhrasesFilter } from '../configurations/utils'; +import { buildExistsFilter, urlFilterToPersistedFilter } from '../configurations/utils'; import { getFiltersFromDefs } from './use_lens_attributes'; import { RECORDS_FIELD, RECORDS_PERCENTAGE_FIELD } from '../configurations/constants'; @@ -32,42 +32,42 @@ export const useDiscoverLink = ({ series, seriesConfig }: UseDiscoverLink) => { useEffect(() => { const indexPattern = indexPatterns?.[series.dataType]; - const definitions = series.reportDefinitions ?? {}; - const filters = [...(seriesConfig?.baseFilters ?? [])]; + if (indexPattern) { + const definitions = series.reportDefinitions ?? {}; - const definitionFilters = getFiltersFromDefs(definitions); + const urlFilters = (series.filters ?? []).concat(getFiltersFromDefs(definitions)); - definitionFilters.forEach(({ field, values = [] }) => { - if (values.length > 1) { - filters.push(buildPhrasesFilter(field, values, indexPattern)[0]); - } else { - filters.push(buildPhraseFilter(field, values[0], indexPattern)[0]); - } - }); + const filters = urlFilterToPersistedFilter({ + indexPattern, + urlFilters, + initFilters: seriesConfig?.baseFilters, + }); - const selectedMetricField = series.selectedMetricField; + const selectedMetricField = series.selectedMetricField; - if ( - selectedMetricField && - selectedMetricField !== RECORDS_FIELD && - selectedMetricField !== RECORDS_PERCENTAGE_FIELD - ) { - filters.push(buildExistsFilter(selectedMetricField, indexPattern)[0]); - } + if ( + selectedMetricField && + selectedMetricField !== RECORDS_FIELD && + selectedMetricField !== RECORDS_PERCENTAGE_FIELD + ) { + filters.push(buildExistsFilter(selectedMetricField, indexPattern)[0]); + } - const getDiscoverUrl = async () => { - if (!urlGenerator?.createUrl) return; + const getDiscoverUrl = async () => { + if (!urlGenerator?.createUrl) return; - const newUrl = await urlGenerator.createUrl({ - filters, - indexPatternId: indexPattern?.id, - }); - setDiscoverUrl(newUrl); - }; - getDiscoverUrl(); + const newUrl = await urlGenerator.createUrl({ + filters, + indexPatternId: indexPattern?.id, + }); + setDiscoverUrl(newUrl); + }; + getDiscoverUrl(); + } }, [ indexPatterns, series.dataType, + series.filters, series.reportDefinitions, series.selectedMetricField, seriesConfig?.baseFilters, diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx index f3e0eb767d336..2808dfae83527 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/report_definition_field.tsx @@ -66,7 +66,9 @@ export function ReportDefinitionField({ const values = selectedReportDefinitions?.[fieldT]; if (!values.includes(ALL_VALUES_SELECTED)) { const valueFilter = buildPhrasesFilter(fieldT, values, indexPattern)[0]; - filtersN.push(valueFilter.query); + if (valueFilter.query) { + filtersN.push(valueFilter.query); + } } } }); diff --git a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx index c1462ce74b426..640e928b8ab98 100644 --- a/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx +++ b/x-pack/plugins/observability/public/components/shared/exploratory_view/series_editor/columns/series_actions.tsx @@ -12,6 +12,7 @@ import { RemoveSeries } from './remove_series'; import { useSeriesStorage } from '../../hooks/use_series_storage'; import { SeriesConfig, SeriesUrl } from '../../types'; import { useDiscoverLink } from '../../hooks/use_discover_link'; +import { useAppIndexPatternContext } from '../../hooks/use_app_index_pattern'; interface Props { seriesId: number; @@ -25,6 +26,10 @@ export function SeriesActions({ seriesId, series, seriesConfig, onEditClick }: P const { href: discoverHref } = useDiscoverLink({ series, seriesConfig }); + const { indexPatterns } = useAppIndexPatternContext(); + + const indexPattern = indexPatterns?.[series.dataType]; + const copySeries = () => { let copySeriesId: string = `${series.name}-copy`; if (allSeries.find(({ name }) => name === copySeriesId)) { @@ -63,7 +68,7 @@ export function SeriesActions({ seriesId, series, seriesConfig, onEditClick }: P color="text" target="_blank" href={discoverHref} - isDisabled={!series.dataType || !series.selectedMetricField} + isDisabled={!series.dataType || !series.selectedMetricField || !indexPattern} /> </EuiToolTip> </EuiFlexItem> diff --git a/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.test.tsx b/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.test.tsx index c142e50400e5f..3b9f6264c773a 100644 --- a/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.test.tsx +++ b/x-pack/plugins/observability/public/components/shared/field_value_suggestions/field_value_selection.test.tsx @@ -9,6 +9,7 @@ import React from 'react'; import { mount, render } from 'enzyme'; import { FieldValueSelection } from './field_value_selection'; import { EuiButton, EuiSelectableList } from '@elastic/eui'; +import { EuiThemeProvider } from '../../../../../../../src/plugins/kibana_react/common'; const values = [ { label: 'elastic co frontend', count: 1 }, @@ -32,16 +33,19 @@ describe('FieldValueSelection', () => { expect(btn.text()).toBe('Service name'); }); + it('renders a list on click', async () => { const wrapper = mount( - <FieldValueSelection - label="Service name" - values={values} - onChange={() => {}} - selectedValue={[]} - loading={false} - setQuery={() => {}} - /> + <EuiThemeProvider> + <FieldValueSelection + label="Service name" + values={values} + onChange={() => {}} + selectedValue={[]} + loading={false} + setQuery={() => {}} + /> + </EuiThemeProvider> ); const btn = wrapper.find(EuiButton); diff --git a/x-pack/plugins/observability/public/pages/alerts/alerts_table_t_grid.tsx b/x-pack/plugins/observability/public/pages/alerts/alerts_table_t_grid.tsx index dac2b0951ae05..b862924fbcd25 100644 --- a/x-pack/plugins/observability/public/pages/alerts/alerts_table_t_grid.tsx +++ b/x-pack/plugins/observability/public/pages/alerts/alerts_table_t_grid.tsx @@ -51,7 +51,7 @@ import type { } from '../../../../timelines/common'; import { getRenderCellValue } from './render_cell_value'; -import { observabilityFeatureId } from '../../../common'; +import { observabilityAppId, observabilityFeatureId } from '../../../common'; import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; import { usePluginContext } from '../../hooks/use_plugin_context'; import { getDefaultCellActions } from './default_cell_actions'; @@ -313,6 +313,14 @@ function ObservabilityActions({ ); } +const FIELDS_WITHOUT_CELL_ACTIONS = [ + '@timestamp', + 'signal.rule.risk_score', + 'signal.reason', + 'kibana.alert.duration.us', + 'kibana.alert.reason', +]; + export function AlertsTableTGrid(props: AlertsTableTGridProps) { const { indexNames, rangeFrom, rangeTo, kuery, workflowStatus, setRefetch, addToQuery } = props; const prevWorkflowStatus = usePrevious(workflowStatus); @@ -375,13 +383,14 @@ export function AlertsTableTGrid(props: AlertsTableTGridProps) { const type: TGridType = 'standalone'; const sortDirection: SortDirection = 'desc'; return { - appId: observabilityFeatureId, + appId: observabilityAppId, casesOwner: observabilityFeatureId, casePermissions, type, columns, deletedEventIds, defaultCellActions: getDefaultCellActions({ addToQuery }), + disabledCellActions: FIELDS_WITHOUT_CELL_ACTIONS, end: rangeTo, filters: [], hasAlertsCrudPermissions, diff --git a/x-pack/plugins/observability/public/pages/cases/case_details.tsx b/x-pack/plugins/observability/public/pages/cases/case_details.tsx deleted file mode 100644 index 0591fb514013e..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/case_details.tsx +++ /dev/null @@ -1,48 +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, { useEffect } from 'react'; -import { useParams } from 'react-router-dom'; - -import { CaseView } from '../../components/app/cases/case_view'; -import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; -import { useKibana } from '../../utils/kibana_react'; -import { useReadonlyHeader } from '../../hooks/use_readonly_header'; -import { usePluginContext } from '../../hooks/use_plugin_context'; -import { observabilityAppId } from '../../../common'; - -export const CaseDetailsPage = React.memo(() => { - const { - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - const { ObservabilityPageTemplate } = usePluginContext(); - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - const userPermissions = useGetUserCasesPermissions(); - const { detailName: caseId, subCaseId } = useParams<{ - detailName?: string; - subCaseId?: string; - }>(); - useReadonlyHeader(); - - useEffect(() => { - if (userPermissions != null && !userPermissions.read) { - navigateToUrl(casesUrl); - } - }, [casesUrl, navigateToUrl, userPermissions]); - - return caseId != null ? ( - <ObservabilityPageTemplate> - <CaseView - caseId={caseId} - subCaseId={subCaseId} - userCanCrud={userPermissions?.crud ?? false} - /> - </ObservabilityPageTemplate> - ) : null; -}); - -CaseDetailsPage.displayName = 'CaseDetailsPage'; diff --git a/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx b/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx index 41fa2744397c7..243234066b7a1 100644 --- a/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx +++ b/x-pack/plugins/observability/public/pages/cases/cases.stories.tsx @@ -14,11 +14,11 @@ import { } from '../../../../../../src/plugins/kibana_react/public'; import { casesFeatureId } from '../../../common'; import { PluginContext, PluginContextValue } from '../../context/plugin_context'; -import { AllCasesPage } from './all_cases'; +import { CasesPage } from './'; export default { title: 'app/Cases', - component: AllCasesPage, + component: CasesPage, decorators: [ (Story: ComponentType) => { const KibanaReactContext = createKibanaReactContext({ @@ -53,5 +53,5 @@ export default { }; export function EmptyState() { - return <AllCasesPage />; + return <CasesPage />; } diff --git a/x-pack/plugins/observability/public/pages/cases/cases.tsx b/x-pack/plugins/observability/public/pages/cases/cases.tsx new file mode 100644 index 0000000000000..d947f9aa86489 --- /dev/null +++ b/x-pack/plugins/observability/public/pages/cases/cases.tsx @@ -0,0 +1,74 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { Suspense, useCallback, useState } from 'react'; + +import { useKibana } from '../../utils/kibana_react'; +import { useFetchAlertData, useFetchAlertDetail } from './helpers'; +import { CASES_OWNER, CASES_PATH } from './constants'; +import { usePluginContext } from '../../hooks/use_plugin_context'; +import { LazyAlertsFlyout } from '../..'; + +interface CasesProps { + userCanCrud: boolean; +} +export const Cases = React.memo<CasesProps>(({ userCanCrud }) => { + const { + cases: casesUi, + application: { getUrlForApp, navigateToApp }, + } = useKibana().services; + const { observabilityRuleTypeRegistry } = usePluginContext(); + const [selectedAlertId, setSelectedAlertId] = useState<string>(''); + + const handleFlyoutClose = useCallback(() => { + setSelectedAlertId(''); + }, []); + + const [alertLoading, alert] = useFetchAlertDetail(selectedAlertId); + + return ( + <> + {alertLoading === false && alert && selectedAlertId !== '' && ( + <Suspense fallback={null}> + <LazyAlertsFlyout + alert={alert} + observabilityRuleTypeRegistry={observabilityRuleTypeRegistry} + onClose={handleFlyoutClose} + /> + </Suspense> + )} + {casesUi.getCases({ + basePath: CASES_PATH, + disableAlerts: true, + userCanCrud, + owner: [CASES_OWNER], + useFetchAlertData, + showAlertDetails: (alertId: string) => { + setSelectedAlertId(alertId); + }, + ruleDetailsNavigation: { + href: (ruleId) => { + return getUrlForApp('management', { + path: `/insightsAndAlerting/triggersActions/rule/${ruleId}`, + }); + }, + onClick: async (ruleId, ev) => { + if (ev != null) { + ev.preventDefault(); + } + return navigateToApp('management', { + path: `/insightsAndAlerting/triggersActions/rule/${ruleId}`, + }); + }, + }, + hideSyncAlerts: true, + })} + </> + ); +}); + +Cases.displayName = 'Cases'; diff --git a/x-pack/plugins/observability/public/pages/cases/configure_cases.tsx b/x-pack/plugins/observability/public/pages/cases/configure_cases.tsx deleted file mode 100644 index 86b16d332bb46..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/configure_cases.tsx +++ /dev/null @@ -1,75 +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, { useCallback, useEffect } from 'react'; -import styled from 'styled-components'; - -import { EuiButtonEmpty } from '@elastic/eui'; -import * as i18n from '../../components/app/cases/translations'; -import { CASES_OWNER } from '../../components/app/cases/constants'; -import { useKibana } from '../../utils/kibana_react'; -import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; -import { usePluginContext } from '../../hooks/use_plugin_context'; -import { useBreadcrumbs } from '../../hooks/use_breadcrumbs'; -import { casesBreadcrumbs, getCaseUrl, useFormatUrl } from './links'; -import { observabilityAppId } from '../../../common'; - -const ButtonEmpty = styled(EuiButtonEmpty)` - display: block; -`; -function ConfigureCasesPageComponent() { - const { - cases, - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - const userPermissions = useGetUserCasesPermissions(); - const { ObservabilityPageTemplate } = usePluginContext(); - const onClickGoToCases = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToUrl(casesUrl); - }, - [casesUrl, navigateToUrl] - ); - const { formatUrl } = useFormatUrl(); - const href = formatUrl(getCaseUrl()); - useBreadcrumbs([{ ...casesBreadcrumbs.cases, href }, casesBreadcrumbs.configure]); - - useEffect(() => { - if (userPermissions != null && !userPermissions.read) { - navigateToUrl(casesUrl); - } - }, [casesUrl, userPermissions, navigateToUrl]); - - return ( - <ObservabilityPageTemplate - pageHeader={{ - pageTitle: ( - <> - <ButtonEmpty - onClick={onClickGoToCases} - iconType="arrowLeft" - iconSide="left" - flush="left" - > - {i18n.BACK_TO_ALL} - </ButtonEmpty> - {i18n.CONFIGURE_CASES_PAGE_TITLE} - </> - ), - }} - > - {cases.getConfigureCases({ - userCanCrud: userPermissions?.crud ?? false, - owner: [CASES_OWNER], - })} - </ObservabilityPageTemplate> - ); -} - -export const ConfigureCasesPage = React.memo(ConfigureCasesPageComponent); diff --git a/x-pack/plugins/observability/public/components/app/cases/constants.ts b/x-pack/plugins/observability/public/pages/cases/constants.ts similarity index 74% rename from x-pack/plugins/observability/public/components/app/cases/constants.ts rename to x-pack/plugins/observability/public/pages/cases/constants.ts index 7ad0d7ebe14dd..ce1e601690e62 100644 --- a/x-pack/plugins/observability/public/components/app/cases/constants.ts +++ b/x-pack/plugins/observability/public/pages/cases/constants.ts @@ -5,6 +5,7 @@ * 2.0. */ -import { observabilityFeatureId } from '../../../../common'; +import { observabilityFeatureId, casesPath } from '../../../common'; export const CASES_OWNER = observabilityFeatureId; +export const CASES_PATH = casesPath; diff --git a/x-pack/plugins/observability/public/pages/cases/create_case.tsx b/x-pack/plugins/observability/public/pages/cases/create_case.tsx deleted file mode 100644 index 2d69d74edb0e3..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/create_case.tsx +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback, useEffect } from 'react'; -import { EuiButtonEmpty } from '@elastic/eui'; -import styled from 'styled-components'; -import * as i18n from '../../components/app/cases/translations'; -import { Create } from '../../components/app/cases/create'; -import { useKibana } from '../../utils/kibana_react'; -import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; -import { usePluginContext } from '../../hooks/use_plugin_context'; -import { casesBreadcrumbs, getCaseUrl, useFormatUrl } from './links'; -import { useBreadcrumbs } from '../../hooks/use_breadcrumbs'; -import { observabilityAppId } from '../../../common'; - -const ButtonEmpty = styled(EuiButtonEmpty)` - display: block; -`; -ButtonEmpty.displayName = 'ButtonEmpty'; -export const CreateCasePage = React.memo(() => { - const userPermissions = useGetUserCasesPermissions(); - const { ObservabilityPageTemplate } = usePluginContext(); - const { - application: { getUrlForApp, navigateToUrl }, - } = useKibana().services; - - const casesUrl = `${getUrlForApp(observabilityAppId)}/cases`; - const goTo = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToUrl(casesUrl); - }, - [casesUrl, navigateToUrl] - ); - - const { formatUrl } = useFormatUrl(); - const href = formatUrl(getCaseUrl()); - useBreadcrumbs([{ ...casesBreadcrumbs.cases, href }, casesBreadcrumbs.create]); - - useEffect(() => { - if (userPermissions != null && !userPermissions.crud) { - navigateToUrl(casesUrl); - } - }, [casesUrl, navigateToUrl, userPermissions]); - - return ( - <ObservabilityPageTemplate - pageHeader={{ - pageTitle: ( - <> - <ButtonEmpty onClick={goTo} iconType="arrowLeft" iconSide="left" flush="left"> - {i18n.BACK_TO_ALL} - </ButtonEmpty> - {i18n.CREATE_TITLE} - </> - ), - }} - > - <Create /> - </ObservabilityPageTemplate> - ); -}); - -CreateCasePage.displayName = 'CreateCasePage'; diff --git a/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx b/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx index 2d8631a94e04c..1fb9403fb5ef3 100644 --- a/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx +++ b/x-pack/plugins/observability/public/pages/cases/feature_no_permissions.tsx @@ -8,7 +8,7 @@ import React, { useMemo } from 'react'; import { EmptyPage } from './empty_page'; -import * as i18n from '../../components/app/cases/translations'; +import * as i18n from './translations'; import { useKibana } from '../../utils/kibana_react'; export const CaseFeatureNoPermissions = React.memo(() => { diff --git a/x-pack/plugins/observability/public/components/app/cases/case_view/helpers.ts b/x-pack/plugins/observability/public/pages/cases/helpers.ts similarity index 84% rename from x-pack/plugins/observability/public/components/app/cases/case_view/helpers.ts rename to x-pack/plugins/observability/public/pages/cases/helpers.ts index 56e5610e1b117..91f45c711d6a6 100644 --- a/x-pack/plugins/observability/public/components/app/cases/case_view/helpers.ts +++ b/x-pack/plugins/observability/public/pages/cases/helpers.ts @@ -7,11 +7,11 @@ import { useEffect, useState } from 'react'; import { isEmpty } from 'lodash'; -import { usePluginContext } from '../../../../hooks/use_plugin_context'; -import { parseAlert } from '../../../../pages/alerts/parse_alert'; -import { TopAlert } from '../../../../pages/alerts/'; -import { useKibana } from '../../../../utils/kibana_react'; -import { Ecs } from '../../../../../../cases/common'; +import { usePluginContext } from '../../hooks/use_plugin_context'; +import { parseAlert } from '../../pages/alerts/parse_alert'; +import { TopAlert } from '../../pages/alerts/'; +import { useKibana } from '../../utils/kibana_react'; +import { Ecs } from '../../../../cases/common'; // no alerts in observability so far // dummy hook for now as hooks cannot be called conditionally diff --git a/x-pack/plugins/observability/public/pages/cases/all_cases.tsx b/x-pack/plugins/observability/public/pages/cases/index.tsx similarity index 78% rename from x-pack/plugins/observability/public/pages/cases/all_cases.tsx rename to x-pack/plugins/observability/public/pages/cases/index.tsx index 76c54a470ff83..c54f0f99d1d73 100644 --- a/x-pack/plugins/observability/public/pages/cases/all_cases.tsx +++ b/x-pack/plugins/observability/public/pages/cases/index.tsx @@ -7,23 +7,18 @@ import React from 'react'; -import { AllCases } from '../../components/app/cases/all_cases'; +import { Cases } from './cases'; import { CaseFeatureNoPermissions } from './feature_no_permissions'; import { useGetUserCasesPermissions } from '../../hooks/use_get_user_cases_permissions'; import { usePluginContext } from '../../hooks/use_plugin_context'; -import { useReadonlyHeader } from '../../hooks/use_readonly_header'; -import { casesBreadcrumbs } from './links'; -import { useBreadcrumbs } from '../../hooks/use_breadcrumbs'; import { useHasData } from '../../hooks/use_has_data'; import { LoadingObservability } from '../overview/loading_observability'; import { getNoDataConfig } from '../../utils/no_data_config'; -export const AllCasesPage = React.memo(() => { +export const CasesPage = React.memo(() => { const userPermissions = useGetUserCasesPermissions(); const { core, ObservabilityPageTemplate } = usePluginContext(); - useReadonlyHeader(); - useBreadcrumbs([casesBreadcrumbs.cases]); const { hasAnyData, isAllRequestsComplete } = useHasData(); @@ -45,11 +40,11 @@ export const AllCasesPage = React.memo(() => { data-test-subj={noDataConfig ? 'noDataPage' : undefined} noDataConfig={noDataConfig} > - <AllCases userCanCrud={userPermissions?.crud ?? false} /> + <Cases userCanCrud={userPermissions?.crud ?? false} /> </ObservabilityPageTemplate> ) : ( <CaseFeatureNoPermissions /> ); }); -AllCasesPage.displayName = 'AllCasesPage'; +CasesPage.displayName = 'CasesPage'; diff --git a/x-pack/plugins/observability/public/pages/cases/links.ts b/x-pack/plugins/observability/public/pages/cases/links.ts deleted file mode 100644 index 09e0a6835afae..0000000000000 --- a/x-pack/plugins/observability/public/pages/cases/links.ts +++ /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 { i18n } from '@kbn/i18n'; -import { isEmpty } from 'lodash/fp'; -import { useCallback } from 'react'; -import { observabilityAppId } from '../../../common'; -import { useKibana } from '../../utils/kibana_react'; - -export const casesBreadcrumbs = { - cases: { - text: i18n.translate('xpack.observability.breadcrumbs.casesLinkText', { - defaultMessage: 'Cases', - }), - }, - create: { - text: i18n.translate('xpack.observability.breadcrumbs.casesCreateLinkText', { - defaultMessage: 'Create', - }), - }, - configure: { - text: i18n.translate('xpack.observability.breadcrumbs.casesConfigureLinkText', { - defaultMessage: 'Configure', - }), - }, -}; - -export const getCaseDetailsUrl = ({ id, subCaseId }: { id: string; subCaseId?: string }) => { - if (subCaseId) { - return `/${encodeURIComponent(id)}/sub-cases/${encodeURIComponent(subCaseId)}`; - } - return `/${encodeURIComponent(id)}`; -}; -interface FormatUrlOptions { - absolute: boolean; -} - -export type FormatUrl = (path: string, options?: Partial<FormatUrlOptions>) => string; -export const useFormatUrl = () => { - const { getUrlForApp } = useKibana().services.application; - const formatUrl = useCallback<FormatUrl>( - (path: string, { absolute = false } = {}) => { - const pathArr = path.split('?'); - const formattedPath = `/cases/${pathArr[0]}${isEmpty(pathArr[1]) ? '' : `?${pathArr[1]}`}`; - return getUrlForApp(observabilityAppId, { - path: formattedPath, - absolute, - }); - }, - [getUrlForApp] - ); - return { formatUrl }; -}; - -export const getCaseDetailsUrlWithCommentId = ({ - id, - commentId, - subCaseId, -}: { - id: string; - commentId: string; - subCaseId?: string; -}) => { - if (subCaseId) { - return `/${encodeURIComponent(id)}/sub-cases/${encodeURIComponent( - subCaseId - )}/${encodeURIComponent(commentId)}`; - } - return `/${encodeURIComponent(id)}/${encodeURIComponent(commentId)}`; -}; - -export const getCreateCaseUrl = () => `/create`; - -export const getConfigureCasesUrl = () => `/configure`; -export const getCaseUrl = () => `/`; diff --git a/x-pack/plugins/observability/public/pages/cases/translations.ts b/x-pack/plugins/observability/public/pages/cases/translations.ts new file mode 100644 index 0000000000000..24c03f65f4521 --- /dev/null +++ b/x-pack/plugins/observability/public/pages/cases/translations.ts @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { i18n } from '@kbn/i18n'; + +export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( + 'xpack.observability.cases.caseFeatureNoPermissionsTitle', + { + defaultMessage: 'Kibana feature privileges required', + } +); + +export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( + 'xpack.observability.cases.caseFeatureNoPermissionsMessage', + { + defaultMessage: + 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', + } +); + +export const GO_TO_DOCUMENTATION = i18n.translate( + 'xpack.observability.cases.caseView.goToDocumentationButton', + { + defaultMessage: 'View documentation', + } +); diff --git a/x-pack/plugins/observability/public/pages/overview/empty_section.ts b/x-pack/plugins/observability/public/pages/overview/empty_section.ts index f249a820a60a4..2747b2ecdebc9 100644 --- a/x-pack/plugins/observability/public/pages/overview/empty_section.ts +++ b/x-pack/plugins/observability/public/pages/overview/empty_section.ts @@ -69,7 +69,7 @@ export const getEmptySections = ({ core }: { core: CoreStart }): ISection[] => { linkTitle: i18n.translate('xpack.observability.emptySection.apps.uptime.link', { defaultMessage: 'Install Heartbeat', }), - href: core.http.basePath.prepend('/app/integrations/detail/synthetics/overview'), + href: core.http.basePath.prepend('/app/home#/tutorial/uptimeMonitors'), }, { id: 'ux', diff --git a/x-pack/plugins/observability/public/plugin.ts b/x-pack/plugins/observability/public/plugin.ts index e4caa8ca91944..36a7600a58f25 100644 --- a/x-pack/plugins/observability/public/plugin.ts +++ b/x-pack/plugins/observability/public/plugin.ts @@ -30,13 +30,13 @@ import type { HomePublicPluginSetup, HomePublicPluginStart, } from '../../../../src/plugins/home/public'; -import { CasesUiStart } from '../../cases/public'; +import { CasesDeepLinkId, CasesUiStart, getCasesDeepLinks } from '../../cases/public'; import type { LensPublicStart } from '../../lens/public'; import { TriggersAndActionsUIPublicPluginSetup, TriggersAndActionsUIPublicPluginStart, } from '../../triggers_actions_ui/public'; -import { observabilityAppId, observabilityFeatureId } from '../common'; +import { observabilityAppId, observabilityFeatureId, casesPath } from '../common'; import { createLazyObservabilityPageTemplate } from './components/shared'; import { registerDataHandler } from './data_handler'; import { createObservabilityRuleTypeRegistry } from './rules/create_observability_rule_type_registry'; @@ -90,15 +90,23 @@ export class Plugin path: '/alerts', navLinkStatus: AppNavLinkStatus.hidden, }, - { - id: 'cases', - title: i18n.translate('xpack.observability.casesLinkTitle', { - defaultMessage: 'Cases', - }), - order: 8002, - path: '/cases', - navLinkStatus: AppNavLinkStatus.hidden, - }, + getCasesDeepLinks({ + basePath: casesPath, + extend: { + [CasesDeepLinkId.cases]: { + order: 8002, + navLinkStatus: AppNavLinkStatus.hidden, + }, + [CasesDeepLinkId.casesCreate]: { + navLinkStatus: AppNavLinkStatus.hidden, + searchable: false, + }, + [CasesDeepLinkId.casesConfigure]: { + navLinkStatus: AppNavLinkStatus.hidden, + searchable: false, + }, + }, + }), ]; constructor(private readonly initializerContext: PluginInitializerContext<ConfigSchema>) { diff --git a/x-pack/plugins/observability/public/routes/index.tsx b/x-pack/plugins/observability/public/routes/index.tsx index 1c2513cee9fce..a684feec535fc 100644 --- a/x-pack/plugins/observability/public/routes/index.tsx +++ b/x-pack/plugins/observability/public/routes/index.tsx @@ -7,12 +7,10 @@ import * as t from 'io-ts'; import React from 'react'; +import { casesPath } from '../../common'; import { ExploratoryViewPage } from '../components/shared/exploratory_view'; import { AlertsPage } from '../pages/alerts'; -import { AllCasesPage } from '../pages/cases/all_cases'; -import { CaseDetailsPage } from '../pages/cases/case_details'; -import { ConfigureCasesPage } from '../pages/cases/configure_cases'; -import { CreateCasePage } from '../pages/cases/create_case'; +import { CasesPage } from '../pages/cases'; import { HomePage } from '../pages/home'; import { LandingPage } from '../pages/landing'; import { OverviewPage } from '../pages/overview'; @@ -35,12 +33,14 @@ export const routes = { return <HomePage />; }, params: {}, + exact: true, }, '/landing': { handler: () => { return <LandingPage />; }, params: {}, + exact: true, }, '/overview': { handler: ({ query }: any) => { @@ -54,34 +54,14 @@ export const routes = { refreshInterval: jsonRt.pipe(t.number), }), }, + exact: true, }, - '/cases': { + [casesPath]: { handler: () => { - return <AllCasesPage />; + return <CasesPage />; }, params: {}, - }, - '/cases/create': { - handler: () => { - return <CreateCasePage />; - }, - params: {}, - }, - '/cases/configure': { - handler: () => { - return <ConfigureCasesPage />; - }, - params: {}, - }, - '/cases/:detailName': { - handler: () => { - return <CaseDetailsPage />; - }, - params: { - path: t.partial({ - detailName: t.string, - }), - }, + exact: false, }, '/alerts': { handler: () => { @@ -90,6 +70,7 @@ export const routes = { params: { // Technically gets a '_a' param by using Kibana URL state sync helpers }, + exact: true, }, '/exploratory-view/': { handler: () => { @@ -103,5 +84,6 @@ export const routes = { refreshInterval: jsonRt.pipe(t.number), }), }, + exact: true, }, }; diff --git a/x-pack/plugins/observability/public/update_global_navigation.tsx b/x-pack/plugins/observability/public/update_global_navigation.tsx index 813dee1ea706b..2de282432c158 100644 --- a/x-pack/plugins/observability/public/update_global_navigation.tsx +++ b/x-pack/plugins/observability/public/update_global_navigation.tsx @@ -13,6 +13,7 @@ import { ApplicationStart, AppDeepLink, } from '../../../../src/core/public'; +import { CasesDeepLinkId } from '../../cases/public'; import { casesFeatureId } from '../common'; export function updateGlobalNavigation({ @@ -31,7 +32,7 @@ export function updateGlobalNavigation({ const updatedDeepLinks = deepLinks.map((link) => { switch (link.id) { - case 'cases': + case CasesDeepLinkId.cases: return { ...link, navLinkStatus: diff --git a/x-pack/plugins/osquery/public/action_results/services/agent_status.tsx b/x-pack/plugins/osquery/public/action_results/services/agent_status.tsx index 39a033f49ec90..1a2c9f370bc31 100644 --- a/x-pack/plugins/osquery/public/action_results/services/agent_status.tsx +++ b/x-pack/plugins/osquery/public/action_results/services/agent_status.tsx @@ -14,7 +14,7 @@ const visColors = euiPaletteColorBlindBehindText(); const colorToHexMap = { default: '#d3dae6', primary: visColors[1], - secondary: visColors[0], + success: visColors[0], accent: visColors[2], warning: visColors[5], danger: visColors[9], @@ -25,7 +25,7 @@ export const AGENT_STATUSES: ActionAgentStatus[] = ['success', 'pending', 'faile export function getColorForAgentStatus(agentStatus: ActionAgentStatus): string { switch (agentStatus) { case 'success': - return colorToHexMap.secondary; + return colorToHexMap.success; case 'pending': return colorToHexMap.default; case 'failed': diff --git a/x-pack/plugins/osquery/public/editor/index.tsx b/x-pack/plugins/osquery/public/editor/index.tsx index 7d6823acec2cd..df78d45d0cc93 100644 --- a/x-pack/plugins/osquery/public/editor/index.tsx +++ b/x-pack/plugins/osquery/public/editor/index.tsx @@ -6,10 +6,11 @@ */ import React, { useEffect, useState } from 'react'; -import { EuiCodeEditor } from '@elastic/eui'; import useDebounce from 'react-use/lib/useDebounce'; import 'brace/theme/tomorrow'; +import { EuiCodeEditor } from '../shared_imports'; + import './osquery_mode.ts'; const EDITOR_SET_OPTIONS = { diff --git a/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx b/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx index 5aacffb52cb49..5567d4562b1d8 100644 --- a/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx +++ b/x-pack/plugins/osquery/public/packs/pack_queries_status_table.tsx @@ -28,6 +28,7 @@ import { TypedLensByValueInput, PersistedIndexPatternLayer, PieVisualizationState, + TermsIndexPatternColumn, } from '../../../lens/public'; import { FilterStateStore, DataView } from '../../../../../src/plugins/data/common'; import { useKibana } from '../common/lib/kibana'; @@ -88,7 +89,7 @@ function getLensAttributes( }, orderDirection: 'desc', }, - }, + } as TermsIndexPatternColumn, 'ed999e9d-204c-465b-897f-fe1a125b39ed': { sourceField: 'Records', isBucketed: false, diff --git a/x-pack/plugins/osquery/public/shared_imports.ts b/x-pack/plugins/osquery/public/shared_imports.ts index 227a276c41f18..c0f9d35ba51a8 100644 --- a/x-pack/plugins/osquery/public/shared_imports.ts +++ b/x-pack/plugins/osquery/public/shared_imports.ts @@ -40,3 +40,6 @@ export { } from '../../../../src/plugins/es_ui_shared/static/forms/components'; export { fieldValidators } from '../../../../src/plugins/es_ui_shared/static/forms/helpers'; export type { ERROR_CODE } from '../../../../src/plugins/es_ui_shared/static/forms/helpers/field_validators/types'; + +export { EuiCodeEditor } from '../../../../src/plugins/es_ui_shared/public'; +export type { EuiCodeEditorProps } from '../../../../src/plugins/es_ui_shared/public'; diff --git a/x-pack/plugins/painless_lab/public/application/components/output_pane/output_pane.tsx b/x-pack/plugins/painless_lab/public/application/components/output_pane/output_pane.tsx index 258c6bcdb1beb..8391ccbbe7ef4 100644 --- a/x-pack/plugins/painless_lab/public/application/components/output_pane/output_pane.tsx +++ b/x-pack/plugins/painless_lab/public/application/components/output_pane/output_pane.tsx @@ -34,7 +34,7 @@ export const OutputPane: FunctionComponent<Props> = ({ isLoading, response }) => ) : response && response.error ? ( <EuiIcon type="alert" color="danger" /> ) : ( - <EuiIcon type="check" color="secondary" /> + <EuiIcon type="check" color="success" /> )} </EuiFlexItem> diff --git a/x-pack/plugins/painless_lab/public/plugin.tsx b/x-pack/plugins/painless_lab/public/plugin.tsx index 118adae22dc50..793947b9803c9 100644 --- a/x-pack/plugins/painless_lab/public/plugin.tsx +++ b/x-pack/plugins/painless_lab/public/plugin.tsx @@ -5,9 +5,7 @@ * 2.0. */ -import React from 'react'; import { first } from 'rxjs/operators'; -import { EuiBetaBadge, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { Plugin, CoreSetup } from 'src/core/public'; @@ -46,26 +44,10 @@ export class PainlessLabUIPlugin implements Plugin<void, void, PluginDependencie const devTool = devTools.register({ id: 'painless_lab', order: 7, - title: ( - <EuiFlexGroup gutterSize="s" alignItems="center" responsive={false}> - <EuiFlexItem grow={false}> - {i18n.translate('xpack.painlessLab.displayName', { - defaultMessage: 'Painless Lab', - })} - </EuiFlexItem> - - <EuiFlexItem grow={false} className="painlessLab__betaLabelContainer"> - <EuiBetaBadge - label={i18n.translate('xpack.painlessLab.displayNameBetaLabel', { - defaultMessage: 'Beta', - })} - tooltipContent={i18n.translate('xpack.painlessLab.displayNameBetaTooltipText', { - defaultMessage: 'This feature might change drastically in future releases', - })} - /> - </EuiFlexItem> - </EuiFlexGroup> - ) as any, + isBeta: true, + title: i18n.translate('xpack.painlessLab.displayName', { + defaultMessage: 'Painless Lab', + }), enableRouting: false, disabled: false, mount: async ({ element }) => { diff --git a/x-pack/plugins/painless_lab/public/styles/_index.scss b/x-pack/plugins/painless_lab/public/styles/_index.scss index 78182787a63b6..4844fe443e56f 100644 --- a/x-pack/plugins/painless_lab/public/styles/_index.scss +++ b/x-pack/plugins/painless_lab/public/styles/_index.scss @@ -34,10 +34,6 @@ $bottomBarHeight: $euiSize * 3; } } -.painlessLab__betaLabelContainer { - line-height: 0; -} - // adding dev tool top bar + bottom bar height to the body offset $bodyOffset: $euiHeaderHeightCompensation + $bottomBarHeight; diff --git a/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_form/remote_cluster_form.tsx b/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_form/remote_cluster_form.tsx index 766f12fedc81c..fdcbf220331d7 100644 --- a/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_form/remote_cluster_form.tsx +++ b/x-pack/plugins/remote_clusters/public/application/sections/components/remote_cluster_form/remote_cluster_form.tsx @@ -20,7 +20,7 @@ import { EuiForm, EuiFormRow, EuiLink, - EuiLoadingKibana, + EuiLoadingLogo, EuiLoadingSpinner, EuiOverlayMask, EuiSpacer, @@ -348,7 +348,7 @@ export class RemoteClusterForm extends Component<Props, State> { <EuiFlexItem grow={false}> <EuiButton data-test-subj="remoteClusterFormSaveButton" - color="secondary" + color="success" iconType="check" onClick={this.save} fill @@ -391,7 +391,7 @@ export class RemoteClusterForm extends Component<Props, State> { if (this.props.isSaving) { return ( <EuiOverlayMask> - <EuiLoadingKibana size="xl" /> + <EuiLoadingLogo logo="logoKibana" size="xl" /> </EuiOverlayMask> ); } diff --git a/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/remote_cluster_list.js b/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/remote_cluster_list.js index b94ae8f7edbc0..b6881aa02e0b9 100644 --- a/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/remote_cluster_list.js +++ b/x-pack/plugins/remote_clusters/public/application/sections/remote_cluster_list/remote_cluster_list.js @@ -13,7 +13,7 @@ import { EuiButton, EuiButtonEmpty, EuiEmptyPrompt, - EuiLoadingKibana, + EuiLoadingLogo, EuiOverlayMask, EuiPageContent, EuiSpacer, @@ -80,7 +80,7 @@ export class RemoteClusterList extends Component { if (isCopyingCluster || isRemovingCluster) { return ( <EuiOverlayMask> - <EuiLoadingKibana size="xl" /> + <EuiLoadingLogo logo="logoKibana" size="xl" /> </EuiOverlayMask> ); } diff --git a/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js index 6f22345dc1cec..22d6f74c0aee5 100644 --- a/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/job_create.js @@ -16,7 +16,7 @@ import { withKibana } from '../../../../../../../src/plugins/kibana_react/public import { EuiCallOut, - EuiLoadingKibana, + EuiLoadingLogo, EuiOverlayMask, EuiPageContentBody, EuiPageHeader, @@ -494,7 +494,7 @@ export class JobCreateUi extends Component { if (isSaving) { savingFeedback = ( <EuiOverlayMask> - <EuiLoadingKibana size="xl" /> + <EuiLoadingLogo logo="logoKibana" size="xl" /> </EuiOverlayMask> ); } diff --git a/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js index 6afb864fedbe4..e9c324cd5f87e 100644 --- a/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/navigation/navigation.js @@ -79,7 +79,7 @@ export const Navigation = ({ const saveButton = ( <EuiFlexItem grow={false}> <EuiButton - color="secondary" + color="success" iconType="check" onClick={save} fill diff --git a/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js index 3c406304f3afa..624412756cdf0 100644 --- a/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js +++ b/x-pack/plugins/rollup/public/crud_app/sections/job_create/steps/step_logistics.js @@ -74,7 +74,7 @@ export class StepLogistics extends Component { if (!isValidatingIndexPattern && hasMatchingIndices) { return ( - <EuiTextColor color="secondary" data-test-subj="fieldIndexPatternSuccessMessage"> + <EuiTextColor color="success" data-test-subj="fieldIndexPatternSuccessMessage"> <p> <FormattedMessage id="xpack.rollupJobs.create.stepLogistics.fieldIndexPattern.helpHasMatchesLabel" diff --git a/x-pack/plugins/rollup/public/extend_index_management/index.ts b/x-pack/plugins/rollup/public/extend_index_management/index.ts index 5f7673e2cc0a8..2b9bc623b4679 100644 --- a/x-pack/plugins/rollup/public/extend_index_management/index.ts +++ b/x-pack/plugins/rollup/public/extend_index_management/index.ts @@ -26,6 +26,6 @@ export const rollupBadgeExtension = { label: i18n.translate('xpack.rollupJobs.indexMgmtBadge.rollupLabel', { defaultMessage: 'Rollup', }), - color: 'secondary', + color: 'success', filterExpression: 'isRollupIndex:true', }; diff --git a/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts b/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts index e575b49d17766..afdcf856a872f 100644 --- a/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts +++ b/x-pack/plugins/rule_registry/server/utils/create_persistence_rule_type_wrapper.ts @@ -5,7 +5,9 @@ * 2.0. */ -import { VERSION } from '@kbn/rule-data-utils'; +import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { chunk } from 'lodash'; +import { ALERT_UUID, VERSION } from '@kbn/rule-data-utils'; import { getCommonAlertFields } from './get_common_alert_fields'; import { CreatePersistenceRuleTypeWrapper } from './persistence_types'; @@ -26,22 +28,87 @@ export const createPersistenceRuleTypeWrapper: CreatePersistenceRuleTypeWrapper if (ruleDataClient.isWriteEnabled() && numAlerts) { const commonRuleFields = getCommonAlertFields(options); + const CHUNK_SIZE = 10000; + const alertChunks = chunk(alerts, CHUNK_SIZE); + const filteredAlerts: typeof alerts = []; + + for (const alertChunk of alertChunks) { + const request: estypes.SearchRequest = { + body: { + query: { + ids: { + values: alertChunk.map((alert) => alert._id), + }, + }, + aggs: { + uuids: { + terms: { + field: ALERT_UUID, + size: CHUNK_SIZE, + }, + }, + }, + size: 0, + }, + }; + const response = await ruleDataClient + .getReader({ namespace: options.spaceId }) + .search(request); + const uuidsMap: Record<string, boolean> = {}; + const aggs = response.aggregations as + | Record<estypes.AggregateName, { buckets: Array<{ key: string }> }> + | undefined; + if (aggs != null) { + aggs.uuids.buckets.forEach((bucket) => (uuidsMap[bucket.key] = true)); + const newAlerts = alertChunk.filter((alert) => !uuidsMap[alert._id]); + filteredAlerts.push(...newAlerts); + } else { + filteredAlerts.push(...alertChunk); + } + } + + if (filteredAlerts.length === 0) { + return { createdAlerts: [] }; + } + + const augmentedAlerts = filteredAlerts.map((alert) => { + return { + ...alert, + _source: { + [VERSION]: ruleDataClient.kibanaVersion, + ...commonRuleFields, + ...alert._source, + }, + }; + }); + const response = await ruleDataClient .getWriter({ namespace: options.spaceId }) .bulk({ - body: alerts.flatMap((alert) => [ - { index: { _id: alert.id } }, - { - [VERSION]: ruleDataClient.kibanaVersion, - ...commonRuleFields, - ...alert.fields, - }, + body: augmentedAlerts.flatMap((alert) => [ + { create: { _id: alert._id } }, + alert._source, ]), refresh, }); - return response; + + if (response == null) { + return { createdAlerts: [] }; + } + + return { + createdAlerts: augmentedAlerts.map((alert, idx) => { + const responseItem = response.body.items[idx].create; + return { + _id: responseItem?._id ?? '', + _index: responseItem?._index ?? '', + ...alert._source, + }; + }), + }; } else { logger.debug('Writing is disabled.'); + return { createdAlerts: [] }; } }, }, diff --git a/x-pack/plugins/rule_registry/server/utils/persistence_types.ts b/x-pack/plugins/rule_registry/server/utils/persistence_types.ts index 326a8bef49abd..5541bc6a6d00e 100644 --- a/x-pack/plugins/rule_registry/server/utils/persistence_types.ts +++ b/x-pack/plugins/rule_registry/server/utils/persistence_types.ts @@ -5,8 +5,6 @@ * 2.0. */ -import type { TransportResult } from '@elastic/elasticsearch'; -import { BulkResponse } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { Logger } from '@kbn/logging'; import { AlertExecutorOptions, @@ -19,13 +17,17 @@ import { import { WithoutReservedActionGroups } from '../../../alerting/common'; import { IRuleDataClient } from '../rule_data_client'; -export type PersistenceAlertService = ( +export type PersistenceAlertService = <T>( alerts: Array<{ - id: string; - fields: Record<string, unknown>; + _id: string; + _source: T; }>, refresh: boolean | 'wait_for' -) => Promise<TransportResult<BulkResponse, unknown> | undefined>; +) => Promise<PersistenceAlertServiceResult<T>>; + +export interface PersistenceAlertServiceResult<T> { + createdAlerts: Array<T & { _id: string; _index: string }>; +} export interface PersistenceServices { alertWithPersistence: PersistenceAlertService; diff --git a/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_grid_page.tsx b/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_grid_page.tsx index a4843e4637d8b..f950167d4b82e 100644 --- a/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_grid_page.tsx +++ b/x-pack/plugins/security/public/management/api_keys/api_keys_grid/api_keys_grid_page.tsx @@ -528,7 +528,7 @@ export class APIKeysGridPage extends Component<Props, State> { render: (creation: string, item: ApiKey) => ( <EuiToolTip content={moment(creation).format(DATE_FORMAT)}> {item.id === createdApiKey?.id ? ( - <EuiBadge color="secondary"> + <EuiBadge color="success"> <FormattedMessage id="xpack.security.management.apiKeys.table.createdBadge" defaultMessage="Just now" diff --git a/x-pack/plugins/security/public/management/api_keys/api_keys_management_app.test.tsx b/x-pack/plugins/security/public/management/api_keys/api_keys_management_app.test.tsx index 922fd59c56d1b..83fe807f9a3c6 100644 --- a/x-pack/plugins/security/public/management/api_keys/api_keys_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/api_keys/api_keys_management_app.test.tsx @@ -11,7 +11,7 @@ jest.mock('./api_keys_grid', () => ({ import { act } from '@testing-library/react'; -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import type { Unmount } from 'src/plugins/management/public/types'; import { securityMock } from '../../mocks'; @@ -52,6 +52,7 @@ describe('apiKeysManagementApp', () => { element: container, setBreadcrumbs, history: scopedHistoryMock.create(), + theme$: themeServiceMock.createTheme$(), }); }); diff --git a/x-pack/plugins/security/public/management/badges/enabled_badge.tsx b/x-pack/plugins/security/public/management/badges/enabled_badge.tsx index f55914997c72e..a03a5ab3060e3 100644 --- a/x-pack/plugins/security/public/management/badges/enabled_badge.tsx +++ b/x-pack/plugins/security/public/management/badges/enabled_badge.tsx @@ -21,7 +21,7 @@ interface Props { export const EnabledBadge = (props: Props) => { return ( <OptionalToolTip tooltipContent={props.tooltipContent}> - <EuiBadge data-test-subj={props['data-test-subj']} color="secondary"> + <EuiBadge data-test-subj={props['data-test-subj']} color="success"> <FormattedMessage id="xpack.security.management.enabledBadge" defaultMessage="Enabled" /> </EuiBadge> </OptionalToolTip> diff --git a/x-pack/plugins/security/public/management/management_urls.ts b/x-pack/plugins/security/public/management/management_urls.ts index 4a950b2ba1a16..371de4fb7f481 100644 --- a/x-pack/plugins/security/public/management/management_urls.ts +++ b/x-pack/plugins/security/public/management/management_urls.ts @@ -9,3 +9,8 @@ export const EDIT_ROLE_MAPPING_PATH = `/edit`; export const getEditRoleMappingHref = (roleMappingName: string) => `${EDIT_ROLE_MAPPING_PATH}/${encodeURIComponent(roleMappingName)}`; + +export const CLONE_ROLE_MAPPING_PATH = `/clone`; + +export const getCloneRoleMappingHref = (roleMappingName: string) => + `${CLONE_ROLE_MAPPING_PATH}/${encodeURIComponent(roleMappingName)}`; diff --git a/x-pack/plugins/security/public/management/role_mappings/components/delete_provider/delete_provider.tsx b/x-pack/plugins/security/public/management/role_mappings/components/delete_provider/delete_provider.tsx index f9194860ddded..9130a6ba1830c 100644 --- a/x-pack/plugins/security/public/management/role_mappings/components/delete_provider/delete_provider.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/components/delete_provider/delete_provider.tsx @@ -24,10 +24,12 @@ interface Props { export type DeleteRoleMappings = ( roleMappings: RoleMapping[], - onSuccess?: OnSuccessCallback + onSuccess?: OnSuccessCallback, + onCancel?: OnCancelCallback ) => void; type OnSuccessCallback = (deletedRoleMappings: string[]) => void; +type OnCancelCallback = () => void; export const DeleteProvider: React.FunctionComponent<Props> = ({ roleMappingsAPI, @@ -39,10 +41,12 @@ export const DeleteProvider: React.FunctionComponent<Props> = ({ const [isDeleteInProgress, setIsDeleteInProgress] = useState(false); const onSuccessCallback = useRef<OnSuccessCallback | null>(null); + const onCancelCallback = useRef<OnCancelCallback | null>(null); const deleteRoleMappingsPrompt: DeleteRoleMappings = ( roleMappingsToDelete, - onSuccess = () => undefined + onSuccess = () => undefined, + onCancel = () => undefined ) => { if (!roleMappingsToDelete || !roleMappingsToDelete.length) { throw new Error('No Role Mappings specified for delete'); @@ -50,6 +54,7 @@ export const DeleteProvider: React.FunctionComponent<Props> = ({ setIsModalOpen(true); setRoleMappings(roleMappingsToDelete); onSuccessCallback.current = onSuccess; + onCancelCallback.current = onCancel; }; const closeModal = () => { @@ -57,6 +62,13 @@ export const DeleteProvider: React.FunctionComponent<Props> = ({ setRoleMappings([]); }; + const handleCancelModel = () => { + closeModal(); + if (onCancelCallback.current) { + onCancelCallback.current(); + } + }; + const deleteRoleMappings = async () => { let result; @@ -161,7 +173,7 @@ export const DeleteProvider: React.FunctionComponent<Props> = ({ } ) } - onCancel={closeModal} + onCancel={handleCancelModel} onConfirm={deleteRoleMappings} cancelButtonText={i18n.translate( 'xpack.security.management.roleMappings.deleteRoleMapping.confirmModal.cancelButtonLabel', diff --git a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.test.tsx b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.test.tsx index b624da2cd88b4..af7a2fb8d5240 100644 --- a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.test.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.test.tsx @@ -39,6 +39,7 @@ describe('EditRoleMappingPage', () => { return mountWithIntl( <KibanaContextProvider services={coreStart}> <EditRoleMappingPage + action="edit" name={name} roleMappingsAPI={roleMappingsAPI} rolesAPIClient={rolesAPI} diff --git a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.tsx b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.tsx index 00f03b94436ea..123b0de6007f7 100644 --- a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/edit_role_mapping_page.tsx @@ -51,6 +51,7 @@ interface State { } interface Props { + action: 'edit' | 'clone'; name?: string; roleMappingsAPI: PublicMethodsOf<RoleMappingsAPIClient>; rolesAPIClient: PublicMethodsOf<RolesAPIClient>; @@ -295,13 +296,17 @@ export class EditRoleMappingPage extends Component<Props, State> { }); }; - private editingExistingRoleMapping = () => typeof this.props.name === 'string'; + private editingExistingRoleMapping = () => + typeof this.props.name === 'string' && this.props.action === 'edit'; + + private cloningExistingRoleMapping = () => + typeof this.props.name === 'string' && this.props.action === 'clone'; private async loadAppData() { try { const [features, roleMapping] = await Promise.all([ this.props.roleMappingsAPI.checkRoleMappingFeatures(), - this.editingExistingRoleMapping() + this.editingExistingRoleMapping() || this.cloningExistingRoleMapping() ? this.props.roleMappingsAPI.getRoleMapping(this.props.name!) : Promise.resolve({ name: '', @@ -327,7 +332,10 @@ export class EditRoleMappingPage extends Component<Props, State> { hasCompatibleRealms, canUseStoredScripts, canUseInlineScripts, - roleMapping, + roleMapping: { + ...roleMapping, + name: this.cloningExistingRoleMapping() ? '' : roleMapping.name, + }, }); } catch (e) { this.props.notifications.toasts.addDanger({ diff --git a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/rule_editor_panel/json_rule_editor.tsx b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/rule_editor_panel/json_rule_editor.tsx index 86f7892e49d24..176d66049eade 100644 --- a/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/rule_editor_panel/json_rule_editor.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/edit_role_mapping/rule_editor_panel/json_rule_editor.tsx @@ -5,6 +5,7 @@ * 2.0. */ +import 'react-ace'; import 'brace/mode/json'; import 'brace/theme/github'; diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.test.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.test.tsx index 5f237e6504d32..d9009d49b592b 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.test.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.test.tsx @@ -10,7 +10,7 @@ import { act } from '@testing-library/react'; import React from 'react'; import { findTestSubject, mountWithIntl, nextTick } from '@kbn/test/jest'; -import type { CoreStart, ScopedHistory } from 'src/core/public'; +import type { CoreStart } from 'src/core/public'; import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; import { KibanaContextProvider } from 'src/plugins/kibana_react/public'; @@ -21,7 +21,7 @@ import { EmptyPrompt } from './empty_prompt'; import { RoleMappingsGridPage } from './role_mappings_grid_page'; describe('RoleMappingsGridPage', () => { - let history: ScopedHistory; + let history: ReturnType<typeof scopedHistoryMock.create>; let coreStart: CoreStart; const renderView = ( @@ -44,6 +44,7 @@ describe('RoleMappingsGridPage', () => { beforeEach(() => { history = scopedHistoryMock.create(); + history.createHref.mockImplementation((location) => location.pathname!); coreStart = coreMock.createStart(); }); @@ -188,6 +189,7 @@ describe('RoleMappingsGridPage', () => { expect(roleMappingsAPI.getRoleMappings).toHaveBeenCalledTimes(1); expect(roleMappingsAPI.deleteRoleMappings).not.toHaveBeenCalled(); + findTestSubject(wrapper, `euiCollapsedItemActionsButton`).simulate('click'); findTestSubject(wrapper, `deleteRoleMappingButton-some-realm`).simulate('click'); expect(findTestSubject(wrapper, 'deleteRoleMappingConfirmationModal')).toHaveLength(1); @@ -246,4 +248,55 @@ describe('RoleMappingsGridPage', () => { `"The kibana_user role is deprecated. I don't like you."` ); }); + + it('renders role mapping actions as appropriate', async () => { + const roleMappingsAPI = roleMappingsAPIClientMock.create(); + roleMappingsAPI.getRoleMappings.mockResolvedValue([ + { + name: 'some-realm', + enabled: true, + roles: ['superuser'], + rules: { field: { username: '*' } }, + }, + ]); + roleMappingsAPI.checkRoleMappingFeatures.mockResolvedValue({ + canManageRoleMappings: true, + hasCompatibleRealms: true, + }); + roleMappingsAPI.deleteRoleMappings.mockResolvedValue([ + { + name: 'some-realm', + success: true, + }, + ]); + + const wrapper = renderView(roleMappingsAPI); + await nextTick(); + wrapper.update(); + + const editButton = wrapper.find( + 'EuiButtonEmpty[data-test-subj="editRoleMappingButton-some-realm"]' + ); + expect(editButton).toHaveLength(1); + expect(editButton.prop('href')).toBe('/edit/some-realm'); + + const cloneButton = wrapper.find( + 'EuiButtonEmpty[data-test-subj="cloneRoleMappingButton-some-realm"]' + ); + expect(cloneButton).toHaveLength(1); + expect(cloneButton.prop('href')).toBe('/clone/some-realm'); + + const actionMenuButton = wrapper.find( + 'EuiButtonIcon[data-test-subj="euiCollapsedItemActionsButton"]' + ); + expect(actionMenuButton).toHaveLength(1); + + actionMenuButton.simulate('click'); + wrapper.update(); + + const deleteButton = wrapper.find( + 'EuiButtonEmpty[data-test-subj="deleteRoleMappingButton-some-realm"]' + ); + expect(deleteButton).toHaveLength(1); + }); }); diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx index ec386d75228e8..c983f2c704f4a 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_grid/role_mappings_grid_page.tsx @@ -6,7 +6,7 @@ */ import { EuiButton, - EuiButtonIcon, + EuiButtonEmpty, EuiCallOut, EuiFlexGroup, EuiFlexItem, @@ -32,18 +32,23 @@ import type { import { reactRouterNavigate } from '../../../../../../../src/plugins/kibana_react/public'; import type { Role, RoleMapping } from '../../../../common/model'; import { DisabledBadge, EnabledBadge } from '../../badges'; -import { EDIT_ROLE_MAPPING_PATH, getEditRoleMappingHref } from '../../management_urls'; +import { + EDIT_ROLE_MAPPING_PATH, + getCloneRoleMappingHref, + getEditRoleMappingHref, +} from '../../management_urls'; import { RoleTableDisplay } from '../../role_table_display'; import type { RolesAPIClient } from '../../roles'; +import { ActionsEuiTableFormatting } from '../../table_utils'; import { DeleteProvider, NoCompatibleRealms, PermissionDenied, SectionLoading, } from '../components'; +import type { DeleteRoleMappings } from '../components/delete_provider/delete_provider'; import type { RoleMappingsAPIClient } from '../role_mappings_api_client'; import { EmptyPrompt } from './empty_prompt'; - interface Props { rolesAPIClient: PublicMethodsOf<RolesAPIClient>; roleMappingsAPI: PublicMethodsOf<RoleMappingsAPIClient>; @@ -63,6 +68,7 @@ interface State { } export class RoleMappingsGridPage extends Component<Props, State> { + private tableRef: React.RefObject<EuiInMemoryTable<RoleMapping>>; constructor(props: any) { super(props); this.state = { @@ -73,6 +79,7 @@ export class RoleMappingsGridPage extends Component<Props, State> { selectedItems: [], error: undefined, }; + this.tableRef = React.createRef(); } public componentDidMount() { @@ -224,7 +231,13 @@ export class RoleMappingsGridPage extends Component<Props, State> { {(deleteRoleMappingsPrompt) => { return ( <EuiButton - onClick={() => deleteRoleMappingsPrompt(selectedItems, this.onRoleMappingsDeleted)} + onClick={() => + deleteRoleMappingsPrompt( + selectedItems, + this.onRoleMappingsDeleted, + this.onRoleMappingsDeleteCancel + ) + } color="danger" data-test-subj="bulkDeleteActionButton" > @@ -242,7 +255,7 @@ export class RoleMappingsGridPage extends Component<Props, State> { ) : undefined, toolsRight: ( <EuiButton - color="secondary" + color="success" iconType="refresh" onClick={() => this.reloadRoleMappings()} data-test-subj="reloadButton" @@ -260,27 +273,40 @@ export class RoleMappingsGridPage extends Component<Props, State> { }; return ( - <EuiInMemoryTable - items={roleMappings!} - itemId="name" - columns={this.getColumnConfig()} - search={search} - sorting={sorting} - selection={selection} - pagination={pagination} - loading={loadState === 'loadingTable'} - message={message} - isSelectable={true} - rowProps={() => { - return { - 'data-test-subj': 'roleMappingRow', - }; + <DeleteProvider + roleMappingsAPI={this.props.roleMappingsAPI} + notifications={this.props.notifications} + > + {(deleteRoleMappingPrompt) => { + return ( + <ActionsEuiTableFormatting> + <EuiInMemoryTable + items={roleMappings!} + itemId="name" + columns={this.getColumnConfig(deleteRoleMappingPrompt)} + hasActions={true} + search={search} + sorting={sorting} + selection={selection} + pagination={pagination} + loading={loadState === 'loadingTable'} + message={message} + isSelectable={true} + ref={this.tableRef} + rowProps={() => { + return { + 'data-test-subj': 'roleMappingRow', + }; + }} + /> + </ActionsEuiTableFormatting> + ); }} - /> + </DeleteProvider> ); }; - private getColumnConfig = () => { + private getColumnConfig = (deleteRoleMappingPrompt: DeleteRoleMappings) => { const config = [ { field: 'name', @@ -357,72 +383,97 @@ export class RoleMappingsGridPage extends Component<Props, State> { }), actions: [ { + isPrimary: true, render: (record: RoleMapping) => { + const title = i18n.translate( + 'xpack.security.management.roleMappings.actionCloneTooltip', + { defaultMessage: 'Clone' } + ); + const label = i18n.translate( + 'xpack.security.management.roleMappings.actionCloneAriaLabel', + { + defaultMessage: `Clone '{name}'`, + values: { name: record.name }, + } + ); return ( - <EuiToolTip - content={i18n.translate( - 'xpack.security.management.roleMappings.actionEditTooltip', - { defaultMessage: 'Edit' } - )} - > - <EuiButtonIcon - aria-label={i18n.translate( - 'xpack.security.management.roleMappings.actionEditAriaLabel', - { - defaultMessage: `Edit '{name}'`, - values: { name: record.name }, - } - )} - iconType="pencil" + <EuiToolTip content={title}> + <EuiButtonEmpty + aria-label={label} + iconType="copy" color="primary" - data-test-subj={`editRoleMappingButton-${record.name}`} + data-test-subj={`cloneRoleMappingButton-${record.name}`} + disabled={this.state.selectedItems.length >= 1} {...reactRouterNavigate( this.props.history, - getEditRoleMappingHref(record.name) + getCloneRoleMappingHref(record.name) )} - /> + > + {title} + </EuiButtonEmpty> + </EuiToolTip> + ); + }, + }, + { + render: (record: RoleMapping) => { + const title = i18n.translate( + 'xpack.security.management.roleMappings.actionDeleteTooltip', + { defaultMessage: 'Delete' } + ); + const label = i18n.translate( + 'xpack.security.management.roleMappings.actionDeleteAriaLabel', + { + defaultMessage: `Delete '{name}'`, + values: { name: record.name }, + } + ); + return ( + <EuiToolTip content={title}> + <EuiButtonEmpty + aria-label={label} + iconType="trash" + color="danger" + data-test-subj={`deleteRoleMappingButton-${record.name}`} + disabled={this.state.selectedItems.length >= 1} + onClick={() => deleteRoleMappingPrompt([record], this.onRoleMappingsDeleted)} + > + {title} + </EuiButtonEmpty> </EuiToolTip> ); }, }, { + isPrimary: true, render: (record: RoleMapping) => { + const label = i18n.translate( + 'xpack.security.management.roleMappings.actionEditAriaLabel', + { + defaultMessage: `Edit '{name}'`, + values: { name: record.name }, + } + ); + const title = i18n.translate( + 'xpack.security.management.roleMappings.actionEditTooltip', + { defaultMessage: 'Edit' } + ); return ( - <EuiFlexGroup gutterSize="s"> - <EuiFlexItem> - <DeleteProvider - roleMappingsAPI={this.props.roleMappingsAPI} - notifications={this.props.notifications} - > - {(deleteRoleMappingPrompt) => { - return ( - <EuiToolTip - content={i18n.translate( - 'xpack.security.management.roleMappings.actionDeleteTooltip', - { defaultMessage: 'Delete' } - )} - > - <EuiButtonIcon - aria-label={i18n.translate( - 'xpack.security.management.roleMappings.actionDeleteAriaLabel', - { - defaultMessage: `Delete '{name}'`, - values: { name: record.name }, - } - )} - iconType="trash" - color="danger" - data-test-subj={`deleteRoleMappingButton-${record.name}`} - onClick={() => - deleteRoleMappingPrompt([record], this.onRoleMappingsDeleted) - } - /> - </EuiToolTip> - ); - }} - </DeleteProvider> - </EuiFlexItem> - </EuiFlexGroup> + <EuiToolTip content={title}> + <EuiButtonEmpty + aria-label={label} + iconType="pencil" + color="primary" + data-test-subj={`editRoleMappingButton-${record.name}`} + disabled={this.state.selectedItems.length >= 1} + {...reactRouterNavigate( + this.props.history, + getEditRoleMappingHref(record.name) + )} + > + {title} + </EuiButtonEmpty> + </EuiToolTip> ); }, }, @@ -438,6 +489,10 @@ export class RoleMappingsGridPage extends Component<Props, State> { } }; + private onRoleMappingsDeleteCancel = () => { + this.tableRef.current?.setSelection([]); + }; + private async checkPrivileges() { try { const { canManageRoleMappings, hasCompatibleRealms } = diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx index f6d17327b7118..3b7e96ffabd1e 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.test.tsx @@ -8,7 +8,7 @@ import { act } from '@testing-library/react'; import { noop } from 'lodash'; -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import type { Unmount } from 'src/plugins/management/public/types'; import { roleMappingsManagementApp } from './role_mappings_management_app'; @@ -46,6 +46,7 @@ async function mountApp(basePath: string, pathname: string) { element: container, setBreadcrumbs, history: scopedHistoryMock.create({ pathname }), + theme$: themeServiceMock.createTheme$(), }); }); @@ -100,7 +101,7 @@ describe('roleMappingsManagementApp', () => { expect(docTitle.reset).not.toHaveBeenCalled(); expect(container).toMatchInlineSnapshot(` <div> - Role Mapping Edit Page: {"roleMappingsAPI":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"rolesAPIClient":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"notifications":{"toasts":{}},"docLinks":{},"history":{"action":"PUSH","length":1,"location":{"pathname":"/edit","search":"","hash":""}}} + Role Mapping Edit Page: {"action":"edit","roleMappingsAPI":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"rolesAPIClient":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"notifications":{"toasts":{}},"docLinks":{},"history":{"action":"PUSH","length":1,"location":{"pathname":"/edit","search":"","hash":""}}} </div> `); @@ -128,7 +129,7 @@ describe('roleMappingsManagementApp', () => { expect(docTitle.reset).not.toHaveBeenCalled(); expect(container).toMatchInlineSnapshot(` <div> - Role Mapping Edit Page: {"name":"role@mapping","roleMappingsAPI":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"rolesAPIClient":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"notifications":{"toasts":{}},"docLinks":{},"history":{"action":"PUSH","length":1,"location":{"pathname":"/edit/role@mapping","search":"","hash":""}}} + Role Mapping Edit Page: {"action":"edit","name":"role@mapping","roleMappingsAPI":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"rolesAPIClient":{"http":{"basePath":{"basePath":"","serverBasePath":""},"anonymousPaths":{},"externalUrl":{}}},"notifications":{"toasts":{}},"docLinks":{},"history":{"action":"PUSH","length":1,"location":{"pathname":"/edit/role@mapping","search":"","hash":""}}} </div> `); diff --git a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.tsx b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.tsx index 22d09e9e2a678..41e6a9562612d 100644 --- a/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.tsx +++ b/x-pack/plugins/security/public/management/role_mappings/role_mappings_management_app.tsx @@ -56,7 +56,7 @@ export const roleMappingsManagementApp = Object.freeze({ const roleMappingsAPIClient = new RoleMappingsAPIClient(core.http); - const EditRoleMappingsPageWithBreadcrumbs = () => { + const EditRoleMappingsPageWithBreadcrumbs = ({ action }: { action: 'edit' | 'clone' }) => { const { name } = useParams<{ name?: string }>(); // Additional decoding is a workaround for a bug in react-router's version of the `history` module. @@ -64,7 +64,7 @@ export const roleMappingsManagementApp = Object.freeze({ const decodedName = name ? tryDecodeURIComponent(name) : undefined; const breadcrumbObj = - name && decodedName + action === 'edit' && name && decodedName ? { text: decodedName, href: `/edit/${encodeURIComponent(name)}` } : { text: i18n.translate('xpack.security.roleMappings.createBreadcrumb', { @@ -75,6 +75,7 @@ export const roleMappingsManagementApp = Object.freeze({ return ( <Breadcrumb text={breadcrumbObj.text} href={breadcrumbObj.href}> <EditRoleMappingPage + action={action} name={decodedName} roleMappingsAPI={roleMappingsAPIClient} rolesAPIClient={new RolesAPIClient(core.http)} @@ -105,7 +106,10 @@ export const roleMappingsManagementApp = Object.freeze({ /> </Route> <Route path="/edit/:name?"> - <EditRoleMappingsPageWithBreadcrumbs /> + <EditRoleMappingsPageWithBreadcrumbs action="edit" /> + </Route> + <Route path="/clone/:name"> + <EditRoleMappingsPageWithBreadcrumbs action="clone" /> </Route> </Breadcrumb> </BreadcrumbsProvider> diff --git a/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.test.tsx b/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.test.tsx index 9194fea271442..aa507cf823eff 100644 --- a/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.test.tsx +++ b/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.test.tsx @@ -144,31 +144,33 @@ describe('<RolesGridPage />', () => { expect(wrapper.find(PermissionDenied)).toHaveLength(0); - let editButton = wrapper.find('EuiButtonIcon[data-test-subj="edit-role-action-test-role-1"]'); + let editButton = wrapper.find('EuiButtonEmpty[data-test-subj="edit-role-action-test-role-1"]'); expect(editButton).toHaveLength(1); expect(editButton.prop('href')).toBe('/edit/test-role-1'); editButton = wrapper.find( - 'EuiButtonIcon[data-test-subj="edit-role-action-special%chars%role"]' + 'EuiButtonEmpty[data-test-subj="edit-role-action-special%chars%role"]' ); expect(editButton).toHaveLength(1); expect(editButton.prop('href')).toBe('/edit/special%25chars%25role'); - let cloneButton = wrapper.find('EuiButtonIcon[data-test-subj="clone-role-action-test-role-1"]'); + let cloneButton = wrapper.find( + 'EuiButtonEmpty[data-test-subj="clone-role-action-test-role-1"]' + ); expect(cloneButton).toHaveLength(1); expect(cloneButton.prop('href')).toBe('/clone/test-role-1'); cloneButton = wrapper.find( - 'EuiButtonIcon[data-test-subj="clone-role-action-special%chars%role"]' + 'EuiButtonEmpty[data-test-subj="clone-role-action-special%chars%role"]' ); expect(cloneButton).toHaveLength(1); expect(cloneButton.prop('href')).toBe('/clone/special%25chars%25role'); expect( - wrapper.find('EuiButtonIcon[data-test-subj="edit-role-action-disabled-role"]') + wrapper.find('EuiButtonEmpty[data-test-subj="edit-role-action-disabled-role"]') ).toHaveLength(1); expect( - wrapper.find('EuiButtonIcon[data-test-subj="clone-role-action-disabled-role"]') + wrapper.find('EuiButtonEmpty[data-test-subj="clone-role-action-disabled-role"]') ).toHaveLength(1); }); diff --git a/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.tsx b/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.tsx index 909c5b1193cd9..d34a8bfea27bf 100644 --- a/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.tsx +++ b/x-pack/plugins/security/public/management/roles/roles_grid/roles_grid_page.tsx @@ -8,7 +8,7 @@ import type { EuiBasicTableColumn, EuiSwitchEvent } from '@elastic/eui'; import { EuiButton, - EuiButtonIcon, + EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, EuiInMemoryTable, @@ -17,6 +17,7 @@ import { EuiSpacer, EuiSwitch, EuiText, + EuiToolTip, } from '@elastic/eui'; import _ from 'lodash'; import React, { Component } from 'react'; @@ -36,6 +37,7 @@ import { isRoleReserved, } from '../../../../common/model'; import { DeprecatedBadge, DisabledBadge, ReservedBadge } from '../../badges'; +import { ActionsEuiTableFormatting } from '../../table_utils'; import type { RolesAPIClient } from '../roles_api_client'; import { ConfirmDelete } from './confirm_delete'; import { PermissionDenied } from './permission_denied'; @@ -61,6 +63,7 @@ const getRoleManagementHref = (action: 'edit' | 'clone', roleName?: string) => { }; export class RolesGridPage extends Component<Props, State> { + private tableRef: React.RefObject<EuiInMemoryTable<Role>>; constructor(props: Props) { super(props); this.state = { @@ -72,6 +75,7 @@ export class RolesGridPage extends Component<Props, State> { permissionDenied: false, includeReservedRoles: true, }; + this.tableRef = React.createRef(); } public componentDidMount() { @@ -129,53 +133,56 @@ export class RolesGridPage extends Component<Props, State> { /> ) : null} - <EuiInMemoryTable - itemId="name" - responsive={false} - columns={this.getColumnConfig()} - hasActions={true} - selection={{ - selectable: (role: Role) => !role.metadata || !role.metadata._reserved, - selectableMessage: (selectable: boolean) => (!selectable ? 'Role is reserved' : ''), - onSelectionChange: (selection: Role[]) => this.setState({ selection }), - }} - pagination={{ - initialPageSize: 20, - pageSizeOptions: [10, 20, 30, 50, 100], - }} - items={this.state.visibleRoles} - loading={roles.length === 0} - search={{ - toolsLeft: this.renderToolsLeft(), - toolsRight: this.renderToolsRight(), - box: { - incremental: true, - 'data-test-subj': 'searchRoles', - }, - onChange: (query: Record<string, any>) => { - this.setState({ - filter: query.queryText, - visibleRoles: this.getVisibleRoles( - this.state.roles, - query.queryText, - this.state.includeReservedRoles - ), - }); - }, - }} - sorting={{ - sort: { - field: 'name', - direction: 'asc', - }, - }} - rowProps={() => { - return { - 'data-test-subj': 'roleRow', - }; - }} - isSelectable - /> + <ActionsEuiTableFormatting> + <EuiInMemoryTable + itemId="name" + responsive={false} + columns={this.getColumnConfig()} + hasActions={true} + selection={{ + selectable: (role: Role) => !role.metadata || !role.metadata._reserved, + selectableMessage: (selectable: boolean) => (!selectable ? 'Role is reserved' : ''), + onSelectionChange: (selection: Role[]) => this.setState({ selection }), + }} + pagination={{ + initialPageSize: 20, + pageSizeOptions: [10, 20, 30, 50, 100], + }} + items={this.state.visibleRoles} + loading={roles.length === 0} + search={{ + toolsLeft: this.renderToolsLeft(), + toolsRight: this.renderToolsRight(), + box: { + incremental: true, + 'data-test-subj': 'searchRoles', + }, + onChange: (query: Record<string, any>) => { + this.setState({ + filter: query.queryText, + visibleRoles: this.getVisibleRoles( + this.state.roles, + query.queryText, + this.state.includeReservedRoles + ), + }); + }, + }} + sorting={{ + sort: { + field: 'name', + direction: 'asc', + }, + }} + ref={this.tableRef} + rowProps={(role: Role) => { + return { + 'data-test-subj': `roleRow`, + }; + }} + isSelectable + /> + </ActionsEuiTableFormatting> </> ); }; @@ -219,48 +226,98 @@ export class RolesGridPage extends Component<Props, State> { width: '150px', actions: [ { - available: (role: Role) => !isRoleReadOnly(role), + available: (role: Role) => !isRoleReserved(role), + isPrimary: true, render: (role: Role) => { - const title = i18n.translate('xpack.security.management.roles.editRoleActionName', { - defaultMessage: `Edit {roleName}`, + const title = i18n.translate('xpack.security.management.roles.cloneRoleActionName', { + defaultMessage: `Clone`, + }); + + const label = i18n.translate('xpack.security.management.roles.cloneRoleActionLabel', { + defaultMessage: `Clone {roleName}`, values: { roleName: role.name }, }); return ( - <EuiButtonIcon - aria-label={title} - data-test-subj={`edit-role-action-${role.name}`} - title={title} - color={'primary'} - iconType={'pencil'} - {...reactRouterNavigate( - this.props.history, - getRoleManagementHref('edit', role.name) - )} - /> + <EuiToolTip content={title}> + <EuiButtonEmpty + aria-label={label} + color={'primary'} + data-test-subj={`clone-role-action-${role.name}`} + disabled={this.state.selection.length >= 1} + iconType={'copy'} + {...reactRouterNavigate( + this.props.history, + getRoleManagementHref('clone', role.name) + )} + > + {title} + </EuiButtonEmpty> + </EuiToolTip> ); }, }, { - available: (role: Role) => !isRoleReserved(role), + available: (role: Role) => !role.metadata || !role.metadata._reserved, render: (role: Role) => { - const title = i18n.translate('xpack.security.management.roles.cloneRoleActionName', { - defaultMessage: `Clone {roleName}`, + const title = i18n.translate('xpack.security.management.roles.deleteRoleActionName', { + defaultMessage: `Delete`, + }); + + const label = i18n.translate( + 'xpack.security.management.roles.deleteRoleActionLabel', + { + defaultMessage: `Delete {roleName}`, + values: { roleName: role.name }, + } + ); + + return ( + <EuiToolTip content={title}> + <EuiButtonEmpty + aria-label={label} + color={'danger'} + data-test-subj={`delete-role-action-${role.name}`} + disabled={this.state.selection.length >= 1} + iconType={'trash'} + onClick={() => this.deleteOneRole(role)} + > + {title} + </EuiButtonEmpty> + </EuiToolTip> + ); + }, + }, + { + available: (role: Role) => !isRoleReadOnly(role), + enable: () => this.state.selection.length === 0, + isPrimary: true, + render: (role: Role) => { + const title = i18n.translate('xpack.security.management.roles.editRoleActionName', { + defaultMessage: `Edit`, + }); + + const label = i18n.translate('xpack.security.management.roles.editRoleActionLabel', { + defaultMessage: `Edit {roleName}`, values: { roleName: role.name }, }); return ( - <EuiButtonIcon - aria-label={title} - data-test-subj={`clone-role-action-${role.name}`} - title={title} - color={'primary'} - iconType={'copy'} - {...reactRouterNavigate( - this.props.history, - getRoleManagementHref('clone', role.name) - )} - /> + <EuiToolTip content={title}> + <EuiButtonEmpty + aria-label={label} + color={'primary'} + data-test-subj={`edit-role-action-${role.name}`} + disabled={this.state.selection.length >= 1} + iconType={'pencil'} + {...reactRouterNavigate( + this.props.history, + getRoleManagementHref('edit', role.name) + )} + > + {title} + </EuiButtonEmpty> + </EuiToolTip> ); }, }, @@ -337,6 +394,13 @@ export class RolesGridPage extends Component<Props, State> { this.loadRoles(); }; + private deleteOneRole = (roleToDelete: Role) => { + this.setState({ + selection: [roleToDelete], + showDeleteConfirmation: true, + }); + }; + private async loadRoles() { try { const roles = await this.props.rolesAPIClient.getRoles(); @@ -385,6 +449,7 @@ export class RolesGridPage extends Component<Props, State> { </EuiButton> ); } + private renderToolsRight() { return ( <EuiSwitch @@ -401,6 +466,7 @@ export class RolesGridPage extends Component<Props, State> { ); } private onCancelDelete = () => { - this.setState({ showDeleteConfirmation: false }); + this.setState({ showDeleteConfirmation: false, selection: [] }); + this.tableRef.current?.setSelection([]); }; } diff --git a/x-pack/plugins/security/public/management/roles/roles_management_app.test.tsx b/x-pack/plugins/security/public/management/roles/roles_management_app.test.tsx index faab47a858d67..007c3e306372e 100644 --- a/x-pack/plugins/security/public/management/roles/roles_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/roles/roles_management_app.test.tsx @@ -8,7 +8,7 @@ import { act } from '@testing-library/react'; import { noop } from 'lodash'; -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import type { Unmount } from 'src/plugins/management/public/types'; import { featuresPluginMock } from '../../../../features/public/mocks'; @@ -48,6 +48,7 @@ async function mountApp(basePath: string, pathname: string) { element: container, setBreadcrumbs, history: scopedHistoryMock.create({ pathname }), + theme$: themeServiceMock.createTheme$(), }); }); diff --git a/x-pack/plugins/security/public/management/table_utils.tsx b/x-pack/plugins/security/public/management/table_utils.tsx new file mode 100644 index 0000000000000..3f240daf3bd03 --- /dev/null +++ b/x-pack/plugins/security/public/management/table_utils.tsx @@ -0,0 +1,37 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { css } from '@emotion/react'; +import type { ReactNode } from 'react'; +import React from 'react'; + +interface ActionsEuiTableFormattingProps { + children: ReactNode; +} + +/* + * Notes to future engineer: + * We created this component because as this time EUI actions table where not allowing to pass + * props href on an action. In our case, we want our actions to work with href + * and onClick. Then the problem is that the design did not match with EUI example, therefore + * we are doing some css magic to only have icon showing up when user is hovering a row + */ +export const ActionsEuiTableFormatting = React.memo<ActionsEuiTableFormattingProps>( + ({ children }) => ( + <div + css={css` + .euiTableRowCell--hasActions .euiButtonEmpty .euiButtonContent { + padding: 0px 0px; + .euiButtonEmpty__text { + display: none; + } + } + `} + > + {children} + </div> + ) +); diff --git a/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.test.tsx b/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.test.tsx index e3ad83fd0b934..b340a915bc054 100644 --- a/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.test.tsx +++ b/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.test.tsx @@ -73,6 +73,66 @@ describe('UsersGridPage', () => { expect(findTestSubject(wrapper, 'userDisabled')).toHaveLength(0); }); + it('renders the loading indication on the table when fetching user with data', async () => { + const apiClientMock = userAPIClientMock.create(); + apiClientMock.getUsers.mockImplementation(() => { + return Promise.resolve<User[]>([ + { + username: 'foo', + email: 'foo@bar.net', + full_name: 'foo bar', + roles: ['kibana_user'], + enabled: true, + }, + { + username: 'reserved', + email: 'reserved@bar.net', + full_name: '', + roles: ['superuser'], + enabled: true, + metadata: { + _reserved: true, + }, + }, + ]); + }); + + const wrapper = mountWithIntl( + <UsersGridPage + userAPIClient={apiClientMock} + rolesAPIClient={rolesAPIClientMock.create()} + notifications={coreStart.notifications} + history={history} + navigateToApp={coreStart.application.navigateToApp} + /> + ); + + expect(wrapper.find('.euiBasicTable-loading').exists()).toBeTruthy(); + await waitForRender(wrapper); + expect(wrapper.find('.euiBasicTable-loading').exists()).toBeFalsy(); + }); + + it('renders the loading indication on the table when fetching user with no data', async () => { + const apiClientMock = userAPIClientMock.create(); + apiClientMock.getUsers.mockImplementation(() => { + return Promise.resolve<User[]>([]); + }); + + const wrapper = mountWithIntl( + <UsersGridPage + userAPIClient={apiClientMock} + rolesAPIClient={rolesAPIClientMock.create()} + notifications={coreStart.notifications} + history={history} + navigateToApp={coreStart.application.navigateToApp} + /> + ); + + expect(wrapper.find('.euiBasicTable-loading').exists()).toBeTruthy(); + await waitForRender(wrapper); + expect(wrapper.find('.euiBasicTable-loading').exists()).toBeFalsy(); + }); + it('generates valid links when usernames contain special characters', async () => { const apiClientMock = userAPIClientMock.create(); apiClientMock.getUsers.mockImplementation(() => { diff --git a/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.tsx b/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.tsx index b7cdf27dc6be5..974ca2be219c4 100644 --- a/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.tsx +++ b/x-pack/plugins/security/public/management/users/users_grid/users_grid_page.tsx @@ -51,6 +51,7 @@ interface State { permissionDenied: boolean; filter: string; includeReservedUsers: boolean; + isTableLoading: boolean; } export class UsersGridPage extends Component<Props, State> { @@ -65,6 +66,7 @@ export class UsersGridPage extends Component<Props, State> { permissionDenied: false, filter: '', includeReservedUsers: true, + isTableLoading: false, }; } @@ -73,7 +75,7 @@ export class UsersGridPage extends Component<Props, State> { } public render() { - const { users, roles, permissionDenied, showDeleteConfirmation, selection } = this.state; + const { roles, permissionDenied, showDeleteConfirmation, selection } = this.state; if (permissionDenied) { return ( @@ -268,7 +270,7 @@ export class UsersGridPage extends Component<Props, State> { selection={selectionConfig} pagination={pagination} items={this.state.visibleUsers} - loading={users.length === 0} + loading={this.state.isTableLoading} search={search} sorting={sorting} rowProps={rowProps} @@ -311,11 +313,15 @@ export class UsersGridPage extends Component<Props, State> { private async loadUsersAndRoles() { try { + this.setState({ + isTableLoading: true, + }); const [users, roles] = await Promise.all([ this.props.userAPIClient.getUsers(), this.props.rolesAPIClient.getRoles(), ]); this.setState({ + isTableLoading: false, users, roles, visibleUsers: this.getVisibleUsers( @@ -325,9 +331,8 @@ export class UsersGridPage extends Component<Props, State> { ), }); } catch (e) { - if (e.body.statusCode === 403) { - this.setState({ permissionDenied: true }); - } else { + this.setState({ permissionDenied: e.body.statusCode === 403, isTableLoading: false }); + if (e.body.statusCode !== 403) { this.props.notifications.toasts.addDanger( i18n.translate('xpack.security.management.users.fetchingUsersErrorMessage', { defaultMessage: 'Error fetching users: {message}', diff --git a/x-pack/plugins/security/public/management/users/users_management_app.test.tsx b/x-pack/plugins/security/public/management/users/users_management_app.test.tsx index f25fb211cb9de..84a6e82bf12ae 100644 --- a/x-pack/plugins/security/public/management/users/users_management_app.test.tsx +++ b/x-pack/plugins/security/public/management/users/users_management_app.test.tsx @@ -8,7 +8,7 @@ import { act } from '@testing-library/react'; import { noop } from 'lodash'; -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import type { Unmount } from 'src/plugins/management/public/types'; import { securityMock } from '../../mocks'; @@ -33,6 +33,7 @@ describe('usersManagementApp', () => { element, setBreadcrumbs, history, + theme$: themeServiceMock.createTheme$(), }); }); diff --git a/x-pack/plugins/security/public/plugin.tsx b/x-pack/plugins/security/public/plugin.tsx index 043cf0765ff31..c2860ec059b8d 100644 --- a/x-pack/plugins/security/public/plugin.tsx +++ b/x-pack/plugins/security/public/plugin.tsx @@ -55,17 +55,20 @@ export class SecurityPlugin PluginStartDependencies > { - private readonly config = this.initializerContext.config.get<ConfigType>(); + private readonly config: ConfigType; private sessionTimeout!: SessionTimeout; private readonly authenticationService = new AuthenticationService(); private readonly navControlService = new SecurityNavControlService(); private readonly securityLicenseService = new SecurityLicenseService(); private readonly managementService = new ManagementService(); - private readonly securityCheckupService = new SecurityCheckupService(this.config, localStorage); + private readonly securityCheckupService: SecurityCheckupService; private readonly anonymousAccessService = new AnonymousAccessService(); private authc!: AuthenticationServiceSetup; - constructor(private readonly initializerContext: PluginInitializerContext) {} + constructor(private readonly initializerContext: PluginInitializerContext) { + this.config = this.initializerContext.config.get<ConfigType>(); + this.securityCheckupService = new SecurityCheckupService(this.config, localStorage); + } public setup( core: CoreSetup<PluginStartDependencies>, diff --git a/x-pack/plugins/security/server/authentication/authentication_service.test.ts b/x-pack/plugins/security/server/authentication/authentication_service.test.ts index ea95f308eb046..d29c780e414ff 100644 --- a/x-pack/plugins/security/server/authentication/authentication_service.test.ts +++ b/x-pack/plugins/security/server/authentication/authentication_service.test.ts @@ -128,6 +128,19 @@ describe('AuthenticationService', () => { expect.any(Function) ); }); + + it('properly registers auth handler with no providers', () => { + mockSetupAuthenticationParams.config.authc = { + ...mockSetupAuthenticationParams.config.authc, + sortedProviders: [], + }; + service.setup(mockSetupAuthenticationParams); + + expect(mockSetupAuthenticationParams.http.registerAuth).toHaveBeenCalledTimes(1); + expect(mockSetupAuthenticationParams.http.registerAuth).toHaveBeenCalledWith( + expect.any(Function) + ); + }); }); describe('#start()', () => { diff --git a/x-pack/plugins/security/server/authentication/authentication_service.ts b/x-pack/plugins/security/server/authentication/authentication_service.ts index ac66e62e97c8a..d05260094df8c 100644 --- a/x-pack/plugins/security/server/authentication/authentication_service.ts +++ b/x-pack/plugins/security/server/authentication/authentication_service.ts @@ -98,7 +98,8 @@ export class AuthenticationService { // 2. Login selector is disabled, but the provider with the lowest `order` uses login form const isLoginPageAvailable = config.authc.selector.enabled || - shouldProviderUseLoginForm(config.authc.sortedProviders[0].type); + (config.authc.sortedProviders.length > 0 && + shouldProviderUseLoginForm(config.authc.sortedProviders[0].type)); http.registerAuth(async (request, response, t) => { if (!license.isLicenseAvailable()) { diff --git a/x-pack/plugins/security/server/authentication/authenticator.test.ts b/x-pack/plugins/security/server/authentication/authenticator.test.ts index cc232298bc878..c95944be75f95 100644 --- a/x-pack/plugins/security/server/authentication/authenticator.test.ts +++ b/x-pack/plugins/security/server/authentication/authenticator.test.ts @@ -1872,6 +1872,24 @@ describe('Authenticator', () => { expect(mockOptions.session.invalidate).not.toHaveBeenCalled(); }); + it('if session does not exist and providers is empty, redirects to default logout path.', async () => { + const request = httpServerMock.createKibanaRequest(); + + mockOptions = getMockOptions({ + providers: { basic: { basic1: { order: 0, enabled: false } } }, + }); + authenticator = new Authenticator(mockOptions); + + await expect(authenticator.logout(request)).resolves.toEqual( + DeauthenticationResult.redirectTo( + '/mock-server-basepath/security/logged_out?msg=LOGGED_OUT' + ) + ); + + expect(mockBasicAuthenticationProvider.logout).not.toHaveBeenCalled(); + expect(mockOptions.session.invalidate).not.toHaveBeenCalled(); + }); + it('redirects to login form if session does not exist and provider name is invalid', async () => { const request = httpServerMock.createKibanaRequest({ query: { provider: 'foo' } }); mockOptions.session.get.mockResolvedValue(null); diff --git a/x-pack/plugins/security/server/authentication/authenticator.ts b/x-pack/plugins/security/server/authentication/authenticator.ts index 5608a35580338..164cc1b027b37 100644 --- a/x-pack/plugins/security/server/authentication/authenticator.ts +++ b/x-pack/plugins/security/server/authentication/authenticator.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { Logger } from '@kbn/logging'; import type { PublicMethodsOf } from '@kbn/utility-types'; import type { IBasePath, IClusterClient, LoggerFactory } from 'src/core/server'; @@ -196,18 +197,21 @@ export class Authenticator { /** * Session instance. */ - private readonly session = this.options.session; + private readonly session: AuthenticatorOptions['session']; /** * Internal authenticator logger. */ - private readonly logger = this.options.loggers.get('authenticator'); + private readonly logger: Logger; /** * Instantiates Authenticator and bootstrap configured providers. * @param options Authenticator options. */ constructor(private readonly options: Readonly<AuthenticatorOptions>) { + this.session = this.options.session; + this.logger = this.options.loggers.get('authenticator'); + const providerCommonOptions = { client: this.options.clusterClient, basePath: this.options.basePath, @@ -806,10 +810,7 @@ export class Authenticator { * @param providerType Type of the provider that handles logout. If not specified, then the first * provider in the chain (default) is assumed. */ - private getLoggedOutURL( - request: KibanaRequest, - providerType: string = this.options.config.authc.sortedProviders[0].type - ) { + private getLoggedOutURL(request: KibanaRequest, providerType?: string) { // The app that handles logout needs to know the reason of the logout and the URL we may need to // redirect user to once they log in again (e.g. when session expires). const searchParams = new URLSearchParams(); @@ -825,7 +826,12 @@ export class Authenticator { // Query string may contain the path where logout has been called or // logout reason that login page may need to know. - return this.options.config.authc.selector.enabled || shouldProviderUseLoginForm(providerType) + return this.options.config.authc.selector.enabled || + (providerType + ? shouldProviderUseLoginForm(providerType) + : this.options.config.authc.sortedProviders.length > 0 + ? shouldProviderUseLoginForm(this.options.config.authc.sortedProviders[0].type) + : false) ? `${this.options.basePath.serverBasePath}/login?${searchParams.toString()}` : `${this.options.basePath.serverBasePath}/security/logged_out?${searchParams.toString()}`; } diff --git a/x-pack/plugins/security/server/authorization/actions/actions.ts b/x-pack/plugins/security/server/authorization/actions/actions.ts index 0234c3bc82042..e523c866a58b8 100644 --- a/x-pack/plugins/security/server/authorization/actions/actions.ts +++ b/x-pack/plugins/security/server/authorization/actions/actions.ts @@ -18,27 +18,29 @@ import { UIActions } from './ui'; * by the various `checkPrivilegesWithRequest` derivatives. */ export class Actions { - public readonly api = new ApiActions(this.versionNumber); - - public readonly app = new AppActions(this.versionNumber); - - public readonly cases = new CasesActions(this.versionNumber); - - public readonly login = 'login:'; - - public readonly savedObject = new SavedObjectActions(this.versionNumber); - - public readonly alerting = new AlertingActions(this.versionNumber); - - public readonly space = new SpaceActions(this.versionNumber); - - public readonly ui = new UIActions(this.versionNumber); - - public readonly version = `version:${this.versionNumber}`; + public readonly api: ApiActions; + public readonly app: AppActions; + public readonly cases: CasesActions; + public readonly login: string; + public readonly savedObject: SavedObjectActions; + public readonly alerting: AlertingActions; + public readonly space: SpaceActions; + public readonly ui: UIActions; + public readonly version: string; constructor(private readonly versionNumber: string) { if (versionNumber === '') { throw new Error(`version can't be an empty string`); } + + this.api = new ApiActions(this.versionNumber); + this.app = new AppActions(this.versionNumber); + this.cases = new CasesActions(this.versionNumber); + this.login = 'login:'; + this.savedObject = new SavedObjectActions(this.versionNumber); + this.alerting = new AlertingActions(this.versionNumber); + this.space = new SpaceActions(this.versionNumber); + this.ui = new UIActions(this.versionNumber); + this.version = `version:${this.versionNumber}`; } } diff --git a/x-pack/plugins/security/server/plugin.ts b/x-pack/plugins/security/server/plugin.ts index 80082e9b7dbce..e8f7aa2aacfdd 100644 --- a/x-pack/plugins/security/server/plugin.ts +++ b/x-pack/plugins/security/server/plugin.ts @@ -153,9 +153,7 @@ export class SecurityPlugin return this.kibanaIndexName; }; - private readonly authenticationService = new AuthenticationService( - this.initializerContext.logger.get('authentication') - ); + private readonly authenticationService: AuthenticationService; private authenticationStart?: InternalAuthenticationServiceStart; private readonly getAuthentication = () => { if (!this.authenticationStart) { @@ -173,19 +171,12 @@ export class SecurityPlugin return this.featureUsageServiceStart; }; - private readonly auditService = new AuditService(this.initializerContext.logger.get('audit')); + private readonly auditService: AuditService; private readonly securityLicenseService = new SecurityLicenseService(); private readonly authorizationService = new AuthorizationService(); - private readonly elasticsearchService = new ElasticsearchService( - this.initializerContext.logger.get('elasticsearch') - ); - private readonly sessionManagementService = new SessionManagementService( - this.initializerContext.logger.get('session') - ); - private readonly anonymousAccessService = new AnonymousAccessService( - this.initializerContext.logger.get('anonymous-access'), - this.getConfig - ); + private readonly elasticsearchService: ElasticsearchService; + private readonly sessionManagementService: SessionManagementService; + private readonly anonymousAccessService: AnonymousAccessService; private anonymousAccessStart?: AnonymousAccessServiceStart; private readonly getAnonymousAccess = () => { if (!this.anonymousAccessStart) { @@ -196,6 +187,21 @@ export class SecurityPlugin constructor(private readonly initializerContext: PluginInitializerContext) { this.logger = this.initializerContext.logger.get(); + + this.authenticationService = new AuthenticationService( + this.initializerContext.logger.get('authentication') + ); + this.auditService = new AuditService(this.initializerContext.logger.get('audit')); + this.elasticsearchService = new ElasticsearchService( + this.initializerContext.logger.get('elasticsearch') + ); + this.sessionManagementService = new SessionManagementService( + this.initializerContext.logger.get('session') + ); + this.anonymousAccessService = new AnonymousAccessService( + this.initializerContext.logger.get('anonymous-access'), + this.getConfig + ); } public setup( diff --git a/x-pack/plugins/security/server/session_management/session_index.ts b/x-pack/plugins/security/server/session_management/session_index.ts index fd993f0fb843a..58ee0d6956511 100644 --- a/x-pack/plugins/security/server/session_management/session_index.ts +++ b/x-pack/plugins/security/server/session_management/session_index.ts @@ -132,7 +132,7 @@ export class SessionIndex { /** * Name of the index to store session information in. */ - private readonly indexName = `${this.options.kibanaIndexName}_security_session_${SESSION_INDEX_TEMPLATE_VERSION}`; + private readonly indexName: string; /** * Promise that tracks session index initialization process. We'll need to get rid of this as soon @@ -142,7 +142,9 @@ export class SessionIndex { */ private indexInitialization?: Promise<void>; - constructor(private readonly options: Readonly<SessionIndexOptions>) {} + constructor(private readonly options: Readonly<SessionIndexOptions>) { + this.indexName = `${this.options.kibanaIndexName}_security_session_${SESSION_INDEX_TEMPLATE_VERSION}`; + } /** * Retrieves session value with the specified ID from the index. If session value isn't found diff --git a/x-pack/plugins/security/server/spaces/secure_spaces_client_wrapper.ts b/x-pack/plugins/security/server/spaces/secure_spaces_client_wrapper.ts index e433e9c366df5..9d20a6ea40b24 100644 --- a/x-pack/plugins/security/server/spaces/secure_spaces_client_wrapper.ts +++ b/x-pack/plugins/security/server/spaces/secure_spaces_client_wrapper.ts @@ -44,7 +44,7 @@ const PURPOSE_PRIVILEGE_MAP: Record< export const LEGACY_URL_ALIAS_TYPE = 'legacy-url-alias'; export class SecureSpacesClientWrapper implements ISpacesClient { - private readonly useRbac = this.authorization.mode.useRbacForRequest(this.request); + private readonly useRbac: boolean; constructor( private readonly spacesClient: ISpacesClient, @@ -52,7 +52,9 @@ export class SecureSpacesClientWrapper implements ISpacesClient { private readonly authorization: AuthorizationServiceSetup, private readonly auditLogger: AuditLogger, private readonly errors: SavedObjectsClientContract['errors'] - ) {} + ) { + this.useRbac = this.authorization.mode.useRbacForRequest(this.request); + } public async getAll({ purpose = 'any', diff --git a/x-pack/plugins/security_solution/common/constants.ts b/x-pack/plugins/security_solution/common/constants.ts index 071d01a1bd557..25c6b07fd03af 100644 --- a/x-pack/plugins/security_solution/common/constants.ts +++ b/x-pack/plugins/security_solution/common/constants.ts @@ -83,9 +83,13 @@ export enum SecurityPageName { administration = 'administration', alerts = 'alerts', authentications = 'authentications', - case = 'case', - caseConfigure = 'case-configure', - caseCreate = 'case-create', + /* + * Warning: Computed values are not permitted in an enum with string valued members + * The 3 following Cases page names must match `CasesDeepLinkId` in x-pack/plugins/cases/public/common/navigation.ts + */ + case = 'cases', + caseConfigure = 'cases_configure', + caseCreate = 'cases_create', detections = 'detections', endpoints = 'endpoints', eventFilters = 'event_filters', diff --git a/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts b/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts index d017d0095e895..61e1ebb47464b 100644 --- a/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts +++ b/x-pack/plugins/security_solution/common/detection_engine/get_query_filter.test.ts @@ -6,7 +6,7 @@ */ import { getQueryFilter, getAllFilters, buildEqlSearchRequest } from './get_query_filter'; -import { Filter } from 'src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { getExceptionListItemSchemaMock } from '../../../lists/common/schemas/response/exception_list_item_schema.mock'; describe('get_filter', () => { diff --git a/x-pack/plugins/security_solution/common/endpoint/types/index.ts b/x-pack/plugins/security_solution/common/endpoint/types/index.ts index 2fee3e4c39d1d..2dc4f49919ef7 100644 --- a/x-pack/plugins/security_solution/common/endpoint/types/index.ts +++ b/x-pack/plugins/security_solution/common/endpoint/types/index.ts @@ -177,7 +177,7 @@ export interface ResolverPaginatedEvents { } /** - * Returned by the server via /api/endpoint/metadata + * Returned by the server via POST /api/endpoint/metadata */ export interface HostResultList { /* the hosts restricted by the page size */ @@ -1231,3 +1231,22 @@ export interface ListPageRouteState { /** The label for the button */ backButtonLabel?: string; } + +/** + * REST API standard base response for list types + */ +export interface BaseListResponse { + data: unknown[]; + page: number; + pageSize: number; + total: number; + sort?: string; + sortOrder?: 'asc' | 'desc'; +} + +/** + * Returned by the server via GET /api/endpoint/metadata + */ +export interface MetadataListResponse extends BaseListResponse { + data: HostInfo[]; +} diff --git a/x-pack/plugins/security_solution/common/jest.config.js b/x-pack/plugins/security_solution/common/jest.config.js index ca6f7cd368f2b..1b5f75f8380ba 100644 --- a/x-pack/plugins/security_solution/common/jest.config.js +++ b/x-pack/plugins/security_solution/common/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/common', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/common/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/common/machine_learning/empty_ml_capabilities.ts b/x-pack/plugins/security_solution/common/machine_learning/empty_ml_capabilities.ts index 772c16fc9cb99..79a0084f91923 100644 --- a/x-pack/plugins/security_solution/common/machine_learning/empty_ml_capabilities.ts +++ b/x-pack/plugins/security_solution/common/machine_learning/empty_ml_capabilities.ts @@ -6,41 +6,10 @@ */ import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; +import { getDefaultMlCapabilities } from '../../../ml/common'; export const emptyMlCapabilities: MlCapabilitiesResponse = { - capabilities: { - canAccessML: false, - canGetAnnotations: false, - canCreateAnnotation: false, - canDeleteAnnotation: false, - canGetJobs: false, - canCreateJob: false, - canDeleteJob: false, - canOpenJob: false, - canCloseJob: false, - canResetJob: false, - canForecastJob: false, - canGetDatafeeds: false, - canStartStopDatafeed: false, - canUpdateJob: false, - canUpdateDatafeed: false, - canPreviewDatafeed: false, - canGetCalendars: false, - canCreateCalendar: false, - canDeleteCalendar: false, - canGetFilters: false, - canCreateFilter: false, - canDeleteFilter: false, - canFindFileStructure: false, - canCreateDatafeed: false, - canDeleteDatafeed: false, - canGetDataFrameAnalytics: false, - canDeleteDataFrameAnalytics: false, - canCreateDataFrameAnalytics: false, - canStartStopDataFrameAnalytics: false, - canCreateMlAlerts: false, - canUseMlAlerts: false, - }, + capabilities: getDefaultMlCapabilities(), isPlatinumOrTrialLicense: false, mlFeatureEnabledInSpace: false, upgradeInProgress: false, diff --git a/x-pack/plugins/security_solution/common/search_strategy/common/index.ts b/x-pack/plugins/security_solution/common/search_strategy/common/index.ts index 095ba4ca20afc..f1a2977b27e19 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/common/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/common/index.ts @@ -4,7 +4,7 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import { IEsSearchResponse } from '../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../src/plugins/data/common'; export type { Inspect, SortField, diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.mock.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.mock.ts index 4656a200ccac6..9d98a480a6201 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.mock.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from 'src/plugins/data/public'; +import type { IEsSearchResponse } from 'src/plugins/data/public'; import { CtiEnrichment, diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.ts index 69a6841c7c14f..26bf4ce6740a9 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/cti/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from 'src/plugins/data/public'; +import type { IEsSearchResponse } from 'src/plugins/data/public'; import { EVENT_ENRICHMENT_INDICATOR_FIELD_MAP } from '../../../cti/constants'; import { Inspect } from '../../common'; import { RequestBasicOptions } from '..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/all/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/all/index.ts index 974e892a7312f..feb2f6e19e491 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/all/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/all/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostItem, HostsFields } from '../common'; import { CursorType, Direction, Inspect, Maybe, PageInfoPaginated } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/authentications/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/authentications/index.ts index a000fcf6136e5..85255f51382fa 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/authentications/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/authentications/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { UserEcs } from '../../../../ecs/user'; import { SourceEcs } from '../../../../ecs/source'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/details/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/details/index.ts index 315f6eeb69f34..e17703ff57a2a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/details/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/details/index.ts @@ -6,7 +6,7 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe, TimerangeInput } from '../../../common'; import { HostItem, HostsFields } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/first_last_seen/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/first_last_seen/index.ts index df95f859e3f37..70a7af9356d1a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/first_last_seen/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/first_last_seen/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe, Direction } from '../../../common'; import { RequestOptionsPaginated } from '../..'; import { HostsFields } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/authentications/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/authentications/index.ts index 81e1945dcd010..73729b613c38c 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/authentications/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/authentications/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; import { HostsKpiHistogramData } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/hosts/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/hosts/index.ts index 816b240223b59..ca03a9a7252b2 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/hosts/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/hosts/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; import { HostsKpiHistogramData } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/unique_ips/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/unique_ips/index.ts index 0551ceb055cf8..a51b08ad77f56 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/unique_ips/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/kpi/unique_ips/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; import { HostsKpiHistogramData } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/overview/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/overview/index.ts index 72f65e978aab9..dcf10173ccfd9 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/overview/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/overview/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe, SearchHit } from '../../../common'; import { RequestBasicOptions } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/risk_score/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/risk_score/index.ts index 39f648eab8cd0..f931694a4e229 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/risk_score/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/risk_score/index.ts @@ -6,7 +6,7 @@ */ import { FactoryQueryTypes } from '../..'; -import { +import type { IEsSearchRequest, IEsSearchResponse, } from '../../../../../../../../src/plugins/data/common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/uncommon_processes/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/uncommon_processes/index.ts index 4e885dee113d2..0b987f4bf3f42 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/uncommon_processes/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/hosts/uncommon_processes/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostEcs } from '../../../../ecs/host'; import { UserEcs } from '../../../../ecs/user'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/index.ts index 91a2956e25286..00cbdb941c11b 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/index.ts @@ -5,7 +5,7 @@ * 2.0. */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; +import type { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; import { ESQuery } from '../../typed_json'; import { HostDetailsStrategyResponse, diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram/index.ts index a229ce2281b0b..a4d68d251e5a6 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/matrix_histogram/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../src/plugins/data/common'; import { AuthenticationHit } from '../hosts'; import { Inspect, Maybe, TimerangeInput } from '../../common'; import { RequestBasicOptions } from '../'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/details/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/details/index.ts index 3843a6505a672..0495ad24a6b16 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/details/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/details/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostEcs } from '../../../../ecs/host'; import { GeoEcs } from '../../../../ecs/geo'; import { Inspect, Maybe, TotalValue, Hit, ShardsResponse } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/dns/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/dns/index.ts index e302d0bd3a5c9..bd79532e4885a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/dns/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/dns/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { CursorType, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; import { RequestOptionsPaginated } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/http/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/http/index.ts index 2edba849b1dd4..0b19f475c452b 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/http/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/http/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Maybe, CursorType, Inspect, PageInfoPaginated, GenericBuckets } from '../../../common'; import { RequestOptionsPaginated } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/dns/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/dns/index.ts index 2a4535c82bf38..8e631ffcdb746 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/dns/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/dns/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/network_events/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/network_events/index.ts index fc9e5f9b491e6..5a404c2c0c0a1 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/network_events/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/network_events/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/tls_handshakes/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/tls_handshakes/index.ts index 4da67551e8320..c772d5d0c6ceb 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/tls_handshakes/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/tls_handshakes/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_flows/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_flows/index.ts index 95b6452be4ae3..9f72eac8afad0 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_flows/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_flows/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_private_ips/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_private_ips/index.ts index 65591df10fe39..f1b06c68e3786 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_private_ips/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/kpi/unique_private_ips/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../../common'; import { RequestBasicOptions } from '../../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/overview/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/overview/index.ts index ed124d22c2e12..22325dff8e148 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/overview/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/overview/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe, SearchHit } from '../../../common'; import { RequestBasicOptions } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/tls/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/tls/index.ts index 80b6e10444bab..c4c3ece61005a 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/tls/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/tls/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { CursorType, Inspect, Maybe, PageInfoPaginated } from '../../../common'; import { RequestOptionsPaginated } from '../..'; import { FlowTargetSourceDest } from '../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_countries/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_countries/index.ts index 7860cde41f570..7de0bbbb53f50 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_countries/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_countries/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { CursorType, Inspect, Maybe, PageInfoPaginated } from '../../../common'; import { RequestOptionsPaginated } from '../..'; import { diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_n_flow/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_n_flow/index.ts index 207d24d920bb0..676daa1086921 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_n_flow/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/top_n_flow/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { GeoItem, FlowTargetSourceDest, diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/users/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/users/index.ts index 0bd6b7ed6490b..029ae4aa62335 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/users/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/network/users/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { CursorType, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; import { FlowTarget } from '../common'; import { RequestOptionsPaginated } from '../..'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_rules/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_rules/index.ts index cb6469c6209a6..98ea5ce58e13e 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_rules/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_rules/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostRulesItem, HostRulesFields } from '../common'; import { CursorType, Hit, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_tactics/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_tactics/index.ts index c55058dc6be04..13c8550e7a48d 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_tactics/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/host_tactics/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostTacticsItem, HostTacticsFields } from '../common'; import { CursorType, Hit, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/risk_score/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/risk_score/index.ts index 14c1533755056..c753dbb9e0e3b 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/risk_score/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/risk_score/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { RiskScoreItem, RiskScoreFields } from '../common'; import { CursorType, Hit, Inspect, Maybe, PageInfoPaginated, SortField } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/user_rules/index.ts b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/user_rules/index.ts index c7302c10fab3b..5329d12b62b71 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/user_rules/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/security_solution/ueba/user_rules/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { HostRulesFields, UserRulesFields } from '../common'; import { Hit, Inspect, Maybe, PageInfoPaginated, SearchHit, SortField } from '../../../common'; diff --git a/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts b/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts index 2d94a36a937d5..a66a10110f5b2 100644 --- a/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts +++ b/x-pack/plugins/security_solution/common/search_strategy/timeline/index.ts @@ -6,7 +6,7 @@ */ import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; +import type { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; import { ESQuery } from '../../typed_json'; import { TimelineEventsQueries, diff --git a/x-pack/plugins/security_solution/common/types/timeline/store.ts b/x-pack/plugins/security_solution/common/types/timeline/store.ts index 75cd44ba2b7d7..1b32f12dafd5b 100644 --- a/x-pack/plugins/security_solution/common/types/timeline/store.ts +++ b/x-pack/plugins/security_solution/common/types/timeline/store.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { ColumnHeaderOptions, ColumnId, @@ -12,8 +13,6 @@ import { TimelineExpandedDetail, TimelineTypeLiteral, } from '.'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Filter } from '../../../../../../src/plugins/data/public'; import { Direction } from '../../search_strategy'; import { DataProvider } from './data_provider'; diff --git a/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts b/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts index 378de8f0bc593..ef6db14dba896 100644 --- a/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts +++ b/x-pack/plugins/security_solution/cypress/integration/detection_rules/indicator_match_rule.spec.ts @@ -40,6 +40,7 @@ import { INDICATOR_INDEX_PATTERNS, INDICATOR_INDEX_QUERY, INDICATOR_MAPPING, + INDICATOR_PREFIX_OVERRIDE, INVESTIGATION_NOTES_MARKDOWN, INVESTIGATION_NOTES_TOGGLE, MITRE_ATTACK_DETAILS, @@ -448,6 +449,10 @@ describe('indicator match', () => { cy.get(ABOUT_DETAILS).within(() => { getDetails(SEVERITY_DETAILS).should('have.text', getNewThreatIndicatorRule().severity); getDetails(RISK_SCORE_DETAILS).should('have.text', getNewThreatIndicatorRule().riskScore); + getDetails(INDICATOR_PREFIX_OVERRIDE).should( + 'have.text', + getNewThreatIndicatorRule().threatIndicatorPath + ); getDetails(REFERENCE_URLS_DETAILS).should((details) => { expect(removeExternalLinkText(details.text())).equal(expectedUrls); }); diff --git a/x-pack/plugins/security_solution/cypress/objects/rule.ts b/x-pack/plugins/security_solution/cypress/objects/rule.ts index 0a9eecf83c7fc..1c81099d43dd5 100644 --- a/x-pack/plugins/security_solution/cypress/objects/rule.ts +++ b/x-pack/plugins/security_solution/cypress/objects/rule.ts @@ -77,6 +77,7 @@ export interface ThreatIndicatorRule extends CustomRule { indicatorIndexPattern: string[]; indicatorMappingField: string; indicatorIndexField: string; + threatIndicatorPath: string; type?: string; atomic?: string; } @@ -405,6 +406,7 @@ export const getNewThreatIndicatorRule = (): ThreatIndicatorRule => ({ atomic: 'a04ac6d98ad989312783d4fe3456c53730b212c79a426fb215708b6c6daa3de3', timeline: getIndicatorMatchTimelineTemplate(), maxSignals: 100, + threatIndicatorPath: 'threat.indicator', }); export const duplicatedRuleName = `${getNewThreatIndicatorRule().name} [Duplicate]`; diff --git a/x-pack/plugins/security_solution/cypress/screens/rule_details.ts b/x-pack/plugins/security_solution/cypress/screens/rule_details.ts index fb1fded1fe8a6..cdad6096ece1f 100644 --- a/x-pack/plugins/security_solution/cypress/screens/rule_details.ts +++ b/x-pack/plugins/security_solution/cypress/screens/rule_details.ts @@ -64,6 +64,8 @@ export const RULE_NAME_OVERRIDE_DETAILS = 'Rule name override'; export const RISK_SCORE_DETAILS = 'Risk score'; +export const INDICATOR_PREFIX_OVERRIDE = 'Indicator prefix override'; + export const RISK_SCORE_OVERRIDE_DETAILS = 'Risk score override'; export const REFERENCE_URLS_DETAILS = 'Reference URLs'; diff --git a/x-pack/plugins/security_solution/cypress/screens/security_header.ts b/x-pack/plugins/security_solution/cypress/screens/security_header.ts index d4589745f9757..4bfb03e6e5c97 100644 --- a/x-pack/plugins/security_solution/cypress/screens/security_header.ts +++ b/x-pack/plugins/security_solution/cypress/screens/security_header.ts @@ -9,7 +9,7 @@ export const ALERTS = '[data-test-subj="navigation-alerts"]'; export const BREADCRUMBS = '[data-test-subj="breadcrumbs"] a'; -export const CASES = '[data-test-subj="navigation-case"]'; +export const CASES = '[data-test-subj="navigation-cases"]'; export const HOSTS = '[data-test-subj="navigation-hosts"]'; diff --git a/x-pack/plugins/security_solution/kibana.json b/x-pack/plugins/security_solution/kibana.json index c2dfc7c923303..9f22f229b33c1 100644 --- a/x-pack/plugins/security_solution/kibana.json +++ b/x-pack/plugins/security_solution/kibana.json @@ -39,7 +39,7 @@ "lists", "home", "telemetry", - "indexPatternFieldEditor" + "dataViewFieldEditor" ], "server": true, "ui": true, diff --git a/x-pack/plugins/security_solution/public/app/deep_links/index.ts b/x-pack/plugins/security_solution/public/app/deep_links/index.ts index c8b058ef2913d..545210c788e8c 100644 --- a/x-pack/plugins/security_solution/public/app/deep_links/index.ts +++ b/x-pack/plugins/security_solution/public/app/deep_links/index.ts @@ -9,6 +9,7 @@ import { i18n } from '@kbn/i18n'; import { get } from 'lodash'; import { LicenseType } from '../../../../licensing/common/types'; +import { getCasesDeepLinks } from '../../../../cases/public'; import { SecurityPageName } from '../types'; import { AppDeepLink, AppNavLinkStatus, Capabilities } from '../../../../../../src/core/public'; import { @@ -22,7 +23,6 @@ import { INVESTIGATE, NETWORK, TIMELINES, - CASE, MANAGE, UEBA, HOST_ISOLATION_EXCEPTIONS, @@ -289,38 +289,23 @@ export const securitySolutionsDeepLinks: SecuritySolutionDeepLink[] = [ }, ], }, - { - id: SecurityPageName.case, - title: CASE, - path: CASES_PATH, - navLinkStatus: AppNavLinkStatus.visible, - features: [FEATURE.casesRead], - keywords: [ - i18n.translate('xpack.securitySolution.search.cases', { - defaultMessage: 'Cases', - }), - ], - order: 9006, - deepLinks: [ - { - id: SecurityPageName.caseCreate, - title: i18n.translate('xpack.securitySolution.search.cases.create', { - defaultMessage: 'Create New Case', - }), - path: `${CASES_PATH}/create`, - features: [FEATURE.casesCrud], + getCasesDeepLinks<SecuritySolutionDeepLink>({ + basePath: CASES_PATH, + extend: { + [SecurityPageName.case]: { + navLinkStatus: AppNavLinkStatus.visible, + order: 9006, + features: [FEATURE.casesRead], }, - { - id: SecurityPageName.caseConfigure, - title: i18n.translate('xpack.securitySolution.search.cases.configure', { - defaultMessage: 'Configure Cases', - }), - path: `${CASES_PATH}/configure`, + [SecurityPageName.caseConfigure]: { features: [FEATURE.casesCrud], isPremium: true, }, - ], - }, + [SecurityPageName.caseCreate]: { + features: [FEATURE.casesCrud], + }, + }, + }), ], }, { @@ -373,12 +358,10 @@ export function getDeepLinks( licenseType?: LicenseType, capabilities?: Capabilities ): AppDeepLink[] { - const hasPremium = isPremiumLicense(licenseType); - const filterDeepLinks = (securityDeepLinks: SecuritySolutionDeepLink[]): AppDeepLink[] => securityDeepLinks.reduce( (deepLinks: AppDeepLink[], { isPremium, features, experimentalKey, ...deepLink }) => { - if (isPremium && !hasPremium) { + if (licenseType && isPremium && !isPremiumLicense(licenseType)) { return deepLinks; } if (experimentalKey && !enableExperimental[experimentalKey]) { diff --git a/x-pack/plugins/security_solution/public/app/home/home_navigations.ts b/x-pack/plugins/security_solution/public/app/home/home_navigations.ts index 38c7ab06a52d0..de76a570312a5 100644 --- a/x-pack/plugins/security_solution/public/app/home/home_navigations.ts +++ b/x-pack/plugins/security_solution/public/app/home/home_navigations.ts @@ -91,7 +91,7 @@ export const navTabs: SecurityNav = { name: i18n.CASE, href: APP_CASES_PATH, disabled: false, - urlKey: 'case', + urlKey: 'cases', }, [SecurityPageName.administration]: { id: SecurityPageName.administration, diff --git a/x-pack/plugins/security_solution/public/app/jest.config.js b/x-pack/plugins/security_solution/public/app/jest.config.js index 452cee5e5b3a6..8674e6754aabf 100644 --- a/x-pack/plugins/security_solution/public/app/jest.config.js +++ b/x-pack/plugins/security_solution/public/app/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/app', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/public/app/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/cases/components/__mock__/form.ts b/x-pack/plugins/security_solution/public/cases/components/__mock__/form.ts deleted file mode 100644 index 3ba7aa616f1c1..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/__mock__/form.ts +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { useForm } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form'; -import { useFormData } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form_data'; - -jest.mock( - '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' -); -jest.mock( - '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form_data' -); - -export const mockFormHook = { - isSubmitted: false, - isSubmitting: false, - isValid: true, - submit: jest.fn(), - subscribe: jest.fn(), - setFieldValue: jest.fn(), - setFieldErrors: jest.fn(), - getFields: jest.fn(), - getFormData: jest.fn(), - getFieldDefaultValue: jest.fn(), - /* Returns a list of all errors in the form */ - getErrors: jest.fn(), - reset: jest.fn(), - __options: {}, - __formData$: {}, - __addField: jest.fn(), - __removeField: jest.fn(), - __validateFields: jest.fn(), - __updateFormDataAt: jest.fn(), - __readFieldConfigFromSchema: jest.fn(), -}; -// eslint-disable-next-line @typescript-eslint/no-explicit-any -export const getFormMock = (sampleData: any) => ({ - ...mockFormHook, - submit: () => - Promise.resolve({ - data: sampleData, - isValid: true, - }), - getFormData: () => sampleData, -}); - -export const useFormMock = useForm as jest.Mock; -export const useFormDataMock = useFormData as jest.Mock; diff --git a/x-pack/plugins/security_solution/public/cases/components/all_cases/index.tsx b/x-pack/plugins/security_solution/public/cases/components/all_cases/index.tsx deleted file mode 100644 index 81eeae9866b7f..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/all_cases/index.tsx +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback } from 'react'; - -import { - getCaseDetailsUrl, - getConfigureCasesUrl, - getCreateCaseUrl, - useFormatUrl, -} from '../../../common/components/link_to'; -import { SecurityPageName } from '../../../app/types'; -import { useKibana } from '../../../common/lib/kibana'; -import { APP_ID, APP_UI_ID } from '../../../../common/constants'; - -export interface AllCasesNavProps { - detailName: string; - search?: string; - subCaseId?: string; -} - -interface AllCasesProps { - userCanCrud: boolean; -} -export const AllCases = React.memo<AllCasesProps>(({ userCanCrud }) => { - const { - cases: casesUi, - application: { navigateToApp }, - } = useKibana().services; - const { formatUrl, search: urlSearch } = useFormatUrl(SecurityPageName.case); - - const goToCreateCase = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCreateCaseUrl(urlSearch), - }); - }, - [navigateToApp, urlSearch] - ); - - const goToCaseConfigure = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getConfigureCasesUrl(urlSearch), - }); - }, - [navigateToApp, urlSearch] - ); - - return casesUi.getAllCases({ - caseDetailsNavigation: { - href: ({ detailName, subCaseId }: AllCasesNavProps) => { - return formatUrl(getCaseDetailsUrl({ id: detailName, subCaseId })); - }, - onClick: async ({ detailName, subCaseId, search }: AllCasesNavProps) => { - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id: detailName, search, subCaseId }), - }); - }, - }, - configureCasesNavigation: { - href: formatUrl(getConfigureCasesUrl()), - onClick: goToCaseConfigure, - }, - createCaseNavigation: { - href: formatUrl(getCreateCaseUrl()), - onClick: goToCreateCase, - }, - userCanCrud, - owner: [APP_ID], - }); -}); - -AllCases.displayName = 'AllCases'; diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx deleted file mode 100644 index 0a0caa40a8783..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/callout.test.tsx +++ /dev/null @@ -1,90 +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 { mount } from 'enzyme'; - -import { CallOut, CallOutProps } from './callout'; - -describe('Callout', () => { - const defaultProps: CallOutProps = { - id: 'md5-hex', - type: 'primary', - title: 'a tittle', - messages: [ - { - id: 'generic-error', - title: 'message-one', - description: <p>{'error'}</p>, - }, - ], - showCallOut: true, - handleDismissCallout: jest.fn(), - }; - - beforeEach(() => { - jest.clearAllMocks(); - }); - - it('It renders the callout', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - expect(wrapper.find(`[data-test-subj="case-callout-md5-hex"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="callout-messages-md5-hex"]`).exists()).toBeTruthy(); - expect(wrapper.find(`[data-test-subj="callout-dismiss-md5-hex"]`).exists()).toBeTruthy(); - }); - - it('hides the callout', () => { - const wrapper = mount(<CallOut {...defaultProps} showCallOut={false} />); - expect(wrapper.find(`[data-test-subj="case-callout-md5-hex"]`).exists()).toBeFalsy(); - }); - - it('does not shows any messages when the list is empty', () => { - const wrapper = mount(<CallOut {...defaultProps} messages={[]} />); - expect(wrapper.find(`[data-test-subj="callout-messages-md5-hex"]`).exists()).toBeFalsy(); - }); - - it('transform the button color correctly - primary', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - const className = - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--primary')).toBeTruthy(); - }); - - it('transform the button color correctly - success', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'success'} />); - const className = - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--secondary')).toBeTruthy(); - }); - - it('transform the button color correctly - warning', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'warning'} />); - const className = - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--warning')).toBeTruthy(); - }); - - it('transform the button color correctly - danger', () => { - const wrapper = mount(<CallOut {...defaultProps} type={'danger'} />); - const className = - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).first().prop('className') ?? - ''; - expect(className.includes('euiButton--danger')).toBeTruthy(); - }); - - it('dismiss the callout correctly', () => { - const wrapper = mount(<CallOut {...defaultProps} />); - expect(wrapper.find(`[data-test-subj="callout-dismiss-md5-hex"]`).exists()).toBeTruthy(); - wrapper.find(`button[data-test-subj="callout-dismiss-md5-hex"]`).simulate('click'); - wrapper.update(); - - expect(defaultProps.handleDismissCallout).toHaveBeenCalledWith('md5-hex', 'primary'); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx deleted file mode 100644 index f00fa84c6ff0a..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/callout.tsx +++ /dev/null @@ -1,51 +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 { EuiCallOut, EuiButton, EuiDescriptionList } from '@elastic/eui'; -import { isEmpty } from 'lodash/fp'; -import React, { memo, useCallback } from 'react'; - -import { ErrorMessage } from './types'; -import * as i18n from './translations'; - -export interface CallOutProps { - id: string; - type: NonNullable<ErrorMessage['errorType']>; - title: string; - messages: ErrorMessage[]; - showCallOut: boolean; - handleDismissCallout: (id: string, type: NonNullable<ErrorMessage['errorType']>) => void; -} - -const CallOutComponent = ({ - id, - type, - title, - messages, - showCallOut, - handleDismissCallout, -}: CallOutProps) => { - const handleCallOut = useCallback( - () => handleDismissCallout(id, type), - [handleDismissCallout, id, type] - ); - - return showCallOut && !isEmpty(messages) ? ( - <EuiCallOut title={title} color={type} iconType="gear" data-test-subj={`case-callout-${id}`}> - <EuiDescriptionList data-test-subj={`callout-messages-${id}`} listItems={messages} /> - <EuiButton - data-test-subj={`callout-dismiss-${id}`} - color={type === 'success' ? 'secondary' : type} - onClick={handleCallOut} - > - {i18n.DISMISS_CALLOUT} - </EuiButton> - </EuiCallOut> - ) : null; -}; - -export const CallOut = memo(CallOutComponent); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/helpers.test.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/helpers.test.tsx deleted file mode 100644 index b5b92a3374874..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/helpers.test.tsx +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import md5 from 'md5'; -import { createCalloutId } from './helpers'; - -describe('createCalloutId', () => { - it('creates id correctly with one id', () => { - const digest = md5('one'); - const id = createCalloutId(['one']); - expect(id).toBe(digest); - }); - - it('creates id correctly with multiples ids', () => { - const digest = md5('one|two|three'); - const id = createCalloutId(['one', 'two', 'three']); - expect(id).toBe(digest); - }); - - it('creates id correctly with multiples ids and delimiter', () => { - const digest = md5('one,two,three'); - const id = createCalloutId(['one', 'two', 'three'], ','); - expect(id).toBe(digest); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/index.test.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/index.test.tsx deleted file mode 100644 index 5d1daf0c2f7bb..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/index.test.tsx +++ /dev/null @@ -1,217 +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 { mount } from 'enzyme'; - -import { useMessagesStorage } from '../../../common/containers/local_storage/use_messages_storage'; -import { TestProviders } from '../../../common/mock'; -import { createCalloutId } from './helpers'; -import { CaseCallOut, CaseCallOutProps } from '.'; - -jest.mock('../../../common/containers/local_storage/use_messages_storage'); - -const useSecurityLocalStorageMock = useMessagesStorage as jest.Mock; -const securityLocalStorageMock = { - getMessages: jest.fn(() => []), - addMessage: jest.fn(), -}; - -describe('CaseCallOut ', () => { - beforeEach(() => { - jest.clearAllMocks(); - useSecurityLocalStorageMock.mockImplementation(() => securityLocalStorageMock); - }); - - it('renders a callout correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - { id: 'message-two', title: 'title', description: <p>{'for real'}</p> }, - ], - }; - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one', 'message-two']); - expect(wrapper.find(`[data-test-subj="callout-messages-${id}"]`).last().exists()).toBeTruthy(); - }); - - it('groups the messages correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'danger', - }, - { id: 'message-two', title: 'title two', description: <p>{'for real'}</p> }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const idDanger = createCalloutId(['message-one']); - const idPrimary = createCalloutId(['message-two']); - - expect( - wrapper.find(`[data-test-subj="case-callout-${idPrimary}"]`).last().exists() - ).toBeTruthy(); - expect( - wrapper.find(`[data-test-subj="case-callout-${idDanger}"]`).last().exists() - ).toBeTruthy(); - }); - - it('dismisses the callout correctly', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - - expect(wrapper.find(`[data-test-subj="case-callout-${id}"]`).last().exists()).toBeTruthy(); - wrapper.find(`[data-test-subj="callout-dismiss-${id}"]`).last().simulate('click'); - expect(wrapper.find(`[data-test-subj="case-callout-${id}"]`).exists()).toBeFalsy(); - }); - - it('persist the callout of type primary when dismissed', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - expect(securityLocalStorageMock.getMessages).toHaveBeenCalledWith('case'); - wrapper.find(`[data-test-subj="callout-dismiss-${id}"]`).last().simulate('click'); - expect(securityLocalStorageMock.addMessage).toHaveBeenCalledWith('case', id); - }); - - it('do not show the callout if is in the localStorage', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { id: 'message-one', title: 'title', description: <p>{'we have two messages'}</p> }, - ], - }; - - const id = createCalloutId(['message-one']); - - useSecurityLocalStorageMock.mockImplementation(() => ({ - ...securityLocalStorageMock, - getMessages: jest.fn(() => [id]), - })); - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - expect(wrapper.find(`[data-test-subj="case-callout-${id}"]`).last().exists()).toBeFalsy(); - }); - - it('do not persist a callout of type danger', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'danger', - }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="callout-dismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); - - it('do not persist a callout of type warning', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'warning', - }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="callout-dismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); - - it('do not persist a callout of type success', () => { - const props: CaseCallOutProps = { - title: 'hey title', - messages: [ - { - id: 'message-one', - title: 'title one', - description: <p>{'we have two messages'}</p>, - errorType: 'success', - }, - ], - }; - - const wrapper = mount( - <TestProviders> - <CaseCallOut {...props} /> - </TestProviders> - ); - - const id = createCalloutId(['message-one']); - wrapper.find(`button[data-test-subj="callout-dismiss-${id}"]`).simulate('click'); - wrapper.update(); - expect(securityLocalStorageMock.addMessage).not.toHaveBeenCalled(); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/index.tsx b/x-pack/plugins/security_solution/public/cases/components/callout/index.tsx deleted file mode 100644 index 2852a085cd182..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/index.tsx +++ /dev/null @@ -1,103 +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 { EuiSpacer } from '@elastic/eui'; -import React, { memo, useCallback, useState, useMemo } from 'react'; - -import { useMessagesStorage } from '../../../common/containers/local_storage/use_messages_storage'; -import { CallOut } from './callout'; -import { ErrorMessage } from './types'; -import { createCalloutId } from './helpers'; - -export * from './helpers'; - -export interface CaseCallOutProps { - title: string; - messages?: ErrorMessage[]; -} - -type GroupByTypeMessages = { - [key in NonNullable<ErrorMessage['errorType']>]: { - messagesId: string[]; - messages: ErrorMessage[]; - }; -}; - -interface CalloutVisibility { - [index: string]: boolean; -} - -const CaseCallOutComponent = ({ title, messages = [] }: CaseCallOutProps) => { - const { getMessages, addMessage } = useMessagesStorage(); - - const caseMessages = useMemo(() => getMessages('case'), [getMessages]); - const dismissedCallouts = useMemo( - () => - caseMessages.reduce<CalloutVisibility>( - (acc, id) => ({ - ...acc, - [id]: false, - }), - {} - ), - [caseMessages] - ); - - const [calloutVisibility, setCalloutVisibility] = useState(dismissedCallouts); - const handleCallOut = useCallback( - (id, type) => { - setCalloutVisibility((prevState) => ({ ...prevState, [id]: false })); - if (type === 'primary') { - addMessage('case', id); - } - }, - [setCalloutVisibility, addMessage] - ); - - const groupedByTypeErrorMessages = useMemo( - () => - messages.reduce<GroupByTypeMessages>( - (acc: GroupByTypeMessages, currentMessage: ErrorMessage) => { - const type = currentMessage.errorType == null ? 'primary' : currentMessage.errorType; - return { - ...acc, - [type]: { - messagesId: [...(acc[type]?.messagesId ?? []), currentMessage.id], - messages: [...(acc[type]?.messages ?? []), currentMessage], - }, - }; - }, - {} as GroupByTypeMessages - ), - [messages] - ); - - return ( - <> - {(Object.keys(groupedByTypeErrorMessages) as Array<keyof ErrorMessage['errorType']>).map( - (type: NonNullable<ErrorMessage['errorType']>) => { - const id = createCalloutId(groupedByTypeErrorMessages[type].messagesId); - return ( - <React.Fragment key={id}> - <CallOut - id={id} - type={type} - title={title} - messages={groupedByTypeErrorMessages[type].messages} - showCallOut={calloutVisibility[id] ?? true} - handleDismissCallout={handleCallOut} - /> - <EuiSpacer /> - </React.Fragment> - ); - } - )} - </> - ); -}; - -export const CaseCallOut = memo(CaseCallOutComponent); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/translations.ts b/x-pack/plugins/security_solution/public/cases/components/callout/translations.ts deleted file mode 100644 index 617995cc366b0..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/translations.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; - -export const DISMISS_CALLOUT = i18n.translate( - 'xpack.securitySolution.cases.dismissErrorsPushServiceCallOutTitle', - { - defaultMessage: 'Dismiss', - } -); diff --git a/x-pack/plugins/security_solution/public/cases/components/callout/types.ts b/x-pack/plugins/security_solution/public/cases/components/callout/types.ts deleted file mode 100644 index 84d79ee391b8f..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/callout/types.ts +++ /dev/null @@ -1,13 +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. - */ - -export interface ErrorMessage { - id: string; - title: string; - description: JSX.Element; - errorType?: 'primary' | 'success' | 'warning' | 'danger'; -} diff --git a/x-pack/plugins/security_solution/public/cases/components/case_header_page/index.tsx b/x-pack/plugins/security_solution/public/cases/components/case_header_page/index.tsx deleted file mode 100644 index c1eb11ea5182d..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/case_header_page/index.tsx +++ /dev/null @@ -1,14 +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 { HeaderPage, HeaderPageProps } from '../../../common/components/header_page'; - -const CaseHeaderPageComponent: React.FC<HeaderPageProps> = (props) => <HeaderPage {...props} />; - -export const CaseHeaderPage = React.memo(CaseHeaderPageComponent); diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx b/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx deleted file mode 100644 index 06fce07399b6e..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/index.tsx +++ /dev/null @@ -1,242 +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, { useCallback, useRef } from 'react'; -import { useDispatch } from 'react-redux'; -import { - getCaseDetailsUrl, - getCaseDetailsUrlWithCommentId, - getCaseUrl, - getConfigureCasesUrl, - getRuleDetailsUrl, - useFormatUrl, -} from '../../../common/components/link_to'; -import { Case, CaseViewRefreshPropInterface } from '../../../../../cases/common'; -import { TimelineId } from '../../../../common/types/timeline'; -import { SecurityPageName } from '../../../app/types'; -import { useKibana } from '../../../common/lib/kibana'; -import { APP_UI_ID } from '../../../../common/constants'; -import { timelineActions } from '../../../timelines/store/timeline'; -import { useSourcererDataView } from '../../../common/containers/sourcerer'; -import { SourcererScopeName } from '../../../common/store/sourcerer/model'; -import { DetailsPanel } from '../../../timelines/components/side_panel'; -import { InvestigateInTimelineAction } from '../../../detections/components/alerts_table/timeline_actions/investigate_in_timeline_action'; -import { useFetchAlertData } from './helpers'; -import { SEND_ALERT_TO_TIMELINE } from './translations'; -import { useInsertTimeline } from '../use_insert_timeline'; -import * as timelineMarkdownPlugin from '../../../common/components/markdown_editor/plugins/timeline'; -import { CaseDetailsRefreshContext } from '../../../common/components/endpoint/host_isolation/endpoint_host_isolation_cases_context'; -import { getEndpointDetailsPath } from '../../../management/common/routing'; - -interface Props { - caseId: string; - subCaseId?: string; - userCanCrud: boolean; - onCaseDataSuccess: (data: Case) => void; -} - -export interface OnUpdateFields { - key: keyof Case; - value: Case[keyof Case]; - onSuccess?: () => void; - onError?: () => void; -} - -export interface CaseProps extends Props { - fetchCase: () => void; - caseData: Case; - updateCase: (newCase: Case) => void; -} - -const TimelineDetailsPanel = () => { - const { browserFields, docValueFields, runtimeMappings } = useSourcererDataView( - SourcererScopeName.detections - ); - return ( - <DetailsPanel - browserFields={browserFields} - docValueFields={docValueFields} - entityType="events" - isFlyoutView - runtimeMappings={runtimeMappings} - timelineId={TimelineId.casePage} - /> - ); -}; - -const InvestigateInTimelineActionComponent = (alertIds: string[]) => { - return ( - <InvestigateInTimelineAction - ariaLabel={SEND_ALERT_TO_TIMELINE} - alertIds={alertIds} - key="investigate-in-timeline" - ecsRowData={null} - /> - ); -}; - -export const CaseView = React.memo( - ({ caseId, subCaseId, userCanCrud, onCaseDataSuccess }: Props) => { - const { - cases: casesUi, - application: { navigateToApp }, - } = useKibana().services; - const dispatch = useDispatch(); - const { formatUrl, search } = useFormatUrl(SecurityPageName.case); - const { formatUrl: detectionsFormatUrl, search: detectionsUrlSearch } = useFormatUrl( - SecurityPageName.rules - ); - - const allCasesLink = getCaseUrl(search); - const formattedAllCasesLink = formatUrl(allCasesLink); - const configureCasesHref = formatUrl(getConfigureCasesUrl()); - - const caseDetailsLink = formatUrl(getCaseDetailsUrl({ id: caseId }), { absolute: true }); - const getCaseDetailHrefWithCommentId = (commentId: string) => - formatUrl(getCaseDetailsUrlWithCommentId({ id: caseId, commentId, subCaseId }), { - absolute: true, - }); - - const getDetectionsRuleDetailsHref = useCallback( - (ruleId) => detectionsFormatUrl(getRuleDetailsUrl(ruleId ?? '', detectionsUrlSearch)), - [detectionsFormatUrl, detectionsUrlSearch] - ); - - const showAlertDetails = useCallback( - (alertId: string, index: string) => { - dispatch( - timelineActions.toggleDetailPanel({ - panelView: 'eventDetail', - timelineId: TimelineId.casePage, - params: { - eventId: alertId, - indexName: index, - }, - }) - ); - }, - [dispatch] - ); - - const endpointDetailsHref = (endpointId: string) => - formatUrl( - getEndpointDetailsPath({ - name: 'endpointActivityLog', - selected_endpoint: endpointId, - }) - ); - - const onComponentInitialized = useCallback(() => { - dispatch( - timelineActions.createTimeline({ - id: TimelineId.casePage, - columns: [], - dataViewId: '', - indexNames: [], - expandedDetail: {}, - show: false, - }) - ); - }, [dispatch]); - - const refreshRef = useRef<CaseViewRefreshPropInterface>(null); - - return ( - <CaseDetailsRefreshContext.Provider value={refreshRef}> - {casesUi.getCaseView({ - refreshRef, - allCasesNavigation: { - href: formattedAllCasesLink, - onClick: async (e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: allCasesLink, - }); - }, - }, - caseDetailsNavigation: { - href: caseDetailsLink, - onClick: async (e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id: caseId }), - }); - }, - }, - caseId, - configureCasesNavigation: { - href: configureCasesHref, - onClick: async (e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getConfigureCasesUrl(search), - }); - }, - }, - getCaseDetailHrefWithCommentId, - onCaseDataSuccess, - onComponentInitialized, - actionsNavigation: { - href: endpointDetailsHref, - onClick: (endpointId: string, e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - path: getEndpointDetailsPath({ - name: 'endpointActivityLog', - selected_endpoint: endpointId, - }), - }); - }, - }, - ruleDetailsNavigation: { - href: getDetectionsRuleDetailsHref, - onClick: async (ruleId: string | null | undefined, e) => { - if (e) { - e.preventDefault(); - } - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.rules, - path: getRuleDetailsUrl(ruleId ?? ''), - }); - }, - }, - showAlertDetails, - subCaseId, - timelineIntegration: { - editor_plugins: { - parsingPlugin: timelineMarkdownPlugin.parser, - processingPluginRenderer: timelineMarkdownPlugin.renderer, - uiPlugin: timelineMarkdownPlugin.plugin, - }, - hooks: { - useInsertTimeline, - }, - ui: { - renderInvestigateInTimelineActionComponent: InvestigateInTimelineActionComponent, - renderTimelineDetailsPanel: TimelineDetailsPanel, - }, - }, - useFetchAlertData, - userCanCrud, - })} - </CaseDetailsRefreshContext.Provider> - ); - } -); - -CaseView.displayName = 'CaseView'; diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/translations.ts b/x-pack/plugins/security_solution/public/cases/components/case_view/translations.ts deleted file mode 100644 index d7b66bbac38df..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/translations.ts +++ /dev/null @@ -1,14 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; -export const SEND_ALERT_TO_TIMELINE = i18n.translate( - 'xpack.securitySolution.cases.caseView.sendAlertToTimelineTooltip', - { - defaultMessage: 'Investigate in timeline', - } -); diff --git a/x-pack/plugins/security_solution/public/cases/components/create/index.test.tsx b/x-pack/plugins/security_solution/public/cases/components/create/index.test.tsx deleted file mode 100644 index 2ce5f2904cb3b..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/create/index.test.tsx +++ /dev/null @@ -1,128 +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 { mount } from 'enzyme'; -import { act, waitFor } from '@testing-library/react'; -import { noop } from 'lodash/fp'; - -import { TestProviders } from '../../../common/mock'; -import { useInsertTimeline } from '../use_insert_timeline'; -import { Create } from '.'; -import { useKibana } from '../../../common/lib/kibana'; -import { Case } from '../../../../../cases/public/containers/types'; -import { basicCase } from '../../../../../cases/public/containers/mock'; -import { APP_ID, APP_UI_ID, SecurityPageName } from '../../../../common/constants'; -import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; - -jest.mock('../use_insert_timeline'); -jest.mock('../../../common/lib/kibana'); -jest.mock('../../../common/components/navigation/use_get_url_search'); - -const useInsertTimelineMock = useInsertTimeline as jest.Mock; - -describe('Create case', () => { - const mockCreateCase = jest.fn(); - const mockNavigateToApp = jest.fn(); - const mockRes = 'coolstring'; - beforeEach(() => { - jest.resetAllMocks(); - (useGetUrlSearch as jest.Mock).mockReturnValue(mockRes); - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: mockCreateCase, - }, - application: { navigateToApp: mockNavigateToApp }, - }, - }); - }); - - it('it renders', () => { - mount( - <TestProviders> - <Create /> - </TestProviders> - ); - - expect(mockCreateCase).toHaveBeenCalled(); - expect(mockCreateCase.mock.calls[0][0].owner).toEqual([APP_ID]); - }); - - it('should redirect to all cases on cancel click', async () => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: ({ onCancel }: { onCancel: () => Promise<void> }) => { - onCancel(); - }, - }, - application: { navigateToApp: mockNavigateToApp }, - }, - }); - mount( - <TestProviders> - <Create /> - </TestProviders> - ); - - await waitFor(() => - expect(mockNavigateToApp).toHaveBeenCalledWith(APP_UI_ID, { - path: `?${mockRes}`, - deepLinkId: SecurityPageName.case, - }) - ); - }); - - it('should redirect to new case when posting the case', async () => { - (useKibana as jest.Mock).mockReturnValue({ - services: { - cases: { - getCreateCase: ({ onSuccess }: { onSuccess: (theCase: Case) => Promise<void> }) => { - onSuccess(basicCase); - }, - }, - application: { navigateToApp: mockNavigateToApp }, - }, - }); - mount( - <TestProviders> - <Create /> - </TestProviders> - ); - - await waitFor(() => - expect(mockNavigateToApp).toHaveBeenNthCalledWith(1, APP_UI_ID, { - path: `/basic-case-id?${mockRes}`, - deepLinkId: SecurityPageName.case, - }) - ); - }); - - it.skip('it should insert a timeline', async () => { - let attachTimeline = noop; - useInsertTimelineMock.mockImplementation((value, onTimelineAttached) => { - attachTimeline = onTimelineAttached; - }); - - const wrapper = mount( - <TestProviders> - <Create /> - </TestProviders> - ); - - act(() => { - attachTimeline('[title](url)'); - }); - - await waitFor(() => { - expect(wrapper.find(`[data-test-subj="caseDescription"] textarea`).text()).toBe( - '[title](url)' - ); - }); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/components/create/index.tsx b/x-pack/plugins/security_solution/public/cases/components/create/index.tsx deleted file mode 100644 index 6e6a536cd8437..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/create/index.tsx +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React, { useCallback } from 'react'; - -import { getCaseDetailsUrl, getCaseUrl } from '../../../common/components/link_to'; -import { useKibana } from '../../../common/lib/kibana'; -import * as timelineMarkdownPlugin from '../../../common/components/markdown_editor/plugins/timeline'; -import { useInsertTimeline } from '../use_insert_timeline'; -import { APP_ID, APP_UI_ID } from '../../../../common/constants'; -import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; -import { navTabs } from '../../../app/home/home_navigations'; -import { SecurityPageName } from '../../../app/types'; - -export const Create = React.memo(() => { - const { - cases, - application: { navigateToApp }, - } = useKibana().services; - const search = useGetUrlSearch(navTabs.case); - const onSuccess = useCallback( - async ({ id }) => - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id, search }), - }), - [navigateToApp, search] - ); - const handleSetIsCancel = useCallback( - async () => - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseUrl(search), - }), - [navigateToApp, search] - ); - - return cases.getCreateCase({ - onCancel: handleSetIsCancel, - onSuccess, - timelineIntegration: { - editor_plugins: { - parsingPlugin: timelineMarkdownPlugin.parser, - processingPluginRenderer: timelineMarkdownPlugin.renderer, - uiPlugin: timelineMarkdownPlugin.plugin, - }, - hooks: { - useInsertTimeline, - }, - }, - owner: [APP_ID], - }); -}); - -Create.displayName = 'Create'; diff --git a/x-pack/plugins/security_solution/public/cases/components/wrappers/index.tsx b/x-pack/plugins/security_solution/public/cases/components/wrappers/index.tsx deleted file mode 100644 index 477fb77d98ee8..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/components/wrappers/index.tsx +++ /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 styled from 'styled-components'; - -export const WhitePageWrapper = styled.div` - background-color: ${({ theme }) => theme.eui.euiColorEmptyShade}; - border-top: ${({ theme }) => theme.eui.euiBorderThin}; - flex: 1 1 auto; -`; - -export const SectionWrapper = styled.div` - box-sizing: content-box; - margin: 0 auto; - max-width: 1175px; - width: 100%; -`; diff --git a/x-pack/plugins/security_solution/public/cases/jest.config.js b/x-pack/plugins/security_solution/public/cases/jest.config.js index 4b0a49fd65aff..9089585ce8687 100644 --- a/x-pack/plugins/security_solution/public/cases/jest.config.js +++ b/x-pack/plugins/security_solution/public/cases/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/cases', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/public/cases/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/cases/pages/case.tsx b/x-pack/plugins/security_solution/public/cases/pages/case.tsx deleted file mode 100644 index ad0176bda6905..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/case.tsx +++ /dev/null @@ -1,33 +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 { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { useGetUserCasesPermissions } from '../../common/lib/kibana'; -import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { AllCases } from '../components/all_cases'; - -import { CaseFeatureNoPermissions } from './feature_no_permissions'; -import { SecurityPageName } from '../../app/types'; - -export const CasesPage = React.memo(() => { - const userPermissions = useGetUserCasesPermissions(); - - return userPermissions == null || userPermissions?.read ? ( - <> - <SecuritySolutionPageWrapper> - <AllCases userCanCrud={userPermissions?.crud ?? false} /> - </SecuritySolutionPageWrapper> - <SpyRoute pageName={SecurityPageName.case} /> - </> - ) : ( - <CaseFeatureNoPermissions /> - ); -}); - -CasesPage.displayName = 'CasesPage'; diff --git a/x-pack/plugins/security_solution/public/cases/pages/case_details.tsx b/x-pack/plugins/security_solution/public/cases/pages/case_details.tsx deleted file mode 100644 index 6f35209ee1c9f..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/case_details.tsx +++ /dev/null @@ -1,70 +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, { useCallback, useEffect, useState } from 'react'; -import { useParams } from 'react-router-dom'; - -import { SecurityPageName } from '../../app/types'; -import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { getCaseUrl } from '../../common/components/link_to'; -import { navTabs } from '../../app/home/home_navigations'; -import { CaseView } from '../components/case_view'; -import { APP_UI_ID } from '../../../common/constants'; -import { Case } from '../../../../cases/common'; - -export const CaseDetailsPage = React.memo(() => { - const { - application: { navigateToApp }, - } = useKibana().services; - const userPermissions = useGetUserCasesPermissions(); - const { detailName: caseId, subCaseId } = useParams<{ - detailName?: string; - subCaseId?: string; - }>(); - const search = useGetUrlSearch(navTabs.case); - - useEffect(() => { - if (userPermissions != null && !userPermissions.read) { - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseUrl(search), - }); - } - }, [userPermissions, navigateToApp, search]); - - const [spyState, setSpyState] = useState<{ caseTitle: string | undefined }>({ - caseTitle: undefined, - }); - - const onCaseDataSuccess = useCallback( - (data: Case) => { - if (spyState.caseTitle === undefined || spyState.caseTitle !== data.title) { - setSpyState({ caseTitle: data.title }); - } - }, - [spyState.caseTitle] - ); - - return caseId != null ? ( - <> - <SecuritySolutionPageWrapper noPadding> - <CaseView - caseId={caseId} - subCaseId={subCaseId} - userCanCrud={userPermissions?.crud ?? false} - onCaseDataSuccess={onCaseDataSuccess} - /> - </SecuritySolutionPageWrapper> - <SpyRoute state={spyState} pageName={SecurityPageName.case} /> - </> - ) : null; -}); - -CaseDetailsPage.displayName = 'CaseDetailsPage'; diff --git a/x-pack/plugins/security_solution/public/cases/pages/configure_cases.tsx b/x-pack/plugins/security_solution/public/cases/pages/configure_cases.tsx deleted file mode 100644 index b5feb3dc698b7..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/configure_cases.tsx +++ /dev/null @@ -1,73 +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, { useEffect, useMemo } from 'react'; -import styled from 'styled-components'; - -import { SecurityPageName } from '../../app/types'; -import { getCaseUrl } from '../../common/components/link_to'; -import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; -import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { navTabs } from '../../app/home/home_navigations'; -import { CaseHeaderPage } from '../components/case_header_page'; -import { WhitePageWrapper, SectionWrapper } from '../components/wrappers'; -import * as i18n from './translations'; -import { APP_ID, APP_UI_ID } from '../../../common/constants'; - -const ConfigureCasesPageComponent: React.FC = () => { - const { - application: { navigateToApp }, - cases, - } = useKibana().services; - const userPermissions = useGetUserCasesPermissions(); - const search = useGetUrlSearch(navTabs.case); - - const backOptions = useMemo( - () => ({ - path: getCaseUrl(search), - text: i18n.BACK_TO_ALL, - pageId: SecurityPageName.case, - }), - [search] - ); - - useEffect(() => { - if (userPermissions != null && !userPermissions.read) { - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseUrl(search), - }); - } - }, [navigateToApp, userPermissions, search]); - - const HeaderWrapper = styled.div` - padding-top: ${({ theme }) => theme.eui.paddingSizes.l}; - `; - - return ( - <> - <SecuritySolutionPageWrapper noPadding> - <SectionWrapper> - <HeaderWrapper> - <CaseHeaderPage title={i18n.CONFIGURE_CASES_PAGE_TITLE} backOptions={backOptions} /> - </HeaderWrapper> - </SectionWrapper> - <WhitePageWrapper> - {cases.getConfigureCases({ - userCanCrud: userPermissions?.crud ?? false, - owner: [APP_ID], - })} - </WhitePageWrapper> - </SecuritySolutionPageWrapper> - <SpyRoute pageName={SecurityPageName.case} /> - </> - ); -}; - -export const ConfigureCasesPage = React.memo(ConfigureCasesPageComponent); diff --git a/x-pack/plugins/security_solution/public/cases/pages/create_case.tsx b/x-pack/plugins/security_solution/public/cases/pages/create_case.tsx deleted file mode 100644 index 2d7d83cb1b50c..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/create_case.tsx +++ /dev/null @@ -1,58 +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, { useEffect, useMemo } from 'react'; - -import { SecurityPageName } from '../../app/types'; -import { getCaseUrl } from '../../common/components/link_to'; -import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; -import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { navTabs } from '../../app/home/home_navigations'; -import { CaseHeaderPage } from '../components/case_header_page'; -import { Create } from '../components/create'; -import * as i18n from './translations'; -import { APP_UI_ID } from '../../../common/constants'; - -export const CreateCasePage = React.memo(() => { - const userPermissions = useGetUserCasesPermissions(); - const search = useGetUrlSearch(navTabs.case); - const { - application: { navigateToApp }, - } = useKibana().services; - - const backOptions = useMemo( - () => ({ - path: getCaseUrl(search), - text: i18n.BACK_TO_ALL, - pageId: SecurityPageName.case, - }), - [search] - ); - - useEffect(() => { - if (userPermissions != null && !userPermissions.crud) { - navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseUrl(search), - }); - } - }, [userPermissions, navigateToApp, search]); - - return ( - <> - <SecuritySolutionPageWrapper> - <CaseHeaderPage backOptions={backOptions} title={i18n.CREATE_TITLE} border /> - <Create /> - </SecuritySolutionPageWrapper> - <SpyRoute pageName={SecurityPageName.case} /> - </> - ); -}); - -CreateCasePage.displayName = 'CreateCasePage'; diff --git a/x-pack/plugins/security_solution/public/cases/pages/feature_no_permissions.tsx b/x-pack/plugins/security_solution/public/cases/pages/feature_no_permissions.tsx deleted file mode 100644 index 9975db3d8b6fb..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/feature_no_permissions.tsx +++ /dev/null @@ -1,38 +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, { useMemo } from 'react'; - -import { EmptyPage } from '../../common/components/empty_page'; -import * as i18n from './translations'; -import { useKibana } from '../../common/lib/kibana'; - -export const CaseFeatureNoPermissions = React.memo(() => { - const docLinks = useKibana().services.docLinks; - const actions = useMemo( - () => ({ - feature: { - icon: 'documents', - label: i18n.GO_TO_DOCUMENTATION, - url: `${docLinks.links.siem.gettingStarted}`, - target: '_blank', - }, - }), - [docLinks] - ); - - return ( - <EmptyPage - actions={actions} - message={i18n.CASES_FEATURE_NO_PERMISSIONS_MSG} - data-test-subj="no_feature_permissions" - title={i18n.CASES_FEATURE_NO_PERMISSIONS_TITLE} - /> - ); -}); - -CaseFeatureNoPermissions.displayName = 'CaseFeatureNoPermissions'; diff --git a/x-pack/plugins/security_solution/public/cases/pages/index.test.tsx b/x-pack/plugins/security_solution/public/cases/pages/index.test.tsx deleted file mode 100644 index 0d12d63fdc244..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/index.test.tsx +++ /dev/null @@ -1,91 +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 { mount } from 'enzyme'; -import { BrowserRouter as Router } from 'react-router-dom'; - -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { TestProviders } from '../../common/mock'; -import { Case } from '.'; - -const useKibanaMock = useKibana as jest.Mocked<typeof useKibana>; -jest.mock('../../common/lib/kibana'); - -const mockedSetBadge = jest.fn(); - -describe('CaseContainerComponent', () => { - beforeEach(() => { - jest.clearAllMocks(); - useKibanaMock().services.chrome.setBadge = mockedSetBadge; - }); - - it('does not display the readonly glasses badge when the user has write permissions', () => { - (useGetUserCasesPermissions as jest.Mock).mockReturnValue({ - crud: true, - read: false, - }); - - mount( - <Router> - <TestProviders> - <Case /> - </TestProviders> - </Router> - ); - - expect(mockedSetBadge).not.toBeCalled(); - }); - - it('does not display the readonly glasses badge when the user has neither write nor read permissions', () => { - (useGetUserCasesPermissions as jest.Mock).mockReturnValue({ - crud: false, - read: false, - }); - - mount( - <Router> - <TestProviders> - <Case /> - </TestProviders> - </Router> - ); - - expect(mockedSetBadge).not.toBeCalled(); - }); - - it('does not display the readonly glasses badge when the user has null permissions', () => { - (useGetUserCasesPermissions as jest.Mock).mockReturnValue(null); - - mount( - <Router> - <TestProviders> - <Case /> - </TestProviders> - </Router> - ); - - expect(mockedSetBadge).not.toBeCalled(); - }); - - it('displays the readonly glasses badge read permissions but not write', () => { - (useGetUserCasesPermissions as jest.Mock).mockReturnValue({ - crud: false, - read: true, - }); - - mount( - <Router> - <TestProviders> - <Case /> - </TestProviders> - </Router> - ); - - expect(mockedSetBadge).toBeCalledTimes(1); - }); -}); diff --git a/x-pack/plugins/security_solution/public/cases/pages/index.tsx b/x-pack/plugins/security_solution/public/cases/pages/index.tsx index 0faff93bb708c..751e8fde530ba 100644 --- a/x-pack/plugins/security_solution/public/cases/pages/index.tsx +++ b/x-pack/plugins/security_solution/public/cases/pages/index.tsx @@ -5,69 +5,165 @@ * 2.0. */ -import React, { useEffect } from 'react'; -import { Route, Switch } from 'react-router-dom'; +import React, { useCallback, useRef } from 'react'; +import { useDispatch } from 'react-redux'; +import { CaseViewRefreshPropInterface } from '../../../../cases/common'; +import { TimelineId } from '../../../common/types/timeline'; + +import { getRuleDetailsUrl, useFormatUrl } from '../../common/components/link_to'; import * as i18n from './translations'; -import { CaseDetailsPage } from './case_details'; -import { CasesPage } from './case'; -import { CreateCasePage } from './create_case'; -import { ConfigureCasesPage } from './configure_cases'; -import { useGetUserCasesPermissions, useKibana } from '../../common/lib/kibana'; -import { CASES_PATH } from '../../../common/constants'; +import { useGetUserCasesPermissions, useKibana, useNavigation } from '../../common/lib/kibana'; +import { APP_ID, CASES_PATH, SecurityPageName } from '../../../common/constants'; +import { timelineActions } from '../../timelines/store/timeline'; +import { useSourcererDataView } from '../../common/containers/sourcerer'; +import { SourcererScopeName } from '../../common/store/sourcerer/model'; +import { CaseDetailsRefreshContext } from '../../common/components/endpoint/host_isolation/endpoint_host_isolation_cases_context'; +import { SecuritySolutionPageWrapper } from '../../common/components/page_wrapper'; +import { getEndpointDetailsPath } from '../../management/common/routing'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { useInsertTimeline } from '../components/use_insert_timeline'; +import * as timelineMarkdownPlugin from '../../common/components/markdown_editor/plugins/timeline'; +import { DetailsPanel } from '../../timelines/components/side_panel'; +import { InvestigateInTimelineAction } from '../../detections/components/alerts_table/timeline_actions/investigate_in_timeline_action'; +import { useFetchAlertData } from './use_fetch_alert_data'; -const caseDetailsPagePath = `${CASES_PATH}/:detailName`; -const subCaseDetailsPagePath = `${caseDetailsPagePath}/sub-cases/:subCaseId`; -const caseDetailsPagePathWithCommentId = `${caseDetailsPagePath}/:commentId`; -const subCaseDetailsPagePathWithCommentId = `${subCaseDetailsPagePath}/:commentId`; -const createCasePagePath = `${CASES_PATH}/create`; -const configureCasesPagePath = `${CASES_PATH}/configure`; +const TimelineDetailsPanel = () => { + const { browserFields, docValueFields, runtimeMappings } = useSourcererDataView( + SourcererScopeName.detections + ); + return ( + <DetailsPanel + browserFields={browserFields} + docValueFields={docValueFields} + entityType="events" + isFlyoutView + runtimeMappings={runtimeMappings} + timelineId={TimelineId.casePage} + /> + ); +}; + +const InvestigateInTimelineActionComponent = (alertIds: string[]) => { + return ( + <InvestigateInTimelineAction + ariaLabel={i18n.SEND_ALERT_TO_TIMELINE} + alertIds={alertIds} + key="investigate-in-timeline" + ecsRowData={null} + /> + ); +}; const CaseContainerComponent: React.FC = () => { + const { cases: casesUi } = useKibana().services; + const { getAppUrl, navigateTo } = useNavigation(); const userPermissions = useGetUserCasesPermissions(); - const chrome = useKibana().services.chrome; + const dispatch = useDispatch(); + const { formatUrl: detectionsFormatUrl, search: detectionsUrlSearch } = useFormatUrl( + SecurityPageName.rules + ); + + const getDetectionsRuleDetailsHref = useCallback( + (ruleId) => detectionsFormatUrl(getRuleDetailsUrl(ruleId ?? '', detectionsUrlSearch)), + [detectionsFormatUrl, detectionsUrlSearch] + ); + + const showAlertDetails = useCallback( + (alertId: string, index: string) => { + dispatch( + timelineActions.toggleDetailPanel({ + panelView: 'eventDetail', + timelineId: TimelineId.casePage, + params: { + eventId: alertId, + indexName: index, + }, + }) + ); + }, + [dispatch] + ); + + const endpointDetailsHref = (endpointId: string) => + getAppUrl({ + path: getEndpointDetailsPath({ + name: 'endpointActivityLog', + selected_endpoint: endpointId, + }), + }); - useEffect(() => { - // if the user is read only then display the glasses badge in the global navigation header - if (userPermissions != null && !userPermissions.crud && userPermissions.read) { - chrome.setBadge({ - text: i18n.READ_ONLY_BADGE_TEXT, - tooltip: i18n.READ_ONLY_BADGE_TOOLTIP, - iconType: 'glasses', - }); - } + const onComponentInitialized = useCallback(() => { + dispatch( + timelineActions.createTimeline({ + id: TimelineId.casePage, + columns: [], + dataViewId: '', + indexNames: [], + expandedDetail: {}, + show: false, + }) + ); + }, [dispatch]); - // remove the icon after the component unmounts - return () => { - chrome.setBadge(); - }; - }, [userPermissions, chrome]); + const refreshRef = useRef<CaseViewRefreshPropInterface>(null); return ( - <Switch> - <Route path={createCasePagePath}> - <CreateCasePage /> - </Route> - <Route path={configureCasesPagePath}> - <ConfigureCasesPage /> - </Route> - <Route exact path={subCaseDetailsPagePathWithCommentId}> - <CaseDetailsPage /> - </Route> - <Route exact path={caseDetailsPagePathWithCommentId}> - <CaseDetailsPage /> - </Route> - <Route exact path={subCaseDetailsPagePath}> - <CaseDetailsPage /> - </Route> - <Route path={caseDetailsPagePath}> - <CaseDetailsPage /> - </Route> - <Route strict exact path={CASES_PATH}> - <CasesPage /> - </Route> - </Switch> + <SecuritySolutionPageWrapper noPadding> + <CaseDetailsRefreshContext.Provider value={refreshRef}> + {casesUi.getCases({ + basePath: CASES_PATH, + owner: [APP_ID], + refreshRef, + onComponentInitialized, + actionsNavigation: { + href: endpointDetailsHref, + onClick: (endpointId: string, e) => { + if (e) { + e.preventDefault(); + } + return navigateTo({ + path: getEndpointDetailsPath({ + name: 'endpointActivityLog', + selected_endpoint: endpointId, + }), + }); + }, + }, + ruleDetailsNavigation: { + href: getDetectionsRuleDetailsHref, + onClick: async (ruleId: string | null | undefined, e) => { + if (e) { + e.preventDefault(); + } + return navigateTo({ + deepLinkId: SecurityPageName.rules, + path: getRuleDetailsUrl(ruleId ?? ''), + }); + }, + }, + showAlertDetails, + timelineIntegration: { + editor_plugins: { + parsingPlugin: timelineMarkdownPlugin.parser, + processingPluginRenderer: timelineMarkdownPlugin.renderer, + uiPlugin: timelineMarkdownPlugin.plugin, + }, + hooks: { + useInsertTimeline, + }, + ui: { + renderInvestigateInTimelineActionComponent: InvestigateInTimelineActionComponent, + renderTimelineDetailsPanel: TimelineDetailsPanel, + }, + }, + useFetchAlertData, + userCanCrud: userPermissions?.crud ?? false, + })} + </CaseDetailsRefreshContext.Provider> + <SpyRoute pageName={SecurityPageName.case} /> + </SecuritySolutionPageWrapper> ); }; -export const Case = React.memo(CaseContainerComponent); +export const Cases = React.memo(CaseContainerComponent); diff --git a/x-pack/plugins/security_solution/public/cases/pages/translations.ts b/x-pack/plugins/security_solution/public/cases/pages/translations.ts index 6768401b3f608..b2c03f1611def 100644 --- a/x-pack/plugins/security_solution/public/cases/pages/translations.ts +++ b/x-pack/plugins/security_solution/public/cases/pages/translations.ts @@ -7,174 +7,17 @@ import { i18n } from '@kbn/i18n'; -export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( - 'xpack.securitySolution.cases.caseFeatureNoPermissionsTitle', +export const SEND_ALERT_TO_TIMELINE = i18n.translate( + 'xpack.securitySolution.cases.caseView.sendAlertToTimelineTooltip', { - defaultMessage: 'Kibana feature privileges required', + defaultMessage: 'Investigate in timeline', } ); -export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( - 'xpack.securitySolution.cases.caseFeatureNoPermissionsMessage', - { - defaultMessage: - 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', - } -); - -export const BACK_TO_ALL = i18n.translate('xpack.securitySolution.cases.caseView.backLabel', { - defaultMessage: 'Back to cases', -}); - -export const CANCEL = i18n.translate('xpack.securitySolution.cases.caseView.cancel', { - defaultMessage: 'Cancel', -}); - -export const DELETE_CASE = i18n.translate( - 'xpack.securitySolution.cases.confirmDeleteCase.deleteCase', - { - defaultMessage: 'Delete case', - } -); - -export const DELETE_CASES = i18n.translate( - 'xpack.securitySolution.cases.confirmDeleteCase.deleteCases', - { - defaultMessage: 'Delete cases', - } -); - -export const NAME = i18n.translate('xpack.securitySolution.cases.caseView.name', { - defaultMessage: 'Name', -}); - -export const REPORTER = i18n.translate('xpack.securitySolution.cases.caseView.reporterLabel', { - defaultMessage: 'Reporter', -}); - -export const PARTICIPANTS = i18n.translate( - 'xpack.securitySolution.cases.caseView.particpantsLabel', - { - defaultMessage: 'Participants', - } -); - -export const CREATE_BC_TITLE = i18n.translate('xpack.securitySolution.cases.caseView.breadcrumb', { - defaultMessage: 'Create', -}); - -export const CREATE_TITLE = i18n.translate('xpack.securitySolution.cases.caseView.create', { - defaultMessage: 'Create new case', -}); - -export const DESCRIPTION = i18n.translate('xpack.securitySolution.cases.caseView.description', { - defaultMessage: 'Description', -}); - -export const DESCRIPTION_REQUIRED = i18n.translate( - 'xpack.securitySolution.cases.createCase.descriptionFieldRequiredError', - { - defaultMessage: 'A description is required.', - } -); - -export const EDIT = i18n.translate('xpack.securitySolution.cases.caseView.edit', { - defaultMessage: 'Edit', -}); - -export const OPTIONAL = i18n.translate('xpack.securitySolution.cases.caseView.optional', { - defaultMessage: 'Optional', -}); - export const PAGE_TITLE = i18n.translate('xpack.securitySolution.cases.pageTitle', { defaultMessage: 'Cases', }); -export const CREATE_CASE = i18n.translate('xpack.securitySolution.cases.caseView.createCase', { - defaultMessage: 'Create case', -}); - -export const CLOSE_CASE = i18n.translate('xpack.securitySolution.cases.caseView.closeCase', { - defaultMessage: 'Close case', -}); - -export const CASE_NAME = i18n.translate('xpack.securitySolution.cases.caseView.caseName', { - defaultMessage: 'Case name', -}); - -export const TO = i18n.translate('xpack.securitySolution.cases.caseView.to', { - defaultMessage: 'to', -}); - -export const TAGS = i18n.translate('xpack.securitySolution.cases.caseView.tags', { - defaultMessage: 'Tags', -}); - -export const ACTIONS = i18n.translate('xpack.securitySolution.cases.allCases.actions', { - defaultMessage: 'Actions', -}); - -export const NO_REPORTERS_AVAILABLE = i18n.translate( - 'xpack.securitySolution.cases.caseView.noReportersAvailable', - { - defaultMessage: 'No reporters available.', - } -); - -export const COMMENTS = i18n.translate('xpack.securitySolution.cases.allCases.comments', { - defaultMessage: 'Comments', -}); - -export const NO_TAGS = i18n.translate('xpack.securitySolution.cases.caseView.noTags', { - defaultMessage: 'No tags are currently assigned to this case.', -}); - -export const TITLE_REQUIRED = i18n.translate( - 'xpack.securitySolution.cases.createCase.titleFieldRequiredError', - { - defaultMessage: 'A title is required.', - } -); - -export const CONFIGURE_CASES_PAGE_TITLE = i18n.translate( - 'xpack.securitySolution.cases.configureCases.headerTitle', - { - defaultMessage: 'Configure cases', - } -); - -export const SAVE = i18n.translate('xpack.securitySolution.cases.caseView.description.save', { - defaultMessage: 'Save', -}); - -export const GO_TO_DOCUMENTATION = i18n.translate( - 'xpack.securitySolution.cases.caseView.goToDocumentationButton', - { - defaultMessage: 'View documentation', - } -); - -export const CONNECTORS = i18n.translate('xpack.securitySolution.cases.caseView.connectors', { - defaultMessage: 'External Incident Management System', +export const CREATE_BC_TITLE = i18n.translate('xpack.securitySolution.cases.caseView.breadcrumb', { + defaultMessage: 'Create', }); - -export const EDIT_CONNECTOR = i18n.translate( - 'xpack.securitySolution.cases.caseView.editConnector', - { - defaultMessage: 'Change external incident management system', - } -); - -export const READ_ONLY_BADGE_TEXT = i18n.translate( - 'xpack.securitySolution.cases.badge.readOnly.text', - { - defaultMessage: 'Read only', - } -); - -export const READ_ONLY_BADGE_TOOLTIP = i18n.translate( - 'xpack.securitySolution.cases.badge.readOnly.tooltip', - { - defaultMessage: 'Unable to create or edit cases', - } -); diff --git a/x-pack/plugins/security_solution/public/cases/pages/use_fetch_alert_data.ts b/x-pack/plugins/security_solution/public/cases/pages/use_fetch_alert_data.ts new file mode 100644 index 0000000000000..d75e7324c9afe --- /dev/null +++ b/x-pack/plugins/security_solution/public/cases/pages/use_fetch_alert_data.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { useMemo } from 'react'; +import { useSourcererDataView } from '../../common/containers/sourcerer'; +import { SourcererScopeName } from '../../common/store/sourcerer/model'; +import { useQueryAlerts } from '../../detections/containers/detection_engine/alerts/use_query'; +import { Ecs } from '../../../../cases/common'; +import { buildAlertsQuery, formatAlertToEcsSignal, SignalHit } from '../../common/utils/alerts'; + +export const useFetchAlertData = (alertIds: string[]): [boolean, Record<string, Ecs>] => { + const { selectedPatterns } = useSourcererDataView(SourcererScopeName.detections); + const alertsQuery = useMemo(() => buildAlertsQuery(alertIds), [alertIds]); + + const { loading: isLoadingAlerts, data: alertsData } = useQueryAlerts<SignalHit, unknown>({ + query: alertsQuery, + indexName: selectedPatterns[0], + }); + + const alerts = useMemo( + () => + alertsData?.hits.hits.reduce<Record<string, Ecs>>( + (acc, { _id, _index, _source }) => ({ + ...acc, + [_id]: { + ...formatAlertToEcsSignal(_source), + _id, + _index, + timestamp: _source['@timestamp'], + }, + }), + {} + ) ?? {}, + [alertsData?.hits.hits] + ); + + return [isLoadingAlerts, alerts]; +}; diff --git a/x-pack/plugins/security_solution/public/cases/pages/utils.ts b/x-pack/plugins/security_solution/public/cases/pages/utils.ts deleted file mode 100644 index f791bc677d5c6..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/pages/utils.ts +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { isEmpty } from 'lodash/fp'; - -import { ChromeBreadcrumb } from 'src/core/public'; - -import { getCaseDetailsUrl, getCreateCaseUrl } from '../../common/components/link_to'; -import { RouteSpyState } from '../../common/utils/route/types'; -import * as i18n from './translations'; -import { GetUrlForApp } from '../../common/components/navigation/types'; -import { APP_UI_ID } from '../../../common/constants'; -import { SecurityPageName } from '../../app/types'; - -export const getBreadcrumbs = ( - params: RouteSpyState, - search: string[], - getUrlForApp: GetUrlForApp -): ChromeBreadcrumb[] => { - const queryParameters = !isEmpty(search[0]) ? search[0] : ''; - - let breadcrumb = [ - { - text: i18n.PAGE_TITLE, - href: getUrlForApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: queryParameters, - }), - }, - ]; - if (params.pathName === '/create') { - breadcrumb = [ - ...breadcrumb, - { - text: i18n.CREATE_BC_TITLE, - href: getUrlForApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCreateCaseUrl(queryParameters), - }), - }, - ]; - } else if (params.detailName != null) { - breadcrumb = [ - ...breadcrumb, - { - text: params.state?.caseTitle ?? '', - href: getUrlForApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id: params.detailName, search: queryParameters }), - }), - }, - ]; - } - return breadcrumb; -}; diff --git a/x-pack/plugins/security_solution/public/cases/routes.tsx b/x-pack/plugins/security_solution/public/cases/routes.tsx index 8ea30e60379ca..19421940e338d 100644 --- a/x-pack/plugins/security_solution/public/cases/routes.tsx +++ b/x-pack/plugins/security_solution/public/cases/routes.tsx @@ -8,13 +8,13 @@ import React from 'react'; import { TrackApplicationView } from '../../../../../src/plugins/usage_collection/public'; -import { SecurityPageName, SecuritySubPluginRoutes } from '../app/types'; +import { SecuritySubPluginRoutes } from '../app/types'; import { CASES_PATH } from '../../common/constants'; -import { Case } from './pages'; +import { Cases } from './pages'; export const CasesRoutes = () => ( - <TrackApplicationView viewId={SecurityPageName.case}> - <Case /> + <TrackApplicationView viewId="case"> + <Cases /> </TrackApplicationView> ); diff --git a/x-pack/plugins/security_solution/public/cases/translations.ts b/x-pack/plugins/security_solution/public/cases/translations.ts deleted file mode 100644 index 1405a8baa1717..0000000000000 --- a/x-pack/plugins/security_solution/public/cases/translations.ts +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; - -export const CASES_FEATURE_NO_PERMISSIONS_TITLE = i18n.translate( - 'xpack.securitySolution.cases.caseFeatureNoPermissionsTitle', - { - defaultMessage: 'Kibana feature privileges required', - } -); - -export const CASES_FEATURE_NO_PERMISSIONS_MSG = i18n.translate( - 'xpack.securitySolution.cases.caseFeatureNoPermissionsMessage', - { - defaultMessage: - 'To view cases, you must have privileges for the Cases feature in the Kibana space. For more information, contact your Kibana administrator.', - } -); - -export const BACK_TO_ALL = i18n.translate('xpack.securitySolution.cases.caseView.backLabel', { - defaultMessage: 'Back to cases', -}); - -export const CANCEL = i18n.translate('xpack.securitySolution.cases.caseView.cancel', { - defaultMessage: 'Cancel', -}); - -export const DELETE_CASE = i18n.translate( - 'xpack.securitySolution.cases.confirmDeleteCase.deleteCase', - { - defaultMessage: 'Delete case', - } -); - -export const DELETE_CASES = i18n.translate( - 'xpack.securitySolution.cases.confirmDeleteCase.deleteCases', - { - defaultMessage: 'Delete cases', - } -); - -export const NAME = i18n.translate('xpack.securitySolution.cases.caseView.name', { - defaultMessage: 'Name', -}); - -export const OPENED_ON = i18n.translate('xpack.securitySolution.cases.caseView.openedOn', { - defaultMessage: 'Opened on', -}); - -export const CLOSED_ON = i18n.translate('xpack.securitySolution.cases.caseView.closedOn', { - defaultMessage: 'Closed on', -}); - -export const REPORTER = i18n.translate('xpack.securitySolution.cases.caseView.reporterLabel', { - defaultMessage: 'Reporter', -}); - -export const PARTICIPANTS = i18n.translate( - 'xpack.securitySolution.cases.caseView.particpantsLabel', - { - defaultMessage: 'Participants', - } -); -export const CREATE_TITLE = i18n.translate('xpack.securitySolution.cases.caseView.create', { - defaultMessage: 'Create new case', -}); - -export const DESCRIPTION = i18n.translate('xpack.securitySolution.cases.caseView.description', { - defaultMessage: 'Description', -}); - -export const DESCRIPTION_REQUIRED = i18n.translate( - 'xpack.securitySolution.cases.createCase.descriptionFieldRequiredError', - { - defaultMessage: 'A description is required.', - } -); - -export const EDIT = i18n.translate('xpack.securitySolution.cases.caseView.edit', { - defaultMessage: 'Edit', -}); - -export const OPTIONAL = i18n.translate('xpack.securitySolution.cases.caseView.optional', { - defaultMessage: 'Optional', -}); - -export const PAGE_TITLE = i18n.translate('xpack.securitySolution.cases.pageTitle', { - defaultMessage: 'Cases', -}); - -export const CREATE_CASE = i18n.translate('xpack.securitySolution.cases.caseView.createCase', { - defaultMessage: 'Create case', -}); - -export const CLOSE_CASE = i18n.translate('xpack.securitySolution.cases.caseView.closeCase', { - defaultMessage: 'Close case', -}); -export const OPEN_CASE = i18n.translate('xpack.securitySolution.cases.caseView.openCase', { - defaultMessage: 'Open case', -}); - -export const CASE_NAME = i18n.translate('xpack.securitySolution.cases.caseView.caseName', { - defaultMessage: 'Case name', -}); - -export const TO = i18n.translate('xpack.securitySolution.cases.caseView.to', { - defaultMessage: 'to', -}); - -export const TAGS = i18n.translate('xpack.securitySolution.cases.caseView.tags', { - defaultMessage: 'Tags', -}); - -export const ACTIONS = i18n.translate('xpack.securitySolution.cases.allCases.actions', { - defaultMessage: 'Actions', -}); - -export const NO_REPORTERS_AVAILABLE = i18n.translate( - 'xpack.securitySolution.cases.caseView.noReportersAvailable', - { - defaultMessage: 'No reporters available.', - } -); - -export const COMMENTS = i18n.translate('xpack.securitySolution.cases.allCases.comments', { - defaultMessage: 'Comments', -}); -export const NO_TAGS = i18n.translate('xpack.securitySolution.cases.caseView.noTags', { - defaultMessage: 'No tags are currently assigned to this case.', -}); - -export const TITLE_REQUIRED = i18n.translate( - 'xpack.securitySolution.cases.createCase.titleFieldRequiredError', - { - defaultMessage: 'A title is required.', - } -); - -export const SAVE = i18n.translate('xpack.securitySolution.cases.caseView.description.save', { - defaultMessage: 'Save', -}); - -export const CONNECTORS = i18n.translate('xpack.securitySolution.cases.caseView.connectors', { - defaultMessage: 'External Incident Management System', -}); -export const UNKNOWN = i18n.translate('xpack.securitySolution.cases.caseView.unknown', { - defaultMessage: 'Unknown', -}); -export const OPEN_CASES = i18n.translate('xpack.securitySolution.cases.caseTable.openCases', { - defaultMessage: 'Open cases', -}); -export const ALERT = i18n.translate('xpack.securitySolution.common.alertLabel', { - defaultMessage: 'Alert', -}); - -export const ALERT_ADDED_TO_CASE = i18n.translate( - 'xpack.securitySolution.common.alertAddedToCase', - { - defaultMessage: 'added to case', - } -); - -export const SELECTABLE_MESSAGE_COLLECTIONS = i18n.translate( - 'xpack.securitySolution.common.allCases.table.selectableMessageCollections', - { - defaultMessage: 'Cases with sub-cases cannot be selected', - } -); diff --git a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts index f009b96a8d2a6..68da00bd7ef06 100644 --- a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/helpers.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; export const createFilter = ( key: string, diff --git a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx index 7c26a7eb17e8c..85e3a435af816 100644 --- a/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/add_filter_to_global_search_bar/index.tsx @@ -7,8 +7,7 @@ import { EuiButtonIcon, EuiToolTip } from '@elastic/eui'; import React, { useCallback, useMemo } from 'react'; - -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { WithHoverActions } from '../with_hover_actions'; import { useKibana } from '../../lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx b/x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx index fff5b465956de..a9335fe7f4c6c 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx +++ b/x-pack/plugins/security_solution/public/common/components/alerts_viewer/alerts_table.tsx @@ -7,8 +7,8 @@ import React, { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; +import type { Filter } from '@kbn/es-query'; import { timelineActions } from '../../../timelines/store/timeline'; -import { Filter } from '../../../../../../../src/plugins/data/public'; import { TimelineIdLiteral } from '../../../../common/types/timeline'; import { StatefulEventsViewer } from '../events_viewer'; import { alertsDefaultModel } from './default_headers'; diff --git a/x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts b/x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts index 3c439a9eff1ea..010c8b4e0e8e5 100644 --- a/x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/alerts_viewer/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import type { EntityType } from '../../../../../timelines/common'; import { TimelineIdLiteral } from '../../../../common/types/timeline'; import { HostsComponentsQueryProps } from '../../../hosts/pages/navigation/types'; diff --git a/x-pack/plugins/security_solution/public/common/components/callouts/callout_dismiss_button.tsx b/x-pack/plugins/security_solution/public/common/components/callouts/callout_dismiss_button.tsx index c657ee243b74b..b00072be6cc5f 100644 --- a/x-pack/plugins/security_solution/public/common/components/callouts/callout_dismiss_button.tsx +++ b/x-pack/plugins/security_solution/public/common/components/callouts/callout_dismiss_button.tsx @@ -23,7 +23,7 @@ export const CallOutDismissButton: FC<CallOutDismissButtonProps> = ({ onClick = noop, }) => { const { type } = message; - const buttonColor = type === 'success' ? 'secondary' : type; + const buttonColor = type; const buttonText = text ?? i18n.DISMISS_BUTTON; const handleClick = useCallback(() => onClick(message), [onClick, message]); diff --git a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx index ee62be0d88ae1..d7b7b593ab547 100644 --- a/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx +++ b/x-pack/plugins/security_solution/public/common/components/drag_and_drop/draggable_wrapper.tsx @@ -85,6 +85,10 @@ export const ProviderContentWrapper = styled.span` > span.euiToolTipAnchor { display: block; /* allow EuiTooltip content to be truncatable */ } + + > span.euiToolTipAnchor.eui-textTruncate { + display: inline-block; /* do not override display when a tooltip is truncated via eui-textTruncate */ + } `; type RenderFunctionProp = ( diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx index 5482288b7d279..a52099b905d2a 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx +++ b/x-pack/plugins/security_solution/public/common/components/event_details/table/field_name_cell.tsx @@ -10,7 +10,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiBadge, EuiText, EuiToolTip } from '@elast import { isEmpty } from 'lodash'; import { FieldIcon } from '@kbn/react-field/field_icon'; import * as i18n from '../translations'; -import { DataViewField } from '../../../../../../../../src/plugins/data_views/common'; +import type { DataViewField } from '../../../../../../../../src/plugins/data_views/common'; import { getExampleText } from '../helpers'; import { BrowserField } from '../../../containers/source'; import { EventFieldsData } from '../types'; diff --git a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx index 55be8ad94ec5d..97fcd5d920ff9 100644 --- a/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/events_viewer/index.tsx @@ -9,13 +9,13 @@ import React, { useCallback, useMemo, useEffect } from 'react'; import { connect, ConnectedProps, useDispatch } from 'react-redux'; import deepEqual from 'fast-deep-equal'; import styled from 'styled-components'; +import type { Filter } from '@kbn/es-query'; import { inputsModel, inputsSelectors, State } from '../../store'; import { inputsActions } from '../../store/actions'; import { ControlColumnProps, RowRenderer, TimelineId } from '../../../../common/types/timeline'; import { timelineSelectors, timelineActions } from '../../../timelines/store/timeline'; import type { SubsetTimelineModel, TimelineModel } from '../../../timelines/store/timeline/model'; import { Status } from '../../../../common/detection_engine/schemas/common/schemas'; -import { Filter } from '../../../../../../../src/plugins/data/public'; import { InspectButtonContainer } from '../inspect'; import { useGlobalFullScreen } from '../../containers/use_full_screen'; import { useIsExperimentalFeatureEnabled } from '../../hooks/use_experimental_features'; @@ -25,6 +25,7 @@ import type { EntityType } from '../../../../../timelines/common'; import { TGridCellAction } from '../../../../../timelines/common/types'; import { DetailsPanel } from '../../../timelines/components/side_panel'; import { CellValueElementProps } from '../../../timelines/components/timeline/cell_rendering'; +import { FIELDS_WITHOUT_CELL_ACTIONS } from '../../lib/cell_actions/constants'; import { useKibana } from '../../lib/kibana'; import { GraphOverlay } from '../../../timelines/components/graph_overlay'; import { useCreateFieldButton } from '../../../timelines/components/create_field_button'; @@ -179,6 +180,7 @@ const StatefulEventsViewerComponent: React.FC<Props> = ({ dataProviders, defaultCellActions, deletedEventIds, + disabledCellActions: FIELDS_WITHOUT_CELL_ACTIONS, docValueFields, end, entityType, diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx index 37f250ffd2d4d..3ef80794275dc 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.test.tsx @@ -42,7 +42,7 @@ import { getCommentsArrayMock } from '../../../../../lists/common/schemas/types/ import { fields } from '../../../../../../../src/plugins/data/common/mocks'; import { ENTRIES, OLD_DATE_RELATIVE_TO_DATE_NOW } from '../../../../../lists/common/constants.mock'; import { CodeSignature } from '../../../../common/ecs/file'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; jest.mock('uuid', () => ({ v4: jest.fn().mockReturnValue('123'), diff --git a/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx index e14c151ed367c..4030c1f90d102 100644 --- a/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx +++ b/x-pack/plugins/security_solution/public/common/components/exceptions/helpers.tsx @@ -33,7 +33,7 @@ import { addIdToEntries, ExceptionsBuilderExceptionItem, } from '@kbn/securitysolution-list-utils'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import * as i18n from './translations'; import { AlertData, Flattened } from './types'; diff --git a/x-pack/plugins/security_solution/public/common/components/header_page/editable_title.tsx b/x-pack/plugins/security_solution/public/common/components/header_page/editable_title.tsx index 487e0fe4981f1..3744297ded56a 100644 --- a/x-pack/plugins/security_solution/public/common/components/header_page/editable_title.tsx +++ b/x-pack/plugins/security_solution/public/common/components/header_page/editable_title.tsx @@ -77,7 +77,7 @@ const EditableTitleComponent: React.FC<Props> = ({ <EuiFlexGroup gutterSize="none" responsive={false} wrap={true}> <EuiFlexItem grow={false}> <EuiButton - color="secondary" + color="success" data-test-subj="editable-title-submit-btn" fill iconType="save" diff --git a/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx b/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx index 40b978cfe20fb..3e49ef7632731 100644 --- a/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx +++ b/x-pack/plugins/security_solution/public/common/components/hover_actions/actions/show_top_n.tsx @@ -14,6 +14,7 @@ import { EuiToolTip, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import type { Filter } from '@kbn/es-query'; import { StatefulTopN } from '../../top_n'; import { TimelineId } from '../../../../../common/types/timeline'; import { SourcererScopeName } from '../../../store/sourcerer/model'; @@ -21,7 +22,6 @@ import { useSourcererDataView } from '../../../containers/sourcerer'; import { TooltipWithKeyboardShortcut } from '../../accessibility'; import { getAdditionalScreenReaderOnlyContext } from '../utils'; import { SHOW_TOP_N_KEYBOARD_SHORTCUT } from '../keyboard_shortcut_constants'; -import { Filter } from '../../../../../../../../src/plugins/data/public'; const SHOW_TOP = (fieldName: string) => i18n.translate('xpack.securitySolution.hoverActions.showTopTooltip', { diff --git a/x-pack/plugins/security_solution/public/common/components/item_details_card/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/item_details_card/__snapshots__/index.test.tsx.snap index 4976c859c00e9..a7817c578a19e 100644 --- a/x-pack/plugins/security_solution/public/common/components/item_details_card/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/item_details_card/__snapshots__/index.test.tsx.snap @@ -87,11 +87,11 @@ exports[`item_details_card ItemDetailsCard should render correctly with actions key="1" > <ItemDetailsAction - color="secondary" + color="success" key=".6" size="s" > - secondary + success </ItemDetailsAction> </EuiFlexItem> <EuiFlexItem diff --git a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.stories.tsx b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.stories.tsx index 513ba8ccdc462..74a3d1c3999e9 100644 --- a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.stories.tsx +++ b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.stories.tsx @@ -29,8 +29,8 @@ storiesOf('Components/ItemDetailsCard', module).add('default', () => { <ItemDetailsAction size="s" color="primary"> {'primary'} </ItemDetailsAction> - <ItemDetailsAction size="s" color="secondary"> - {'secondary'} + <ItemDetailsAction size="s" color="success"> + {'success'} </ItemDetailsAction> <ItemDetailsAction size="s" color="danger"> {'danger'} diff --git a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx index 12264e28d40c9..7fce50284d0d9 100644 --- a/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/item_details_card/index.test.tsx @@ -60,8 +60,8 @@ describe('item_details_card', () => { <ItemDetailsAction size="s" color="primary"> {'primary'} </ItemDetailsAction> - <ItemDetailsAction size="s" color="secondary"> - {'secondary'} + <ItemDetailsAction size="s" color="success"> + {'success'} </ItemDetailsAction> <ItemDetailsAction size="s" color="danger"> {'danger'} diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts index de934e00c9117..5639721403cbd 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.test.ts @@ -43,12 +43,12 @@ const getMockObject = ( ): RouteSpyState & TabNavigationProps => ({ detailName, navTabs: { - case: { + cases: { disabled: false, href: '/app/security/cases', - id: 'case', + id: 'cases', name: 'Cases', - urlKey: 'case', + urlKey: 'cases', }, hosts: { disabled: false, @@ -377,43 +377,29 @@ describe('Navigation Breadcrumbs', () => { ]); }); - test('should return Cases breadcrumbs when supplied case pathname', () => { + test('should return null breadcrumbs when supplied Cases pathname', () => { const breadcrumbs = getBreadcrumbsForRoute( - getMockObject('case', '/', undefined), + getMockObject('cases', '/', undefined), getUrlForAppMock ); - expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, - { - text: 'Cases', - href: "securitySolutionUI/case?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", - }, - ]); + expect(breadcrumbs).toEqual(null); }); - test('should return Case details breadcrumbs when supplied case details pathname', () => { + + test('should return null breadcrumbs when supplied Cases details pathname', () => { const sampleCase = { id: 'my-case-id', name: 'Case name', }; const breadcrumbs = getBreadcrumbsForRoute( { - ...getMockObject('case', `/${sampleCase.id}`, sampleCase.id), + ...getMockObject('cases', `/${sampleCase.id}`, sampleCase.id), state: { caseTitle: sampleCase.name }, }, getUrlForAppMock ); - expect(breadcrumbs).toEqual([ - { text: 'Security', href: 'securitySolutionUI/overview' }, - { - text: 'Cases', - href: "securitySolutionUI/case?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))", - }, - { - text: sampleCase.name, - href: `securitySolutionUI/case/${sampleCase.id}?sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2019-05-16T23:10:43.696Z',fromStr:now-24h,kind:relative,to:'2019-05-17T23:10:43.697Z',toStr:now)))`, - }, - ]); + expect(breadcrumbs).toEqual(null); }); + test('should return Admin breadcrumbs when supplied endpoints pathname', () => { const breadcrumbs = getBreadcrumbsForRoute( getMockObject('administration', '/endpoints', undefined), diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts index 029dc70c398e3..251e8bc133a23 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts @@ -13,7 +13,6 @@ import { APP_NAME, APP_UI_ID } from '../../../../../common/constants'; import { StartServices } from '../../../../types'; import { getBreadcrumbs as getHostDetailsBreadcrumbs } from '../../../../hosts/pages/details/utils'; import { getBreadcrumbs as getIPDetailsBreadcrumbs } from '../../../../network/pages/details'; -import { getBreadcrumbs as getCaseDetailsBreadcrumbs } from '../../../../cases/pages/utils'; import { getBreadcrumbs as getDetectionRulesBreadcrumbs } from '../../../../detections/pages/detection_engine/rules/utils'; import { getBreadcrumbs as getTimelinesBreadcrumbs } from '../../../../timelines/pages'; import { getBreadcrumbs as getUebaBreadcrumbs } from '../../../../ueba/pages/details/utils'; @@ -174,24 +173,9 @@ export const getBreadcrumbsForRoute = ( } if (isCaseRoutes(spyState) && object.navTabs) { - const tempNav: SearchNavTab = { urlKey: 'case', isDetailPage: false }; - let urlStateKeys = [getOr(tempNav, spyState.pageName, object.navTabs)]; - if (spyState.tabName != null) { - urlStateKeys = [...urlStateKeys, getOr(tempNav, spyState.tabName, object.navTabs)]; - } - - return [ - siemRootBreadcrumb, - ...getCaseDetailsBreadcrumbs( - spyState, - urlStateKeys.reduce( - (acc: string[], item: SearchNavTab) => [...acc, getSearch(item, object)], - [] - ), - getUrlForApp - ), - ]; + return null; // controlled by Cases routes } + if (isTimelinesRoutes(spyState) && object.navTabs) { const tempNav: SearchNavTab = { urlKey: 'timeline', isDetailPage: false }; const urlStateKeys = [getOr(tempNav, spyState.pageName, object.navTabs)]; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts b/x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts index 610a3c086fc2c..35b5f62629dca 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/helpers.ts @@ -8,6 +8,7 @@ import { isEmpty } from 'lodash/fp'; import { Location } from 'history'; +import type { Filter, Query } from '@kbn/es-query'; import { UrlInputsModel } from '../../store/inputs/model'; import { TimelineUrl } from '../../../timelines/store/timeline/model'; import { CONSTANTS } from '../url_state/constants'; @@ -17,7 +18,6 @@ import { replaceStateKeyInQueryString, getQueryStringFromLocation, } from '../url_state/helpers'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; import { SearchNavTab } from './types'; import { SourcererUrlState } from '../../store/sourcerer/model'; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts b/x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts index 9a066037b2768..75f18abf75559 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/tab_navigation/types.ts @@ -5,11 +5,11 @@ * 2.0. */ +import type { Filter, Query } from '@kbn/es-query'; import { UrlInputsModel } from '../../../store/inputs/model'; import { CONSTANTS } from '../../url_state/constants'; import { SourcererUrlState } from '../../../store/sourcerer/model'; import { TimelineUrl } from '../../../../timelines/store/timeline/model'; -import { Filter, Query } from '../../../../../../../../src/plugins/data/public'; import { SecuritySolutionTabNavigationProps } from '../types'; import { SiemRouteType } from '../../../utils/route/types'; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/types.ts b/x-pack/plugins/security_solution/public/common/components/navigation/types.ts index 878ff074685e9..76b5034ce3165 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/types.ts @@ -6,7 +6,7 @@ */ import { UrlStateType } from '../url_state/constants'; -import { SecurityPageName } from '../../../app/types'; +import type { SecurityPageName } from '../../../app/types'; import { UrlState } from '../url_state/types'; import { SiemRouteType } from '../../utils/route/types'; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx index 62f2cf56b7a12..5bc4719640e5e 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/index.test.tsx @@ -298,15 +298,15 @@ describe('useSecuritySolutionNavigation', () => { ); const caseNavItem = (result.current?.items || [])[3].items?.find( - (item) => item['data-test-subj'] === 'navigation-case' + (item) => item['data-test-subj'] === 'navigation-cases' ); expect(caseNavItem).toMatchInlineSnapshot(` Object { - "data-href": "securitySolutionUI/case?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", - "data-test-subj": "navigation-case", + "data-href": "securitySolutionUI/cases?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", + "data-test-subj": "navigation-cases", "disabled": false, - "href": "securitySolutionUI/case?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", - "id": "case", + "href": "securitySolutionUI/cases?query=(language:kuery,query:'host.name:%22security-solution-es%22')&sourcerer=()&timerange=(global:(linkTo:!(timeline),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)),timeline:(linkTo:!(global),timerange:(from:'2020-07-07T08:20:18.966Z',fromStr:now-24h,kind:relative,to:'2020-07-08T08:20:18.966Z',toStr:now)))", + "id": "cases", "isSelected": false, "name": "Cases", "onClick": [Function], @@ -326,7 +326,7 @@ describe('useSecuritySolutionNavigation', () => { ); const caseNavItem = (result.current?.items || [])[3].items?.find( - (item) => item['data-test-subj'] === 'navigation-case' + (item) => item['data-test-subj'] === 'navigation-cases' ); expect(caseNavItem).toBeFalsy(); }); diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx index 961090a01ba19..d012945a23e27 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx +++ b/x-pack/plugins/security_solution/public/common/components/navigation/use_security_solution_navigation/use_navigation_items.tsx @@ -90,7 +90,7 @@ function usePrimaryNavigationItemsToDisplay(navTabs: Record<string, NavTab>) { { ...securityNavGroup.investigate, items: hasCasesReadPermissions - ? [navTabs.timelines, navTabs.case] + ? [navTabs.timelines, navTabs.cases] : [navTabs.timelines], }, { @@ -107,7 +107,7 @@ function usePrimaryNavigationItemsToDisplay(navTabs: Record<string, NavTab>) { ? [ { ...securityNavGroup.investigate, - items: [navTabs.case], + items: [navTabs.cases], }, ] : [], diff --git a/x-pack/plugins/security_solution/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap index 3440e5f4488c6..a2fffc32be46d 100644 --- a/x-pack/plugins/security_solution/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap @@ -22,28 +22,36 @@ exports[`Paginated Table Component rendering it renders the default load more ta Array [ Object { "field": "node.host.name", - "hideForMobile": false, + "mobileOptions": Object { + "show": true, + }, "name": "Host", "render": [Function], "truncateText": false, }, Object { "field": "node.host.firstSeen", - "hideForMobile": false, + "mobileOptions": Object { + "show": true, + }, "name": "First seen", "render": [Function], "truncateText": false, }, Object { "field": "node.host.os", - "hideForMobile": false, + "mobileOptions": Object { + "show": true, + }, "name": "OS", "render": [Function], "truncateText": false, }, Object { "field": "node.host.version", - "hideForMobile": false, + "mobileOptions": Object { + "show": true, + }, "name": "Version", "render": [Function], "truncateText": false, diff --git a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.mock.tsx b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.mock.tsx index 070c8a8d53b43..2d728ffa915fc 100644 --- a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.mock.tsx +++ b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.mock.tsx @@ -57,28 +57,28 @@ export const getHostsColumns = (): [ field: 'node.host.name', name: 'Host', truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: string) => getOrEmptyTagFromValue(name), }, { field: 'node.host.firstSeen', name: 'First seen', truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (firstSeen: string) => getOrEmptyTagFromValue(firstSeen), }, { field: 'node.host.os', name: 'OS', truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (os: string) => getOrEmptyTagFromValue(os), }, { field: 'node.host.version', name: 'Version', truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (version: string) => getOrEmptyTagFromValue(version), }, ]; diff --git a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx index f5828c9f65db9..ef49c8e2a5e8c 100644 --- a/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/paginated_table/index.tsx @@ -17,6 +17,7 @@ import { EuiLoadingContent, EuiPagination, EuiPopover, + EuiTableRowCellProps, } from '@elastic/eui'; import { noop } from 'lodash/fp'; import React, { FC, memo, useState, useMemo, useEffect, ComponentType } from 'react'; @@ -126,8 +127,7 @@ type Func<T> = (arg: T) => string | number; export interface Columns<T, U = T> { align?: string; field?: string; - hideForMobile?: boolean; - isMobileHeader?: boolean; + mobileOptions?: EuiTableRowCellProps['mobileOptions']; name: string | React.ReactNode; render?: (item: T, node: U) => React.ReactNode; sortable?: boolean | Func<T>; diff --git a/x-pack/plugins/security_solution/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap b/x-pack/plugins/security_solution/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap index e1fc1becd0188..bf36bf1afeef3 100644 --- a/x-pack/plugins/security_solution/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap +++ b/x-pack/plugins/security_solution/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap @@ -13,7 +13,7 @@ exports[`ProgressInline it renders 1`] = ` className="siemProgressInline__bar" > <EuiProgress - color="secondary" + color="success" max={100} value={50} /> diff --git a/x-pack/plugins/security_solution/public/common/components/progress_inline/index.tsx b/x-pack/plugins/security_solution/public/common/components/progress_inline/index.tsx index bbea27f5a705a..7b7e24bf8707b 100644 --- a/x-pack/plugins/security_solution/public/common/components/progress_inline/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/progress_inline/index.tsx @@ -38,7 +38,7 @@ export const ProgressInline = React.memo<ProgressInlineProps>( <dt className="siemProgressInline__title">{children}</dt> <dd className="siemProgressInline__bar"> - <EuiProgress color="secondary" max={max} value={current} /> + <EuiProgress color="success" max={max} value={current} /> </dd> <dd className="siemProgressInline__ratio"> diff --git a/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx b/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx index 253f2c3862e0c..18f60db89595d 100644 --- a/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/query_bar/index.tsx @@ -8,7 +8,7 @@ import React, { memo, useMemo, useCallback } from 'react'; import deepEqual from 'fast-deep-equal'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { FilterManager, TimeHistory, diff --git a/x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx b/x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx index 9531443e98514..22cba877b4962 100644 --- a/x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/search_bar/index.tsx @@ -14,8 +14,8 @@ import { Subscription } from 'rxjs'; import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; -import { FilterManager, TimeRange, SavedQuery } from 'src/plugins/data/public'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { FilterManager, TimeRange, SavedQuery } from 'src/plugins/data/public'; import { OnTimeChangeProps } from '@elastic/eui'; diff --git a/x-pack/plugins/security_solution/public/common/components/search_bar/selectors.ts b/x-pack/plugins/security_solution/public/common/components/search_bar/selectors.ts index d47638b2067c0..3e4f7acd1ee85 100644 --- a/x-pack/plugins/security_solution/public/common/components/search_bar/selectors.ts +++ b/x-pack/plugins/security_solution/public/common/components/search_bar/selectors.ts @@ -6,8 +6,9 @@ */ import { createSelector } from 'reselect'; +import type { Query } from '@kbn/es-query'; import { InputsRange } from '../../store/inputs/model'; -import { Query, SavedQuery } from '../../../../../../../src/plugins/data/public'; +import type { SavedQuery } from '../../../../../../../src/plugins/data/public'; export { endSelector, diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx index 0550ef389585e..d99d813e1af8f 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.test.tsx @@ -11,7 +11,7 @@ import { EuiComboBox, EuiComboBoxOptionOption } from '@elastic/eui'; import { EntryItem } from './entry_item'; import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; jest.mock('../../../common/lib/kibana'); diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx index 777ef2069ff4f..3087a92aba72c 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/entry_item.tsx @@ -10,7 +10,7 @@ import { EuiFormRow, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; import { FieldComponent } from '@kbn/securitysolution-autocomplete'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import { FormattedEntry, Entry } from './types'; import * as i18n from './translations'; import { getEntryOnFieldChange, getEntryOnThreatFieldChange } from './helpers'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx index 9a5051fe0cafb..272d056eed143 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.test.tsx @@ -7,8 +7,8 @@ import { fields, getField } from '../../../../../../../src/plugins/data/common/mocks'; import { Entry, EmptyEntry, ThreatMapEntries, FormattedEntry } from './types'; -import { FieldSpec } from '../../../../../../../src/plugins/data/common'; -import { DataViewBase } from '@kbn/es-query'; +import type { FieldSpec } from '../../../../../../../src/plugins/data/common'; +import type { DataViewBase } from '@kbn/es-query'; import moment from 'moment-timezone'; import { diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx index 7b0385ab6902f..2358f4dd5b9c1 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/helpers.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { addIdToItem } from '@kbn/securitysolution-utils'; import { ThreatMap, threatMap, ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import { Entry, FormattedEntry, ThreatMapEntries, EmptyEntry } from './types'; import { ValidationFunc } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib'; import { ERROR_CODE } from '../../../../../../../src/plugins/es_ui_shared/static/forms/helpers/field_validators/types'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx index e26c889b7e94a..20fd2821ed9be 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/index.test.tsx @@ -16,7 +16,7 @@ import { useKibana } from '../../../common/lib/kibana'; import { ThreatMatchComponent } from './'; import { ThreatMapEntries } from './types'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { getMockTheme } from '../../lib/kibana/kibana_react.mock'; const mockTheme = getMockTheme({ diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx index 5ea17939ed780..1f3268b84bdba 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/index.tsx @@ -8,7 +8,7 @@ import React, { useCallback, useEffect, useReducer } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; import { ListItemComponent } from './list_item'; import { AndOrBadge } from '../and_or_badge'; diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx index e2325ace26591..0cb1ed830ceca 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.test.tsx @@ -14,7 +14,7 @@ import { fields } from '../../../../../../../src/plugins/data/common/mocks'; import { ListItemComponent } from './list_item'; import { ThreatMapEntries } from './types'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { getMockTheme } from '../../lib/kibana/kibana_react.mock'; const mockTheme = getMockTheme({ diff --git a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx index e01c28ecb54eb..47d367e6c04ad 100644 --- a/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx +++ b/x-pack/plugins/security_solution/public/common/components/threat_match/list_item.tsx @@ -9,7 +9,7 @@ import React, { useMemo, useCallback } from 'react'; import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import styled from 'styled-components'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { getFormattedEntries, getUpdatedEntriesOnDelete } from './helpers'; import { FormattedEntry, ThreatMapEntries, Entry } from './types'; import { EntryItem } from './entry_item'; diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx index ac9acb62c5834..28f942dfa61cb 100644 --- a/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx +++ b/x-pack/plugins/security_solution/public/common/components/top_n/index.tsx @@ -8,11 +8,11 @@ import React, { useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { useGlobalTime } from '../../containers/use_global_time'; import { BrowserFields } from '../../containers/source'; import { useKibana } from '../../lib/kibana'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { inputsModel, inputsSelectors, State } from '../../store'; import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { timelineSelectors } from '../../../timelines/store/timeline'; @@ -117,7 +117,7 @@ const StatefulTopNComponent: React.FC<Props> = ({ timelineId === TimelineId.active ? combineQueries({ browserFields, - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), dataProviders, filters: activeTimelineFilters, indexPattern, diff --git a/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx b/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx index 9c99189e1b79e..f0d7000e4ed95 100644 --- a/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx +++ b/x-pack/plugins/security_solution/public/common/components/top_n/top_n.tsx @@ -11,7 +11,7 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useSelector } from 'react-redux'; import styled from 'styled-components'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { GlobalTimeArgs } from '../../containers/use_global_time'; import { EventsByDataset } from '../../../overview/components/events_by_dataset'; import { SignalsByCategory } from '../../../overview/components/signals_by_category'; diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts b/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts index edf09a52006fd..3aca02dc420bf 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts @@ -28,7 +28,7 @@ export enum CONSTANTS { export type UrlStateType = | 'administration' | 'alerts' - | 'case' + | 'cases' | 'exceptions' | 'host' | 'network' diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts b/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts index 1ff98528a20b8..559dff64eec4b 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts @@ -10,7 +10,8 @@ import { parse, stringify } from 'query-string'; import { decode, encode } from 'rison-node'; import * as H from 'history'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter, Query } from '@kbn/es-query'; + import { url } from '../../../../../../../src/plugins/kibana_utils/public'; import { TimelineId, TimelineTabs } from '../../../../common/types/timeline'; @@ -106,7 +107,7 @@ export const getUrlType = (pageName: string): UrlStateType => { } else if (pageName === SecurityPageName.timelines) { return 'timeline'; } else if (pageName === SecurityPageName.case) { - return 'case'; + return 'cases'; } else if (pageName === SecurityPageName.administration) { return 'administration'; } diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx b/x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx index 11312e942c1eb..7c87aa19484bc 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx +++ b/x-pack/plugins/security_solution/public/common/components/url_state/initialize_redux_by_url.tsx @@ -10,7 +10,7 @@ import { Dispatch } from 'redux'; import { useCallback, useMemo } from 'react'; import { useDispatch } from 'react-redux'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter, Query } from '@kbn/es-query'; import { inputsActions, sourcererActions } from '../../store/actions'; import { InputsModelId, TimeRangeKinds } from '../../store/inputs/constants'; import { diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/test_dependencies.ts b/x-pack/plugins/security_solution/public/common/components/url_state/test_dependencies.ts index f722c5ec0da00..9820b771ca123 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/test_dependencies.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/test_dependencies.ts @@ -5,13 +5,13 @@ * 2.0. */ +import type { Query } from '@kbn/es-query'; import { navTabs } from '../../../app/home/home_navigations'; import { SecurityPageName } from '../../../app/types'; import { inputsActions } from '../../store/actions'; import { CONSTANTS } from './constants'; import { UrlStateContainerPropTypes, LocationTypes } from './types'; -import { Query } from '../../../../../../../src/plugins/data/public'; import { networkModel } from '../../../network/store'; import { hostsModel } from '../../../hosts/store'; import { HostsTableType } from '../../../hosts/store/model'; diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/types.ts b/x-pack/plugins/security_solution/public/common/components/url_state/types.ts index 2626f4fb03c23..d9c91f3371856 100644 --- a/x-pack/plugins/security_solution/public/common/components/url_state/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/url_state/types.ts @@ -5,8 +5,8 @@ * 2.0. */ -import { Filter, FilterManager, Query, SavedQueryService } from 'src/plugins/data/public'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { FilterManager, SavedQueryService } from 'src/plugins/data/public'; import { UrlInputsModel } from '../../store/inputs/model'; import { TimelineUrl } from '../../../timelines/store/timeline/model'; import { RouteSpyState } from '../../utils/route/types'; diff --git a/x-pack/plugins/security_solution/public/common/containers/cti/event_enrichment/api.ts b/x-pack/plugins/security_solution/public/common/containers/cti/event_enrichment/api.ts index 179b4a53e3676..f668f96cce966 100644 --- a/x-pack/plugins/security_solution/public/common/containers/cti/event_enrichment/api.ts +++ b/x-pack/plugins/security_solution/public/common/containers/cti/event_enrichment/api.ts @@ -8,7 +8,7 @@ import { Observable } from 'rxjs'; import { filter } from 'rxjs/operators'; -import { DataPublicPluginStart } from 'src/plugins/data/public'; +import type { DataPublicPluginStart } from 'src/plugins/data/public'; import { isErrorResponse, isCompleteResponse, diff --git a/x-pack/plugins/security_solution/public/common/containers/source/index.tsx b/x-pack/plugins/security_solution/public/common/containers/source/index.tsx index 8ddd33d76034f..f833c2f8c4fc0 100644 --- a/x-pack/plugins/security_solution/public/common/containers/source/index.tsx +++ b/x-pack/plugins/security_solution/public/common/containers/source/index.tsx @@ -8,7 +8,7 @@ import { isEmpty, isEqual, isUndefined, keyBy, pick } from 'lodash/fp'; import memoizeOne from 'memoize-one'; import { useCallback, useEffect, useRef, useState } from 'react'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { Subscription } from 'rxjs'; import { useKibana } from '../../lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts index 7e7942317788b..a5b73517c4fb5 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/api.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; import { EqlSearchStrategyRequest, EqlSearchStrategyResponse, diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/eql_search_response.mock.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/eql_search_response.mock.ts index 107a691b6dbeb..278e84f327d08 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/eql_search_response.mock.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/eql_search_response.mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { Source } from './types'; import { EqlSearchResponse } from '../../../../common/detection_engine/types'; import type { Connection } from '@elastic/elasticsearch'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.test.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.test.ts index 2dba3e3af3773..abdb3d2d06e9c 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.test.ts @@ -7,7 +7,7 @@ import moment from 'moment'; -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { Source } from './types'; import { EqlSearchResponse } from '../../../../common/detection_engine/types'; import { inputsModel } from '../../../common/store'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.ts index 68a8cb53b3815..7594696336eda 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/helpers.ts @@ -9,7 +9,7 @@ import moment from 'moment'; import { Unit } from '@elastic/datemath'; import { inputsModel } from '../../../common/store'; -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { InspectResponse } from '../../../types'; import { EqlPreviewResponse, Source } from './types'; import { BaseHit, EqlSearchResponse } from '../../../../common/detection_engine/types'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/eql/use_eql_preview.test.ts b/x-pack/plugins/security_solution/public/common/hooks/eql/use_eql_preview.test.ts index b1cd14fa039b5..00edace90b7fd 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/eql/use_eql_preview.test.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/eql/use_eql_preview.test.ts @@ -11,7 +11,7 @@ import { of, throwError } from 'rxjs'; import { delay } from 'rxjs/operators'; import * as i18n from '../translations'; -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { Source } from './types'; import { EqlSearchResponse } from '../../../../common/detection_engine/types'; import { useKibana } from '../../../common/lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.test.ts b/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.test.ts index fffc982d8aa58..786f25d8c6aba 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.test.ts +++ b/x-pack/plugins/security_solution/public/common/hooks/use_app_toasts.test.ts @@ -6,7 +6,7 @@ */ import { renderHook } from '@testing-library/react-hooks'; -import { IEsError } from 'src/plugins/data/public'; +import type { IEsError } from 'src/plugins/data/public'; import { KibanaError, SecurityAppError } from '@kbn/securitysolution-t-grid'; import { useToasts } from '../lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx b/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx index e03efcac4bbf6..a0cb9f941783e 100644 --- a/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx +++ b/x-pack/plugins/security_solution/public/common/hooks/use_invalid_filter_query.tsx @@ -7,7 +7,7 @@ import { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; -import { Query } from 'src/plugins/data/public'; +import type { Query } from '@kbn/es-query'; import { appSelectors } from '../store'; import { appActions } from '../store/app'; import { useAppToasts } from './use_app_toasts'; diff --git a/x-pack/plugins/security_solution/public/common/jest.config.js b/x-pack/plugins/security_solution/public/common/jest.config.js index e59f9c68f7590..3fedce946d633 100644 --- a/x-pack/plugins/security_solution/public/common/jest.config.js +++ b/x-pack/plugins/security_solution/public/common/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/common', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/public/common/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/observability/public/components/app/cases/callout/types.ts b/x-pack/plugins/security_solution/public/common/lib/cell_actions/constants.ts similarity index 61% rename from x-pack/plugins/observability/public/components/app/cases/callout/types.ts rename to x-pack/plugins/security_solution/public/common/lib/cell_actions/constants.ts index 84d79ee391b8f..eb0d3a08a7423 100644 --- a/x-pack/plugins/observability/public/components/app/cases/callout/types.ts +++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/constants.ts @@ -5,9 +5,5 @@ * 2.0. */ -export interface ErrorMessage { - id: string; - title: string; - description: JSX.Element; - errorType?: 'primary' | 'success' | 'warning' | 'danger'; -} +/** actions are disabled for these fields in tables and popovers */ +export const FIELDS_WITHOUT_CELL_ACTIONS = ['signal.rule.risk_score', 'signal.reason']; diff --git a/x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx b/x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx index 4b50fff48fe06..94ae557dfc300 100644 --- a/x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx +++ b/x-pack/plugins/security_solution/public/common/lib/cell_actions/expanded_cell_value_actions.tsx @@ -9,7 +9,7 @@ import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { noop } from 'lodash/fp'; import React, { useMemo, useState, useCallback } from 'react'; import styled from 'styled-components'; -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { BrowserFields } from '../../../../../timelines/common/search_strategy'; import { allowTopN } from '../../components/drag_and_drop/helpers'; import { ShowTopNButton } from '../../components/hover_actions/actions/show_top_n'; diff --git a/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts b/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts index a6c16a82deca0..0f814d758e7f5 100644 --- a/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts +++ b/x-pack/plugins/security_solution/public/common/mock/timeline_results.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { FilterStateStore } from '../../../../../../src/plugins/data/common'; +import { FilterStateStore } from '@kbn/es-query'; import { TimelineId, diff --git a/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts b/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts index 1e38b76909ca4..3da18090eb443 100644 --- a/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts +++ b/x-pack/plugins/security_solution/public/common/store/inputs/actions.ts @@ -7,9 +7,11 @@ import actionCreatorFactory from 'typescript-fsa'; +import type { Filter } from '@kbn/es-query'; import { InspectQuery, Refetch, RefetchKql } from './model'; import { InputsModelId } from './constants'; -import { Filter, SavedQuery } from '../../../../../../../src/plugins/data/public'; + +import type { SavedQuery } from '../../../../../../../src/plugins/data/public'; const actionCreator = actionCreatorFactory('x-pack/security_solution/local/inputs'); diff --git a/x-pack/plugins/security_solution/public/common/store/inputs/model.ts b/x-pack/plugins/security_solution/public/common/store/inputs/model.ts index 5791a4940cbed..f5e31d42e22ea 100644 --- a/x-pack/plugins/security_solution/public/common/store/inputs/model.ts +++ b/x-pack/plugins/security_solution/public/common/store/inputs/model.ts @@ -6,9 +6,10 @@ */ import { Dispatch } from 'redux'; +import type { Filter, Query } from '@kbn/es-query'; import { InputsModelId } from './constants'; import { CONSTANTS } from '../../components/url_state/constants'; -import { Query, Filter, SavedQuery } from '../../../../../../../src/plugins/data/public'; +import type { SavedQuery } from '../../../../../../../src/plugins/data/public'; export interface AbsoluteTimeRange { kind: 'absolute'; diff --git a/x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts b/x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts index 3aedc4696f301..864a473a82099 100644 --- a/x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts +++ b/x-pack/plugins/security_solution/public/common/store/inputs/selectors.ts @@ -7,7 +7,7 @@ import { createSelector } from 'reselect'; -import { Filter, Query } from '../../../../../../../src/plugins/data/public'; +import type { Filter, Query } from '@kbn/es-query'; import { State } from '../types'; import { InputsModel, InputsRange, GlobalQuery } from './model'; diff --git a/x-pack/plugins/security_solution/public/common/types.ts b/x-pack/plugins/security_solution/public/common/types.ts index 83a93769603e7..443edc0a9c4a5 100644 --- a/x-pack/plugins/security_solution/public/common/types.ts +++ b/x-pack/plugins/security_solution/public/common/types.ts @@ -6,7 +6,7 @@ */ import { ResponseErrorAttributes } from 'kibana/server'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { FieldSpec } from '../../../../../src/plugins/data_views/common'; export interface ServerApiError { diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/helpers.test.tsx b/x-pack/plugins/security_solution/public/common/utils/alerts.test.tsx similarity index 88% rename from x-pack/plugins/security_solution/public/cases/components/case_view/helpers.test.tsx rename to x-pack/plugins/security_solution/public/common/utils/alerts.test.tsx index 5eb0a03fc5db7..72f9ac9e7b6f3 100644 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/common/utils/alerts.test.tsx @@ -5,9 +5,9 @@ * 2.0. */ -import { buildAlertsQuery } from './helpers'; +import { buildAlertsQuery } from './alerts'; -describe('Case view helpers', () => { +describe('Alerts helpers', () => { describe('buildAlertsQuery', () => { it('it builds the alerts query', () => { expect(buildAlertsQuery(['alert-id-1', 'alert-id-2'])).toEqual({ diff --git a/x-pack/plugins/security_solution/public/cases/components/case_view/helpers.ts b/x-pack/plugins/security_solution/public/common/utils/alerts.ts similarity index 65% rename from x-pack/plugins/security_solution/public/cases/components/case_view/helpers.ts rename to x-pack/plugins/security_solution/public/common/utils/alerts.ts index bfaa5fb7652d4..cdbabdcbb560e 100644 --- a/x-pack/plugins/security_solution/public/cases/components/case_view/helpers.ts +++ b/x-pack/plugins/security_solution/public/common/utils/alerts.ts @@ -6,11 +6,7 @@ */ import { isObject, get, isString, isNumber } from 'lodash'; -import { useMemo } from 'react'; -import { useSourcererDataView } from '../../../common/containers/sourcerer'; -import { SourcererScopeName } from '../../../common/store/sourcerer/model'; -import { useQueryAlerts } from '../../../detections/containers/detection_engine/alerts/use_query'; -import { Ecs } from '../../../../../cases/common'; +import { Ecs } from '../../../../cases/common'; // TODO we need to allow -> docValueFields: [{ field: "@timestamp" }], export const buildAlertsQuery = (alertIds: string[]) => { @@ -85,7 +81,7 @@ interface Signal { }; } -interface SignalHit { +export interface SignalHit { _id: string; _index: string; _source: { @@ -101,31 +97,3 @@ export interface Alert { signal: Signal; [key: string]: unknown; } -export const useFetchAlertData = (alertIds: string[]): [boolean, Record<string, Ecs>] => { - const { selectedPatterns } = useSourcererDataView(SourcererScopeName.detections); - const alertsQuery = useMemo(() => buildAlertsQuery(alertIds), [alertIds]); - - const { loading: isLoadingAlerts, data: alertsData } = useQueryAlerts<SignalHit, unknown>({ - query: alertsQuery, - indexName: selectedPatterns[0], - }); - - const alerts = useMemo( - () => - alertsData?.hits.hits.reduce<Record<string, Ecs>>( - (acc, { _id, _index, _source }) => ({ - ...acc, - [_id]: { - ...formatAlertToEcsSignal(_source), - _id, - _index, - timestamp: _source['@timestamp'], - }, - }), - {} - ) ?? {}, - [alertsData?.hits.hits] - ); - - return [isLoadingAlerts, alerts]; -}; diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx index f1b7d8b06644d..9660916d4f32c 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.test.tsx @@ -9,8 +9,6 @@ import React from 'react'; import { waitFor, act } from '@testing-library/react'; import { mount } from 'enzyme'; -import { esQuery } from '../../../../../../../../src/plugins/data/public'; - import { TestProviders } from '../../../../common/mock'; import { AlertsCountPanel } from './index'; @@ -34,10 +32,11 @@ describe('AlertsCountPanel', () => { describe('Query', () => { it('it render with a illegal KQL', async () => { - const spyOnBuildEsQuery = jest.spyOn(esQuery, 'buildEsQuery'); - spyOnBuildEsQuery.mockImplementation(() => { - throw new Error('Something went wrong'); - }); + jest.mock('@kbn/es-query', () => ({ + buildEsQuery: jest.fn().mockImplementation(() => { + throw new Error('Something went wrong'); + }), + })); const props = { ...defaultProps, query: { query: 'host.name: "', language: 'kql' } }; const wrapper = mount( <TestProviders> diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx index 29324d186784e..94b09c4a5ea21 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_count_panel/index.tsx @@ -8,6 +8,8 @@ import React, { memo, useMemo, useState, useEffect } from 'react'; import uuid from 'uuid'; +import type { Filter, Query } from '@kbn/es-query'; +import { buildEsQuery } from '@kbn/es-query'; import { useGlobalTime } from '../../../../common/containers/use_global_time'; import { HeaderSection } from '../../../../common/components/header_section'; @@ -20,7 +22,6 @@ import { AlertsCount } from './alerts_count'; import type { AlertsCountAggregation } from './types'; import { DEFAULT_STACK_BY_FIELD } from '../common/config'; import type { AlertsStackByField } from '../common/types'; -import { Filter, esQuery, Query } from '../../../../../../../../src/plugins/data/public'; import { KpiPanel, StackBySelect } from '../common/components'; import { useInspectButton } from '../common/hooks'; @@ -52,7 +53,7 @@ export const AlertsCountPanel = memo<AlertsCountPanelProps>( const additionalFilters = useMemo(() => { try { return [ - esQuery.buildEsQuery( + buildEsQuery( undefined, query != null ? [query] : [], filters?.filter((f) => f.meta.disabled === false) ?? [] diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.test.tsx index f53141ca9c109..09c184bb62bd5 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { waitFor, act } from '@testing-library/react'; import { mount } from 'enzyme'; -import { esQuery, Filter } from '../../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { TestProviders } from '../../../../common/mock'; import { SecurityPageName } from '../../../../app/types'; @@ -133,10 +133,11 @@ describe('AlertsHistogramPanel', () => { describe('Query', () => { it('it render with a illegal KQL', async () => { await act(async () => { - const spyOnBuildEsQuery = jest.spyOn(esQuery, 'buildEsQuery'); - spyOnBuildEsQuery.mockImplementation(() => { - throw new Error('Something went wrong'); - }); + jest.mock('@kbn/es-query', () => ({ + buildEsQuery: jest.fn().mockImplementation(() => { + throw new Error('Something went wrong'); + }), + })); const props = { ...defaultProps, query: { query: 'host.name: "', language: 'kql' } }; const wrapper = mount( <TestProviders> diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx index 9095f181b00c1..873b5d40184ef 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_kpis/alerts_histogram_panel/index.tsx @@ -13,13 +13,14 @@ import styled from 'styled-components'; import { isEmpty } from 'lodash/fp'; import uuid from 'uuid'; +import { Filter, buildEsQuery, Query } from '@kbn/es-query'; import { useGlobalTime } from '../../../../common/containers/use_global_time'; import { DEFAULT_NUMBER_FORMAT, APP_UI_ID } from '../../../../../common/constants'; import type { UpdateDateRange } from '../../../../common/components/charts/common'; import type { LegendItem } from '../../../../common/components/charts/draggable_legend_item'; import { escapeDataProviderId } from '../../../../common/components/drag_and_drop/helpers'; import { HeaderSection } from '../../../../common/components/header_section'; -import { Filter, esQuery, Query } from '../../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { useQueryAlerts } from '../../../containers/detection_engine/alerts/use_query'; import { getDetectionEngineUrl, useFormatUrl } from '../../../../common/components/link_to'; import { defaultLegendColors } from '../../../../common/components/matrix_histogram/utils'; @@ -214,12 +215,12 @@ export const AlertsHistogramPanel = memo<AlertsHistogramPanelProps>( if (combinedQueries != null) { converted = parseCombinedQueries(combinedQueries); } else { - converted = esQuery.buildEsQuery( + converted = buildEsQuery( undefined, query != null ? [query] : [], filters?.filter((f) => f.meta.disabled === false) ?? [], { - ...esQuery.getEsQueryConfig(kibana.services.uiSettings), + ...getEsQueryConfig(kibana.services.uiSettings), dateFormatTZ: undefined, } ); diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.test.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.test.tsx index d37ba65eb8a89..73af793275122 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/actions.test.tsx @@ -23,7 +23,7 @@ import { TimelineStatus, TimelineTabs, } from '../../../../common/types/timeline'; -import { ISearchStart } from '../../../../../../../src/plugins/data/public'; +import type { ISearchStart } from '../../../../../../../src/plugins/data/public'; import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; import { getTimelineTemplate } from '../../../timelines/containers/api'; import { defaultHeaders } from '../../../timelines/components/timeline/body/column_headers/default_headers'; diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx index 6c9d41b27ae25..3d64d2d45fbf3 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/default_config.tsx @@ -17,11 +17,10 @@ import { ALERT_RULE_CATEGORY, } from '@kbn/rule-data-utils/technical_field_names'; +import type { Filter } from '@kbn/es-query'; import { defaultColumnHeaderType } from '../../../timelines/components/timeline/body/column_headers/default_headers'; import { ColumnHeaderOptions, RowRendererId } from '../../../../common/types/timeline'; import { Status } from '../../../../common/detection_engine/schemas/common/schemas'; -import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; - import { SubsetTimelineModel } from '../../../timelines/store/timeline/model'; import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { columns } from '../../configurations/security_solution_detections/columns'; diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts b/x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts index 44d4c62c384a4..11c25e4d3c9ea 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/helpers.test.ts @@ -6,7 +6,7 @@ */ import { TimelineType } from '../../../../common/types/timeline'; -import { esFilters, Filter } from '../../../../../../../src/plugins/data/public'; +import { Filter, FilterStateStore } from '@kbn/es-query'; import { DataProvider, DataProviderType, @@ -563,7 +563,7 @@ describe('helpers', () => { }, }, $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, }, ]); diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx index 76603c637f4c6..bbab423738ca0 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/index.tsx @@ -9,7 +9,8 @@ import { isEmpty } from 'lodash/fp'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { connect, ConnectedProps, useDispatch } from 'react-redux'; import { Dispatch } from 'redux'; -import { esQuery, Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { Status } from '../../../../common/detection_engine/schemas/common/schemas'; import { RowRendererId, TimelineIdLiteral } from '../../../../common/types/timeline'; import { StatefulEventsViewer } from '../../../common/components/events_viewer'; @@ -113,7 +114,7 @@ export const AlertsTableComponent: React.FC<AlertsTableComponentProps> = ({ (customFilters: Filter[]) => { if (browserFields != null && indexPatterns != null) { return combineQueries({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), dataProviders: [], indexPattern: indexPatterns, browserFields, diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx index 52dfe28900ce4..7a6ff229fbcd9 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/timeline_actions/alert_context_menu.tsx @@ -27,7 +27,7 @@ import { TimelineId } from '../../../../../common'; import { AlertData, EcsHit } from '../../../../common/components/exceptions/types'; import { useQueryAlerts } from '../../../containers/detection_engine/alerts/use_query'; import { useSignalIndex } from '../../../containers/detection_engine/alerts/use_signal_index'; -import { EventFiltersModal } from '../../../../management/pages/event_filters/view/components/modal'; +import { EventFiltersFlyout } from '../../../../management/pages/event_filters/view/components/flyout'; import { useAlertsActions } from './use_alerts_actions'; import { useExceptionModal } from './use_add_exception_modal'; import { useExceptionActions } from './use_add_exception_actions'; @@ -217,7 +217,7 @@ const AlertContextMenuComponent: React.FC<AlertContextMenuProps & PropsFromRedux /> )} {isAddEventFilterModalOpen && ecsRowData != null && ( - <EventFiltersModal data={ecsRowData} onCancel={closeAddEventFilterModal} /> + <EventFiltersFlyout data={ecsRowData} onCancel={closeAddEventFilterModal} /> )} </> ); diff --git a/x-pack/plugins/security_solution/public/detections/components/alerts_table/types.ts b/x-pack/plugins/security_solution/public/detections/components/alerts_table/types.ts index 3e525bfe25ad9..1ca0fc9b7ca23 100644 --- a/x-pack/plugins/security_solution/public/detections/components/alerts_table/types.ts +++ b/x-pack/plugins/security_solution/public/detections/components/alerts_table/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { ISearchStart } from '../../../../../../../src/plugins/data/public'; +import type { ISearchStart } from '../../../../../../../src/plugins/data/public'; import { Status } from '../../../../common/detection_engine/schemas/common/schemas'; import { Ecs } from '../../../../common/ecs'; import { NoteResult } from '../../../../common/types/timeline/note'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx index 91dbadbb209e1..3c733870e8498 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/autocomplete_field/index.tsx @@ -8,7 +8,7 @@ import React, { useCallback, useMemo } from 'react'; import { EuiFormRow } from '@elastic/eui'; import { FieldComponent } from '@kbn/securitysolution-autocomplete'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import { FieldHook } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib'; interface AutocompleteFieldProps { diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.test.tsx index 1ab9f92bc6d80..7c345c3e07a2b 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.test.tsx @@ -11,11 +11,11 @@ import { EuiLoadingSpinner } from '@elastic/eui'; import { coreMock } from '../../../../../../../../src/core/public/mocks'; import { - esFilters, FilterManager, UI_SETTINGS, + FilterLabel, } from '../../../../../../../../src/plugins/data/public'; -import { DataViewBase } from '@kbn/es-query'; +import { DataViewBase, FilterStateStore } from '@kbn/es-query'; import { SeverityBadge } from '../severity_badge'; import * as i18n from './translations'; @@ -49,7 +49,7 @@ const mockQueryBar = { filters: [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -149,7 +149,7 @@ describe('helpers', () => { } as unknown as DataViewBase, }); const wrapper = shallow<React.ReactElement>(result[0].description as React.ReactElement); - const filterLabelComponent = wrapper.find(esFilters.FilterLabel).at(0); + const filterLabelComponent = wrapper.find(FilterLabel).at(0); expect(result[0].title).toEqual(<>{i18n.FILTERS_LABEL} </>); expect(filterLabelComponent.prop('valueLabel')).toEqual('file'); diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx index 305e0fcd46ef8..b72c11fc35687 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/helpers.tsx @@ -28,7 +28,10 @@ import { assertUnreachable } from '../../../../../common/utility_types'; import * as i18nSeverity from '../severity_mapping/translations'; import * as i18nRiskScore from '../risk_score_mapping/translations'; import { Threshold } from '../../../../../common/detection_engine/schemas/common/schemas'; -import { esFilters } from '../../../../../../../../src/plugins/data/public'; +import { + getDisplayValueFromFilter, + FilterLabel, +} from '../../../../../../../../src/plugins/data/public'; import { subtechniquesOptions, @@ -82,9 +85,9 @@ export const buildQueryBarDescription = ({ <EuiFlexItem grow={false} key={`${field}-filter-${index}`}> <EuiBadgeWrap color="hollow"> {indexPatterns != null ? ( - <esFilters.FilterLabel + <FilterLabel filter={filter} - valueLabel={esFilters.getDisplayValueFromFilter(filter, [indexPatterns])} + valueLabel={getDisplayValueFromFilter(filter, [indexPatterns])} /> ) : ( <EuiLoadingSpinner size="m" /> diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.test.tsx index b403e4a6fe194..70fc4cf61503b 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.test.tsx @@ -15,12 +15,8 @@ import { getDescriptionItem, } from '.'; -import { - esFilters, - Filter, - FilterManager, - UI_SETTINGS, -} from '../../../../../../../../src/plugins/data/public'; +import { FilterManager, UI_SETTINGS } from '../../../../../../../../src/plugins/data/public'; +import { Filter, FilterStateStore } from '@kbn/es-query'; import { mockAboutStepRule, mockDefineStepRule, @@ -85,7 +81,7 @@ describe('description_step', () => { const filters: Filter[] = [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -105,7 +101,7 @@ describe('description_step', () => { }, { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -128,7 +124,7 @@ describe('description_step', () => { const expected: Filter[] = [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -148,7 +144,7 @@ describe('description_step', () => { }, { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -211,7 +207,7 @@ describe('description_step', () => { const expected: Filter[] = [ { $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, meta: { alias: null, @@ -231,7 +227,7 @@ describe('description_step', () => { }, { $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, meta: { alias: null, diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx index e403da9e49090..62ea034dd0b33 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/index.tsx @@ -11,8 +11,8 @@ import React, { memo, useState } from 'react'; import styled from 'styled-components'; import { ThreatMapping, Threats, Type } from '@kbn/securitysolution-io-ts-alerting-types'; -import { DataViewBase } from '@kbn/es-query'; -import { Filter, esFilters, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { DataViewBase, Filter, FilterStateStore } from '@kbn/es-query'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { DEFAULT_TIMELINE_TITLE } from '../../../../timelines/components/timeline/translations'; import { useKibana } from '../../../../common/lib/kibana'; import { AboutStepRiskScore, AboutStepSeverity } from '../../../pages/detection_engine/rules/types'; @@ -144,7 +144,7 @@ export const buildListItems = <T,>( export const addFilterStateIfNotThere = (filters: Filter[]): Filter[] => { return filters.map((filter) => { if (filter.$state == null) { - return { $state: { store: esFilters.FilterStateStore.APP_STATE }, ...filter }; + return { $state: { store: FilterStateStore.APP_STATE }, ...filter }; } else { return filter; } diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx index 27afe847f7612..4b61504ec997a 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/ml_job_description.tsx @@ -51,7 +51,7 @@ export const AuditIcon = React.memo(AuditIconComponent); const JobStatusBadgeComponent: React.FC<{ job: MlSummaryJob }> = ({ job }) => { const isStarted = isJobStarted(job.jobState, job.datafeedState); - const color = isStarted ? 'secondary' : 'danger'; + const color = isStarted ? 'success' : 'danger'; const text = isStarted ? ML_JOB_STARTED : ML_JOB_STOPPED; return ( diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts index 02c25e5c12bee..ab7c0ea9ed47d 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/description_step/types.ts @@ -7,8 +7,8 @@ import { ReactNode } from 'react'; import { Threats } from '@kbn/securitysolution-io-ts-alerting-types'; -import { DataViewBase } from '@kbn/es-query'; -import { Filter, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import type { DataViewBase, Filter } from '@kbn/es-query'; +import type { FilterManager } from '../../../../../../../../src/plugins/data/public'; export interface ListItems { title: NonNullable<ReactNode>; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx index 42f92f8cb6ce1..0440ca8c311fd 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx @@ -10,7 +10,7 @@ import React, { useCallback, useEffect, useState } from 'react'; import { Subscription } from 'rxjs'; import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { FilterManager, SavedQuery } from '../../../../../../../../src/plugins/data/public'; import { BrowserFields } from '../../../../common/containers/source'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/index.test.tsx index 2ef114a25f32a..f14bd5f7354d9 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/index.test.tsx @@ -17,7 +17,7 @@ import { getMockEqlResponse } from '../../../../common/hooks/eql/eql_search_resp import { useMatrixHistogram } from '../../../../common/containers/matrix_histogram'; import { useEqlPreview } from '../../../../common/hooks/eql/'; import { getMockTheme } from '../../../../common/lib/kibana/kibana_react.mock'; -import { FilterMeta } from 'src/plugins/data/common'; +import type { FilterMeta } from '@kbn/es-query'; const mockTheme = getMockTheme({ eui: { diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts b/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts index 690e685619887..4e83db29de65b 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/query_preview/reducer.ts @@ -9,8 +9,8 @@ import { Unit } from '@elastic/datemath'; import { EuiSelectOption } from '@elastic/eui'; import { Type, Language } from '@kbn/securitysolution-io-ts-alerting-types'; +import type { Filter } from '@kbn/es-query'; import * as i18n from '../rule_preview/translations'; -import { Filter } from '../../../../../../../../src/plugins/data/common/es_query'; import { ESQuery } from '../../../../../common/typed_json'; import { FieldValueQueryBar } from '../query_bar'; import { formatDate } from '../../../../common/components/super_date_picker'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx index fbeea64cae7da..fcc95f2398cf7 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/risk_score_mapping/index.tsx @@ -21,7 +21,7 @@ import styled from 'styled-components'; import { noop } from 'lodash/fp'; import { RiskScoreMapping } from '@kbn/securitysolution-io-ts-alerting-types'; import { FieldComponent } from '@kbn/securitysolution-autocomplete'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import * as i18n from './translations'; import { FieldHook } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib'; import { AboutStepRiskScore } from '../../../pages/detection_engine/rules/types'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts index 9844afdf360bf..9de802a39bf08 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts +++ b/x-pack/plugins/security_solution/public/detections/components/rules/rule_preview/helpers.ts @@ -9,14 +9,13 @@ import { Position, ScaleType } from '@elastic/charts'; import { EuiSelectOption } from '@elastic/eui'; import { Type, Language, ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; import { Unit } from '@elastic/datemath'; +import type { Filter } from '@kbn/es-query'; import * as i18n from './translations'; import { histogramDateTimeFormatter } from '../../../../common/components/utils'; import { ChartSeriesConfigs } from '../../../../common/components/charts/common'; import { getQueryFilter } from '../../../../../common/detection_engine/get_query_filter'; import { FieldValueQueryBar } from '../query_bar'; import { ESQuery } from '../../../../../common/typed_json'; -import { Filter } from '../../../../../../../../src/plugins/data/common/es_query'; - /** * Determines whether or not to display noise warning. * Is considered noisy if alerts/hour rate > 1 diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx index f6578fab0c5fb..da7b1e0067691 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/severity_mapping/index.tsx @@ -29,7 +29,7 @@ import { AutocompleteFieldMatchComponent, } from '@kbn/securitysolution-autocomplete'; -import { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; +import type { DataViewBase, DataViewFieldBase } from '@kbn/es-query'; import * as i18n from './translations'; import { FieldHook } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib'; import { SeverityOptionItem } from '../step_about_rule/data'; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.test.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.test.tsx index 9340ca2af1513..01ba47f728e43 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.test.tsx @@ -20,6 +20,7 @@ import { AboutStepRule, RuleStepsFormHooks, RuleStep, + DefineStepRule, } from '../../../pages/detection_engine/rules/types'; import { fillEmptySeverityMappings } from '../../../pages/detection_engine/rules/helpers'; import { getMockTheme } from '../../../../common/lib/kibana/kibana_react.mock'; @@ -105,6 +106,63 @@ describe.skip('StepAboutRuleComponent', () => { }); }); + it('is invalid if threat match rule and threat_indicator_path is not present', async () => { + const wrapper = mount( + <ThemeProvider theme={mockTheme}> + <StepAboutRule + addPadding={true} + defaultValues={stepAboutDefaultValue} + defineRuleData={{ ruleType: 'threat_match' } as DefineStepRule} + descriptionColumns="multi" + isReadOnlyView={false} + setForm={setFormHook} + isLoading={false} + /> + </ThemeProvider> + ); + + await act(async () => { + if (!formHook) { + throw new Error('Form hook not set, but tests depend on it'); + } + wrapper + .find('[data-test-subj="detectionEngineStepAboutThreatIndicatorPath"] input') + .first() + .simulate('change', { target: { value: '' } }); + + const result = await formHook(); + expect(result?.isValid).toEqual(false); + }); + }); + + it('is valid if is not a threat match rule and threat_indicator_path is not present', async () => { + const wrapper = mount( + <ThemeProvider theme={mockTheme}> + <StepAboutRule + addPadding={true} + defaultValues={stepAboutDefaultValue} + descriptionColumns="multi" + isReadOnlyView={false} + setForm={setFormHook} + isLoading={false} + /> + </ThemeProvider> + ); + + await act(async () => { + if (!formHook) { + throw new Error('Form hook not set, but tests depend on it'); + } + wrapper + .find('[data-test-subj="detectionEngineStepAboutThreatIndicatorPath"] input') + .first() + .simulate('change', { target: { value: '' } }); + + const result = await formHook(); + expect(result?.isValid).toEqual(true); + }); + }); + it('is invalid if no "name" is present', async () => { const wrapper = mount( <ThemeProvider theme={mockTheme}> diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.tsx index 91e428382dc30..5f5b636d6afe1 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/index.tsx @@ -6,7 +6,7 @@ */ import { EuiAccordion, EuiFlexItem, EuiSpacer, EuiFormRow } from '@elastic/eui'; -import React, { FC, memo, useCallback, useEffect, useState } from 'react'; +import React, { FC, memo, useCallback, useEffect, useState, useMemo } from 'react'; import styled from 'styled-components'; import { @@ -31,7 +31,7 @@ import { import { defaultRiskScoreBySeverity, severityOptions } from './data'; import { stepAboutDefaultValue } from './default_value'; import { isUrlInvalid } from '../../../../common/utils/validators'; -import { schema } from './schema'; +import { schema as defaultSchema, threatIndicatorPathRequiredSchemaValue } from './schema'; import * as I18n from './translations'; import { StepContentWrapper } from '../step_content_wrapper'; import { NextStep } from '../next_step'; @@ -73,7 +73,28 @@ const StepAboutRuleComponent: FC<StepAboutRuleProps> = ({ onSubmit, setForm, }) => { - const initialState = defaultValues ?? stepAboutDefaultValue; + const isThreatMatchRuleValue = useMemo( + () => isThreatMatchRule(defineRuleData?.ruleType), + [defineRuleData?.ruleType] + ); + + const initialState: AboutStepRule = useMemo( + () => + defaultValues ?? + (isThreatMatchRuleValue + ? { ...stepAboutDefaultValue, threatIndicatorPath: DEFAULT_INDICATOR_SOURCE_PATH } + : stepAboutDefaultValue), + [defaultValues, isThreatMatchRuleValue] + ); + + const schema = useMemo( + () => + isThreatMatchRuleValue + ? { ...defaultSchema, threatIndicatorPath: threatIndicatorPathRequiredSchemaValue } + : defaultSchema, + [isThreatMatchRuleValue] + ); + const [severityValue, setSeverityValue] = useState<string>(initialState.severity.value); const [indexPatternLoading, { indexPatterns }] = useFetchIndex(defineRuleData?.index ?? []); @@ -300,7 +321,7 @@ const StepAboutRuleComponent: FC<StepAboutRuleProps> = ({ /> </EuiFormRow> <EuiSpacer size="l" /> - {isThreatMatchRule(defineRuleData?.ruleType) && ( + {isThreatMatchRuleValue && ( <> <CommonUseField path="threatIndicatorPath" diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/schema.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/schema.tsx index 1dd59d49e4ff5..9ee594ba7d3cf 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/schema.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/step_about_rule/schema.tsx @@ -291,3 +291,33 @@ export const schema: FormSchema<AboutStepRule> = { labelAppend: OptionalFieldLabel, }, }; + +export const threatIndicatorPathRequiredSchemaValue = { + type: FIELD_TYPES.TEXT, + label: i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepAboutRule.fieldThreatIndicatorPathLabel', + { + defaultMessage: 'Indicator prefix override', + } + ), + helpText: i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepAboutRule.fieldThreatIndicatorPathHelpText', + { + defaultMessage: + 'Specify the document prefix containing your indicator fields. Used for enrichment of indicator match alerts.', + } + ), + validations: [ + { + validator: emptyField( + i18n.translate( + 'xpack.securitySolution.detectionEngine.createRule.stepAboutRule.threatIndicatorPathFieldEmptyError', + { + defaultMessage: 'Indicator prefix override must not be empty', + } + ) + ), + type: VALIDATION_TYPES.FIELD, + }, + ], +}; diff --git a/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx b/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx index 91158979a82c5..961007f2dac4d 100644 --- a/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx +++ b/x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx @@ -7,7 +7,7 @@ import React, { useCallback, useEffect, useState } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiSpacer, EuiFormRow } from '@elastic/eui'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ThreatMapEntries } from '../../../../common/components/threat_match/types'; import { ThreatMatchComponent } from '../../../../common/components/threat_match'; import { BrowserField } from '../../../../common/containers/source'; diff --git a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_fetch_ecs_alerts_data.ts b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_fetch_ecs_alerts_data.ts index 64b5d6ea9431a..c459fab89a25e 100644 --- a/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_fetch_ecs_alerts_data.ts +++ b/x-pack/plugins/security_solution/public/detections/containers/detection_engine/alerts/use_fetch_ecs_alerts_data.ts @@ -8,14 +8,11 @@ import { useEffect, useState } from 'react'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { isEmpty } from 'lodash'; -import { - buildAlertsQuery, - formatAlertToEcsSignal, -} from '../../../../cases/components/case_view/helpers'; import { Ecs } from '../../../../../common/ecs'; import { DETECTION_ENGINE_QUERY_SIGNALS_URL } from '../../../../../common/constants'; import { KibanaServices } from '../../../../common/lib/kibana'; +import { buildAlertsQuery, formatAlertToEcsSignal } from '../../../../common/utils/alerts'; export const useFetchEcsAlertsData = ({ alertIds, diff --git a/x-pack/plugins/security_solution/public/detections/jest.config.js b/x-pack/plugins/security_solution/public/detections/jest.config.js index 23bc914b6493b..1121326c4ee34 100644 --- a/x-pack/plugins/security_solution/public/detections/jest.config.js +++ b/x-pack/plugins/security_solution/public/detections/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '<rootDir>/x-pack/plugins/security_solution/public/detections/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts index 821413b361701..77de8902be33a 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/all/__mocks__/mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { esFilters } from '../../../../../../../../../../src/plugins/data/public'; +import { FilterStateStore } from '@kbn/es-query'; import { Rule, RuleError } from '../../../../../containers/detection_engine/rules'; import { AboutStepRule, ActionsStepRule, DefineStepRule, ScheduleStepRule } from '../../types'; import { FieldValueQueryBar } from '../../../../../components/rules/query_bar'; @@ -20,7 +20,7 @@ export const mockQueryBar: FieldValueQueryBar = { filters: [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, @@ -94,7 +94,7 @@ export const mockRuleWithEverything = (id: string): Rule => ({ filters: [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx index fa600d9ce4a0e..d8c17f064d016 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.test.tsx @@ -22,7 +22,8 @@ import { fillEmptySeverityMappings, } from './helpers'; import { mockRuleWithEverything, mockRule } from './all/__mocks__/mock'; -import { esFilters } from '../../../../../../../../src/plugins/data/public'; +import { FilterStateStore } from '@kbn/es-query'; + import { Rule } from '../../../containers/detection_engine/rules'; import { AboutStepRule, @@ -60,7 +61,7 @@ describe('rule helpers', () => { filters: [ { $state: { - store: esFilters.FilterStateStore.GLOBAL_STATE, + store: FilterStateStore.GLOBAL_STATE, }, meta: { alias: null, diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx index 18b5d74516199..39a6b12d63132 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/helpers.tsx @@ -19,12 +19,12 @@ import { Severity, } from '@kbn/securitysolution-io-ts-alerting-types'; import { ENDPOINT_LIST_ID } from '@kbn/securitysolution-list-constants'; +import type { Filter } from '@kbn/es-query'; import { ActionVariables } from '../../../../../../triggers_actions_ui/public'; import { normalizeThresholdField } from '../../../../../common/detection_engine/utils'; import { RuleAlertAction } from '../../../../../common/detection_engine/types'; import { assertUnreachable } from '../../../../../common/utility_types'; import { transformRuleToAlertAction } from '../../../../../common/detection_engine/transform_actions'; -import { Filter } from '../../../../../../../../src/plugins/data/public'; import { Rule } from '../../../containers/detection_engine/rules'; import { AboutStepRule, diff --git a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts index dc580f591da56..c1141ba527dbd 100644 --- a/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts +++ b/x-pack/plugins/security_solution/public/detections/pages/detection_engine/rules/types.ts @@ -15,9 +15,9 @@ import { SeverityMapping, Severity, } from '@kbn/securitysolution-io-ts-alerting-types'; +import type { Filter } from '@kbn/es-query'; import { RuleAlertAction } from '../../../../../common/detection_engine/types'; import { AlertAction } from '../../../../../../alerting/common'; -import { Filter } from '../../../../../../../../src/plugins/data/common'; import { FieldValueQueryBar } from '../../../components/rules/query_bar'; import { FieldValueTimeline } from '../../../components/rules/pick_timeline'; import { FieldValueThreshold } from '../../../components/rules/threshold_input'; diff --git a/x-pack/plugins/security_solution/public/helpers.tsx b/x-pack/plugins/security_solution/public/helpers.tsx index 170d7175aa5f3..d330da94e779c 100644 --- a/x-pack/plugins/security_solution/public/helpers.tsx +++ b/x-pack/plugins/security_solution/public/helpers.tsx @@ -109,6 +109,7 @@ export const manageOldSiemRoutes = async (coreStart: CoreStart) => { }); break; case SecurityPageName.case: + case 'case': application.navigateToApp(APP_UI_ID, { deepLinkId: SecurityPageName.case, replace: true, diff --git a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx b/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx index 23e5da28a3559..65357b15036ea 100644 --- a/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/components/authentications_table/index.tsx @@ -140,7 +140,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.USER, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.user.name, @@ -151,7 +151,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.SUCCESSES, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => { const id = escapeDataProviderId( `authentications-table-${node._id}-node-successes-${node.successes}` @@ -189,7 +189,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.FAILURES, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => { const id = escapeDataProviderId( `authentications-table-${node._id}-failures-${node.failures}` @@ -227,7 +227,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_SUCCESSFUL_TIME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => has('lastSuccess.timestamp', node) && node.lastSuccess?.timestamp != null ? ( <FormattedRelativePreferenceDate value={node.lastSuccess?.timestamp} /> @@ -238,7 +238,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_SUCCESSFUL_SOURCE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.lastSuccess?.source?.ip || null, @@ -250,7 +250,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_SUCCESSFUL_DESTINATION, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.lastSuccess?.host?.name ?? null, @@ -262,7 +262,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_FAILED_TIME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => has('lastFailure.timestamp', node) && node.lastFailure?.timestamp != null ? ( <FormattedRelativePreferenceDate value={node.lastFailure?.timestamp} /> @@ -273,7 +273,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_FAILED_SOURCE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.lastFailure?.source?.ip || null, @@ -285,7 +285,7 @@ const getAuthenticationColumns = (): AuthTableColumns => [ { name: i18n.LAST_FAILED_DESTINATION, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.lastFailure?.host?.name || null, diff --git a/x-pack/plugins/security_solution/public/hosts/components/hosts_table/columns.tsx b/x-pack/plugins/security_solution/public/hosts/components/hosts_table/columns.tsx index d6c51b2bfe05e..95f88da0a24ac 100644 --- a/x-pack/plugins/security_solution/public/hosts/components/hosts_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/hosts/components/hosts_table/columns.tsx @@ -31,7 +31,7 @@ export const getHostsColumns = (): HostsTableColumns => [ field: 'node.host.name', name: i18n.NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (hostName) => { if (hostName != null && hostName.length > 0) { @@ -75,7 +75,7 @@ export const getHostsColumns = (): HostsTableColumns => [ </EuiToolTip> ), truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (lastSeen: Maybe<string | string[]> | undefined) => { if (lastSeen != null && lastSeen.length > 0) { @@ -92,7 +92,7 @@ export const getHostsColumns = (): HostsTableColumns => [ field: 'node.host.os.name', name: i18n.OS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (hostOsName) => { if (hostOsName != null) { @@ -109,7 +109,7 @@ export const getHostsColumns = (): HostsTableColumns => [ field: 'node.host.os.version', name: i18n.VERSION, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (hostOsVersion) => { if (hostOsVersion != null) { diff --git a/x-pack/plugins/security_solution/public/hosts/components/uncommon_process_table/index.tsx b/x-pack/plugins/security_solution/public/hosts/components/uncommon_process_table/index.tsx index 0541f2f1d403d..0af27bdb0ba18 100644 --- a/x-pack/plugins/security_solution/public/hosts/components/uncommon_process_table/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/components/uncommon_process_table/index.tsx @@ -144,7 +144,7 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ { name: i18n.NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.process.name, @@ -157,7 +157,7 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ align: 'right', name: i18n.NUMBER_OF_HOSTS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => <>{node.hosts != null ? node.hosts.length : getEmptyValue()}</>, width: '8%', }, @@ -165,14 +165,14 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ align: 'right', name: i18n.NUMBER_OF_INSTANCES, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => defaultToEmptyTag(node.instances), width: '8%', }, { name: i18n.HOSTS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: getHostNames(node), @@ -185,7 +185,7 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ { name: i18n.LAST_COMMAND, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.process != null ? node.process.args : null, @@ -198,7 +198,7 @@ const getUncommonColumns = (): UncommonProcessTableColumns => [ { name: i18n.LAST_USER, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: ({ node }) => getRowItemDraggables({ rowItems: node.user != null ? node.user.name : null, diff --git a/x-pack/plugins/security_solution/public/hosts/jest.config.js b/x-pack/plugins/security_solution/public/hosts/jest.config.js index b0ead04130b74..d8354b47c3cbe 100644 --- a/x-pack/plugins/security_solution/public/hosts/jest.config.js +++ b/x-pack/plugins/security_solution/public/hosts/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/hosts', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/public/hosts/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts b/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts index 3139cc4ed4ff7..77cb6f5f54a76 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.test.ts @@ -6,7 +6,7 @@ */ import { getHostDetailsEventsKqlQueryExpression, getHostDetailsPageFilters } from './helpers'; -import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; +import type { Filter } from '@kbn/es-query'; describe('hosts page helpers', () => { describe('getHostDetailsEventsKqlQueryExpression', () => { diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts b/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts index b768e3188d14b..0a09c7ec6dad5 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/helpers.ts @@ -5,8 +5,8 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { escapeQueryValue } from '../../../common/lib/keury'; -import { Filter } from '../../../../../../../src/plugins/data/public'; /** Returns the kqlQueryExpression for the `Events` widget on the `Host Details` page */ export const getHostDetailsEventsKqlQueryExpression = ({ diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx b/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx index 55c799f3bda43..15011b88f439a 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/index.tsx @@ -10,6 +10,7 @@ import { noop } from 'lodash/fp'; import React, { useEffect, useCallback, useMemo } from 'react'; import { useDispatch } from 'react-redux'; +import type { Filter } from '@kbn/es-query'; import { HostItem, LastEventIndexKey } from '../../../../common/search_strategy'; import { SecurityPageName } from '../../../app/types'; import { UpdateDateRange } from '../../../common/components/charts/common'; @@ -33,7 +34,7 @@ import { inputsSelectors } from '../../../common/store'; import { setHostDetailsTablesActivePageToZero } from '../../store/actions'; import { setAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; import { SpyRoute } from '../../../common/utils/route/spy_routes'; -import { esQuery, Filter } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { OverviewEmpty } from '../../../overview/components/overview_empty'; import { HostDetailsTabs } from './details_tabs'; @@ -106,7 +107,7 @@ const HostDetailsComponent: React.FC<HostDetailsProps> = ({ detailName, hostDeta skip: selectedPatterns.length === 0, }); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters: getFilters(), diff --git a/x-pack/plugins/security_solution/public/hosts/pages/details/types.ts b/x-pack/plugins/security_solution/public/hosts/pages/details/types.ts index cd9ee9ce01869..a06aac50b7604 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/details/types.ts +++ b/x-pack/plugins/security_solution/public/hosts/pages/details/types.ts @@ -6,7 +6,7 @@ */ import { ActionCreator } from 'typescript-fsa'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { InputsModelId } from '../../../common/store/inputs/constants'; import { HostsTableType } from '../../store/model'; import { HostsQueryProps } from '../types'; diff --git a/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx b/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx index 51dd9d230324f..2305c2faad8ad 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/hosts.test.tsx @@ -9,7 +9,7 @@ import { mount } from 'enzyme'; import React from 'react'; import { Router } from 'react-router-dom'; -import { Filter } from '../../../../../../src/plugins/data/common/es_query'; +import type { Filter } from '@kbn/es-query'; import '../../common/mock/match_media'; import { TestProviders, diff --git a/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx b/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx index 8417e8f3ae8b3..96086e2de1b3e 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/hosts.tsx @@ -33,7 +33,7 @@ import { inputsSelectors } from '../../common/store'; import { setAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { esQuery } from '../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../src/plugins/data/common'; import { useMlCapabilities } from '../../common/components/ml/hooks/use_ml_capabilities'; import { OverviewEmpty } from '../../overview/components/overview_empty'; import { Display } from './display'; @@ -115,7 +115,7 @@ const HostsComponent = () => { const [filterQuery, kqlError] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, @@ -125,7 +125,7 @@ const HostsComponent = () => { const [tabsFilterQuery] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters: tabsFilters, diff --git a/x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx b/x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx index 2d83efa7b0bd2..41c0f93760cb7 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/hosts/pages/navigation/alerts_query_tab_body.tsx @@ -7,7 +7,7 @@ import React, { useMemo } from 'react'; -import { Filter } from '../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { TimelineId } from '../../../../common/types/timeline'; import { AlertsView } from '../../../common/components/alerts_viewer'; import { AlertsComponentQueryProps } from './types'; diff --git a/x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts b/x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts index c051d85f05563..0daf3cad34aa8 100644 --- a/x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/hosts/pages/navigation/types.ts @@ -5,8 +5,9 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { ESTermQuery } from '../../../../common/typed_json'; -import { Filter } from '../../../../../../../src/plugins/data/public'; + import { NarrowDateRange } from '../../../common/components/ml/types'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; import { HostsTableType, HostsType } from '../../store/model'; diff --git a/x-pack/plugins/security_solution/public/jest.config.js b/x-pack/plugins/security_solution/public/jest.config.js index f2bde770370f4..5eb349b2c16e9 100644 --- a/x-pack/plugins/security_solution/public/jest.config.js +++ b/x-pack/plugins/security_solution/public/jest.config.js @@ -15,4 +15,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/public', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/public/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.test.tsx b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.test.tsx similarity index 95% rename from x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.test.tsx rename to x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.test.tsx index 3e48ccc6d9b6d..5eebc2721857f 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.test.tsx +++ b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.test.tsx @@ -5,15 +5,12 @@ * 2.0. */ -import { EndpointDocGenerator } from '../../../../../../../common/endpoint/generate_data'; import { EffectedPolicySelect, EffectedPolicySelectProps } from './effected_policy_select'; -import { - AppContextTestRender, - createAppRootMockRenderer, -} from '../../../../../../common/mock/endpoint'; import React from 'react'; import { forceHTMLElementOffsetWidth } from './test_utils'; import { fireEvent, act } from '@testing-library/react'; +import { EndpointDocGenerator } from '../../../../common/endpoint/generate_data'; +import { AppContextTestRender, createAppRootMockRenderer } from '../../../common/mock/endpoint'; describe('when using EffectedPolicySelect component', () => { const generator = new EndpointDocGenerator('effected-policy-select'); diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.tsx b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.tsx similarity index 76% rename from x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.tsx rename to x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.tsx index 07de303c155aa..2249fc89430d2 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/effected_policy_select.tsx +++ b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/effected_policy_select.tsx @@ -23,14 +23,27 @@ import { i18n } from '@kbn/i18n'; import { EuiSelectableOption } from '@elastic/eui/src/components/selectable/selectable_option'; import { FormattedMessage } from '@kbn/i18n/react'; import styled from 'styled-components'; -import { PolicyData } from '../../../../../../../common/endpoint/types'; -import { getPolicyDetailPath } from '../../../../../common/routing'; -import { useAppUrl } from '../../../../../../common/lib/kibana/hooks'; -import { LinkToApp } from '../../../../../../common/components/endpoint/link_to_app'; -import { useTestIdGenerator } from '../../../../../components/hooks/use_test_id_generator'; +import { PolicyData } from '../../../../common/endpoint/types'; +import { LinkToApp } from '../../../common/components/endpoint/link_to_app'; +import { getPolicyDetailPath } from '../../common/routing'; +import { useTestIdGenerator } from '../hooks/use_test_id_generator'; +import { useAppUrl } from '../../../common/lib/kibana/hooks'; const NOOP = () => {}; const DEFAULT_LIST_PROPS: EuiSelectableProps['listProps'] = { bordered: true, showIcons: false }; +const SEARCH_PROPS = { className: 'effected-policies-search' }; + +const StyledEuiSelectable = styled.div` + .effected-policies-search { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + .euiSelectableList { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top-width: 0; + } +`; const EffectivePolicyFormContainer = styled.div` .policy-name .euiSelectableListItem__text { @@ -57,6 +70,7 @@ export type EffectedPolicySelectProps = Omit< options: PolicyData[]; isGlobal: boolean; isPlatinumPlus: boolean; + description?: string; onChange: (selection: EffectedPolicySelection) => void; selected?: PolicyData[]; }; @@ -64,6 +78,7 @@ export const EffectedPolicySelect = memo<EffectedPolicySelectProps>( ({ isGlobal, isPlatinumPlus, + description, onChange, listProps, options, @@ -79,7 +94,7 @@ export const EffectedPolicySelect = memo<EffectedPolicySelectProps>( () => [ { id: 'globalPolicy', - label: i18n.translate('xpack.securitySolution.endpoint.trustedAppsByPolicy.global', { + label: i18n.translate('xpack.securitySolution.endpoint.effectedPolicySelect.global', { defaultMessage: 'Global', }), iconType: isGlobal ? 'checkInCircleFilled' : '', @@ -87,7 +102,7 @@ export const EffectedPolicySelect = memo<EffectedPolicySelectProps>( }, { id: 'perPolicy', - label: i18n.translate('xpack.securitySolution.endpoint.trustedAppsByPolicy.perPolicy', { + label: i18n.translate('xpack.securitySolution.endpoint.effectedPolicySelect.perPolicy', { defaultMessage: 'Per Policy', }), iconType: !isGlobal ? 'checkInCircleFilled' : '', @@ -169,7 +184,7 @@ export const EffectedPolicySelect = memo<EffectedPolicySelectProps>( <EuiText size="xs"> <h3> <FormattedMessage - id="xpack.securitySolution.trustedapps.policySelect.assignmentSectionTitle" + id="xpack.securitySolution.effectedPolicySelect.assignmentSectionTitle" defaultMessage="Assignment" /> </h3> @@ -179,10 +194,15 @@ export const EffectedPolicySelect = memo<EffectedPolicySelectProps>( <EuiFlexItem grow={2}> <EuiText size="s"> <p> - {i18n.translate('xpack.securitySolution.trustedApps.assignmentSectionDescription', { - defaultMessage: - 'Assign this trusted application globally across all policies, or assign it to specific policies.', - })} + {description + ? description + : i18n.translate( + 'xpack.securitySolution.effectedPolicySelect.assignmentSectionDescription', + { + defaultMessage: + 'Assign globally across all policies, or assign it to specific policies.', + } + )} </p> </EuiText> </EuiFlexItem> @@ -202,16 +222,19 @@ export const EffectedPolicySelect = memo<EffectedPolicySelectProps>( <EuiSpacer /> {!isGlobal && ( <EuiFormRow fullWidth> - <EuiSelectable<OptionPolicyData> - {...otherSelectableProps} - options={selectableOptions} - listProps={listProps || DEFAULT_LIST_PROPS} - onChange={handleOnPolicySelectChange} - searchable={true} - data-test-subj={getTestId('policiesSelectable')} - > - {listBuilderCallback} - </EuiSelectable> + <StyledEuiSelectable> + <EuiSelectable<OptionPolicyData> + {...otherSelectableProps} + options={selectableOptions} + listProps={listProps || DEFAULT_LIST_PROPS} + onChange={handleOnPolicySelectChange} + searchProps={SEARCH_PROPS} + searchable={true} + data-test-subj={getTestId('policiesSelectable')} + > + {listBuilderCallback} + </EuiSelectable> + </StyledEuiSelectable> </EuiFormRow> )} </EffectivePolicyFormContainer> diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/index.ts b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/index.ts similarity index 100% rename from x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/index.ts rename to x-pack/plugins/security_solution/public/management/components/effected_policy_select/index.ts diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/test_utils.ts b/x-pack/plugins/security_solution/public/management/components/effected_policy_select/test_utils.ts similarity index 100% rename from x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/effected_policy_select/test_utils.ts rename to x-pack/plugins/security_solution/public/management/components/effected_policy_select/test_utils.ts diff --git a/x-pack/plugins/security_solution/public/management/jest.config.js b/x-pack/plugins/security_solution/public/management/jest.config.js index fdb6212ef6c81..3e5560b56aa09 100644 --- a/x-pack/plugins/security_solution/public/management/jest.config.js +++ b/x-pack/plugins/security_solution/public/management/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '<rootDir>/x-pack/plugins/security_solution/public/management/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts index 71e7c82f4a654..65aa832226d54 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/models/index_pattern.ts @@ -6,9 +6,9 @@ */ import { all } from 'deepmerge'; -import { IIndexPattern } from '../../../../../../../../src/plugins/data/common'; +import type { DataViewBase } from '@kbn/es-query'; import { Immutable } from '../../../../../common/endpoint/types'; -export function clone(value: IIndexPattern | Immutable<IIndexPattern>): IIndexPattern { - return all([value]) as IIndexPattern; +export function clone(value: DataViewBase | Immutable<DataViewBase>): DataViewBase { + return all([value]) as DataViewBase; } diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts index 6e9c1f69cb060..c838f0bee7c69 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/action.ts @@ -7,7 +7,7 @@ import { Action } from 'redux'; import { EuiSuperDatePickerRecentRange } from '@elastic/eui'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { HostResultList, HostInfo, diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts index 9f8c280fac30b..3f4afe8e4b108 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/middleware.ts @@ -9,7 +9,7 @@ import { Dispatch } from 'redux'; import semverGte from 'semver/functions/gte'; import { CoreStart, HttpStart } from 'kibana/public'; -import { DataViewBase, Query } from '@kbn/es-query'; +import type { DataViewBase, Query } from '@kbn/es-query'; import { ActivityLog, GetHostPolicyResponse, @@ -54,7 +54,6 @@ import { TransformStatsResponse, } from '../types'; import { - sendGetEndpointSpecificPackagePolicies, sendGetEndpointSecurityPackage, sendGetAgentPolicyList, sendGetFleetAgentsWithEndpoint, @@ -81,6 +80,7 @@ import { EndpointPackageInfoStateChanged } from './action'; import { fetchPendingActionsByAgentId } from '../../../../common/lib/endpoint_pending_actions'; import { getIsInvalidDateRange } from '../utils'; import { METADATA_TRANSFORM_STATS_URL } from '../../../../../common/constants'; +import { sendGetEndpointSpecificPackagePolicies } from '../../../services/policies'; type EndpointPageStore = ImmutableMiddlewareAPI<EndpointState, AppAction>; diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts index a6fed8d6528cf..caf5b40a6834f 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/store/selectors.ts @@ -10,6 +10,7 @@ import querystring from 'querystring'; import { createSelector } from 'reselect'; import { matchPath } from 'react-router-dom'; import { decode } from 'rison-node'; +import { Query } from '@kbn/es-query'; import { Immutable, HostPolicyResponseAppliedAction, @@ -26,7 +27,6 @@ import { MANAGEMENT_DEFAULT_PAGE_SIZE, MANAGEMENT_ROUTING_ENDPOINTS_PATH, } from '../../../common/constants'; -import { Query } from '../../../../../../../../src/plugins/data/common/query/types'; import { getLastLoadedResourceState, isFailedResourceState, diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts index 1a87223cdd01f..0a5e1362edafe 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/types.ts @@ -6,7 +6,7 @@ */ import { EuiSuperDatePickerRecentRange } from '@elastic/eui'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ActivityLog, HostInfo, diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/components/search_bar.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/components/search_bar.tsx index 18d22e0cd1b15..ec65239d340d2 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/components/search_bar.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/components/search_bar.tsx @@ -9,7 +9,8 @@ import React, { memo, useCallback, useMemo } from 'react'; import { useHistory } from 'react-router-dom'; import { encode, RisonValue } from 'rison-node'; import styled from 'styled-components'; -import { Query, SearchBar, TimeHistory } from '../../../../../../../../../src/plugins/data/public'; +import type { Query } from '@kbn/es-query'; +import { SearchBar, TimeHistory } from '../../../../../../../../../src/plugins/data/public'; import { Storage } from '../../../../../../../../../src/plugins/kibana_utils/public'; import { urlFromQueryParams } from '../url_from_query_params'; import { useEndpointSelector } from '../hooks'; diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/host_constants.ts b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/host_constants.ts index 8e0e4fd969c22..8fa4a9388e08e 100644 --- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/host_constants.ts +++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/host_constants.ts @@ -11,7 +11,7 @@ import { HostStatus, HostPolicyResponseActionStatus } from '../../../../../commo export const HOST_STATUS_TO_BADGE_COLOR = Object.freeze<{ [key in HostStatus]: string; }>({ - [HostStatus.HEALTHY]: 'secondary', + [HostStatus.HEALTHY]: 'success', [HostStatus.UNHEALTHY]: 'warning', [HostStatus.UPDATING]: 'primary', [HostStatus.OFFLINE]: 'default', @@ -22,7 +22,7 @@ export const HOST_STATUS_TO_BADGE_COLOR = Object.freeze<{ export const POLICY_STATUS_TO_HEALTH_COLOR = Object.freeze<{ [key in keyof typeof HostPolicyResponseActionStatus]: string; }>({ - success: 'secondary', + success: 'success', warning: 'warning', failure: 'danger', unsupported: 'default', @@ -31,7 +31,7 @@ export const POLICY_STATUS_TO_HEALTH_COLOR = Object.freeze<{ export const POLICY_STATUS_TO_BADGE_COLOR = Object.freeze<{ [key in keyof typeof HostPolicyResponseActionStatus]: string; }>({ - success: 'secondary', + success: 'success', warning: 'warning', failure: 'danger', unsupported: 'default', diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/flyout/index.test.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/flyout/index.test.tsx index 83b4f005135ba..fe7143b00d3fd 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/flyout/index.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/flyout/index.test.tsx @@ -19,10 +19,12 @@ import type { ExceptionListItemSchema, } from '@kbn/securitysolution-io-ts-list-types'; import { EventFiltersHttpService } from '../../../service'; -import { createdEventFilterEntryMock } from '../../../test_utils'; +import { createdEventFilterEntryMock, ecsEventMock, esResponseData } from '../../../test_utils'; import { getFormEntryState, isUninitialisedForm } from '../../../store/selector'; import { EventFiltersListPageState } from '../../../types'; +import { useKibana } from '../../../../../../common/lib/kibana'; +jest.mock('../../../../../../common/lib/kibana'); jest.mock('../form'); jest.mock('../../../service'); @@ -36,6 +38,7 @@ jest.mock('../../hooks', () => { }; }); +let component: reactTestingLibrary.RenderResult; let mockedContext: AppContextTestRender; let waitForAction: MiddlewareActionSpyHelper['waitForAction']; let render: ( @@ -63,16 +66,37 @@ describe('Event filter flyout', () => { getState = () => mockedContext.store.getState().management.eventFilters; render = (props) => mockedContext.render(<EventFiltersFlyout {...props} onCancel={onCancelMock} />); + + (useKibana as jest.Mock).mockReturnValue({ + services: { + http: {}, + data: { + search: { + search: jest.fn().mockImplementation(() => ({ toPromise: () => esResponseData() })), + }, + }, + notifications: {}, + }, + }); }); afterEach(() => reactTestingLibrary.cleanup()); it('should renders correctly', () => { - const component = render(); + component = render(); expect(component.getAllByText('Add event filter')).not.toBeNull(); expect(component.getByText('Cancel')).not.toBeNull(); }); + it('should renders correctly with data ', async () => { + await act(async () => { + component = render({ data: ecsEventMock() }); + await waitForAction('eventFiltersInitForm'); + }); + expect(component.getAllByText('Add endpoint event filter')).not.toBeNull(); + expect(component.getByText('Cancel')).not.toBeNull(); + }); + it('should dispatch action to init form store on mount', async () => { await act(async () => { render(); @@ -84,7 +108,7 @@ describe('Event filter flyout', () => { }); it('should confirm form when button is disabled', () => { - const component = render(); + component = render(); const confirmButton = component.getByTestId('add-exception-confirm-button'); act(() => { fireEvent.click(confirmButton); @@ -93,7 +117,7 @@ describe('Event filter flyout', () => { }); it('should confirm form when button is enabled', async () => { - const component = render(); + component = render(); mockedContext.store.dispatch({ type: 'eventFiltersChangeForm', payload: { @@ -134,7 +158,7 @@ describe('Event filter flyout', () => { }); it('should close when click on cancel button', () => { - const component = render(); + component = render(); const cancelButton = component.getByText('Cancel'); expect(onCancelMock).toHaveBeenCalledTimes(0); @@ -146,7 +170,7 @@ describe('Event filter flyout', () => { }); it('should close when close flyout', () => { - const component = render(); + component = render(); const flyoutCloseButton = component.getByTestId('euiFlyoutCloseButton'); expect(onCancelMock).toHaveBeenCalledTimes(0); @@ -158,7 +182,7 @@ describe('Event filter flyout', () => { }); it('should prevent close when is loading action', () => { - const component = render(); + component = render(); act(() => { mockedContext.store.dispatch({ type: 'eventFiltersFormStateChanged', @@ -180,7 +204,7 @@ describe('Event filter flyout', () => { }); it('should renders correctly when id and edit type', () => { - const component = render({ id: 'fakeId', type: 'edit' }); + component = render({ id: 'fakeId', type: 'edit' }); expect(component.getAllByText('Update event filter')).not.toBeNull(); expect(component.getByText('Cancel')).not.toBeNull(); diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/flyout/index.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/flyout/index.tsx index 48523ce45c3f9..b5220e4748ef5 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/flyout/index.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/flyout/index.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { memo, useMemo, useEffect, useCallback } from 'react'; +import React, { memo, useMemo, useEffect, useCallback, useState } from 'react'; import { useDispatch } from 'react-redux'; import { Dispatch } from 'redux'; @@ -20,6 +20,7 @@ import { EuiButtonEmpty, EuiFlexGroup, EuiFlexItem, + EuiTextColor, } from '@elastic/eui'; import { AppAction } from '../../../../../../common/store/actions'; import { EventFiltersForm } from '../form'; @@ -30,20 +31,27 @@ import { isCreationSuccessful, } from '../../../store/selector'; import { getInitialExceptionFromEvent } from '../../../store/utils'; +import { Ecs } from '../../../../../../../common/ecs'; +import { useKibana } from '../../../../../../common/lib/kibana'; export interface EventFiltersFlyoutProps { type?: 'create' | 'edit'; id?: string; + data?: Ecs; onCancel(): void; } export const EventFiltersFlyout: React.FC<EventFiltersFlyoutProps> = memo( - ({ onCancel, id, type = 'create' }) => { + ({ onCancel, id, type = 'create', data }) => { useEventFiltersNotification(); + const [enrichedData, setEnrichedData] = useState<Ecs | null>(); const dispatch = useDispatch<Dispatch<AppAction>>(); const formHasError = useEventFiltersSelector(getFormHasError); const creationInProgress = useEventFiltersSelector(isCreationInProgress); const creationSuccessful = useEventFiltersSelector(isCreationSuccessful); + const { + data: { search }, + } = useKibana().services; useEffect(() => { if (creationSuccessful) { @@ -59,11 +67,42 @@ export const EventFiltersFlyout: React.FC<EventFiltersFlyoutProps> = memo( // Initialize the store with the id passed as prop to allow render the form. It acts as componentDidMount useEffect(() => { + const enrichEvent = async () => { + if (!data || !data._index) return; + const searchResponse = await search + .search({ + params: { + index: data._index, + body: { + query: { + match: { + _id: data._id, + }, + }, + }, + }, + }) + .toPromise(); + + setEnrichedData({ + ...data, + host: { + ...data.host, + os: { + ...(data?.host?.os || {}), + name: [searchResponse.rawResponse.hits.hits[0]._source.host.os.name], + }, + }, + }); + }; + if (type === 'edit' && !!id) { dispatch({ type: 'eventFiltersInitFromId', payload: { id }, }); + } else if (data) { + enrichEvent(); } else { dispatch({ type: 'eventFiltersInitForm', @@ -82,6 +121,16 @@ export const EventFiltersFlyout: React.FC<EventFiltersFlyoutProps> = memo( // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + // Initialize the store with the enriched event to allow render the form + useEffect(() => { + if (enrichedData) { + dispatch({ + type: 'eventFiltersInitForm', + payload: { entry: getInitialExceptionFromEvent(enrichedData) }, + }); + } + }, [dispatch, enrichedData]); + const handleOnCancel = useCallback(() => { if (creationInProgress) return; onCancel(); @@ -92,7 +141,7 @@ export const EventFiltersFlyout: React.FC<EventFiltersFlyoutProps> = memo( <EuiButton data-test-subj="add-exception-confirm-button" fill - disabled={formHasError || creationInProgress} + disabled={formHasError || creationInProgress || (!!data && !enrichedData)} onClick={() => id ? dispatch({ type: 'eventFiltersUpdateStart' }) @@ -105,6 +154,11 @@ export const EventFiltersFlyout: React.FC<EventFiltersFlyoutProps> = memo( id="xpack.securitySolution.eventFilters.eventFiltersFlyout.actions.confirm.update" defaultMessage="Update event filter" /> + ) : data ? ( + <FormattedMessage + id="xpack.securitySolution.eventFilters.eventFiltersFlyout.actions.confirm.update.withData" + defaultMessage="Add endpoint event filter" + /> ) : ( <FormattedMessage id="xpack.securitySolution.eventFilters.eventFiltersFlyout.actions.confirm.create" @@ -113,7 +167,7 @@ export const EventFiltersFlyout: React.FC<EventFiltersFlyoutProps> = memo( )} </EuiButton> ), - [formHasError, creationInProgress, id, dispatch] + [formHasError, creationInProgress, data, enrichedData, id, dispatch] ); return ( @@ -126,6 +180,11 @@ export const EventFiltersFlyout: React.FC<EventFiltersFlyoutProps> = memo( id="xpack.securitySolution.eventFilters.eventFiltersFlyout.subtitle.update" defaultMessage="Update event filter" /> + ) : data ? ( + <FormattedMessage + id="xpack.securitySolution.eventFilters.eventFiltersFlyout.title.create.withData" + defaultMessage="Add endpoint event filter" + /> ) : ( <FormattedMessage id="xpack.securitySolution.eventFilters.eventFiltersFlyout.subtitle.create" @@ -134,10 +193,18 @@ export const EventFiltersFlyout: React.FC<EventFiltersFlyoutProps> = memo( )} </h2> </EuiTitle> + {data ? ( + <EuiTextColor color="subdued"> + <FormattedMessage + id="xpack.securitySolution.eventFilters.eventFiltersFlyout.subtitle.create.withData" + defaultMessage="Endpoint security" + /> + </EuiTextColor> + ) : null} </EuiFlyoutHeader> <EuiFlyoutBody> - <EventFiltersForm allowSelectOs /> + <EventFiltersForm allowSelectOs={!data} /> </EuiFlyoutBody> <EuiFlyoutFooter> diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.test.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.test.tsx index f8dd9ac632cd0..0850ed700f62d 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.test.tsx @@ -76,6 +76,14 @@ describe('Event filter form', () => { expect(component.getByTestId('exceptionsBuilderWrapper')).not.toBeNull(); }); + it('should display sections', async () => { + component = await renderWithData(); + + expect(component.queryByText('Details')).not.toBeNull(); + expect(component.queryByText('Conditions')).not.toBeNull(); + expect(component.queryByText('Comments')).not.toBeNull(); + }); + it('should display name error only when on blur and empty name', async () => { component = await renderWithData(); expect(component.queryByText(NAME_ERROR)).toBeNull(); diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.tsx index ced0abcea0258..095eb8d22df91 100644 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/form/index.tsx @@ -16,7 +16,9 @@ import { EuiSuperSelect, EuiSuperSelectOption, EuiText, + EuiHorizontalRule, } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n/react'; import type { ExceptionListItemSchema } from '@kbn/securitysolution-io-ts-list-types'; import { EVENT_FILTERS_OPERATORS } from '@kbn/securitysolution-list-utils'; @@ -205,25 +207,95 @@ export const EventFiltersForm: React.FC<EventFiltersFormProps> = memo( [exception, handleOnChangeComment, newComment] ); + const detailsSection = useMemo( + () => ( + <> + <EuiText size="xs"> + <h3> + <FormattedMessage + id="xpack.securitySolution.eventFilters.detailsSectionTitle" + defaultMessage="Details" + /> + </h3> + </EuiText> + <EuiSpacer size="xs" /> + <EuiText size="s"> + <p>{ABOUT_EVENT_FILTERS}</p> + </EuiText> + <EuiSpacer size="m" /> + {nameInputMemo} + </> + ), + [nameInputMemo] + ); + + const criteriaSection = useMemo( + () => ( + <> + <EuiText size="xs"> + <h3> + <FormattedMessage + id="xpack.securitySolution.eventFilters.criteriaSectionTitle" + defaultMessage="Conditions" + /> + </h3> + </EuiText> + <EuiSpacer size="xs" /> + <EuiText size="s"> + <p> + <FormattedMessage + id="xpack.securitySolution.eventFilters.criteriaSectionDescription" + defaultMessage="Select an operating system and add conditions." + /> + </p> + </EuiText> + <EuiSpacer size="m" /> + {allowSelectOs ? ( + <> + {osInputMemo} + <EuiSpacer /> + </> + ) : null} + {exceptionBuilderComponentMemo} + </> + ), + [allowSelectOs, exceptionBuilderComponentMemo, osInputMemo] + ); + + const commentsSection = useMemo( + () => ( + <> + <EuiText size="xs"> + <h3> + <FormattedMessage + id="xpack.securitySolution.eventFilters.commentsSectionTitle" + defaultMessage="Comments" + /> + </h3> + </EuiText> + <EuiSpacer size="xs" /> + <EuiText size="s"> + <p> + <FormattedMessage + id="xpack.securitySolution.eventFilters.commentsSectionDescription" + defaultMessage="Add a comment to your event filter." + /> + </p> + </EuiText> + <EuiSpacer size="m" /> + {commentsInputMemo} + </> + ), + [commentsInputMemo] + ); + return !isIndexPatternLoading && exception ? ( <EuiForm component="div"> - {!exception || !exception.item_id ? ( - <EuiText color="subdued" size="xs"> - {ABOUT_EVENT_FILTERS} - <EuiSpacer size="m" /> - </EuiText> - ) : null} - {nameInputMemo} - <EuiSpacer size="m" /> - {allowSelectOs ? ( - <> - {osInputMemo} - <EuiSpacer /> - </> - ) : null} - {exceptionBuilderComponentMemo} - <EuiSpacer size="xl" /> - {commentsInputMemo} + {detailsSection} + <EuiHorizontalRule /> + {criteriaSection} + <EuiHorizontalRule /> + {commentsSection} </EuiForm> ) : ( <Loader size="xl" /> diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/index.test.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/index.test.tsx deleted file mode 100644 index 8ea50ecd460e4..0000000000000 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/index.test.tsx +++ /dev/null @@ -1,211 +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 { EventFiltersModal } from '.'; -import { RenderResult, act } from '@testing-library/react'; -import { fireEvent } from '@testing-library/dom'; -import { ecsEventMock, esResponseData } from '../../../test_utils'; -import { - AppContextTestRender, - createAppRootMockRenderer, -} from '../../../../../../common/mock/endpoint'; -import { MiddlewareActionSpyHelper } from '../../../../../../common/store/test_utils'; - -import { MODAL_TITLE, MODAL_SUBTITLE, ACTIONS_CONFIRM, ACTIONS_CANCEL } from './translations'; -import type { - CreateExceptionListItemSchema, - ExceptionListItemSchema, -} from '@kbn/securitysolution-io-ts-list-types'; -import { useKibana } from '../../../../../../common/lib/kibana'; -import { EventFiltersListPageState } from '../../../types'; - -jest.mock('../../../../../../common/lib/kibana'); -jest.mock('../form'); -jest.mock('../../hooks', () => { - const originalModule = jest.requireActual('../../hooks'); - const useEventFiltersNotification = jest.fn().mockImplementation(() => {}); - - return { - ...originalModule, - useEventFiltersNotification, - }; -}); - -describe('Event filter modal', () => { - let component: RenderResult; - let onCancelMock: jest.Mock; - let mockedContext: AppContextTestRender; - let waitForAction: MiddlewareActionSpyHelper['waitForAction']; - let render: () => ReturnType<AppContextTestRender['render']>; - let getState: () => EventFiltersListPageState; - - beforeEach(() => { - mockedContext = createAppRootMockRenderer(); - waitForAction = mockedContext.middlewareSpy.waitForAction; - onCancelMock = jest.fn(); - getState = () => mockedContext.store.getState().management.eventFilters; - render = () => - mockedContext.render(<EventFiltersModal data={ecsEventMock()} onCancel={onCancelMock} />); - (useKibana as jest.Mock).mockReturnValue({ - services: { - http: {}, - data: { - search: { - search: jest.fn().mockImplementation(() => ({ toPromise: () => esResponseData() })), - }, - }, - notifications: {}, - }, - }); - }); - - it('should renders correctly', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - expect(component.getAllByText(MODAL_TITLE)).not.toBeNull(); - expect(component.getByText(MODAL_SUBTITLE)).not.toBeNull(); - expect(component.getAllByText(ACTIONS_CONFIRM)).not.toBeNull(); - expect(component.getByText(ACTIONS_CANCEL)).not.toBeNull(); - }); - - it('should dispatch action to init form store on mount', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - expect(getState().form?.entry).not.toBeUndefined(); - }); - - it('should set OS with the enriched data', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - expect(getState().form?.entry?.os_types).toContain('linux'); - }); - - it('should confirm form when button is disabled', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - const confirmButton = component.getByTestId('add-exception-confirm-button'); - act(() => { - fireEvent.click(confirmButton); - }); - expect(getState().form?.submissionResourceState.type).toBe('UninitialisedResourceState'); - }); - - it('should confirm form when button is enabled', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - mockedContext.store.dispatch({ - type: 'eventFiltersChangeForm', - payload: { - entry: { - ...(getState().form?.entry as CreateExceptionListItemSchema), - name: 'test', - }, - hasNameError: false, - }, - }); - const confirmButton = component.getByTestId('add-exception-confirm-button'); - act(() => { - fireEvent.click(confirmButton); - }); - expect(getState().form?.submissionResourceState.type).toBe('LoadingResourceState'); - expect(confirmButton.hasAttribute('disabled')).toBeTruthy(); - }); - - it('should close when exception has been submitted correctly', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - expect(onCancelMock).toHaveBeenCalledTimes(0); - - act(() => { - mockedContext.store.dispatch({ - type: 'eventFiltersFormStateChanged', - payload: { - type: 'LoadedResourceState', - data: getState().form?.entry as ExceptionListItemSchema, - }, - }); - }); - - expect(onCancelMock).toHaveBeenCalledTimes(1); - }); - - it('should close when click on cancel button', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - const cancelButton = component.getByText(ACTIONS_CANCEL); - expect(onCancelMock).toHaveBeenCalledTimes(0); - - act(() => { - fireEvent.click(cancelButton); - }); - - expect(onCancelMock).toHaveBeenCalledTimes(1); - }); - - it('should close when close modal', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - const modalCloseButton = component.getByLabelText('Closes this modal window'); - expect(onCancelMock).toHaveBeenCalledTimes(0); - - act(() => { - fireEvent.click(modalCloseButton); - }); - - expect(onCancelMock).toHaveBeenCalledTimes(1); - }); - - it('should prevent close when is loading action', async () => { - await act(async () => { - component = render(); - await waitForAction('eventFiltersInitForm'); - }); - - act(() => { - mockedContext.store.dispatch({ - type: 'eventFiltersFormStateChanged', - payload: { - type: 'LoadingResourceState', - previousState: { type: 'UninitialisedResourceState' }, - }, - }); - }); - - const cancelButton = component.getByText(ACTIONS_CANCEL); - expect(onCancelMock).toHaveBeenCalledTimes(0); - - act(() => { - fireEvent.click(cancelButton); - }); - - expect(onCancelMock).toHaveBeenCalledTimes(0); - }); -}); diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/index.tsx b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/index.tsx deleted file mode 100644 index dabf68ffed394..0000000000000 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/index.tsx +++ /dev/null @@ -1,191 +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, { memo, useMemo, useEffect, useCallback, useState, useRef } from 'react'; -import { useDispatch } from 'react-redux'; -import { Dispatch } from 'redux'; -import styled, { css } from 'styled-components'; -import { - EuiModal, - EuiModalHeader, - EuiModalHeaderTitle, - EuiModalFooter, - EuiButton, - EuiButtonEmpty, -} from '@elastic/eui'; -import { AppAction } from '../../../../../../common/store/actions'; -import { Ecs } from '../../../../../../../common/ecs'; -import { EventFiltersForm } from '../form'; -import { useKibana } from '../../../../../../common/lib/kibana'; -import { useEventFiltersSelector, useEventFiltersNotification } from '../../hooks'; -import { - getFormHasError, - isCreationInProgress, - isCreationSuccessful, -} from '../../../store/selector'; -import { getInitialExceptionFromEvent } from '../../../store/utils'; -import { MODAL_TITLE, MODAL_SUBTITLE, ACTIONS_CONFIRM, ACTIONS_CANCEL } from './translations'; - -export interface EventFiltersModalProps { - data: Ecs; - onCancel(): void; -} - -const Modal = styled(EuiModal)` - ${({ theme }) => css` - width: ${theme.eui.euiBreakpoints.l}; - max-width: ${theme.eui.euiBreakpoints.l}; - `} -`; - -const ModalHeader = styled(EuiModalHeader)` - flex-direction: column; - align-items: flex-start; -`; - -const ModalHeaderSubtitle = styled.div` - ${({ theme }) => css` - color: ${theme.eui.euiColorMediumShade}; - `} -`; - -const ModalBodySection = styled.section` - ${({ theme }) => css` - padding: ${theme.eui.euiSizeS} ${theme.eui.euiSizeL}; - overflow-y: scroll; - `} -`; - -export const EventFiltersModal: React.FC<EventFiltersModalProps> = memo(({ data, onCancel }) => { - useEventFiltersNotification(); - const [enrichedData, setEnrichedData] = useState<Ecs | null>(); - const { - data: { search }, - } = useKibana().services; - const dispatch = useDispatch<Dispatch<AppAction>>(); - const formHasError = useEventFiltersSelector(getFormHasError); - const creationInProgress = useEventFiltersSelector(isCreationInProgress); - const creationSuccessful = useEventFiltersSelector(isCreationSuccessful); - const isMounted = useRef(false); - - // Enrich the event with missing ECS data from ES source - useEffect(() => { - isMounted.current = true; - - const enrichEvent = async () => { - if (!data._index) return; - const searchResponse = await search - .search({ - params: { - index: data._index, - body: { - query: { - match: { - _id: data._id, - }, - }, - }, - }, - }) - .toPromise(); - - if (!isMounted.current) return; - - setEnrichedData({ - ...data, - host: { - ...data.host, - os: { - ...(data?.host?.os || {}), - name: [searchResponse.rawResponse.hits.hits[0]._source.host.os.name], - }, - }, - }); - }; - - enrichEvent(); - - return () => { - dispatch({ - type: 'eventFiltersFormStateChanged', - payload: { - type: 'UninitialisedResourceState', - }, - }); - isMounted.current = false; - }; - - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - // Initialize the store with the enriched event to allow render the form - useEffect(() => { - if (enrichedData) { - dispatch({ - type: 'eventFiltersInitForm', - payload: { entry: getInitialExceptionFromEvent(enrichedData) }, - }); - } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [enrichedData]); - - useEffect(() => { - if (creationSuccessful) { - onCancel(); - dispatch({ - type: 'eventFiltersFormStateChanged', - payload: { - type: 'UninitialisedResourceState', - }, - }); - } - }, [creationSuccessful, onCancel, dispatch]); - - const handleOnCancel = useCallback(() => { - if (creationInProgress) return; - onCancel(); - }, [creationInProgress, onCancel]); - - const confirmButtonMemo = useMemo( - () => ( - <EuiButton - data-test-subj="add-exception-confirm-button" - fill - disabled={formHasError || creationInProgress} - onClick={() => { - dispatch({ type: 'eventFiltersCreateStart' }); - }} - isLoading={creationInProgress} - > - {ACTIONS_CONFIRM} - </EuiButton> - ), - [dispatch, formHasError, creationInProgress] - ); - - return ( - <Modal onClose={handleOnCancel} data-test-subj="add-exception-modal"> - <ModalHeader> - <EuiModalHeaderTitle>{MODAL_TITLE}</EuiModalHeaderTitle> - <ModalHeaderSubtitle>{MODAL_SUBTITLE}</ModalHeaderSubtitle> - </ModalHeader> - - <ModalBodySection> - <EventFiltersForm /> - </ModalBodySection> - - <EuiModalFooter> - <EuiButtonEmpty data-test-subj="cancelExceptionAddButton" onClick={handleOnCancel}> - {ACTIONS_CANCEL} - </EuiButtonEmpty> - {confirmButtonMemo} - </EuiModalFooter> - </Modal> - ); -}); - -EventFiltersModal.displayName = 'EventFiltersModal'; diff --git a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/translations.ts b/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/translations.ts deleted file mode 100644 index 66e0dfde298b8..0000000000000 --- a/x-pack/plugins/security_solution/public/management/pages/event_filters/view/components/modal/translations.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import { i18n } from '@kbn/i18n'; - -export const MODAL_TITLE = i18n.translate('xpack.securitySolution.eventFilter.modal.title', { - defaultMessage: 'Add Endpoint Event Filter', -}); - -export const MODAL_SUBTITLE = i18n.translate('xpack.securitySolution.eventFilter.modal.subtitle', { - defaultMessage: 'Endpoint Security', -}); - -export const ACTIONS_CONFIRM = i18n.translate( - 'xpack.securitySolution.eventFilter.modal.actions.confirm', - { - defaultMessage: 'Add Endpoint Event Filter', - } -); - -export const ACTIONS_CANCEL = i18n.translate( - 'xpack.securitySolution.eventFilter.modal.actions.cancel', - { - defaultMessage: 'Cancel', - } -); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.test.ts b/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.test.ts index b5897d8fd3bc4..ef66c948e1127 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.test.ts +++ b/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.test.ts @@ -9,15 +9,9 @@ import { INGEST_API_EPM_PACKAGES, sendGetPackagePolicy, sendGetEndpointSecurityPackage, - sendGetEndpointSpecificPackagePolicies, } from './ingest'; import { httpServiceMock } from '../../../../../../../../../src/core/public/mocks'; -import { - EPM_API_ROUTES, - PACKAGE_POLICY_SAVED_OBJECT_TYPE, - PACKAGE_POLICY_API_ROOT, - PACKAGE_POLICY_API_ROUTES, -} from '../../../../../../../fleet/common'; +import { EPM_API_ROUTES, PACKAGE_POLICY_API_ROOT } from '../../../../../../../fleet/common'; import { policyListApiPathHandlers } from '../test_mock_utils'; describe('ingest service', () => { @@ -27,29 +21,6 @@ describe('ingest service', () => { http = httpServiceMock.createStartContract(); }); - describe('sendGetEndpointSpecificPackagePolicies()', () => { - it('auto adds kuery to api request', async () => { - await sendGetEndpointSpecificPackagePolicies(http); - expect(http.get).toHaveBeenCalledWith(`${PACKAGE_POLICY_API_ROUTES.LIST_PATTERN}`, { - query: { - kuery: `${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, - }, - }); - }); - it('supports additional KQL to be defined on input for query params', async () => { - await sendGetEndpointSpecificPackagePolicies(http, { - query: { kuery: 'someValueHere', page: 1, perPage: 10 }, - }); - expect(http.get).toHaveBeenCalledWith(`${PACKAGE_POLICY_API_ROUTES.LIST_PATTERN}`, { - query: { - kuery: `someValueHere and ${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, - perPage: 10, - page: 1, - }, - }); - }); - }); - describe('sendGetPackagePolicy()', () => { it('builds correct API path', async () => { await sendGetPackagePolicy(http, '123'); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.ts b/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.ts index 0375b0c434f18..27b567c3bb38c 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.ts +++ b/x-pack/plugins/security_solution/public/management/pages/policy/store/services/ingest.ts @@ -7,17 +7,15 @@ import { HttpFetchOptions, HttpStart } from 'kibana/public'; import { - GetPackagePoliciesRequest, GetAgentStatusResponse, GetAgentsResponse, DeletePackagePoliciesResponse, DeletePackagePoliciesRequest, - PACKAGE_POLICY_SAVED_OBJECT_TYPE, GetPackagesResponse, GetAgentPoliciesRequest, GetAgentPoliciesResponse, } from '../../../../../../../fleet/common'; -import { GetPolicyListResponse, GetPolicyResponse, UpdatePolicyResponse } from '../../types'; +import { GetPolicyResponse, UpdatePolicyResponse } from '../../types'; import { NewPolicyData } from '../../../../../../common/endpoint/types'; const INGEST_API_ROOT = `/api/fleet`; @@ -28,27 +26,6 @@ export const INGEST_API_FLEET_AGENTS = `${INGEST_API_ROOT}/agents`; export const INGEST_API_EPM_PACKAGES = `${INGEST_API_ROOT}/epm/packages`; const INGEST_API_DELETE_PACKAGE_POLICY = `${INGEST_API_PACKAGE_POLICIES}/delete`; -/** - * Retrieves a list of endpoint specific package policies (those created with a `package.name` of - * `endpoint`) from Ingest - * @param http - * @param options - */ -export const sendGetEndpointSpecificPackagePolicies = ( - http: HttpStart, - options: HttpFetchOptions & Partial<GetPackagePoliciesRequest> = {} -): Promise<GetPolicyListResponse> => { - return http.get<GetPolicyListResponse>(INGEST_API_PACKAGE_POLICIES, { - ...options, - query: { - ...options.query, - kuery: `${ - options?.query?.kuery ? `${options.query.kuery} and ` : '' - }${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, - }, - }); -}; - /** * Retrieves a single package policy based on ID from ingest * @param http diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.test.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.test.tsx index 30c95472e4d6d..0981c775e961b 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.test.tsx @@ -97,8 +97,8 @@ describe('Fleet event filters card', () => { }; }); const component = await renderComponent(); - expect(component.getByText('Event Filters')).not.toBeNull(); - expect(component.getByText('Manage event filters')).not.toBeNull(); + expect(component.getByText('Event filters')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); }); it('should render an error toast when api call fails', async () => { expect(addDanger).toBeCalledTimes(0); @@ -109,8 +109,8 @@ describe('Fleet event filters card', () => { }; }); const component = await renderComponent(); - expect(component.getByText('Event Filters')).not.toBeNull(); - expect(component.getByText('Manage event filters')).not.toBeNull(); + expect(component.getByText('Event filters')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); await reactTestingLibrary.waitFor(() => expect(addDanger).toBeCalledTimes(1)); }); }); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.tsx index 41768f4be7d2e..7db76fee4efc5 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_event_filters_card.tsx @@ -95,7 +95,7 @@ export const FleetEventFiltersCard = memo<PackageCustomExtensionComponentProps>( <h4> <FormattedMessage id="xpack.securitySolution.endpoint.fleetCustomExtension.eventFiltersLabel" - defaultMessage="Event Filters" + defaultMessage="Event filters" /> </h4> </EuiText> @@ -115,7 +115,7 @@ export const FleetEventFiltersCard = memo<PackageCustomExtensionComponentProps>( > <FormattedMessage id="xpack.securitySolution.endpoint.fleetCustomExtension.manageEventFiltersLinkLabel" - defaultMessage="Manage event filters" + defaultMessage="Manage" /> </LinkWithIcon> </> diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.test.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.test.tsx new file mode 100644 index 0000000000000..ea1937c5a98d5 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.test.tsx @@ -0,0 +1,110 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { I18nProvider } from '@kbn/i18n/react'; +import * as reactTestingLibrary from '@testing-library/react'; +import React from 'react'; +import { ThemeProvider } from 'styled-components'; +import { GetExceptionSummaryResponse } from '../../../../../../../../common/endpoint/types'; +import { getMockTheme } from '../../../../../../../../public/common/lib/kibana/kibana_react.mock'; +import { useToasts } from '../../../../../../../common/lib/kibana'; +import { getHostIsolationExceptionSummary } from '../../../../../host_isolation_exceptions/service'; +import { FleetHostIsolationExceptionsCard } from './fleet_host_isolation_exceptions_card'; + +jest.mock('./exception_items_summary'); +jest.mock('../../../../../host_isolation_exceptions/service'); + +jest.mock('../../../../../../../../../../../src/plugins/kibana_react/public', () => { + const originalModule = jest.requireActual( + '../../../../../../../../../../../src/plugins/kibana_react/public' + ); + const useKibana = jest.fn().mockImplementation(() => ({ + services: { + http: {}, + data: {}, + notifications: {}, + application: { + getUrlForApp: jest.fn(), + }, + }, + })); + + return { + ...originalModule, + useKibana, + }; +}); + +jest.mock('../../../../../../../common/lib/kibana'); + +const mockTheme = getMockTheme({ + eui: { + paddingSizes: { m: '2' }, + }, +}); + +const getHostIsolationExceptionSummaryMock = getHostIsolationExceptionSummary as jest.Mock; +const useToastsMock = useToasts as jest.Mock; + +const summary: GetExceptionSummaryResponse = { + windows: 3, + linux: 2, + macos: 2, + total: 7, +}; + +describe('Fleet host isolation exceptions card filters card', () => { + let promise: Promise<GetExceptionSummaryResponse>; + let addDanger: jest.Mock = jest.fn(); + const renderComponent: () => Promise<reactTestingLibrary.RenderResult> = async () => { + const Wrapper: React.FC = ({ children }) => ( + <I18nProvider> + <ThemeProvider theme={mockTheme}>{children}</ThemeProvider> + </I18nProvider> + ); + // @ts-expect-error TS2739 + const component = reactTestingLibrary.render(<FleetHostIsolationExceptionsCard />, { + wrapper: Wrapper, + }); + try { + // @ts-expect-error TS2769 + await reactTestingLibrary.act(() => promise); + } catch (err) { + return component; + } + return component; + }; + beforeAll(() => { + useToastsMock.mockImplementation(() => { + return { + addDanger, + }; + }); + }); + beforeEach(() => { + promise = Promise.resolve(summary); + addDanger = jest.fn(); + }); + afterEach(() => { + getHostIsolationExceptionSummaryMock.mockReset(); + }); + it('should render correctly', async () => { + getHostIsolationExceptionSummaryMock.mockReturnValueOnce(promise); + const component = await renderComponent(); + expect(component.getByText('Host isolation exceptions')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); + }); + it('should render an error toast when api call fails', async () => { + expect(addDanger).toBeCalledTimes(0); + promise = Promise.reject(new Error('error test')); + getHostIsolationExceptionSummaryMock.mockReturnValueOnce(promise); + const component = await renderComponent(); + expect(component.getByText('Host isolation exceptions')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); + await reactTestingLibrary.waitFor(() => expect(addDanger).toBeCalledTimes(1)); + }); +}); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.tsx new file mode 100644 index 0000000000000..535c0be4736cc --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_host_isolation_exceptions_card.tsx @@ -0,0 +1,130 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { EuiPanel, EuiText } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { FormattedMessage } from '@kbn/i18n/react'; +import React, { memo, useEffect, useMemo, useRef, useState } from 'react'; +import { INTEGRATIONS_PLUGIN_ID } from '../../../../../../../../../fleet/common'; +import { + PackageCustomExtensionComponentProps, + pagePathGetters, +} from '../../../../../../../../../fleet/public'; +import { + GetExceptionSummaryResponse, + ListPageRouteState, +} from '../../../../../../../../common/endpoint/types'; +import { useKibana, useToasts } from '../../../../../../../common/lib/kibana'; +import { useAppUrl } from '../../../../../../../common/lib/kibana/hooks'; +import { getHostIsolationExceptionsListPath } from '../../../../../../common/routing'; +import { getHostIsolationExceptionSummary } from '../../../../../host_isolation_exceptions/service'; +import { ExceptionItemsSummary } from './exception_items_summary'; +import { LinkWithIcon } from './link_with_icon'; +import { StyledEuiFlexGridGroup, StyledEuiFlexGridItem } from './styled_components'; + +export const FleetHostIsolationExceptionsCard = memo<PackageCustomExtensionComponentProps>( + ({ pkgkey }) => { + const { getAppUrl } = useAppUrl(); + const { + services: { http }, + } = useKibana(); + const toasts = useToasts(); + const [stats, setStats] = useState<GetExceptionSummaryResponse | undefined>(); + const hostIsolationExceptionsListUrlPath = getHostIsolationExceptionsListPath(); + const isMounted = useRef<boolean>(); + + useEffect(() => { + isMounted.current = true; + const fetchStats = async () => { + try { + const summary = await getHostIsolationExceptionSummary(http); + if (isMounted.current) { + setStats(summary); + } + } catch (error) { + if (isMounted.current) { + toasts.addDanger( + i18n.translate( + 'xpack.securitySolution.endpoint.fleetCustomExtension.hostIsolationExceptionsSummary.error', + { + defaultMessage: + 'There was an error trying to fetch host isolation exceptions stats: "{error}"', + values: { error }, + } + ) + ); + } + } + }; + fetchStats(); + return () => { + isMounted.current = false; + }; + }, [http, toasts]); + + const hostIsolationExceptionsRouteState = useMemo<ListPageRouteState>(() => { + const fleetPackageCustomUrlPath = `#${ + pagePathGetters.integration_details_custom({ pkgkey })[1] + }`; + return { + backButtonLabel: i18n.translate( + 'xpack.securitySolution.endpoint.fleetCustomExtension.hostIsolationExceptionsSummary.backButtonLabel', + { defaultMessage: 'Back to Endpoint Integration' } + ), + onBackButtonNavigateTo: [ + INTEGRATIONS_PLUGIN_ID, + { + path: fleetPackageCustomUrlPath, + }, + ], + backButtonUrl: getAppUrl({ + appId: INTEGRATIONS_PLUGIN_ID, + path: fleetPackageCustomUrlPath, + }), + }; + }, [getAppUrl, pkgkey]); + + return ( + <EuiPanel hasShadow={false} paddingSize="l" hasBorder data-test-subj="fleedEventFiltersCard"> + <StyledEuiFlexGridGroup alignItems="baseline" justifyContent="center"> + <StyledEuiFlexGridItem gridarea="title" alignitems="flex-start"> + <EuiText> + <h4> + <FormattedMessage + id="xpack.securitySolution.endpoint.fleetCustomExtension.hostIsolationExceptionsSummary.label" + defaultMessage="Host isolation exceptions" + /> + </h4> + </EuiText> + </StyledEuiFlexGridItem> + <StyledEuiFlexGridItem gridarea="summary"> + <ExceptionItemsSummary stats={stats} /> + </StyledEuiFlexGridItem> + <StyledEuiFlexGridItem gridarea="link" alignitems="flex-end"> + <> + <LinkWithIcon + href={getAppUrl({ + path: hostIsolationExceptionsListUrlPath, + })} + appPath={hostIsolationExceptionsListUrlPath} + appState={hostIsolationExceptionsRouteState} + data-test-subj="linkToHostIsolationExceptions" + > + <FormattedMessage + id="xpack.securitySolution.endpoint.fleetCustomExtension.hostIsolationExceptionsSummary.manageLabel" + defaultMessage="Manage" + /> + </LinkWithIcon> + </> + </StyledEuiFlexGridItem> + </StyledEuiFlexGridGroup> + </EuiPanel> + ); + } +); + +FleetHostIsolationExceptionsCard.displayName = 'FleetHostIsolationExceptionsCard'; diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.test.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.test.tsx index c61f109c75a1e..1da2c41324f56 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.test.tsx @@ -100,8 +100,8 @@ describe('Fleet trusted apps card', () => { }; }); const component = await renderComponent(); - expect(component.getByText('Trusted Applications')).not.toBeNull(); - expect(component.getByText('Manage trusted applications')).not.toBeNull(); + expect(component.getByText('Trusted applications')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); }); it('should render an error toast when api call fails', async () => { expect(addDanger).toBeCalledTimes(0); @@ -112,8 +112,8 @@ describe('Fleet trusted apps card', () => { }; }); const component = await renderComponent(); - expect(component.getByText('Trusted Applications')).not.toBeNull(); - expect(component.getByText('Manage trusted applications')).not.toBeNull(); + expect(component.getByText('Trusted applications')).not.toBeNull(); + expect(component.getByText('Manage')).not.toBeNull(); await reactTestingLibrary.waitFor(() => expect(addDanger).toBeCalledTimes(1)); }); }); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.tsx index 54b1c37c7093f..680023cc6fd07 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card.tsx @@ -72,7 +72,7 @@ export const FleetTrustedAppsCard = memo<FleetTrustedAppsCardProps>( const getTitleMessage = () => ( <FormattedMessage id="xpack.securitySolution.endpoint.fleetCustomExtension.trustedAppsLabel" - defaultMessage="Trusted Applications" + defaultMessage="Trusted applications" /> ); diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card_wrapper.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card_wrapper.tsx index 5ac79a5dd5d5a..848a0916b1d2e 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card_wrapper.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/fleet_trusted_apps_card_wrapper.tsx @@ -59,8 +59,8 @@ export const FleetTrustedAppsCardWrapper = memo<PackageCustomExtensionComponentP data-test-subj="linkToTrustedApps" > <FormattedMessage - id="xpack.securitySolution.endpoint.fleetCustomExtension.manageTrustedAppLinkLabel" - defaultMessage="Manage trusted applications" + id="xpack.securitySolution.endpoint.fleetCustomExtension.manageTrustedAppshortLinkLabel" + defaultMessage="Manage" /> </LinkWithIcon> ), diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/styled_components.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/styled_components.tsx index ad1d823677f22..ce28b4ac6c1cc 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/styled_components.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/components/styled_components.tsx @@ -9,7 +9,7 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; export const StyledEuiFlexGridGroup = styled(EuiFlexGroup)` display: grid; - grid-template-columns: 25% 45% 30%; + grid-template-columns: 33% 45% 22%; grid-template-areas: 'title summary link'; `; diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/index.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/index.tsx index 0748a95f63c9f..d53fe308a90ec 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/index.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/ingest_manager_integration/endpoint_package_custom_extension/index.tsx @@ -8,8 +8,9 @@ import { EuiSpacer } from '@elastic/eui'; import React, { memo } from 'react'; import { PackageCustomExtensionComponentProps } from '../../../../../../../../fleet/public'; -import { FleetTrustedAppsCardWrapper } from './components/fleet_trusted_apps_card_wrapper'; import { FleetEventFiltersCard } from './components/fleet_event_filters_card'; +import { FleetHostIsolationExceptionsCard } from './components/fleet_host_isolation_exceptions_card'; +import { FleetTrustedAppsCardWrapper } from './components/fleet_trusted_apps_card_wrapper'; export const EndpointPackageCustomExtension = memo<PackageCustomExtensionComponentProps>( (props) => { @@ -18,6 +19,8 @@ export const EndpointPackageCustomExtension = memo<PackageCustomExtensionCompone <FleetTrustedAppsCardWrapper {...props} /> <EuiSpacer /> <FleetEventFiltersCard {...props} /> + <EuiSpacer /> + <FleetHostIsolationExceptionsCard {...props} /> </div> ); } diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_forms/locked_card.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_forms/locked_card.tsx index 150ae5e82ef55..cd13e2f933526 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_forms/locked_card.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_forms/locked_card.tsx @@ -35,9 +35,11 @@ export const LockedPolicyCard = memo(({ title }: { title: string }) => { <LockedPolicyDiv> <EuiCard data-test-subj="lockedPolicyCard" - betaBadgeLabel={i18n.translate('xpack.securitySolution.endpoint.policy.details.platinum', { - defaultMessage: 'Platinum', - })} + betaBadgeProps={{ + label: i18n.translate('xpack.securitySolution.endpoint.policy.details.platinum', { + defaultMessage: 'Platinum', + }), + }} isDisabled={true} icon={<EuiIcon size="xl" type="lock" />} title={ diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/index.ts b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/index.ts index b59fb6cfdd2f7..2549dd5a2a4dc 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/index.ts +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/service/index.ts @@ -35,9 +35,9 @@ import { } from '../../../../../common/endpoint/types'; import { resolvePathVariables } from '../../../../common/utils/resolve_path_variables'; -import { sendGetEndpointSpecificPackagePolicies } from '../../policy/store/services/ingest'; import { toUpdateTrustedApp } from '../../../../../common/endpoint/service/trusted_apps/to_update_trusted_app'; import { isGlobalEffectScope } from '../state/type_guards'; +import { sendGetEndpointSpecificPackagePolicies } from '../../../services/policies'; export interface TrustedAppsService { getTrustedApp(params: GetOneTrustedAppRequestParams): Promise<GetOneTrustedAppResponse>; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.test.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.test.tsx index f05d018fe8e9a..23589843c28c3 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.test.tsx @@ -21,10 +21,10 @@ import { import { CreateTrustedAppForm, CreateTrustedAppFormProps } from './create_trusted_app_form'; import { defaultNewTrustedApp } from '../../store/builders'; -import { forceHTMLElementOffsetWidth } from './effected_policy_select/test_utils'; import { EndpointDocGenerator } from '../../../../../../common/endpoint/generate_data'; import { useIsExperimentalFeatureEnabled } from '../../../../../common/hooks/use_experimental_features'; import { licenseService } from '../../../../../common/hooks/use_license'; +import { forceHTMLElementOffsetWidth } from '../../../../components/effected_policy_select/test_utils'; jest.mock('../../../../../common/hooks/use_experimental_features'); const useIsExperimentalFeatureEnabledMock = useIsExperimentalFeatureEnabled as jest.Mock; diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx index da925ddd8a6c1..147529b164ae1 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/components/create_trusted_app_form.tsx @@ -42,13 +42,13 @@ import { import { defaultConditionEntry } from '../../store/builders'; import { OS_TITLES } from '../translations'; import { LogicalConditionBuilder, LogicalConditionBuilderProps } from './logical_condition'; +import { useTestIdGenerator } from '../../../../components/hooks/use_test_id_generator'; +import { useLicense } from '../../../../../common/hooks/use_license'; import { EffectedPolicySelect, EffectedPolicySelection, EffectedPolicySelectProps, -} from './effected_policy_select'; -import { useTestIdGenerator } from '../../../../components/hooks/use_test_id_generator'; -import { useLicense } from '../../../../../common/hooks/use_license'; +} from '../../../../components/effected_policy_select'; const OPERATING_SYSTEMS: readonly OperatingSystem[] = [ OperatingSystem.MAC, @@ -564,6 +564,13 @@ export const CreateTrustedAppForm = memo<CreateTrustedAppFormProps>( options={policies.options} onChange={handlePolicySelectChange} isLoading={policies?.isLoading} + description={i18n.translate( + 'xpack.securitySolution.trustedApps.assignmentSectionDescription', + { + defaultMessage: + 'Assign this trusted application globally across all policies, or assign it to specific policies.', + } + )} data-test-subj={getTestId('effectedPolicies')} /> </EuiFormRow> diff --git a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx index 39619379a1ee0..5d78de741e459 100644 --- a/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/trusted_apps/view/trusted_apps_page.test.tsx @@ -30,11 +30,11 @@ import { } from '../../../../../../fleet/common'; import { EndpointDocGenerator } from '../../../../../common/endpoint/generate_data'; import { isFailedResourceState, isLoadedResourceState } from '../state'; -import { forceHTMLElementOffsetWidth } from './components/effected_policy_select/test_utils'; import { toUpdateTrustedApp } from '../../../../../common/endpoint/service/trusted_apps/to_update_trusted_app'; import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { resolvePathVariables } from '../../../../common/utils/resolve_path_variables'; import { licenseService } from '../../../../common/hooks/use_license'; +import { forceHTMLElementOffsetWidth } from '../../../components/effected_policy_select/test_utils'; // TODO: remove this mock when feature flag is removed jest.mock('../../../../common/hooks/use_experimental_features'); diff --git a/x-pack/plugins/security_solution/public/management/services/policies.test.ts b/x-pack/plugins/security_solution/public/management/services/policies.test.ts new file mode 100644 index 0000000000000..0b93dffb71d3c --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/services/policies.test.ts @@ -0,0 +1,42 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { httpServiceMock } from '../../../../../../src/core/public/mocks'; +import { PACKAGE_POLICY_SAVED_OBJECT_TYPE } from '../../../../fleet/common'; +import { PACKAGE_POLICY_API_ROUTES } from '../../../../fleet/common/constants/routes'; +import { sendGetEndpointSpecificPackagePolicies } from './policies'; + +describe('ingest service', () => { + let http: ReturnType<typeof httpServiceMock.createStartContract>; + + beforeEach(() => { + http = httpServiceMock.createStartContract(); + }); + + describe('sendGetEndpointSpecificPackagePolicies()', () => { + it('auto adds kuery to api request', async () => { + await sendGetEndpointSpecificPackagePolicies(http); + expect(http.get).toHaveBeenCalledWith(`${PACKAGE_POLICY_API_ROUTES.LIST_PATTERN}`, { + query: { + kuery: `${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, + }, + }); + }); + it('supports additional KQL to be defined on input for query params', async () => { + await sendGetEndpointSpecificPackagePolicies(http, { + query: { kuery: 'someValueHere', page: 1, perPage: 10 }, + }); + expect(http.get).toHaveBeenCalledWith(`${PACKAGE_POLICY_API_ROUTES.LIST_PATTERN}`, { + query: { + kuery: `someValueHere and ${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, + perPage: 10, + page: 1, + }, + }); + }); + }); +}); diff --git a/x-pack/plugins/security_solution/public/management/services/policies.ts b/x-pack/plugins/security_solution/public/management/services/policies.ts new file mode 100644 index 0000000000000..63810ad499c09 --- /dev/null +++ b/x-pack/plugins/security_solution/public/management/services/policies.ts @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { HttpFetchOptions, HttpStart } from 'kibana/public'; +import { + GetPackagePoliciesRequest, + PACKAGE_POLICY_SAVED_OBJECT_TYPE, +} from '../../../../fleet/common'; +import { INGEST_API_PACKAGE_POLICIES } from '../pages/policy/store/services/ingest'; +import { GetPolicyListResponse } from '../pages/policy/types'; + +/** + * Retrieves a list of endpoint specific package policies (those created with a `package.name` of + * `endpoint`) from Ingest + * @param http + * @param options + */ +export const sendGetEndpointSpecificPackagePolicies = ( + http: HttpStart, + options: HttpFetchOptions & Partial<GetPackagePoliciesRequest> = {} +): Promise<GetPolicyListResponse> => { + return http.get<GetPolicyListResponse>(INGEST_API_PACKAGE_POLICIES, { + ...options, + query: { + ...options.query, + kuery: `${ + options?.query?.kuery ? `${options.query.kuery} and ` : '' + }${PACKAGE_POLICY_SAVED_OBJECT_TYPE}.package.name: endpoint`, + }, + }); +}; diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx index 15a0f870d7bda..cc87a3894443d 100644 --- a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map.tsx @@ -11,6 +11,7 @@ import React, { useEffect, useState, useMemo } from 'react'; import { createPortalNode, InPortal } from 'react-reverse-portal'; import styled, { css } from 'styled-components'; +import type { Filter, Query } from '@kbn/es-query'; import { ErrorEmbeddable, isErrorEmbeddable, @@ -26,7 +27,6 @@ import { MapToolTip } from './map_tool_tip/map_tool_tip'; import * as i18n from './translations'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { MapEmbeddable } from '../../../../../../plugins/maps/public/embeddable'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; import { useKibana } from '../../../common/lib/kibana'; import { getLayerList } from './map_config'; import { sourcererSelectors } from '../../../common/store/sourcerer'; diff --git a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx index b02e6513d9b43..3789c41f23a78 100644 --- a/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx +++ b/x-pack/plugins/security_solution/public/network/components/embeddables/embedded_map_helpers.tsx @@ -9,6 +9,7 @@ import uuid from 'uuid'; import React from 'react'; import { OutPortal, PortalNode } from 'react-reverse-portal'; import minimatch from 'minimatch'; +import type { Filter, Query } from '@kbn/es-query'; import { IndexPatternMapping } from './types'; import { getLayerList } from './map_config'; import { MAP_SAVED_OBJECT_TYPE } from '../../../../../maps/public'; @@ -18,7 +19,7 @@ import type { MapEmbeddableInput, } from '../../../../../../plugins/maps/public'; import * as i18n from './translations'; -import { Query, Filter } from '../../../../../../../src/plugins/data/public'; + import { EmbeddableStart, isErrorEmbeddable, diff --git a/x-pack/plugins/security_solution/public/network/components/network_dns_table/columns.tsx b/x-pack/plugins/security_solution/public/network/components/network_dns_table/columns.tsx index 03c2442982fc9..4dcdc92983168 100644 --- a/x-pack/plugins/security_solution/public/network/components/network_dns_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/network/components/network_dns_table/columns.tsx @@ -34,7 +34,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ field: `node.${NetworkDnsFields.dnsName}`, name: i18n.REGISTERED_DOMAIN, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (dnsName) => { if (dnsName != null) { @@ -77,7 +77,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ name: i18n.TOTAL_QUERIES, sortable: true, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (queryCount) => { if (queryCount != null) { return numeral(queryCount).format('0'); @@ -92,7 +92,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ name: i18n.UNIQUE_DOMAINS, sortable: true, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (uniqueDomains) => { if (uniqueDomains != null) { return numeral(uniqueDomains).format('0'); @@ -107,7 +107,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ name: i18n.DNS_BYTES_IN, sortable: true, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (dnsBytesIn) => { if (dnsBytesIn != null) { return <PreferenceFormattedBytes value={dnsBytesIn} />; @@ -122,7 +122,7 @@ export const getNetworkDnsColumns = (): NetworkDnsColumns => [ name: i18n.DNS_BYTES_OUT, sortable: true, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (dnsBytesOut) => { if (dnsBytesOut != null) { return <PreferenceFormattedBytes value={dnsBytesOut} />; diff --git a/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx b/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx index 4c50a3a0f49c5..5a2780164a8a2 100644 --- a/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/columns.tsx @@ -8,7 +8,7 @@ import { get } from 'lodash/fp'; import numeral from '@elastic/numeral'; import React from 'react'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { CountryFlagAndName } from '../source_destination/country_flag'; import { FlowTargetSourceDest, diff --git a/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx b/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx index 23b453c0f7384..80de694f89484 100644 --- a/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx +++ b/x-pack/plugins/security_solution/public/network/components/network_top_countries_table/index.tsx @@ -9,7 +9,7 @@ import { last } from 'lodash/fp'; import React, { useCallback, useMemo } from 'react'; import { useDispatch } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { networkActions, networkModel, networkSelectors } from '../../store'; import { diff --git a/x-pack/plugins/security_solution/public/network/components/tls_table/columns.tsx b/x-pack/plugins/security_solution/public/network/components/tls_table/columns.tsx index 7a45c418a4ff0..6641927082b6b 100644 --- a/x-pack/plugins/security_solution/public/network/components/tls_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/network/components/tls_table/columns.tsx @@ -32,7 +32,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node', name: i18n.ISSUER, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: ({ _id, issuers }) => getRowItemDraggables({ @@ -45,7 +45,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node', name: i18n.SUBJECT, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: ({ _id, subjects }) => getRowItemDraggables({ @@ -58,7 +58,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node._id', name: i18n.SHA1_FINGERPRINT, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (sha1) => getRowItemDraggable({ @@ -71,7 +71,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node', name: i18n.JA3_FINGERPRINT, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: ({ _id, ja3 }) => getRowItemDraggables({ @@ -84,7 +84,7 @@ export const getTlsColumns = (tableId: string): TlsColumns => [ field: 'node', name: i18n.VALID_UNTIL, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: ({ _id, notAfter }) => getRowItemDraggables({ diff --git a/x-pack/plugins/security_solution/public/network/components/users_table/columns.tsx b/x-pack/plugins/security_solution/public/network/components/users_table/columns.tsx index 473d014686795..4068c616228f2 100644 --- a/x-pack/plugins/security_solution/public/network/components/users_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/network/components/users_table/columns.tsx @@ -28,7 +28,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.name', name: i18n.USER_NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (userName) => getRowItemDraggable({ @@ -41,7 +41,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.id', name: i18n.USER_ID, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (userIds) => getRowItemDraggables({ @@ -54,7 +54,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.groupName', name: i18n.GROUP_NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (groupNames) => getRowItemDraggables({ @@ -67,7 +67,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.groupId', name: i18n.GROUP_ID, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (groupId) => getRowItemDraggables({ @@ -81,7 +81,7 @@ export const getUsersColumns = (flowTarget: FlowTarget, tableId: string): UsersC field: 'node.user.count', name: i18n.DOCUMENT_COUNT, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (docCount) => defaultToEmptyTag(docCount), }, diff --git a/x-pack/plugins/security_solution/public/network/jest.config.js b/x-pack/plugins/security_solution/public/network/jest.config.js index 6059805c0652a..98b45b1e5699b 100644 --- a/x-pack/plugins/security_solution/public/network/jest.config.js +++ b/x-pack/plugins/security_solution/public/network/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/network', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/public/network/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/network/pages/details/index.tsx b/x-pack/plugins/security_solution/public/network/pages/details/index.tsx index e0ede2d23846e..ef7dea5164468 100644 --- a/x-pack/plugins/security_solution/public/network/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/details/index.tsx @@ -45,7 +45,7 @@ import { NetworkTopNFlowQueryTable } from './network_top_n_flow_query_table'; import { TlsQueryTable } from './tls_query_table'; import { UsersQueryTable } from './users_query_table'; import { AnomaliesQueryTabBody } from '../../../common/containers/anomalies/anomalies_query_tab_body'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { networkModel } from '../../store'; import { SecurityPageName } from '../../../app/types'; import { useSourcererDataView } from '../../../common/containers/sourcerer'; @@ -95,7 +95,7 @@ const NetworkDetailsComponent: React.FC = () => { const { docValueFields, indicesExist, indexPattern, selectedPatterns } = useSourcererDataView(); const ip = decodeIpv6(detailName); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, diff --git a/x-pack/plugins/security_solution/public/network/pages/details/types.ts b/x-pack/plugins/security_solution/public/network/pages/details/types.ts index 02722f4709bcc..7a8b95c1e62f3 100644 --- a/x-pack/plugins/security_solution/public/network/pages/details/types.ts +++ b/x-pack/plugins/security_solution/public/network/pages/details/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ESTermQuery } from '../../../../common/typed_json'; import { NetworkType } from '../../store/model'; diff --git a/x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx b/x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx index 553281144ebff..026aa9f68871f 100644 --- a/x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/navigation/alerts_query_tab_body.tsx @@ -7,7 +7,7 @@ import React from 'react'; -import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; +import type { Filter } from '@kbn/es-query'; import { TimelineId } from '../../../../common/types/timeline'; import { AlertsView } from '../../../common/components/alerts_viewer'; import { NetworkComponentQueryProps } from './types'; diff --git a/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts b/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts index 96b72caf03300..6c1fd99415c49 100644 --- a/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/network/pages/navigation/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { DataViewBase } from '@kbn/es-query'; +import type { DataViewBase } from '@kbn/es-query'; import { ESTermQuery } from '../../../../common/typed_json'; import { NavTab } from '../../../common/components/navigation/types'; diff --git a/x-pack/plugins/security_solution/public/network/pages/network.test.tsx b/x-pack/plugins/security_solution/public/network/pages/network.test.tsx index d0fff882cdc86..014beb28c374d 100644 --- a/x-pack/plugins/security_solution/public/network/pages/network.test.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/network.test.tsx @@ -10,7 +10,7 @@ import React from 'react'; import { Router } from 'react-router-dom'; import { waitFor } from '@testing-library/react'; import '../../common/mock/match_media'; -import { Filter } from '../../../../../../src/plugins/data/common/es_query'; +import type { Filter } from '@kbn/es-query'; import { useSourcererDataView } from '../../common/containers/sourcerer'; import { TestProviders, diff --git a/x-pack/plugins/security_solution/public/network/pages/network.tsx b/x-pack/plugins/security_solution/public/network/pages/network.tsx index f38a26da00599..d1d686bfe09df 100644 --- a/x-pack/plugins/security_solution/public/network/pages/network.tsx +++ b/x-pack/plugins/security_solution/public/network/pages/network.tsx @@ -13,7 +13,7 @@ import { useParams } from 'react-router-dom'; import styled from 'styled-components'; import { isTab } from '../../../../timelines/public'; -import { esQuery } from '../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../src/plugins/data/common'; import { SecurityPageName } from '../../app/types'; import { UpdateDateRange } from '../../common/components/charts/common'; import { EmbeddedMap } from '../components/embeddables/embedded_map'; @@ -136,13 +136,13 @@ const NetworkComponent = React.memo<NetworkComponentProps>( ); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters, }); const [tabsFilterQuery] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters: tabsFilters, diff --git a/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx b/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx index bce9dd9fa9d0c..acf85dcf55d18 100644 --- a/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/alerts_by_category/index.tsx @@ -9,13 +9,13 @@ import numeral from '@elastic/numeral'; import React, { useEffect, useMemo, useCallback } from 'react'; import { Position } from '@elastic/charts'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { DEFAULT_NUMBER_FORMAT, APP_UI_ID } from '../../../../common/constants'; import { SHOWING, UNIT } from '../../../common/components/alerts_viewer/translations'; import { MatrixHistogram } from '../../../common/components/matrix_histogram'; import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; import { convertToBuildEsQuery } from '../../../common/lib/keury'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { HostsTableType } from '../../../hosts/store/model'; import * as i18n from '../../pages/translations'; @@ -101,7 +101,7 @@ const AlertsByCategoryComponent: React.FC<Props> = ({ const [filterQuery, kqlError] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, diff --git a/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx b/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx index 8ec38549477fa..b8e04e40e6dfe 100644 --- a/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/event_counts/index.tsx @@ -9,7 +9,7 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React, { useMemo } from 'react'; import styled from 'styled-components'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { ID as OverviewHostQueryId } from '../../containers/overview_host'; import { OverviewHost } from '../overview_host'; import { OverviewNetwork } from '../overview_network'; @@ -17,7 +17,7 @@ import { filterHostData } from '../../../hosts/pages/navigation/alerts_query_tab import { useKibana } from '../../../common/lib/kibana'; import { convertToBuildEsQuery } from '../../../common/lib/keury'; import { filterNetworkData } from '../../../network/pages/navigation/alerts_query_tab_body'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; import { useInvalidFilterQuery } from '../../../common/hooks/use_invalid_filter_query'; @@ -46,7 +46,7 @@ const EventCountsComponent: React.FC<Props> = ({ const [hostFilterQuery, hostKqlError] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters: [...filters, ...filterHostData], @@ -57,7 +57,7 @@ const EventCountsComponent: React.FC<Props> = ({ const [networkFilterQuery] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters: [...filters, ...filterNetworkData], diff --git a/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx b/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx index a184ba572d77c..7f0726b143053 100644 --- a/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/events_by_dataset/index.tsx @@ -10,7 +10,7 @@ import numeral from '@elastic/numeral'; import React, { useEffect, useMemo, useCallback } from 'react'; import uuid from 'uuid'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { DEFAULT_NUMBER_FORMAT, APP_UI_ID } from '../../../../common/constants'; import { SHOWING, UNIT } from '../../../common/components/events_viewer/translations'; import { getTabsOnHostsUrl } from '../../../common/components/link_to/redirect_to_hosts'; @@ -23,7 +23,7 @@ import { eventsStackByOptions } from '../../../hosts/pages/navigation'; import { convertToBuildEsQuery } from '../../../common/lib/keury'; import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; import { histogramConfigs } from '../../../hosts/pages/navigation/events_query_tab_body'; -import { esQuery } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { HostsTableType } from '../../../hosts/store/model'; import { InputsModelId } from '../../../common/store/inputs/constants'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; @@ -120,7 +120,7 @@ const EventsByDatasetComponent: React.FC<Props> = ({ const [filterQuery, kqlError] = useMemo(() => { if (combinedQueries == null) { return convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters, diff --git a/x-pack/plugins/security_solution/public/overview/components/recent_cases/index.tsx b/x-pack/plugins/security_solution/public/overview/components/recent_cases/index.tsx index e2d7d8264e9f9..03de4deabfe4a 100644 --- a/x-pack/plugins/security_solution/public/overview/components/recent_cases/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/recent_cases/index.tsx @@ -7,58 +7,17 @@ import React from 'react'; -import { - getCaseDetailsUrl, - getCaseUrl, - getCreateCaseUrl, -} from '../../../common/components/link_to/redirect_to_case'; -import { useFormatUrl } from '../../../common/components/link_to'; import { useGetUserCasesPermissions, useKibana } from '../../../common/lib/kibana'; -import { APP_ID, APP_UI_ID } from '../../../../common/constants'; -import { SecurityPageName } from '../../../app/types'; -import { AllCasesNavProps } from '../../../cases/components/all_cases'; +import { APP_ID } from '../../../../common/constants'; const MAX_CASES_TO_SHOW = 3; const RecentCasesComponent = () => { - const { formatUrl } = useFormatUrl(SecurityPageName.case); - const { - cases: casesUi, - application: { navigateToApp }, - } = useKibana().services; + const { cases: casesUi } = useKibana().services; - const hasWritePermissions = useGetUserCasesPermissions()?.crud ?? false; + const userCanCrud = useGetUserCasesPermissions()?.crud ?? false; return casesUi.getRecentCases({ - allCasesNavigation: { - href: formatUrl(getCaseUrl()), - onClick: async (e) => { - e?.preventDefault(); - return navigateToApp(APP_UI_ID, { deepLinkId: SecurityPageName.case }); - }, - }, - caseDetailsNavigation: { - href: ({ detailName, subCaseId }: AllCasesNavProps) => { - return formatUrl(getCaseDetailsUrl({ id: detailName, subCaseId })); - }, - onClick: async ({ detailName, subCaseId, search }, e) => { - e?.preventDefault(); - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCaseDetailsUrl({ id: detailName, search, subCaseId }), - }); - }, - }, - createCaseNavigation: { - href: formatUrl(getCreateCaseUrl()), - onClick: async (e) => { - e?.preventDefault(); - return navigateToApp(APP_UI_ID, { - deepLinkId: SecurityPageName.case, - path: getCreateCaseUrl(), - }); - }, - }, - hasWritePermissions, + userCanCrud, maxCasesToShow: MAX_CASES_TO_SHOW, owner: [APP_ID], }); diff --git a/x-pack/plugins/security_solution/public/overview/components/signals_by_category/use_filters_for_signals_by_category.ts b/x-pack/plugins/security_solution/public/overview/components/signals_by_category/use_filters_for_signals_by_category.ts index 6f87cb72763d3..69d43d822eff7 100644 --- a/x-pack/plugins/security_solution/public/overview/components/signals_by_category/use_filters_for_signals_by_category.ts +++ b/x-pack/plugins/security_solution/public/overview/components/signals_by_category/use_filters_for_signals_by_category.ts @@ -6,7 +6,7 @@ */ import { useMemo } from 'react'; -import { Filter } from '@kbn/es-query'; +import type { Filter } from '@kbn/es-query'; import { useIsExperimentalFeatureEnabled } from '../../../common/hooks/use_experimental_features'; import { diff --git a/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/use_request_event_counts.ts b/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/use_request_event_counts.ts index 14a5bf8ca2542..a1bf4d9d35f65 100644 --- a/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/use_request_event_counts.ts +++ b/x-pack/plugins/security_solution/public/overview/containers/overview_cti_links/use_request_event_counts.ts @@ -7,7 +7,7 @@ import { useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { convertToBuildEsQuery } from '../../../common/lib/keury'; -import { getEsQueryConfig } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { MatrixHistogramType } from '../../../../common/search_strategy'; import { EVENT_DATASET } from '../../../../common/cti/constants'; import { useMatrixHistogram } from '../../../common/containers/matrix_histogram'; diff --git a/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_hosts_risk_score_complete.ts b/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_hosts_risk_score_complete.ts index 22e3b58692120..f925339e68490 100644 --- a/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_hosts_risk_score_complete.ts +++ b/x-pack/plugins/security_solution/public/overview/containers/overview_risky_host_links/use_hosts_risk_score_complete.ts @@ -8,11 +8,10 @@ import { Observable } from 'rxjs'; import { filter } from 'rxjs/operators'; import { useObservable, withOptionalSignal } from '@kbn/securitysolution-hook-utils'; -import { - DataPublicPluginStart, - isCompleteResponse, - isErrorResponse, -} from '../../../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; + +import { isCompleteResponse, isErrorResponse } from '../../../../../../../src/plugins/data/common'; + import { HostsQueries, HostsRiskScoreRequestOptions, diff --git a/x-pack/plugins/security_solution/public/overview/jest.config.js b/x-pack/plugins/security_solution/public/overview/jest.config.js index 673eece7a36fd..b34dea8802c5e 100644 --- a/x-pack/plugins/security_solution/public/overview/jest.config.js +++ b/x-pack/plugins/security_solution/public/overview/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/overview', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/public/overview/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/resolver/jest.config.js b/x-pack/plugins/security_solution/public/resolver/jest.config.js index 43e1202d9d8da..f517075bf5962 100644 --- a/x-pack/plugins/security_solution/public/resolver/jest.config.js +++ b/x-pack/plugins/security_solution/public/resolver/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/public/resolver', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/public/resolver/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx index 4fb2b9419c377..1708509b31864 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.test.tsx @@ -11,11 +11,11 @@ import { CreateFieldButton } from './index'; import { indexPatternFieldEditorPluginMock, Start, -} from '../../../../../../../src/plugins/index_pattern_field_editor/public/mocks'; +} from '../../../../../../../src/plugins/data_view_field_editor/public/mocks'; import { TestProviders } from '../../../common/mock'; import { useKibana } from '../../../common/lib/kibana'; -import { DataView } from '../../../../../../../src/plugins/data/common'; +import type { DataView } from '../../../../../../../src/plugins/data/common'; import { TimelineId } from '../../../../common'; const useKibanaMock = useKibana as jest.Mocked<typeof useKibana>; @@ -28,7 +28,7 @@ const runAllPromises = () => new Promise(setImmediate); describe('CreateFieldButton', () => { beforeEach(() => { mockIndexPatternFieldEditor = indexPatternFieldEditorPluginMock.createStartContract(); - useKibanaMock().services.indexPatternFieldEditor = mockIndexPatternFieldEditor; + useKibanaMock().services.dataViewFieldEditor = mockIndexPatternFieldEditor; useKibanaMock().services.data.dataViews.get = () => new Promise(() => undefined); }); diff --git a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx index 33d8587eca818..088c37d36c167 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/create_field_button/index.tsx @@ -10,7 +10,7 @@ import { EuiButton } from '@elastic/eui'; import styled from 'styled-components'; import { useDispatch } from 'react-redux'; -import { IndexPattern, IndexPatternField } from '../../../../../../../src/plugins/data/public'; +import type { DataViewField, DataView } from '../../../../../../../src/plugins/data_views/common'; import { useKibana } from '../../../common/lib/kibana'; import * as i18n from './translations'; @@ -34,12 +34,12 @@ const StyledButton = styled(EuiButton)` export const CreateFieldButton = React.memo<CreateFieldButtonProps>( ({ selectedDataViewId, onClick: onClickParam, timelineId }) => { - const [dataView, setDataView] = useState<IndexPattern | null>(null); + const [dataView, setDataView] = useState<DataView | null>(null); const dispatch = useDispatch(); const { indexFieldsSearch } = useDataView(); const { - indexPatternFieldEditor, + dataViewFieldEditor, data: { dataViews }, } = useKibana().services; @@ -51,9 +51,9 @@ export const CreateFieldButton = React.memo<CreateFieldButtonProps>( const onClick = useCallback(() => { if (dataView) { - indexPatternFieldEditor?.openEditor({ - ctx: { indexPattern: dataView }, - onSave: (field: IndexPatternField) => { + dataViewFieldEditor?.openEditor({ + ctx: { dataView }, + onSave: (field: DataViewField) => { // Fetch the updated list of fields indexFieldsSearch(selectedDataViewId); @@ -74,7 +74,7 @@ export const CreateFieldButton = React.memo<CreateFieldButtonProps>( } onClickParam(); }, [ - indexPatternFieldEditor, + dataViewFieldEditor, dataView, onClickParam, indexFieldsSearch, @@ -83,7 +83,7 @@ export const CreateFieldButton = React.memo<CreateFieldButtonProps>( timelineId, ]); - if (!indexPatternFieldEditor?.userPermissions.editIndexPattern()) { + if (!dataViewFieldEditor?.userPermissions.editIndexPattern()) { return null; } diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/add_to_case_button/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/flyout/add_to_case_button/index.tsx index ff8746f4729d7..2724221c52905 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/add_to_case_button/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/flyout/add_to_case_button/index.tsx @@ -17,11 +17,7 @@ import { setInsertTimeline, showTimeline } from '../../../store/timeline/actions import { useDeepEqualSelector } from '../../../../common/hooks/use_selector'; import { useGetUserCasesPermissions, useKibana } from '../../../../common/lib/kibana'; import { TimelineStatus, TimelineId, TimelineType } from '../../../../../common/types/timeline'; -import { - getCreateCaseUrl, - getCaseDetailsUrl, - useFormatUrl, -} from '../../../../common/components/link_to'; +import { getCreateCaseUrl, getCaseDetailsUrl } from '../../../../common/components/link_to'; import { SecurityPageName } from '../../../../app/types'; import { timelineDefaults } from '../../../../timelines/store/timeline/defaults'; import * as i18n from '../../timeline/properties/translations'; @@ -71,15 +67,7 @@ const AddToCaseButtonComponent: React.FC<Props> = ({ timelineId }) => { [dispatch, graphEventId, navigateToApp, savedObjectId, timelineId, timelineTitle] ); - const { formatUrl } = useFormatUrl(SecurityPageName.case); const userPermissions = useGetUserCasesPermissions(); - const goToCreateCase = useCallback( - (ev) => { - ev.preventDefault(); - onRowClick(); - }, - [onRowClick] - ); const handleButtonClick = useCallback(() => { setPopover((currentIsOpen) => !currentIsOpen); @@ -174,10 +162,6 @@ const AddToCaseButtonComponent: React.FC<Props> = ({ timelineId }) => { </EuiPopover> {isCaseModalOpen && cases.getAllCasesSelectorModal({ - createCaseNavigation: { - href: formatUrl(getCreateCaseUrl()), - onClick: goToCreateCase, - }, onRowClick, userCanCrud: userPermissions?.crud ?? false, owner: [APP_ID], diff --git a/x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx index 2f54cd6ce2962..bddd6256a992c 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/flyout/header/index.tsx @@ -39,7 +39,7 @@ import { SaveTimelineButton } from '../../timeline/header/save_timeline_button'; import { useGetUserCasesPermissions, useKibana } from '../../../../common/lib/kibana'; import { InspectButton } from '../../../../common/components/inspect'; import { useTimelineKpis } from '../../../containers/kpis'; -import { esQuery } from '../../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { useSourcererDataView } from '../../../../common/containers/sourcerer'; import { TimelineModel } from '../../../../timelines/store/timeline/model'; import { @@ -78,7 +78,7 @@ const FlyoutHeaderPanelComponent: React.FC<FlyoutHeaderPanelProps> = ({ timeline const dispatch = useDispatch(); const { browserFields, indexPattern } = useSourcererDataView(SourcererScopeName.timeline); const { uiSettings } = useKibana().services; - const esQueryConfig = useMemo(() => esQuery.getEsQueryConfig(uiSettings), [uiSettings]); + const esQueryConfig = useMemo(() => getEsQueryConfig(uiSettings), [uiSettings]); const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []); const { activeTab, @@ -367,7 +367,7 @@ const FlyoutHeaderComponent: React.FC<FlyoutHeaderProps> = ({ timelineId }) => { } }); const { uiSettings } = useKibana().services; - const esQueryConfig = useMemo(() => esQuery.getEsQueryConfig(uiSettings), [uiSettings]); + const esQueryConfig = useMemo(() => getEsQueryConfig(uiSettings), [uiSettings]); const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []); const timeline: TimelineModel = useSelector( (state: State) => getTimeline(state, timelineId) ?? timelineDefaults diff --git a/x-pack/plugins/security_solution/public/timelines/components/netflow/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/netflow/index.test.tsx index 23a52b878472f..8a88a7182af03 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/netflow/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/netflow/index.test.tsx @@ -11,7 +11,6 @@ import { shallow } from 'enzyme'; import { removeExternalLinkText } from '@kbn/securitysolution-io-ts-utils'; import { asArrayIfExists } from '../../../common/lib/helpers'; -import { getMockNetflowData } from '../../../common/mock'; import '../../../common/mock/match_media'; import { TestProviders } from '../../../common/mock/test_providers'; import { @@ -61,6 +60,7 @@ import { NETWORK_TRANSPORT_FIELD_NAME, } from '../../../network/components/source_destination/field_names'; import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { getMockNetflowData } from '../../../common/mock/netflow'; jest.mock('../../../common/lib/kibana'); diff --git a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/note_previews/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/note_previews/index.tsx index 1016a430807be..7693efad0730d 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/open_timeline/note_previews/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/open_timeline/note_previews/index.tsx @@ -66,7 +66,7 @@ const ToggleEventDetailsButtonComponent: React.FC<ToggleEventDetailsButtonProps> <EuiButtonIcon title={i18n.TOGGLE_EXPAND_EVENT_DETAILS} aria-label={i18n.TOGGLE_EXPAND_EVENT_DETAILS} - color="subdued" + color="text" iconType="arrowRight" onClick={handleClick} /> diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/footer.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/footer.tsx index b35b9100834a1..535ad225a81cf 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/footer.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/event_details/footer.tsx @@ -13,7 +13,7 @@ import { TakeActionDropdown } from '../../../../detections/components/take_actio import { TimelineEventsDetailsItem, TimelineId } from '../../../../../common'; import { useExceptionModal } from '../../../../detections/components/alerts_table/timeline_actions/use_add_exception_modal'; import { AddExceptionModalWrapper } from '../../../../detections/components/alerts_table/timeline_actions/alert_context_menu'; -import { EventFiltersModal } from '../../../../management/pages/event_filters/view/components/modal'; +import { EventFiltersFlyout } from '../../../../management/pages/event_filters/view/components/flyout'; import { useEventFilterModal } from '../../../../detections/components/alerts_table/timeline_actions/use_event_filter_modal'; import { getFieldValue } from '../../../../detections/components/host_isolation/helpers'; import { Status } from '../../../../../common/detection_engine/schemas/common/schemas'; @@ -152,7 +152,7 @@ export const EventDetailsFooterComponent = React.memo( /> )} {isAddEventFilterModalOpen && ecsData != null && ( - <EventFiltersModal data={ecsData} onCancel={closeAddEventFilterModal} /> + <EventFiltersFlyout data={ecsData} onCancel={closeAddEventFilterModal} /> )} </> ); diff --git a/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx b/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx index 5b13f3f2a3b1b..1330795841653 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/side_panel/network_details/expandable_network.tsx @@ -23,7 +23,7 @@ import { convertToBuildEsQuery } from '../../../../common/lib/keury'; import { inputsSelectors } from '../../../../common/store'; import { setAbsoluteRangeDatePicker } from '../../../../common/store/inputs/actions'; import { OverviewEmpty } from '../../../../overview/components/overview_empty'; -import { esQuery } from '../../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { useSourcererDataView } from '../../../../common/containers/sourcerer'; import { useNetworkDetails } from '../../../../network/containers/details'; import { networkModel } from '../../../../network/store'; @@ -100,7 +100,7 @@ export const ExpandableNetworkDetails = ({ const { docValueFields, indicesExist, indexPattern, selectedPatterns } = useSourcererDataView(); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts index 0ec974f876894..d05386c2504c5 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/column_renderer.ts @@ -6,7 +6,7 @@ */ import type React from 'react'; -import { Filter } from '../../../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { BrowserFields } from '../../../../../../../timelines/common/search_strategy'; import { ColumnHeaderOptions, RowRenderer } from '../../../../../../common'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx index 2f0653826d11b..f00eb332c564b 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx @@ -7,7 +7,7 @@ import { head } from 'lodash/fp'; import React from 'react'; -import { Filter } from '../../../../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; import { ColumnHeaderOptions } from '../../../../../../common'; import { TimelineNonEcsData } from '../../../../../../common/search_strategy/timeline'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx index 1bfd0ed6b87c4..c5b63cb598969 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/cell_rendering/default_cell_renderer.tsx @@ -13,14 +13,14 @@ import { getColumnRenderer } from '../body/renderers/get_column_renderer'; import { CellValueElementProps } from '.'; import { getLink } from '../../../../common/lib/cell_actions/helpers'; +import { FIELDS_WITHOUT_CELL_ACTIONS } from '../../../../common/lib/cell_actions/constants'; import { ExpandedCellValueActions, StyledContent, } from '../../../../common/lib/cell_actions/expanded_cell_value_actions'; -const FIELDS_WITHOUT_CELL_ACTIONS = ['signal.rule.risk_score', 'signal.reason']; const hasCellActions = (columnId?: string) => { - return columnId && FIELDS_WITHOUT_CELL_ACTIONS.indexOf(columnId) < 0; + return columnId && !FIELDS_WITHOUT_CELL_ACTIONS.includes(columnId); }; export const DefaultCellRenderer: React.FC<CellValueElementProps> = ({ diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx index 80a682293dbba..c11aaa3b17370 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/footer/index.tsx @@ -387,7 +387,7 @@ export const FooterComponent = ({ <b> {i18n.AUTO_REFRESH_ACTIVE}{' '} <EuiIconTip - color="subdued" + color="text" content={ <FormattedMessage id="xpack.securitySolution.footer.autoRefreshActiveTooltip" diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx index 5741f0d2ea396..61b9c8b2e9585 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/header/index.tsx @@ -7,7 +7,7 @@ import { EuiCallOut } from '@elastic/eui'; import React from 'react'; -import { FilterManager } from 'src/plugins/data/public'; +import type { FilterManager } from 'src/plugins/data/public'; import { DataProviders } from '../data_providers'; import { StatefulSearchOrFilter } from '../search_or_filter'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.test.tsx index 8383da6bf28a4..8014a0e257971 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.test.tsx @@ -12,7 +12,7 @@ import { DataProviderType } from './data_providers/data_provider'; import { mockDataProviders } from './data_providers/mock/mock_data_providers'; import { buildGlobalQuery, combineQueries, resolverIsShowing, showGlobalFilters } from './helpers'; import { mockBrowserFields } from '../../../common/containers/source/mock'; -import { EsQueryConfig, Filter, esFilters } from '../../../../../../../src/plugins/data/public'; +import { EsQueryConfig, FilterStateStore, Filter } from '@kbn/es-query'; const cleanUpKqlQuery = (str: string) => str.replace(/\n/g, '').replace(/\s\s+/g, ' '); @@ -269,7 +269,7 @@ describe('Combined Queries', () => { browserFields: mockBrowserFields, filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -281,7 +281,7 @@ describe('Combined Queries', () => { query: { match_phrase: { 'event.category': 'file' } }, }, { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -521,7 +521,7 @@ describe('Combined Queries', () => { }, }, $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, } as Filter, ], @@ -543,7 +543,7 @@ describe('Combined Queries', () => { browserFields: mockBrowserFields, filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx index d9b1be8c20b61..04b108835d53c 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/helpers.tsx @@ -8,7 +8,7 @@ import { isEmpty, get } from 'lodash/fp'; import memoizeOne from 'memoize-one'; -import { DataViewBase, EsQueryConfig, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, EsQueryConfig, Filter, Query } from '@kbn/es-query'; import { handleSkipFocus, elementOrChildrenHasFocus, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.test.tsx index bb1281c0eff2e..f5ceebf9cdb11 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.test.tsx @@ -13,18 +13,26 @@ import { DragDropContextWrapper } from '../../../common/components/drag_and_drop import '../../../common/mock/match_media'; import { mockBrowserFields, mockDocValueFields } from '../../../common/containers/source/mock'; import { TimelineId } from '../../../../common/types/timeline'; -import { mockIndexNames, mockIndexPattern, TestProviders } from '../../../common/mock'; +import { + mockGlobalState, + mockIndexNames, + mockIndexPattern, + TestProviders, +} from '../../../common/mock'; import { StatefulTimeline, Props as StatefulTimelineOwnProps } from './index'; import { useTimelineEvents } from '../../containers/index'; import { DefaultCellRenderer } from './cell_rendering/default_cell_renderer'; import { SELECTOR_TIMELINE_GLOBAL_CONTAINER } from './styles'; import { defaultRowRenderers } from './body/renderers'; +import { useSourcererDataView } from '../../../common/containers/sourcerer'; jest.mock('../../containers/index', () => ({ useTimelineEvents: jest.fn(), })); +jest.mock('./tabs_content'); + jest.mock('../../../common/lib/kibana'); jest.mock('../../../common/components/url_state/normalize_time_range.ts'); jest.mock('@kbn/i18n/react', () => { @@ -54,21 +62,29 @@ jest.mock('react-router-dom', () => { useHistory: jest.fn(), }; }); -jest.mock('../../../common/containers/sourcerer', () => { - const originalModule = jest.requireActual('../../../common/containers/sourcerer'); +const mockDispatch = jest.fn(); + +jest.mock('react-redux', () => { + const actual = jest.requireActual('react-redux'); return { - ...originalModule, - useSourcererDataView: jest.fn().mockReturnValue({ - browserFields: mockBrowserFields, - docValueFields: mockDocValueFields, - loading: false, - indexPattern: mockIndexPattern, - pageInfo: { activePage: 0, querySize: 0 }, - selectedPatterns: mockIndexNames, - }), + ...actual, + useDispatch: () => mockDispatch, }; }); + +const mockUseSourcererDataView: jest.Mock = useSourcererDataView as jest.Mock; +jest.mock('../../../common/containers/sourcerer'); +const mockDataView = { + dataViewId: mockGlobalState.timeline.timelineById.test?.dataViewId, + browserFields: mockBrowserFields, + docValueFields: mockDocValueFields, + loading: false, + indexPattern: mockIndexPattern, + pageInfo: { activePage: 0, querySize: 0 }, + selectedPatterns: mockGlobalState.timeline.timelineById.test?.indexNames, +}; +mockUseSourcererDataView.mockReturnValue(mockDataView); describe('StatefulTimeline', () => { const props: StatefulTimelineOwnProps = { renderCellValue: DefaultCellRenderer, @@ -77,6 +93,7 @@ describe('StatefulTimeline', () => { }; beforeEach(() => { + jest.clearAllMocks(); (useTimelineEvents as jest.Mock).mockReturnValue([ false, { @@ -97,6 +114,25 @@ describe('StatefulTimeline', () => { </TestProviders> ); expect(wrapper.find('[data-test-subj="timeline"]')).toBeTruthy(); + expect(mockDispatch).toBeCalledTimes(1); + }); + + test('data view updates, updates timeline', () => { + mockUseSourcererDataView.mockReturnValue({ ...mockDataView, selectedPatterns: mockIndexNames }); + mount( + <TestProviders> + <StatefulTimeline {...props} /> + </TestProviders> + ); + expect(mockDispatch).toBeCalledTimes(2); + expect(mockDispatch).toHaveBeenNthCalledWith(2, { + payload: { + id: 'test', + dataViewId: mockDataView.dataViewId, + indexNames: mockIndexNames, + }, + type: 'x-pack/security_solution/local/timeline/UPDATE_DATA_VIEW', + }); }); test(`it add attribute data-timeline-id in ${SELECTOR_TIMELINE_GLOBAL_CONTAINER}`, () => { diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx index 48f9274fa563f..12bd3113f3ea7 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/index.tsx @@ -64,9 +64,16 @@ const StatefulTimelineComponent: React.FC<Props> = ({ const getTimeline = useMemo(() => timelineSelectors.getTimelineByIdSelector(), []); const { dataViewId, selectedPatterns } = useSourcererDataView(SourcererScopeName.timeline); - const { graphEventId, savedObjectId, timelineType, description } = useDeepEqualSelector((state) => + const { + dataViewId: dataViewIdCurrent, + indexNames: selectedPatternsCurrent, + graphEventId, + savedObjectId, + timelineType, + description, + } = useDeepEqualSelector((state) => pick( - ['graphEventId', 'savedObjectId', 'timelineType', 'description'], + ['indexNames', 'dataViewId', 'graphEventId', 'savedObjectId', 'timelineType', 'description'], getTimeline(state, timelineId) ?? timelineDefaults ) ); @@ -88,6 +95,38 @@ const StatefulTimelineComponent: React.FC<Props> = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + const onDataViewChange = useCallback(() => { + if ( + // initial state will get set on create + (dataViewIdCurrent === '' && selectedPatternsCurrent.length === 0) || + // don't update if no change + (dataViewIdCurrent === dataViewId && + selectedPatternsCurrent.sort().join() === selectedPatterns.sort().join()) + ) { + return; + } + + dispatch( + timelineActions.updateDataView({ + id: timelineId, + dataViewId, + indexNames: selectedPatterns, + }) + ); + }, [ + dataViewId, + dataViewIdCurrent, + dispatch, + selectedPatterns, + selectedPatternsCurrent, + timelineId, + ]); + + useEffect(() => { + onDataViewChange(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [dataViewId, selectedPatterns]); + const onSkipFocusBeforeEventsTable = useCallback(() => { const exitFullScreenButton = containerElement.current?.querySelector<HTMLButtonElement>( EXIT_FULL_SCREEN_CLASS_NAME diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/notes_tab_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/notes_tab_content/index.tsx index e4d97abc0433a..c2179abbb61df 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/notes_tab_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/notes_tab_content/index.tsx @@ -32,7 +32,7 @@ import { TimelineStatus, TimelineTabs } from '../../../../../common/types/timeli import { appSelectors } from '../../../../common/store/app'; import { AddNote } from '../../notes/add_note'; import { CREATED_BY, NOTES } from '../../notes/translations'; -import { PARTICIPANTS } from '../../../../cases/translations'; +import { PARTICIPANTS } from '../translations'; import { NotePreviews } from '../../open_timeline/note_previews'; import { TimelineResultNote } from '../../open_timeline/types'; import { getTimelineNoteSelector } from './selectors'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.test.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.test.tsx index 0f0f2a8641ac0..066d466bf9149 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.test.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.test.tsx @@ -14,7 +14,8 @@ import { mockBrowserFields } from '../../../../common/containers/source/mock'; import { convertKueryToElasticSearchQuery } from '../../../../common/lib/keury'; import { mockIndexPattern, TestProviders } from '../../../../common/mock'; import { QueryBar } from '../../../../common/components/query_bar'; -import { esFilters, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { FilterStateStore } from '@kbn/es-query'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { mockDataProviders } from '../data_providers/mock/mock_data_providers'; import { buildGlobalQuery } from '../helpers'; @@ -44,7 +45,7 @@ describe('Timeline QueryBar ', () => { test('check if we format the appropriate props to QueryBar', () => { const filters = [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, controlledBy: TIMELINE_FILTER_DROP_AREA, @@ -58,7 +59,7 @@ describe('Timeline QueryBar ', () => { query: { match: { 'event.category': { query: 'file', type: 'phrase' } } }, }, { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, controlledBy: undefined, diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx index 450a43b43ef5f..c561c26383896 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_bar/index.tsx @@ -11,12 +11,11 @@ import { useDispatch } from 'react-redux'; import { Subscription } from 'rxjs'; import deepEqual from 'fast-deep-equal'; +import { FilterStateStore, Filter, Query } from '@kbn/es-query'; import { useSourcererDataView } from '../../../../common/containers/sourcerer'; import { SourcererScopeName } from '../../../../common/store/sourcerer/model'; -import { - Query, - Filter, - esFilters, + +import type { FilterManager, SavedQuery, SavedQueryTimeFilter, @@ -300,7 +299,7 @@ export const getDataProviderFilter = (dataProviderDsl: string): Filter => { value: dataProviderDsl, }, $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, }; }; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx index 643bd679e04ee..ca89933252686 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/query_tab_content/index.tsx @@ -33,7 +33,8 @@ import { Footer, footerHeight } from '../footer'; import { TimelineHeader } from '../header'; import { calculateTotalPages, combineQueries } from '../helpers'; import { TimelineRefetch } from '../refetch_timeline'; -import { esQuery, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../../src/plugins/data/common'; import { ControlColumnProps, KueryFilterQueryKind, @@ -60,7 +61,6 @@ import { HeaderActions } from '../body/actions/header_actions'; import { getDefaultControlColumn } from '../body/control_columns'; import { useDeepEqualSelector } from '../../../../common/hooks/use_selector'; import { Sourcerer } from '../../../../common/components/sourcerer'; - const TimelineHeaderContainer = styled.div` margin-top: 6px; width: 100%; @@ -205,7 +205,7 @@ export const QueryTabContentComponent: React.FC<Props> = ({ [activeFilterManager, uiSettings] ); - const esQueryConfig = useMemo(() => esQuery.getEsQueryConfig(uiSettings), [uiSettings]); + const esQueryConfig = useMemo(() => getEsQueryConfig(uiSettings), [uiSettings]); const kqlQuery: { query: string; language: KueryFilterQueryKind; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx index 96ca26a099d2f..98e74269ae2df 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/index.tsx @@ -10,8 +10,9 @@ import React, { useCallback } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; import deepEqual from 'fast-deep-equal'; +import type { Filter } from '@kbn/es-query'; -import { Filter, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import type { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { State, inputsModel, inputsSelectors } from '../../../../common/store'; import { timelineActions, timelineSelectors } from '../../../store/timeline'; import { KqlMode, TimelineModel } from '../../../../timelines/store/timeline/model'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx index f1c4b7c3ef089..127f404a40751 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx @@ -8,8 +8,9 @@ import { EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui'; import React, { useCallback } from 'react'; import styled, { createGlobalStyle } from 'styled-components'; +import type { Filter } from '@kbn/es-query'; -import { Filter, FilterManager } from '../../../../../../../../src/plugins/data/public'; +import type { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { KqlMode } from '../../../../timelines/store/timeline/model'; import { DispatchUpdateReduxTime } from '../../../../common/components/super_date_picker'; import { KueryFilterQuery } from '../../../../../common/types/timeline'; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/translations.ts b/x-pack/plugins/security_solution/public/timelines/components/timeline/translations.ts index 5673f86256a4c..0095fdace4723 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/translations.ts +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/translations.ts @@ -53,3 +53,7 @@ export const TIMELINE_TEMPLATE = i18n.translate( defaultMessage: 'Timeline template', } ); + +export const PARTICIPANTS = i18n.translate('xpack.securitySolution.timeline.participantsTitle', { + defaultMessage: 'Participants', +}); diff --git a/x-pack/plugins/security_solution/public/timelines/containers/details/index.tsx b/x-pack/plugins/security_solution/public/timelines/containers/details/index.tsx index ac96cc334f795..9dfbad3a39065 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/details/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/containers/details/index.tsx @@ -20,7 +20,7 @@ import { TimelineEventsDetailsRequestOptions, TimelineEventsDetailsStrategyResponse, } from '../../../../common/search_strategy'; -import { isCompleteResponse, isErrorResponse } from '../../../../../../../src/plugins/data/public'; +import { isCompleteResponse, isErrorResponse } from '../../../../../../../src/plugins/data/common'; import { useAppToasts } from '../../../common/hooks/use_app_toasts'; import * as i18n from './translations'; import { EntityType } from '../../../../../timelines/common'; diff --git a/x-pack/plugins/security_solution/public/timelines/containers/index.tsx b/x-pack/plugins/security_solution/public/timelines/containers/index.tsx index c755159dd6b10..1b0e42806df4f 100644 --- a/x-pack/plugins/security_solution/public/timelines/containers/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/containers/index.tsx @@ -13,7 +13,8 @@ import { Subscription } from 'rxjs'; import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ESQuery } from '../../../common/typed_json'; -import { isCompleteResponse, isErrorResponse } from '../../../../../../src/plugins/data/public'; +import { isCompleteResponse, isErrorResponse } from '../../../../../../src/plugins/data/common'; + import { useIsExperimentalFeatureEnabled } from '../../common/hooks/use_experimental_features'; import { inputsModel } from '../../common/store'; import { useKibana } from '../../common/lib/kibana'; diff --git a/x-pack/plugins/security_solution/public/timelines/jest.config.js b/x-pack/plugins/security_solution/public/timelines/jest.config.js index 94434b9303d47..ac28fe2d34979 100644 --- a/x-pack/plugins/security_solution/public/timelines/jest.config.js +++ b/x-pack/plugins/security_solution/public/timelines/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '<rootDir>/x-pack/plugins/security_solution/public/timelines/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts index 6002a7b2cf398..2264e62d6bed7 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/actions.ts @@ -6,8 +6,8 @@ */ import actionCreatorFactory from 'typescript-fsa'; +import type { Filter } from '@kbn/es-query'; -import { Filter } from '../../../../../../../src/plugins/data/public'; import { DataProvider, DataProviderType, diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts index 175e6804c04a1..ba376a0b4097b 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.test.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter, esFilters } from '../../../../../../../src/plugins/data/public'; +import { FilterStateStore, Filter } from '@kbn/es-query'; import { Direction } from '../../../../common/search_strategy'; import { TimelineType, TimelineStatus, TimelineTabs } from '../../../../common/types/timeline'; import { convertTimelineAsInput } from './epic'; @@ -106,7 +106,7 @@ describe('Epic Timeline', () => { historyIds: [], filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -118,7 +118,7 @@ describe('Epic Timeline', () => { query: { match_phrase: { 'event.category': 'file' } }, }, { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts index c973cf9a5bbbf..57580c96d06b8 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/epic.ts @@ -18,7 +18,17 @@ import { import { Action } from 'redux'; import { Epic } from 'redux-observable'; import { from, empty, merge } from 'rxjs'; -import { Filter, MatchAllFilter, isScriptedRangeFilter } from '@kbn/es-query'; +import { + Filter, + MatchAllFilter, + isScriptedRangeFilter, + isExistsFilter, + isRangeFilter, + isMatchAllFilter, + isPhraseFilter, + isQueryStringFilter, + isPhrasesFilter, +} from '@kbn/es-query'; import { filter, map, @@ -31,7 +41,6 @@ import { takeUntil, } from 'rxjs/operators'; -import { esFilters } from '../../../../../../.../../../src/plugins/data/public'; import { TimelineStatus, TimelineErrorResponse, @@ -375,10 +384,10 @@ export const convertTimelineAsInput = ( meta: { ...basicFilter.meta, field: - (esFilters.isMatchAllFilter(basicFilter) || - esFilters.isPhraseFilter(basicFilter) || - esFilters.isPhrasesFilter(basicFilter) || - esFilters.isRangeFilter(basicFilter)) && + (isMatchAllFilter(basicFilter) || + isPhraseFilter(basicFilter) || + isPhrasesFilter(basicFilter) || + isRangeFilter(basicFilter)) && basicFilter.meta.field != null ? convertToString(basicFilter.meta.field) : null, @@ -391,7 +400,7 @@ export const convertTimelineAsInput = ( ? convertToString(basicFilter.meta.params) : null, }, - ...(esFilters.isMatchAllFilter(basicFilter) + ...(isMatchAllFilter(basicFilter) ? { query: { match_all: convertToString( @@ -400,15 +409,14 @@ export const convertTimelineAsInput = ( }, } : { match_all: null }), - ...(esFilters.isExistsFilter(basicFilter) && basicFilter.query.exists != null + ...(isExistsFilter(basicFilter) && basicFilter.query.exists != null ? { query: { exists: convertToString(basicFilter.query.exists) } } : { exists: null }), - ...((esFilters.isQueryStringFilter(basicFilter) || - get('query', basicFilter) != null) && + ...((isQueryStringFilter(basicFilter) || get('query', basicFilter) != null) && basicFilter.query != null ? { query: convertToString(basicFilter.query) } : { query: null }), - ...(esFilters.isRangeFilter(basicFilter) && basicFilter.query.range != null + ...(isRangeFilter(basicFilter) && basicFilter.query.range != null ? { query: { range: convertToString(basicFilter.query.range) } } : { range: null }), ...(isScriptedRangeFilter(basicFilter) && diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts index b7af561ae2a04..a123cdeb8f928 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/helpers.ts @@ -8,7 +8,8 @@ import { getOr, omit, uniq, isEmpty, isEqualWith, union } from 'lodash/fp'; import uuid from 'uuid'; -import { Filter } from '../../../../../../../src/plugins/data/public'; + +import type { Filter } from '@kbn/es-query'; import { Sort } from '../../../timelines/components/timeline/body/sort'; import { diff --git a/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.test.ts b/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.test.ts index 50992cf7b21de..3e7ebed675d80 100644 --- a/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.test.ts +++ b/x-pack/plugins/security_solution/public/timelines/store/timeline/reducer.test.ts @@ -52,7 +52,7 @@ import { TimelineModel } from './model'; import { timelineDefaults } from './defaults'; import { TimelineById } from './types'; import { Direction } from '../../../../common/search_strategy'; -import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import type { FilterManager } from '../../../../../../../src/plugins/data/public'; jest.mock('../../../common/components/url_state/normalize_time_range.ts'); jest.mock('../../../common/utils/default_date_settings', () => { diff --git a/x-pack/plugins/security_solution/public/transforms/jest.config.js b/x-pack/plugins/security_solution/public/transforms/jest.config.js index 30847fa39a8d8..095a70933abc1 100644 --- a/x-pack/plugins/security_solution/public/transforms/jest.config.js +++ b/x-pack/plugins/security_solution/public/transforms/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '<rootDir>/x-pack/plugins/security_solution/public/transforms/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/public/types.ts b/x-pack/plugins/security_solution/public/types.ts index 7c0b8d46b8bba..cfca95fddc507 100644 --- a/x-pack/plugins/security_solution/public/types.ts +++ b/x-pack/plugins/security_solution/public/types.ts @@ -7,7 +7,7 @@ import { CoreStart } from '../../../../src/core/public'; import { HomePublicPluginSetup } from '../../../../src/plugins/home/public'; -import { DataPublicPluginStart } from '../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../src/plugins/data/public'; import { EmbeddableStart } from '../../../../src/plugins/embeddable/public'; import { LensPublicStart } from '../../../plugins/lens/public'; import { NewsfeedPublicPluginStart } from '../../../../src/plugins/newsfeed/public'; @@ -41,7 +41,7 @@ import { Management } from './management'; import { Ueba } from './ueba'; import { LicensingPluginStart, LicensingPluginSetup } from '../../licensing/public'; import { DashboardStart } from '../../../../src/plugins/dashboard/public'; -import { IndexPatternFieldEditorStart } from '../../../../src/plugins/index_pattern_field_editor/public'; +import { IndexPatternFieldEditorStart } from '../../../../src/plugins/data_view_field_editor/public'; export interface SetupPlugins { home?: HomePublicPluginSetup; @@ -68,7 +68,7 @@ export interface StartPlugins { uiActions: UiActionsStart; ml?: MlPluginStart; spaces?: SpacesPluginStart; - indexPatternFieldEditor: IndexPatternFieldEditorStart; + dataViewFieldEditor: IndexPatternFieldEditorStart; } export type StartServices = CoreStart & diff --git a/x-pack/plugins/security_solution/public/ueba/components/host_rules_table/columns.tsx b/x-pack/plugins/security_solution/public/ueba/components/host_rules_table/columns.tsx index 2638635573aa6..456a0bbe898ea 100644 --- a/x-pack/plugins/security_solution/public/ueba/components/host_rules_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/ueba/components/host_rules_table/columns.tsx @@ -24,7 +24,7 @@ export const getHostRulesColumns = (): HostRulesColumns => [ field: `node.${HostRulesFields.ruleName}`, name: i18n.NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (ruleName) => { if (ruleName != null && ruleName.length > 0) { const id = escapeDataProviderId(`ueba-table-ruleName-${ruleName}`); @@ -63,7 +63,7 @@ export const getHostRulesColumns = (): HostRulesColumns => [ field: `node.${HostRulesFields.ruleType}`, name: i18n.RULE_TYPE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (ruleType) => { if (ruleType != null && ruleType.length > 0) { const id = escapeDataProviderId(`ueba-table-ruleType-${ruleType}`); @@ -102,7 +102,7 @@ export const getHostRulesColumns = (): HostRulesColumns => [ field: `node.${HostRulesFields.riskScore}`, name: i18n.RISK_SCORE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (riskScore) => { if (riskScore != null) { const id = escapeDataProviderId(`ueba-table-riskScore-${riskScore}`); @@ -141,7 +141,7 @@ export const getHostRulesColumns = (): HostRulesColumns => [ field: `node.${HostRulesFields.hits}`, name: i18n.HITS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (hits) => { if (hits != null) { diff --git a/x-pack/plugins/security_solution/public/ueba/components/host_tactics_table/columns.tsx b/x-pack/plugins/security_solution/public/ueba/components/host_tactics_table/columns.tsx index 19516ad6fcafa..68e1195a9c7eb 100644 --- a/x-pack/plugins/security_solution/public/ueba/components/host_tactics_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/ueba/components/host_tactics_table/columns.tsx @@ -24,7 +24,7 @@ export const getHostTacticsColumns = (): HostTacticsColumns => [ field: `node.${HostTacticsFields.tactic}`, name: i18n.TACTIC, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (tactic) => { if (tactic != null && tactic.length > 0) { const id = escapeDataProviderId(`ueba-table-tactic-${tactic}`); @@ -63,7 +63,7 @@ export const getHostTacticsColumns = (): HostTacticsColumns => [ field: `node.${HostTacticsFields.technique}`, name: i18n.TECHNIQUE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (technique) => { if (technique != null && technique.length > 0) { const id = escapeDataProviderId(`ueba-table-technique-${technique}`); @@ -102,7 +102,7 @@ export const getHostTacticsColumns = (): HostTacticsColumns => [ field: `node.${HostTacticsFields.riskScore}`, name: i18n.RISK_SCORE, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (riskScore) => { if (riskScore != null) { const id = escapeDataProviderId(`ueba-table-riskScore-${riskScore}`); @@ -141,7 +141,7 @@ export const getHostTacticsColumns = (): HostTacticsColumns => [ field: `node.${HostTacticsFields.hits}`, name: i18n.HITS, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (hits) => { if (hits != null) { diff --git a/x-pack/plugins/security_solution/public/ueba/components/risk_score_table/columns.tsx b/x-pack/plugins/security_solution/public/ueba/components/risk_score_table/columns.tsx index b751521001fe5..43512d6717363 100644 --- a/x-pack/plugins/security_solution/public/ueba/components/risk_score_table/columns.tsx +++ b/x-pack/plugins/security_solution/public/ueba/components/risk_score_table/columns.tsx @@ -27,7 +27,7 @@ export const getRiskScoreColumns = (): RiskScoreColumns => [ field: 'node.host_name', name: i18n.NAME, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: true, render: (hostName) => { if (hostName != null && hostName.length > 0) { @@ -63,7 +63,7 @@ export const getRiskScoreColumns = (): RiskScoreColumns => [ field: 'node.risk_keyword', name: i18n.CURRENT_RISK, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, sortable: false, render: (riskKeyword) => { if (riskKeyword != null) { diff --git a/x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts b/x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts index 70f8027b1f55b..d8a824a07ddf3 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts +++ b/x-pack/plugins/security_solution/public/ueba/pages/details/helpers.ts @@ -5,8 +5,8 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { escapeQueryValue } from '../../../common/lib/keury'; -import { Filter } from '../../../../../../../src/plugins/data/public'; /** Returns the kqlQueryExpression for the `Events` widget on the `Host Details` page */ export const getUebaDetailsEventsKqlQueryExpression = ({ diff --git a/x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx b/x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx index 51c06fffb7b63..599b003ff034a 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx +++ b/x-pack/plugins/security_solution/public/ueba/pages/details/index.tsx @@ -10,6 +10,7 @@ import { noop } from 'lodash/fp'; import React, { useEffect, useMemo } from 'react'; import { useDispatch } from 'react-redux'; +import type { Filter } from '@kbn/es-query'; import { LastEventIndexKey } from '../../../../common/search_strategy'; import { SecurityPageName } from '../../../app/types'; import { FiltersGlobal } from '../../../common/components/filters_global'; @@ -25,7 +26,7 @@ import { inputsSelectors } from '../../../common/store'; import { setUebaDetailsTablesActivePageToZero } from '../../store/actions'; import { setAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; import { SpyRoute } from '../../../common/utils/route/spy_routes'; -import { esQuery, Filter } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { OverviewEmpty } from '../../../overview/components/overview_empty'; import { UebaDetailsTabs } from './details_tabs'; @@ -74,7 +75,7 @@ const UebaDetailsComponent: React.FC<UebaDetailsProps> = ({ detailName, uebaDeta ); const [filterQuery, kqlError] = convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(kibana.services.uiSettings), + config: getEsQueryConfig(kibana.services.uiSettings), indexPattern, queries: [query], filters: getFilters(), diff --git a/x-pack/plugins/security_solution/public/ueba/pages/details/types.ts b/x-pack/plugins/security_solution/public/ueba/pages/details/types.ts index e46a128e15f85..45d75637fd7cc 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/details/types.ts +++ b/x-pack/plugins/security_solution/public/ueba/pages/details/types.ts @@ -6,7 +6,7 @@ */ import { ActionCreator } from 'typescript-fsa'; -import { DataViewBase, Filter, Query } from '@kbn/es-query'; +import type { DataViewBase, Filter, Query } from '@kbn/es-query'; import { InputsModelId } from '../../../common/store/inputs/constants'; import { UebaTableType } from '../../store/model'; import { UebaQueryProps } from '../types'; diff --git a/x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts b/x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts index e24b3271cf534..a8aea32f71399 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/ueba/pages/navigation/types.ts @@ -5,11 +5,11 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { UebaTableType, UebaType } from '../../store/model'; import { GlobalTimeArgs } from '../../../common/containers/use_global_time'; import { ESTermQuery } from '../../../../common/typed_json'; import { DocValueFields } from '../../../../../timelines/common'; -import { Filter } from '../../../../../../../src/plugins/data/common'; import { UpdateDateRange } from '../../../common/components/charts/common'; import { NarrowDateRange } from '../../../common/components/ml/types'; import { NavTab } from '../../../common/components/navigation/types'; diff --git a/x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx b/x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx index 93e22efdba3dd..0c837e60cd2dc 100644 --- a/x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx +++ b/x-pack/plugins/security_solution/public/ueba/pages/ueba.tsx @@ -29,7 +29,7 @@ import { inputsSelectors } from '../../common/store'; import { setAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; import { SpyRoute } from '../../common/utils/route/spy_routes'; -import { esQuery } from '../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../src/plugins/data/common'; import { OverviewEmpty } from '../../overview/components/overview_empty'; import { Display } from './display'; import { UebaTabs } from './ueba_tabs'; @@ -82,7 +82,7 @@ const UebaComponent = () => { const [filterQuery, kqlError] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters, @@ -92,7 +92,7 @@ const UebaComponent = () => { const [tabsFilterQuery] = useMemo( () => convertToBuildEsQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), indexPattern, queries: [query], filters: tabsFilters, diff --git a/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts b/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts new file mode 100644 index 0000000000000..2a430c47cc127 --- /dev/null +++ b/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// See: https://github.com/elastic/kibana/issues/117255, this creates mocks to avoid memory leaks from kibana core. +module.exports = {}; diff --git a/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts b/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts new file mode 100644 index 0000000000000..917eb205837a6 --- /dev/null +++ b/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts @@ -0,0 +1,19 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// See: https://github.com/elastic/kibana/issues/117255, this creates mocks to avoid memory leaks from kibana core. + +import { parseDuration } from '../../../alerting/common/parse_duration'; +// We _must_ import from the restricted path or we pull in _everything_ including memory leaks from Kibana core +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { ReadOperations, WriteOperations } from '../../../alerting/server/authorization'; + +module.exports = { + parseDuration, + ReadOperations, + WriteOperations, +}; diff --git a/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts b/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts new file mode 100644 index 0000000000000..c5e07f9c135a7 --- /dev/null +++ b/x-pack/plugins/security_solution/server/__mocks__/core.mock.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. + */ + +// See: https://github.com/elastic/kibana/issues/117255, this creates mocks to avoid memory leaks from kibana core. + +// We _must_ import from the restricted path or we pull in _everything_ including memory leaks from Kibana core +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { SavedObjectsUtils } from '../../../../../src/core/server/saved_objects/service/lib/utils'; +module.exports = { + SavedObjectsUtils, +}; diff --git a/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts b/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts new file mode 100644 index 0000000000000..e61080e56ea69 --- /dev/null +++ b/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +// See: https://github.com/elastic/kibana/issues/117255, this creates mocks to avoid memory leaks from kibana core. + +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { TaskStatus } from '../../../task_manager/server/task'; +module.exports = { + TaskStatus, +}; diff --git a/x-pack/plugins/security_solution/server/client/jest.config.js b/x-pack/plugins/security_solution/server/client/jest.config.js index ba3dd88f83303..593eb77b287e1 100644 --- a/x-pack/plugins/security_solution/server/client/jest.config.js +++ b/x-pack/plugins/security_solution/server/client/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/client', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/server/client/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/endpoint/jest.config.js b/x-pack/plugins/security_solution/server/endpoint/jest.config.js index 4fed1c5e7ac15..9bdafcc7668e3 100644 --- a/x-pack/plugins/security_solution/server/endpoint/jest.config.js +++ b/x-pack/plugins/security_solution/server/endpoint/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/endpoint', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/server/endpoint/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts index 384fde6c7ceac..cb5e055206585 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/handlers.ts @@ -5,13 +5,10 @@ * 2.0. */ -import Boom from '@hapi/boom'; - import { TypeOf } from '@kbn/config-schema'; import { IKibanaResponse, IScopedClusterClient, - KibanaRequest, KibanaResponseFactory, Logger, RequestHandler, @@ -22,29 +19,28 @@ import { HostMetadata, HostResultList, HostStatus, + MetadataListResponse, } from '../../../../common/endpoint/types'; import type { SecuritySolutionRequestHandlerContext } from '../../../types'; -import { - getESQueryHostMetadataByID, - getPagingProperties, - kibanaRequestToMetadataListESQuery, -} from './query_builders'; -import { Agent, PackagePolicy } from '../../../../../fleet/common/types/models'; +import { getPagingProperties, kibanaRequestToMetadataListESQuery } from './query_builders'; +import { PackagePolicy } from '../../../../../fleet/common/types/models'; import { AgentNotFoundError } from '../../../../../fleet/server'; import { EndpointAppContext, HostListQueryResult } from '../../types'; -import { GetMetadataListRequestSchema, GetMetadataRequestSchema } from './index'; +import { + GetMetadataListRequestSchema, + GetMetadataListRequestSchemaV2, + GetMetadataRequestSchema, +} from './index'; import { findAllUnenrolledAgentIds } from './support/unenroll'; import { getAllEndpointPackagePolicies } from './support/endpoint_package_policies'; import { findAgentIdsByStatus } from './support/agent_status'; import { EndpointAppContextService } from '../../endpoint_app_context_services'; -import { catchAndWrapError, fleetAgentStatusToEndpointHostStatus } from '../../utils'; -import { - queryResponseToHostListResult, - queryResponseToHostResult, -} from './support/query_strategies'; +import { fleetAgentStatusToEndpointHostStatus } from '../../utils'; +import { queryResponseToHostListResult } from './support/query_strategies'; import { EndpointError, NotFoundError } from '../../errors'; import { EndpointHostUnEnrolledError } from '../../services/metadata'; +import { CustomHttpRequestError } from '../../../utils/custom_http_request_error'; export interface MetadataRequestContext { esClient?: IScopedClusterClient; @@ -63,6 +59,15 @@ const errorHandler = <E extends Error>( res: KibanaResponseFactory, error: E ): IKibanaResponse => { + logger.error(error); + + if (error instanceof CustomHttpRequestError) { + return res.customError({ + statusCode: error.statusCode, + body: error, + }); + } + if (error instanceof NotFoundError) { return res.notFound({ body: error }); } @@ -71,16 +76,6 @@ const errorHandler = <E extends Error>( return res.badRequest({ body: error }); } - // legacy check for Boom errors. for the errors around non-standard error properties - // @ts-expect-error TS2339 - const boomStatusCode = error.isBoom && error?.output?.statusCode; - if (boomStatusCode) { - return res.customError({ - statusCode: boomStatusCode, - body: error, - }); - } - // Kibana CORE will take care of `500` errors when the handler `throw`'s, including logging the error throw error; }; @@ -125,33 +120,35 @@ export const getMetadataListRequestHandler = function ( context.core.savedObjects.client ); - body = await legacyListMetadataQuery( - context, - request, - endpointAppContext, - logger, - endpointPolicies - ); + const pagingProperties = await getPagingProperties(request, endpointAppContext); + + body = await legacyListMetadataQuery(context, endpointAppContext, logger, endpointPolicies, { + page: pagingProperties.pageIndex, + pageSize: pagingProperties.pageSize, + kuery: request?.body?.filters?.kql || '', + hostStatuses: request?.body?.filters?.host_status || [], + }); return response.ok({ body }); } // Unified index is installed and being used - perform search using new approach try { const pagingProperties = await getPagingProperties(request, endpointAppContext); - const { data, page, total, pageSize } = await endpointMetadataService.getHostMetadataList( + const { data, total } = await endpointMetadataService.getHostMetadataList( context.core.elasticsearch.client.asCurrentUser, { - page: pagingProperties.pageIndex + 1, + page: pagingProperties.pageIndex, pageSize: pagingProperties.pageSize, - filters: request.body?.filters || {}, + hostStatuses: request.body?.filters.host_status || [], + kuery: request.body?.filters.kql || '', } ); body = { hosts: data, - request_page_index: page - 1, total, - request_page_size: pageSize, + request_page_index: pagingProperties.pageIndex * pagingProperties.pageSize, + request_page_size: pagingProperties.pageSize, }; } catch (error) { return errorHandler(logger, response, error); @@ -161,6 +158,83 @@ export const getMetadataListRequestHandler = function ( }; }; +export function getMetadataListRequestHandlerV2( + endpointAppContext: EndpointAppContext, + logger: Logger +): RequestHandler< + unknown, + TypeOf<typeof GetMetadataListRequestSchemaV2.query>, + unknown, + SecuritySolutionRequestHandlerContext +> { + return async (context, request, response) => { + const endpointMetadataService = endpointAppContext.service.getEndpointMetadataService(); + if (!endpointMetadataService) { + throw new EndpointError('endpoint metadata service not available'); + } + + let doesUnitedIndexExist = false; + let didUnitedIndexError = false; + let body: MetadataListResponse = { + data: [], + total: 0, + page: 0, + pageSize: 0, + }; + + try { + doesUnitedIndexExist = await endpointMetadataService.doesUnitedIndexExist( + context.core.elasticsearch.client.asCurrentUser + ); + } catch (error) { + // for better UX, try legacy query instead of immediately failing on united index error + didUnitedIndexError = true; + } + + // If no unified Index present, then perform a search using the legacy approach + if (!doesUnitedIndexExist || didUnitedIndexError) { + const endpointPolicies = await getAllEndpointPackagePolicies( + endpointAppContext.service.getPackagePolicyService(), + context.core.savedObjects.client + ); + + const legacyResponse = await legacyListMetadataQuery( + context, + endpointAppContext, + logger, + endpointPolicies, + request.query + ); + body = { + data: legacyResponse.hosts, + total: legacyResponse.total, + page: request.query.page, + pageSize: request.query.pageSize, + }; + return response.ok({ body }); + } + + // Unified index is installed and being used - perform search using new approach + try { + const { data, total } = await endpointMetadataService.getHostMetadataList( + context.core.elasticsearch.client.asCurrentUser, + request.query + ); + + body = { + data, + total, + page: request.query.page, + pageSize: request.query.pageSize, + }; + } catch (error) { + return errorHandler(logger, response, error); + } + + return response.ok({ body }); + }; +} + export const getMetadataRequestHandler = function ( endpointAppContext: EndpointAppContext, logger: Logger @@ -186,107 +260,6 @@ export const getMetadataRequestHandler = function ( }; }; -export async function getHostMetaData( - metadataRequestContext: MetadataRequestContext, - id: string -): Promise<HostMetadata | undefined> { - if ( - !metadataRequestContext.esClient && - !metadataRequestContext.requestHandlerContext?.core.elasticsearch.client - ) { - throw Boom.badRequest('esClient not found'); - } - - if ( - !metadataRequestContext.savedObjectsClient && - !metadataRequestContext.requestHandlerContext?.core.savedObjects - ) { - throw Boom.badRequest('savedObjectsClient not found'); - } - - const esClient = (metadataRequestContext?.esClient ?? - metadataRequestContext.requestHandlerContext?.core.elasticsearch - .client) as IScopedClusterClient; - - const query = getESQueryHostMetadataByID(id); - - const response = await esClient.asCurrentUser - .search<HostMetadata>(query) - .catch(catchAndWrapError); - - const hostResult = queryResponseToHostResult(response.body); - - const hostMetadata = hostResult.result; - if (!hostMetadata) { - return undefined; - } - - return hostMetadata; -} - -export async function getHostData( - metadataRequestContext: MetadataRequestContext, - id: string -): Promise<HostInfo | undefined> { - if (!metadataRequestContext.savedObjectsClient) { - throw Boom.badRequest('savedObjectsClient not found'); - } - - if ( - !metadataRequestContext.esClient && - !metadataRequestContext.requestHandlerContext?.core.elasticsearch.client - ) { - throw Boom.badRequest('esClient not found'); - } - - const hostMetadata = await getHostMetaData(metadataRequestContext, id); - - if (!hostMetadata) { - return undefined; - } - - const agent = await findAgent(metadataRequestContext, hostMetadata); - - if (agent && !agent.active) { - throw Boom.badRequest('the requested endpoint is unenrolled'); - } - - const metadata = await enrichHostMetadata(hostMetadata, metadataRequestContext); - - return metadata; -} - -async function findAgent( - metadataRequestContext: MetadataRequestContext, - hostMetadata: HostMetadata -): Promise<Agent | undefined> { - try { - if ( - !metadataRequestContext.esClient && - !metadataRequestContext.requestHandlerContext?.core.elasticsearch.client - ) { - throw new Error('esClient not found'); - } - - const esClient = (metadataRequestContext?.esClient ?? - metadataRequestContext.requestHandlerContext?.core.elasticsearch - .client) as IScopedClusterClient; - - return await metadataRequestContext.endpointAppContextService - ?.getAgentService() - ?.getAgent(esClient.asCurrentUser, hostMetadata.elastic.agent.id); - } catch (e) { - if (e instanceof AgentNotFoundError) { - metadataRequestContext.logger.warn( - `agent with id ${hostMetadata.elastic.agent.id} not found` - ); - return undefined; - } else { - throw e; - } - } -} - export async function mapToHostResultList( // eslint-disable-next-line @typescript-eslint/no-explicit-any queryParams: Record<string, any>, @@ -420,11 +393,10 @@ export async function enrichHostMetadata( async function legacyListMetadataQuery( context: SecuritySolutionRequestHandlerContext, - // eslint-disable-next-line @typescript-eslint/no-explicit-any - request: KibanaRequest<any, any, any>, endpointAppContext: EndpointAppContext, logger: Logger, - endpointPolicies: PackagePolicy[] + endpointPolicies: PackagePolicy[], + queryOptions: TypeOf<typeof GetMetadataListRequestSchemaV2.query> ): Promise<HostResultList> { // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const agentService = endpointAppContext.service.getAgentService()!; @@ -447,14 +419,16 @@ async function legacyListMetadataQuery( endpointPolicyIds ); - const statusesToFilter = request?.body?.filters?.host_status ?? []; const statusAgentIds = await findAgentIdsByStatus( agentService, context.core.elasticsearch.client.asCurrentUser, - statusesToFilter + queryOptions.hostStatuses ); - const queryParams = await kibanaRequestToMetadataListESQuery(request, endpointAppContext, { + const queryParams = await kibanaRequestToMetadataListESQuery({ + page: queryOptions.page, + pageSize: queryOptions.pageSize, + kuery: queryOptions.kuery, unenrolledAgentIds, statusAgentIds, }); diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts index d9c3e6c195307..5ea465aa21799 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/index.ts @@ -9,7 +9,12 @@ import { schema } from '@kbn/config-schema'; import { HostStatus } from '../../../../common/endpoint/types'; import { EndpointAppContext } from '../../types'; -import { getLogger, getMetadataListRequestHandler, getMetadataRequestHandler } from './handlers'; +import { + getLogger, + getMetadataListRequestHandler, + getMetadataRequestHandler, + getMetadataListRequestHandlerV2, +} from './handlers'; import type { SecuritySolutionPluginRouter } from '../../../types'; import { HOST_METADATA_GET_ROUTE, @@ -60,27 +65,54 @@ export const GetMetadataListRequestSchema = { ), }; +export const GetMetadataListRequestSchemaV2 = { + query: schema.object({ + page: schema.number({ defaultValue: 0 }), + pageSize: schema.number({ defaultValue: 10, min: 1, max: 10000 }), + kuery: schema.maybe(schema.string()), + hostStatuses: schema.arrayOf( + schema.oneOf([ + schema.literal(HostStatus.HEALTHY.toString()), + schema.literal(HostStatus.OFFLINE.toString()), + schema.literal(HostStatus.UPDATING.toString()), + schema.literal(HostStatus.UNHEALTHY.toString()), + schema.literal(HostStatus.INACTIVE.toString()), + ]), + { defaultValue: [] } + ), + }), +}; + export function registerEndpointRoutes( router: SecuritySolutionPluginRouter, endpointAppContext: EndpointAppContext ) { const logger = getLogger(endpointAppContext); - router.post( + router.get( { - path: `${HOST_METADATA_LIST_ROUTE}`, - validate: GetMetadataListRequestSchema, + path: HOST_METADATA_LIST_ROUTE, + validate: GetMetadataListRequestSchemaV2, options: { authRequired: true, tags: ['access:securitySolution'] }, }, - getMetadataListRequestHandler(endpointAppContext, logger) + getMetadataListRequestHandlerV2(endpointAppContext, logger) ); router.get( { - path: `${HOST_METADATA_GET_ROUTE}`, + path: HOST_METADATA_GET_ROUTE, validate: GetMetadataRequestSchema, options: { authRequired: true, tags: ['access:securitySolution'] }, }, getMetadataRequestHandler(endpointAppContext, logger) ); + + router.post( + { + path: HOST_METADATA_LIST_ROUTE, + validate: GetMetadataListRequestSchema, + options: { authRequired: true, tags: ['access:securitySolution'] }, + }, + getMetadataListRequestHandler(endpointAppContext, logger) + ); } diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts index c0be1c7530cb4..c1dfee0252b38 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/metadata.test.ts @@ -18,7 +18,12 @@ import { loggingSystemMock, savedObjectsClientMock, } from '../../../../../../../src/core/server/mocks'; -import { HostInfo, HostResultList, HostStatus } from '../../../../common/endpoint/types'; +import { + HostInfo, + HostResultList, + HostStatus, + MetadataListResponse, +} from '../../../../common/endpoint/types'; import { parseExperimentalConfigValue } from '../../../../common/experimental_features'; import { registerEndpointRoutes } from './index'; import { @@ -40,6 +45,7 @@ import { } from './support/test_support'; import { PackageService } from '../../../../../fleet/server/services'; import { + HOST_METADATA_GET_ROUTE, HOST_METADATA_LIST_ROUTE, metadataCurrentIndexPattern, metadataTransformPrefix, @@ -64,7 +70,7 @@ class IndexNotFoundException extends Error { } } -describe('test endpoint route', () => { +describe('test endpoint routes', () => { let routerMock: jest.Mocked<SecuritySolutionPluginRouter>; let mockResponse: jest.Mocked<KibanaResponseFactory>; let mockClusterClient: ClusterClientMock; @@ -113,552 +119,616 @@ describe('test endpoint route', () => { }); }); - describe('with .metrics-endpoint.metadata_united_default index', () => { - beforeEach(() => { - endpointAppContextService = new EndpointAppContextService(); - mockPackageService = createMockPackageService(); - mockPackageService.getInstallation.mockReturnValue( - Promise.resolve({ - installed_kibana: [], - package_assets: [], - es_index_patterns: {}, - name: '', - version: '', - install_status: 'installed', - install_version: '', - install_started_at: '', - install_source: 'registry', - installed_es: [ - { - id: 'logs-endpoint.events.security', - type: ElasticsearchAssetType.indexTemplate, - }, - { - id: `${metadataTransformPrefix}-0.16.0-dev.0`, - type: ElasticsearchAssetType.transform, - }, - ], - keep_policies_up_to_date: false, - }) - ); - endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); - endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); - mockAgentService = startContract.agentService!; - mockAgentPolicyService = startContract.agentPolicyService!; + describe('POST list endpoints route', () => { + describe('with .metrics-endpoint.metadata_united_default index', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) + ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; + mockAgentPolicyService = startContract.agentPolicyService!; - registerEndpointRoutes(routerMock, { - logFactory: loggingSystemMock.create(), - service: endpointAppContextService, - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + }); }); - }); - afterEach(() => endpointAppContextService.stop()); + afterEach(() => endpointAppContextService.stop()); - it('should fallback to legacy index if index not found', async () => { - const mockRequest = httpServerMock.createKibanaRequest({}); - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); - (mockScopedClient.asCurrentUser.search as jest.Mock) - .mockImplementationOnce(() => { - throw new IndexNotFoundException(); - }) - .mockImplementationOnce(() => Promise.resolve({ body: response })); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); + it('should fallback to legacy index if index not found', async () => { + const mockRequest = httpServerMock.createKibanaRequest({}); + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => Promise.resolve({ body: response })); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); - const esSearchMock = mockScopedClient.asCurrentUser.search; - // should be called twice, united index first, then legacy index - expect(esSearchMock).toHaveBeenCalledTimes(2); - expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); - expect(esSearchMock.mock.calls[1][0]?.index).toEqual(metadataCurrentIndexPattern); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], + const esSearchMock = mockScopedClient.asCurrentUser.search; + // should be called twice, united index first, then legacy index + expect(esSearchMock).toHaveBeenCalledTimes(2); + expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[1][0]?.index).toEqual(metadataCurrentIndexPattern); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(0); + expect(endpointResultList.request_page_size).toEqual(10); }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(0); - expect(endpointResultList.request_page_size).toEqual(10); - }); - it('should return expected metadata', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 0, - }, - ], + it('should return expected metadata', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + body: { + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 0, + }, + ], - filters: { - kql: 'not host.ip:10.140.73.246', - host_status: ['updating'], + filters: { + kql: 'not host.ip:10.140.73.246', + host_status: ['updating'], + }, }, - }, - }); + }); - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - mockAgentPolicyService.getByIds = jest.fn().mockResolvedValueOnce([]); - const metadata = new EndpointDocGenerator().generateHostMetadata(); - const esSearchMock = mockScopedClient.asCurrentUser.search as jest.Mock; - esSearchMock.mockResolvedValueOnce({}); - esSearchMock.mockResolvedValueOnce({ - body: unitedMetadataSearchResponseMock(metadata), - }); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + mockAgentPolicyService.getByIds = jest.fn().mockResolvedValueOnce([]); + const metadata = new EndpointDocGenerator().generateHostMetadata(); + const esSearchMock = mockScopedClient.asCurrentUser.search as jest.Mock; + esSearchMock.mockResolvedValueOnce({}); + esSearchMock.mockResolvedValueOnce({ + body: unitedMetadataSearchResponseMock(metadata), + }); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); - expect(esSearchMock).toHaveBeenCalledTimes(2); - expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); - expect(esSearchMock.mock.calls[0][0]?.size).toEqual(1); - expect(esSearchMock.mock.calls[1][0]?.index).toEqual(METADATA_UNITED_INDEX); - expect(esSearchMock.mock.calls[1][0]?.body?.query).toEqual({ - bool: { - must: [ - { - bool: { - filter: [ - { - terms: { - 'united.agent.policy_id': [], + expect(esSearchMock).toHaveBeenCalledTimes(2); + expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[0][0]?.size).toEqual(1); + expect(esSearchMock.mock.calls[1][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[1][0]?.body?.query).toEqual({ + bool: { + must: [ + { + bool: { + filter: [ + { + terms: { + 'united.agent.policy_id': [], + }, }, - }, - { - exists: { - field: 'united.endpoint.agent.id', + { + exists: { + field: 'united.endpoint.agent.id', + }, }, - }, - { - exists: { - field: 'united.agent.agent.id', + { + exists: { + field: 'united.agent.agent.id', + }, }, - }, - { - term: { - 'united.agent.active': { - value: true, + { + term: { + 'united.agent.active': { + value: true, + }, }, }, - }, - ], - must_not: { - terms: { - 'agent.id': [ - '00000000-0000-0000-0000-000000000000', - '11111111-1111-1111-1111-111111111111', - ], + ], + must_not: { + terms: { + 'agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, }, }, }, - }, - { - bool: { - should: [ - { - bool: { - filter: [ - { + { + bool: { + should: [ + { + bool: { + filter: [ + { + bool: { + should: [ + { + exists: { + field: 'united.agent.upgrade_started_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + { + bool: { + must_not: { + bool: { + should: [ + { + exists: { + field: 'united.agent.upgraded_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }, + ], + }, + }, + { + bool: { + must_not: { bool: { should: [ { exists: { - field: 'united.agent.upgrade_started_at', + field: 'united.agent.last_checkin', }, }, ], minimum_should_match: 1, }, }, - { - bool: { - must_not: { - bool: { - should: [ - { - exists: { - field: 'united.agent.upgraded_at', - }, - }, - ], - minimum_should_match: 1, - }, - }, - }, - }, - ], + }, }, - }, - { - bool: { - must_not: { - bool: { - should: [ - { - exists: { - field: 'united.agent.last_checkin', - }, + { + bool: { + should: [ + { + exists: { + field: 'united.agent.unenrollment_started_at', }, - ], - minimum_should_match: 1, - }, + }, + ], + minimum_should_match: 1, }, }, - }, - { + ], + minimum_should_match: 1, + }, + }, + { + bool: { + must_not: { bool: { should: [ { - exists: { - field: 'united.agent.unenrollment_started_at', + match: { + 'host.ip': '10.140.73.246', }, }, ], minimum_should_match: 1, }, }, - ], - minimum_should_match: 1, - }, - }, - { - bool: { - must_not: { - bool: { - should: [ - { - match: { - 'host.ip': '10.140.73.246', - }, - }, - ], - minimum_should_match: 1, - }, }, }, - }, - ], - }, - }); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], + ], + }, + }); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.hosts[0].metadata).toEqual(metadata); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(0); + expect(endpointResultList.request_page_size).toEqual(10); }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.hosts[0].metadata).toEqual(metadata); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(0); - expect(endpointResultList.request_page_size).toEqual(10); }); - }); - describe('with metrics-endpoint.metadata_current_default index', () => { - beforeEach(() => { - endpointAppContextService = new EndpointAppContextService(); - mockPackageService = createMockPackageService(); - mockPackageService.getInstallation.mockReturnValue( - Promise.resolve({ - installed_kibana: [], - package_assets: [], - es_index_patterns: {}, - name: '', - version: '', - install_status: 'installed', - install_version: '', - install_started_at: '', - install_source: 'registry', - installed_es: [ - { - id: 'logs-endpoint.events.security', - type: ElasticsearchAssetType.indexTemplate, - }, - { - id: `${metadataTransformPrefix}-0.16.0-dev.0`, - type: ElasticsearchAssetType.transform, - }, - ], - keep_policies_up_to_date: false, - }) - ); - endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); - endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); - mockAgentService = startContract.agentService!; + describe('with metrics-endpoint.metadata_current_default index', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) + ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; - registerEndpointRoutes(routerMock, { - logFactory: loggingSystemMock.create(), - service: endpointAppContextService, - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + }); }); - }); - afterEach(() => endpointAppContextService.stop()); + afterEach(() => endpointAppContextService.stop()); - it('test find the latest of all endpoints', async () => { - const mockRequest = httpServerMock.createKibanaRequest({}); - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); - (mockScopedClient.asCurrentUser.search as jest.Mock) - .mockImplementationOnce(() => { - throw new IndexNotFoundException(); - }) - .mockImplementationOnce(() => Promise.resolve({ body: response })); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); + it('test find the latest of all endpoints', async () => { + const mockRequest = httpServerMock.createKibanaRequest({}); + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => Promise.resolve({ body: response })); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], - }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(0); - expect(endpointResultList.request_page_size).toEqual(10); - }); - - it('test find the latest of all endpoints with paging properties', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 1, - }, - ], - }, + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(0); + expect(endpointResultList.request_page_size).toEqual(10); }); - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - (mockScopedClient.asCurrentUser.search as jest.Mock) - .mockImplementationOnce(() => { - throw new IndexNotFoundException(); - }) - .mockImplementationOnce(() => - Promise.resolve({ - body: legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ), + it('test find the latest of all endpoints with paging properties', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + body: { + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 1, + }, + ], + }, + }); + + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); }) - ); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; + .mockImplementationOnce(() => + Promise.resolve({ + body: legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ), + }) + ); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); - expect( - (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool - .must_not - ).toContainEqual({ - terms: { - 'elastic.agent.id': [ - '00000000-0000-0000-0000-000000000000', - '11111111-1111-1111-1111-111111111111', - ], - }, - }); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); + expect( + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must_not + ).toContainEqual({ + terms: { + 'elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(10); + expect(endpointResultList.request_page_size).toEqual(10); }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(10); - expect(endpointResultList.request_page_size).toEqual(10); - }); - it('test find the latest of all endpoints with paging and filters properties', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 1, - }, - ], + it('test find the latest of all endpoints with paging and filters properties', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + body: { + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 1, + }, + ], - filters: { kql: 'not host.ip:10.140.73.246' }, - }, - }); + filters: { kql: 'not host.ip:10.140.73.246' }, + }, + }); - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); - (mockScopedClient.asCurrentUser.search as jest.Mock) - .mockImplementationOnce(() => { - throw new IndexNotFoundException(); - }) - .mockImplementationOnce(() => - Promise.resolve({ - body: legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ), + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); }) - ); - [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) - )!; + .mockImplementationOnce(() => + Promise.resolve({ + body: legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ), + }) + ); + [routeConfig, routeHandler] = routerMock.post.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_LIST_ROUTE) + )!; - await routeHandler( - createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), - mockRequest, - mockResponse - ); + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); - expect(mockScopedClient.asCurrentUser.search).toBeCalled(); - expect( - // KQL filter to be passed through - (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool.must - ).toContainEqual({ - bool: { - must_not: { - bool: { - should: [ - { - match: { - 'host.ip': '10.140.73.246', + expect(mockScopedClient.asCurrentUser.search).toBeCalled(); + expect( + // KQL filter to be passed through + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must + ).toContainEqual({ + bool: { + must_not: { + bool: { + should: [ + { + match: { + 'host.ip': '10.140.73.246', + }, }, - }, - ], - minimum_should_match: 1, - }, - }, - }, - }); - expect( - (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool.must - ).toContainEqual({ - bool: { - must_not: [ - { - terms: { - 'elastic.agent.id': [ - '00000000-0000-0000-0000-000000000000', - '11111111-1111-1111-1111-111111111111', ], + minimum_should_match: 1, }, }, - { - terms: { - // here we DO want to see both schemas are present - // to make this schema-compatible forward and back - 'HostDetails.elastic.agent.id': [ - '00000000-0000-0000-0000-000000000000', - '11111111-1111-1111-1111-111111111111', - ], + }, + }); + expect( + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must + ).toContainEqual({ + bool: { + must_not: [ + { + terms: { + 'elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, }, - }, - ], - }, - }); - expect(routeConfig.options).toEqual({ - authRequired: true, - tags: ['access:securitySolution'], + { + terms: { + // here we DO want to see both schemas are present + // to make this schema-compatible forward and back + 'HostDetails.elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }, + ], + }, + }); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; + expect(endpointResultList.hosts.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.request_page_index).toEqual(10); + expect(endpointResultList.request_page_size).toEqual(10); }); - expect(mockResponse.ok).toBeCalled(); - const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as HostResultList; - expect(endpointResultList.hosts.length).toEqual(1); - expect(endpointResultList.total).toEqual(1); - expect(endpointResultList.request_page_index).toEqual(10); - expect(endpointResultList.request_page_size).toEqual(10); }); + }); - describe('Endpoint Details route', () => { - it('should return 404 on no results', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ params: { id: 'BADID' } }); - - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: legacyMetadataSearchResponseMock() }) + describe('GET list endpoints route', () => { + describe('with .metrics-endpoint.metadata_united_default index', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; + mockAgentPolicyService = startContract.agentPolicyService!; - mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); - mockAgentService.getAgent = jest.fn().mockReturnValue({ - active: true, - } as unknown as Agent); + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + }); + }); + + afterEach(() => endpointAppContextService.stop()); + it('should fallback to legacy index if index not found', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + query: { + page: 0, + pageSize: 10, + }, + }); + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => Promise.resolve({ body: response })); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); await routeHandler( createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), mockRequest, mockResponse ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + const esSearchMock = mockScopedClient.asCurrentUser.search; + // should be called twice, united index first, then legacy index + expect(esSearchMock).toHaveBeenCalledTimes(2); + expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[1][0]?.index).toEqual(metadataCurrentIndexPattern); expect(routeConfig.options).toEqual({ authRequired: true, tags: ['access:securitySolution'], }); - expect(mockResponse.notFound).toBeCalled(); - const message = mockResponse.notFound.mock.calls[0][0]?.body; - expect(message).toBeInstanceOf(EndpointHostNotFoundError); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(0); + expect(endpointResultList.pageSize).toEqual(10); }); - it('should return a single endpoint with status healthy', async () => { - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); + it('should return expected metadata', async () => { const mockRequest = httpServerMock.createKibanaRequest({ - params: { id: response.hits.hits[0]._id }, + query: { + page: 0, + pageSize: 10, + hostStatuses: ['updating'], + kuery: 'not host.ip:10.140.73.246', + }, }); - mockAgentService.getAgent = jest - .fn() - .mockReturnValue(agentGenerator.generate({ status: 'online' })); - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: response }) - ); - + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + mockAgentPolicyService.getByIds = jest.fn().mockResolvedValueOnce([]); + const metadata = new EndpointDocGenerator().generateHostMetadata(); + const esSearchMock = mockScopedClient.asCurrentUser.search as jest.Mock; + esSearchMock.mockResolvedValueOnce({}); + esSearchMock.mockResolvedValueOnce({ + body: unitedMetadataSearchResponseMock(metadata), + }); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; await routeHandler( @@ -667,74 +737,255 @@ describe('test endpoint route', () => { mockResponse ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(esSearchMock).toHaveBeenCalledTimes(2); + expect(esSearchMock.mock.calls[0][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[0][0]?.size).toEqual(1); + expect(esSearchMock.mock.calls[1][0]?.index).toEqual(METADATA_UNITED_INDEX); + expect(esSearchMock.mock.calls[1][0]?.body?.query).toEqual({ + bool: { + must: [ + { + bool: { + filter: [ + { + terms: { + 'united.agent.policy_id': [], + }, + }, + { + exists: { + field: 'united.endpoint.agent.id', + }, + }, + { + exists: { + field: 'united.agent.agent.id', + }, + }, + { + term: { + 'united.agent.active': { + value: true, + }, + }, + }, + ], + must_not: { + terms: { + 'agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }, + }, + }, + { + bool: { + should: [ + { + bool: { + filter: [ + { + bool: { + should: [ + { + exists: { + field: 'united.agent.upgrade_started_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + { + bool: { + must_not: { + bool: { + should: [ + { + exists: { + field: 'united.agent.upgraded_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }, + ], + }, + }, + { + bool: { + must_not: { + bool: { + should: [ + { + exists: { + field: 'united.agent.last_checkin', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }, + { + bool: { + should: [ + { + exists: { + field: 'united.agent.unenrollment_started_at', + }, + }, + ], + minimum_should_match: 1, + }, + }, + ], + minimum_should_match: 1, + }, + }, + { + bool: { + must_not: { + bool: { + should: [ + { + match: { + 'host.ip': '10.140.73.246', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }, + ], + }, + }); expect(routeConfig.options).toEqual({ authRequired: true, tags: ['access:securitySolution'], }); expect(mockResponse.ok).toBeCalled(); - const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result).toHaveProperty('metadata.Endpoint'); - expect(result.host_status).toEqual(HostStatus.HEALTHY); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.data[0].metadata).toEqual(metadata); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(0); + expect(endpointResultList.pageSize).toEqual(10); }); + }); - it('should return a single endpoint with status unhealthy when AgentService throw 404', async () => { - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() + describe('with metrics-endpoint.metadata_current_default index', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; - const mockRequest = httpServerMock.createKibanaRequest({ - params: { id: response.hits.hits[0]._id }, + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), }); + }); - mockAgentService.getAgent = jest - .fn() - .mockRejectedValue(new AgentNotFoundError('not found')); + afterEach(() => endpointAppContextService.stop()); - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: response }) + it('test find the latest of all endpoints', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ + query: { + page: 0, + pageSize: 10, + }, + }); + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() ); - + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => Promise.resolve({ body: response })); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; - + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); await routeHandler( createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), mockRequest, mockResponse ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); expect(routeConfig.options).toEqual({ authRequired: true, tags: ['access:securitySolution'], }); expect(mockResponse.ok).toBeCalled(); - const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result.host_status).toEqual(HostStatus.UNHEALTHY); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(0); + expect(endpointResultList.pageSize).toEqual(10); }); - it('should return a single endpoint with status unhealthy when status is not offline, online or enrolling', async () => { - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); - + it('test find the latest of all endpoints with paging properties', async () => { const mockRequest = httpServerMock.createKibanaRequest({ - params: { id: response.hits.hits[0]._id }, + query: { + page: 1, + pageSize: 10, + }, }); - mockAgentService.getAgent = jest.fn().mockReturnValue( - agentGenerator.generate({ - status: 'error', + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); }) - ); - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: response }) - ); - + .mockImplementationOnce(() => + Promise.resolve({ + body: legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ), + }) + ); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; await routeHandler( @@ -742,34 +993,54 @@ describe('test endpoint route', () => { mockRequest, mockResponse ); - - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(2); + expect( + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must_not + ).toContainEqual({ + terms: { + 'elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }); expect(routeConfig.options).toEqual({ authRequired: true, tags: ['access:securitySolution'], }); expect(mockResponse.ok).toBeCalled(); - const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; - expect(result.host_status).toEqual(HostStatus.UNHEALTHY); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(1); + expect(endpointResultList.pageSize).toEqual(10); }); - it('should throw error when endpoint agent is not active', async () => { - const response = legacyMetadataSearchResponseMock( - new EndpointDocGenerator().generateHostMetadata() - ); - + it('test find the latest of all endpoints with paging and filters properties', async () => { const mockRequest = httpServerMock.createKibanaRequest({ - params: { id: response.hits.hits[0]._id }, + query: { + page: 1, + pageSize: 10, + kuery: 'not host.ip:10.140.73.246', + }, }); - (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => - Promise.resolve({ body: response }) - ); - mockAgentService.getAgent = jest.fn().mockReturnValue({ - active: false, - } as unknown as Agent); + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.listAgents = jest.fn().mockReturnValue(noUnenrolledAgent); + (mockScopedClient.asCurrentUser.search as jest.Mock) + .mockImplementationOnce(() => { + throw new IndexNotFoundException(); + }) + .mockImplementationOnce(() => + Promise.resolve({ + body: legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ), + }) + ); [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => - path.startsWith(`${HOST_METADATA_LIST_ROUTE}`) + path.startsWith(HOST_METADATA_LIST_ROUTE) )!; await routeHandler( @@ -778,9 +1049,277 @@ describe('test endpoint route', () => { mockResponse ); - expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); - expect(mockResponse.badRequest).toBeCalled(); + expect(mockScopedClient.asCurrentUser.search).toBeCalled(); + expect( + // KQL filter to be passed through + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must + ).toContainEqual({ + bool: { + must_not: { + bool: { + should: [ + { + match: { + 'host.ip': '10.140.73.246', + }, + }, + ], + minimum_should_match: 1, + }, + }, + }, + }); + expect( + (mockScopedClient.asCurrentUser.search as jest.Mock).mock.calls[1][0]?.body?.query.bool + .must + ).toContainEqual({ + bool: { + must_not: [ + { + terms: { + 'elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }, + { + terms: { + // here we DO want to see both schemas are present + // to make this schema-compatible forward and back + 'HostDetails.elastic.agent.id': [ + '00000000-0000-0000-0000-000000000000', + '11111111-1111-1111-1111-111111111111', + ], + }, + }, + ], + }, + }); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const endpointResultList = mockResponse.ok.mock.calls[0][0]?.body as MetadataListResponse; + expect(endpointResultList.data.length).toEqual(1); + expect(endpointResultList.total).toEqual(1); + expect(endpointResultList.page).toEqual(1); + expect(endpointResultList.pageSize).toEqual(10); + }); + }); + }); + + describe('GET endpoint details route', () => { + beforeEach(() => { + endpointAppContextService = new EndpointAppContextService(); + mockPackageService = createMockPackageService(); + mockPackageService.getInstallation.mockReturnValue( + Promise.resolve({ + installed_kibana: [], + package_assets: [], + es_index_patterns: {}, + name: '', + version: '', + install_status: 'installed', + install_version: '', + install_started_at: '', + install_source: 'registry', + installed_es: [ + { + id: 'logs-endpoint.events.security', + type: ElasticsearchAssetType.indexTemplate, + }, + { + id: `${metadataTransformPrefix}-0.16.0-dev.0`, + type: ElasticsearchAssetType.transform, + }, + ], + keep_policies_up_to_date: false, + }) + ); + endpointAppContextService.setup(createMockEndpointAppContextServiceSetupContract()); + endpointAppContextService.start({ ...startContract, packageService: mockPackageService }); + mockAgentService = startContract.agentService!; + + registerEndpointRoutes(routerMock, { + logFactory: loggingSystemMock.create(), + service: endpointAppContextService, + config: () => Promise.resolve(createMockConfig()), + experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + }); + }); + + afterEach(() => endpointAppContextService.stop()); + + it('should return 404 on no results', async () => { + const mockRequest = httpServerMock.createKibanaRequest({ params: { id: 'BADID' } }); + + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: legacyMetadataSearchResponseMock() }) + ); + + mockAgentService.getAgentStatusById = jest.fn().mockReturnValue('error'); + mockAgentService.getAgent = jest.fn().mockReturnValue({ + active: true, + } as unknown as Agent); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.notFound).toBeCalled(); + const message = mockResponse.notFound.mock.calls[0][0]?.body; + expect(message).toBeInstanceOf(EndpointHostNotFoundError); + }); + + it('should return a single endpoint with status healthy', async () => { + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + const mockRequest = httpServerMock.createKibanaRequest({ + params: { id: response.hits.hits[0]._id }, }); + + mockAgentService.getAgent = jest + .fn() + .mockReturnValue(agentGenerator.generate({ status: 'online' })); + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: response }) + ); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; + expect(result).toHaveProperty('metadata.Endpoint'); + expect(result.host_status).toEqual(HostStatus.HEALTHY); + }); + + it('should return a single endpoint with status unhealthy when AgentService throw 404', async () => { + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + + const mockRequest = httpServerMock.createKibanaRequest({ + params: { id: response.hits.hits[0]._id }, + }); + + mockAgentService.getAgent = jest.fn().mockRejectedValue(new AgentNotFoundError('not found')); + + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: response }) + ); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; + expect(result.host_status).toEqual(HostStatus.UNHEALTHY); + }); + + it('should return a single endpoint with status unhealthy when status is not offline, online or enrolling', async () => { + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + + const mockRequest = httpServerMock.createKibanaRequest({ + params: { id: response.hits.hits[0]._id }, + }); + + mockAgentService.getAgent = jest.fn().mockReturnValue( + agentGenerator.generate({ + status: 'error', + }) + ); + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: response }) + ); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(routeConfig.options).toEqual({ + authRequired: true, + tags: ['access:securitySolution'], + }); + expect(mockResponse.ok).toBeCalled(); + const result = mockResponse.ok.mock.calls[0][0]?.body as HostInfo; + expect(result.host_status).toEqual(HostStatus.UNHEALTHY); + }); + + it('should throw error when endpoint agent is not active', async () => { + const response = legacyMetadataSearchResponseMock( + new EndpointDocGenerator().generateHostMetadata() + ); + + const mockRequest = httpServerMock.createKibanaRequest({ + params: { id: response.hits.hits[0]._id }, + }); + (mockScopedClient.asCurrentUser.search as jest.Mock).mockImplementationOnce(() => + Promise.resolve({ body: response }) + ); + mockAgentService.getAgent = jest.fn().mockReturnValue({ + active: false, + } as unknown as Agent); + + [routeConfig, routeHandler] = routerMock.get.mock.calls.find(([{ path }]) => + path.startsWith(HOST_METADATA_GET_ROUTE) + )!; + + await routeHandler( + createRouteHandlerContext(mockScopedClient, mockSavedObjectClient), + mockRequest, + mockResponse + ); + + expect(mockScopedClient.asCurrentUser.search).toHaveBeenCalledTimes(1); + expect(mockResponse.badRequest).toBeCalled(); }); }); }); diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.test.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.test.ts index a0cb5aad552d2..0a8f2616c516f 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.test.ts @@ -5,39 +5,35 @@ * 2.0. */ -import { httpServerMock, loggingSystemMock } from '../../../../../../../src/core/server/mocks'; import { kibanaRequestToMetadataListESQuery, getESQueryHostMetadataByID, buildUnitedIndexQuery, } from './query_builders'; -import { EndpointAppContextService } from '../../endpoint_app_context_services'; -import { createMockConfig } from '../../../lib/detection_engine/routes/__mocks__'; import { metadataCurrentIndexPattern } from '../../../../common/endpoint/constants'; -import { parseExperimentalConfigValue } from '../../../../common/experimental_features'; import { get } from 'lodash'; import { expectedCompleteUnitedIndexQuery } from './query_builders.fixtures'; describe('query builder', () => { describe('MetadataListESQuery', () => { it('queries the correct index', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ body: {} }); - const query = await kibanaRequestToMetadataListESQuery(mockRequest, { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: '', + unenrolledAgentIds: [], + statusAgentIds: [], }); expect(query.index).toEqual(metadataCurrentIndexPattern); }); it('sorts using *event.created', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ body: {} }); - const query = await kibanaRequestToMetadataListESQuery(mockRequest, { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: '', + unenrolledAgentIds: [], + statusAgentIds: [], }); expect(query.body.sort).toContainEqual({ 'event.created': { @@ -55,21 +51,13 @@ describe('query builder', () => { it('excludes unenrolled elastic agents when they exist, by default', async () => { const unenrolledElasticAgentId = '1fdca33f-799f-49f4-939c-ea4383c77672'; - const mockRequest = httpServerMock.createKibanaRequest({ - body: {}, + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: '', + unenrolledAgentIds: [unenrolledElasticAgentId], + statusAgentIds: [], }); - const query = await kibanaRequestToMetadataListESQuery( - mockRequest, - { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), - }, - { - unenrolledAgentIds: [unenrolledElasticAgentId], - } - ); expect(query.body.query).toEqual({ bool: { @@ -100,16 +88,12 @@ describe('query builder', () => { describe('test query builder with kql filter', () => { it('test default query params for all endpoints metadata when body filter is provided', async () => { - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - filters: { kql: 'not host.ip:10.140.73.246' }, - }, - }); - const query = await kibanaRequestToMetadataListESQuery(mockRequest, { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue(createMockConfig().enableExperimental), + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: 'not host.ip:10.140.73.246', + unenrolledAgentIds: [], + statusAgentIds: [], }); expect(query.body.query.bool.must).toContainEqual({ @@ -135,25 +119,13 @@ describe('query builder', () => { 'and when body filter is provided', async () => { const unenrolledElasticAgentId = '1fdca33f-799f-49f4-939c-ea4383c77672'; - const mockRequest = httpServerMock.createKibanaRequest({ - body: { - filters: { kql: 'not host.ip:10.140.73.246' }, - }, + const query = await kibanaRequestToMetadataListESQuery({ + page: 0, + pageSize: 10, + kuery: 'not host.ip:10.140.73.246', + unenrolledAgentIds: [unenrolledElasticAgentId], + statusAgentIds: [], }); - const query = await kibanaRequestToMetadataListESQuery( - mockRequest, - { - logFactory: loggingSystemMock.create(), - service: new EndpointAppContextService(), - config: () => Promise.resolve(createMockConfig()), - experimentalFeatures: parseExperimentalConfigValue( - createMockConfig().enableExperimental - ), - }, - { - unenrolledAgentIds: [unenrolledElasticAgentId], - } - ); expect(query.body.query.bool.must).toEqual([ { @@ -222,7 +194,10 @@ describe('query builder', () => { describe('buildUnitedIndexQuery', () => { it('correctly builds empty query', async () => { - const query = await buildUnitedIndexQuery({ page: 1, pageSize: 10, filters: {} }, []); + const query = await buildUnitedIndexQuery( + { page: 1, pageSize: 10, hostStatuses: [], kuery: '' }, + [] + ); const expected = { bool: { must_not: { @@ -267,10 +242,8 @@ describe('query builder', () => { { page: 1, pageSize: 10, - filters: { - kql: 'united.endpoint.host.os.name : *', - host_status: ['healthy'], - }, + kuery: 'united.endpoint.host.os.name : *', + hostStatuses: ['healthy'], }, ['test-endpoint-policy-id'] ); diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.ts index 73325a92a3324..2262028ec43bf 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/query_builders.ts @@ -6,14 +6,16 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { TypeOf } from '@kbn/config-schema'; import { fromKueryExpression, toElasticsearchQuery } from '@kbn/es-query'; import { metadataCurrentIndexPattern, METADATA_UNITED_INDEX, } from '../../../../common/endpoint/constants'; import { KibanaRequest } from '../../../../../../../src/core/server'; -import { EndpointAppContext, GetHostMetadataListQuery } from '../../types'; +import { EndpointAppContext } from '../../types'; import { buildStatusesKuery } from './support/agent_status'; +import { GetMetadataListRequestSchemaV2 } from '.'; /** * 00000000-0000-0000-0000-000000000000 is initial Elastic Agent id sent by Endpoint before policy is configured @@ -25,6 +27,9 @@ const IGNORED_ELASTIC_AGENT_IDS = [ ]; export interface QueryBuilderOptions { + page: number; + pageSize: number; + kuery?: string; unenrolledAgentIds?: string[]; statusAgentIds?: string[]; } @@ -50,26 +55,21 @@ export const MetadataSortMethod: estypes.SearchSortContainer[] = [ ]; export async function kibanaRequestToMetadataListESQuery( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - request: KibanaRequest<any, any, any>, - endpointAppContext: EndpointAppContext, - queryBuilderOptions?: QueryBuilderOptions + queryBuilderOptions: QueryBuilderOptions // eslint-disable-next-line @typescript-eslint/no-explicit-any ): Promise<Record<string, any>> { - const pagingProperties = await getPagingProperties(request, endpointAppContext); - return { body: { query: buildQueryBody( - request, + queryBuilderOptions?.kuery, IGNORED_ELASTIC_AGENT_IDS.concat(queryBuilderOptions?.unenrolledAgentIds ?? []), queryBuilderOptions?.statusAgentIds ), track_total_hits: true, sort: MetadataSortMethod, }, - from: pagingProperties.pageIndex * pagingProperties.pageSize, - size: pagingProperties.pageSize, + from: queryBuilderOptions.page * queryBuilderOptions.pageSize, + size: queryBuilderOptions.pageSize, index: metadataCurrentIndexPattern, }; } @@ -96,8 +96,7 @@ export async function getPagingProperties( } function buildQueryBody( - // eslint-disable-next-line @typescript-eslint/no-explicit-any - request: KibanaRequest<any, any, any>, + kuery: string = '', unerolledAgentIds: string[] | undefined, statusAgentIds: string[] | undefined // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -136,8 +135,8 @@ function buildQueryBody( }, }; - if (request?.body?.filters?.kql) { - const kqlQuery = toElasticsearchQuery(fromKueryExpression(request.body.filters.kql)); + if (kuery) { + const kqlQuery = toElasticsearchQuery(fromKueryExpression(kuery)); const q = []; if (filterUnenrolledAgents || filterStatusAgents) { q.push(idFilter); @@ -233,12 +232,17 @@ interface BuildUnitedIndexQueryResponse { size: number; index: string; } + export async function buildUnitedIndexQuery( - { page = 1, pageSize = 10, filters = {} }: GetHostMetadataListQuery, + { + page = 0, + pageSize = 10, + hostStatuses = [], + kuery = '', + }: TypeOf<typeof GetMetadataListRequestSchemaV2.query>, endpointPolicyIds: string[] = [] ): Promise<BuildUnitedIndexQueryResponse> { - const statusesToFilter = filters?.host_status ?? []; - const statusesKuery = buildStatusesKuery(statusesToFilter); + const statusesKuery = buildStatusesKuery(hostStatuses); const filterIgnoredAgents = { must_not: { terms: { 'agent.id': IGNORED_ELASTIC_AGENT_IDS } }, @@ -272,8 +276,8 @@ export async function buildUnitedIndexQuery( let query: BuildUnitedIndexQueryResponse['body']['query'] = idFilter; - if (statusesKuery || filters?.kql) { - const kqlQuery = toElasticsearchQuery(fromKueryExpression(filters.kql ?? '')); + if (statusesKuery || kuery) { + const kqlQuery = toElasticsearchQuery(fromKueryExpression(kuery ?? '')); const q = []; if (filterIgnoredAgents || filterEndpointPolicyAgents) { @@ -295,7 +299,7 @@ export async function buildUnitedIndexQuery( track_total_hits: true, sort: MetadataSortMethod, }, - from: (page - 1) * pageSize, + from: page * pageSize, size: pageSize, index: METADATA_UNITED_INDEX, }; diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts index f9e04f4edebee..a7781cb77e8c0 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/metadata/support/agent_status.ts @@ -36,7 +36,7 @@ export function buildStatusesKuery(statusesToFilter: string[]): string | undefin export async function findAgentIdsByStatus( agentService: AgentService, esClient: ElasticsearchClient, - statuses: string[], + statuses: string[] = [], pageSize: number = 1000 ): Promise<string[]> { if (!statuses.length) { diff --git a/x-pack/plugins/security_solution/server/endpoint/routes/policy/service.ts b/x-pack/plugins/security_solution/server/endpoint/routes/policy/service.ts index ce46395a1f09f..ced0e00d34585 100644 --- a/x-pack/plugins/security_solution/server/endpoint/routes/policy/service.ts +++ b/x-pack/plugins/security_solution/server/endpoint/routes/policy/service.ts @@ -14,7 +14,7 @@ import { GetHostPolicyResponse, HostPolicyResponse } from '../../../../common/en import { INITIAL_POLICY_ID } from './index'; import { Agent } from '../../../../../fleet/common/types/models'; import { EndpointAppContext } from '../../types'; -import { ISearchRequestParams } from '../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../src/plugins/data/common'; export const getESQueryPolicyResponseByAgentID = ( agentID: string, diff --git a/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts b/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts index d3cc7b32bbc1c..5af108304ff9d 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.test.ts @@ -117,7 +117,12 @@ describe('EndpointMetadataService', () => { it('should throw wrapped error if es error', async () => { const esMockResponse = elasticsearchServiceMock.createErrorTransportRequestPromise({}); esClient.search.mockResolvedValue(esMockResponse); - const metadataListResponse = metadataService.getHostMetadataList(esClient); + const metadataListResponse = metadataService.getHostMetadataList(esClient, { + page: 0, + pageSize: 10, + kuery: '', + hostStatuses: [], + }); await expect(metadataListResponse).rejects.toThrow(EndpointError); }); @@ -168,18 +173,16 @@ describe('EndpointMetadataService', () => { } ); - const metadataListResponse = await metadataService.getHostMetadataList(esClient); - const unitedIndexQuery = await buildUnitedIndexQuery( - { page: 1, pageSize: 10, filters: {} }, - packagePolicyIds + const queryOptions = { page: 1, pageSize: 10, kuery: '', hostStatuses: [] }; + const metadataListResponse = await metadataService.getHostMetadataList( + esClient, + queryOptions ); + const unitedIndexQuery = await buildUnitedIndexQuery(queryOptions, packagePolicyIds); expect(esClient.search).toBeCalledWith(unitedIndexQuery); expect(agentPolicyServiceMock.getByIds).toBeCalledWith(expect.anything(), agentPolicyIds); expect(metadataListResponse).toEqual({ - pageSize: 10, - page: 1, - total: 1, data: [ { metadata: endpointMetadataDoc, @@ -202,6 +205,7 @@ describe('EndpointMetadataService', () => { }, }, ], + total: 1, }); }); }); diff --git a/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.ts b/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.ts index be8a6625c111e..832b8b507e5d4 100644 --- a/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.ts +++ b/x-pack/plugins/security_solution/server/endpoint/services/metadata/endpoint_metadata_service.ts @@ -12,12 +12,14 @@ import { SavedObjectsServiceStart, } from 'kibana/server'; +import { TypeOf } from '@kbn/config-schema'; import { TransportResult } from '@elastic/elasticsearch'; import { SearchTotalHits, SearchResponse } from '@elastic/elasticsearch/lib/api/types'; import { HostInfo, HostMetadata, MaybeImmutable, + MetadataListResponse, PolicyData, UnitedAgentMetadata, } from '../../../../common/endpoint/types'; @@ -52,10 +54,10 @@ import { } from '../../utils'; import { EndpointError } from '../../errors'; import { createInternalReadonlySoClient } from '../../utils/create_internal_readonly_so_client'; -import { GetHostMetadataListQuery } from '../../types'; import { METADATA_UNITED_INDEX } from '../../../../common/endpoint/constants'; import { getAllEndpointPackagePolicies } from '../../routes/metadata/support/endpoint_package_policies'; import { getAgentStatus } from '../../../../../fleet/common/services/agent_status'; +import { GetMetadataListRequestSchemaV2 } from '../../routes/metadata'; type AgentPolicyWithPackagePolicies = Omit<AgentPolicy, 'package_policies'> & { package_policies: PackagePolicy[]; @@ -401,8 +403,8 @@ export class EndpointMetadataService { */ async getHostMetadataList( esClient: ElasticsearchClient, - queryOptions: GetHostMetadataListQuery = {} - ): Promise<{ data: HostInfo[]; total: number; page: number; pageSize: number }> { + queryOptions: TypeOf<typeof GetMetadataListRequestSchemaV2.query> + ): Promise<Pick<MetadataListResponse, 'data' | 'total'>> { const endpointPolicies = await getAllEndpointPackagePolicies( this.packagePolicyService, this.DANGEROUS_INTERNAL_SO_CLIENT @@ -474,8 +476,6 @@ export class EndpointMetadataService { return { data: hosts, - pageSize: unitedIndexQuery.size, - page: unitedIndexQuery.from + 1, total: (docsCount as unknown as SearchTotalHits).value, }; } diff --git a/x-pack/plugins/security_solution/server/endpoint/types.ts b/x-pack/plugins/security_solution/server/endpoint/types.ts index 919e62785f698..bc52b759b9f0a 100644 --- a/x-pack/plugins/security_solution/server/endpoint/types.ts +++ b/x-pack/plugins/security_solution/server/endpoint/types.ts @@ -7,12 +7,10 @@ import { LoggerFactory } from 'kibana/server'; -import { TypeOf } from '@kbn/config-schema'; import { ConfigType } from '../config'; import { EndpointAppContextService } from './endpoint_app_context_services'; import { HostMetadata } from '../../common/endpoint/types'; import { ExperimentalFeatures } from '../../common/experimental_features'; -import { endpointFilters } from './routes/metadata'; /** * The context for Endpoint apps. @@ -37,11 +35,3 @@ export interface HostQueryResult { resultLength: number; result: HostMetadata | undefined; } - -// FIXME: when new Host Metadata list API is created (and existing one deprecated - 8.0?), move this type out of here and created it from Schema -export interface GetHostMetadataListQuery { - /* page number 1 based - not an index */ - page?: number; - pageSize?: number; - filters?: Partial<TypeOf<typeof endpointFilters>>; -} diff --git a/x-pack/plugins/security_solution/server/endpoint/utils/audit_log_helpers.ts b/x-pack/plugins/security_solution/server/endpoint/utils/audit_log_helpers.ts index c50a460a377c7..c601f5954be7f 100644 --- a/x-pack/plugins/security_solution/server/endpoint/utils/audit_log_helpers.ts +++ b/x-pack/plugins/security_solution/server/endpoint/utils/audit_log_helpers.ts @@ -6,7 +6,7 @@ */ import { Logger } from 'kibana/server'; -import { SearchRequest } from 'src/plugins/data/public'; +import type { SearchRequest } from 'src/plugins/data/public'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { TransportResult } from '@elastic/elasticsearch'; import { AGENT_ACTIONS_INDEX, AGENT_ACTIONS_RESULTS_INDEX } from '../../../../fleet/common'; diff --git a/x-pack/plugins/security_solution/server/fleet_integration/jest.config.js b/x-pack/plugins/security_solution/server/fleet_integration/jest.config.js index 81625081c40c6..abcd1a214c200 100644 --- a/x-pack/plugins/security_solution/server/fleet_integration/jest.config.js +++ b/x-pack/plugins/security_solution/server/fleet_integration/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '<rootDir>/x-pack/plugins/security_solution/server/fleet_integration/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/jest.config.js b/x-pack/plugins/security_solution/server/jest.config.js index 2fc23670388b9..3f5aa91c5faec 100644 --- a/x-pack/plugins/security_solution/server/jest.config.js +++ b/x-pack/plugins/security_solution/server/jest.config.js @@ -15,4 +15,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/server', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/server/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts index fc88e7b8b2be0..86bba69699195 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/__mocks__/request_context.ts @@ -11,7 +11,11 @@ import { coreMock } from 'src/core/server/mocks'; import { ActionsApiRequestHandlerContext } from '../../../../../../actions/server'; import { AlertingApiRequestHandlerContext } from '../../../../../../alerting/server'; import { rulesClientMock } from '../../../../../../alerting/server/mocks'; -import { actionsClientMock } from '../../../../../../actions/server/mocks'; + +// See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. +// We cannot import from "../../../../../../actions/server" directly here or we have a really bad memory issue. We cannot add this to the existing mocks we created, this fix must be here. +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { actionsClientMock } from '../../../../../../actions/server/actions_client.mock'; import { licensingMock } from '../../../../../../licensing/server/mocks'; import { listMock } from '../../../../../../lists/server/mocks'; import { ruleRegistryMocks } from '../../../../../../rule_registry/server/mocks'; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts index b6e7858854efa..1db9cca2ca2d8 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts @@ -125,7 +125,7 @@ export const createRulesBulkRoute = ( } catch (err) { return transformBulkError( internalRule.params.ruleId, - err as Error & { statusCode?: number | undefined } + err as Error & { statusCode?: number } ); } }) diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.test.ts index 66ad07b9d1029..5fe15c2839066 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.test.ts @@ -5,8 +5,6 @@ * 2.0. */ -import Boom from '@hapi/boom'; - import { SavedObjectsFindResponse } from 'kibana/server'; import { rulesClientMock } from '../../../../../alerting/server/mocks'; @@ -26,6 +24,7 @@ import { getAlertMock } from './__mocks__/request_responses'; import { AlertExecutionStatusErrorReasons } from '../../../../../alerting/common'; import { getQueryRuleParams } from '../schemas/rule_schemas.mock'; import { RuleExecutionStatus } from '../../../../common/detection_engine/schemas/common/schemas'; +import { CustomHttpRequestError } from '../../../utils/custom_http_request_error'; let rulesClient: ReturnType<typeof rulesClientMock.create>; @@ -34,17 +33,17 @@ describe.each([ ['RAC', true], ])('utils - %s', (_, isRuleRegistryEnabled) => { describe('transformBulkError', () => { - test('returns transformed object if it is a boom object', () => { - const boom = new Boom.Boom('some boom message', { statusCode: 400 }); - const transformed = transformBulkError('rule-1', boom); + test('returns transformed object if it is a custom error object', () => { + const customError = new CustomHttpRequestError('some custom error message', 400); + const transformed = transformBulkError('rule-1', customError); const expected: BulkError = { rule_id: 'rule-1', - error: { message: 'some boom message', status_code: 400 }, + error: { message: 'some custom error message', status_code: 400 }, }; expect(transformed).toEqual(expected); }); - test('returns a normal error if it is some non boom object that has a statusCode', () => { + test('returns a normal error if it is some non custom error that has a statusCode', () => { const error: Error & { statusCode?: number } = { statusCode: 403, name: 'some name', @@ -71,7 +70,7 @@ describe.each([ expect(transformed).toEqual(expected); }); - test('it detects a BadRequestError and returns a Boom status of 400', () => { + test('it detects a BadRequestError and returns an error status of 400', () => { const error: BadRequestError = new BadRequestError('I have a type error'); const transformed = transformBulkError('rule-1', error); const expected: BulkError = { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.ts index a15dc4f176232..127c52496a5c5 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/routes/utils.ts @@ -5,7 +5,6 @@ * 2.0. */ -import Boom from '@hapi/boom'; import { has, snakeCase } from 'lodash/fp'; import { BadRequestError } from '@kbn/securitysolution-es-utils'; import { SanitizedAlert } from '../../../../../alerting/common'; @@ -19,6 +18,7 @@ import { RulesClient } from '../../../../../alerting/server'; import { RuleStatusResponse, IRuleStatusSOAttributes } from '../rules/types'; import { RuleParams } from '../schemas/rule_schemas'; +import { CustomHttpRequestError } from '../../../utils/custom_http_request_error'; export interface OutputError { message: string; @@ -104,10 +104,10 @@ export const transformBulkError = ( ruleId: string, err: Error & { statusCode?: number } ): BulkError => { - if (Boom.isBoom(err)) { + if (err instanceof CustomHttpRequestError) { return createBulkErrorObject({ ruleId, - statusCode: err.output.statusCode, + statusCode: err.statusCode ?? 400, message: err.message, }); } else if (err instanceof BadRequestError) { @@ -254,7 +254,7 @@ export const getFailingRules = async ( }; }, {}); } catch (exc) { - if (Boom.isBoom(exc)) { + if (exc instanceof CustomHttpRequestError) { throw exc; } throw new Error(`Failed to get executionStatus with RulesClient: ${(exc as Error).message}`); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/__mocks__/eql.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/__mocks__/eql.ts index 096d2a5330047..da65c7e483428 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/__mocks__/eql.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/__mocks__/eql.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { EqlSearchStrategyResponse } from '../../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../../src/plugins/data/common'; import { EqlSearchResponse } from '../../../../../common/detection_engine/types'; export const sequenceResponse = { diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/factories/bulk_create_factory.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/factories/bulk_create_factory.ts index 0ad88c61bab36..07b93f04e965f 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/factories/bulk_create_factory.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/factories/bulk_create_factory.ts @@ -6,12 +6,11 @@ */ import { performance } from 'perf_hooks'; -import { countBy, isEmpty } from 'lodash'; import { Logger } from 'kibana/server'; import { BaseHit } from '../../../../../common/detection_engine/types'; import { BuildRuleMessage } from '../../signals/rule_messages'; -import { errorAggregator, makeFloatString } from '../../signals/utils'; +import { makeFloatString } from '../../signals/utils'; import { RefreshTypes } from '../../types'; import { PersistenceAlertService } from '../../../../../../rule_registry/server'; @@ -45,11 +44,11 @@ export const bulkCreateFactory = const start = performance.now(); - const response = await alertWithPersistence( + const { createdAlerts } = await alertWithPersistence( wrappedDocs.map((doc) => ({ - id: doc._id, + _id: doc._id, // `fields` should have already been merged into `doc._source` - fields: doc._source, + _source: doc._source, })), refreshForBulkCreate ); @@ -62,64 +61,11 @@ export const bulkCreateFactory = ) ); - if (response == null) { - return { - errors: [ - 'alertWithPersistence returned undefined response. Alerts as Data write flag may be disabled.', - ], - success: false, - bulkCreateDuration: makeFloatString(end - start), - createdItemsCount: 0, - createdItems: [], - }; - } - - logger.debug( - buildRuleMessage(`took property says bulk took: ${response.body.took} milliseconds`) - ); - - const createdItems = wrappedDocs - .map((doc, index) => { - const responseIndex = response.body.items[index].index; - return { - _id: responseIndex?._id ?? '', - _index: responseIndex?._index ?? '', - ...doc._source, - }; - }) - .filter((_, index) => response.body.items[index].index?.status === 201); - const createdItemsCount = createdItems.length; - - const duplicateSignalsCount = countBy(response.body.items, 'create.status')['409']; - const errorCountByMessage = errorAggregator(response.body, [409]); - - logger.debug(buildRuleMessage(`bulk created ${createdItemsCount} signals`)); - - if (duplicateSignalsCount > 0) { - logger.debug(buildRuleMessage(`ignored ${duplicateSignalsCount} duplicate signals`)); - } - - if (!isEmpty(errorCountByMessage)) { - logger.error( - buildRuleMessage( - `[-] bulkResponse had errors with responses of: ${JSON.stringify(errorCountByMessage)}` - ) - ); - - return { - errors: Object.keys(errorCountByMessage), - success: false, - bulkCreateDuration: makeFloatString(end - start), - createdItemsCount: createdItems.length, - createdItems, - }; - } else { - return { - errors: [], - success: true, - bulkCreateDuration: makeFloatString(end - start), - createdItemsCount: createdItems.length, - createdItems, - }; - } + return { + errors: [], + success: true, + bulkCreateDuration: makeFloatString(end - start), + createdItemsCount: createdAlerts.length, + createdItems: createdAlerts, + }; }; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/indicator_match/create_indicator_match_alert_type.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/indicator_match/create_indicator_match_alert_type.test.ts index 89e8e7f70e4aa..29054a4022715 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/indicator_match/create_indicator_match_alert_type.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/indicator_match/create_indicator_match_alert_type.test.ts @@ -14,7 +14,6 @@ import { allowedExperimentalValues } from '../../../../../common/experimental_fe import { createRuleTypeMocks } from '../__mocks__/rule_type'; import { createIndicatorMatchAlertType } from './create_indicator_match_alert_type'; import { sampleDocNoSortId } from '../../signals/__mocks__/es_results'; -import { CountResponse } from 'kibana/server'; import { RuleParams } from '../../schemas/rule_schemas'; import { createSecurityRuleTypeWrapper } from '../create_security_rule_type_wrapper'; import { createMockConfig } from '../../routes/__mocks__'; @@ -133,121 +132,4 @@ describe('Indicator Match Alerts', () => { await executor({ params }); expect(dependencies.ruleDataClient.getWriter).not.toBeCalled(); }); - - it('sends an alert when enrichments are found', async () => { - const indicatorMatchAlertType = securityRuleTypeWrapper( - createIndicatorMatchAlertType({ - experimentalFeatures: allowedExperimentalValues, - logger: dependencies.logger, - version: '1.0.0', - }) - ); - - dependencies.alerting.registerType(indicatorMatchAlertType); - - // threat list count - services.scopedClusterClient.asCurrentUser.count.mockReturnValue( - elasticsearchClientMock.createSuccessTransportRequestPromise({ count: 1 } as CountResponse) - ); - - services.scopedClusterClient.asCurrentUser.search.mockReturnValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - hits: [ - { - ...sampleDocNoSortId(v4()), - _source: { - ...sampleDocNoSortId(v4())._source, - 'threat.indicator.file.hash.md5': 'a1b2c3', - }, - fields: { - ...sampleDocNoSortId(v4()).fields, - 'threat.indicator.file.hash.md5': ['a1b2c3'], - }, - }, - ], - total: { - relation: 'eq', - value: 1, - }, - }, - took: 0, - timed_out: false, - _shards: { - failed: 0, - skipped: 0, - successful: 1, - total: 1, - }, - }) - ); - - services.scopedClusterClient.asCurrentUser.search.mockReturnValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - hits: [ - { - ...sampleDocNoSortId(v4()), - _source: { - ...sampleDocNoSortId(v4())._source, - 'file.hash.md5': 'a1b2c3', - }, - fields: { - ...sampleDocNoSortId(v4()).fields, - 'file.hash.md5': ['a1b2c3'], - }, - }, - ], - total: { - relation: 'eq', - value: 1, - }, - }, - took: 0, - timed_out: false, - _shards: { - failed: 0, - skipped: 0, - successful: 1, - total: 1, - }, - }) - ); - - services.scopedClusterClient.asCurrentUser.search.mockReturnValueOnce( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - hits: [ - { - ...sampleDocNoSortId(v4()), - _source: { - ...sampleDocNoSortId(v4())._source, - 'file.hash.md5': 'a1b2c3', - }, - fields: { - ...sampleDocNoSortId(v4()).fields, - 'file.hash.md5': ['a1b2c3'], - }, - }, - ], - total: { - relation: 'eq', - value: 1, - }, - }, - took: 0, - timed_out: false, - _shards: { - failed: 0, - skipped: 0, - successful: 1, - total: 1, - }, - }) - ); - - await executor({ params }); - - expect(dependencies.ruleDataClient.getWriter).toBeCalled(); - }); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.test.ts index 40ef2b46ed8d9..07eb096d0dd83 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rule_types/query/create_query_alert_type.test.ts @@ -5,13 +5,10 @@ * 2.0. */ -import { v4 } from 'uuid'; - // eslint-disable-next-line @kbn/eslint/no-restricted-paths import { elasticsearchClientMock } from 'src/core/server/elasticsearch/client/mocks'; import { allowedExperimentalValues } from '../../../../../common/experimental_features'; -import { sampleDocNoSortId } from '../../signals/__mocks__/es_results'; import { createQueryAlertType } from './create_query_alert_type'; import { createRuleTypeMocks } from '../__mocks__/rule_type'; import { createSecurityRuleTypeWrapper } from '../create_security_rule_type_wrapper'; @@ -79,48 +76,4 @@ describe('Custom Query Alerts', () => { await executor({ params }); expect(dependencies.ruleDataClient.getWriter).not.toBeCalled(); }); - - it('sends a properly formatted alert when events are found', async () => { - const queryAlertType = securityRuleTypeWrapper( - createQueryAlertType({ - experimentalFeatures: allowedExperimentalValues, - logger: dependencies.logger, - version: '1.0.0', - }) - ); - - dependencies.alerting.registerType(queryAlertType); - - const params = { - query: '*:*', - index: ['*'], - from: 'now-1m', - to: 'now', - language: 'kuery', - type: 'query', - }; - - services.scopedClusterClient.asCurrentUser.search.mockReturnValue( - elasticsearchClientMock.createSuccessTransportRequestPromise({ - hits: { - hits: [sampleDocNoSortId(v4()), sampleDocNoSortId(v4()), sampleDocNoSortId(v4())], - total: { - relation: 'eq', - value: 3, - }, - }, - took: 0, - timed_out: false, - _shards: { - failed: 0, - skipped: 0, - successful: 1, - total: 1, - }, - }) - ); - - await executor({ params }); - expect(dependencies.ruleDataClient.getWriter).toBeCalled(); - }); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts index 2c25134cc3760..c3e15b061842e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.mock.ts @@ -117,3 +117,69 @@ export const getCreateMlRulesOptionsMock = ( exceptionsList: [], actions: [], }); + +export const getCreateThreatMatchRulesOptionsMock = ( + isRuleRegistryEnabled: boolean +): CreateRulesOptions => ({ + actions: [], + anomalyThreshold: undefined, + author: ['Elastic'], + buildingBlockType: undefined, + concurrentSearches: undefined, + description: 'some description', + enabled: true, + eventCategoryOverride: undefined, + exceptionsList: [], + falsePositives: ['false positive 1', 'false positive 2'], + filters: [], + from: 'now-1m', + immutable: false, + index: ['*'], + interval: '5m', + isRuleRegistryEnabled, + itemsPerSearch: undefined, + language: 'kuery', + license: 'Elastic License', + machineLearningJobId: undefined, + maxSignals: 100, + meta: {}, + name: 'Query with a rule id', + note: '# sample markdown', + outputIndex: 'output-1', + query: 'user.name: root or user.name: admin', + references: ['http://www.example.com'], + riskScore: 80, + riskScoreMapping: [], + ruleId: 'rule-1', + ruleNameOverride: undefined, + rulesClient: rulesClientMock.create(), + savedId: 'savedId-123', + severity: 'high', + severityMapping: [], + tags: [], + threat: [], + threatFilters: undefined, + threatIndex: ['filebeat-*'], + threatIndicatorPath: 'threat.indicator', + threatLanguage: 'kuery', + threatMapping: [ + { + entries: [ + { + field: 'file.hash.md5', + type: 'mapping', + value: 'threat.indicator.file.hash.md5', + }, + ], + }, + ], + threatQuery: '*:*', + threshold: undefined, + throttle: null, + timelineId: 'timelineid-123', + timelineTitle: 'timeline-title-123', + timestampOverride: undefined, + to: 'now', + type: 'threat_match', + version: 1, +}); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.test.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.test.ts index 0fd708791712a..3d5619ab1306b 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.test.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.test.ts @@ -6,7 +6,11 @@ */ import { createRules } from './create_rules'; -import { getCreateMlRulesOptionsMock } from './create_rules.mock'; +import { + getCreateMlRulesOptionsMock, + getCreateThreatMatchRulesOptionsMock, +} from './create_rules.mock'; +import { DEFAULT_INDICATOR_SOURCE_PATH } from '../../../../common/constants'; describe.each([ ['Legacy', false], @@ -44,4 +48,34 @@ describe.each([ }) ); }); + + it('populates a threatIndicatorPath value for threat_match rule if empty', async () => { + const ruleOptions = getCreateThreatMatchRulesOptionsMock(isRuleRegistryEnabled); + delete ruleOptions.threatIndicatorPath; + await createRules(ruleOptions); + expect(ruleOptions.rulesClient.create).toHaveBeenCalledWith( + expect.objectContaining({ + data: expect.objectContaining({ + params: expect.objectContaining({ + threatIndicatorPath: DEFAULT_INDICATOR_SOURCE_PATH, + }), + }), + }) + ); + }); + + it('does not populate a threatIndicatorPath value for other rules if empty', async () => { + const ruleOptions = getCreateMlRulesOptionsMock(isRuleRegistryEnabled); + delete ruleOptions.threatIndicatorPath; + await createRules(ruleOptions); + expect(ruleOptions.rulesClient.create).not.toHaveBeenCalledWith( + expect.objectContaining({ + data: expect.objectContaining({ + params: expect.objectContaining({ + threatIndicatorPath: DEFAULT_INDICATOR_SOURCE_PATH, + }), + }), + }) + ); + }); }); diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts index 1d0010b38578d..5ff5358fbc4cd 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/rules/create_rules.ts @@ -13,7 +13,11 @@ import { } from '../../../../common/detection_engine/utils'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { SanitizedAlert } from '../../../../../alerting/common'; -import { NOTIFICATION_THROTTLE_NO_ACTIONS, SERVER_APP_ID } from '../../../../common/constants'; +import { + DEFAULT_INDICATOR_SOURCE_PATH, + NOTIFICATION_THROTTLE_NO_ACTIONS, + SERVER_APP_ID, +} from '../../../../common/constants'; import { CreateRulesOptions } from './types'; import { addTags } from './add_tags'; import { PartialFilter, RuleTypeParams } from '../types'; @@ -115,7 +119,9 @@ export const createRules = async ({ */ threatFilters: threatFilters as PartialFilter[] | undefined, threatIndex, - threatIndicatorPath, + threatIndicatorPath: + threatIndicatorPath ?? + (type === 'threat_match' ? DEFAULT_INDICATOR_SOURCE_PATH : undefined), threatQuery, concurrentSearches, itemsPerSearch, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts index 592ab137ee289..0e660b6038b5d 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.mock.ts @@ -6,7 +6,8 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; -import { Filter } from 'src/plugins/data/common'; + +import type { Filter } from '@kbn/es-query'; import { ThreatListDoc, ThreatListItem } from './types'; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.ts index 2aaa57ff96cab..dfc66f7c5222e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threat_mapping/build_threat_mapping_filter.ts @@ -6,7 +6,7 @@ */ import get from 'lodash/fp/get'; -import { Filter } from '@kbn/es-query'; +import type { Filter } from '@kbn/es-query'; import { ThreatMapping } from '@kbn/securitysolution-io-ts-alerting-types'; import { BooleanFilter, diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts index 610be59deaa5f..bc9dc69dbe19e 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/signals/threshold/get_threshold_bucket_filters.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter } from 'src/plugins/data/common'; +import type { Filter } from '@kbn/es-query'; import { ESFilter } from '../../../../../../../../src/core/types/elasticsearch'; import { ThresholdSignalHistory, ThresholdSignalHistoryRecord } from '../types'; diff --git a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts index 9eb160ed2da56..206ccb3b78351 100644 --- a/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts +++ b/x-pack/plugins/security_solution/server/lib/detection_engine/types.ts @@ -27,6 +27,7 @@ import { import { Version } from '@kbn/securitysolution-io-ts-types'; import type { ListArrayOrUndefined } from '@kbn/securitysolution-io-ts-list-types'; +import type { Filter } from '@kbn/es-query'; import { AnomalyThresholdOrUndefined, Description, @@ -52,7 +53,6 @@ import { EventCategoryOverrideOrUndefined, } from '../../../common/detection_engine/schemas/common/schemas'; -import { Filter } from '../../../../../../src/plugins/data/server'; import { AlertTypeParams } from '../../../../alerting/common'; export type PartialFilter = Partial<Filter>; diff --git a/x-pack/plugins/security_solution/server/lib/jest.config.js b/x-pack/plugins/security_solution/server/lib/jest.config.js index 4c4c7d8d4a6b7..88b4ff927971d 100644 --- a/x-pack/plugins/security_solution/server/lib/jest.config.js +++ b/x-pack/plugins/security_solution/server/lib/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/lib', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/server/lib/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/lib/machine_learning/authz.ts b/x-pack/plugins/security_solution/server/lib/machine_learning/authz.ts index d5e8e951397c2..3b96de2d4b1d1 100644 --- a/x-pack/plugins/security_solution/server/lib/machine_learning/authz.ts +++ b/x-pack/plugins/security_solution/server/lib/machine_learning/authz.ts @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; import { Type } from '@kbn/securitysolution-io-ts-alerting-types'; -import { KibanaRequest, SavedObjectsClientContract } from '../../../../../../src/core/server/'; +import { KibanaRequest, SavedObjectsClientContract } from '../../../../../../src/core/server'; import { ILicense } from '../../../../licensing/server'; import { MlPluginSetup } from '../../../../ml/server'; import { SetupPlugins } from '../../plugin'; diff --git a/x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts b/x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts index 4599916092611..37ab77646b65c 100644 --- a/x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts +++ b/x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timelines/index.ts @@ -4,7 +4,6 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ -import Boom from '@hapi/boom'; import { pipe } from 'fp-ts/lib/pipeable'; import { fold } from 'fp-ts/lib/Either'; @@ -19,13 +18,14 @@ import { SetupPlugins } from '../../../../../plugin'; import { buildSiemResponse } from '../../../../detection_engine/routes/utils'; +import { CustomHttpRequestError } from '../../../../../utils/custom_http_request_error'; import { buildFrameworkRequest, escapeHatch, throwErrors } from '../../../utils/common'; import { getAllTimeline } from '../../../saved_object/timelines'; import { getTimelinesQuerySchema } from '../../../schemas/timelines'; export const getTimelinesRoute = ( router: SecuritySolutionPluginRouter, - config: ConfigType, + _config: ConfigType, security: SetupPlugins['security'] ) => { router.get( @@ -39,11 +39,12 @@ export const getTimelinesRoute = ( }, }, async (context, request, response) => { + const customHttpRequestError = (message: string) => new CustomHttpRequestError(message, 400); try { const frameworkRequest = await buildFrameworkRequest(context, security, request); const queryParams = pipe( getTimelinesQuerySchema.decode(request.query), - fold(throwErrors(Boom.badRequest), identity) + fold(throwErrors(customHttpRequestError), identity) ); const onlyUserFavorite = queryParams?.only_user_favorite === 'true' ? true : false; const pageSize = queryParams?.page_size ? parseInt(queryParams.page_size, 10) : null; diff --git a/x-pack/plugins/security_solution/server/search_strategy/jest.config.js b/x-pack/plugins/security_solution/server/search_strategy/jest.config.js index 93b9ddbf7a27d..22999d3c5820e 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/jest.config.js +++ b/x-pack/plugins/security_solution/server/search_strategy/jest.config.js @@ -15,4 +15,12 @@ module.exports = { collectCoverageFrom: [ '<rootDir>/x-pack/plugins/security_solution/server/search_strategy/**/*.{ts,tsx}', ], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts index d6e456e706673..ce640f7d367d6 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/index.ts index 7c318b24a7a35..987420f4bf4bd 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { HostAggEsItem, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.ts index bc405e89bf7a6..d3758df94074f 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts.dsl.ts @@ -6,7 +6,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { Direction, HostsRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts_entities.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts_entities.dsl.ts index 94124bc9567b7..73f35091ae093 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts_entities.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/all/query.all_hosts_entities.dsl.ts @@ -6,7 +6,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { Direction, HostsRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts index bdc4755c6a02b..6e43d771d1a02 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { AuthenticationHit, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx index fa78a8d59803d..e32d3592d3417 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/authentications/index.tsx @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/__mocks__/index.ts index ec8c7d7ca6866..0cb4f3dd90074 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, HostsQueries, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/index.ts index 562b7e4fbc167..7a4301185de4c 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/index.ts @@ -7,7 +7,7 @@ import { get } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { HostAggEsData, HostDetailsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/query.host_details.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/query.host_details.dsl.ts index 003149a9501bb..d34e9d9c84537 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/query.host_details.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/details/query.host_details.dsl.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { cloudFieldsMap, hostFieldsMap } from '../../../../../../common/ecs/ecs_fields'; import { HostDetailsRequestOptions } from '../../../../../../common/search_strategy/security_solution'; import { reduceFields } from '../../../../../utils/build_query/reduce_fields'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/authentications/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/authentications/index.ts index 88c8bed1dbceb..1512dc1b7da61 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/authentications/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/authentications/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { HostsKpiQueries, HostsKpiAuthenticationsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/hosts/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/hosts/index.ts index 6bf2ccd5a2739..a8082822b2775 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/hosts/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/hosts/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { HostsKpiQueries, HostsKpiHostsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/unique_ips/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/unique_ips/index.ts index 83849f886163e..b81d9a4d2322b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/unique_ips/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/kpi/unique_ips/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { HostsKpiQueries, HostsKpiUniqueIpsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts index fee9a49e42c48..bab799620ad6e 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/last_first_seen/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { HostFirstLastSeenStrategyResponse, HostsQueries, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/__mocks__/index.ts index 85bce797f52ae..33623c198913a 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { HostOverviewRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/index.ts index 5866695ab1641..19ea4c3bc37d2 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/index.ts @@ -7,7 +7,7 @@ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { HostsOverviewStrategyResponse, HostsQueries, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/query.overview_host.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/query.overview_host.dsl.ts index 92d194e78284b..7a215a2e781fa 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/query.overview_host.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/overview/query.overview_host.dsl.ts @@ -6,7 +6,7 @@ */ import { createQueryFilterClauses } from '../../../../../utils/build_query'; -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { HostOverviewRequestOptions } from '../../../../../../common/search_strategy/security_solution/hosts'; export const buildOverviewHostQuery = ({ diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/risk_score/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/risk_score/index.ts index 2a440ad614d93..a609a8b356f10 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/risk_score/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/risk_score/index.ts @@ -11,7 +11,7 @@ import { HostsQueries, HostsRiskScoreStrategyResponse, } from '../../../../../../common'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { inspectStringifyObject } from '../../../../../utils/build_query'; import { buildHostsRiskScoreQuery } from './query.hosts_risk.dsl'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/uncommon_processes/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/uncommon_processes/index.ts index 08e1f66019769..79cd2973a309b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/uncommon_processes/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/hosts/uncommon_processes/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { HostsQueries } from '../../../../../../common/search_strategy/security_solution'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/__mocks__/index.ts index c75b20f44035a..a357e1ee92165 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { MatrixHistogramStrategyResponse } from '../../../../../../common/search_strategy'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/index.ts index 6e3a6d8f8d4b0..db9fcc6067a74 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/matrix_histogram/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { FactoryQueryTypes, MatrixHistogramRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/__mocks__/index.ts index 158b63e6e8455..12452c7a79fbf 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkDetailsRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/index.ts index 6b7d7f7493b3c..c5689954942ec 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/details/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkDetailsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts index f1bae35f53ebb..ac5272b8d04fc 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/helpers.ts index a8dea7fdcefae..85f836463686b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/helpers.ts @@ -7,7 +7,7 @@ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkDnsBuckets, NetworkDnsEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/index.ts index 9a73fb30a074d..87bcc9a1225e8 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/dns/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts index f831b9f20e8ca..733b8584e77d4 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/helpers.ts index e8155a998f3f8..fb0217f0aebf8 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/helpers.ts @@ -7,7 +7,7 @@ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkHttpBuckets, NetworkHttpEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/index.ts index 259b45f436124..cada5212b812b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/http/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/dns/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/dns/index.ts index c5298c4498cda..b8a21d4791c57 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/dns/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/dns/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiDnsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/network_events/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/network_events/index.ts index ca29aac1bb6d5..ac3d01512428a 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/network_events/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/network_events/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiNetworkEventsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/tls_handshakes/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/tls_handshakes/index.ts index f911eaa0c406b..cb57d63f4f3a6 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/tls_handshakes/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/tls_handshakes/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiTlsHandshakesStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_flows/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_flows/index.ts index b5e6c3db35918..2581249d179f5 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_flows/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_flows/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiUniqueFlowsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_private_ips/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_private_ips/index.ts index ffe53c95efaf2..927e2a2fb5aee 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_private_ips/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/kpi/unique_private_ips/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkKpiQueries, NetworkKpiUniquePrivateIpsStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/__mocks__/index.ts index 0b5019d6fec9a..ad2a6dd7cdf73 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { NetworkOverviewRequestOptions, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/index.ts index 069125c6700eb..473a192b72920 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/index.ts @@ -7,7 +7,7 @@ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkQueries, NetworkOverviewStrategyResponse, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/query.overview_network.dsl.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/query.overview_network.dsl.ts index f911850c8cd94..d2b530c2b4a1e 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/query.overview_network.dsl.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/overview/query.overview_network.dsl.ts @@ -6,7 +6,7 @@ */ import { createQueryFilterClauses } from '../../../../../utils/build_query'; -import { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; +import type { ISearchRequestParams } from '../../../../../../../../../src/plugins/data/common'; import { NetworkOverviewRequestOptions } from '../../../../../../common/search_strategy/security_solution/network'; export const buildOverviewNetworkQuery = ({ diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/__mocks__/index.ts index c34ec2225ed95..4e5c3f4074b94 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/helpers.ts index 6b4fdd2827ae6..cabaae2e54b70 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/helpers.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkTlsBuckets, NetworkTlsEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/index.ts index 6a5e1e42abb9f..39029089a4306 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/tls/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts index 490ade26ad2a5..79ff8a74c220f 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/helpers.ts index e96df32513a7f..9540da3eb65f7 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/helpers.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkTopCountriesBuckets, NetworkTopCountriesEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/index.ts index 80c2050fd1423..e65ff6e4d1ad7 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_countries/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts index fa759661772d5..59150354613f0 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/helpers.ts index f078c21a7d845..f504727812760 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/helpers.ts @@ -8,7 +8,7 @@ import { getOr } from 'lodash/fp'; import { assertUnreachable } from '../../../../../../common/utility_types'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { Direction, GeoItem, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/index.ts index 31529f6771941..06fac027685bd 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/top_n_flow/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/__mocks__/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/__mocks__/index.ts index acb98b7e347bc..d36d38564392b 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/__mocks__/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../../src/plugins/data/common'; import { Direction, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/helpers.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/helpers.ts index b67facab8f237..0e1286c8c2fc0 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/helpers.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/helpers.ts @@ -6,7 +6,7 @@ */ import { get, getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { NetworkUsersBucketsItem, NetworkUsersEdges, diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/index.ts index 5a7409200f9a0..32778ba2bc665 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/network/users/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/types.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/types.ts index 4bdf97b489805..8fc1192fa95a6 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/types.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/types.ts @@ -5,20 +5,20 @@ * 2.0. */ -import { +import type { IScopedClusterClient, SavedObjectsClientContract, } from '../../../../../../../src/core/server'; -import { +import type { IEsSearchResponse, ISearchRequestParams, } from '../../../../../../../src/plugins/data/common'; -import { +import type { FactoryQueryTypes, StrategyRequestType, StrategyResponseType, } from '../../../../common/search_strategy/security_solution'; -import { EndpointAppContext } from '../../../endpoint/types'; +import type { EndpointAppContext } from '../../../endpoint/types'; export interface SecuritySolutionFactory<T extends FactoryQueryTypes> { buildDsl: (options: StrategyRequestType<T>) => ISearchRequestParams; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_rules/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_rules/index.ts index 39fa7193fd5d2..78a1cfe20d212 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_rules/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_rules/index.ts @@ -15,7 +15,7 @@ import { } from '../../../../../../common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { buildHostRulesQuery } from './query.host_rules.dsl'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { formatHostRulesData } from './helpers'; import { inspectStringifyObject } from '../../../../../utils/build_query'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_tactics/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_tactics/index.ts index 0ba8cbef1d144..c90ad5a311790 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_tactics/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/host_tactics/index.ts @@ -15,7 +15,7 @@ import { } from '../../../../../../common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { buildHostTacticsQuery } from './query.host_tactics.dsl'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { formatHostTacticsData } from './helpers'; import { inspectStringifyObject } from '../../../../../utils/build_query'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/risk_score/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/risk_score/index.ts index 6b3a956c9c1b7..8e65b53c3e68d 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/risk_score/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/risk_score/index.ts @@ -15,7 +15,7 @@ import { } from '../../../../../../common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { buildRiskScoreQuery } from './query.risk_score.dsl'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { formatRiskScoreData } from './helpers'; import { inspectStringifyObject } from '../../../../../utils/build_query'; diff --git a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/user_rules/index.ts b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/user_rules/index.ts index aa525f2c5b741..8a5099618d109 100644 --- a/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/user_rules/index.ts +++ b/x-pack/plugins/security_solution/server/search_strategy/security_solution/factory/ueba/user_rules/index.ts @@ -17,7 +17,7 @@ import { } from '../../../../../../common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; import { buildUserRulesQuery } from './query.user_rules.dsl'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { formatUserRulesData } from './helpers'; import { inspectStringifyObject } from '../../../../../utils/build_query'; diff --git a/x-pack/plugins/security_solution/server/usage/jest.config.js b/x-pack/plugins/security_solution/server/usage/jest.config.js index 82386fea363fe..193590dbff542 100644 --- a/x-pack/plugins/security_solution/server/usage/jest.config.js +++ b/x-pack/plugins/security_solution/server/usage/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/usage', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/server/usage/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/server/utils/custom_http_request_error.ts b/x-pack/plugins/security_solution/server/utils/custom_http_request_error.ts new file mode 100644 index 0000000000000..e4edaeb3e3dcf --- /dev/null +++ b/x-pack/plugins/security_solution/server/utils/custom_http_request_error.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +export class CustomHttpRequestError extends Error { + constructor(message: string, public readonly statusCode: number = 500) { + super(message); + // For debugging - capture name of subclasses + this.name = this.constructor.name; + this.message = message; + } +} diff --git a/x-pack/plugins/security_solution/server/utils/jest.config.js b/x-pack/plugins/security_solution/server/utils/jest.config.js index d3a2e138b789d..ceaa2d790da2f 100644 --- a/x-pack/plugins/security_solution/server/utils/jest.config.js +++ b/x-pack/plugins/security_solution/server/utils/jest.config.js @@ -13,4 +13,12 @@ module.exports = { '<rootDir>/target/kibana-coverage/jest/x-pack/plugins/security_solution/server/utils', coverageReporters: ['text', 'html'], collectCoverageFrom: ['<rootDir>/x-pack/plugins/security_solution/server/utils/**/*.{ts,tsx}'], + // See: https://github.com/elastic/kibana/issues/117255, the moduleNameMapper creates mocks to avoid memory leaks from kibana core. + moduleNameMapper: { + 'core/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/core.mock.ts', + 'task_manager/server$': + '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/task_manager.mock.ts', + 'alerting/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/alert.mock.ts', + 'actions/server$': '<rootDir>/x-pack/plugins/security_solution/server/__mocks__/action.mock.ts', + }, }; diff --git a/x-pack/plugins/security_solution/tsconfig.json b/x-pack/plugins/security_solution/tsconfig.json index 8f4d602e26461..d518eaf7f8243 100644 --- a/x-pack/plugins/security_solution/tsconfig.json +++ b/x-pack/plugins/security_solution/tsconfig.json @@ -27,6 +27,7 @@ { "path": "../../../src/plugins/usage_collection/tsconfig.json" }, { "path": "../../../src/plugins/telemetry/tsconfig.json" }, { "path": "../../../src/plugins/telemetry_management_section/tsconfig.json" }, + { "path": "../../../src/plugins/data_view_field_editor/tsconfig.json" }, { "path": "../actions/tsconfig.json" }, { "path": "../alerting/tsconfig.json" }, { "path": "../cases/tsconfig.json" }, diff --git a/x-pack/plugins/snapshot_restore/public/application/components/policy_form/policy_form.tsx b/x-pack/plugins/snapshot_restore/public/application/components/policy_form/policy_form.tsx index f3ce07cd732ca..185d3bb90bae5 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/policy_form/policy_form.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/policy_form/policy_form.tsx @@ -193,7 +193,7 @@ export const PolicyForm: React.FunctionComponent<Props> = ({ <EuiFlexItem grow={false}> <EuiButton fill={!isEditingManagedPolicy} - color={isEditingManagedPolicy ? 'warning' : 'secondary'} + color={isEditingManagedPolicy ? 'warning' : 'success'} iconType="check" onClick={() => savePolicy()} isLoading={isSaving} diff --git a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_two.tsx b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_two.tsx index 011b8e883316c..a985a6dee0bae 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_two.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/repository_form/step_two.tsx @@ -143,7 +143,7 @@ export const RepositoryFormStepTwo: React.FunctionComponent<Props> = ({ )} <EuiFlexItem grow={false}> <EuiButton - color={isManagedRepository ? 'warning' : 'secondary'} + color={isManagedRepository ? 'warning' : 'success'} iconType="check" onClick={onSave} fill={isManagedRepository ? false : true} diff --git a/x-pack/plugins/snapshot_restore/public/application/components/restore_snapshot_form/restore_snapshot_form.tsx b/x-pack/plugins/snapshot_restore/public/application/components/restore_snapshot_form/restore_snapshot_form.tsx index a288484421813..6608060d76a12 100644 --- a/x-pack/plugins/snapshot_restore/public/application/components/restore_snapshot_form/restore_snapshot_form.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/components/restore_snapshot_form/restore_snapshot_form.tsx @@ -158,7 +158,7 @@ export const RestoreSnapshotForm: React.FunctionComponent<Props> = ({ <EuiFlexItem grow={false}> <EuiButton fill - color="secondary" + color="success" iconType="check" onClick={() => executeRestore()} isLoading={isSaving} diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx index 0a283d406e5aa..33f83ca30c04e 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_details/policy_details.tsx @@ -307,7 +307,7 @@ export const PolicyDetails: React.FunctionComponent<Props> = ({ {policyName}{' '} <EuiButtonIcon iconType="refresh" - color="subdued" + color="text" aria-label={i18n.translate( 'xpack.snapshotRestore.policyDetails.reloadButtonAriaLabel', { defaultMessage: 'Reload' } diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx index 92ee611df61b7..d3c2d42d1b52f 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/policy_list/policy_table/policy_table.tsx @@ -359,7 +359,7 @@ export const PolicyTable: React.FunctionComponent<Props> = ({ toolsRight: [ <EuiButton key="reloadPolicies" - color="secondary" + color="success" iconType="refresh" onClick={reload} data-test-subj="reloadButton" diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/repository_details.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/repository_details.tsx index 41054fe3e6033..1b905123b799d 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/repository_details.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/repository_details.tsx @@ -25,8 +25,6 @@ import { EuiText, } from '@elastic/eui'; -import 'brace/theme/textmate'; - import { SectionError, Error } from '../../../../../shared_imports'; import { useCore, useServices } from '../../../../app_context'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/type_details/default_details.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/type_details/default_details.tsx index 8cb86fd4952fa..f829b990927b3 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/type_details/default_details.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_details/type_details/default_details.tsx @@ -5,6 +5,7 @@ * 2.0. */ +import 'react-ace'; import 'brace/theme/textmate'; import React, { Fragment } from 'react'; import { i18n } from '@kbn/i18n'; diff --git a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx index 3e605ade5f3c3..4b5a251237df2 100644 --- a/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx +++ b/x-pack/plugins/snapshot_restore/public/application/sections/home/repository_list/repository_table/repository_table.tsx @@ -238,7 +238,7 @@ export const RepositoryTable: React.FunctionComponent<Props> = ({ toolsRight: [ <EuiButton key="reloadButton" - color="secondary" + color="success" iconType="refresh" onClick={reload} data-test-subj="reloadButton" diff --git a/x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_footer.tsx b/x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_footer.tsx index 0cdff60555cef..c2000348973c2 100644 --- a/x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_footer.tsx +++ b/x-pack/plugins/spaces/public/copy_saved_objects_to_space/components/copy_to_space_flyout_footer.tsx @@ -173,7 +173,7 @@ export const CopyToSpaceFlyoutFooter = (props: Props) => { data-test-subj={`cts-summary-success-count`} title={summarizedResults.successCount} titleSize="s" - titleColor={initialCopyFinished ? 'secondary' : 'subdued'} + titleColor={initialCopyFinished ? 'success' : 'subdued'} isLoading={!initialCopyFinished} textAlign="center" description={ diff --git a/x-pack/plugins/spaces/public/management/spaces_management_app.test.tsx b/x-pack/plugins/spaces/public/management/spaces_management_app.test.tsx index aefff7fb3c76a..2c64f559602cc 100644 --- a/x-pack/plugins/spaces/public/management/spaces_management_app.test.tsx +++ b/x-pack/plugins/spaces/public/management/spaces_management_app.test.tsx @@ -18,7 +18,7 @@ jest.mock('./edit_space', () => ({ }, })); -import { coreMock, scopedHistoryMock } from 'src/core/public/mocks'; +import { coreMock, scopedHistoryMock, themeServiceMock } from 'src/core/public/mocks'; import { featuresPluginMock } from '../../../features/public/mocks'; import type { PluginsStart } from '../plugin'; @@ -51,6 +51,7 @@ async function mountApp(basePath: string, pathname: string, spaceId?: string) { element: container, setBreadcrumbs, history: scopedHistoryMock.create({ pathname }), + theme$: themeServiceMock.createTheme$(), }); return { unmount, container, setBreadcrumbs, docTitle: coreStart.chrome.docTitle }; diff --git a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx index 2740533e52715..45a2d3f4964b1 100644 --- a/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx +++ b/x-pack/plugins/spaces/public/share_saved_objects_to_space/components/share_mode_control.tsx @@ -139,7 +139,7 @@ export const ShareModeControl = (props: Props) => { onChange(updatedSpaceIds); }} legend={buttonGroupLegend} - color="secondary" + color="success" isFullWidth={true} isDisabled={!canShareToAllSpaces} /> diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx index 51c2f0471d486..ad624c345272d 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.test.tsx @@ -22,7 +22,6 @@ import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; import { EsQueryAlertParams } from './types'; jest.mock('../../../../../../src/plugins/kibana_react/public'); -jest.mock('../../../../../../src/plugins/es_ui_shared/public'); jest.mock('../../../../../../src/plugins/es_ui_shared/public', () => ({ XJson: { useXJsonMode: jest.fn().mockReturnValue({ @@ -31,26 +30,18 @@ jest.mock('../../../../../../src/plugins/es_ui_shared/public', () => ({ xJson: jest.fn(), }), }, + // Mocking EuiCodeEditor, which uses React Ace under the hood + // eslint-disable-next-line @typescript-eslint/no-explicit-any + EuiCodeEditor: (props: any) => ( + <input + data-test-subj="mockCodeEditor" + // eslint-disable-next-line @typescript-eslint/no-explicit-any + onChange={(syntheticEvent: any) => { + props.onChange(syntheticEvent.jsonString); + }} + /> + ), })); -jest.mock(''); -jest.mock('@elastic/eui', () => { - const original = jest.requireActual('@elastic/eui'); - - return { - ...original, - // Mocking EuiCodeEditor, which uses React Ace under the hood - // eslint-disable-next-line @typescript-eslint/no-explicit-any - EuiCodeEditor: (props: any) => ( - <input - data-test-subj="mockCodeEditor" - // eslint-disable-next-line @typescript-eslint/no-explicit-any - onChange={(syntheticEvent: any) => { - props.onChange(syntheticEvent.jsonString); - }} - /> - ), - }; -}); jest.mock('../../../../triggers_actions_ui/public', () => { const original = jest.requireActual('../../../../triggers_actions_ui/public'); return { diff --git a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx index 4cba80a9a541a..b98df85e0b8a0 100644 --- a/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx +++ b/x-pack/plugins/stack_alerts/public/alert_types/es_query/expression.tsx @@ -9,12 +9,11 @@ import React, { useState, Fragment, useEffect } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; -import 'brace/theme/github'; import { XJsonMode } from '@kbn/ace'; +import 'brace/theme/github'; import { EuiButtonEmpty, - EuiCodeEditor, EuiSpacer, EuiFormRow, EuiCallOut, @@ -25,7 +24,7 @@ import { import { DocLinksStart, HttpSetup } from 'kibana/public'; import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { XJson } from '../../../../../../src/plugins/es_ui_shared/public'; +import { XJson, EuiCodeEditor } from '../../../../../../src/plugins/es_ui_shared/public'; import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; import { getFields, diff --git a/x-pack/plugins/timelines/common/search_strategy/index_fields/index.ts b/x-pack/plugins/timelines/common/search_strategy/index_fields/index.ts index 3579a45d2fcbb..0b83cf28f9bb7 100644 --- a/x-pack/plugins/timelines/common/search_strategy/index_fields/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/index_fields/index.ts @@ -10,9 +10,9 @@ import type { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesW import type { IEsSearchRequest, IEsSearchResponse, + FieldSpec, } from '../../../../../../src/plugins/data/common'; import type { DocValueFields, Maybe } from '../common'; -import { FieldSpec } from '../../../../../../src/plugins/data/common'; export type BeatFieldsFactoryQueryType = 'beatFields'; diff --git a/x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts b/x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts index f9f6a2ea57917..c8b1c8ef43cec 100644 --- a/x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/timeline/events/details/index.ts @@ -7,7 +7,7 @@ import { JsonObject } from '@kbn/utility-types'; -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../common'; import { TimelineRequestOptionsPaginated } from '../..'; diff --git a/x-pack/plugins/timelines/common/search_strategy/timeline/events/eql/index.ts b/x-pack/plugins/timelines/common/search_strategy/timeline/events/eql/index.ts index 1e5164684bf6e..fee5014524fe7 100644 --- a/x-pack/plugins/timelines/common/search_strategy/timeline/events/eql/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/timeline/events/eql/index.ts @@ -6,7 +6,7 @@ */ import { EuiComboBoxOptionOption } from '@elastic/eui'; -import { +import type { EqlSearchStrategyRequest, EqlSearchStrategyResponse, } from '../../../../../../../../src/plugins/data/common'; diff --git a/x-pack/plugins/timelines/common/search_strategy/timeline/events/last_event_time/index.ts b/x-pack/plugins/timelines/common/search_strategy/timeline/events/last_event_time/index.ts index 8673359d230b4..95d82e605ef1b 100644 --- a/x-pack/plugins/timelines/common/search_strategy/timeline/events/last_event_time/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/timeline/events/last_event_time/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../src/plugins/data/common'; import { Inspect, Maybe } from '../../../common'; import { TimelineRequestBasicOptions } from '../..'; diff --git a/x-pack/plugins/timelines/common/search_strategy/timeline/index.ts b/x-pack/plugins/timelines/common/search_strategy/timeline/index.ts index f576392910495..c328ba49493f5 100644 --- a/x-pack/plugins/timelines/common/search_strategy/timeline/index.ts +++ b/x-pack/plugins/timelines/common/search_strategy/timeline/index.ts @@ -6,7 +6,7 @@ */ import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; +import type { IEsSearchRequest } from '../../../../../../src/plugins/data/common'; import { ESQuery } from '../../typed_json'; import { TimelineEventsQueries, diff --git a/x-pack/plugins/timelines/common/types/timeline/cells/index.ts b/x-pack/plugins/timelines/common/types/timeline/cells/index.ts index e922fed97a4df..c2f785d54c5d8 100644 --- a/x-pack/plugins/timelines/common/types/timeline/cells/index.ts +++ b/x-pack/plugins/timelines/common/types/timeline/cells/index.ts @@ -6,9 +6,8 @@ */ import { EuiDataGridCellValueElementProps } from '@elastic/eui'; +import type { Filter } from '@kbn/es-query'; import { RowRenderer } from '../../..'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Filter } from '../../../../../../../src/plugins/data/public'; import { Ecs } from '../../../ecs'; import { BrowserFields, TimelineNonEcsData } from '../../../search_strategy'; import { ColumnHeaderOptions } from '../columns'; diff --git a/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx b/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx index bd4cd2d7192df..88caa779d0592 100644 --- a/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx +++ b/x-pack/plugins/timelines/common/types/timeline/columns/index.tsx @@ -8,7 +8,7 @@ import { ReactNode } from 'react'; import { EuiDataGridColumn, EuiDataGridColumnCellActionProps } from '@elastic/eui'; -import { IFieldSubType } from '../../../../../../../src/plugins/data/common'; +import type { IFieldSubType } from '@kbn/es-query'; import { BrowserFields } from '../../../search_strategy/index_fields'; import { TimelineNonEcsData } from '../../../search_strategy/timeline'; import { Ecs } from '../../../ecs'; diff --git a/x-pack/plugins/timelines/common/types/timeline/store.ts b/x-pack/plugins/timelines/common/types/timeline/store.ts index 8e3a9fda9475c..db2f09e4f74c7 100644 --- a/x-pack/plugins/timelines/common/types/timeline/store.ts +++ b/x-pack/plugins/timelines/common/types/timeline/store.ts @@ -5,6 +5,7 @@ * 2.0. */ +import type { Filter } from '@kbn/es-query'; import { ColumnHeaderOptions, ColumnId, @@ -13,8 +14,6 @@ import { TimelineExpandedDetail, TimelineTypeLiteral, } from '.'; -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { Filter } from '../../../../../../src/plugins/data/public'; import { Direction } from '../../search_strategy'; import { DataProvider } from './data_provider'; diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.test.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.test.tsx index ad588b491d06a..621f23c186488 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.test.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.test.tsx @@ -7,7 +7,11 @@ import React from 'react'; import { mount } from 'enzyme'; -import { TestProviders, mockGetAllCasesSelectorModal } from '../../../../mock'; +import { + TestProviders, + mockGetAllCasesSelectorModal, + mockGetCreateCaseFlyout, +} from '../../../../mock'; import { AddToCaseAction } from './add_to_case_action'; import { SECURITY_SOLUTION_OWNER } from '../../../../../../cases/common'; import { AddToCaseActionButton } from './add_to_case_action_button'; @@ -68,7 +72,7 @@ describe('AddToCaseAction', () => { expect(wrapper.find(`[data-test-subj="add-existing-case-menu-item"]`).exists()).toBeTruthy(); }); - it('it opens the create case modal', () => { + it('it opens the create case flyout', () => { const wrapper = mount( <TestProviders> <AddToCaseActionButton {...props} /> @@ -78,7 +82,7 @@ describe('AddToCaseAction', () => { wrapper.find(`[data-test-subj="attach-alert-to-case-button"]`).first().simulate('click'); wrapper.find(`[data-test-subj="add-new-case-item"]`).first().simulate('click'); - expect(wrapper.find('[data-test-subj="create-case-flyout"]').exists()).toBeTruthy(); + expect(mockGetCreateCaseFlyout).toHaveBeenCalled(); }); it('it opens the all cases modal', () => { @@ -92,7 +96,7 @@ describe('AddToCaseAction', () => { wrapper.find(`[data-test-subj="attach-alert-to-case-button"]`).first().simulate('click'); wrapper.find(`[data-test-subj="add-existing-case-menu-item"]`).first().simulate('click'); - expect(wrapper.find('[data-test-subj="all-cases-modal"]')).toBeTruthy(); + expect(mockGetAllCasesSelectorModal).toHaveBeenCalled(); }); it('it set rule information as null when missing', () => { diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.tsx index c8517a26f6295..05b18da3293bd 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action.tsx @@ -12,12 +12,9 @@ import { TimelineItem } from '../../../../../common/'; import { useAddToCase, normalizedEventFields } from '../../../../hooks/use_add_to_case'; import { useKibana } from '../../../../../../../../src/plugins/kibana_react/public'; import { TimelinesStartServices } from '../../../../types'; -import { CreateCaseFlyout } from './create/flyout'; import { tGridActions } from '../../../../'; -import * as i18n from './translations'; export interface AddToCaseActionProps { - ariaLabel?: string; event?: TimelineItem; useInsertTimeline?: Function; casePermissions: { @@ -31,7 +28,6 @@ export interface AddToCaseActionProps { } const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ - ariaLabel = i18n.ACTION_ADD_TO_CASE_ARIA_LABEL, event, useInsertTimeline, casePermissions, @@ -46,15 +42,13 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ const { cases } = useKibana<TimelinesStartServices>().services; const { onCaseClicked, - goToCreateCase, onCaseSuccess, attachAlertToCase, - createCaseUrl, isAllCaseModalOpen, isCreateCaseFlyoutOpen, - } = useAddToCase({ event, useInsertTimeline, casePermissions, appId, owner, onClose }); + } = useAddToCase({ event, casePermissions, appId, owner, onClose }); - const getAllCasesSelectorModalProps = useMemo(() => { + const allCasesSelectorModalProps = useMemo(() => { const { ruleId, ruleName } = normalizedEventFields(event); return { alertData: { @@ -66,10 +60,6 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ }, owner, }, - createCaseNavigation: { - href: createCaseUrl, - onClick: goToCreateCase, - }, hooks: { useInsertTimeline, }, @@ -85,8 +75,6 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ casePermissions?.crud, onCaseSuccess, onCaseClicked, - createCaseUrl, - goToCreateCase, eventId, eventIndex, dispatch, @@ -99,19 +87,30 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ dispatch(tGridActions.setOpenAddToNewCase({ id: eventId, isOpen: false })); }, [dispatch, eventId]); + const createCaseFlyoutProps = useMemo(() => { + return { + afterCaseCreated: attachAlertToCase, + onClose: closeCaseFlyoutOpen, + onSuccess: onCaseSuccess, + useInsertTimeline, + owner: [owner], + disableAlerts, + userCanCrud: casePermissions?.crud ?? false, + }; + }, [ + attachAlertToCase, + closeCaseFlyoutOpen, + onCaseSuccess, + useInsertTimeline, + owner, + disableAlerts, + casePermissions, + ]); + return ( <> - {isCreateCaseFlyoutOpen && ( - <CreateCaseFlyout - afterCaseCreated={attachAlertToCase} - onCloseFlyout={closeCaseFlyoutOpen} - onSuccess={onCaseSuccess} - useInsertTimeline={useInsertTimeline} - owner={owner} - disableAlerts={disableAlerts} - /> - )} - {isAllCaseModalOpen && cases.getAllCasesSelectorModal(getAllCasesSelectorModalProps)} + {isCreateCaseFlyoutOpen && cases.getCreateCaseFlyout(createCaseFlyoutProps)} + {isAllCaseModalOpen && cases.getAllCasesSelectorModal(allCasesSelectorModalProps)} </> ); }; diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action_button.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action_button.tsx index 460f22d55061a..9757bd94b1746 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action_button.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_case_action_button.tsx @@ -20,7 +20,6 @@ import { ActionIconItem } from '../../action_icon_item'; import * as i18n from './translations'; const AddToCaseActionButtonComponent: React.FC<AddToCaseActionProps> = ({ - ariaLabel = i18n.ACTION_ADD_TO_CASE_ARIA_LABEL, event, useInsertTimeline, casePermissions, @@ -71,16 +70,16 @@ const AddToCaseActionButtonComponent: React.FC<AddToCaseActionProps> = ({ () => ( <EuiToolTip data-test-subj="attach-alert-to-case-tooltip" content={tooltipContext}> <EuiButtonIcon - aria-label={ariaLabel} data-test-subj="attach-alert-to-case-button" size="s" iconType="folderClosed" onClick={openPopover} isDisabled={isDisabled} + aria-label={tooltipContext} /> </EuiToolTip> ), - [ariaLabel, isDisabled, openPopover, tooltipContext] + [isDisabled, openPopover, tooltipContext] ); return ( diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_existing_case_button.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_existing_case_button.tsx index a1fdfe1e8dfa7..a9238c95ee916 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_existing_case_button.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_existing_case_button.tsx @@ -12,7 +12,11 @@ import { useAddToCase } from '../../../../hooks/use_add_to_case'; import { AddToCaseActionProps } from './add_to_case_action'; import * as i18n from './translations'; -const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ +interface AddToCaseActionButtonProps extends AddToCaseActionProps { + ariaLabel?: string; +} + +const AddToCaseActionButtonComponent: React.FC<AddToCaseActionButtonProps> = ({ ariaLabel = i18n.ACTION_ADD_TO_CASE_ARIA_LABEL, event, useInsertTimeline, @@ -47,7 +51,7 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ ); }; -export const AddToExistingCaseButton = memo(AddToCaseActionComponent); +export const AddToExistingCaseButton = memo(AddToCaseActionButtonComponent); // eslint-disable-next-line import/no-default-export export default AddToExistingCaseButton; diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_new_case_button.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_new_case_button.tsx index 5c4be89f56d88..c2e2302355f5f 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_new_case_button.tsx +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/add_to_new_case_button.tsx @@ -12,7 +12,11 @@ import { useAddToCase } from '../../../../hooks/use_add_to_case'; import { AddToCaseActionProps } from './add_to_case_action'; import * as i18n from './translations'; -const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ +export interface AddToNewCaseButtonProps extends AddToCaseActionProps { + ariaLabel?: string; +} + +const AddToNewCaseButtonComponent: React.FC<AddToNewCaseButtonProps> = ({ ariaLabel = i18n.ACTION_ADD_TO_CASE_ARIA_LABEL, event, useInsertTimeline, @@ -48,7 +52,7 @@ const AddToCaseActionComponent: React.FC<AddToCaseActionProps> = ({ ); }; -export const AddToNewCaseButton = memo(AddToCaseActionComponent); +export const AddToNewCaseButton = memo(AddToNewCaseButtonComponent); // eslint-disable-next-line import/no-default-export export default AddToNewCaseButton; diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.test.tsx b/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.test.tsx deleted file mode 100644 index f1176f612725a..0000000000000 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/create/flyout.test.tsx +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0; you may not use this file except in compliance with the Elastic License - * 2.0. - */ - -import React from 'react'; -import { mount } from 'enzyme'; - -import { CreateCaseFlyout } from './flyout'; -import { TestProviders } from '../../../../../mock'; - -const onCloseFlyout = jest.fn(); -const onSuccess = jest.fn(); -const defaultProps = { - onCloseFlyout, - onSuccess, - owner: 'securitySolution', -}; - -describe('CreateCaseFlyout', () => { - beforeEach(() => { - jest.resetAllMocks(); - }); - - it('renders', () => { - const wrapper = mount( - <TestProviders> - <CreateCaseFlyout {...defaultProps} /> - </TestProviders> - ); - - expect(wrapper.find(`[data-test-subj='create-case-flyout']`).exists()).toBeTruthy(); - }); - - it('Closing modal calls onCloseCaseModal', () => { - const wrapper = mount( - <TestProviders> - <CreateCaseFlyout {...defaultProps} /> - </TestProviders> - ); - - wrapper.find(`[data-test-subj='euiFlyoutCloseButton']`).first().simulate('click'); - expect(onCloseFlyout).toBeCalled(); - }); -}); diff --git a/x-pack/plugins/timelines/public/components/actions/timeline/cases/translations.ts b/x-pack/plugins/timelines/public/components/actions/timeline/cases/translations.ts index 314bcdb4d4f9d..df0dfb9048ace 100644 --- a/x-pack/plugins/timelines/public/components/actions/timeline/cases/translations.ts +++ b/x-pack/plugins/timelines/public/components/actions/timeline/cases/translations.ts @@ -73,7 +73,3 @@ export const UNSUPPORTED_EVENTS_MSG = i18n.translate( defaultMessage: 'This event cannot be attached to a case', } ); - -export const CREATE_TITLE = i18n.translate('xpack.timelines.cases.caseView.create', { - defaultMessage: 'Create new case', -}); diff --git a/x-pack/plugins/timelines/public/components/hover_actions/actions/types.ts b/x-pack/plugins/timelines/public/components/hover_actions/actions/types.ts index b6c9e794625e4..b24b1fdf8501a 100644 --- a/x-pack/plugins/timelines/public/components/hover_actions/actions/types.ts +++ b/x-pack/plugins/timelines/public/components/hover_actions/actions/types.ts @@ -6,7 +6,7 @@ */ import { EuiButtonEmpty, EuiButtonIcon, EuiButtonIconPropsForButton } from '@elastic/eui'; -import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import type { FilterManager } from '../../../../../../../src/plugins/data/public'; export interface FilterValueFnArgs { /** `Component` is only used with `EuiDataGrid`; the grid keeps a reference to `Component` for show / hide functionality */ diff --git a/x-pack/plugins/timelines/public/components/hover_actions/utils.ts b/x-pack/plugins/timelines/public/components/hover_actions/utils.ts index f34506eaa795e..019253a280b62 100644 --- a/x-pack/plugins/timelines/public/components/hover_actions/utils.ts +++ b/x-pack/plugins/timelines/public/components/hover_actions/utils.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { Filter } from '../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; export const getAdditionalScreenReaderOnlyContext = ({ field, diff --git a/x-pack/plugins/timelines/public/components/t_grid/body/helpers.test.tsx b/x-pack/plugins/timelines/public/components/t_grid/body/helpers.test.tsx index 05a63216d2e22..3ce066e02731e 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/body/helpers.test.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/body/helpers.test.tsx @@ -11,6 +11,7 @@ import { ColumnHeaderOptions } from '../../../../common'; import { Ecs } from '../../../../common/ecs'; import { allowSorting, + hasCellActions, mapSortDirectionToDirection, mapSortingColumns, stringifyEvent, @@ -420,4 +421,20 @@ describe('helpers', () => { expect(mockedSetCellProps).toBeCalledWith({ style: { backgroundColor: 'inherit' } }); }); }); + + describe('hasCellActions', () => { + const columnId = '@timestamp'; + + test('it returns false when the columnId is included in `disabledCellActions` ', () => { + const disabledCellActions = ['foo', '@timestamp', 'bar', 'baz']; // includes @timestamp + + expect(hasCellActions({ columnId, disabledCellActions })).toBe(false); + }); + + test('it returns true when the columnId is NOT included in `disabledCellActions` ', () => { + const disabledCellActions = ['foo', 'bar', 'baz']; + + expect(hasCellActions({ columnId, disabledCellActions })).toBe(true); + }); + }); }); diff --git a/x-pack/plugins/timelines/public/components/t_grid/body/helpers.tsx b/x-pack/plugins/timelines/public/components/t_grid/body/helpers.tsx index b4374123861ba..65b00af0fc13c 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/body/helpers.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/body/helpers.tsx @@ -239,3 +239,12 @@ export const addBuildingBlockStyle = ( }); } }; + +/** Returns true when the specified column has cell actions */ +export const hasCellActions = ({ + columnId, + disabledCellActions, +}: { + columnId: string; + disabledCellActions: string[]; +}) => !disabledCellActions.includes(columnId); diff --git a/x-pack/plugins/timelines/public/components/t_grid/body/index.test.tsx b/x-pack/plugins/timelines/public/components/t_grid/body/index.test.tsx index 5a7ae6e407b0b..9e85ff5f6cde9 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/body/index.test.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/body/index.test.tsx @@ -68,6 +68,8 @@ describe('Body', () => { clearSelected: jest.fn() as unknown as StatefulBodyProps['clearSelected'], columnHeaders: defaultHeaders, data: mockTimelineData, + defaultCellActions: [], + disabledCellActions: ['signal.rule.risk_score', 'signal.reason'], excludedRowRendererIds: [], id: 'timeline-test', isSelectAllChecked: false, @@ -156,7 +158,7 @@ describe('Body', () => { ).toEqual(mockTimelineData[0].ecs.timestamp); }); - test("timestamp column doesn't render cell actions", () => { + test('timestamp column renders cell actions', () => { const headersJustTimestamp = defaultHeaders.filter((h) => h.id === '@timestamp'); const testProps = { ...props, @@ -176,7 +178,7 @@ describe('Body', () => { .first() .prop<EuiDataGridColumn[]>('columns') .find((c) => c.id === '@timestamp')?.cellActions - ).toBeUndefined(); + ).toBeDefined(); }); test("signal.rule.risk_score column doesn't render cell actions", () => { diff --git a/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx b/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx index 6f4fc6217ecdf..be9e30a62c508 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/body/index.tsx @@ -36,6 +36,7 @@ import { ALERT_RULE_CONSUMER, ALERT_RULE_PRODUCER, } from '@kbn/rule-data-utils/technical_field_names'; +import { Filter } from '@kbn/es-query'; import { TGridCellAction, BulkActionsProp, @@ -58,6 +59,7 @@ import { getColumnHeaders } from './column_headers/helpers'; import { addBuildingBlockStyle, getEventIdToDataMapping, + hasCellActions, mapSortDirectionToDirection, mapSortingColumns, } from './helpers'; @@ -77,7 +79,6 @@ import type { EuiTheme } from '../../../../../../../src/plugins/kibana_react/com import { ViewSelection } from '../event_rendered_view/selector'; import { EventRenderedView } from '../event_rendered_view'; import { useDataGridHeightHack } from './height_hack'; -import { Filter } from '../../../../../../../src/plugins/data/public'; import { REMOVE_COLUMN } from './column_headers/translations'; const StatefulAlertStatusBulkActions = lazy( @@ -92,6 +93,7 @@ interface OwnProps { createFieldComponent?: CreateFieldComponentType; data: TimelineItem[]; defaultCellActions?: TGridCellAction[]; + disabledCellActions: string[]; filters?: Filter[]; filterQuery?: string; filterStatus?: AlertStatus; @@ -145,16 +147,6 @@ const EuiDataGridContainer = styled.div<{ hideLastPage: boolean }>` } `; -// TODO: accept extra list of column ids without actions from callsites -const FIELDS_WITHOUT_CELL_ACTIONS = [ - '@timestamp', - 'signal.rule.risk_score', - 'signal.reason', - 'kibana.alert.duration.us', - 'kibana.alert.reason', -]; -const hasCellActions = (columnId?: string) => - columnId && FIELDS_WITHOUT_CELL_ACTIONS.indexOf(columnId) < 0; const transformControlColumns = ({ columnHeaders, controlColumns, @@ -182,6 +174,7 @@ const transformControlColumns = ({ controlColumns: ControlColumnProps[]; createFieldComponent?: CreateFieldComponentType; data: TimelineItem[]; + disabledCellActions: string[]; isEventViewer?: boolean; loadingEventIds: string[]; onRowSelected: OnRowSelected; @@ -311,6 +304,7 @@ export const BodyComponent = React.memo<StatefulBodyProps>( createFieldComponent, data, defaultCellActions, + disabledCellActions, filterQuery, filters, filterStatus, @@ -621,6 +615,7 @@ export const BodyComponent = React.memo<StatefulBodyProps>( controlColumns, createFieldComponent, data, + disabledCellActions, isEventViewer, loadingEventIds, onRowSelected, @@ -647,6 +642,7 @@ export const BodyComponent = React.memo<StatefulBodyProps>( columnHeaders, createFieldComponent, data, + disabledCellActions, isEventViewer, id, loadingEventIds, @@ -692,7 +688,10 @@ export const BodyComponent = React.memo<StatefulBodyProps>( }, ], }, - ...(hasCellActions(header.id) + ...(hasCellActions({ + columnId: header.id, + disabledCellActions, + }) ? { cellActions: header.tGridCellActions?.map(buildAction) ?? @@ -701,7 +700,16 @@ export const BodyComponent = React.memo<StatefulBodyProps>( : {}), }; }), - [columnHeaders, defaultCellActions, browserFields, data, pageSize, id, dispatch] + [ + browserFields, + columnHeaders, + data, + defaultCellActions, + disabledCellActions, + dispatch, + id, + pageSize, + ] ); const renderTGridCellValue = useMemo(() => { diff --git a/x-pack/plugins/timelines/public/components/t_grid/event_rendered_view/index.tsx b/x-pack/plugins/timelines/public/components/t_grid/event_rendered_view/index.tsx index 6267c9d3a4953..3caa53988c005 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/event_rendered_view/index.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/event_rendered_view/index.tsx @@ -115,7 +115,7 @@ const EventRenderedViewComponent = ({ field: 'actions', name: ActionTitle, truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: unknown, item: unknown) => { const alertId = get(item, '_id'); const rowIndex = events.findIndex((evt) => evt._id === alertId); @@ -147,7 +147,7 @@ const EventRenderedViewComponent = ({ defaultMessage: 'Timestamp', }), truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: unknown, item: TimelineItem) => { const timestamp = get(item, `ecs.timestamp`); return <PreferenceFormattedDate value={timestamp} />; @@ -159,7 +159,7 @@ const EventRenderedViewComponent = ({ defaultMessage: 'Rule', }), truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: unknown, item: TimelineItem) => { const ruleName = get(item, `ecs.signal.rule.name`); /* `ecs.${ALERT_RULE_NAME}`*/ const ruleId = get(item, `ecs.signal.rule.id`); /* `ecs.${ALERT_RULE_ID}`*/ @@ -172,7 +172,7 @@ const EventRenderedViewComponent = ({ defaultMessage: 'Event Summary', }), truncateText: false, - hideForMobile: false, + mobileOptions: { show: true }, render: (name: unknown, item: TimelineItem) => { const ecsData = get(item, 'ecs'); const reason = get(item, `ecs.signal.reason`); /* `ecs.${ALERT_REASON}`*/ diff --git a/x-pack/plugins/timelines/public/components/t_grid/helpers.test.tsx b/x-pack/plugins/timelines/public/components/t_grid/helpers.test.tsx index 1998bef233748..535c856d51e8f 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/helpers.test.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/helpers.test.tsx @@ -6,7 +6,7 @@ */ import { cloneDeep } from 'lodash/fp'; -import { esFilters, EsQueryConfig, Filter } from '../../../../../../src/plugins/data/public'; +import { Filter, EsQueryConfig, FilterStateStore } from '@kbn/es-query'; import { DataProviderType } from '../../../common/types/timeline'; import { mockBrowserFields, mockDataProviders, mockIndexPattern } from '../../mock'; @@ -267,7 +267,7 @@ describe('Combined Queries', () => { browserFields: mockBrowserFields, filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -279,7 +279,7 @@ describe('Combined Queries', () => { query: { match_phrase: { 'event.category': 'file' } }, }, { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, @@ -495,7 +495,7 @@ describe('Combined Queries', () => { }, }, $state: { - store: esFilters.FilterStateStore.APP_STATE, + store: FilterStateStore.APP_STATE, }, } as Filter, ], @@ -517,7 +517,7 @@ describe('Combined Queries', () => { browserFields: mockBrowserFields, filters: [ { - $state: { store: esFilters.FilterStateStore.APP_STATE }, + $state: { store: FilterStateStore.APP_STATE }, meta: { alias: null, disabled: false, diff --git a/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx b/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx index b83c1570d9073..337b45810cd98 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/integrated/index.tsx @@ -35,7 +35,9 @@ import type { RowRenderer, AlertStatus, } from '../../../../common/types/timeline'; -import { esQuery, DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; + +import type { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { useDeepEqualSelector } from '../../../hooks/use_selector'; import { defaultHeaders } from '../body/column_headers/default_headers'; import { buildCombinedQuery, getCombinedFilterQuery, resolverIsShowing } from '../helpers'; @@ -100,6 +102,7 @@ export interface TGridIntegratedProps { dataProviders: DataProvider[]; defaultCellActions?: TGridCellAction[]; deletedEventIds: Readonly<string[]>; + disabledCellActions: string[]; docValueFields: DocValueFields[]; end: string; entityType: EntityType; @@ -142,6 +145,7 @@ const TGridIntegratedComponent: React.FC<TGridIntegratedProps> = ({ dataProviders, defaultCellActions, deletedEventIds, + disabledCellActions, docValueFields, end, entityType, @@ -190,7 +194,7 @@ const TGridIntegratedComponent: React.FC<TGridIntegratedProps> = ({ const justTitle = useMemo(() => <TitleText data-test-subj="title">{title}</TitleText>, [title]); const combinedQueries = buildCombinedQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), dataProviders, indexPattern, browserFields, @@ -247,7 +251,7 @@ const TGridIntegratedComponent: React.FC<TGridIntegratedProps> = ({ const filterQuery = useMemo( () => getCombinedFilterQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), browserFields, dataProviders, filters, @@ -351,6 +355,7 @@ const TGridIntegratedComponent: React.FC<TGridIntegratedProps> = ({ createFieldComponent={createFieldComponent} data={nonDeletedEvents} defaultCellActions={defaultCellActions} + disabledCellActions={disabledCellActions} filterQuery={filterQuery} filters={filters} filterStatus={filterStatus} diff --git a/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx b/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx index 1cb13a9d6cbb9..cc065c505537a 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/standalone/index.tsx @@ -10,6 +10,7 @@ import React, { useEffect, useMemo, useState, useRef } from 'react'; import styled from 'styled-components'; import { useDispatch, useSelector } from 'react-redux'; import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { Filter, Query } from '@kbn/es-query'; import { useKibana } from '../../../../../../../src/plugins/kibana_react/public'; import { Direction, EntityType } from '../../../../common/search_strategy'; import type { CoreStart } from '../../../../../../../src/core/public'; @@ -25,12 +26,8 @@ import type { BulkActionsProp, AlertStatus, } from '../../../../common/types/timeline'; -import { - esQuery, - Filter, - Query, - DataPublicPluginStart, -} from '../../../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../../../src/plugins/data/public'; +import { getEsQueryConfig } from '../../../../../../../src/plugins/data/common'; import { useDeepEqualSelector } from '../../../hooks/use_selector'; import { defaultHeaders } from '../body/column_headers/default_headers'; import { combineQueries, getCombinedFilterQuery } from '../helpers'; @@ -89,6 +86,7 @@ export interface TGridStandaloneProps { columns: ColumnHeaderOptions[]; defaultCellActions?: TGridCellAction[]; deletedEventIds: Readonly<string[]>; + disabledCellActions: string[]; end: string; entityType?: EntityType; loadingText: React.ReactNode; @@ -129,6 +127,7 @@ const TGridStandaloneComponent: React.FC<TGridStandaloneProps> = ({ columns, defaultCellActions, deletedEventIds, + disabledCellActions, end, entityType = 'alerts', loadingText, @@ -176,7 +175,7 @@ const TGridStandaloneComponent: React.FC<TGridStandaloneProps> = ({ const combinedQueries = useMemo( () => combineQueries({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), dataProviders: EMPTY_DATA_PROVIDERS, indexPattern: indexPatterns, browserFields, @@ -290,7 +289,7 @@ const TGridStandaloneComponent: React.FC<TGridStandaloneProps> = ({ const filterQuery = useMemo( () => getCombinedFilterQuery({ - config: esQuery.getEsQueryConfig(uiSettings), + config: getEsQueryConfig(uiSettings), dataProviders: EMPTY_DATA_PROVIDERS, indexPattern: indexPatterns, browserFields, @@ -384,6 +383,7 @@ const TGridStandaloneComponent: React.FC<TGridStandaloneProps> = ({ browserFields={browserFields} data={nonDeletedEvents} defaultCellActions={defaultCellActions} + disabledCellActions={disabledCellActions} filterQuery={filterQuery} hasAlertsCrud={hasAlertsCrud} hasAlertsCrudPermissions={hasAlertsCrudPermissions} diff --git a/x-pack/plugins/timelines/public/components/t_grid/toolbar/fields_browser/search.tsx b/x-pack/plugins/timelines/public/components/t_grid/toolbar/fields_browser/search.tsx index 4ff41bc7e4339..f0f8c80fb0b85 100644 --- a/x-pack/plugins/timelines/public/components/t_grid/toolbar/fields_browser/search.tsx +++ b/x-pack/plugins/timelines/public/components/t_grid/toolbar/fields_browser/search.tsx @@ -57,12 +57,15 @@ const CountRow = React.memo<Pick<Props, 'filteredBrowserFields'>>(({ filteredBro CountRow.displayName = 'CountRow'; +const inputRef = (node: HTMLInputElement | null) => node?.focus(); + export const Search = React.memo<Props>( ({ isSearching, filteredBrowserFields, onSearchInputChange, searchInput, timelineId }) => ( <> <EuiFieldSearch className={getFieldBrowserSearchInputClassName(timelineId)} data-test-subj="field-search" + inputRef={inputRef} isLoading={isSearching} onChange={onSearchInputChange} placeholder={i18n.FILTER_PLACEHOLDER} diff --git a/x-pack/plugins/timelines/public/container/index.tsx b/x-pack/plugins/timelines/public/container/index.tsx index 8a6c4ac53faa5..28e4a5ffda4af 100644 --- a/x-pack/plugins/timelines/public/container/index.tsx +++ b/x-pack/plugins/timelines/public/container/index.tsx @@ -14,11 +14,8 @@ import { Subscription } from 'rxjs'; import { MappingRuntimeFields } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { tGridActions } from '..'; -import { - DataPublicPluginStart, - isCompleteResponse, - isErrorResponse, -} from '../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../src/plugins/data/public'; +import { isCompleteResponse, isErrorResponse } from '../../../../../src/plugins/data/common'; import { Direction, TimelineFactoryQueryTypes, @@ -278,6 +275,7 @@ export const useTimelineEvents = ({ filterQuery: createFilter(filterQuery), querySize: limit, sort, + runtimeMappings, timerange: { interval: '12h', from: startDate, diff --git a/x-pack/plugins/timelines/public/container/source/index.tsx b/x-pack/plugins/timelines/public/container/source/index.tsx index f66eedb94f881..f13e48d82ac80 100644 --- a/x-pack/plugins/timelines/public/container/source/index.tsx +++ b/x-pack/plugins/timelines/public/container/source/index.tsx @@ -21,11 +21,9 @@ import { } from '../../../common'; import * as i18n from './translations'; -import { - DataPublicPluginStart, - isCompleteResponse, - isErrorResponse, -} from '../../../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../../../src/plugins/data/public'; +import { isCompleteResponse, isErrorResponse } from '../../../../../../src/plugins/data/common'; + import { useKibana } from '../../../../../../src/plugins/kibana_react/public'; import { useAppToasts } from '../../hooks/use_app_toasts'; diff --git a/x-pack/plugins/timelines/public/hooks/use_add_to_case.ts b/x-pack/plugins/timelines/public/hooks/use_add_to_case.ts index c20e6e8370b50..730243c4f1219 100644 --- a/x-pack/plugins/timelines/public/hooks/use_add_to_case.ts +++ b/x-pack/plugins/timelines/public/hooks/use_add_to_case.ts @@ -6,7 +6,6 @@ */ import { get, isEmpty } from 'lodash/fp'; import { useState, useCallback, useMemo, SyntheticEvent } from 'react'; -import { useLocation } from 'react-router-dom'; import { useDispatch } from 'react-redux'; import { ALERT_RULE_NAME, ALERT_RULE_UUID } from '@kbn/rule-data-utils/technical_field_names'; import { useKibana } from '../../../../../src/plugins/kibana_react/public'; @@ -17,21 +16,18 @@ import { tGridActions } from '../store/t_grid'; import { useDeepEqualSelector } from './use_selector'; import { createUpdateSuccessToaster } from '../components/actions/timeline/cases/helpers'; import { AddToCaseActionProps } from '../components/actions'; +import { CasesDeepLinkId, generateCaseViewPath } from '../../../cases/public'; interface UseAddToCase { addNewCaseClick: () => void; addExistingCaseClick: () => void; onCaseClicked: (theCase?: Case | SubCase) => void; - goToCreateCase: ( - arg: MouseEvent | React.MouseEvent<Element, MouseEvent> | null - ) => void | Promise<void>; onCaseSuccess: (theCase: Case) => Promise<void>; attachAlertToCase: ( theCase: Case, postComment?: ((arg: PostCommentArg) => Promise<void>) | undefined, updateCase?: ((newCase: Case) => void) | undefined ) => Promise<void>; - createCaseUrl: string; isAllCaseModalOpen: boolean; isDisabled: boolean; userCanCrud: boolean; @@ -42,27 +38,6 @@ interface UseAddToCase { isCreateCaseFlyoutOpen: boolean; } -const appendSearch = (search?: string) => - isEmpty(search) ? '' : `${search?.startsWith('?') ? search : `?${search}`}`; - -const getCreateCaseUrl = (search?: string | null) => `/create${appendSearch(search ?? undefined)}`; - -const getCaseDetailsUrl = ({ - id, - search, - subCaseId, -}: { - id: string; - search?: string | null; - subCaseId?: string; -}) => { - if (subCaseId) { - return `/${encodeURIComponent(id)}/sub-cases/${encodeURIComponent(subCaseId)}${appendSearch( - search ?? undefined - )}`; - } - return `/${encodeURIComponent(id)}${appendSearch(search ?? undefined)}`; -}; interface PostCommentArg { caseId: string; data: { @@ -78,7 +53,6 @@ interface PostCommentArg { export const useAddToCase = ({ event, - useInsertTimeline, casePermissions, appId, owner, @@ -111,42 +85,36 @@ export const useAddToCase = ({ } }, [timelineById]); const { - application: { navigateToApp, getUrlForApp, navigateToUrl }, + application: { navigateToApp }, notifications: { toasts }, } = useKibana<TimelinesStartServices>().services; const [isPopoverOpen, setIsPopoverOpen] = useState(false); const openPopover = useCallback(() => setIsPopoverOpen(true), []); const closePopover = useCallback(() => setIsPopoverOpen(false), []); - const isAlert = useMemo(() => { + + const isEventSupported = useMemo(() => { if (event !== undefined) { - const data = [...event.data]; - return data.some(({ field }) => field === 'kibana.alert.rule.uuid'); + if (event.data.some(({ field }) => field === 'kibana.alert.rule.uuid')) { + return true; + } + return !isEmpty(event.ecs.signal?.rule?.id ?? event.ecs.kibana?.alert?.rule?.uuid); } else { return false; } }, [event]); - const isSecurityAlert = useMemo(() => { - return !isEmpty(event?.ecs.signal?.rule?.id ?? event?.ecs.kibana?.alert?.rule?.uuid); - }, [event]); - const isEventSupported = isSecurityAlert || isAlert; + const userCanCrud = casePermissions?.crud ?? false; const isDisabled = !userCanCrud || !isEventSupported; const onViewCaseClick = useCallback( (id) => { - const caseDetailsUrl = getCaseDetailsUrl({ id }); - const appUrl = getUrlForApp(appId); - const fullCaseUrl = `${appUrl}/cases/${caseDetailsUrl}`; - navigateToUrl(fullCaseUrl); + navigateToApp(appId, { + deepLinkId: CasesDeepLinkId.cases, + path: generateCaseViewPath({ detailName: id }), + }); }, - [navigateToUrl, appId, getUrlForApp] - ); - const currentSearch = useLocation().search; - const urlSearch = useMemo(() => currentSearch, [currentSearch]); - const createCaseUrl = useMemo( - () => getUrlForApp('cases') + getCreateCaseUrl(urlSearch), - [getUrlForApp, urlSearch] + [navigateToApp, appId] ); const attachAlertToCase = useCallback( @@ -184,17 +152,6 @@ export const useAddToCase = ({ [onViewCaseClick, toasts, dispatch, eventId] ); - const goToCreateCase = useCallback( - async (ev) => { - ev.preventDefault(); - return navigateToApp(appId, { - deepLinkId: appId === 'securitySolutionUI' ? 'case' : 'cases', - path: getCreateCaseUrl(urlSearch), - }); - }, - [navigateToApp, urlSearch, appId] - ); - const onCaseClicked = useCallback( (theCase?: Case | SubCase) => { /** @@ -228,10 +185,8 @@ export const useAddToCase = ({ addNewCaseClick, addExistingCaseClick, onCaseClicked, - goToCreateCase, onCaseSuccess, attachAlertToCase, - createCaseUrl, isAllCaseModalOpen, isDisabled, userCanCrud, diff --git a/x-pack/plugins/timelines/public/hooks/use_app_toasts.ts b/x-pack/plugins/timelines/public/hooks/use_app_toasts.ts index 8b4bf582e6d83..8b05aa6df27a7 100644 --- a/x-pack/plugins/timelines/public/hooks/use_app_toasts.ts +++ b/x-pack/plugins/timelines/public/hooks/use_app_toasts.ts @@ -11,7 +11,7 @@ import { isAppError, isKibanaError, isSecurityAppError } from '@kbn/securitysolu import type { AppError } from '@kbn/securitysolution-t-grid'; import { useKibana } from '../../../../../src/plugins/kibana_react/public'; -import { +import type { ErrorToastOptions, ToastsStart, Toast, diff --git a/x-pack/plugins/timelines/public/mock/kibana_react.mock.ts b/x-pack/plugins/timelines/public/mock/kibana_react.mock.ts index 294ad088cebdc..1121ca2a6e11f 100644 --- a/x-pack/plugins/timelines/public/mock/kibana_react.mock.ts +++ b/x-pack/plugins/timelines/public/mock/kibana_react.mock.ts @@ -13,6 +13,7 @@ import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/p import { EuiTheme } from '../../../../../src/plugins/kibana_react/common'; import { CoreStart } from '../../../../../src/core/public'; +export const mockGetCreateCaseFlyout = jest.fn(); export const mockGetAllCasesSelectorModal = jest.fn(); export const mockNavigateToApp = jest.fn(); @@ -26,6 +27,7 @@ export const createStartServicesMock = (): CoreStart => { getConfigureCases: jest.fn(), getCreateCase: jest.fn(), getRecentCases: jest.fn(), + getCreateCaseFlyout: mockGetCreateCaseFlyout, getAllCasesSelectorModal: mockGetAllCasesSelectorModal, }, application: { diff --git a/x-pack/plugins/timelines/public/mock/t_grid.tsx b/x-pack/plugins/timelines/public/mock/t_grid.tsx index e341803835e24..d1ec16d0be536 100644 --- a/x-pack/plugins/timelines/public/mock/t_grid.tsx +++ b/x-pack/plugins/timelines/public/mock/t_grid.tsx @@ -92,6 +92,7 @@ export const tGridIntegratedProps: TGridIntegratedProps = { columns: columnHeaders, dataProviders: mockDataProviders, deletedEventIds: [], + disabledCellActions: [], docValueFields: mockDocValueFields, end: '2021-08-19T00:30:00.000Z', entityType: 'alerts', diff --git a/x-pack/plugins/timelines/public/store/t_grid/model.ts b/x-pack/plugins/timelines/public/store/t_grid/model.ts index 739bcbef3e20c..bc44a5fc159ce 100644 --- a/x-pack/plugins/timelines/public/store/t_grid/model.ts +++ b/x-pack/plugins/timelines/public/store/t_grid/model.ts @@ -6,7 +6,8 @@ */ import type { EuiDataGridColumn } from '@elastic/eui'; -import type { Filter, FilterManager } from '../../../../../../src/plugins/data/public'; +import type { Filter } from '@kbn/es-query'; +import type { FilterManager } from '../../../../../../src/plugins/data/public'; import type { TimelineNonEcsData } from '../../../common/search_strategy'; import type { ColumnHeaderOptions, diff --git a/x-pack/plugins/timelines/public/types.ts b/x-pack/plugins/timelines/public/types.ts index f81632e29ab17..9c42f941ee03b 100644 --- a/x-pack/plugins/timelines/public/types.ts +++ b/x-pack/plugins/timelines/public/types.ts @@ -9,7 +9,7 @@ import { ReactElement } from 'react'; import type { SensorAPI } from 'react-beautiful-dnd'; import { Store } from 'redux'; import { CoreStart } from '../../../../src/core/public'; -import { DataPublicPluginStart } from '../../../../src/plugins/data/public'; +import type { DataPublicPluginStart } from '../../../../src/plugins/data/public'; import { CasesUiStart } from '../../cases/public'; import type { LastUpdatedAtProps, diff --git a/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts b/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts index 2427ec8bb6071..7e2c03486d890 100644 --- a/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/index_fields/index.ts @@ -24,7 +24,7 @@ import { DELETED_SECURITY_SOLUTION_DATA_VIEW, } from '../../../common'; import { StartPlugins } from '../../types'; -import { FieldSpec } from '../../../../../../src/plugins/data_views/common'; +import type { FieldSpec } from '../../../../../../src/plugins/data_views/common'; const apmIndexPattern = 'apm-*-transaction*'; const apmDataStreamsPattern = 'traces-apm*'; diff --git a/x-pack/plugins/timelines/server/search_strategy/index_fields/mock.ts b/x-pack/plugins/timelines/server/search_strategy/index_fields/mock.ts index f55cd069ecd57..6ec6ca86538bd 100644 --- a/x-pack/plugins/timelines/server/search_strategy/index_fields/mock.ts +++ b/x-pack/plugins/timelines/server/search_strategy/index_fields/mock.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { FieldDescriptor } from '../../../../../../src/plugins/data/server'; +import type { FieldDescriptor } from '../../../../../../src/plugins/data/server'; export const mockAuditbeatIndexField: FieldDescriptor[] = [ { diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/eql/__mocks__/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/eql/__mocks__/index.ts index 9e950132b5b69..ea212f07f442b 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/eql/__mocks__/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/eql/__mocks__/index.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { EqlSearchStrategyResponse } from '../../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../../src/plugins/data/common'; import { EqlSearchResponse } from '../../../../../common'; export const sequenceResponse = { diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/eql/helpers.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/eql/helpers.ts index 976185bb1b176..50ef2ccd0293f 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/eql/helpers.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/eql/helpers.ts @@ -6,7 +6,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; +import type { EqlSearchStrategyResponse } from '../../../../../../../src/plugins/data/common'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../common/constants'; import { EqlSearchResponse, EqlSequence, EventHit } from '../../../../common'; import { TimelineEdges } from '../../../../common/search_strategy'; diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/all/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/all/index.ts index 3ab924440152d..476ac196de811 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/all/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/all/index.ts @@ -7,7 +7,7 @@ import { cloneDeep, getOr } from 'lodash/fp'; import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../../../common/constants'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { EventHit, TimelineEventsQueries, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/details/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/details/index.ts index e2491c403945e..4e2876b4e19c9 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/details/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/details/index.ts @@ -7,7 +7,7 @@ import { cloneDeep, merge, unionBy } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { EventHit, TimelineEventsQueries, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/kpi/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/kpi/index.ts index 86a7819e64156..50484bbda0e6e 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/kpi/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/kpi/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { TimelineEventsQueries, TimelineRequestBasicOptions, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/index.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/index.ts index 9b96743ff8508..528230d660a40 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/index.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/index.ts @@ -7,7 +7,7 @@ import { getOr } from 'lodash/fp'; -import { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; +import type { IEsSearchResponse } from '../../../../../../../../../src/plugins/data/common'; import { TimelineEventsQueries, TimelineEventsLastEventTimeStrategyResponse, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/query.events_last_event_time.dsl.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/query.events_last_event_time.dsl.ts index 4ff86c9a9f290..54bd3ec522b87 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/query.events_last_event_time.dsl.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/events/last_event_time/query.events_last_event_time.dsl.ts @@ -6,7 +6,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { ISearchRequestParams } from 'src/plugins/data/common'; +import type { ISearchRequestParams } from 'src/plugins/data/common'; import { TimelineEventsLastEventTimeRequestOptions, LastEventIndexKey, diff --git a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/types.ts b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/types.ts index 831e3266ad8ee..3eb35c88f8ea9 100644 --- a/x-pack/plugins/timelines/server/search_strategy/timeline/factory/types.ts +++ b/x-pack/plugins/timelines/server/search_strategy/timeline/factory/types.ts @@ -5,7 +5,7 @@ * 2.0. */ -import { +import type { IEsSearchResponse, ISearchRequestParams, } from '../../../../../../../src/plugins/data/common'; diff --git a/x-pack/plugins/timelines/server/types.ts b/x-pack/plugins/timelines/server/types.ts index f9a80908fbc71..4367022573037 100644 --- a/x-pack/plugins/timelines/server/types.ts +++ b/x-pack/plugins/timelines/server/types.ts @@ -5,8 +5,7 @@ * 2.0. */ -// eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { DataPluginSetup, DataPluginStart } from '../../../../src/plugins/data/server/plugin'; +import type { PluginSetup, PluginStart } from '../../../../src/plugins/data/server'; import { PluginStartContract as AlertingPluginStartContract } from '../../alerting/server'; import { SecurityPluginSetup } from '../../security/server'; @@ -16,11 +15,11 @@ export interface TimelinesPluginUI {} export interface TimelinesPluginStart {} export interface SetupPlugins { - data: DataPluginSetup; + data: PluginSetup; security?: SecurityPluginSetup; } export interface StartPlugins { - data: DataPluginStart; + data: PluginStart; alerting: AlertingPluginStartContract; } diff --git a/x-pack/plugins/transform/public/app/sections/transform_management/components/refresh_transform_list_button/refresh_transform_list_button.tsx b/x-pack/plugins/transform/public/app/sections/transform_management/components/refresh_transform_list_button/refresh_transform_list_button.tsx index f9f5f79bf4620..183847362851b 100644 --- a/x-pack/plugins/transform/public/app/sections/transform_management/components/refresh_transform_list_button/refresh_transform_list_button.tsx +++ b/x-pack/plugins/transform/public/app/sections/transform_management/components/refresh_transform_list_button/refresh_transform_list_button.tsx @@ -19,7 +19,7 @@ export const RefreshTransformListButton: FC<RefreshTransformListButton> = ({ isLoading, }) => ( <EuiButton - color="secondary" + color="success" iconType="refresh" data-test-subj={`transformRefreshTransformListButton${isLoading ? ' loading' : ' loaded'}`} onClick={onClick} diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index d8bef37f6dc8f..e9ecfea653249 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -76,7122 +76,6401 @@ } }, "messages": { - "xpack.lens.formula.absFunction.markdown": "\n絶対値を計算します。負の値は-1で乗算されます。正の値は同じままです。\n\n例:海水位までの平均距離を計算します `abs(average(altitude))`\n ", - "xpack.lens.formula.addFunction.markdown": "\n2つの数値を加算します。\n+記号も使用できます\n\n例:2つのフィールドの合計を計算します\n\n`sum(price) + sum(tax)`\n\n例:固定値でカウントをオフセットします\n\n`add(count(), 5)`\n ", - "xpack.lens.formula.cbrtFunction.markdown": "\n値の立方根。\n\n例:体積から側面の長さを計算します\n`cbrt(last_value(volume))`\n ", - "xpack.lens.formula.ceilFunction.markdown": "\n値の上限(切り上げ)。\n\n例:価格を次のドル単位まで切り上げます\n`ceil(sum(price))`\n ", - "xpack.lens.formula.clampFunction.markdown": "\n最小値から最大値までの値を制限します。\n\n例:確実に異常値を特定します\n```\nclamp(\n average(bytes),\n percentile(bytes, percentile=5),\n percentile(bytes, percentile=95)\n)\n```\n", - "xpack.lens.formula.cubeFunction.markdown": "\n数値の三乗を計算します。\n\n例:側面の長さから体積を計算します\n`cube(last_value(length))`\n ", - "xpack.lens.formula.divideFunction.markdown": "\n1番目の数値を2番目の数値で除算します。\n/記号も使用できます\n\n例:利益率を計算します\n`sum(profit) / sum(revenue)`\n\n例:`divide(sum(bytes), 2)`\n ", - "xpack.lens.formula.expFunction.markdown": "\n*e*をn乗します。\n\n例:自然指数関数を計算します\n\n`exp(last_value(duration))`\n ", - "xpack.lens.formula.fixFunction.markdown": "\n正の値の場合は、下限を取ります。負の値の場合は、上限を取ります。\n\n例:ゼロに向かって端数処理します\n`fix(sum(profit))`\n ", - "xpack.lens.formula.floorFunction.markdown": "\n最も近い整数値まで切り捨てます\n\n例:価格を切り捨てます\n`floor(sum(price))`\n ", - "xpack.lens.formula.logFunction.markdown": "\nオプションで底をとる対数。デフォルトでは自然対数の底*e*を使用します。\n\n例:値を格納するために必要なビット数を計算します\n```\nlog(sum(bytes))\nlog(sum(bytes), 2)\n```\n ", - "xpack.lens.formula.modFunction.markdown": "\n関数を数値で除算した後の余り\n\n例:値の最後の3ビットを計算します\n`mod(sum(price), 1000)`\n ", - "xpack.lens.formula.multiplyFunction.markdown": "\n2つの数値を乗算します。\n*記号も使用できます。\n\n例:現在の税率を入れた価格を計算します\n`sum(bytes) * last_value(tax_rate)`\n\n例:一定の税率を入れた価格を計算します\n`multiply(sum(price), 1.2)`\n ", - "xpack.lens.formula.powFunction.markdown": "\n値を特定の乗数で累乗します。2番目の引数は必須です\n\n例:側面の長さに基づいて体積を計算します\n`pow(last_value(length), 3)`\n ", - "xpack.lens.formula.roundFunction.markdown": "\n特定の小数位に四捨五入します。デフォルトは0です。\n\n例:セントに四捨五入します\n```\nround(sum(bytes))\nround(sum(bytes), 2)\n```\n ", - "xpack.lens.formula.sqrtFunction.markdown": "\n正の値のみの平方根\n\n例:面積に基づいて側面の長さを計算します\n`sqrt(last_value(area))`\n ", - "xpack.lens.formula.squareFunction.markdown": "\n値を2乗します\n\n例:側面の長さに基づいて面積を計算します\n`square(last_value(length))`\n ", - "xpack.lens.formula.subtractFunction.markdown": "\n2番目の数値から1番目の数値を減算します。\n-記号も使用できます。\n\n例:フィールドの範囲を計算します\n`subtract(max(bytes), min(bytes))`\n ", - "xpack.lens.formulaDocumentation.filterRatioDescription.markdown": "### フィルター比率:\n\n`kql=''`を使用すると、1つのセットのドキュメントをフィルターして、同じグループの他のドキュメントと比較します。\n例:経時的なエラー率の変化を表示する\n\n```\ncount(kql='response.status_code > 400') / count()\n```\n ", - "xpack.lens.formulaDocumentation.markdown": "## 仕組み\n\nLens式では、Elasticsearchの集計および数学関数を使用して演算を実行できます\n。主に次の3種類の関数があります。\n\n* `sum(bytes)`などのElasticsearchメトリック\n* 時系列関数は`cumulative_sum()`などのElasticsearchメトリックを入力として使用します\n* `round()`などの数学関数\n\nこれらのすべての関数を使用する式の例:\n\n```\nround(100 * moving_average(\n average(cpu.load.pct),\n window=10,\n kql='datacenter.name: east*'\n))\n```\n\nElasticsearchの関数はフィールド名を取り、フィールドは引用符で囲むこともできます。`sum(bytes)`は\n`sum('bytes')`と同じです。\n\n一部の関数は、`moving_average(count(), window=5)`のような名前付き引数を取ります。\n\nElasticsearchメトリックはKQLまたはLucene構文を使用してフィルターできます。フィルターを追加するには、名前付き\nパラメーター`kql='field: value'`または`lucene=''`を使用します。KQLまたはLuceneクエリを作成するときには、必ず引用符を使用してください\n。検索が引用符で囲まれている場合は、`kql='Women's''のようにバックスラッシュでエスケープします。\n\n数学関数は位置引数を取ることができます。たとえば、pow(count(), 3)はcount() * count() * count()と同じです。\n\n+、-、/、*記号を使用して、基本演算を実行できます。", - "xpack.lens.formulaDocumentation.percentOfTotalDescription.markdown": "### 合計の割合\n\nすべてのグループで式は`overall_sum`を計算できます。\nこれは各グループを合計の割合に変換できます。\n\n```\nsum(products.base_price) / overall_sum(sum(products.base_price))\n```\n ", - "xpack.lens.formulaDocumentation.weekOverWeekDescription.markdown": "### 週単位:\n\n`shift='1w'`を使用すると、前の週から各グループの値を取得します\n。時間シフトは*Top values*関数と使用しないでください。\n\n```\npercentile(system.network.in.bytes, percentile=99) /\npercentile(system.network.in.bytes, percentile=99, shift='1w')\n```\n ", - "xpack.lens.indexPattern.cardinality.documentation.markdown": "\n指定されたフィールドの一意の値の数を計算します。数値、文字列、日付、ブール値で機能します。\n\n例:異なる製品の数を計算します。\n`unique_count(product.name)`\n\n例:「clothes」グループから異なる製品の数を計算します。\n`unique_count(product.name, kql='product.group=clothes')`\n ", - "xpack.lens.indexPattern.count.documentation.markdown": "\nドキュメント数を計算します。\n\n例:ドキュメント数を計算します。\n`count()`\n\n例:特定のフィルターと一致するドキュメントの数を計算します。\n`count(kql='price > 500')`\n ", - "xpack.lens.indexPattern.counterRate.documentation.markdown": "\n増加し続けるカウンターのレートを計算します。この関数は、経時的に単調に増加する種類の測定を含むカウンターメトリックフィールドでのみ結果を生成します。\n値が小さくなる場合は、カウンターリセットであると解釈されます。最も正確な結果を得るには、フィールドの「max`」で「counter_rate」を計算してください。\n\nこの計算はフィルターで定義された別の系列または上位値のディメンションに対して個別に実行されます。\n式で使用されるときには、現在の間隔を使用します。\n\n例:Memcachedサーバーで経時的に受信されたバイトの比率を可視化します。\n`counter_rate(max(memcached.stats.read.bytes))`\n ", - "xpack.lens.indexPattern.cumulativeSum.documentation.markdown": "\n経時的なメトリックの累計値を計算し、系列のすべての前の値を各値に追加します。この関数を使用するには、日付ヒストグラムディメンションも構成する必要があります。\n\nこの計算はフィルターで定義された別の系列または上位値のディメンションに対して個別に実行されます。\n\n例:経時的に累積された受信バイト数を可視化します。\n`cumulative_sum(sum(bytes))`\n ", - "xpack.lens.indexPattern.differences.documentation.markdown": "\n経時的にメトリックの最後の値に対する差異を計算します。この関数を使用するには、日付ヒストグラムディメンションも構成する必要があります。\n差異ではデータが連続する必要があります。差異を使用するときにデータが空の場合は、データヒストグラム間隔を大きくしてみてください。\n\nこの計算はフィルターで定義された別の系列または上位値のディメンションに対して個別に実行されます。\n\n例:経時的に受信したバイト数の変化を可視化します。\n`differences(sum(bytes))`\n ", - "xpack.lens.indexPattern.lastValue.documentation.markdown": "\n最後のドキュメントからフィールドの値を返し、インデックスパターンのデフォルト時刻フィールドで並べ替えます。\n\nこの関数はエンティティの最新の状態を取得する際に役立ちます。\n\n例:サーバーAの現在のステータスを取得:\n`last_value(server.status, kql='server.name=\"A\"')`\n ", - "xpack.lens.indexPattern.metric.documentation.markdown": "\nフィールドの{metric}を返します。この関数は数値フィールドでのみ動作します。\n\n例:価格の{metric}を取得:\n`{metric}(price)`\n\n例:英国からの注文の価格の{metric}を取得:\n`{metric}(price, kql='location:UK')`\n ", - "xpack.lens.indexPattern.movingAverage.documentation.markdown": "\n経時的なメトリックの移動平均を計算します。最後のn番目の値を平均化し、現在の値を計算します。この関数を使用するには、日付ヒストグラムディメンションも構成する必要があります。\nデフォルトウィンドウ値は{defaultValue}です\n\nこの計算はフィルターで定義された別の系列または上位値のディメンションに対して個別に実行されます。\n\n指名パラメーター「window」を取ります。これは現在値の平均計算に含める最後の値の数を指定します。\n\n例:測定の線を平滑化:\n`moving_average(sum(bytes), window=5)`\n ", - "xpack.lens.indexPattern.overall_average.documentation.markdown": "\n現在のグラフの系列のすべてのデータポイントのメトリックの平均を計算します。系列は日付ヒストグラムまたは間隔関数を使用してディメンションによって定義されます。\n上位の値やフィルターなどのデータを分解する他のディメンションは別の系列として処理されます。\n\n日付ヒストグラムまたは間隔関数が現在のグラフで使用されている場合、使用されている関数に関係なく、「overall_average」はすべてのディメンションで平均値を計算します。\n\n例:平均からの収束:\n`sum(bytes) - overall_average(sum(bytes))`\n ", - "xpack.lens.indexPattern.overall_max.documentation.markdown": "\n現在のグラフの系列のすべてのデータポイントのメトリックの最大値を計算します。系列は日付ヒストグラムまたは間隔関数を使用してディメンションによって定義されます。\n上位の値やフィルターなどのデータを分解する他のディメンションは別の系列として処理されます。\n\n日付ヒストグラムまたは間隔関数が現在のグラフで使用されている場合、使用されている関数に関係なく、「overall_max」はすべてのディメンションで最大値を計算します。\n\n例:範囲の割合\n`(sum(bytes) - overall_min(sum(bytes))) / (overall_max(sum(bytes)) - overall_min(sum(bytes)))`\n ", - "xpack.lens.indexPattern.overall_min.documentation.markdown": "\n現在のグラフの系列のすべてのデータポイントのメトリックの最小値を計算します。系列は日付ヒストグラムまたは間隔関数を使用してディメンションによって定義されます。\n上位の値やフィルターなどのデータを分解する他のディメンションは別の系列として処理されます。\n\n日付ヒストグラムまたは間隔関数が現在のグラフで使用されている場合、使用されている関数に関係なく、「overall_min」はすべてのディメンションで最小値を計算します。\n\n例:範囲の割合\n`(sum(bytes) - overall_min(sum(bytes)) / (overall_max(sum(bytes)) - overall_min(sum(bytes)))`\n ", - "xpack.lens.indexPattern.overall_sum.documentation.markdown": "\n現在のグラフの系列のすべてのデータポイントのメトリックの合計を計算します。系列は日付ヒストグラムまたは間隔関数を使用してディメンションによって定義されます。\n上位の値やフィルターなどのデータを分解する他のディメンションは別の系列として処理されます。\n\n日付ヒストグラムまたは間隔関数が現在のグラフで使用されている場合、使用されている関数に関係なく、「overall_sum」はすべてのディメンションで合計値を計算します。\n\n例:合計の割合\n`sum(bytes) / overall_sum(sum(bytes))`\n ", - "xpack.lens.indexPattern.percentile.documentation.markdown": "\nフィールドの値の指定された百分位数を返します。これはドキュメントに出現する値のnパーセントが小さい値です。\n\n例:値の95 %より大きいバイト数を取得:\n`percentile(bytes, percentile=95)`\n ", - "xpack.lens.app.addToLibrary": "ライブラリに保存", - "xpack.lens.app.cancel": "キャンセル", - "xpack.lens.app.cancelButtonAriaLabel": "変更を保存せずに最後に使用していたアプリに戻る", - "xpack.lens.app.docLoadingError": "保存されたドキュメントの保存中にエラーが発生", - "xpack.lens.app.downloadButtonAriaLabel": "データを CSV ファイルとしてダウンロード", - "xpack.lens.app.downloadButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", - "xpack.lens.app.downloadCSV": "CSV をダウンロード", - "xpack.lens.app.save": "保存", - "xpack.lens.app.saveAndReturn": "保存して戻る", - "xpack.lens.app.saveAndReturnButtonAriaLabel": "現在のLensビジュアライゼーションを保存し、前回使用していたアプリに戻る", - "xpack.lens.app.saveAs": "名前を付けて保存", - "xpack.lens.app.saveButtonAriaLabel": "現在のLensビジュアライゼーションを保存", - "xpack.lens.app.saveModalType": "レンズビジュアライゼーション", - "xpack.lens.app.saveVisualization.successNotificationText": "保存された'{visTitle}'", - "xpack.lens.app.unsavedFilename": "未保存", - "xpack.lens.app.unsavedWorkMessage": "作業内容を保存せずに、Lens から移動しますか?", - "xpack.lens.app.unsavedWorkTitle": "保存されていない変更", - "xpack.lens.app.updatePanel": "{originatingAppName}でパネルを更新", - "xpack.lens.app404": "404 Not Found", - "xpack.lens.breadcrumbsByValue": "ビジュアライゼーションを編集", - "xpack.lens.breadcrumbsCreate": "作成", - "xpack.lens.breadcrumbsTitle": "Visualizeライブラリ", - "xpack.lens.chartSwitch.dataLossDescription": "このビジュアライゼーションタイプを選択すると、現在適用されている構成選択の一部が失われます。", - "xpack.lens.chartSwitch.dataLossLabel": "警告", - "xpack.lens.chartSwitch.experimentalLabel": "実験的", - "xpack.lens.chartSwitch.noResults": "{term}の結果が見つかりませんでした。", - "xpack.lens.chartTitle.unsaved": "保存されていないビジュアライゼーション", - "xpack.lens.configPanel.addLayerButton": "レイヤーを追加", - "xpack.lens.configPanel.color.tooltip.auto": "カスタム色を指定しない場合、Lensは自動的に色を選択します。", - "xpack.lens.configPanel.color.tooltip.custom": "[自動]モードに戻すには、カスタム色をオフにしてください。", - "xpack.lens.configPanel.color.tooltip.disabled": "レイヤーに「内訳条件」が含まれている場合は、個別の系列をカスタム色にできません。", - "xpack.lens.configPanel.selectVisualization": "ビジュアライゼーションを選択してください", - "xpack.lens.configPanel.visualizationType": "ビジュアライゼーションタイプ", - "xpack.lens.configure.configurePanelTitle": "{groupLabel}", - "xpack.lens.configure.editConfig": "{label}構成の編集", - "xpack.lens.configure.emptyConfig": "フィールドを追加するか、ドラッグアンドドロップします", - "xpack.lens.configure.invalidConfigTooltip": "無効な構成です。", - "xpack.lens.configure.invalidConfigTooltipClick": "詳細はクリックしてください。", - "xpack.lens.customBucketContainer.dragToReorder": "ドラッグして並べ替え", - "xpack.lens.dataPanelWrapper.switchDatasource": "データソースに切り替える", - "xpack.lens.datatable.addLayer": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.datatable.breakdownColumns": "列", - "xpack.lens.datatable.breakdownColumns.description": "フィールドでメトリックを列に分割します。列数を少なくし、横スクロールを避けることをお勧めします。", - "xpack.lens.datatable.breakdownRows": "行", - "xpack.lens.datatable.breakdownRows.description": "フィールドで表の行を分割します。これは高カーディナリティ内訳にお勧めです。", - "xpack.lens.datatable.conjunctionSign": " & ", - "xpack.lens.datatable.expressionHelpLabel": "データベースレンダー", - "xpack.lens.datatable.groupLabel": "表形式の値と単一の値", - "xpack.lens.datatable.label": "表", - "xpack.lens.datatable.metrics": "メトリック", - "xpack.lens.datatable.suggestionLabel": "表として", - "xpack.lens.datatable.titleLabel": "タイトル", - "xpack.lens.datatable.visualizationName": "データベース", - "xpack.lens.datatable.visualizationOf": "テーブル {operations}", - "xpack.lens.datatypes.boolean": "ブール", - "xpack.lens.datatypes.date": "日付", - "xpack.lens.datatypes.geoPoint": "geo_point", - "xpack.lens.datatypes.geoShape": "geo_shape", - "xpack.lens.datatypes.histogram": "ヒストグラム", - "xpack.lens.datatypes.ipAddress": "IP", - "xpack.lens.datatypes.number": "数字", - "xpack.lens.datatypes.record": "レコード", - "xpack.lens.datatypes.string": "文字列", - "xpack.lens.deleteLayerAriaLabel": "レイヤー {index} を削除", - "xpack.lens.dimensionContainer.close": "閉じる", - "xpack.lens.dimensionContainer.closeConfiguration": "構成を閉じる", - "xpack.lens.discover.visualizeFieldLegend": "Visualize フィールド", - "xpack.lens.dragDrop.altOption": "Alt/Option", - "xpack.lens.dragDrop.announce.cancelled": "移動がキャンセルされました。{label}は初期位置に戻りました", - "xpack.lens.dragDrop.announce.cancelledItem": "移動がキャンセルされました。{label}は位置{position}の{groupLabel}グループに戻りました", - "xpack.lens.dragDrop.announce.dropped.duplicated": "位置{position}の{groupLabel}グループで{label}を複製しました", - "xpack.lens.dragDrop.announce.dropped.duplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}の{groupLabel}グループに追加しました", - "xpack.lens.dragDrop.announce.dropped.moveCompatible": "位置{position}の{groupLabel}グループに{label}を移動しました", - "xpack.lens.dragDrop.announce.dropped.moveIncompatible": "{label}を{nextLabel}に変換し、位置{position}の{groupLabel}グループに移動しました", - "xpack.lens.dragDrop.announce.dropped.reordered": "{groupLabel}グループの{label}を位置{prevPosition}から位置{position}に並べ替えました", - "xpack.lens.dragDrop.announce.dropped.replaceDuplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}の{groupLabel}グループで{dropLabel}を置き換えました", - "xpack.lens.dragDrop.announce.dropped.replaceIncompatible": "{label}を{nextLabel}に変換し、位置{position}の{groupLabel}グループで{dropLabel}を置き換えました", - "xpack.lens.dragDrop.announce.dropped.swapCompatible": "位置{dropPosition}で{label}を{dropGroupLabel}に移動し、位置{position}で{dropLabel}を {groupLabel}グループに移動しました", - "xpack.lens.dragDrop.announce.dropped.swapIncompatible": "位置{position}で{label}を{groupLabel}の{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループの{dropLabel}と入れ替えました", - "xpack.lens.dragDrop.announce.droppedDefault": "位置{position}の{dropGroupLabel}グループで{label}を追加しました", - "xpack.lens.dragDrop.announce.droppedNoPosition": "{label}を{dropLabel}に追加しました", - "xpack.lens.dragDrop.announce.duplicate.short": " AltキーまたはOptionを押し続けると複製します。", - "xpack.lens.dragDrop.announce.duplicated.replace": "位置{position}の{groupLabel}で{dropLabel}を{label}に置き換えました", - "xpack.lens.dragDrop.announce.duplicated.replaceDuplicateCompatible": "位置{position}の{groupLabel}で{dropLabel}を{label}のコピーに置き換えました", - "xpack.lens.dragDrop.announce.lifted": "{label}を上げました", - "xpack.lens.dragDrop.announce.selectedTarget.default": "位置{position}の{dropGroupLabel}グループに{label}を追加しました。スペースまたはEnterを押して追加します", - "xpack.lens.dragDrop.announce.selectedTarget.defaultNoPosition": "{label}を{dropLabel}に追加します。スペースまたはEnterを押して追加します", - "xpack.lens.dragDrop.announce.selectedTarget.duplicated": "位置{position}の{dropGroupLabel}グループに{label}を複製しました。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製します", - "xpack.lens.dragDrop.announce.selectedTarget.duplicatedInGroup": "位置{position}の{dropGroupLabel}グループに{label}を複製しました。スペースまたはEnterを押して複製します", - "xpack.lens.dragDrop.announce.selectedTarget.duplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}で{groupLabel}グループに移動します。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製します", - "xpack.lens.dragDrop.announce.selectedTarget.moveCompatibleMain": "位置{position}で{groupLabel}の{label}を{dropGroupLabel}グループの位置{dropPosition}にドラッグしています。スペースバーまたはEnterキーを押すと移動します。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible": "{label}を{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループに移動します。スペースまたはEnterを押して移動します", - "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatibleMain": "位置{position}で{groupLabel}の{label}を{dropGroupLabel}グループの位置{dropPosition}にドラッグしています。スペースバーまたはEnterキーを押して、{label}を{nextLabel}に変換して移動します。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.noSelected": "対象が選択されていません。矢印キーを使用して対象を選択してください", - "xpack.lens.dragDrop.announce.selectedTarget.reordered": "{groupLabel}グループの{label}を位置{prevPosition}から位置{position}に並べ替えます。スペースまたはEnterを押して並べ替えます", - "xpack.lens.dragDrop.announce.selectedTarget.reorderedBack": "{label}は初期位置{prevPosition}に戻りました", - "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateCompatible": "位置{position}で{label}を複製し、{groupLabel}グループで{dropLabel}を置き換えます。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製して置換します", - "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}で{groupLabel}グループの{dropLabel}を置き換えます。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製して置換します", - "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatibleMain": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}にドラッグしています。スペースバーまたはEnterキーを押して、{label}を{nextLabel}に変換して、{dropLabel}を置き換えます。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.replaceMain": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}にドラッグしています。スペースまたはEnterを押して、{dropLabel}を{label}で置き換えます。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.swapCompatible": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}と入れ替えます。Shiftキーを押しながらスペースバーまたはEnterキーを押すと、入れ替えます", - "xpack.lens.dragDrop.announce.selectedTarget.swapIncompatible": "位置{position}で{label}を{groupLabel}の{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループの{dropLabel}と入れ替えます。Shiftキーを押しながらスペースバーまたはEnterキーを押すと、入れ替えます", - "xpack.lens.dragDrop.announce.swap.short": " Shiftキーを押すと入れ替えます。", - "xpack.lens.dragDrop.duplicate": "複製", - "xpack.lens.dragDrop.keyboardInstructions": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、左右の矢印キーを使用して、ドロップ対象間を移動します。もう一度スペースまたはEnterを押すと終了します。", - "xpack.lens.dragDrop.keyboardInstructionsReorder": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、上下矢印キーを使用すると、グループの項目を並べ替えます。左右矢印キーを使用すると、グループの外側でドロップ対象を選択します。もう一度スペースまたはEnterを押すと終了します。", - "xpack.lens.dragDrop.shift": "Shift", - "xpack.lens.dragDrop.swap": "入れ替える", - "xpack.lens.dynamicColoring.customPalette.addColorStop": "色経由点を追加", - "xpack.lens.dynamicColoring.customPalette.deleteButtonAriaLabel": "削除", - "xpack.lens.dynamicColoring.customPalette.deleteButtonDisabled": "2つ以上の経由点が必要であるため、この色経由点を削除することはできません", - "xpack.lens.dynamicColoring.customPalette.deleteButtonLabel": "削除", - "xpack.lens.dynamicColoring.customPalette.sortReason": "新しい経由値{value}のため、色経由点が並べ替えられました", - "xpack.lens.dynamicColoring.customPalette.stopAriaLabel": "{index}を停止", - "xpack.lens.editorFrame.buildExpressionError": "グラフの準備中に予期しないエラーが発生しました", - "xpack.lens.editorFrame.colorIndicatorLabel": "このディメンションの色:{hex}", - "xpack.lens.editorFrame.dataFailure": "データの読み込み中にエラーが発生しました。", - "xpack.lens.editorFrame.emptyWorkspace": "開始するにはここにフィールドをドロップしてください", - "xpack.lens.editorFrame.emptyWorkspaceHeading": "Lensはビジュアライゼーションを作成するための新しいツールです", - "xpack.lens.editorFrame.emptyWorkspaceSimple": "ここにフィールドをドロップ", - "xpack.lens.editorFrame.expandRenderingErrorButton": "エラーの詳細を表示", - "xpack.lens.editorFrame.expressionFailure": "式でエラーが発生しました", - "xpack.lens.editorFrame.expressionFailureMessage": "リクエストエラー:{type}, {reason}", - "xpack.lens.editorFrame.expressionFailureMessageWithContext": "リクエストエラー:{type}、{context}の{reason}", - "xpack.lens.editorFrame.expressionMissingDatasource": "ビジュアライゼーションのデータソースが見つかりませんでした", - "xpack.lens.editorFrame.expressionMissingVisualizationType": "ビジュアライゼーションタイプが見つかりません。", - "xpack.lens.editorFrame.goToForums": "リクエストとフィードバック", - "xpack.lens.editorFrame.invisibleIndicatorLabel": "このディメンションは現在グラフに表示されません", - "xpack.lens.editorFrame.networkErrorMessage": "ネットワークエラーです。しばらくたってから再試行するか、管理者に連絡してください。", - "xpack.lens.editorFrame.noColorIndicatorLabel": "このディメンションには個別の色がありません", - "xpack.lens.editorFrame.paletteColorIndicatorLabel": "このディメンションはパレットを使用しています", - "xpack.lens.editorFrame.previewErrorLabel": "レンダリングのプレビューに失敗しました", - "xpack.lens.editorFrame.requiredDimensionWarningLabel": "必要な次元", - "xpack.lens.editorFrame.suggestionPanelTitle": "提案", - "xpack.lens.editorFrame.workspaceLabel": "ワークスペース", - "xpack.lens.embeddable.failure": "ビジュアライゼーションを表示できませんでした", - "xpack.lens.embeddable.fixErrors": "Lensエディターで編集し、エラーを修正", - "xpack.lens.embeddable.moreErrors": "Lensエディターで編集すると、エラーの詳細が表示されます", - "xpack.lens.embeddableDisplayName": "レンズ", - "xpack.lens.fieldFormats.longSuffix.d": "日単位", - "xpack.lens.fieldFormats.longSuffix.h": "時間単位", - "xpack.lens.fieldFormats.longSuffix.m": "分単位", - "xpack.lens.fieldFormats.longSuffix.s": "秒単位", - "xpack.lens.fieldFormats.suffix.d": "/d", - "xpack.lens.fieldFormats.suffix.h": "/h", - "xpack.lens.fieldFormats.suffix.m": "/m", - "xpack.lens.fieldFormats.suffix.s": "/s", - "xpack.lens.fieldFormats.suffix.title": "接尾辞", - "xpack.lens.filterBy.removeLabel": "フィルターを削除", - "xpack.lens.fittingFunctionsDescription.carry": "ギャップを最後の値で埋める", - "xpack.lens.fittingFunctionsDescription.linear": "ギャップを線で埋める", - "xpack.lens.fittingFunctionsDescription.lookahead": "ギャップを次の値で埋める", - "xpack.lens.fittingFunctionsDescription.none": "ギャップを埋めない", - "xpack.lens.fittingFunctionsDescription.zero": "ギャップをゼロで埋める", - "xpack.lens.fittingFunctionsTitle.carry": "最後", - "xpack.lens.fittingFunctionsTitle.linear": "線形", - "xpack.lens.fittingFunctionsTitle.lookahead": "次へ", - "xpack.lens.fittingFunctionsTitle.none": "非表示", - "xpack.lens.fittingFunctionsTitle.zero": "ゼロ", - "xpack.lens.formula.base": "基数", - "xpack.lens.formula.decimals": "小数点以下", - "xpack.lens.formula.disableWordWrapLabel": "単語の折り返しを無効にする", - "xpack.lens.formula.editorHelpInlineHideLabel": "関数リファレンスを非表示", - "xpack.lens.formula.editorHelpInlineHideToolTip": "関数リファレンスを非表示", - "xpack.lens.formula.editorHelpInlineShowToolTip": "関数リファレンスを表示", - "xpack.lens.formula.editorHelpOverlayToolTip": "機能リファレンス", - "xpack.lens.formula.fullScreenEnterLabel": "拡張", - "xpack.lens.formula.fullScreenExitLabel": "縮小", - "xpack.lens.formula.kqlExtraArguments": "[kql]?:文字列、[lucene]?:文字列", - "xpack.lens.formula.left": "左", - "xpack.lens.formula.max": "最高", - "xpack.lens.formula.min": "分", - "xpack.lens.formula.number": "数字", - "xpack.lens.formula.optionalArgument": "任意。デフォルト値は{defaultValue}です", - "xpack.lens.formula.requiredArgument": "必須", - "xpack.lens.formula.right": "右", - "xpack.lens.formula.shiftExtraArguments": "[shift]?:文字列", - "xpack.lens.formula.string": "文字列", - "xpack.lens.formula.value": "値", - "xpack.lens.formulaCommonFormulaDocumentation": "最も一般的な式は2つの値を分割して割合を生成します。正確に表示するには、[値形式]を[割合]に設定します。", - "xpack.lens.formulaDocumentation.columnCalculationSection": "列計算", - "xpack.lens.formulaDocumentation.columnCalculationSectionDescription": "各行でこれらの関数が実行されますが、コンテキストとして列全体が提供されます。これはウィンドウ関数とも呼ばれます。", - "xpack.lens.formulaDocumentation.elasticsearchSection": "Elasticsearch", - "xpack.lens.formulaDocumentation.elasticsearchSectionDescription": "これらの関数は結果テーブルの各行の未加工ドキュメントで実行され、内訳ディメンションと一致するすべてのドキュメントを単一の値に集約します。", - "xpack.lens.formulaDocumentation.filterRatio": "フィルター比率", - "xpack.lens.formulaDocumentation.header": "式リファレンス", - "xpack.lens.formulaDocumentation.mathSection": "数学処理", - "xpack.lens.formulaDocumentation.mathSectionDescription": "これらの関数は、他の関数で計算された同じ行の単一の値を使用して、結果テーブルの各行で実行されます。", - "xpack.lens.formulaDocumentation.percentOfTotal": "合計の割合", - "xpack.lens.formulaDocumentation.weekOverWeek": "週単位", - "xpack.lens.formulaDocumentationHeading": "仕組み", - "xpack.lens.formulaEnableWordWrapLabel": "単語の折り返しを有効にする", - "xpack.lens.formulaExampleMarkdown": "例", - "xpack.lens.formulaFrequentlyUsedHeading": "一般的な式", - "xpack.lens.formulaPlaceholderText": "関数を演算と組み合わせて式を入力します。例:", - "xpack.lens.formulaSearchPlaceholder": "検索関数", - "xpack.lens.functions.counterRate.args.byHelpText": "カウンターレート計算を分割する列", - "xpack.lens.functions.counterRate.args.inputColumnIdHelpText": "カウンターレートを計算する列", - "xpack.lens.functions.counterRate.args.outputColumnIdHelpText": "結果のカウンターレートを格納する列", - "xpack.lens.functions.counterRate.args.outputColumnNameHelpText": "結果のカウンターレートを格納する列の名前", - "xpack.lens.functions.counterRate.help": "データテーブルの列のカウンターレートを計算します", - "xpack.lens.functions.lastValue.missingSortField": "このインデックスパターンには日付フィールドが含まれていません", - "xpack.lens.functions.mergeTables.help": "任意の数の Kibana 表を 1 つの表に結合し、インスペクターアダプター経由で公開するヘルパー", - "xpack.lens.functions.renameColumns.help": "データベースの列の名前の変更をアシストします", - "xpack.lens.functions.renameColumns.idMap.help": "キーが古い列 ID で値が対応する新しい列 ID となるように JSON エンコーディングされたオブジェクトです。他の列 ID はすべてのそのままです。", - "xpack.lens.functions.timeScale.dateColumnMissingMessage": "指定した dateColumnId {columnId} は存在しません。", - "xpack.lens.functions.timeScale.timeInfoMissingMessage": "日付ヒストグラム情報を取得できませんでした", - "xpack.lens.geoFieldWorkspace.dropMessage": "Mapsで開くにはここにフィールドをドロップします", - "xpack.lens.geoFieldWorkspace.dropZoneLabel": "Mapsで開くにはゾーンをドロップします", - "xpack.lens.heatmap.addLayer": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.heatmap.cellValueLabel": "セル値", - "xpack.lens.heatmap.expressionHelpLabel": "ヒートマップレンダラー", - "xpack.lens.heatmap.groupLabel": "ヒートマップ", - "xpack.lens.heatmap.heatmapLabel": "ヒートマップ", - "xpack.lens.heatmap.horizontalAxisLabel": "横軸", - "xpack.lens.heatmap.titleLabel": "タイトル", - "xpack.lens.heatmap.verticalAxisLabel": "縦軸", - "xpack.lens.heatmap.visualizationName": "ヒートマップ", - "xpack.lens.heatmapChart.config.cellHeight.help": "グリッドセルの高さを指定します", - "xpack.lens.heatmapChart.config.cellWidth.help": "グリッドセルの幅を指定します", - "xpack.lens.heatmapChart.config.isCellLabelVisible.help": "セルラベルの表示・非表示を指定します。", - "xpack.lens.heatmapChart.config.isXAxisLabelVisible.help": "x軸のラベルを表示するかどうかを指定します。", - "xpack.lens.heatmapChart.config.isYAxisLabelVisible.help": "Y軸のラベルを表示するかどうかを指定します。", - "xpack.lens.heatmapChart.config.strokeColor.help": "グリッドストローク色を指定します", - "xpack.lens.heatmapChart.config.strokeWidth.help": "グリッドストローク幅を指定します", - "xpack.lens.heatmapChart.config.yAxisLabelColor.help": "Y軸ラベルの色を指定します。", - "xpack.lens.heatmapChart.config.yAxisLabelWidth.help": "Y軸ラベルの幅を指定します。", - "xpack.lens.heatmapChart.gridConfig.help": "ヒートマップレイアウトを構成します。", - "xpack.lens.heatmapChart.legend.help": "チャートの凡例を構成します。", - "xpack.lens.heatmapChart.legend.isVisible.help": "判例の表示・非表示を指定します。", - "xpack.lens.heatmapChart.legend.maxLines.help": "凡例項目ごとの行数を指定します。", - "xpack.lens.heatmapChart.legend.position.help": "凡例の配置を指定します。", - "xpack.lens.heatmapChart.legend.shouldTruncate.help": "凡例項目を切り捨てるかどうかを指定します。", - "xpack.lens.heatmapChart.legendVisibility.hide": "非表示", - "xpack.lens.heatmapChart.legendVisibility.show": "表示", - "xpack.lens.heatmapVisualization.arrayValuesWarningMessage": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", - "xpack.lens.heatmapVisualization.heatmapGroupLabel": "ヒートマップ", - "xpack.lens.heatmapVisualization.heatmapLabel": "ヒートマップ", - "xpack.lens.heatmapVisualization.missingXAccessorLongMessage": "横軸の構成がありません。", - "xpack.lens.heatmapVisualization.missingXAccessorShortMessage": "横軸がありません。", - "xpack.lens.indexPattern.advancedSettings": "高度なオプションを追加", - "xpack.lens.indexPattern.allFieldsLabel": "すべてのフィールド", - "xpack.lens.indexPattern.allFieldsLabelHelp": "使用可能なフィールドには、フィルターと一致する最初の 500 件のドキュメントのデータがあります。すべてのフィールドを表示するには、空のフィールドを展開します。一部のフィールドタイプは、完全なテキストおよびグラフィックフィールドを含む Lens では、ビジュアライゼーションできません。", - "xpack.lens.indexPattern.availableFieldsLabel": "利用可能なフィールド", - "xpack.lens.indexPattern.avg": "平均", - "xpack.lens.indexPattern.avg.description": "集約されたドキュメントから抽出された数値の平均値を計算する単一値メトリック集約", - "xpack.lens.indexPattern.avgOf": "{name} の平均", - "xpack.lens.indexPattern.bytesFormatLabel": "バイト(1024)", - "xpack.lens.indexPattern.calculations.dateHistogramErrorMessage": "{name} が動作するには、日付ヒストグラムが必要です。日付ヒストグラムを追加するか、別の関数を選択します。", - "xpack.lens.indexPattern.calculations.layerDataType": "このタイプのレイヤーでは{name}が無効です。", - "xpack.lens.indexPattern.cardinality": "ユニークカウント", - "xpack.lens.indexPattern.cardinality.signature": "フィールド:文字列", - "xpack.lens.indexPattern.cardinalityOf": "{name} のユニークカウント", - "xpack.lens.indexPattern.chooseField": "フィールドを選択", - "xpack.lens.indexPattern.chooseFieldLabel": "この関数を使用するには、フィールドを選択してください。", - "xpack.lens.indexPattern.chooseSubFunction": "サブ関数を選択", - "xpack.lens.indexPattern.columnFormatLabel": "値の形式", - "xpack.lens.indexPattern.columnLabel": "表示名", - "xpack.lens.indexPattern.count": "カウント", - "xpack.lens.indexPattern.counterRate": "カウンターレート", - "xpack.lens.indexPattern.counterRate.signature": "メトリック:数値", - "xpack.lens.indexPattern.CounterRateOf": "{name} のカウンターレート", - "xpack.lens.indexPattern.countOf": "レコード数", - "xpack.lens.indexPattern.cumulative_sum.signature": "メトリック:数値", - "xpack.lens.indexPattern.cumulativeSum": "累積和", - "xpack.lens.indexPattern.cumulativeSumOf": "{name}の累積和", - "xpack.lens.indexPattern.dateHistogram": "日付ヒストグラム", - "xpack.lens.indexPattern.dateHistogram.autoAdvancedExplanation": "間隔は次のロジックに従います。", - "xpack.lens.indexPattern.dateHistogram.autoBasicExplanation": "自動日付ヒストグラムは、間隔でデータフィールドをバケットに分割します。", - "xpack.lens.indexPattern.dateHistogram.autoBoundHeader": "対象間隔の測定", - "xpack.lens.indexPattern.dateHistogram.autoHelpText": "仕組み", - "xpack.lens.indexPattern.dateHistogram.autoInterval": "時間範囲のカスタマイズ", - "xpack.lens.indexPattern.dateHistogram.autoIntervalHeader": "使用される間隔", - "xpack.lens.indexPattern.dateHistogram.autoLongerExplanation": "間隔を選択するには、Lensは指定された時間範囲を{targetBarSetting}設定で除算します。Lensはデータに最適な間隔を計算します。たとえば、30分、1時間、12です。棒の最大数は{maxBarSetting}値で設定します。", - "xpack.lens.indexPattern.dateHistogram.days": "日", - "xpack.lens.indexPattern.dateHistogram.hours": "時間", - "xpack.lens.indexPattern.dateHistogram.milliseconds": "ミリ秒", - "xpack.lens.indexPattern.dateHistogram.minimumInterval": "最低間隔", - "xpack.lens.indexPattern.dateHistogram.minutes": "分", - "xpack.lens.indexPattern.dateHistogram.month": "月", - "xpack.lens.indexPattern.dateHistogram.moreThanYear": "1年を超える", - "xpack.lens.indexPattern.dateHistogram.restrictedInterval": "集約の制限により間隔は {intervalValue} に固定されています。", - "xpack.lens.indexPattern.dateHistogram.seconds": "秒", - "xpack.lens.indexPattern.dateHistogram.titleHelp": "自動日付ヒストグラムの仕組み", - "xpack.lens.indexPattern.dateHistogram.upTo": "最大", - "xpack.lens.indexPattern.dateHistogram.week": "週", - "xpack.lens.indexPattern.dateHistogram.year": "年", - "xpack.lens.indexPattern.decimalPlacesLabel": "小数点以下", - "xpack.lens.indexPattern.defaultFormatLabel": "デフォルト", - "xpack.lens.indexPattern.derivative": "差異", - "xpack.lens.indexPattern.derivativeOf": "{name} の差異", - "xpack.lens.indexPattern.differences.signature": "メトリック:数値", - "xpack.lens.indexPattern.emptyDimensionButton": "空のディメンション", - "xpack.lens.indexPattern.emptyFieldsLabel": "空のフィールド", - "xpack.lens.indexPattern.emptyFieldsLabelHelp": "空のフィールドには、フィルターに基づく最初の 500 件のドキュメントの値が含まれていませんでした。", - "xpack.lens.indexPattern.existenceErrorAriaLabel": "存在の取り込みに失敗しました", - "xpack.lens.indexPattern.existenceErrorLabel": "フィールド情報を読み込めません", - "xpack.lens.indexPattern.existenceTimeoutAriaLabel": "存在の取り込みがタイムアウトしました", - "xpack.lens.indexPattern.existenceTimeoutLabel": "フィールド情報に時間がかかりすぎました", - "xpack.lens.indexPattern.fieldDistributionLabel": "分布", - "xpack.lens.indexPattern.fieldItem.visualizeGeoFieldLinkText": "Mapsで可視化", - "xpack.lens.indexPattern.fieldItemTooltip": "可視化するには、ドラッグアンドドロップします。", - "xpack.lens.indexPattern.fieldNoOperation": "フィールド{field}は演算なしで使用できません", - "xpack.lens.indexPattern.fieldNotFound": "フィールド {invalidField} が見つかりませんでした", - "xpack.lens.indexPattern.fieldPanelEmptyStringValue": "空の文字列", - "xpack.lens.indexPattern.fieldPlaceholder": "フィールド", - "xpack.lens.indexPattern.fieldStatsButtonAriaLabel": "プレビュー{fieldName}:{fieldType}", - "xpack.lens.indexPattern.fieldStatsButtonEmptyLabel": "このフィールドにはデータがありませんが、ドラッグアンドドロップで可視化できます。", - "xpack.lens.indexPattern.fieldStatsButtonLabel": "フィールドプレビューを表示するには、クリックします。可視化するには、ドラッグアンドドロップします。", - "xpack.lens.indexPattern.fieldStatsCountLabel": "カウント", - "xpack.lens.indexPattern.fieldStatsDisplayToggle": "次のどちらかを切り替えます:", - "xpack.lens.indexPattern.fieldStatsLimited": "範囲タイプフィールドの概要情報がありません。", - "xpack.lens.indexPattern.fieldStatsNoData": "このフィールドは空です。500件のサンプリングされたドキュメントに存在しません。このフィールドを構成に追加すると、空白のグラフが作成される場合があります。", - "xpack.lens.indexPattern.fieldTimeDistributionLabel": "時間分布", - "xpack.lens.indexPattern.fieldTopValuesLabel": "トップの値", - "xpack.lens.indexPattern.fieldWrongType": "フィールド{invalidField}の型が正しくありません", - "xpack.lens.indexPattern.filterBy.clickToEdit": "クリックして編集", - "xpack.lens.indexPattern.filterBy.emptyFilterQuery": "(空)", - "xpack.lens.indexPattern.filterBy.label": "フィルタリング条件", - "xpack.lens.indexPattern.filters": "フィルター", - "xpack.lens.indexPattern.filters.addaFilter": "フィルターを追加", - "xpack.lens.indexPattern.filters.clickToEdit": "クリックして編集", - "xpack.lens.indexPattern.filters.isInvalid": "このクエリは無効です", - "xpack.lens.indexPattern.filters.label.placeholder": "すべてのレコード", - "xpack.lens.indexPattern.filters.queryPlaceholderKql": "{example}", - "xpack.lens.indexPattern.filters.queryPlaceholderLucene": "{example}", - "xpack.lens.indexPattern.filters.removeFilter": "フィルターを削除", - "xpack.lens.indexPattern.formulaExpressionNotHandled": "式{operation}の演算には次のパラメーターがありません:{params}", - "xpack.lens.indexPattern.formulaExpressionParseError": "式{expression}を解析できません", - "xpack.lens.indexPattern.formulaExpressionWrongType": "式の演算{operation}のパラメーターの型が正しくありません:{params}", - "xpack.lens.indexPattern.formulaFieldNotRequired": "演算{operation}ではどのフィールドも引数として使用できません", - "xpack.lens.indexPattern.formulaFieldValue": "フィールド", - "xpack.lens.indexPattern.formulaLabel": "式", - "xpack.lens.indexPattern.formulaMathMissingArgument": "式{operation}の演算には{count}個の引数がありません:{params}", - "xpack.lens.indexPattern.formulaMetricValue": "メトリック", - "xpack.lens.indexPattern.formulaNoFieldForOperation": "フィールドなし", - "xpack.lens.indexPattern.formulaNoOperation": "演算なし", - "xpack.lens.indexPattern.formulaOperationDoubleQueryError": "kql=またはlucene=のいずれかのみを使用します。両方は使用できません", - "xpack.lens.indexPattern.formulaOperationDuplicateParams": "演算{operation}のパラメーターが複数回宣言されました:{params}", - "xpack.lens.indexPattern.formulaOperationQueryError": "{rawQuery}では{language}=''に単一引用符が必要です", - "xpack.lens.indexPattern.formulaOperationTooManyFirstArguments": "式の演算{operation}には{supported, plural, one {1つの} other {サポートされている}} {type}が必要です。検出:{text}", - "xpack.lens.indexPattern.formulaOperationValue": "演算", - "xpack.lens.indexPattern.formulaOperationwrongArgument": "式の演算{operation}は{type}パラメーターをサポートしていません。検出:{text}", - "xpack.lens.indexPattern.formulaOperationWrongFirstArgument": "{operation}の最初の引数は{type}名でなければなりません。{argument}が見つかりました", - "xpack.lens.indexPattern.formulaParameterNotRequired": "演算{operation}ではどのパラメーターも使用できません", - "xpack.lens.indexPattern.formulaPartLabel": "{label}の一部", - "xpack.lens.indexPattern.formulaWarning": "現在適用されている式", - "xpack.lens.indexPattern.formulaWarningText": "式を上書きするには、クイック関数を選択します", - "xpack.lens.indexPattern.formulaWithTooManyArguments": "演算{operation}の引数が多すぎます", - "xpack.lens.indexPattern.functionsLabel": "関数を選択", - "xpack.lens.indexPattern.groupByDropdown": "グループ分けの条件", - "xpack.lens.indexPattern.incompleteOperation": "(未完了)", - "xpack.lens.indexPattern.intervals": "間隔", - "xpack.lens.indexPattern.invalidInterval": "無効な間隔値", - "xpack.lens.indexPattern.invalidOperationLabel": "選択した関数はこのフィールドで動作しません。", - "xpack.lens.indexPattern.invalidReferenceConfiguration": "ディメンション\"{dimensionLabel}\"の構成が正しくありません", - "xpack.lens.indexPattern.invalidTimeShift": "無効な時間シフトです。正の整数の後に単位s、m、h、d、w、M、yのいずれかを入力します。例:3時間は3hです", - "xpack.lens.indexPattern.lastValue": "最終値", - "xpack.lens.indexPattern.lastValue.invalidTypeSortField": "フィールド {invalidField} は日付フィールドではないため、並べ替えで使用できません", - "xpack.lens.indexPattern.lastValue.signature": "フィールド:文字列", - "xpack.lens.indexPattern.lastValue.sortField": "日付フィールドで並べ替え", - "xpack.lens.indexPattern.lastValue.sortFieldNotFound": "フィールド {invalidField} が見つかりませんでした", - "xpack.lens.indexPattern.lastValue.sortFieldPlaceholder": "並べ替えフィールド", - "xpack.lens.indexPattern.lastValueOf": "{name} の最後の値", - "xpack.lens.indexPattern.layerErrorWrapper": "レイヤー{position}エラー:{wrappedMessage}", - "xpack.lens.indexPattern.max": "最高", - "xpack.lens.indexPattern.max.description": "集約されたドキュメントから抽出された数値の最大値を返す単一値メトリック集約。", - "xpack.lens.indexPattern.maxOf": "{name} の最高値", - "xpack.lens.indexPattern.median": "中央", - "xpack.lens.indexPattern.median.description": "集約されたドキュメントから抽出された中央値を計算する単一値メトリック集約。", - "xpack.lens.indexPattern.medianOf": "{name} の中央値", - "xpack.lens.indexPattern.metaFieldsLabel": "メタフィールド", - "xpack.lens.indexPattern.metric.signature": "フィールド:文字列", - "xpack.lens.indexPattern.min": "最低", - "xpack.lens.indexPattern.min.description": "集約されたドキュメントから抽出された数値の最小値を返す単一値メトリック集約。", - "xpack.lens.indexPattern.minOf": "{name} の最低値", - "xpack.lens.indexPattern.missingFieldLabel": "見つからないフィールド", - "xpack.lens.indexPattern.missingReferenceError": "\"{dimensionLabel}\"は完全に構成されていません", - "xpack.lens.indexPattern.moveToWorkspace": "{field}をワークスペースに追加", - "xpack.lens.indexPattern.moveToWorkspaceDisabled": "このフィールドは自動的にワークスペースに追加できません。構成パネルで直接使用することはできます。", - "xpack.lens.indexPattern.moving_average.signature": "メトリック:数値、[window]:数値", - "xpack.lens.indexPattern.movingAverage": "移動平均", - "xpack.lens.indexPattern.movingAverage.basicExplanation": "移動平均はデータ全体でウィンドウをスライドし、平均値を表示します。移動平均は日付ヒストグラムでのみサポートされています。", - "xpack.lens.indexPattern.movingAverage.helpText": "仕組み", - "xpack.lens.indexPattern.movingAverage.limitations": "最初の移動平均値は2番目の項目から開始します。", - "xpack.lens.indexPattern.movingAverage.longerExplanation": "移動平均を計算するには、Lensはウィンドウの平均値を使用し、ギャップのスキップポリシーを適用します。 見つからない値がある場合、バケットがスキップされます。次の値に対して計算が実行されます。", - "xpack.lens.indexPattern.movingAverage.tableExplanation": "たとえば、データ[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]がある場合、ウィンドウサイズ5でシンプルな移動平均を計算できます。", - "xpack.lens.indexPattern.movingAverage.titleHelp": "移動平均の仕組み", - "xpack.lens.indexPattern.movingAverage.window": "ウィンドウサイズ", - "xpack.lens.indexPattern.movingAverage.windowInitialPartial": "要求されたアイテム数に達するまで、ウィンドウは部分的です。 例:ウィンドウサイズ5。", - "xpack.lens.indexPattern.movingAverage.windowLimitations": "ウィンドウには現在の値が含まれません。", - "xpack.lens.indexPattern.movingAverageOf": "{name} の移動平均", - "xpack.lens.indexPattern.multipleDateHistogramsError": "\"{dimensionLabel}\"は唯一の日付ヒストグラムではありません。時間シフトを使用するときには、1つの日付ヒストグラムのみを使用していることを確認してください。", - "xpack.lens.indexPattern.numberFormatLabel": "数字", - "xpack.lens.indexPattern.ofDocumentsLabel": "ドキュメント", - "xpack.lens.indexPattern.otherDocsLabel": "その他", - "xpack.lens.indexPattern.overall_metric": "メトリック:数値", - "xpack.lens.indexPattern.overallAverageOf": "{name}の全体平均値", - "xpack.lens.indexPattern.overallMax": "全体最高", - "xpack.lens.indexPattern.overallMaxOf": "{name}の全体最大値", - "xpack.lens.indexPattern.overallMin": "全体最低", - "xpack.lens.indexPattern.overallMinOf": "{name}の全体最小値", - "xpack.lens.indexPattern.overallSum": "全体合計", - "xpack.lens.indexPattern.overallSumOf": "{name}の全体平方和", - "xpack.lens.indexPattern.percentageOfLabel": "{percentage}% の", - "xpack.lens.indexPattern.percentFormatLabel": "割合(%)", - "xpack.lens.indexPattern.percentile": "パーセンタイル", - "xpack.lens.indexPattern.percentile.errorMessage": "パーセンタイルは1~99の範囲の整数でなければなりません。", - "xpack.lens.indexPattern.percentile.percentileValue": "パーセンタイル", - "xpack.lens.indexPattern.percentile.signature": "フィールド:文字列、[percentile]:数値", - "xpack.lens.indexPattern.percentileOf": "{name}の{percentile, selectordinal, other {#}}パーセンタイル", - "xpack.lens.indexPattern.pinnedTopValuesLabel": "{field}のフィルター", - "xpack.lens.indexPattern.quickFunctionsLabel": "クイック機能", - "xpack.lens.indexPattern.range.isInvalid": "この範囲は無効です", - "xpack.lens.indexPattern.ranges.addRange": "範囲を追加", - "xpack.lens.indexPattern.ranges.customIntervalsToggle": "カスタム範囲を作成", - "xpack.lens.indexPattern.ranges.customRangeLabelPlaceholder": "カスタムラベル", - "xpack.lens.indexPattern.ranges.customRanges": "範囲", - "xpack.lens.indexPattern.ranges.customRangesRemoval": "カスタム範囲を削除", - "xpack.lens.indexPattern.ranges.decreaseButtonLabel": "粒度を下げる", - "xpack.lens.indexPattern.ranges.deleteRange": "範囲を削除", - "xpack.lens.indexPattern.ranges.granularity": "間隔粒度", - "xpack.lens.indexPattern.ranges.granularityHelpText": "仕組み", - "xpack.lens.indexPattern.ranges.granularityPopoverAdvancedExplanation": "間隔は10、5、または2ずつ増分します。たとえば、間隔を100または0.2にすることができます。", - "xpack.lens.indexPattern.ranges.granularityPopoverBasicExplanation": "間隔の粒度は、フィールドの最小値と最大値に基づいて、フィールドを均等な幅の間隔に分割します。", - "xpack.lens.indexPattern.ranges.granularityPopoverExplanation": "間隔のサイズは「nice」値です。スライダーの粒度を変更すると、「nice」間隔が同じときには、間隔が同じままです。最小粒度は1です。最大値は{setting}です。最大粒度を変更するには、[高度な設定]に移動します。", - "xpack.lens.indexPattern.ranges.granularityPopoverTitle": "粒度間隔の仕組み", - "xpack.lens.indexPattern.ranges.increaseButtonLabel": "粒度を上げる", - "xpack.lens.indexPattern.ranges.lessThanOrEqualAppend": "≤", - "xpack.lens.indexPattern.ranges.lessThanOrEqualTooltip": "以下", - "xpack.lens.indexPattern.ranges.lessThanPrepend": "<", - "xpack.lens.indexPattern.ranges.lessThanTooltip": "より小さい", - "xpack.lens.indexPattern.records": "記録", - "xpack.lens.indexPattern.referenceFunctionPlaceholder": "サブ関数", - "xpack.lens.indexPattern.removeColumnAriaLabel": "フィールドを追加するか、{groupLabel}までドラッグアンドドロップします", - "xpack.lens.indexPattern.removeColumnLabel": "「{groupLabel}」から構成を削除", - "xpack.lens.indexPattern.sortField.invalid": "無効なフィールドです。インデックスパターンを確認するか、別のフィールドを選択してください。", - "xpack.lens.indexpattern.suggestions.nestingChangeLabel": "各 {outerOperation} の {innerOperation}", - "xpack.lens.indexpattern.suggestions.overallLabel": "全体の {operation}", - "xpack.lens.indexpattern.suggestions.overTimeLabel": "一定時間", - "xpack.lens.indexPattern.sum": "合計", - "xpack.lens.indexPattern.sum.description": "集約されたドキュメントから抽出された数値を合計する単一値メトリック集約。", - "xpack.lens.indexPattern.sumOf": "{name} の合計", - "xpack.lens.indexPattern.terms": "トップの値", - "xpack.lens.indexPattern.terms.advancedSettings": "高度な設定", - "xpack.lens.indexPattern.terms.missingBucketDescription": "このフィールドなしでドキュメントを含める", - "xpack.lens.indexPattern.terms.missingLabel": "(欠落値)", - "xpack.lens.indexPattern.terms.orderAlphabetical": "アルファベット順", - "xpack.lens.indexPattern.terms.orderAscending": "昇順", - "xpack.lens.indexPattern.terms.orderBy": "ランク条件", - "xpack.lens.indexPattern.terms.orderByHelp": "上位の値がランク付けされる条件となるディメンションを指定します。", - "xpack.lens.indexPattern.terms.orderDescending": "降順", - "xpack.lens.indexPattern.terms.orderDirection": "ランク方向", - "xpack.lens.indexPattern.terms.otherBucketDescription": "他の値を「その他」としてグループ化", - "xpack.lens.indexPattern.terms.otherLabel": "その他", - "xpack.lens.indexPattern.terms.size": "値の数", - "xpack.lens.indexPattern.termsOf": "{name} のトップの値", - "xpack.lens.indexPattern.termsWithMultipleShifts": "単一のレイヤーでは、メトリックを異なる時間シフトと動的な上位の値と組み合わせることができません。すべてのメトリックで同じ時間シフト値を使用するか、上位の値ではなくフィルターを使用します。", - "xpack.lens.indexPattern.termsWithMultipleShiftsFixActionLabel": "フィルターを使用", - "xpack.lens.indexPattern.timeScale.enableTimeScale": "単位で正規化", - "xpack.lens.indexPattern.timeScale.label": "単位で正規化", - "xpack.lens.indexPattern.timeScale.tooltip": "基本の日付間隔に関係なく、常に指定された時間単位のレートとして表示されるように値を正規化します。", - "xpack.lens.indexPattern.timeShift.12hours": "12時間前(12h)", - "xpack.lens.indexPattern.timeShift.3hours": "3時間前(3h)", - "xpack.lens.indexPattern.timeShift.3months": "3か月前(3M)", - "xpack.lens.indexPattern.timeShift.6hours": "6時間前(6h)", - "xpack.lens.indexPattern.timeShift.6months": "6か月前(6M)", - "xpack.lens.indexPattern.timeShift.day": "1日前(1d)", - "xpack.lens.indexPattern.timeShift.help": "時間シフトと単位を入力", - "xpack.lens.indexPattern.timeShift.hour": "1時間前(1h)", - "xpack.lens.indexPattern.timeShift.label": "時間シフト", - "xpack.lens.indexPattern.timeShift.month": "1か月前(1M)", - "xpack.lens.indexPattern.timeShift.noMultipleHelp": "時間シフトは日付ヒストグラム間隔の乗数でなければなりません。時間シフトまたは日付ヒストグラム間隔を調整", - "xpack.lens.indexPattern.timeShift.tooSmallHelp": "時間シフトは日付ヒストグラム間隔よりも大きくなければなりません。時間シフトを増やすか、日付ヒストグラムで間隔を小さくしてください", - "xpack.lens.indexPattern.timeShift.week": "1週間前(1w)", - "xpack.lens.indexPattern.timeShift.year": "1年前(1y)", - "xpack.lens.indexPattern.timeShiftMultipleWarning": "{label}は{columnTimeShift}の時間シフトを使用しています。これは{interval}の日付ヒストグラム間隔の乗数ではありません。不一致のデータを防止するには、時間シフトとして{interval}を使用します。", - "xpack.lens.indexPattern.timeShiftPlaceholder": "カスタム値を入力(例:8w)", - "xpack.lens.indexPattern.timeShiftSmallWarning": "{label}は{columnTimeShift}の時間シフトを使用しています。これは{interval}の日付ヒストグラム間隔よりも小さいです。不一致のデータを防止するには、時間シフトとして{interval}を使用します。", - "xpack.lens.indexPattern.uniqueLabel": "{label} [{num}]", - "xpack.lens.indexPattern.useAsTopLevelAgg": "最初にこのフィールドでグループ化", - "xpack.lens.indexPatterns.clearFiltersLabel": "名前とタイプフィルターを消去", - "xpack.lens.indexPatterns.fieldFiltersLabel": "タイプでフィルタリング", - "xpack.lens.indexPatterns.noAvailableDataLabel": "データを含むフィールドはありません。", - "xpack.lens.indexPatterns.noDataLabel": "フィールドがありません。", - "xpack.lens.indexPatterns.noEmptyDataLabel": "空のフィールドがありません。", - "xpack.lens.indexPatterns.noFields.extendTimeBullet": "時間範囲を拡張中", - "xpack.lens.indexPatterns.noFields.fieldTypeFilterBullet": "別のフィールドフィルターを使用", - "xpack.lens.indexPatterns.noFields.globalFiltersBullet": "グローバルフィルターを変更", - "xpack.lens.indexPatterns.noFields.tryText": "試行対象:", - "xpack.lens.indexPatterns.noFilteredFieldsLabel": "選択したフィルターと一致するフィールドはありません。", - "xpack.lens.indexPatterns.noMetaDataLabel": "メタフィールドがありません。", - "xpack.lens.indexPatternSuggestion.removeLayerLabel": "{indexPatternTitle}のみを表示", - "xpack.lens.indexPatternSuggestion.removeLayerPositionLabel": "レイヤー{layerNumber}のみを表示", - "xpack.lens.labelInput.label": "ラベル", - "xpack.lens.layerPanel.layerVisualizationType": "レイヤービジュアライゼーションタイプ", - "xpack.lens.lensSavedObjectLabel": "レンズビジュアライゼーション", - "xpack.lens.metric.addLayer": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.metric.groupLabel": "表形式の値と単一の値", - "xpack.lens.metric.label": "メトリック", - "xpack.lens.pageTitle": "レンズ", - "xpack.lens.paletteHeatmapGradient.customize": "編集", - "xpack.lens.paletteHeatmapGradient.customizeLong": "パレットを編集", - "xpack.lens.paletteHeatmapGradient.label": "色", - "xpack.lens.palettePicker.label": "カラーパレット", - "xpack.lens.paletteTableGradient.customize": "編集", - "xpack.lens.paletteTableGradient.label": "色", - "xpack.lens.pie.addLayer": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.pie.arrayValues": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", - "xpack.lens.pie.donutLabel": "ドーナッツ", - "xpack.lens.pie.expressionHelpLabel": "円表示", - "xpack.lens.pie.groupLabel": "比率", - "xpack.lens.pie.groupsizeLabel": "サイズ単位", - "xpack.lens.pie.pielabel": "円", - "xpack.lens.pie.pieWithNegativeWarningLabel": "{chartType}グラフは負の値では表示できません。別のビジュアライゼーションを試してください。", - "xpack.lens.pie.sliceGroupLabel": "スライス", - "xpack.lens.pie.suggestionLabel": "{chartName}として", - "xpack.lens.pie.treemapGroupLabel": "グループ分けの条件", - "xpack.lens.pie.treemaplabel": "ツリーマップ", - "xpack.lens.pie.treemapSuggestionLabel": "ツリーマップとして", - "xpack.lens.pie.visualizationName": "円", - "xpack.lens.pieChart.categoriesInLegendLabel": "ラベルを非表示", - "xpack.lens.pieChart.fitInsideOnlyLabel": "内部のみ", - "xpack.lens.pieChart.hiddenNumbersLabel": "グラフから非表示", - "xpack.lens.pieChart.labelPositionLabel": "位置", - "xpack.lens.pieChart.legendVisibility.auto": "自動", - "xpack.lens.pieChart.legendVisibility.hide": "非表示", - "xpack.lens.pieChart.legendVisibility.show": "表示", - "xpack.lens.pieChart.nestedLegendLabel": "ネスト済み", - "xpack.lens.pieChart.numberLabels": "値", - "xpack.lens.pieChart.percentDecimalsLabel": "割合の最大小数点桁数", - "xpack.lens.pieChart.showCategoriesLabel": "内部または外部", - "xpack.lens.pieChart.showFormatterValuesLabel": "値を表示", - "xpack.lens.pieChart.showPercentValuesLabel": "割合を表示", - "xpack.lens.pieChart.showTreemapCategoriesLabel": "ラベルを表示", - "xpack.lens.pieChart.valuesLabel": "ラベル", - "xpack.lens.resetLayerAriaLabel": "レイヤー {index} をリセット", - "xpack.lens.resetVisualizationAriaLabel": "ビジュアライゼーションをリセット", - "xpack.lens.searchTitle": "Lens:ビジュアライゼーションを作成", - "xpack.lens.section.configPanelLabel": "構成パネル", - "xpack.lens.section.dataPanelLabel": "データパネル", - "xpack.lens.section.workspaceLabel": "ビジュアライゼーションワークスペース", - "xpack.lens.shared.chartValueLabelVisibilityLabel": "ラベル", - "xpack.lens.shared.curveLabel": "視覚オプション", - "xpack.lens.shared.legend.filterForValueButtonAriaLabel": "値でフィルター", - "xpack.lens.shared.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", - "xpack.lens.shared.legend.filterOutValueButtonAriaLabel": "値を除外", - "xpack.lens.shared.legendAlignmentLabel": "アラインメント", - "xpack.lens.shared.legendInsideAlignmentLabel": "アラインメント", - "xpack.lens.shared.legendInsideColumnsLabel": "列の数", - "xpack.lens.shared.legendInsideLocationAlignmentLabel": "アラインメント", - "xpack.lens.shared.legendInsideTooltip": "凡例をビジュアライゼーション内に配置する必要があります", - "xpack.lens.shared.legendIsTruncated": "テキストを切り捨てる必要があります", - "xpack.lens.shared.legendLabel": "凡例", - "xpack.lens.shared.legendLocationBottomLeft": "左下", - "xpack.lens.shared.legendLocationBottomRight": "右下", - "xpack.lens.shared.legendLocationLabel": "場所", - "xpack.lens.shared.legendLocationTopLeft": "左上", - "xpack.lens.shared.legendLocationTopRight": "右上", - "xpack.lens.shared.legendPositionBottom": "一番下", - "xpack.lens.shared.legendPositionLeft": "左", - "xpack.lens.shared.legendPositionRight": "右", - "xpack.lens.shared.legendPositionTop": "トップ", - "xpack.lens.shared.legendVisibilityLabel": "表示", - "xpack.lens.shared.legendVisibleTooltip": "凡例を表示する必要があります", - "xpack.lens.shared.maxLinesLabel": "最大行", - "xpack.lens.shared.nestedLegendLabel": "ネスト済み", - "xpack.lens.shared.truncateLegend": "テキストを切り捨て", - "xpack.lens.shared.valueInLegendLabel": "値を表示", - "xpack.lens.sugegstion.refreshSuggestionLabel": "更新", - "xpack.lens.suggestion.refreshSuggestionTooltip": "選択したビジュアライゼーションに基づいて、候補を更新します。", - "xpack.lens.suggestions.currentVisLabel": "現在のビジュアライゼーション", - "xpack.lens.table.actionsLabel": "アクションを表示", - "xpack.lens.table.alignment.center": "中央", - "xpack.lens.table.alignment.label": "テキスト配置", - "xpack.lens.table.alignment.left": "左", - "xpack.lens.table.alignment.right": "右", - "xpack.lens.table.columnFilter.filterForValueText": "列のフィルター", - "xpack.lens.table.columnFilter.filterOutValueText": "列を除外", - "xpack.lens.table.columnVisibilityLabel": "列を非表示", - "xpack.lens.table.defaultAriaLabel": "データ表ビジュアライゼーション", - "xpack.lens.table.dynamicColoring.cell": "セル", - "xpack.lens.table.dynamicColoring.continuity.aboveLabel": "範囲の上", - "xpack.lens.table.dynamicColoring.continuity.allLabel": "範囲の上下", - "xpack.lens.table.dynamicColoring.continuity.belowLabel": "範囲の下", - "xpack.lens.table.dynamicColoring.continuity.label": "色の連続", - "xpack.lens.table.dynamicColoring.continuity.noneLabel": "範囲内", - "xpack.lens.table.dynamicColoring.customPalette.colorStopsHelpPercentage": "割合値は使用可能なデータ値の全範囲に対して相対的です。", - "xpack.lens.table.dynamicColoring.customPalette.colorStopsLabel": "色経由点", - "xpack.lens.table.dynamicColoring.customPalette.continuityHelp": "最初の色経由点の前、最後の色経由点の後に色が表示される方法を指定します。", - "xpack.lens.table.dynamicColoring.label": "値別の色", - "xpack.lens.table.dynamicColoring.none": "なし", - "xpack.lens.table.dynamicColoring.rangeType.label": "値型", - "xpack.lens.table.dynamicColoring.rangeType.number": "数字", - "xpack.lens.table.dynamicColoring.rangeType.percent": "割合(%)", - "xpack.lens.table.dynamicColoring.reverse.label": "色を反転", - "xpack.lens.table.dynamicColoring.text": "テキスト", - "xpack.lens.table.hide.hideLabel": "非表示", - "xpack.lens.table.palettePanelContainer.back": "戻る", - "xpack.lens.table.palettePanelTitle": "色の編集", - "xpack.lens.table.resize.reset": "幅のリセット", - "xpack.lens.table.sort.ascLabel": "昇順に並べ替える", - "xpack.lens.table.sort.descLabel": "降順に並べ替える", - "xpack.lens.table.summaryRow.average": "平均", - "xpack.lens.table.summaryRow.count": "値カウント", - "xpack.lens.table.summaryRow.customlabel": "概要ラベル", - "xpack.lens.table.summaryRow.label": "概要行", - "xpack.lens.table.summaryRow.maximum": "最高", - "xpack.lens.table.summaryRow.minimum": "最低", - "xpack.lens.table.summaryRow.none": "なし", - "xpack.lens.table.summaryRow.sum": "合計", - "xpack.lens.table.tableCellFilter.filterForValueAriaLabel": "値のフィルター:{cellContent}", - "xpack.lens.table.tableCellFilter.filterForValueText": "値でフィルター", - "xpack.lens.table.tableCellFilter.filterOutValueAriaLabel": "値の除外:{cellContent}", - "xpack.lens.table.tableCellFilter.filterOutValueText": "値を除外", - "xpack.lens.timeScale.removeLabel": "時間単位で正規化を削除", - "xpack.lens.timeShift.removeLabel": "時間シフトを削除", - "xpack.lens.visTypeAlias.description": "ドラッグアンドドロップエディターでビジュアライゼーションを作成します。いつでもビジュアライゼーションタイプを切り替えることができます。", - "xpack.lens.visTypeAlias.note": "ほとんどのユーザーに推奨されます。", - "xpack.lens.visTypeAlias.title": "レンズ", - "xpack.lens.visTypeAlias.type": "レンズ", - "xpack.lens.visualizeGeoFieldMessage": "Lensは{fieldType}フィールドを可視化できません", - "xpack.lens.xyChart.addDataLayerLabel": "ビジュアライゼーションレイヤーを追加", - "xpack.lens.xyChart.addLayer": "レイヤーを追加", - "xpack.lens.xyChart.addLayerTooltip": "複数のレイヤーを使用すると、ビジュアライゼーションタイプを組み合わせたり、別のインデックスパターンを可視化したりすることができます。", - "xpack.lens.xyChart.axisExtent.custom": "カスタム", - "xpack.lens.xyChart.axisExtent.dataBounds": "データ境界", - "xpack.lens.xyChart.axisExtent.disabledDataBoundsMessage": "折れ線グラフのみをデータ境界に合わせることができます", - "xpack.lens.xyChart.axisExtent.full": "完全", - "xpack.lens.xyChart.axisExtent.label": "境界", - "xpack.lens.xyChart.axisNameLabel": "軸名", - "xpack.lens.xyChart.axisOrientation.angled": "傾斜", - "xpack.lens.xyChart.axisOrientation.horizontal": "横", - "xpack.lens.xyChart.axisOrientation.label": "向き", - "xpack.lens.xyChart.axisOrientation.vertical": "縦", - "xpack.lens.xyChart.axisSide.auto": "自動", - "xpack.lens.xyChart.axisSide.bottom": "一番下", - "xpack.lens.xyChart.axisSide.label": "軸側", - "xpack.lens.xyChart.axisSide.left": "左", - "xpack.lens.xyChart.axisSide.right": "右", - "xpack.lens.xyChart.axisSide.top": "トップ", - "xpack.lens.xyChart.axisTitlesSettings.help": "xおよびy軸のタイトルを表示", - "xpack.lens.xyChart.bottomAxisDisabledHelpText": "この設定は、下の軸が有効であるときにのみ適用されます。", - "xpack.lens.xyChart.bottomAxisLabel": "下の軸", - "xpack.lens.xyChart.boundaryError": "下界は上界よりも大きくなければなりません", - "xpack.lens.xyChart.chartTypeLabel": "チャートタイプ", - "xpack.lens.xyChart.chartTypeLegend": "チャートタイプ", - "xpack.lens.xyChart.curveStyleLabel": "曲線", - "xpack.lens.xyChart.curveType.help": "折れ線グラフで曲線タイプをレンダリングする方法を定義します", - "xpack.lens.xyChart.emptyXLabel": "(空)", - "xpack.lens.xyChart.extentMode.help": "範囲モード", - "xpack.lens.xyChart.fillOpacity.help": "エリアグラフの塗りつぶしの透明度を定義", - "xpack.lens.xyChart.fillOpacityLabel": "塗りつぶしの透明度", - "xpack.lens.xyChart.fittingFunction.help": "欠測値の処理方法を定義", - "xpack.lens.xyChart.floatingColumns.help": "凡例がグラフ内に表示されるときに列数を指定します。", - "xpack.lens.xyChart.Gridlines": "グリッド線", - "xpack.lens.xyChart.gridlinesSettings.help": "xおよびy軸のグリッド線を表示", - "xpack.lens.xyChart.help": "X/Y チャート", - "xpack.lens.xyChart.hideEndzones.help": "部分データの終了ゾーンマーカーを非表示", - "xpack.lens.xyChart.horizontalAlignment.help": "凡例がグラフ内に表示されるときに凡例の横の配置を指定します。", - "xpack.lens.xyChart.horizontalAxisLabel": "横軸", - "xpack.lens.xyChart.inclusiveZero": "境界にはゼロを含める必要があります。", - "xpack.lens.xyChart.isInside.help": "凡例がグラフ内に表示されるかどうかを指定します", - "xpack.lens.xyChart.isVisible.help": "判例の表示・非表示を指定します。", - "xpack.lens.xyChart.labelsOrientation.help": "軸ラベルの回転を定義します", - "xpack.lens.xyChart.leftAxisDisabledHelpText": "この設定は、左の軸が有効であるときにのみ適用されます。", - "xpack.lens.xyChart.leftAxisLabel": "左の軸", - "xpack.lens.xyChart.legend.help": "チャートの凡例を構成します。", - "xpack.lens.xyChart.legendLocation.inside": "内部", - "xpack.lens.xyChart.legendLocation.outside": "外側", - "xpack.lens.xyChart.legendVisibility.auto": "自動", - "xpack.lens.xyChart.legendVisibility.hide": "非表示", - "xpack.lens.xyChart.legendVisibility.show": "表示", - "xpack.lens.xyChart.lowerBoundLabel": "下界", - "xpack.lens.xyChart.maxLines.help": "凡例項目ごとの行数を指定します。", - "xpack.lens.xyChart.missingValuesLabel": "欠測値", - "xpack.lens.xyChart.missingValuesLabelHelpText": "デフォルトでは、Lensではデータのギャップが表示されません。ギャップを埋めるには、選択します。", - "xpack.lens.xyChart.nestUnderRoot": "データセット全体", - "xpack.lens.xyChart.overwriteAxisTitle": "軸タイトルを上書き", - "xpack.lens.xyChart.position.help": "凡例の配置を指定します。", - "xpack.lens.xyChart.renderer.help": "X/Y チャートを再レンダリング", - "xpack.lens.xyChart.rightAxisDisabledHelpText": "この設定は、右の軸が有効であるときにのみ適用されます。", - "xpack.lens.xyChart.rightAxisLabel": "右の軸", - "xpack.lens.xyChart.seriesColor.auto": "自動", - "xpack.lens.xyChart.seriesColor.label": "系列色", - "xpack.lens.xyChart.shouldTruncate.help": "凡例項目が切り捨てられるかどうかを指定します", - "xpack.lens.xyChart.ShowAxisTitleLabel": "表示", - "xpack.lens.xyChart.showEnzones": "部分データマーカーを表示", - "xpack.lens.xyChart.showSingleSeries.help": "エントリが1件の凡例を表示するかどうかを指定します", - "xpack.lens.xyChart.splitSeries": "内訳の基準", - "xpack.lens.xyChart.tickLabels": "目盛ラベル", - "xpack.lens.xyChart.tickLabelsSettings.help": "xおよびy軸の目盛ラベルを表示", - "xpack.lens.xyChart.title.help": "軸のタイトル", - "xpack.lens.xyChart.topAxisDisabledHelpText": "この設定は、上の軸が有効であるときにのみ適用されます。", - "xpack.lens.xyChart.topAxisLabel": "上の軸", - "xpack.lens.xyChart.upperBoundLabel": "上界", - "xpack.lens.xyChart.valuesHistogramDisabledHelpText": "この設定はヒストグラムで変更できません。", - "xpack.lens.xyChart.valuesInLegend.help": "凡例に値を表示", - "xpack.lens.xyChart.valuesPercentageDisabledHelpText": "この設定は割合エリアグラフで変更できません。", - "xpack.lens.xyChart.valuesStackedDisabledHelpText": "この設定は積み上げ棒グラフまたは割合棒グラフで変更できません", - "xpack.lens.xyChart.verticalAlignment.help": "凡例がグラフ内に表示されるときに凡例の縦の配置を指定します。", - "xpack.lens.xyChart.verticalAxisLabel": "縦軸", - "xpack.lens.xyChart.xAxisGridlines.help": "x 軸のグリッド線を表示するかどうかを指定します。", - "xpack.lens.xyChart.xAxisLabelsOrientation.help": "x軸のラベルの向きを指定します。", - "xpack.lens.xyChart.xAxisTickLabels.help": "x軸の目盛ラベルを表示するかどうかを指定します。", - "xpack.lens.xyChart.xAxisTitle.help": "x軸のタイトルを表示するかどうかを指定します。", - "xpack.lens.xyChart.xTitle.help": "x軸のタイトル", - "xpack.lens.xyChart.yLeftAxisgridlines.help": "左y軸のグリッド線を表示するかどうかを指定します。", - "xpack.lens.xyChart.yLeftAxisLabelsOrientation.help": "左y軸のラベルの向きを指定します。", - "xpack.lens.xyChart.yLeftAxisTickLabels.help": "左y軸の目盛ラベルを表示するかどうかを指定します。", - "xpack.lens.xyChart.yLeftAxisTitle.help": "左y軸のタイトルを表示するかどうかを指定します。", - "xpack.lens.xyChart.yLeftExtent.help": "Y左軸範囲", - "xpack.lens.xyChart.yLeftTitle.help": "左y軸のタイトル", - "xpack.lens.xyChart.yRightAxisgridlines.help": "右y軸のグリッド線を表示するかどうかを指定します。", - "xpack.lens.xyChart.yRightAxisLabelsOrientation.help": "右y軸のラベルの向きを指定します。", - "xpack.lens.xyChart.yRightAxisTickLabels.help": "右y軸の目盛ラベルを表示するかどうかを指定します。", - "xpack.lens.xyChart.yRightAxisTitle.help": "右y軸のタイトルを表示するかどうかを指定します。", - "xpack.lens.xyChart.yRightExtent.help": "Y右軸範囲", - "xpack.lens.xyChart.yRightTitle.help": "右 y 軸のタイトル", - "xpack.lens.xySuggestions.asPercentageTitle": "割合(%)", - "xpack.lens.xySuggestions.barChartTitle": "棒グラフ", - "xpack.lens.xySuggestions.dateSuggestion": "{xTitle}の上の {yTitle}", - "xpack.lens.xySuggestions.emptyAxisTitle": "(空)", - "xpack.lens.xySuggestions.flipTitle": "反転", - "xpack.lens.xySuggestions.lineChartTitle": "折れ線グラフ", - "xpack.lens.xySuggestions.nonDateSuggestion": "{yTitle}/{xTitle}", - "xpack.lens.xySuggestions.stackedChartTitle": "スタック", - "xpack.lens.xySuggestions.unstackedChartTitle": "スタックが解除されました", - "xpack.lens.xySuggestions.yAxixConjunctionSign": " & ", - "xpack.lens.xyVisualization.areaLabel": "エリア", - "xpack.lens.xyVisualization.arrayValues": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", - "xpack.lens.xyVisualization.barGroupLabel": "棒", - "xpack.lens.xyVisualization.barHorizontalFullLabel": "横棒", - "xpack.lens.xyVisualization.barHorizontalLabel": "H.棒", - "xpack.lens.xyVisualization.barLabel": "縦棒", - "xpack.lens.xyVisualization.dataFailureSplitShort": "{axis} がありません。", - "xpack.lens.xyVisualization.dataFailureYShort": "{axis} がありません。", - "xpack.lens.xyVisualization.dataTypeFailureXLong": "{axis}のデータ型が一致しません。日付と数値間隔型を混合することはできません。", - "xpack.lens.xyVisualization.dataTypeFailureXOrdinalLong": "{axis}のデータ型が一致しません。別の関数を使用してください。", - "xpack.lens.xyVisualization.dataTypeFailureXShort": "{axis}のデータ型が正しくありません。", - "xpack.lens.xyVisualization.dataTypeFailureYLong": "{axis}のディメンション{label}のデータ型が正しくありません。数値が想定されていますが、{dataType}です", - "xpack.lens.xyVisualization.dataTypeFailureYShort": "{axis}のデータ型が正しくありません。", - "xpack.lens.xyVisualization.lineGroupLabel": "折れ線と面", - "xpack.lens.xyVisualization.lineLabel": "折れ線", - "xpack.lens.xyVisualization.mixedBarHorizontalLabel": "混在した横棒", - "xpack.lens.xyVisualization.mixedLabel": "ミックスされた XY", - "xpack.lens.xyVisualization.noDataLabel": "結果が見つかりませんでした", - "xpack.lens.xyVisualization.stackedAreaLabel": "面積み上げ", - "xpack.lens.xyVisualization.stackedBarHorizontalFullLabel": "積み上げ横棒", - "xpack.lens.xyVisualization.stackedBarHorizontalLabel": "H.積み上げ棒", - "xpack.lens.xyVisualization.stackedBarLabel": "積み上げ縦棒", - "xpack.lens.xyVisualization.stackedPercentageAreaLabel": "面割合", - "xpack.lens.xyVisualization.stackedPercentageBarHorizontalFullLabel": "横棒割合", - "xpack.lens.xyVisualization.stackedPercentageBarHorizontalLabel": "H.割合棒", - "xpack.lens.xyVisualization.stackedPercentageBarLabel": "縦棒割合", - "xpack.lens.xyVisualization.xyLabel": "XY", - "advancedSettings.advancedSettingsLabel": "高度な設定", - "advancedSettings.badge.readOnly.text": "読み取り専用", - "advancedSettings.badge.readOnly.tooltip": "高度な設定を保存できません", - "advancedSettings.callOutCautionDescription": "これらの設定は非常に上級ユーザー向けなのでご注意ください。ここでの変更は Kibana の重要な部分に不具合を生じさせる可能性があります。これらの設定は非公開、サポート対象外、または実験的な場合があります。フィールドにデフォルト値がある場合、そのフィールドを未入力のままにするとデフォルトに戻り、他の構成で許容されないことがあります。カスタム設定を削除すると、Kibana の構成から永久に削除されます。", - "advancedSettings.callOutCautionTitle": "注意:不具合につながる可能性があります", - "advancedSettings.categoryNames.dashboardLabel": "ダッシュボード", - "advancedSettings.categoryNames.discoverLabel": "Discover", - "advancedSettings.categoryNames.generalLabel": "一般", - "advancedSettings.categoryNames.machineLearningLabel": "機械学習", - "advancedSettings.categoryNames.notificationsLabel": "通知", - "advancedSettings.categoryNames.observabilityLabel": "オブザーバビリティ", - "advancedSettings.categoryNames.reportingLabel": "レポート", - "advancedSettings.categoryNames.searchLabel": "検索", - "advancedSettings.categoryNames.securitySolutionLabel": "セキュリティソリューション", - "advancedSettings.categoryNames.timelionLabel": "Timelion", - "advancedSettings.categoryNames.visualizationsLabel": "ビジュアライゼーション", - "advancedSettings.categorySearchLabel": "カテゴリー", - "advancedSettings.featureCatalogueTitle": "日付形式の変更、ダークモードの有効化など、Kibanaエクスペリエンスをカスタマイズします。", - "advancedSettings.field.changeImageLinkAriaLabel": "{ariaName} を変更", - "advancedSettings.field.changeImageLinkText": "画像を変更", - "advancedSettings.field.codeEditorSyntaxErrorMessage": "無効な JSON 構文", - "advancedSettings.field.customSettingAriaLabel": "カスタム設定", - "advancedSettings.field.customSettingTooltip": "カスタム設定", - "advancedSettings.field.defaultValueText": "デフォルト:{value}", - "advancedSettings.field.defaultValueTypeJsonText": "デフォルト:{value}", - "advancedSettings.field.deprecationClickAreaLabel": "クリックすると {settingName} のサポート終了に関するドキュメントが表示されます。", - "advancedSettings.field.helpText": "この設定は Kibana サーバーにより上書きされ、変更することはできません。", - "advancedSettings.field.imageChangeErrorMessage": "画像を保存できませんでした", - "advancedSettings.field.invalidIconLabel": "無効", - "advancedSettings.field.offLabel": "オフ", - "advancedSettings.field.onLabel": "オン", - "advancedSettings.field.resetToDefaultLinkAriaLabel": "{ariaName} をデフォルトにリセット", - "advancedSettings.field.resetToDefaultLinkText": "デフォルトにリセット", - "advancedSettings.field.settingIsUnsaved": "設定は現在保存されていません。", - "advancedSettings.field.unsavedIconLabel": "未保存", - "advancedSettings.form.cancelButtonLabel": "変更をキャンセル", - "advancedSettings.form.clearNoSearchResultText": "(検索結果を消去)", - "advancedSettings.form.clearSearchResultText": "(検索結果を消去)", - "advancedSettings.form.noSearchResultText": "{queryText} {clearSearch}の設定が見つかりません", - "advancedSettings.form.requiresPageReloadToastButtonLabel": "ページを再読み込み", - "advancedSettings.form.requiresPageReloadToastDescription": "設定を有効にするためにページの再読み込みが必要です。", - "advancedSettings.form.saveButtonLabel": "変更を保存", - "advancedSettings.form.saveButtonTooltipWithInvalidChanges": "保存前に無効な設定を修正してください。", - "advancedSettings.form.saveErrorMessage": "を保存できませんでした", - "advancedSettings.form.searchResultText": "検索用語により {settingsCount} 件の設定が非表示になっています {clearSearch}", - "advancedSettings.pageTitle": "設定", - "advancedSettings.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", - "advancedSettings.searchBarAriaLabel": "高度な設定を検索", - "advancedSettings.voiceAnnouncement.ariaLabel": "詳細設定結果情報", - "alerts.documentationTitle": "ドキュメンテーションを表示", - "alerts.noPermissionsMessage": "アラートを表示するには、Kibanaスペースでアラート機能の権限が必要です。詳細については、Kibana管理者に連絡してください。", - "alerts.noPermissionsTitle": "Kibana機能権限が必要です", - "autocomplete.fieldRequiredError": "値を空にすることはできません", - "autocomplete.invalidDateError": "有効な日付ではありません", - "autocomplete.invalidNumberError": "有効な数値ではありません", - "autocomplete.loadingDescription": "読み込み中...", - "autocomplete.selectField": "最初にフィールドを選択してください...", - "bfetch.disableBfetchCompression": "バッチ圧縮を無効にする", - "bfetch.disableBfetchCompressionDesc": "バッチ圧縮を無効にします。個別の要求をデバッグできますが、応答サイズが大きくなります。", - "charts.advancedSettings.visualization.colorMappingText": "<strong>互換性</strong>パレットを使用して、グラフで値を特定の色にマッピング色にマッピングします。", - "charts.advancedSettings.visualization.colorMappingTextDeprecation": "この設定はサポートが終了し、Kibana 8.0 ではサポートされません。", - "charts.advancedSettings.visualization.colorMappingTitle": "カラーマッピング", - "charts.colormaps.bluesText": "青", - "charts.colormaps.greensText": "緑", - "charts.colormaps.greenToRedText": "緑から赤", - "charts.colormaps.greysText": "グレー", - "charts.colormaps.redsText": "赤", - "charts.colormaps.yellowToRedText": "黄色から赤", - "charts.colorPicker.clearColor": "色をリセット", - "charts.colorPicker.setColor.screenReaderDescription": "値 {legendDataLabel} の色を設定", - "charts.countText": "カウント", - "charts.functions.palette.args.colorHelpText": "パレットの色です。{html} カラー名、{hex}、{hsl}、{hsla}、{rgb}、または {rgba} を使用できます。", - "charts.functions.palette.args.gradientHelpText": "サポートされている場合グラデーションパレットを作成しますか?", - "charts.functions.palette.args.reverseHelpText": "パレットを反転させますか?", - "charts.functions.palette.args.stopHelpText": "パレットの色経由点。使用するときには、各色に関連付ける必要があります。", - "charts.functions.paletteHelpText": "カラーパレットを作成します。", - "charts.functions.systemPalette.args.nameHelpText": "パレットリストのパレットの名前", - "charts.functions.systemPaletteHelpText": "動的カラーパレットを作成します。", - "charts.legend.toggleLegendButtonAriaLabel": "凡例を切り替える", - "charts.legend.toggleLegendButtonTitle": "凡例を切り替える", - "charts.palettes.complimentaryLabel": "無料", - "charts.palettes.coolLabel": "Cool", - "charts.palettes.customLabel": "カスタム", - "charts.palettes.defaultPaletteLabel": "デフォルト", - "charts.palettes.grayLabel": "グレー", - "charts.palettes.kibanaPaletteLabel": "互換性", - "charts.palettes.negativeLabel": "負", - "charts.palettes.positiveLabel": "正", - "charts.palettes.statusLabel": "ステータス", - "charts.palettes.temperatureLabel": "温度", - "charts.palettes.warmLabel": "ウォーム", - "charts.partialData.bucketTooltipText": "選択された時間範囲にはこのバケット全体は含まれていません。一部データが含まれている可能性があります。", - "console.autocomplete.addMethodMetaText": "メソド", - "console.consoleDisplayName": "コンソール", - "console.consoleMenu.copyAsCurlFailedMessage": "要求をcURLとしてコピーできませんでした", - "console.consoleMenu.copyAsCurlMessage": "リクエストが URL としてコピーされました", - "console.devToolsDescription": "コンソールでデータを操作するには、cURLをスキップして、JSONインターフェイスを使用します。", - "console.devToolsTitle": "Elasticsearch APIとの連携", - "console.exampleOutputTextarea": "開発ツールコンソールエディターの例", - "console.helpPage.keyboardCommands.autoIndentDescription": "現在のリクエストを自動インデントします", - "console.helpPage.keyboardCommands.closeAutoCompleteMenuDescription": "自動入力メニューを閉じます", - "console.helpPage.keyboardCommands.collapseAllScopesDescription": "現在のスコープを除きすべてのスコープを最小表示します。シフトを追加して拡張します。", - "console.helpPage.keyboardCommands.collapseExpandCurrentScopeDescription": "現在のスコープを最小/拡張表示します。", - "console.helpPage.keyboardCommands.jumpToPreviousNextRequestDescription": "前/次のリクエストの開始または終了に移動します。", - "console.helpPage.keyboardCommands.openAutoCompleteDescription": "自動入力を開きます(未入力時を含む)", - "console.helpPage.keyboardCommands.openDocumentationDescription": "現在のリクエストのドキュメントを開きます", - "console.helpPage.keyboardCommands.selectCurrentlySelectedInAutoCompleteMenuDescription": "現在の選択項目または自動入力メニューで最も使用されている用語を選択します", - "console.helpPage.keyboardCommands.submitRequestDescription": "リクエストを送信します", - "console.helpPage.keyboardCommands.switchFocusToAutoCompleteMenuDescription": "自動入力メニューに焦点を切り替えます。矢印を使用してさらに用語を選択します", - "console.helpPage.keyboardCommandsTitle": "キーボードコマンド", - "console.helpPage.pageTitle": "ヘルプ", - "console.helpPage.requestFormatDescription": "ホワイトエディターに 1 つ以上のリクエストを入力できます。コンソールはコンパクトなフォーマットのリクエストを理解できます。", - "console.helpPage.requestFormatTitle": "リクエストフォーマット", - "console.historyPage.applyHistoryButtonLabel": "適用", - "console.historyPage.clearHistoryButtonLabel": "クリア", - "console.historyPage.closehistoryButtonLabel": "閉じる", - "console.historyPage.itemOfRequestListAriaLabel": "リクエスト:{historyItem}", - "console.historyPage.noHistoryTextMessage": "履歴がありません", - "console.historyPage.pageTitle": "履歴", - "console.historyPage.requestListAriaLabel": "リクエストの送信履歴", - "console.inputTextarea": "開発ツールコンソール", - "console.loadingError.buttonLabel": "コンソールの再読み込み", - "console.loadingError.message": "最新データを取得するために再読み込みを試してください。", - "console.loadingError.title": "コンソールを読み込めません", - "console.notification.error.couldNotSaveRequestTitle": "リクエストをコンソール履歴に保存できませんでした。", - "console.notification.error.historyQuotaReachedMessage": "リクエスト履歴が満杯です。コンソール履歴を消去して、新しいリクエストを保存します。", - "console.notification.error.noRequestSelectedTitle": "リクエストを選択していません。リクエストの中にカーソルを置いて選択します。", - "console.notification.error.unknownErrorTitle": "不明なリクエストエラー", - "console.outputTextarea": "開発ツールコンソール出力", - "console.pageHeading": "コンソール", - "console.requestInProgressBadgeText": "リクエストが進行中", - "console.requestOptions.autoIndentButtonLabel": "自動インデント", - "console.requestOptions.copyAsUrlButtonLabel": "cURL としてコピー", - "console.requestOptions.openDocumentationButtonLabel": "ドキュメントを開く", - "console.requestOptionsButtonAriaLabel": "リクエストオプション", - "console.requestTimeElapasedBadgeTooltipContent": "経過時間", - "console.sendRequestButtonTooltip": "クリックしてリクエストを送信", - "console.settingsPage.autocompleteLabel": "自動入力", - "console.settingsPage.cancelButtonLabel": "キャンセル", - "console.settingsPage.fieldsLabelText": "フィールド", - "console.settingsPage.fontSizeLabel": "フォントサイズ", - "console.settingsPage.indicesAndAliasesLabelText": "インデックスとエイリアス", - "console.settingsPage.jsonSyntaxLabel": "JSON構文", - "console.settingsPage.pageTitle": "コンソール設定", - "console.settingsPage.pollingLabelText": "自動入力候補を自動的に更新", - "console.settingsPage.refreshButtonLabel": "自動入力候補の更新", - "console.settingsPage.refreshingDataDescription": "コンソールは、Elasticsearchをクエリして自動入力候補を更新します。クラスターが大きい場合や、ネットワークの制限がある場合には、自動更新で問題が発生する可能性があります。", - "console.settingsPage.refreshingDataLabel": "自動入力候補を更新しています", - "console.settingsPage.saveButtonLabel": "保存", - "console.settingsPage.templatesLabelText": "テンプレート", - "console.settingsPage.tripleQuotesMessage": "出力ウィンドウでは三重引用符を使用してください", - "console.settingsPage.wrapLongLinesLabelText": "長い行を改行", - "console.topNav.helpTabDescription": "ヘルプ", - "console.topNav.helpTabLabel": "ヘルプ", - "console.topNav.historyTabDescription": "履歴", - "console.topNav.historyTabLabel": "履歴", - "console.topNav.settingsTabDescription": "設定", - "console.topNav.settingsTabLabel": "設定", - "console.welcomePage.closeButtonLabel": "閉じる", - "console.welcomePage.pageTitle": "コンソールへようこそ", - "console.welcomePage.quickIntroDescription": "コンソール UI は、エディターペイン(左)と応答ペイン(右)の 2 つのペインに分かれています。エディターでリクエストを入力し、Elasticsearch に送信します。結果が右側の応答ペインに表示されます。", - "console.welcomePage.quickIntroTitle": "UI の簡単な説明", - "console.welcomePage.quickTips.cUrlFormatForRequestsDescription": "cURL フォーマットのリクエストを貼り付けると、Console 構文に変換されます。", - "console.welcomePage.quickTips.keyboardShortcutsDescription": "ヘルプボタンでキーボードショートカットが学べます。便利な情報が揃っています!", - "console.welcomePage.quickTips.resizeEditorDescription": "間の区切りをドラッグすることで、エディターとアウトプットペインのサイズを変更できます。", - "console.welcomePage.quickTips.submitRequestDescription": "緑の三角形のボタンをクリックして ES にリクエストを送信します。", - "console.welcomePage.quickTips.useWrenchMenuDescription": "レンチメニューで他の便利な機能が使えます。", - "console.welcomePage.quickTipsTitle": "今のうちにいくつか簡単なコツをお教えします", - "console.welcomePage.supportedRequestFormatDescription": "リクエストの入力中、コンソールが候補を提案するので、Enter/Tabを押して確定できます。これらの候補はリクエストの構造、およびインデックス、タイプに基づくものです。", - "console.welcomePage.supportedRequestFormatTitle": "コンソールは cURL と同様に、コンパクトなフォーマットのリクエストを理解できます。", - "core.application.appContainer.loadingAriaLabel": "アプリケーションを読み込んでいます", - "core.application.appNotFound.pageDescription": "この URL にアプリケーションが見つかりませんでした。前の画面に戻るか、メニューからアプリを選択してみてください。", - "core.application.appNotFound.title": "アプリケーションが見つかりません", - "core.application.appRenderError.defaultTitle": "アプリケーションエラー", - "core.chrome.browserDeprecationLink": "Web サイトのサポートマトリックス", - "core.chrome.browserDeprecationWarning": "このソフトウェアの将来のバージョンでは、Internet Explorerのサポートが削除されます。{link}をご確認ください。", - "core.chrome.legacyBrowserWarning": "ご使用のブラウザが Kibana のセキュリティ要件を満たしていません。", - "core.euiAccordion.isLoading": "読み込み中", - "core.euiBasicTable.selectAllRows": "すべての行を選択", - "core.euiBasicTable.selectThisRow": "この行を選択", - "core.euiBasicTable.tableAutoCaptionWithoutPagination": "この表には{itemCount}行あります。", - "core.euiBasicTable.tableAutoCaptionWithPagination": "この表には{totalItemCount}行中{itemCount}行あります; {page}/{pageCount}ページ。", - "core.euiBasicTable.tableCaptionWithPagination": "{tableCaption}; {page}/{pageCount}ページ。", - "core.euiBasicTable.tablePagination": "前の表のページネーション: {tableCaption}", - "core.euiBasicTable.tableSimpleAutoCaptionWithPagination": "この表には{itemCount}行あります; {page}/{pageCount}ページ。", - "core.euiBottomBar.customScreenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマーク{landmarkHeading}とページレベルのコントロールがあります。", - "core.euiBottomBar.screenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマークとページレベルのコントロールがあります。", - "core.euiBottomBar.screenReaderHeading": "ページレベルのコントロール", - "core.euiBreadcrumbs.collapsedBadge.ariaLabel": "折りたたまれたブレッドクラムを表示", - "core.euiBreadcrumbs.nav.ariaLabel": "ブレッドクラム", - "core.euiCardSelect.select": "選択してください", - "core.euiCardSelect.selected": "利用不可", - "core.euiCardSelect.unavailable": "選択済み", - "core.euiCodeBlock.copyButton": "コピー", - "core.euiCodeBlock.fullscreenCollapse": "縮小", - "core.euiCodeBlock.fullscreenExpand": "拡張", - "core.euiCodeEditor.startEditing": "編集を開始するにはEnterキーを押してください。", - "core.euiCodeEditor.startInteracting": "コードの操作を開始するには Enter キーを押してください。", - "core.euiCodeEditor.stopEditing": "完了したら Esc キーで編集を終了します。", - "core.euiCodeEditor.stopInteracting": "完了したら Esc キーでコードの操作を終了します。", - "core.euiCollapsedItemActions.allActions": "すべてのアクション", - "core.euiColorPicker.alphaLabel": "アルファチャネル(不透明)値", - "core.euiColorPicker.closeLabel": "下矢印キーを押すと、色オプションを含むポップオーバーが開きます", - "core.euiColorPicker.colorErrorMessage": "無効な色値", - "core.euiColorPicker.colorLabel": "色値", - "core.euiColorPicker.openLabel": "Escapeキーを押すと、ポップオーバーを閉じます", - "core.euiColorPicker.popoverLabel": "色選択ダイアログ", - "core.euiColorPicker.transparent": "透明", - "core.euiColorPickerSwatch.ariaLabel": "色として{color}を選択します", - "core.euiColorStops.screenReaderAnnouncement": "{label}:{readOnly} {disabled}色終了位置ピッカー。各終了には数値と対応するカラー値があります。上下矢印キーを使用して、個別の終了を選択します。Enterキーを押すと、新しい終了を作成します。", - "core.euiColorStopThumb.buttonAriaLabel": "Enterキーを押すと、この点を変更します。Escapeキーを押すと、グループにフォーカスします", - "core.euiColorStopThumb.buttonTitle": "クリックすると編集できます。ドラッグすると再配置できます", - "core.euiColorStopThumb.removeLabel": "この終了を削除", - "core.euiColorStopThumb.screenReaderAnnouncement": "カラー終了編集フォームのポップアップが開きました。Tabを押してフォームコントロールを閲覧するか、Escでこのポップアップを閉じます。", - "core.euiColorStopThumb.stopErrorMessage": "値が範囲外です", - "core.euiColorStopThumb.stopLabel": "点値", - "core.euiColumnActions.hideColumn": "列を非表示", - "core.euiColumnActions.moveLeft": "左に移動", - "core.euiColumnActions.moveRight": "右に移動", - "core.euiColumnActions.sort": "{schemaLabel}を並べ替える", - "core.euiColumnSelector.button": "列", - "core.euiColumnSelector.buttonActivePlural": "{numberOfHiddenFields}個の列が非表示です", - "core.euiColumnSelector.buttonActiveSingular": "{numberOfHiddenFields}個の列が非表示です", - "core.euiColumnSelector.hideAll": "すべて非表示", - "core.euiColumnSelector.search": "検索", - "core.euiColumnSelector.searchcolumns": "列を検索", - "core.euiColumnSelector.selectAll": "すべて表示", - "core.euiColumnSorting.button": "フィールドの並べ替え", - "core.euiColumnSorting.clearAll": "並び替えを消去", - "core.euiColumnSorting.emptySorting": "現在並び替えられているフィールドはありません", - "core.euiColumnSorting.pickFields": "並び替え基準でフィールドの選択", - "core.euiColumnSorting.sortFieldAriaLabel": "並べ替え基準:", - "core.euiColumnSortingDraggable.defaultSortAsc": "A-Z", - "core.euiColumnSortingDraggable.defaultSortDesc": "Z-A", - "core.euiComboBoxOptionsList.allOptionsSelected": "利用可能なオプションをすべて選択しました", - "core.euiComboBoxOptionsList.alreadyAdded": "{label} はすでに追加されています", - "core.euiComboBoxOptionsList.createCustomOption": "{searchValue}をカスタムオプションとして追加", - "core.euiComboBoxOptionsList.delimiterMessage": "各項目を{delimiter}で区切って追加", - "core.euiComboBoxOptionsList.loadingOptions": "オプションを読み込み中", - "core.euiComboBoxOptionsList.noAvailableOptions": "利用可能なオプションがありません", - "core.euiComboBoxOptionsList.noMatchingOptions": "{searchValue} はどのオプションにも一致していません", - "core.euiComboBoxPill.removeSelection": "グループの選択項目から {children} を削除してください", - "core.euiCommonlyUsedTimeRanges.legend": "頻繁に使用", - "core.euiControlBar.customScreenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマーク{landmarkHeading}とページレベルのコントロールがあります。", - "core.euiControlBar.screenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマークとページレベルのコントロールがあります。", - "core.euiControlBar.screenReaderHeading": "ページレベルのコントロール", - "core.euiDataGrid.ariaLabel": "{label}; {page}/{pageCount}ページ。", - "core.euiDataGrid.ariaLabelledBy": "{page}/{pageCount}ページ。", - "core.euiDataGrid.screenReaderNotice": "セルにはインタラクティブコンテンツが含まれます。", - "core.euiDataGridCellButtons.expandButtonTitle": "クリックするか enter を押すと、セルのコンテンツとインタラクトできます。", - "core.euiDataGridHeaderCell.headerActions": "ヘッダーアクション", - "core.euiDataGridSchema.booleanSortTextAsc": "False-True", - "core.euiDataGridSchema.booleanSortTextDesc": "True-False", - "core.euiDataGridSchema.currencySortTextAsc": "低-高", - "core.euiDataGridSchema.currencySortTextDesc": "高-低", - "core.euiDataGridSchema.dateSortTextAsc": "旧-新", - "core.euiDataGridSchema.dateSortTextDesc": "新-旧", - "core.euiDataGridSchema.jsonSortTextAsc": "小-大", - "core.euiDataGridSchema.jsonSortTextDesc": "大-小", - "core.euiDataGridSchema.numberSortTextAsc": "低-高", - "core.euiDataGridSchema.numberSortTextDesc": "高-低", - "core.euiDatePopoverButton.outdatedTitle": "更新が必要:{title}", - "core.euiFieldPassword.maskPassword": "パスワードをマスク", - "core.euiFieldPassword.showPassword": "プレーンテキストとしてパスワードを表示します。注記:パスワードは画面上に見えるように表示されます。", - "core.euiFilePicker.clearSelectedFiles": "選択したファイルを消去", - "core.euiFilePicker.removeSelected": "削除", - "core.euiFlyout.closeAriaLabel": "このダイアログを閉じる", - "core.euiForm.addressFormErrors": "ハイライトされたエラーを修正してください。", - "core.euiFormControlLayoutClearButton.label": "インプットを消去", - "core.euiHeaderLinks.appNavigation": "アプリメニュー", - "core.euiHeaderLinks.openNavigationMenu": "メニューを開く", - "core.euiHue.label": "HSV カラーモードの「色相」値を選択", - "core.euiImage.closeImage": "全画面 {alt} 画像を閉じる", - "core.euiImage.openImage": "全画面 {alt} 画像を開く", - "core.euiLink.external.ariaLabel": "外部リンク", - "core.euiLink.newTarget.screenReaderOnlyText": "(新しいタブまたはウィンドウで開く)", - "core.euiMarkdownEditorFooter.closeButton": "閉じる", - "core.euiMarkdownEditorFooter.errorsTitle": "エラー", - "core.euiMarkdownEditorFooter.openUploadModal": "ファイルのアップロードモーダルを開く", - "core.euiMarkdownEditorFooter.showMarkdownHelp": "マークダウンヘルプを表示", - "core.euiMarkdownEditorFooter.showSyntaxErrors": "エラーを表示", - "core.euiMarkdownEditorFooter.supportedFileTypes": "サポートされているファイル:{supportedFileTypes}", - "core.euiMarkdownEditorFooter.syntaxTitle": "構文ヘルプ", - "core.euiMarkdownEditorFooter.unsupportedFileType": "ファイルタイプがサポートされていません", - "core.euiMarkdownEditorFooter.uploadingFiles": "クリックすると、ファイルをアップロードします", - "core.euiMarkdownEditorToolbar.editor": "エディター", - "core.euiMarkdownEditorToolbar.previewMarkdown": "プレビュー", - "core.euiModal.closeModal": "このモーダルウィンドウを閉じます", - "core.euiNotificationEventMessages.accordionAriaLabelButtonText": "+ {eventName}の{messagesLength}メスえーいj", - "core.euiNotificationEventMessages.accordionButtonText": "+ {messagesLength}以上", - "core.euiNotificationEventMessages.accordionHideText": "非表示", - "core.euiNotificationEventMeta.contextMenuButton": "{eventName}のメニュー", - "core.euiNotificationEventReadButton.markAsRead": "既読に設定", - "core.euiNotificationEventReadButton.markAsReadAria": "{eventName}を既読に設定", - "core.euiNotificationEventReadButton.markAsUnread": "未読に設定", - "core.euiNotificationEventReadButton.markAsUnreadAria": "{eventName}を未読に設定", - "core.euiNotificationEventReadIcon.read": "読み取り", - "core.euiNotificationEventReadIcon.readAria": "{eventName}は既読です", - "core.euiNotificationEventReadIcon.unread": "未読", - "core.euiNotificationEventReadIcon.unreadAria": "{eventName}は未読です", - "core.euiPagination.disabledNextPage": "次のページ", - "core.euiPagination.disabledPreviousPage": "前のページ", - "core.euiPagination.firstRangeAriaLabel": "ページ2を{lastPage}にスキップしています", - "core.euiPagination.lastRangeAriaLabel": "ページ{firstPage}を{lastPage}にスキップしています", - "core.euiPagination.nextPage": "次のページ、{page}", - "core.euiPagination.pageOfTotalCompressed": "{total}ページ中{page}ページ", - "core.euiPagination.previousPage": "前のページ、{page}", - "core.euiPaginationButton.longPageString": "{page}/{totalPages}ページ", - "core.euiPaginationButton.shortPageString": "{page}ページ", - "core.euiPinnableListGroup.pinExtraActionLabel": "項目をピン留め", - "core.euiPinnableListGroup.pinnedExtraActionLabel": "項目のピン留めを外す", - "core.euiPopover.screenReaderAnnouncement": "これはダイアログです。ダイアログを閉じるには、 escape を押してください。", - "core.euiProgress.valueText": "{value}%", - "core.euiQuickSelect.applyButton": "適用", - "core.euiQuickSelect.fullDescription": "現在 {timeTense} {timeValue} {timeUnit}に設定されています。", - "core.euiQuickSelect.legendText": "時間範囲をすばやく選択", - "core.euiQuickSelect.nextLabel": "次の時間ウィンドウ", - "core.euiQuickSelect.previousLabel": "前の時間ウィンドウ", - "core.euiQuickSelect.quickSelectTitle": "すばやく選択", - "core.euiQuickSelect.tenseLabel": "時間テンス", - "core.euiQuickSelect.unitLabel": "時間単位", - "core.euiQuickSelect.valueLabel": "時間値", - "core.euiRecentlyUsed.legend": "最近使用した日付範囲", - "core.euiRefreshInterval.fullDescription": "現在{optionValue} {optionText}に設定されている間隔を更新します。", - "core.euiRefreshInterval.legend": "以下の感覚ごとに更新", - "core.euiRefreshInterval.start": "開始", - "core.euiRefreshInterval.stop": "停止", - "core.euiRelativeTab.fullDescription": "単位は変更可能です。現在 {unit} に設定されています。", - "core.euiRelativeTab.numberInputError": "0以上でなければなりません", - "core.euiRelativeTab.numberInputLabel": "時間スパンの量", - "core.euiRelativeTab.relativeDate": "{position} 日付", - "core.euiRelativeTab.roundingLabel": "{unit} に四捨五入する", - "core.euiRelativeTab.unitInputLabel": "相対的時間スパン", - "core.euiResizableButton.horizontalResizerAriaLabel": "左右矢印キーを押してパネルサイズを調整します", - "core.euiResizableButton.verticalResizerAriaLabel": "上下矢印キーを押してパネルサイズを調整します", - "core.euiResizablePanel.toggleButtonAriaLabel": "押すと、このパネルを切り替えます", - "core.euiSaturation.ariaLabel": "HSVカラーモード彩度と値2軸スライダー", - "core.euiSaturation.screenReaderInstructions": "矢印キーで四角のカラーグラデーションを操作します。座標は、0~1の範囲のHSVカラーモード「彩度」および「値」数値を計算するために使用されます。左右キーで彩度を変更します。上下キーで値を変更します。", - "core.euiSelectable.loadingOptions": "オプションを読み込み中", - "core.euiSelectable.noAvailableOptions": "オプションがありません", - "core.euiSelectable.noMatchingOptions": "{searchValue} はどのオプションにも一致していません", - "core.euiSelectable.placeholderName": "フィルターオプション", - "core.euiSelectableListItem.excludedOption": "除外されたオプション。", - "core.euiSelectableListItem.excludedOptionInstructions": "このオプションの選択を解除するには、Enterを押します。", - "core.euiSelectableListItem.includedOption": "追加されたオプション。", - "core.euiSelectableListItem.includedOptionInstructions": "このオプションを除外するには、Enterを押します", - "core.euiSelectableTemplateSitewide.loadingResults": "結果を読み込み中", - "core.euiSelectableTemplateSitewide.noResults": "結果がありません", - "core.euiSelectableTemplateSitewide.onFocusBadgeGoTo": "移動:", - "core.euiSelectableTemplateSitewide.searchPlaceholder": "検索しています...", - "core.euiStat.loadingText": "統計を読み込み中です", - "core.euiStepStrings.complete": "ステップ{number}: {title}は完了しました", - "core.euiStepStrings.current": "現在のステップ{number}:{title}", - "core.euiStepStrings.disabled": "ステップ{number}: {title}は無効です", - "core.euiStepStrings.errors": "ステップ{number}: {title}にはエラーがあります", - "core.euiStepStrings.incomplete": "ステップ{number}: {title}は完了していません", - "core.euiStepStrings.loading": "ステップ{number}: {title}を読み込んでいます", - "core.euiStepStrings.simpleComplete": "ステップ{number}は完了しました", - "core.euiStepStrings.simpleCurrent": "現在のステップは{number}です", - "core.euiStepStrings.simpleDisabled": "ステップ{number}は無効です", - "core.euiStepStrings.simpleErrors": "ステップ{number}にはエラーがあります", - "core.euiStepStrings.simpleIncomplete": "ステップ{number}は完了していません", - "core.euiStepStrings.simpleLoading": "ステップ{number}を読み込んでいます", - "core.euiStepStrings.simpleStep": "ステップ{number}", - "core.euiStepStrings.simpleWarning": "ステップ{number}には警告があります", - "core.euiStepStrings.step": "ステップ{number}: {title}", - "core.euiStepStrings.warning": "ステップ{number}: {title}には警告があります", - "core.euiStyleSelector.buttonLegend": "データグリッドの表示密度を選択", - "core.euiStyleSelector.buttonText": "密度", - "core.euiStyleSelector.labelCompact": "コンパクト密度", - "core.euiStyleSelector.labelExpanded": "拡張密度", - "core.euiStyleSelector.labelNormal": "標準密度", - "core.euiSuperDatePicker.showDatesButtonLabel": "日付を表示", - "core.euiSuperSelect.screenReaderAnnouncement": "{optionsCount} 件のアイテムのフォームセレクターを使用しています。1 つのオプションを選択する必要があります。上下の矢印キーで移動するか、Escキーで閉じます。", - "core.euiSuperSelectControl.selectAnOption": "オプションの選択:{selectedValue} を選択済み", - "core.euiSuperUpdateButton.cannotUpdateTooltip": "アップデートできません", - "core.euiSuperUpdateButton.clickToApplyTooltip": "クリックして適用", - "core.euiSuperUpdateButton.refreshButtonLabel": "更新", - "core.euiSuperUpdateButton.updateButtonLabel": "更新", - "core.euiSuperUpdateButton.updatingButtonLabel": "更新中", - "core.euiTableHeaderCell.titleTextWithDesc": "{innerText}; {description}", - "core.euiTablePagination.rowsPerPage": "ページごとの行数", - "core.euiTablePagination.rowsPerPageOption": "{rowsPerPage}行", - "core.euiTableSortMobile.sorting": "並べ替え", - "core.euiToast.dismissToast": "トーストを閉じる", - "core.euiToast.newNotification": "新しい通知が表示されます", - "core.euiToast.notification": "通知", - "core.euiTourStep.closeTour": "ツアーを閉じる", - "core.euiTourStep.endTour": "ツアーを終了", - "core.euiTourStep.skipTour": "ツアーをスキップ", - "core.euiTourStepIndicator.ariaLabel": "ステップ{number} {status}", - "core.euiTourStepIndicator.isActive": "アクティブ", - "core.euiTourStepIndicator.isComplete": "完了", - "core.euiTourStepIndicator.isIncomplete": "未完了", - "core.euiTreeView.ariaLabel": "{nodeLabel} {ariaLabel} のチャイルド", - "core.euiTreeView.listNavigationInstructions": "矢印キーを使ってこのリストをすばやくナビゲートすることができます。", - "core.fatalErrors.clearYourSessionButtonLabel": "セッションを消去", - "core.fatalErrors.goBackButtonLabel": "戻る", - "core.fatalErrors.somethingWentWrongTitle": "問題が発生しました", - "core.fatalErrors.tryRefreshingPageDescription": "ページを更新してみてください。うまくいかない場合は、前のページに戻るか、セッションデータを消去してください。", - "core.notifications.errorToast.closeModal": "閉じる", - "core.notifications.globalToast.ariaLabel": "通知メッセージリスト", - "core.notifications.unableUpdateUISettingNotificationMessageTitle": "UI 設定を更新できません", - "core.status.greenTitle": "緑", - "core.status.redTitle": "赤", - "core.status.yellowTitle": "黄", - "core.statusPage.loadStatus.serverIsDownErrorMessage": "サーバーステータスのリクエストに失敗しました。サーバーがダウンしている可能性があります。", - "core.statusPage.loadStatus.serverStatusCodeErrorMessage": "サーバーステータスのリクエストに失敗しました。ステータスコード:{responseStatus}", - "core.statusPage.metricsTiles.columns.heapTotalHeader": "ヒープ合計", - "core.statusPage.metricsTiles.columns.heapUsedHeader": "使用ヒープ", - "core.statusPage.metricsTiles.columns.loadHeader": "読み込み", - "core.statusPage.metricsTiles.columns.requestsPerSecHeader": "1秒あたりのリクエスト", - "core.statusPage.metricsTiles.columns.resTimeAvgHeader": "平均応答時間", - "core.statusPage.metricsTiles.columns.resTimeMaxHeader": "最長応答時間", - "core.statusPage.serverStatus.statusTitle": "Kibanaのステータス:{kibanaStatus}", - "core.statusPage.statusApp.loadingErrorText": "ステータスの読み込み中にエラーが発生しました", - "core.statusPage.statusApp.statusActions.buildText": "ビルド{buildNum}", - "core.statusPage.statusApp.statusActions.commitText": "COMMIT {buildSha}", - "core.statusPage.statusApp.statusTitle": "プラグインステータス", - "core.statusPage.statusTable.columns.idHeader": "ID", - "core.statusPage.statusTable.columns.statusHeader": "ステータス", - "core.toasts.errorToast.seeFullError": "完全なエラーを表示", - "core.ui_settings.params.darkModeText": "Kibana UIのダークモードを有効にします。この設定を適用するにはページの更新が必要です。", - "core.ui_settings.params.darkModeTitle": "ダークモード", - "core.ui_settings.params.dateFormat.dayOfWeekText": "週の初めの曜日を設定します", - "core.ui_settings.params.dateFormat.dayOfWeekTitle": "曜日", - "core.ui_settings.params.dateFormat.optionsLinkText": "フォーマット", - "core.ui_settings.params.dateFormat.scaled.intervalsLinkText": "ISO8601間隔", - "core.ui_settings.params.dateFormat.scaledText": "時間ベースのデータが順番にレンダリングされ、フォーマットされたタイムスタンプが測定値の間隔に適応すべき状況で使用されるフォーマットを定義する値です。キーは{intervalsLink}です。", - "core.ui_settings.params.dateFormat.scaledTitle": "スケーリングされたデータフォーマットです", - "core.ui_settings.params.dateFormat.timezone.invalidValidationMessage": "無効なタイムゾーン:{timezone}", - "core.ui_settings.params.dateFormat.timezoneText": "使用されるタイムゾーンです。{defaultOption}ではご使用のブラウザーにより検知されたタイムゾーンが使用されます。", - "core.ui_settings.params.dateFormat.timezoneTitle": "データフォーマットのタイムゾーン", - "core.ui_settings.params.dateFormatText": "きちんとフォーマットされたデータを表示する際、この{formatLink}を使用します", - "core.ui_settings.params.dateFormatTitle": "データフォーマット", - "core.ui_settings.params.dateNanosFormatText": "Elasticsearchの{dateNanosLink}データタイプに使用されます", - "core.ui_settings.params.dateNanosFormatTitle": "ナノ秒フォーマットでの日付", - "core.ui_settings.params.dateNanosLinkTitle": "date_nanos", - "core.ui_settings.params.dayOfWeekText.invalidValidationMessage": "無効な曜日:{dayOfWeek}", - "core.ui_settings.params.defaultRoute.defaultRouteIsRelativeValidationMessage": "相対URLでなければなりません。", - "core.ui_settings.params.defaultRoute.defaultRouteText": "この設定は、Kibana起動時のデフォルトのルートを設定します。この設定で、Kibana起動時のランディングページを変更できます。ルートは相対URLでなければなりません。", - "core.ui_settings.params.defaultRoute.defaultRouteTitle": "デフォルトのルート", - "core.ui_settings.params.disableAnimationsText": "Kibana UIの不要なアニメーションをオフにします。変更を適用するにはページを更新してください。", - "core.ui_settings.params.disableAnimationsTitle": "アニメーションを無効にする", - "core.ui_settings.params.notifications.banner.markdownLinkText": "マークダウン対応", - "core.ui_settings.params.notifications.bannerLifetimeText": "バナー通知が画面に表示される時間(ミリ秒単位)です。", - "core.ui_settings.params.notifications.bannerLifetimeTitle": "バナー通知時間", - "core.ui_settings.params.notifications.bannerText": "すべてのユーザーへの一時的な通知を目的としたカスタムバナーです。{markdownLink}", - "core.ui_settings.params.notifications.bannerTitle": "カスタムバナー通知", - "core.ui_settings.params.notifications.errorLifetimeText": "エラー通知が画面に表示される時間(ミリ秒単位)です。", - "core.ui_settings.params.notifications.errorLifetimeTitle": "エラー通知時間", - "core.ui_settings.params.notifications.infoLifetimeText": "情報通知が画面に表示される時間(ミリ秒単位)です。", - "core.ui_settings.params.notifications.infoLifetimeTitle": "情報通知時間", - "core.ui_settings.params.notifications.warningLifetimeText": "警告通知が画面に表示される時間(ミリ秒単位)です。", - "core.ui_settings.params.notifications.warningLifetimeTitle": "警告通知時間", - "core.ui_settings.params.storeUrlText": "URLが長くなりすぎるためブラウザーが対応できない場合があります。セッションストレージにURLの一部を保存することでこの問題に対処できるかどうかをテストしています。結果を教えてください!", - "core.ui_settings.params.storeUrlTitle": "セッションストレージにURLを格納", - "core.ui_settings.params.themeVersionTitle": "テーマバージョン", - "core.ui.chrome.headerGlobalNav.goHomePageIconAriaLabel": "Elastic ホーム", - "core.ui.chrome.headerGlobalNav.helpMenuAskElasticTitle": "Elastic に確認する", - "core.ui.chrome.headerGlobalNav.helpMenuButtonAriaLabel": "ヘルプメニュー", - "core.ui.chrome.headerGlobalNav.helpMenuDocumentation": "ドキュメント", - "core.ui.chrome.headerGlobalNav.helpMenuGiveFeedbackOnApp": "{appName} についてのフィードバックを作成する", - "core.ui.chrome.headerGlobalNav.helpMenuGiveFeedbackTitle": "フィードバックを作成する", - "core.ui.chrome.headerGlobalNav.helpMenuKibanaDocumentationTitle": "Kibanaドキュメント", - "core.ui.chrome.headerGlobalNav.helpMenuOpenGitHubIssueTitle": "GitHubで問題を開く", - "core.ui.chrome.headerGlobalNav.helpMenuTitle": "ヘルプ", - "core.ui.chrome.headerGlobalNav.helpMenuVersion": "v {version}", - "core.ui.chrome.headerGlobalNav.logoAriaLabel": "Elastic ロゴ", - "core.ui.enterpriseSearchNavList.label": "エンタープライズサーチ", - "core.ui.errorUrlOverflow.bigUrlWarningNotificationMessage": "{advancedSettingsLink}で{storeInSessionStorageParam}オプションを有効にするか、オンスクリーンビジュアルを簡素化してください。", - "core.ui.errorUrlOverflow.bigUrlWarningNotificationMessage.advancedSettingsLinkText": "高度な設定", - "core.ui.errorUrlOverflow.bigUrlWarningNotificationTitle": "URLが大きく、Kibanaの動作が停止する可能性があります", - "core.ui.errorUrlOverflow.errorTitle": "このオブジェクトのURLは長すぎます。表示できません", - "core.ui.errorUrlOverflow.optionsToFixError.doNotUseIEText": "最新のブラウザーにアップグレードしてください。他の対応ブラウザーでは、いずれもこの制限がありません。", - "core.ui.errorUrlOverflow.optionsToFixError.enableOptionText": "{kibanaSettingsLink}で{storeInSessionStorageConfig}オプションを有効にしてください。", - "core.ui.errorUrlOverflow.optionsToFixError.enableOptionText.advancedSettingsLinkText": "高度な設定", - "core.ui.errorUrlOverflow.optionsToFixError.removeStuffFromDashboardText": "コンテンツまたはフィルターを削除すると、編集しているオブジェクトがシンプルになります。", - "core.ui.errorUrlOverflow.optionsToFixErrorDescription": "次を試してください。", - "core.ui.kibanaNavList.label": "分析", - "core.ui.legacyBrowserMessage": "この Elastic インストレーションは、現在ご使用のブラウザが満たしていない厳格なセキュリティ要件が有効になっています。", - "core.ui.legacyBrowserTitle": "ブラウザをアップグレードしてください", - "core.ui.loadingIndicatorAriaLabel": "コンテンツを読み込んでいます", - "core.ui.managementNavList.label": "管理", - "core.ui.observabilityNavList.label": "オブザーバビリティ", - "core.ui.overlays.banner.attentionTitle": "注意", - "core.ui.overlays.banner.closeButtonLabel": "閉じる", - "core.ui.primaryNav.pinnedLinksAriaLabel": "ピン留めされたリンク", - "core.ui.primaryNav.screenReaderLabel": "プライマリ", - "core.ui.primaryNav.toggleNavAriaLabel": "プライマリナビゲーションを切り替える", - "core.ui.primaryNavSection.screenReaderLabel": "プライマリナビゲーションリンク、{category}", - "core.ui.publicBaseUrlWarning.configMissingDescription": "{configKey}が見つかりません。本番環境を実行するときに構成してください。一部の機能が正常に動作しない場合があります。", - "core.ui.publicBaseUrlWarning.configMissingTitle": "構成がありません", - "core.ui.publicBaseUrlWarning.muteWarningButtonLabel": "ミュート警告", - "core.ui.publicBaseUrlWarning.seeDocumentationLinkLabel": "ドキュメントを参照してください。", - "core.ui.recentLinks.linkItem.screenReaderLabel": "{recentlyAccessedItemLinklabel}、タイプ:{pageType}", - "core.ui.recentlyViewed": "最近閲覧", - "core.ui.recentlyViewedAriaLabel": "最近閲覧したリンク", - "core.ui.securityNavList.label": "セキュリティ", - "core.ui.welcomeErrorMessage": "Elasticが正常に読み込まれませんでした。詳細はサーバーアウトプットを確認してください。", - "core.ui.welcomeMessage": "Elastic の読み込み中", - "dashboard.actions.DownloadCreateDrilldownAction.displayName": "CSV をダウンロード", - "dashboard.actions.downloadOptionsUnsavedFilename": "無題", - "dashboard.actions.toggleExpandPanelMenuItem.expandedDisplayName": "最小化", - "dashboard.actions.toggleExpandPanelMenuItem.notExpandedDisplayName": "パネルを最大化", - "dashboard.addPanel.noMatchingObjectsMessage": "一致するオブジェクトが見つかりませんでした。", - "dashboard.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} が追加されました", - "dashboard.appLeaveConfirmModal.cancelButtonLabel": "キャンセル", - "dashboard.appLeaveConfirmModal.unsavedChangesSubtitle": "作業を保存せずにダッシュボードから移動しますか?", - "dashboard.appLeaveConfirmModal.unsavedChangesTitle": "保存されていない変更", - "dashboard.badge.readOnly.text": "読み取り専用", - "dashboard.badge.readOnly.tooltip": "ダッシュボードを保存できません", - "dashboard.changeViewModeConfirmModal.cancelButtonLabel": "編集を続行", - "dashboard.changeViewModeConfirmModal.confirmButtonLabel": "変更を破棄", - "dashboard.changeViewModeConfirmModal.description": "表示モードに戻ったときに変更内容を保持または破棄できます。 破棄された変更を回復することはできません。", - "dashboard.changeViewModeConfirmModal.keepUnsavedChangesButtonLabel": "変更を保持", - "dashboard.changeViewModeConfirmModal.leaveEditModeTitle": "保存されていない変更があります", - "dashboard.cloneModal.cloneDashboardTitleAriaLabel": "クローンダッシュボードタイトル", - "dashboard.createConfirmModal.cancelButtonLabel": "キャンセル", - "dashboard.createConfirmModal.confirmButtonLabel": "やり直す", - "dashboard.createConfirmModal.continueButtonLabel": "編集を続行", - "dashboard.createConfirmModal.unsavedChangesSubtitle": "編集を続行するか、空のダッシュボードで始めることができます。", - "dashboard.createConfirmModal.unsavedChangesTitle": "新しいダッシュボードはすでに実行中です", - "dashboard.dashboardAppBreadcrumbsTitle": "ダッシュボード", - "dashboard.dashboardGrid.toast.unableToLoadDashboardDangerMessage": "ダッシュボードが読み込めません。", - "dashboard.dashboardPageTitle": "ダッシュボード", - "dashboard.dashboardWasNotSavedDangerMessage": "ダッシュボード「{dashTitle}」が保存されませんでした。エラー:{errorMessage}", - "dashboard.dashboardWasSavedSuccessMessage": "ダッシュボード「{dashTitle}」が保存されました。", - "dashboard.discardChangesConfirmModal.cancelButtonLabel": "キャンセル", - "dashboard.discardChangesConfirmModal.confirmButtonLabel": "変更を破棄", - "dashboard.discardChangesConfirmModal.discardChangesDescription": "変更を破棄すると、元に戻すことはできません。", - "dashboard.discardChangesConfirmModal.discardChangesTitle": "ダッシュボードへの変更を破棄しますか?", - "dashboard.editorMenu.aggBasedGroupTitle": "アグリゲーションに基づく", - "dashboard.embedUrlParamExtension.filterBar": "フィルターバー", - "dashboard.embedUrlParamExtension.include": "含める", - "dashboard.embedUrlParamExtension.query": "クエリ", - "dashboard.embedUrlParamExtension.timeFilter": "時間フィルター", - "dashboard.embedUrlParamExtension.topMenu": "トップメニュー", - "dashboard.emptyDashboardAdditionalPrivilege": "このダッシュボードを編集するには、追加権限が必要です。", - "dashboard.emptyDashboardTitle": "このダッシュボードは空です。", - "dashboard.emptyWidget.addPanelDescription": "データに関するストーリーを伝えるコンテンツを作成します。", - "dashboard.emptyWidget.addPanelTitle": "最初のビジュアライゼーションを追加", - "dashboard.factory.displayName": "ダッシュボード", - "dashboard.featureCatalogue.dashboardDescription": "ビジュアライゼーションと保存された検索のコレクションの表示と共有を行います。", - "dashboard.featureCatalogue.dashboardSubtitle": "ダッシュボードでデータを分析します。", - "dashboard.featureCatalogue.dashboardTitle": "ダッシュボード", - "dashboard.fillDashboardTitle": "このダッシュボードは空です。コンテンツを追加しましょう!", - "dashboard.helpMenu.appName": "ダッシュボード", - "dashboard.howToStartWorkingOnNewDashboardDescription": "上のメニューバーで[編集]をクリックすると、パネルの追加を開始します。", - "dashboard.howToStartWorkingOnNewDashboardEditLinkAriaLabel": "ダッシュボードを編集", - "dashboard.labs.enableLabsDescription": "このフラグはビューアーで[ラボ]ボタンを使用できるかどうかを決定します。ダッシュボードで実験的機能を有効および無効にするための簡単な方法です。", - "dashboard.labs.enableUI": "ダッシュボードで[ラボ]ボタンを有効にする", - "dashboard.listing.createNewDashboard.combineDataViewFromKibanaAppDescription": "あらゆるKibanaアプリからダッシュボードにデータビューを組み合わせて、すべてを1か所に表示できます。", - "dashboard.listing.createNewDashboard.createButtonLabel": "新規ダッシュボードを作成", - "dashboard.listing.createNewDashboard.newToKibanaDescription": "Kibanaは初心者ですか?{sampleDataInstallLink}してお試しください。", - "dashboard.listing.createNewDashboard.sampleDataInstallLinkText": "サンプルデータをインストール", - "dashboard.listing.createNewDashboard.title": "初めてのダッシュボードを作成してみましょう。", - "dashboard.listing.readonlyNoItemsBody": "使用可能なダッシュボードはありません。権限を変更してこのスペースにダッシュボードを表示するには、管理者に問い合わせてください。", - "dashboard.listing.readonlyNoItemsTitle": "表示するダッシュボードがありません", - "dashboard.listing.table.descriptionColumnName": "説明", - "dashboard.listing.table.entityName": "ダッシュボード", - "dashboard.listing.table.entityNamePlural": "ダッシュボード", - "dashboard.listing.table.titleColumnName": "タイトル", - "dashboard.listing.unsaved.discardAria": "{title}への変更を破棄", - "dashboard.listing.unsaved.discardTitle": "変更を破棄", - "dashboard.listing.unsaved.editAria": "{title}の編集を続行", - "dashboard.listing.unsaved.editTitle": "編集を続行", - "dashboard.listing.unsaved.loading": "読み込み中", - "dashboard.listing.unsaved.unsavedChangesTitle": "次の{dash}には保存されていない変更があります。", - "dashboard.migratedChanges": "一部のパネルは正常に最新バージョンに更新されました。", - "dashboard.noMatchRoute.bannerText": "ダッシュボードアプリケーションはこのルート{route}を認識できません。", - "dashboard.noMatchRoute.bannerTitleText": "ページが見つかりません", - "dashboard.panel.AddToLibrary": "ライブラリに保存", - "dashboard.panel.addToLibrary.successMessage": "パネル {panelTitle} は Visualize ライブラリに追加されました", - "dashboard.panel.clonedToast": "クローンパネル", - "dashboard.panel.clonePanel": "パネルのクローン", - "dashboard.panel.copyToDashboard.cancel": "キャンセル", - "dashboard.panel.copyToDashboard.description": "パネルのコピー先を選択します。コピー先のダッシュボードに移動します。", - "dashboard.panel.copyToDashboard.existingDashboardOptionLabel": "<b>既存のダッシュボード</b>", - "dashboard.panel.copyToDashboard.goToDashboard": "コピーしてダッシュボードを開く", - "dashboard.panel.copyToDashboard.newDashboardOptionLabel": "新規ダッシュボード", - "dashboard.panel.copyToDashboard.title": "ダッシュボードにコピー", - "dashboard.panel.invalidData": "URL の無効なデータ", - "dashboard.panel.LibraryNotification": "Visualize ライブラリ通知", - "dashboard.panel.libraryNotification.ariaLabel": "ライブラリ情報を表示し、このパネルのリンクを解除します", - "dashboard.panel.libraryNotification.toolTip": "このパネルを編集すると、他のダッシュボードに影響する場合があります。このパネルのみを変更するには、ライブラリからリンクを解除します。", - "dashboard.panel.removePanel.replacePanel": "パネルの交換", - "dashboard.panel.title.clonedTag": "コピー", - "dashboard.panel.unableToMigratePanelDataForSixOneZeroErrorMessage": "「6.1.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルには想定された列または行フィールドがありません", - "dashboard.panel.unableToMigratePanelDataForSixThreeZeroErrorMessage": "「6.3.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルに必要なフィールドがありません:{key}", - "dashboard.panel.unlinkFromLibrary": "ライブラリからのリンクを解除", - "dashboard.panel.unlinkFromLibrary.successMessage": "パネル {panelTitle} は Visualize ライブラリに接続されていません", - "dashboard.panelStorageError.clearError": "保存されていない変更の消去中にエラーが発生しました。{message}", - "dashboard.panelStorageError.getError": "保存されていない変更の取得中にエラーが発生しました。{message}", - "dashboard.panelStorageError.setError": "保存されていない変更の設定中にエラーが発生しました。{message}", - "dashboard.placeholder.factory.displayName": "プレースホルダー", - "dashboard.savedDashboard.newDashboardTitle": "新規ダッシュボード", - "dashboard.solutionToolbar.addPanelButtonLabel": "ビジュアライゼーションを作成", - "dashboard.solutionToolbar.editorMenuButtonLabel": "すべてのタイプ", - "dashboard.strings.dashboardEditTitle": "{title}を編集中", - "dashboard.topNav.cloneModal.cancelButtonLabel": "キャンセル", - "dashboard.topNav.cloneModal.cloneDashboardModalHeaderTitle": "ダッシュボードのクローンを作成", - "dashboard.topNav.cloneModal.confirmButtonLabel": "クローンの確認", - "dashboard.topNav.cloneModal.confirmCloneDescription": "クローンの確認", - "dashboard.topNav.cloneModal.dashboardExistsDescription": "{confirmClone}をクリックして重複タイトルでダッシュボードのクローンを作成します。", - "dashboard.topNav.cloneModal.dashboardExistsTitle": "「{newDashboardName}」というタイトルのダッシュボードがすでに存在します。", - "dashboard.topNav.cloneModal.enterNewNameForDashboardDescription": "ダッシュボードの新しい名前を入力してください。", - "dashboard.topNav.labsButtonAriaLabel": "ラボ", - "dashboard.topNav.labsConfigDescription": "ラボ", - "dashboard.topNav.options.hideAllPanelTitlesSwitchLabel": "パネルタイトルを表示", - "dashboard.topNav.options.syncColorsBetweenPanelsSwitchLabel": "パネル全体でカラーパレットを同期", - "dashboard.topNav.options.useMarginsBetweenPanelsSwitchLabel": "パネルの間に余白を使用", - "dashboard.topNav.saveModal.descriptionFormRowLabel": "説明", - "dashboard.topNav.saveModal.objectType": "ダッシュボード", - "dashboard.topNav.saveModal.storeTimeWithDashboardFormRowHelpText": "有効化すると、ダッシュボードが読み込まれるごとに現在選択された時刻の時間フィルターが変更されます。", - "dashboard.topNav.saveModal.storeTimeWithDashboardFormRowLabel": "ダッシュボードに時刻を保存", - "dashboard.topNav.showCloneModal.dashboardCopyTitle": "{title}のコピー", - "dashboard.topNave.cancelButtonAriaLabel": "表示モードに切り替える", - "dashboard.topNave.cloneButtonAriaLabel": "クローンを作成", - "dashboard.topNave.cloneConfigDescription": "ダッシュボードのコピーを作成します", - "dashboard.topNave.editButtonAriaLabel": "編集", - "dashboard.topNave.editConfigDescription": "編集モードに切り替えます", - "dashboard.topNave.fullScreenButtonAriaLabel": "全画面", - "dashboard.topNave.fullScreenConfigDescription": "全画面モード", - "dashboard.topNave.optionsButtonAriaLabel": "オプション", - "dashboard.topNave.optionsConfigDescription": "オプション", - "dashboard.topNave.saveAsButtonAriaLabel": "名前を付けて保存", - "dashboard.topNave.saveAsConfigDescription": "新しいダッシュボードとして保存", - "dashboard.topNave.saveButtonAriaLabel": "保存", - "dashboard.topNave.saveConfigDescription": "プロンプトを表示せずにダッシュボードをクイック保存", - "dashboard.topNave.shareButtonAriaLabel": "共有", - "dashboard.topNave.shareConfigDescription": "ダッシュボードを共有します", - "dashboard.topNave.viewConfigDescription": "表示専用モードに切り替え", - "dashboard.unsavedChangesBadge": "保存されていない変更", - "dashboard.urlWasRemovedInSixZeroWarningMessage": "URL「dashboard/create」は6.0で廃止されました。ブックマークを更新してください。", - "data.advancedSettings.autocompleteIgnoreTimerange": "時間範囲を使用", - "data.advancedSettings.autocompleteIgnoreTimerangeText": "このプロパティを無効にすると、現在の時間範囲からではなく、データセットからオートコンプリートの候補を取得します。{learnMoreLink}", - "data.advancedSettings.autocompleteValueSuggestionMethod": "自動入力値候補の提案方法", - "data.advancedSettings.autocompleteValueSuggestionMethodLearnMoreLink": "詳細情報", - "data.advancedSettings.autocompleteValueSuggestionMethodLink": "詳細情報", - "data.advancedSettings.autocompleteValueSuggestionMethodText": "KQL自動入力で値の候補をクエリするために使用される方法。terms_enumを選択すると、Elasticsearch用語enum APIを使用して、自動入力候補のパフォーマンスを改善します。terms_aggを選択すると、Elasticsearch用語アグリゲーションを使用します。{learnMoreLink}", - "data.advancedSettings.courier.customRequestPreference.requestPreferenceLinkText": "リクエスト設定", - "data.advancedSettings.courier.customRequestPreferenceText": "{setRequestReferenceSetting} が {customSettingValue} に設定されている時に使用される {requestPreferenceLink} です。", - "data.advancedSettings.courier.customRequestPreferenceTitle": "カスタムリクエスト設定", - "data.advancedSettings.courier.ignoreFilterText": "この構成は、似ていないインデックスにアクセスするビジュアライゼーションを含むダッシュボードのサポートを強化します。無効にすると、すべてのフィルターがすべてのビジュアライゼーションに適用されます。有効にすると、ビジュアライゼーションのインデックスにフィルター対象のフィールドが含まれていない場合、ビジュアライゼーションの際にフィルターが無視されます。", - "data.advancedSettings.courier.ignoreFilterTitle": "フィルターの無視", - "data.advancedSettings.courier.maxRequestsText": "Kibanaから送信された_msearchリクエストに使用される{maxRequestsLink}設定を管理します。この構成を無効にしてElasticsearchのデフォルトを使用するには、0に設定します。", - "data.advancedSettings.courier.maxRequestsTitle": "最大同時シャードリクエスト", - "data.advancedSettings.courier.requestPreferenceCustom": "カスタム", - "data.advancedSettings.courier.requestPreferenceNone": "なし", - "data.advancedSettings.courier.requestPreferenceSessionId": "セッションID", - "data.advancedSettings.courier.requestPreferenceText": "どのシャードが検索リクエストを扱うかを設定できます。<ul>\n <li><strong>{sessionId}:</strong>同じシャードのすべての検索リクエストを実行するため、オペレーションを制限します。\n これにはリクエスト間でシャードのキャッシュを共有できるというメリットがあります。</li>\n <li><strong>{custom}:</strong>独自の設定が可能になります。\n <strong>'courier:customRequestPreference'</strong>で設定値をカスタマイズします。</li>\n <li><strong>{none}:</strong>設定されていないことを意味します。\n これにより、リクエストが全シャードコピー間に分散されるため、パフォーマンスが改善される可能性があります。\n ただし、シャードによって更新ステータスが異なる場合があるため、結果に矛盾が生じる可能性があります。</li>\n </ul>", - "data.advancedSettings.courier.requestPreferenceTitle": "リクエスト設定", - "data.advancedSettings.defaultIndexText": "インデックスが設定されていない時にアクセスするインデックスです", - "data.advancedSettings.defaultIndexTitle": "デフォルトのインデックス", - "data.advancedSettings.docTableHighlightText": "Discover と保存された検索ダッシュボードの結果をハイライトします。ハイライトすることで、大きなドキュメントを扱う際にリクエストが遅くなります。", - "data.advancedSettings.docTableHighlightTitle": "結果をハイライト", - "data.advancedSettings.histogram.barTargetText": "日付ヒストグラムで「自動」間隔を使用する際、この数に近いバケットの作成を試みます", - "data.advancedSettings.histogram.barTargetTitle": "目標バケット数", - "data.advancedSettings.histogram.maxBarsText": "Kibana全体で日付の密度とヒストグラム数を制限し、\n テストクエリを使用するときのパフォーマンスを向上させます。テストクエリのバケットが多すぎる場合は、\n バケットの間隔が増えます。この設定は個別に\n 各ヒストグラムアグリゲーションに適用されます。他の種類のアグリゲーションには適用されません。\n この設定の最大値を求めるには、Elasticsearch「search.max_buckets」\n 値を各ビジュアライゼーションのアグリゲーションの最大数で除算します。", - "data.advancedSettings.histogram.maxBarsTitle": "バケットの最大数", - "data.advancedSettings.historyLimitText": "履歴があるフィールド(例:クエリインプット)に個の数の最近の値が表示されます", - "data.advancedSettings.historyLimitTitle": "履歴制限数", - "data.advancedSettings.metaFieldsText": "_source の外にあり、ドキュメントが表示される時に融合されるフィールドです", - "data.advancedSettings.metaFieldsTitle": "メタフィールド", - "data.advancedSettings.pinFiltersText": "フィルターがデフォルトでグローバル(ピン付けされた状態)になるかの設定です", - "data.advancedSettings.pinFiltersTitle": "フィルターをデフォルトでピン付けする", - "data.advancedSettings.query.allowWildcardsText": "設定すると、クエリ句の頭に*が使えるようになります。現在クエリバーで実験的クエリ機能が有効になっている場合にのみ適用されます。基本的なLuceneクエリでリーディングワイルドカードを無効にするには、{queryStringOptionsPattern}を使用します。", - "data.advancedSettings.query.allowWildcardsTitle": "クエリでリーディングワイルドカードを許可する", - "data.advancedSettings.query.queryStringOptions.optionsLinkText": "オプション", - "data.advancedSettings.query.queryStringOptionsText": "Luceneクエリ文字列パーサーの{optionsLink}。「{queryLanguage}」が{luceneLanguage}に設定されているときにのみ使用されます。", - "data.advancedSettings.query.queryStringOptionsTitle": "クエリ文字列のオプション", - "data.advancedSettings.searchQueryLanguageKql": "KQL", - "data.advancedSettings.searchQueryLanguageLucene": "Lucene", - "data.advancedSettings.searchQueryLanguageText": "クエリ言語はクエリバーで使用されます。KQLはKibana用に特別に開発された新しい言語です。", - "data.advancedSettings.searchQueryLanguageTitle": "クエリ言語", - "data.advancedSettings.searchTimeout": "検索タイムアウト", - "data.advancedSettings.searchTimeoutDesc": "検索セッションの最大タイムアウトを変更するか、0 に設定してタイムアウトを無効にすると、クエリは完了するまで実行されます。", - "data.advancedSettings.sortOptions.optionsLinkText": "オプション", - "data.advancedSettings.sortOptionsText": "Elasticsearch の並べ替えパラメーターの {optionsLink}", - "data.advancedSettings.sortOptionsTitle": "並べ替えオプション", - "data.advancedSettings.suggestFilterValuesText": "フィルターエディターがフィールドの値の候補を表示しないようにするには、このプロパティをfalseにしてください。", - "data.advancedSettings.suggestFilterValuesTitle": "フィルターエディターの候補値", - "data.advancedSettings.timepicker.last15Minutes": "過去15分間", - "data.advancedSettings.timepicker.last1Hour": "過去1時間", - "data.advancedSettings.timepicker.last1Year": "過去1年間", - "data.advancedSettings.timepicker.last24Hours": "過去 24 時間", - "data.advancedSettings.timepicker.last30Days": "過去30日間", - "data.advancedSettings.timepicker.last30Minutes": "過去30分間", - "data.advancedSettings.timepicker.last7Days": "過去7日間", - "data.advancedSettings.timepicker.last90Days": "過去90日間", - "data.advancedSettings.timepicker.quickRanges.acceptedFormatsLinkText": "対応フォーマット", - "data.advancedSettings.timepicker.quickRangesText": "時間フィルターのクイックセクションに表示される範囲のリストです。それぞれのオブジェクトに「開始」、「終了」({acceptedFormatsLink}を参照)、「表示」(表示するタイトル)が含まれるオブジェクトの配列です。", - "data.advancedSettings.timepicker.quickRangesTitle": "タイムピッカーのクイック範囲", - "data.advancedSettings.timepicker.refreshIntervalDefaultsText": "時間フィルターのデフォルト更新間隔「値」はミリ秒で指定する必要があります。", - "data.advancedSettings.timepicker.refreshIntervalDefaultsTitle": "タイムピッカーの更新間隔", - "data.advancedSettings.timepicker.thisWeek": "今週", - "data.advancedSettings.timepicker.timeDefaultsText": "時間フィルターが選択されずにKibanaが起動した際に使用される時間フィルターです", - "data.advancedSettings.timepicker.timeDefaultsTitle": "デフォルトのタイムピッカー", - "data.advancedSettings.timepicker.today": "今日", - "data.aggTypes.buckets.ranges.rangesFormatMessage": "{gte} {from} と {lt} {to}", - "data.aggTypes.buckets.ranges.rangesFormatMessageArrowRight": "{from} → {to}", - "data.errors.fetchError": "ネットワークとプロキシ構成を確認してください。問題が解決しない場合は、ネットワーク管理者に問い合わせてください。", - "data.filter.applyFilterActionTitle": "現在のビューにフィルターを適用", - "data.filter.applyFilters.popupHeader": "適用するフィルターの選択", - "data.filter.applyFiltersPopup.cancelButtonLabel": "キャンセル", - "data.filter.applyFiltersPopup.saveButtonLabel": "適用", - "data.filter.filterBar.addFilterButtonLabel": "フィルターを追加します", - "data.filter.filterBar.deleteFilterButtonLabel": "削除", - "data.filter.filterBar.disabledFilterPrefix": "無効", - "data.filter.filterBar.disableFilterButtonLabel": "一時的に無効にする", - "data.filter.filterBar.editFilterButtonLabel": "フィルターを編集", - "data.filter.filterBar.enableFilterButtonLabel": "再度有効にする", - "data.filter.filterBar.excludeFilterButtonLabel": "結果を除外", - "data.filter.filterBar.fieldNotFound": "インデックスパターン {indexPattern} にフィールド {key} がありません", - "data.filter.filterBar.filterItemBadgeAriaLabel": "フィルターアクション", - "data.filter.filterBar.filterItemBadgeIconAriaLabel": "{filter}を削除", - "data.filter.filterBar.includeFilterButtonLabel": "結果を含める", - "data.filter.filterBar.indexPatternSelectPlaceholder": "インデックスパターンの選択", - "data.filter.filterBar.labelErrorInfo": "インデックスパターン{indexPattern}が見つかりません", - "data.filter.filterBar.labelErrorText": "エラー", - "data.filter.filterBar.labelWarningInfo": "フィールド{fieldName}は現在のビューに存在しません", - "data.filter.filterBar.labelWarningText": "警告", - "data.filter.filterBar.moreFilterActionsMessage": "フィルター:{innerText}。他のフィルターアクションを使用するには選択してください。", - "data.filter.filterBar.negatedFilterPrefix": "NOT ", - "data.filter.filterBar.pinFilterButtonLabel": "すべてのアプリにピン付け", - "data.filter.filterBar.pinnedFilterPrefix": "ピン付け済み", - "data.filter.filterBar.unpinFilterButtonLabel": "ピンを外す", - "data.filter.filterEditor.cancelButtonLabel": "キャンセル", - "data.filter.filterEditor.createCustomLabelInputLabel": "カスタムラベル", - "data.filter.filterEditor.createCustomLabelSwitchLabel": "カスタムラベルを作成しますか?", - "data.filter.filterEditor.doesNotExistOperatorOptionLabel": "存在しない", - "data.filter.filterEditor.editFilterPopupTitle": "フィルターを編集", - "data.filter.filterEditor.editFilterValuesButtonLabel": "フィルター値を編集", - "data.filter.filterEditor.editQueryDslButtonLabel": "クエリ DSL として編集", - "data.filter.filterEditor.existsOperatorOptionLabel": "存在する", - "data.filter.filterEditor.falseOptionLabel": "false", - "data.filter.filterEditor.fieldSelectLabel": "フィールド", - "data.filter.filterEditor.fieldSelectPlaceholder": "フィールドを選択", - "data.filter.filterEditor.indexPatternSelectLabel": "インデックスパターン", - "data.filter.filterEditor.isBetweenOperatorOptionLabel": "is between", - "data.filter.filterEditor.isNotBetweenOperatorOptionLabel": "is not between", - "data.filter.filterEditor.isNotOneOfOperatorOptionLabel": "is not one of", - "data.filter.filterEditor.isNotOperatorOptionLabel": "is not", - "data.filter.filterEditor.isOneOfOperatorOptionLabel": "is one of", - "data.filter.filterEditor.isOperatorOptionLabel": "is", - "data.filter.filterEditor.operatorSelectLabel": "演算子", - "data.filter.filterEditor.operatorSelectPlaceholderSelect": "選択してください", - "data.filter.filterEditor.operatorSelectPlaceholderWaiting": "待機中", - "data.filter.filterEditor.queryDslLabel": "Elasticsearch クエリ DSL", - "data.filter.filterEditor.rangeEndInputPlaceholder": "範囲の終了値", - "data.filter.filterEditor.rangeInputLabel": "範囲", - "data.filter.filterEditor.rangeStartInputPlaceholder": "範囲の開始値", - "data.filter.filterEditor.saveButtonLabel": "保存", - "data.filter.filterEditor.trueOptionLabel": "true", - "data.filter.filterEditor.valueInputLabel": "値", - "data.filter.filterEditor.valueInputPlaceholder": "値を入力", - "data.filter.filterEditor.valueSelectPlaceholder": "値を選択", - "data.filter.filterEditor.valuesSelectLabel": "値", - "data.filter.filterEditor.valuesSelectPlaceholder": "値を選択", - "data.filter.options.changeAllFiltersButtonLabel": "すべてのフィルターの変更", - "data.filter.options.deleteAllFiltersButtonLabel": "すべて削除", - "data.filter.options.disableAllFiltersButtonLabel": "すべて無効にする", - "data.filter.options.enableAllFiltersButtonLabel": "すべて有効にする", - "data.filter.options.invertDisabledFiltersButtonLabel": "有効・無効を反転", - "data.filter.options.invertNegatedFiltersButtonLabel": "含める・除外を反転", - "data.filter.options.pinAllFiltersButtonLabel": "すべてピン付け", - "data.filter.options.unpinAllFiltersButtonLabel": "すべてのピンを外す", - "data.filter.searchBar.changeAllFiltersTitle": "すべてのフィルターの変更", - "data.functions.esaggs.help": "AggConfig 集約を実行します", - "data.functions.esaggs.inspector.dataRequest.description": "このリクエストはElasticsearchにクエリし、ビジュアライゼーション用のデータを取得します。", - "data.functions.esaggs.inspector.dataRequest.title": "データ", - "data.inspector.table..dataDescriptionTooltip": "ビジュアライゼーションの元のデータを表示", - "data.inspector.table.dataTitle": "データ", - "data.inspector.table.downloadCSVToggleButtonLabel": "CSV をダウンロード", - "data.inspector.table.downloadOptionsUnsavedFilename": "未保存", - "data.inspector.table.exportButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", - "data.inspector.table.filterForValueButtonAriaLabel": "値でフィルター", - "data.inspector.table.filterForValueButtonTooltip": "値でフィルター", - "data.inspector.table.filterOutValueButtonAriaLabel": "値を除外", - "data.inspector.table.filterOutValueButtonTooltip": "値を除外", - "data.inspector.table.formattedCSVButtonLabel": "フォーマット済み CSV", - "data.inspector.table.formattedCSVButtonTooltip": "データを表形式でダウンロード", - "data.inspector.table.noDataAvailableDescription": "エレメントがデータを提供しませんでした。", - "data.inspector.table.noDataAvailableTitle": "利用可能なデータがありません", - "data.inspector.table.rawCSVButtonLabel": "CSV", - "data.inspector.table.rawCSVButtonTooltip": "日付をタイムスタンプとしてなど、提供されたデータをそのままダウンロードします", - "data.inspector.table.tableLabel": "テーブル{index}", - "data.inspector.table.tableSelectorLabel": "選択済み:", - "data.kueryAutocomplete.andOperatorDescription": "{bothArguments} が true であることを条件とする", - "data.kueryAutocomplete.andOperatorDescription.bothArgumentsText": "両方の引数", - "data.kueryAutocomplete.equalOperatorDescription": "一部の値に{equals}", - "data.kueryAutocomplete.equalOperatorDescription.equalsText": "一致する", - "data.kueryAutocomplete.existOperatorDescription": "いずれかの形式中に{exists}", - "data.kueryAutocomplete.existOperatorDescription.existsText": "存在する", - "data.kueryAutocomplete.filterResultsDescription": "{fieldName}を含む結果をフィルタリング", - "data.kueryAutocomplete.greaterThanOperatorDescription": "が一部の値{greaterThan}", - "data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText": "より大きい", - "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription": "が一部の値{greaterThanOrEqualTo}", - "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription.greaterThanOrEqualToText": "よりも大きいまたは等しい", - "data.kueryAutocomplete.lessThanOperatorDescription": "が一部の値{lessThan}", - "data.kueryAutocomplete.lessThanOperatorDescription.lessThanText": "より小さい", - "data.kueryAutocomplete.lessThanOrEqualOperatorDescription": "が一部の値{lessThanOrEqualTo}", - "data.kueryAutocomplete.lessThanOrEqualOperatorDescription.lessThanOrEqualToText": "より小さいまたは等しい", - "data.kueryAutocomplete.orOperatorDescription": "{oneOrMoreArguments} が true であることを条件とする", - "data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText": "1つ以上の引数", - "data.noDataPopover.content": "この時間範囲にはデータが含まれていません。表示するフィールドを増やし、グラフを作成するには、時間範囲を広げるか、調整してください。", - "data.noDataPopover.dismissAction": "今後表示しない", - "data.noDataPopover.subtitle": "ヒント", - "data.noDataPopover.title": "空のデータセット", - "data.painlessError.buttonTxt": "スクリプトを編集", - "data.painlessError.painlessScriptedFieldErrorMessage": "インデックスパターン{indexPatternName}でのランタイムフィールドまたはスクリプトフィールドの実行エラー", - "data.parseEsInterval.invalidEsCalendarIntervalErrorMessage": "無効なカレンダー間隔:{interval}、1よりも大きな値が必要です", - "data.parseEsInterval.invalidEsIntervalFormatErrorMessage": "無効な間隔形式:{interval}", - "data.query.queryBar.clearInputLabel": "インプットを消去", - "data.query.queryBar.comboboxAriaLabel": "{pageType} ページの検索とフィルタリング", - "data.query.queryBar.kqlFullLanguageName": "Kibana クエリ言語", - "data.query.queryBar.kqlLanguageName": "KQL", - "data.query.queryBar.KQLNestedQuerySyntaxInfoDocLinkText": "ドキュメント", - "data.query.queryBar.KQLNestedQuerySyntaxInfoOptOutText": "今後表示しない", - "data.query.queryBar.KQLNestedQuerySyntaxInfoText": "ネストされたフィールドをクエリされているようです。ネストされたクエリに対しては、ご希望の結果により異なる方法で KQL 構文を構築することができます。詳細については、{link}をご覧ください。", - "data.query.queryBar.KQLNestedQuerySyntaxInfoTitle": "KQL ネストされたクエリ構文", - "data.query.queryBar.kqlOffLabel": "オフ", - "data.query.queryBar.kqlOnLabel": "オン", - "data.query.queryBar.languageSwitcher.toText": "検索用にKibana Query Languageに切り替える", - "data.query.queryBar.luceneLanguageName": "Lucene", - "data.query.queryBar.searchInputAriaLabel": "{pageType} ページの検索とフィルタリングを行うには入力を開始してください", - "data.query.queryBar.searchInputPlaceholder": "検索", - "data.query.queryBar.syntaxOptionsDescription": "{docsLink}(KQL)は、シンプルなクエリ構文とスクリプトフィールドのサポートを提供します。KQLにはオートコンプリート機能もあります。KQLをオフにする場合は、{nonKqlModeHelpText}", - "data.query.queryBar.syntaxOptionsDescription.nonKqlModeHelpText": "KibanaはLuceneを使用します。", - "data.query.queryBar.syntaxOptionsTitle": "構文オプション", - "data.search.aggs.aggGroups.bucketsText": "バケット", - "data.search.aggs.aggGroups.metricsText": "メトリック", - "data.search.aggs.aggGroups.noneText": "なし", - "data.search.aggs.aggTypesLabel": "{fieldName} の範囲", - "data.search.aggs.buckets.dateHistogram.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.dateHistogram.dropPartials.help": "このアグリゲーションでdrop_partialsを使用するかどうかを指定します", - "data.search.aggs.buckets.dateHistogram.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.dateHistogram.extendedBounds.help": "extended_bounds設定を使用すると、強制的にヒストグラムアグリゲーションを実行し、特定の最小値に対してバケットの作成を開始し、最大値までバケットを作成し続けます。 ", - "data.search.aggs.buckets.dateHistogram.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.dateHistogram.format.help": "このアグリゲーションで使用するフォーマット", - "data.search.aggs.buckets.dateHistogram.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.dateHistogram.interval.help": "このアグリゲーションで使用する間隔", - "data.search.aggs.buckets.dateHistogram.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.dateHistogram.minDocCount.help": "このアグリゲーションで使用する最小ドキュメントカウント", - "data.search.aggs.buckets.dateHistogram.scaleMetricValues.help": "このアグリゲーションでscaleMetricValuesを使用するかどうかを指定します", - "data.search.aggs.buckets.dateHistogram.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.dateHistogram.timeRange.help": "このアグリゲーションで使用する時間範囲", - "data.search.aggs.buckets.dateHistogram.timeZone.help": "このアグリゲーションで使用するタイムゾーン", - "data.search.aggs.buckets.dateHistogram.useNormalizedEsInterval.help": "このアグリゲーションでuseNormalizedEsIntervalを使用するかどうかを指定します", - "data.search.aggs.buckets.dateHistogramLabel": "{intervalDescription} ごとの {fieldName}", - "data.search.aggs.buckets.dateHistogramTitle": "日付ヒストグラム", - "data.search.aggs.buckets.dateRange.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.dateRange.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.dateRange.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.dateRange.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.dateRange.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.dateRange.ranges.help": "このアグリゲーションで使用する範囲。", - "data.search.aggs.buckets.dateRange.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.dateRange.timeZone.help": "このアグリゲーションで使用するタイムゾーン。", - "data.search.aggs.buckets.dateRangeTitle": "日付範囲", - "data.search.aggs.buckets.filter.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.filter.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.filter.filter.help": "KQLまたはLuceneクエリに基づいて結果をフィルタリングします。geo_bounding_boxと一緒に使用しないでください", - "data.search.aggs.buckets.filter.geoBoundingBox.help": "バウンディングボックス内の点の位置に基づいて結果をフィルタリングします", - "data.search.aggs.buckets.filter.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.filter.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.filter.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.filters.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.filters.filters.help": "このアグリゲーションで使用するフィルター", - "data.search.aggs.buckets.filters.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.filters.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.filters.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.filtersTitle": "フィルター", - "data.search.aggs.buckets.filterTitle": "フィルター", - "data.search.aggs.buckets.geoHash.autoPrecision.help": "このアグリゲーションで自動精度を使用するかどうかを指定します", - "data.search.aggs.buckets.geoHash.boundingBox.help": "バウンディングボックス内の点の位置に基づいて結果をフィルタリングします", - "data.search.aggs.buckets.geoHash.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.geoHash.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.geoHash.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.geoHash.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.geoHash.isFilteredByCollar.help": "カラーでフィルタリングするかどうかを指定します", - "data.search.aggs.buckets.geoHash.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.geoHash.precision.help": "このアグリゲーションで使用する精度。", - "data.search.aggs.buckets.geoHash.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.geoHash.useGeocentroid.help": "このアグリゲーションでgeocentroid使用するかどうかを指定します", - "data.search.aggs.buckets.geohashGridTitle": "ジオハッシュ", - "data.search.aggs.buckets.geoTile.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.geoTile.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.geoTile.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.geoTile.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.geoTile.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.geoTile.precision.help": "このアグリゲーションで使用する精度。", - "data.search.aggs.buckets.geoTile.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.geoTile.useGeocentroid.help": "このアグリゲーションでgeocentroid使用するかどうかを指定します", - "data.search.aggs.buckets.geotileGridTitle": "ジオタイル", - "data.search.aggs.buckets.histogram.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.histogram.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.histogram.extendedBounds.help": "extended_bounds設定を使用すると、強制的にヒストグラムアグリゲーションを実行し、特定の最小値に対してバケットの作成を開始し、最大値までバケットを作成し続けます。 ", - "data.search.aggs.buckets.histogram.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.histogram.hasExtendedBounds.help": "このアグリゲーションでhas_extended_boundsを使用するかどうかを指定します", - "data.search.aggs.buckets.histogram.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.histogram.interval.help": "このアグリゲーションで使用する間隔", - "data.search.aggs.buckets.histogram.intervalBase.help": "このアグリゲーションで使用するIntervalBase", - "data.search.aggs.buckets.histogram.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.histogram.maxBars.help": "間隔を計算して、この数の棒を取得します", - "data.search.aggs.buckets.histogram.minDocCount.help": "このアグリゲーションでmin_doc_countを使用するかどうかを指定します", - "data.search.aggs.buckets.histogram.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.histogramTitle": "ヒストグラム", - "data.search.aggs.buckets.intervalOptions.autoDisplayName": "自動", - "data.search.aggs.buckets.intervalOptions.dailyDisplayName": "日", - "data.search.aggs.buckets.intervalOptions.hourlyDisplayName": "時間", - "data.search.aggs.buckets.intervalOptions.millisecondDisplayName": "ミリ秒", - "data.search.aggs.buckets.intervalOptions.minuteDisplayName": "分", - "data.search.aggs.buckets.intervalOptions.monthlyDisplayName": "月", - "data.search.aggs.buckets.intervalOptions.secondDisplayName": "秒", - "data.search.aggs.buckets.intervalOptions.weeklyDisplayName": "週", - "data.search.aggs.buckets.intervalOptions.yearlyDisplayName": "年", - "data.search.aggs.buckets.ipRange.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.ipRange.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.ipRange.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.ipRange.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.ipRange.ipRangeType.help": "このアグリゲーションで使用するIP範囲タイプ。値mask、fromTOのいずれかを取ります。", - "data.search.aggs.buckets.ipRange.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.ipRange.ranges.help": "このアグリゲーションで使用する範囲。", - "data.search.aggs.buckets.ipRange.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.ipRangeLabel": "{fieldName} IP 範囲", - "data.search.aggs.buckets.ipRangeTitle": "IP範囲", - "data.search.aggs.buckets.range.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.range.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.range.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.range.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.range.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.range.ranges.help": "このアグリゲーションで使用するシリアル化された範囲。", - "data.search.aggs.buckets.range.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.rangeTitle": "範囲", - "data.search.aggs.buckets.shardDelay.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.shardDelay.delay.help": "処理するシャード間の遅延。例:\"5s\".", - "data.search.aggs.buckets.shardDelay.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.shardDelay.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.shardDelay.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.shardDelay.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.significantTerms.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.significantTerms.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.significantTerms.exclude.help": "結果から除外する特定のバケット値", - "data.search.aggs.buckets.significantTerms.excludeLabel": "除外", - "data.search.aggs.buckets.significantTerms.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.significantTerms.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.significantTerms.include.help": "結果に含める特定のバケット値", - "data.search.aggs.buckets.significantTerms.includeLabel": "含める", - "data.search.aggs.buckets.significantTerms.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.significantTerms.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.significantTerms.size.help": "取得するバケットの最大数", - "data.search.aggs.buckets.significantTermsLabel": "{fieldName} のトップ {size} の珍しいアイテム", - "data.search.aggs.buckets.significantTermsTitle": "重要な用語", - "data.search.aggs.buckets.terms.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.buckets.terms.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.buckets.terms.exclude.help": "結果から除外する特定のバケット値", - "data.search.aggs.buckets.terms.excludeLabel": "除外", - "data.search.aggs.buckets.terms.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.buckets.terms.id.help": "このアグリゲーションのID", - "data.search.aggs.buckets.terms.include.help": "結果に含める特定のバケット値", - "data.search.aggs.buckets.terms.includeLabel": "含める", - "data.search.aggs.buckets.terms.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.buckets.terms.missingBucket.help": "trueに設定すると、見つからないフィールドのすべてのバケットをグループ化します", - "data.search.aggs.buckets.terms.missingBucketLabel": "欠測値", - "data.search.aggs.buckets.terms.missingBucketLabel.help": "ドキュメントのフィールドが見つからないときにグラフで使用される既定のラベル。", - "data.search.aggs.buckets.terms.order.help": "結果を返す順序:昇順または降順", - "data.search.aggs.buckets.terms.orderAgg.help": "結果の並べ替えで使用するアグリゲーション構成", - "data.search.aggs.buckets.terms.orderAscendingTitle": "昇順", - "data.search.aggs.buckets.terms.orderBy.help": "結果を並べ替える基準のフィールド", - "data.search.aggs.buckets.terms.orderDescendingTitle": "降順", - "data.search.aggs.buckets.terms.otherBucket.help": "trueに設定すると、許可されたサイズを超えるすべてのバケットをグループ化します", - "data.search.aggs.buckets.terms.otherBucketDescription": "このリクエストは、データバケットの基準外のドキュメントの数をカウントします。", - "data.search.aggs.buckets.terms.otherBucketLabel": "その他", - "data.search.aggs.buckets.terms.otherBucketLabel.help": "他のバケットのドキュメントのグラフで使用される既定のラベル", - "data.search.aggs.buckets.terms.otherBucketTitle": "他のバケット", - "data.search.aggs.buckets.terms.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.buckets.terms.size.help": "取得するバケットの最大数", - "data.search.aggs.buckets.termsTitle": "用語", - "data.search.aggs.error.aggNotFound": "「{type}」に登録されたアグリゲーションタイプが見つかりません。", - "data.search.aggs.function.buckets.dateHistogram.help": "ヒストグラムアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.dateRange.help": "日付範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.filter.help": "フィルターアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.filters.help": "フィルターアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.geoHash.help": "ジオハッシュアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.geoTile.help": "ジオタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.histogram.help": "ヒストグラムアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.ipRange.help": "IP範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.range.help": "範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.shardDelay.help": "シャード遅延アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.significantTerms.help": "重要な用語アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.buckets.terms.help": "用語アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.avg.help": "平均値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.bucket_avg.help": "平均値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.bucket_max.help": "最大値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.bucket_min.help": "最小値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.bucket_sum.help": "合計値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.cardinality.help": "カーディナリティアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.count.help": "カウントアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.cumulative_sum.help": "合計値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.derivative.help": "微分アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.filtered_metric.help": "フィルタリングされたメトリックアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.geo_bounds.help": "ジオ境界アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.geo_centroid.help": "ジオ中心アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.max.help": "最大値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.median.help": "中央値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.min.help": "最小値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.moving_avg.help": "移動平均値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.percentile_ranks.help": "パーセンタイル順位アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.percentiles.help": "パーセンタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.serial_diff.help": "シリアル差異アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.singlePercentile.help": "パーセンタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.std_deviation.help": "標準偏差アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.sum.help": "合計値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.function.metrics.top_hit.help": "上位一致のシリアル化されたアグリゲーション構成を生成します", - "data.search.aggs.histogram.missingMaxMinValuesWarning": "自動スケールヒストグラムバケットから最高値と最低値を取得できません。これによりビジュアライゼーションのパフォーマンスが低下する可能性があります。", - "data.search.aggs.metrics.averageBucketTitle": "平均バケット", - "data.search.aggs.metrics.averageLabel": "平均 {field}", - "data.search.aggs.metrics.averageTitle": "平均", - "data.search.aggs.metrics.avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.avg.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.avg.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.avg.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.bucket_avg.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.bucket_avg.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.bucket_avg.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.bucket_avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.bucket_avg.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.bucket_max.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_max.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.bucket_max.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_max.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.bucket_max.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.bucket_max.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.bucket_max.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.bucket_min.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_min.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.bucket_min.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_min.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.bucket_min.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.bucket_min.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.bucket_min.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.bucket_sum.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.bucket_sum.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.bucket_sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.bucket_sum.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.bucket_sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.bucket_sum.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.cardinality.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.cardinality.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.cardinality.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.cardinality.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.cardinality.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.cardinality.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.count.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.count.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.count.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.count.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.countLabel": "カウント", - "data.search.aggs.metrics.countTitle": "カウント", - "data.search.aggs.metrics.cumulative_sum.buckets_path.help": "関心があるメトリックへのパス", - "data.search.aggs.metrics.cumulative_sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.cumulative_sum.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.cumulative_sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.cumulative_sum.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.cumulative_sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.cumulative_sum.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.cumulative_sum.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.cumulativeSumLabel": "累積和", - "data.search.aggs.metrics.cumulativeSumTitle": "累積和", - "data.search.aggs.metrics.derivative.buckets_path.help": "関心があるメトリックへのパス", - "data.search.aggs.metrics.derivative.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.derivative.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.derivative.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.derivative.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.derivative.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.derivative.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.derivative.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.derivativeLabel": "派生", - "data.search.aggs.metrics.derivativeTitle": "派生", - "data.search.aggs.metrics.filtered_metric.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成フィルターアグリゲーションでなければなりません", - "data.search.aggs.metrics.filtered_metric.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.filtered_metric.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.filtered_metric.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.filtered_metric.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.filtered_metric.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.filteredMetricLabel": "フィルタリング済み", - "data.search.aggs.metrics.filteredMetricTitle": "フィルタリングされたメトリック", - "data.search.aggs.metrics.geo_bounds.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.geo_bounds.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.geo_bounds.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.geo_bounds.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.geo_bounds.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.geo_bounds.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.geo_centroid.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.geo_centroid.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.geo_centroid.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.geo_centroid.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.geo_centroid.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.geo_centroid.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.geoBoundsLabel": "境界", - "data.search.aggs.metrics.geoBoundsTitle": "境界", - "data.search.aggs.metrics.geoCentroidLabel": "ジオセントロイド", - "data.search.aggs.metrics.geoCentroidTitle": "ジオセントロイド", - "data.search.aggs.metrics.max.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.max.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.max.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.max.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.max.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.max.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.maxBucketTitle": "最高バケット", - "data.search.aggs.metrics.maxLabel": "最高 {field}", - "data.search.aggs.metrics.maxTitle": "最高", - "data.search.aggs.metrics.median.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.median.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.median.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.median.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.median.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.median.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.medianLabel": "中央 {field}", - "data.search.aggs.metrics.medianTitle": "中央", - "data.search.aggs.metrics.metricAggregationsSubtypeTitle": "メトリック集約", - "data.search.aggs.metrics.min.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.min.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.min.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.min.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.min.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.min.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.minBucketTitle": "最低バケット", - "data.search.aggs.metrics.minLabel": "最低 {field}", - "data.search.aggs.metrics.minTitle": "最低", - "data.search.aggs.metrics.moving_avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.moving_avg.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.moving_avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.moving_avg.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.moving_avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.moving_avg.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.moving_avg.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.moving_avg.script.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.moving_avg.window.help": "ヒストグラム全体でスライドするウィンドウのサイズ。", - "data.search.aggs.metrics.movingAvgLabel": "移動平均", - "data.search.aggs.metrics.movingAvgTitle": "移動平均", - "data.search.aggs.metrics.overallAverageLabel": "全体平均", - "data.search.aggs.metrics.overallMaxLabel": "全体最高", - "data.search.aggs.metrics.overallMinLabel": "全体最低", - "data.search.aggs.metrics.overallSumLabel": "全体合計", - "data.search.aggs.metrics.parentPipelineAggregationsSubtypeTitle": "親パイプライン集約", - "data.search.aggs.metrics.percentile_ranks.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.percentile_ranks.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.percentile_ranks.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.percentile_ranks.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.percentile_ranks.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.percentile_ranks.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.percentile_ranks.values.help": "パーセンタイル順位の範囲", - "data.search.aggs.metrics.percentileRanks.valuePropsLabel": "「{label}」の {format} のパーセンタイル順位", - "data.search.aggs.metrics.percentileRanksLabel": "{field} のパーセンタイル順位", - "data.search.aggs.metrics.percentileRanksTitle": "パーセンタイル順位", - "data.search.aggs.metrics.percentiles.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.percentiles.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.percentiles.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.percentiles.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.percentiles.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.percentiles.percents.help": "パーセンタイル順位の範囲", - "data.search.aggs.metrics.percentiles.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.percentiles.valuePropsLabel": "{label} の {percentile} パーセンタイル", - "data.search.aggs.metrics.percentilesLabel": "{field} のパーセンタイル", - "data.search.aggs.metrics.percentilesTitle": "パーセンタイル", - "data.search.aggs.metrics.serial_diff.buckets_path.help": "関心があるメトリックへのパス", - "data.search.aggs.metrics.serial_diff.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.serial_diff.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", - "data.search.aggs.metrics.serial_diff.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.serial_diff.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.serial_diff.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.serial_diff.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", - "data.search.aggs.metrics.serial_diff.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.serialDiffLabel": "差分の推移", - "data.search.aggs.metrics.serialDiffTitle": "差分の推移", - "data.search.aggs.metrics.siblingPipelineAggregationsSubtypeTitle": "シブリングパイプラインアグリゲーション", - "data.search.aggs.metrics.singlePercentile.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.singlePercentile.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.singlePercentile.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.singlePercentile.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.singlePercentile.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.singlePercentile.percentile.help": "取得するパーセンタイル", - "data.search.aggs.metrics.singlePercentile.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.singlePercentileLabel": "パーセンタイル{field}", - "data.search.aggs.metrics.singlePercentileTitle": "パーセンタイル", - "data.search.aggs.metrics.standardDeviation.keyDetailsLabel": "{fieldDisplayName} の標準偏差", - "data.search.aggs.metrics.standardDeviation.lowerKeyDetailsTitle": "下の{label}", - "data.search.aggs.metrics.standardDeviation.upperKeyDetailsTitle": "上の{label}", - "data.search.aggs.metrics.standardDeviationLabel": "{field} の標準偏差", - "data.search.aggs.metrics.standardDeviationTitle": "標準偏差", - "data.search.aggs.metrics.std_deviation.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.std_deviation.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.std_deviation.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.std_deviation.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.std_deviation.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.std_deviation.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.sum.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.sum.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.sum.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.sumBucketTitle": "合計バケット", - "data.search.aggs.metrics.sumLabel": "{field} の合計", - "data.search.aggs.metrics.sumTitle": "合計", - "data.search.aggs.metrics.timeShift.help": "設定した時間の分だけメトリックの時間範囲をシフトします。例:1時間、7日。[前へ]は日付ヒストグラムまたは時間範囲フィルターから最も近い時間範囲を使用します。", - "data.search.aggs.metrics.top_hit.aggregate.help": "アグリゲーションタイプ", - "data.search.aggs.metrics.top_hit.customLabel.help": "このアグリゲーションのカスタムラベルを表します", - "data.search.aggs.metrics.top_hit.enabled.help": "このアグリゲーションが有効かどうかを指定します", - "data.search.aggs.metrics.top_hit.field.help": "このアグリゲーションで使用するフィールド", - "data.search.aggs.metrics.top_hit.id.help": "このアグリゲーションのID", - "data.search.aggs.metrics.top_hit.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", - "data.search.aggs.metrics.top_hit.schema.help": "このアグリゲーションで使用するスキーマ", - "data.search.aggs.metrics.top_hit.size.help": "取得するバケットの最大数", - "data.search.aggs.metrics.top_hit.sortField.help": "結果を並べ替える基準のフィールド", - "data.search.aggs.metrics.top_hit.sortOrder.help": "結果を返す順序:昇順または降順", - "data.search.aggs.metrics.topHit.ascendingLabel": "昇順", - "data.search.aggs.metrics.topHit.averageLabel": "平均", - "data.search.aggs.metrics.topHit.concatenateLabel": "連結", - "data.search.aggs.metrics.topHit.descendingLabel": "降順", - "data.search.aggs.metrics.topHit.firstPrefixLabel": "最初", - "data.search.aggs.metrics.topHit.lastPrefixLabel": "最後", - "data.search.aggs.metrics.topHit.maxLabel": "最高", - "data.search.aggs.metrics.topHit.minLabel": "最低", - "data.search.aggs.metrics.topHit.sumLabel": "合計", - "data.search.aggs.metrics.topHitTitle": "トップヒット", - "data.search.aggs.metrics.uniqueCountLabel": "{field} のユニークカウント", - "data.search.aggs.metrics.uniqueCountTitle": "ユニークカウント", - "data.search.aggs.otherBucket.labelForMissingValuesLabel": "欠測値のラベル", - "data.search.aggs.otherBucket.labelForOtherBucketLabel": "他のバケットのラベル", - "data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage": "「{aggType}」アグリゲーションで使用するには、インデックスパターン「{indexPatternTitle}」の保存されたフィールド「{fieldParameter}」が無効です。新しいフィールドを選択してください。", - "data.search.aggs.paramTypes.field.notFoundSavedFieldParameterErrorMessage": "このオブジェクトに関連付けられたフィールド\"{fieldParameter}\"は、インデックスパターンに存在しません。別のフィールドを使用してください。", - "data.search.aggs.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} は必須パラメーターです", - "data.search.aggs.percentageOfLabel": "{label} の割合", - "data.search.aggs.string.customLabel": "カスタムラベル", - "data.search.dataRequest.title": "データ", - "data.search.es_search.dataRequest.description": "このリクエストはElasticsearchにクエリし、ビジュアライゼーション用のデータを取得します。", - "data.search.es_search.hitsDescription": "クエリにより返されたドキュメントの数です。", - "data.search.es_search.hitsLabel": "ヒット数", - "data.search.es_search.hitsTotalDescription": "クエリに一致するドキュメントの数です。", - "data.search.es_search.hitsTotalLabel": "ヒット数(合計)", - "data.search.es_search.indexPatternDescription": "Elasticsearchインデックスに接続したインデックスパターンです。", - "data.search.es_search.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザーでのパースの時間は含まれません。", - "data.search.es_search.queryTimeLabel": "クエリ時間", - "data.search.es_search.queryTimeValue": "{queryTime}ms", - "data.search.esaggs.error.kibanaRequest": "サーバーでこの検索を実行するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", - "data.search.esdsl.help": "Elasticsearch リクエストを実行", - "data.search.esdsl.index.help": "クエリするElasticsearchインデックス", - "data.search.esdsl.q.help": "クエリDSL", - "data.search.esdsl.size.help": "Elasticsearch 検索 API サイズパラメーター", - "data.search.esErrorTitle": "検索結果を取得できません", - "data.search.functions.cidr.cidr.help": "CIDRブロックを指定", - "data.search.functions.cidr.help": "CIDRに基づく範囲を作成", - "data.search.functions.dateRange.from.help": "開始日を指定", - "data.search.functions.dateRange.help": "日付範囲を作成", - "data.search.functions.dateRange.to.help": "終了日を指定", - "data.search.functions.esaggs.aggConfigs.help": "agg_type 関数で構成されたアグリゲーションのリスト", - "data.search.functions.esaggs.index.help": "indexPatternLoad で取得されたインデックスパターン", - "data.search.functions.esaggs.metricsAtAllLevels.help": "各バケットレベルでメトリックがある列が含まれるかどうか", - "data.search.functions.esaggs.partialRows.help": "一部のデータのみを含む行を返すかどうか", - "data.search.functions.esaggs.timeFields.help": "クエリに対して解決された時間範囲を取得する時刻フィールドを指定します", - "data.search.functions.existsFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", - "data.search.functions.existsFilter.help": "Kibana existsフィルターを作成", - "data.search.functions.existsFilter.negate.help": "フィルターは否定でなければなりません。", - "data.search.functions.extendedBounds.help": "予想バウンドを作成", - "data.search.functions.extendedBounds.max.help": "上限値を指定", - "data.search.functions.extendedBounds.min.help": "下限値を指定", - "data.search.functions.field.help": "Kibanaフィールドを作成します。", - "data.search.functions.field.name.help": "フィールドの名前です", - "data.search.functions.field.script.help": "フィールドがスクリプト化されている場合はフィールドスクリプト。", - "data.search.functions.field.type.help": "フィールド型", - "data.search.functions.geoBoundingBox.arguments.error": "次のパラメーターのグループの1つ以上を指定する必要があります:{parameters}。", - "data.search.functions.geoBoundingBox.bottom_left.help": "左下角を指定", - "data.search.functions.geoBoundingBox.bottom_right.help": "右下角を指定", - "data.search.functions.geoBoundingBox.bottom.help": "下座標を指定", - "data.search.functions.geoBoundingBox.help": "ジオバウンディングボックスを作成", - "data.search.functions.geoBoundingBox.left.help": "左座標を指定", - "data.search.functions.geoBoundingBox.right.help": "右座標を指定", - "data.search.functions.geoBoundingBox.top_left.help": "左上角を指定", - "data.search.functions.geoBoundingBox.top_right.help": "右上角を指定", - "data.search.functions.geoBoundingBox.top.help": "上座標を指定", - "data.search.functions.geoBoundingBox.wkt.help": "よく知られたテキスト(WKT)を指定", - "data.search.functions.geoPoint.arguments.error": "「緯度」、「経度」、または「ポイント」パラメーターを指定してください。", - "data.search.functions.geoPoint.help": "地理ポイントを作成", - "data.search.functions.geoPoint.lat.help": "緯度を指定", - "data.search.functions.geoPoint.lon.help": "経度を指定", - "data.search.functions.geoPoint.point.error": "ポイントパラメーターは文字列または2つの数値にしてください。", - "data.search.functions.geoPoint.point.help": "カンマ区切りの座標が付いた文字列または2つの数値としてポイントを指定", - "data.search.functions.ipRange.from.help": "開始アドレスを指定", - "data.search.functions.ipRange.help": "IP範囲を作成", - "data.search.functions.ipRange.to.help": "終了アドレスを指定", - "data.search.functions.kibana_context.filters.help": "Kibana ジェネリックフィルターを指定します", - "data.search.functions.kibana_context.help": "Kibana グローバルコンテキストを更新します", - "data.search.functions.kibana_context.q.help": "自由形式の Kibana テキストクエリを指定します", - "data.search.functions.kibana_context.savedSearchId.help": "クエリとフィルターに使用する保存検索ID を指定します。", - "data.search.functions.kibana_context.timeRange.help": "Kibana 時間範囲フィルターを指定します", - "data.search.functions.kibana.help": "Kibana グローバルコンテキストを取得します", - "data.search.functions.kibanaFilter.disabled.help": "フィルターは無効でなければなりません", - "data.search.functions.kibanaFilter.field.help": "フリーフォームesdslクエリを指定", - "data.search.functions.kibanaFilter.help": "Kibanaフィルターを作成", - "data.search.functions.kibanaFilter.negate.help": "フィルターは否定でなければなりません", - "data.search.functions.kql.help": "Kibana kqlクエリ", - "data.search.functions.kql.q.help": "Kibana KQLフリーフォームテキストクエリを指定", - "data.search.functions.lucene.help": "Kibana Luceneクエリを作成", - "data.search.functions.lucene.q.help": "Kibanaフリーフォームテキストクエリを指定", - "data.search.functions.numericalRange.from.help": "開始値を指定", - "data.search.functions.numericalRange.help": "数値範囲を作成", - "data.search.functions.numericalRange.label.help": "範囲ラベルを指定", - "data.search.functions.numericalRange.to.help": "終了値を指定", - "data.search.functions.phraseFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", - "data.search.functions.phraseFilter.help": "Kibanaフレーズまたはフレーズフィルターを作成", - "data.search.functions.phraseFilter.negate.help": "フィルターは否定でなければなりません", - "data.search.functions.phraseFilter.phrase.help": "フレーズを指定", - "data.search.functions.queryFilter.help": "クエリフィルターを作成", - "data.search.functions.queryFilter.input.help": "クエリフィルターを指定", - "data.search.functions.queryFilter.label.help": "フィルターラベルを指定", - "data.search.functions.range.gt.help": "より大きい", - "data.search.functions.range.gte.help": "以上", - "data.search.functions.range.help": "Kibana範囲フィルターを作成", - "data.search.functions.range.lt.help": "より小さい", - "data.search.functions.range.lte.help": "以下", - "data.search.functions.rangeFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", - "data.search.functions.rangeFilter.help": "Kibana範囲フィルターを作成", - "data.search.functions.rangeFilter.negate.help": "フィルターは否定でなければなりません", - "data.search.functions.rangeFilter.range.help": "範囲を指定し、「range」関数を使用します。", - "data.search.functions.timerange.from.help": "開始日を指定", - "data.search.functions.timerange.help": "Kibana timerangeを作成", - "data.search.functions.timerange.mode.help": "モードを指定(絶対または相対)", - "data.search.functions.timerange.to.help": "終了日を指定", - "data.search.httpErrorTitle": "データを取得できません", - "data.search.searchBar.savedQueryDescriptionLabelText": "説明", - "data.search.searchBar.savedQueryDescriptionText": "再度使用するクエリテキストとフィルターを保存します。", - "data.search.searchBar.savedQueryForm.titleConflictText": "タイトルがすでに保存されているクエリに使用されています", - "data.search.searchBar.savedQueryFormCancelButtonText": "キャンセル", - "data.search.searchBar.savedQueryFormSaveButtonText": "保存", - "data.search.searchBar.savedQueryFormTitle": "クエリを保存", - "data.search.searchBar.savedQueryIncludeFiltersLabelText": "フィルターを含める", - "data.search.searchBar.savedQueryIncludeTimeFilterLabelText": "時間フィルターを含める", - "data.search.searchBar.savedQueryNameHelpText": "名前が必要です。タイトルの始めと終わりにはスペースを使用できません。名前は固有でなければなりません。", - "data.search.searchBar.savedQueryNameLabelText": "名前", - "data.search.searchBar.savedQueryNoSavedQueriesText": "保存されたクエリがありません。", - "data.search.searchBar.savedQueryPopoverButtonText": "保存されたクエリを表示", - "data.search.searchBar.savedQueryPopoverClearButtonAriaLabel": "現在保存されているクエリを消去", - "data.search.searchBar.savedQueryPopoverClearButtonText": "クリア", - "data.search.searchBar.savedQueryPopoverConfirmDeletionCancelButtonText": "キャンセル", - "data.search.searchBar.savedQueryPopoverConfirmDeletionConfirmButtonText": "削除", - "data.search.searchBar.savedQueryPopoverConfirmDeletionTitle": "「{savedQueryName}」を削除しますか?", - "data.search.searchBar.savedQueryPopoverDeleteButtonAriaLabel": "保存されたクエリ {savedQueryName} を削除", - "data.search.searchBar.savedQueryPopoverSaveAsNewButtonAriaLabel": "新規保存クエリを保存", - "data.search.searchBar.savedQueryPopoverSaveAsNewButtonText": "新規保存", - "data.search.searchBar.savedQueryPopoverSaveButtonAriaLabel": "新規保存クエリを保存", - "data.search.searchBar.savedQueryPopoverSaveButtonText": "現在のクエリを保存", - "data.search.searchBar.savedQueryPopoverSaveChangesButtonAriaLabel": "{title} への変更を保存", - "data.search.searchBar.savedQueryPopoverSaveChangesButtonText": "変更を保存", - "data.search.searchBar.savedQueryPopoverSavedQueryListItemButtonAriaLabel": "保存クエリボタン {savedQueryName}", - "data.search.searchBar.savedQueryPopoverSavedQueryListItemDescriptionAriaLabel": "{savedQueryName}の説明", - "data.search.searchBar.savedQueryPopoverSavedQueryListItemSelectedButtonAriaLabel": "選択されたクエリボタン {savedQueryName} を保存しました。変更を破棄するには押してください。", - "data.search.searchBar.savedQueryPopoverTitleText": "保存されたクエリ", - "data.search.searchSource.fetch.requestTimedOutNotificationMessage": "リクエストがタイムアウトしたため、データが不完全な可能性があります", - "data.search.searchSource.fetch.shardsFailedModal.close": "閉じる", - "data.search.searchSource.fetch.shardsFailedModal.copyToClipboard": "応答をクリップボードにコピー", - "data.search.searchSource.fetch.shardsFailedModal.failureHeader": "{failureName} at {failureDetails}", - "data.search.searchSource.fetch.shardsFailedModal.showDetails": "詳細を表示", - "data.search.searchSource.fetch.shardsFailedModal.tabHeaderRequest": "リクエスト", - "data.search.searchSource.fetch.shardsFailedModal.tabHeaderResponse": "応答", - "data.search.searchSource.fetch.shardsFailedModal.tabHeaderShardFailures": "シャードエラー", - "data.search.searchSource.fetch.shardsFailedModal.tableColIndex": "インデックス", - "data.search.searchSource.fetch.shardsFailedModal.tableColNode": "ノード", - "data.search.searchSource.fetch.shardsFailedModal.tableColReason": "理由", - "data.search.searchSource.fetch.shardsFailedModal.tableColShard": "シャード", - "data.search.searchSource.fetch.shardsFailedModal.tableRowCollapse": "{rowDescription}を折りたたむ", - "data.search.searchSource.fetch.shardsFailedModal.tableRowExpand": "{rowDescription}を展開する", - "data.search.searchSource.fetch.shardsFailedNotificationDescription": "表示されているデータは不完全か誤りの可能性があります。", - "data.search.searchSource.fetch.shardsFailedNotificationMessage": "{shardsTotal} 件中 {shardsFailed} 件のシャードでエラーが発生しました", - "data.search.searchSource.hitsDescription": "クエリにより返されたドキュメントの数です。", - "data.search.searchSource.hitsLabel": "ヒット数", - "data.search.searchSource.hitsTotalDescription": "クエリに一致するドキュメントの数です。", - "data.search.searchSource.hitsTotalLabel": "ヒット数(合計)", - "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} インデックス内の ID です。", - "data.search.searchSource.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザーでのパースの時間は含まれません。", - "data.search.searchSource.queryTimeLabel": "クエリ時間", - "data.search.searchSource.queryTimeValue": "{queryTime}ms", - "data.search.searchSource.requestTimeDescription": "ブラウザから Elasticsearch にリクエストが送信され返されるまでの所要時間です。リクエストがキューで待機していた時間は含まれません。", - "data.search.searchSource.requestTimeLabel": "リクエスト時間", - "data.search.searchSource.requestTimeValue": "{requestTime}ms", - "data.search.timeBuckets.infinityLabel": "1年を超える", - "data.search.timeBuckets.monthLabel": "1か月", - "data.search.timeBuckets.yearLabel": "1年", - "data.search.timeoutContactAdmin": "クエリがタイムアウトしました。実行時間を延長するには、システム管理者に問い合わせてください。", - "data.search.timeoutIncreaseSetting": "クエリがタイムアウトしました。検索タイムアウト詳細設定で実行時間を延長します。", - "data.search.timeoutIncreaseSettingActionText": "設定を編集", - "data.search.unableToGetSavedQueryToastTitle": "保存したクエリ {savedQueryId} を読み込めません", - "data.searchSession.warning.readDocs": "続きを読む", - "data.searchSessionIndicator.noCapability": "検索セッションを作成するアクセス権がありません。", - "data.searchSessions.sessionService.sessionEditNameError": "検索セッションの名前を編集できませんでした", - "data.searchSessions.sessionService.sessionObjectFetchError": "検索セッション情報を取得できませんでした", - "data.triggers.applyFilterDescription": "Kibanaフィルターが適用されるとき。単一の値または範囲フィルターにすることができます。", - "data.triggers.applyFilterTitle": "フィルターを適用", - "dataViews.ensureDefaultIndexPattern.bannerLabel": "Kibanaでデータの可視化と閲覧を行うには、Elasticsearchからデータを取得するためのインデックスパターンの作成が必要です。", - "dataViews.fetchFieldErrorTitle": "インデックスパターンのフィールド取得中にエラーが発生 {title}(ID:{id})", - "dataViews.indexPatternLoad.error.kibanaRequest": "サーバーでこの検索を実行するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", - "dataViews.unableWriteLabel": "インデックスパターンを書き込めません。このインデックスパターンへの最新の変更を取得するには、ページを更新してください。", - "devTools.badge.readOnly.text": "読み取り専用", - "devTools.badge.readOnly.tooltip": "を保存できませんでした", - "devTools.devToolsTitle": "開発ツール", - "devTools.k7BreadcrumbsDevToolsLabel": "開発ツール", - "devTools.pageTitle": "開発ツール", - "discover.advancedSettings.context.defaultSizeText": "コンテキストビューに表示される周りのエントリーの数", - "discover.advancedSettings.context.defaultSizeTitle": "コンテキストサイズ", - "discover.advancedSettings.context.sizeStepText": "コンテキストサイズを増減させる際の最低単位です", - "discover.advancedSettings.context.sizeStepTitle": "コンテキストサイズのステップ", - "discover.advancedSettings.context.tieBreakerFieldsTitle": "タイブレーカーフィールド", - "discover.advancedSettings.defaultColumnsText": "デフォルトで Discover タブに表示される列です", - "discover.advancedSettings.defaultColumnsTitle": "デフォルトの列", - "discover.advancedSettings.discover.multiFieldsLinkText": "マルチフィールド", - "discover.advancedSettings.discover.readFieldsFromSource": "_sourceからフィールドを読み取る", - "discover.advancedSettings.discover.readFieldsFromSourceDescription": "有効にすると、「_source」から直接ドキュメントを読み込みます。これはまもなく廃止される予定です。無効にすると、上位レベルの検索サービスで新しいフィールドAPI経由でフィールドを取得します。", - "discover.advancedSettings.discover.showMultifields": "マルチフィールドを表示", - "discover.advancedSettings.discover.showMultifieldsDescription": "拡張ドキュメントビューに{multiFields}が表示されるかどうかを制御します。ほとんどの場合、マルチフィールドは元のフィールドと同じです。「searchFieldsFromSource」がオフのときにのみこのオプションを使用できます。", - "discover.advancedSettings.docTableHideTimeColumnText": "Discover と、ダッシュボードのすべての保存された検索で、「時刻」列を非表示にします。", - "discover.advancedSettings.docTableHideTimeColumnTitle": "「時刻」列を非表示", - "discover.advancedSettings.fieldsPopularLimitText": "最も頻繁に使用されるフィールドのトップNを表示します", - "discover.advancedSettings.fieldsPopularLimitTitle": "頻繁に使用されるフィールドの制限", - "discover.advancedSettings.maxDocFieldsDisplayedText": "ドキュメント列でレンダリングされたフィールドの最大数", - "discover.advancedSettings.maxDocFieldsDisplayedTitle": "表示される最大ドキュメントフィールド数", - "discover.advancedSettings.sampleSizeText": "表に表示する行数です", - "discover.advancedSettings.sampleSizeTitle": "行数", - "discover.advancedSettings.searchOnPageLoadText": "Discover の最初の読み込み時に検索を実行するかを制御します。この設定は、保存された検索の読み込み時には影響しません。", - "discover.advancedSettings.searchOnPageLoadTitle": "ページの読み込み時の検索", - "discover.advancedSettings.sortDefaultOrderTitle": "デフォルトの並べ替え方向", - "discover.advancedSettings.sortOrderAsc": "昇順", - "discover.advancedSettings.sortOrderDesc": "降順", - "discover.advancedSettings.params.maxCellHeightTitle": "表のセルの高さの上限", - "discover.advancedSettings.params.maxCellHeightText": "表のセルが使用する高さの上限です。この切り捨てを無効にするには0に設定します", - "discover.backToTopLinkText": "最上部へ戻る。", - "discover.badge.readOnly.text": "読み取り専用", - "discover.badge.readOnly.tooltip": "検索を保存できません", - "discover.bucketIntervalTooltip": "この間隔は選択された時間範囲に表示される{bucketsDescription}が作成されるため、{bucketIntervalDescription}にスケーリングされています。", - "discover.bucketIntervalTooltip.tooLargeBucketsText": "大きすぎるバケット", - "discover.bucketIntervalTooltip.tooManyBucketsText": "バケットが多すぎます", - "discover.clearSelection": "選択した項目をクリア", - "discover.context.breadcrumb": "周りのドキュメント", - "discover.context.contextOfTitle": "#{anchorId}の周りのドキュメント", - "discover.context.failedToLoadAnchorDocumentDescription": "アンカードキュメントの読み込みに失敗しました", - "discover.context.failedToLoadAnchorDocumentErrorDescription": "アンカードキュメントの読み込みに失敗しました。", - "discover.context.invalidTieBreakerFiledSetting": "無効なタイブレーカーフィールド設定", - "discover.context.loadButtonLabel": "読み込み", - "discover.context.loadingDescription": "読み込み中...", - "discover.context.newerDocumentsAriaLabel": "新しいドキュメントの数", - "discover.context.newerDocumentsDescription": "新しいドキュメント", - "discover.context.newerDocumentsWarning": "アンカーよりも新しいドキュメントは{docCount}件しか見つかりませんでした。", - "discover.context.newerDocumentsWarningZero": "アンカーよりも新しいドキュメントは見つかりませんでした。", - "discover.context.olderDocumentsAriaLabel": "古いドキュメントの数", - "discover.context.olderDocumentsDescription": "古いドキュメント", - "discover.context.olderDocumentsWarning": "アンカーよりも古いドキュメントは{docCount}件しか見つかりませんでした。", - "discover.context.olderDocumentsWarningZero": "アンカーよりも古いドキュメントは見つかりませんでした。", - "discover.context.reloadPageDescription.reloadOrVisitTextMessage": "ドキュメントリストを再読み込みするか、ドキュメントリストに戻り、有効なアンカードキュメントを選択してください。", - "discover.context.unableToLoadAnchorDocumentDescription": "アンカードキュメントを読み込めません", - "discover.context.unableToLoadDocumentDescription": "ドキュメントを読み込めません", - "discover.controlColumnHeader": "列の制御", - "discover.copyToClipboardJSON": "ドキュメントをクリップボードにコピー(JSON)", - "discover.discoverBreadcrumbTitle": "Discover", - "discover.discoverDefaultSearchSessionName": "Discover", - "discover.discoverDescription": "ドキュメントにクエリをかけたりフィルターを適用することで、データをインタラクティブに閲覧できます。", - "discover.discoverSubtitle": "インサイトを検索して見つけます。", - "discover.discoverTitle": "Discover", - "discover.doc.couldNotFindDocumentsDescription": "そのIDに一致するドキュメントがありません。", - "discover.doc.failedToExecuteQueryDescription": "検索の実行に失敗しました", - "discover.doc.failedToLocateDocumentDescription": "ドキュメントが見つかりませんでした", - "discover.doc.loadingDescription": "読み込み中…", - "discover.doc.somethingWentWrongDescription": "{indexName}が見つかりません。", - "discover.doc.somethingWentWrongDescriptionAddon": "インデックスが存在することを確認してください。", - "discover.docTable.documentsNavigation": "ドキュメントナビゲーション", - "discover.docTable.limitedSearchResultLabel": "{resultCount}件の結果のみが表示されます。検索結果を絞り込みます。", - "discover.docTable.noResultsTitle": "結果が見つかりませんでした", - "discover.docTable.rows": "行", - "discover.docTable.tableHeader.documentHeader": "ドキュメント", - "discover.docTable.tableHeader.moveColumnLeftButtonAriaLabel": "{columnName}列を左に移動", - "discover.docTable.tableHeader.moveColumnLeftButtonTooltip": "列を左に移動", - "discover.docTable.tableHeader.moveColumnRightButtonAriaLabel": "{columnName}列を右に移動", - "discover.docTable.tableHeader.moveColumnRightButtonTooltip": "列を右に移動", - "discover.docTable.tableHeader.removeColumnButtonAriaLabel": "{columnName}列を削除", - "discover.docTable.tableHeader.removeColumnButtonTooltip": "列の削除", - "discover.docTable.tableHeader.sortByColumnAscendingAriaLabel": "{columnName}を昇順に並べ替える", - "discover.docTable.tableHeader.sortByColumnDescendingAriaLabel": "{columnName}を降順に並べ替える", - "discover.docTable.tableHeader.sortByColumnUnsortedAriaLabel": "{columnName}で並べ替えを止める", - "discover.docTable.tableRow.detailHeading": "拡張ドキュメント", - "discover.docTable.tableRow.filterForValueButtonAriaLabel": "値でフィルター", - "discover.docTable.tableRow.filterForValueButtonTooltip": "値でフィルター", - "discover.docTable.tableRow.filterOutValueButtonAriaLabel": "値を除外", - "discover.docTable.tableRow.filterOutValueButtonTooltip": "値を除外", - "discover.docTable.tableRow.toggleRowDetailsButtonAriaLabel": "行の詳細を切り替える", - "discover.docTable.tableRow.viewSingleDocumentLinkText": "単一のドキュメントを表示", - "discover.docTable.tableRow.viewSurroundingDocumentsLinkText": "周りのドキュメントを表示", - "discover.docTable.totalDocuments": "{totalDocuments}ドキュメント", - "discover.documentsAriaLabel": "ドキュメント", - "discover.docViews.json.jsonTitle": "JSON", - "discover.docViews.table.filterForFieldPresentButtonAriaLabel": "フィールド表示のフィルター", - "discover.docViews.table.filterForFieldPresentButtonTooltip": "フィールド表示のフィルター", - "discover.docViews.table.filterForValueButtonAriaLabel": "値でフィルター", - "discover.docViews.table.filterForValueButtonTooltip": "値でフィルター", - "discover.docViews.table.filterOutValueButtonAriaLabel": "値を除外", - "discover.docViews.table.filterOutValueButtonTooltip": "値を除外", - "discover.docViews.table.scoreSortWarningTooltip": "_scoreの値を取得するには、並べ替える必要があります。", - "discover.docViews.table.tableTitle": "表", - "discover.docViews.table.toggleColumnInTableButtonAriaLabel": "表の列を切り替える", - "discover.docViews.table.toggleColumnInTableButtonTooltip": "表の列を切り替える", - "discover.docViews.table.toggleFieldDetails": "フィールド詳細を切り替える", - "discover.docViews.table.unableToFilterForPresenceOfMetaFieldsTooltip": "メタフィールドの有無でフィルタリングできません", - "discover.docViews.table.unableToFilterForPresenceOfScriptedFieldsTooltip": "スクリプトフィールドの有無でフィルタリングできません", - "discover.embeddable.inspectorRequestDataTitle": "データ", - "discover.embeddable.inspectorRequestDescription": "このリクエストはElasticsearchにクエリをかけ、検索データを取得します。", - "discover.embeddable.search.displayName": "検索", - "discover.field.mappingConflict": "このフィールドは、このパターンと一致するインデックス全体に対して複数の型(文字列、整数など)として定義されています。この競合フィールドを使用することはできますが、Kibana で型を認識する必要がある関数では使用できません。この問題を修正するにはデータのレンダリングが必要です。", - "discover.field.mappingConflict.title": "マッピングの矛盾", - "discover.field.title": "{fieldName} ({fieldDisplayName})", - "discover.fieldChooser.detailViews.emptyStringText": "空の文字列", - "discover.fieldChooser.detailViews.existsInRecordsText": "{value} / {totalValue}件のレコードに存在", - "discover.fieldChooser.detailViews.filterOutValueButtonAriaLabel": "{field}を除外:\"{value}\"", - "discover.fieldChooser.detailViews.filterValueButtonAriaLabel": "{field}を除外:\"{value}\"", - "discover.fieldChooser.detailViews.valueOfRecordsText": "{value} / {totalValue}件のレコード", - "discover.fieldChooser.discoverField.actions": "アクション", - "discover.fieldChooser.discoverField.addButtonAriaLabel": "{field}を表に追加", - "discover.fieldChooser.discoverField.addFieldTooltip": "フィールドを列として追加", - "discover.fieldChooser.discoverField.fieldTopValuesLabel": "トップ5の値", - "discover.fieldChooser.discoverField.multiField": "複数フィールド", - "discover.fieldChooser.discoverField.multiFields": "マルチフィールド", - "discover.fieldChooser.discoverField.multiFieldTooltipContent": "複数フィールドにはフィールドごとに複数の値を入力できます", - "discover.fieldChooser.discoverField.name": "フィールド", - "discover.fieldChooser.discoverField.removeButtonAriaLabel": "{field}を表から削除", - "discover.fieldChooser.discoverField.removeFieldTooltip": "フィールドを表から削除", - "discover.fieldChooser.discoverField.value": "値", - "discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForGeoFieldsErrorMessage": "ジオフィールドは分析できません。", - "discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForObjectFieldsErrorMessage": "オブジェクトフィールドは分析できません。", - "discover.fieldChooser.fieldCalculator.fieldIsNotPresentInDocumentsErrorMessage": "このフィールドはElasticsearchマッピングに表示されますが、ドキュメントテーブルの{hitsLength}件のドキュメントには含まれません。可視化や検索は可能な場合があります。", - "discover.fieldChooser.fieldFilterButtonLabel": "タイプでフィルタリング", - "discover.fieldChooser.fieldsMobileButtonLabel": "フィールド", - "discover.fieldChooser.filter.aggregatableLabel": "集約可能", - "discover.fieldChooser.filter.availableFieldsTitle": "利用可能なフィールド", - "discover.fieldChooser.filter.fieldSelectorLabel": "{id}フィルターオプションの選択", - "discover.fieldChooser.filter.filterByTypeLabel": "タイプでフィルタリング", - "discover.fieldChooser.filter.indexAndFieldsSectionAriaLabel": "インデックスとフィールド", - "discover.fieldChooser.filter.popularTitle": "人気", - "discover.fieldChooser.filter.searchableLabel": "検索可能", - "discover.fieldChooser.filter.selectedFieldsTitle": "スクリプトフィールド", - "discover.fieldChooser.filter.toggleButton.any": "すべて", - "discover.fieldChooser.filter.toggleButton.no": "いいえ", - "discover.fieldChooser.filter.toggleButton.yes": "はい", - "discover.fieldChooser.filter.typeLabel": "型", - "discover.fieldChooser.searchPlaceHolder": "検索フィールド名", - "discover.fieldChooser.toggleFieldFilterButtonHideAriaLabel": "フィールド設定を非表示", - "discover.fieldChooser.toggleFieldFilterButtonShowAriaLabel": "フィールド設定を表示", - "discover.fieldChooser.visualizeButton.label": "可視化", - "discover.fieldList.flyoutBackIcon": "戻る", - "discover.fieldList.flyoutHeading": "フィールドリスト", - "discover.fieldNameIcons.booleanAriaLabel": "ブールフィールド", - "discover.fieldNameIcons.conflictFieldAriaLabel": "矛盾フィールド", - "discover.fieldNameIcons.dateFieldAriaLabel": "日付フィールド", - "discover.fieldNameIcons.geoPointFieldAriaLabel": "地理ポイントフィールド", - "discover.fieldNameIcons.geoShapeFieldAriaLabel": "地理情報シェイプフィールド", - "discover.fieldNameIcons.ipAddressFieldAriaLabel": "IPアドレスフィールド", - "discover.fieldNameIcons.murmur3FieldAriaLabel": "Murmur3フィールド", - "discover.fieldNameIcons.nestedFieldAriaLabel": "入れ子フィールド", - "discover.fieldNameIcons.numberFieldAriaLabel": "数値フィールド", - "discover.fieldNameIcons.sourceFieldAriaLabel": "ソースフィールド", - "discover.fieldNameIcons.stringFieldAriaLabel": "文字列フィールド", - "discover.fieldNameIcons.unknownFieldAriaLabel": "不明なフィールド", - "discover.grid.documentHeader": "ドキュメント", - "discover.grid.filterFor": "フィルター", - "discover.grid.filterForAria": "この{value}でフィルターを適用", - "discover.grid.filterOut": "除外", - "discover.grid.filterOutAria": "この{value}を除外", - "discover.grid.flyout.documentNavigation": "ドキュメントナビゲーション", - "discover.grid.flyout.toastColumnAdded": "列'{columnName}'が追加されました", - "discover.grid.flyout.toastColumnRemoved": "列'{columnName}'が削除されました", - "discover.grid.flyout.toastFilterAdded": "フィルターが追加されました", - "discover.grid.tableRow.detailHeading": "拡張ドキュメント", - "discover.grid.tableRow.viewSingleDocumentLinkTextSimple": "1つのドキュメント", - "discover.grid.tableRow.viewSurroundingDocumentsLinkTextSimple": "周りのドキュメント", - "discover.grid.tableRow.viewText": "表示:", - "discover.grid.viewDoc": "詳細ダイアログを切り替え", - "discover.helpMenu.appName": "Discover", - "discover.hideChart": "グラフを非表示", - "discover.histogramOfFoundDocumentsAriaLabel": "検出されたドキュメントのヒストグラム", - "discover.hitCountSpinnerAriaLabel": "読み込み中の最終一致件数", - "discover.howToSeeOtherMatchingDocumentsDescription": "これらは検索条件に一致した初めの {sampleSize} 件のドキュメントです。他の結果を表示するには検索条件を絞ってください。", - "discover.howToSeeOtherMatchingDocumentsDescriptionGrid": "これらは検索条件に一致した初めの {sampleSize} 件のドキュメントです。他の結果を表示するには検索条件を絞ってください。", - "discover.inspectorRequestDataTitleChart": "グラフデータ", - "discover.inspectorRequestDataTitleDocuments": "ドキュメント", - "discover.inspectorRequestDataTitleTotalHits": "総ヒット数", - "discover.inspectorRequestDescriptionChart": "このリクエストはElasticsearchにクエリをかけ、グラフの集計データを取得します。", - "discover.inspectorRequestDescriptionDocument": "このリクエストはElasticsearchにクエリをかけ、ドキュメントを取得します。", - "discover.inspectorRequestDescriptionTotalHits": "このリクエストはElasticsearchにクエリをかけ、合計一致数を取得します。", - "discover.json.codeEditorAriaLabel": "Elasticsearch ドキュメントの JSON ビューのみを読み込む", - "discover.json.copyToClipboardLabel": "クリップボードにコピー", - "discover.loadingChartResults": "グラフを読み込み中", - "discover.loadingDocuments": "ドキュメントを読み込み中", - "discover.loadingJSON": "JSONを読み込んでいます", - "discover.loadingResults": "結果を読み込み中", - "discover.localMenu.inspectTitle": "検査", - "discover.localMenu.localMenu.newSearchTitle": "新規", - "discover.localMenu.localMenu.optionsTitle": "オプション", - "discover.localMenu.newSearchDescription": "新規検索", - "discover.localMenu.openInspectorForSearchDescription": "検索用にインスペクターを開きます", - "discover.localMenu.openSavedSearchDescription": "保存された検索を開きます", - "discover.localMenu.openTitle": "開く", - "discover.localMenu.optionsDescription": "オプション", - "discover.localMenu.saveSaveSearchObjectType": "検索", - "discover.localMenu.saveSearchDescription": "検索を保存します", - "discover.localMenu.saveTitle": "保存", - "discover.localMenu.shareSearchDescription": "検索を共有します", - "discover.localMenu.shareTitle": "共有", - "discover.noResults.adjustFilters": "フィルターを調整", - "discover.noResults.adjustSearch": "クエリを調整", - "discover.noResults.disableFilters": "フィルターを一時的に無効にしています", - "discover.noResults.expandYourTimeRangeTitle": "時間範囲を拡大", - "discover.noResults.queryMayNotMatchTitle": "期間を長くして検索を試してください。", - "discover.noResults.searchExamples.noResultsBecauseOfError": "検索結果の取得中にエラーが発生しました", - "discover.noResults.searchExamples.noResultsMatchSearchCriteriaTitle": "検索条件と一致する結果がありません。", - "discover.noResultsFound": "結果が見つかりませんでした", - "discover.notifications.invalidTimeRangeText": "指定された時間範囲が無効です。(開始:'{from}'、終了:'{to}')", - "discover.notifications.invalidTimeRangeTitle": "無効な時間範囲", - "discover.notifications.notSavedSearchTitle": "検索「{savedSearchTitle}」は保存されませんでした。", - "discover.notifications.savedSearchTitle": "検索「{savedSearchTitle}」が保存されました。", - "discover.reloadSavedSearchButton": "検索をリセット", - "discover.removeColumnLabel": "列を削除", - "discover.rootBreadcrumb": "Discover", - "discover.savedSearch.savedObjectName": "保存検索", - "discover.searchGenerationWithDescription": "検索{searchTitle}で生成されたテーブル", - "discover.searchGenerationWithDescriptionGrid": "検索{searchTitle}で生成されたテーブル({searchDescription})", - "discover.searchingTitle": "検索中", - "discover.selectColumnHeader": "列を選択", - "discover.selectedDocumentsNumber": "{nr}個のドキュメントが選択されました", - "discover.showAllDocuments": "すべてのドキュメントを表示", - "discover.showChart": "グラフを表示", - "discover.showErrorMessageAgain": "エラーメッセージを表示", - "discover.showSelectedDocumentsOnly": "選択したドキュメントのみを表示", - "discover.skipToBottomButtonLabel": "テーブルの最後に移動", - "discover.sourceViewer.errorMessage": "現在データを取得できませんでした。タブを更新して、再試行してください。", - "discover.sourceViewer.errorMessageTitle": "エラーが発生しました", - "discover.sourceViewer.refresh": "更新", - "discover.toggleSidebarAriaLabel": "サイドバーを切り替える", - "discover.topNav.openSearchPanel.manageSearchesButtonLabel": "検索の管理", - "discover.topNav.openSearchPanel.noSearchesFoundDescription": "一致する検索が見つかりませんでした。", - "discover.topNav.openSearchPanel.openSearchTitle": "検索を開く", - "discover.topNav.optionsPopover.currentViewMode": "{viewModeLabel}: {currentViewMode}", - "discover.uninitializedRefreshButtonText": "データを更新", - "discover.uninitializedText": "クエリを作成、フィルターを追加、または[更新]をクリックして、現在のクエリの結果を取得します。", - "discover.uninitializedTitle": "検索開始", - "embeddableApi.addPanel.createNewDefaultOption": "新規作成", - "embeddableApi.addPanel.displayName": "パネルの追加", - "embeddableApi.addPanel.noMatchingObjectsMessage": "一致するオブジェクトが見つかりませんでした。", - "embeddableApi.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} が追加されました", - "embeddableApi.addPanel.Title": "ライブラリから追加", - "embeddableApi.attributeService.saveToLibraryError": "保存中にエラーが発生しました。エラー:{errorMessage}", - "embeddableApi.contextMenuTrigger.description": "パネルの右上のコンテキストメニューをクリックします。", - "embeddableApi.contextMenuTrigger.title": "コンテキストメニュー", - "embeddableApi.customizePanel.action.displayName": "パネルタイトルを編集", - "embeddableApi.customizePanel.modal.cancel": "キャンセル", - "embeddableApi.customizePanel.modal.optionsMenuForm.panelTitleFormRowLabel": "パネルタイトル", - "embeddableApi.customizePanel.modal.optionsMenuForm.panelTitleInputAriaLabel": "パネルのカスタムタイトルを入力してください", - "embeddableApi.customizePanel.modal.optionsMenuForm.resetCustomDashboardButtonLabel": "リセット", - "embeddableApi.customizePanel.modal.saveButtonTitle": "保存", - "embeddableApi.customizePanel.modal.showTitle": "パネルタイトルを表示", - "embeddableApi.customizeTitle.optionsMenuForm.panelTitleFormRowLabel": "パネルタイトル", - "embeddableApi.customizeTitle.optionsMenuForm.panelTitleInputAriaLabel": "このインプットへの変更は直ちに適用されます。Enter を押して閉じます。", - "embeddableApi.customizeTitle.optionsMenuForm.resetCustomDashboardButtonLabel": "タイトルをリセット", - "embeddableApi.errors.embeddableFactoryNotFound": "{type} を読み込めません。Elasticsearch と Kibana のデフォルトのディストリビューションを適切なライセンスでアップグレードしてください。", - "embeddableApi.errors.paneldoesNotExist": "パネルが見つかりません", - "embeddableApi.helloworld.displayName": "こんにちは", - "embeddableApi.panel.dashboardPanelAriaLabel": "ダッシュボードパネル", - "embeddableApi.panel.editPanel.displayName": "{value} を編集", - "embeddableApi.panel.editTitleAriaLabel": "クリックしてタイトルを編集:{title}", - "embeddableApi.panel.enhancedDashboardPanelAriaLabel": "ダッシュボードパネル:{title}", - "embeddableApi.panel.inspectPanel.displayName": "検査", - "embeddableApi.panel.inspectPanel.untitledEmbeddableFilename": "無題", - "embeddableApi.panel.labelAborted": "中断しました", - "embeddableApi.panel.labelError": "エラー", - "embeddableApi.panel.optionsMenu.panelOptionsButtonAriaLabel": "パネルオプション", - "embeddableApi.panel.optionsMenu.panelOptionsButtonEnhancedAriaLabel": "{title} のパネルオプション", - "embeddableApi.panel.placeholderTitle": "[タイトルなし]", - "embeddableApi.panel.removePanel.displayName": "ダッシュボードから削除", - "embeddableApi.panelBadgeTrigger.description": "パネルに埋め込み可能なファイルが読み込まれるときに、アクションがタイトルバーに表示されます。", - "embeddableApi.panelBadgeTrigger.title": "パネルバッジ", - "embeddableApi.panelNotificationTrigger.description": "パネルの右上にアクションが表示されます。", - "embeddableApi.panelNotificationTrigger.title": "パネル通知", - "embeddableApi.samples.contactCard.displayName": "連絡先カード", - "embeddableApi.samples.filterableContainer.displayName": "フィルター可能なダッシュボード", - "embeddableApi.samples.filterableEmbeddable.displayName": "フィルター可能", - "embeddableApi.selectRangeTrigger.description": "ビジュアライゼーションでの値の範囲", - "embeddableApi.selectRangeTrigger.title": "範囲選択", - "embeddableApi.valueClickTrigger.description": "ビジュアライゼーションでデータポイントをクリック", - "embeddableApi.valueClickTrigger.title": "シングルクリック", - "esQuery.kql.errors.endOfInputText": "インプットの終わり", - "esQuery.kql.errors.fieldNameText": "フィールド名", - "esQuery.kql.errors.literalText": "文字通り", - "esQuery.kql.errors.syntaxError": "{expectedList} を期待しましたが {foundInput} が検出されました。", - "esQuery.kql.errors.valueText": "値", - "esQuery.kql.errors.whitespaceText": "空白類", - "esUi.cronEditor.cronDaily.fieldHour.textAtLabel": "に", - "esUi.cronEditor.cronDaily.fieldTimeLabel": "時間", - "esUi.cronEditor.cronDaily.hourSelectLabel": "時間", - "esUi.cronEditor.cronDaily.minuteSelectLabel": "分", - "esUi.cronEditor.cronHourly.fieldMinute.textAtLabel": "に", - "esUi.cronEditor.cronHourly.fieldTimeLabel": "分", - "esUi.cronEditor.cronMonthly.fieldDateLabel": "日付", - "esUi.cronEditor.cronMonthly.fieldHour.textAtLabel": "に", - "esUi.cronEditor.cronMonthly.fieldTimeLabel": "時間", - "esUi.cronEditor.cronMonthly.hourSelectLabel": "時間", - "esUi.cronEditor.cronMonthly.minuteSelectLabel": "分", - "esUi.cronEditor.cronMonthly.textOnTheLabel": "に", - "esUi.cronEditor.cronWeekly.fieldDateLabel": "日", - "esUi.cronEditor.cronWeekly.fieldHour.textAtLabel": "に", - "esUi.cronEditor.cronWeekly.fieldTimeLabel": "時間", - "esUi.cronEditor.cronWeekly.hourSelectLabel": "時間", - "esUi.cronEditor.cronWeekly.minuteSelectLabel": "分", - "esUi.cronEditor.cronWeekly.textOnLabel": "オン", - "esUi.cronEditor.cronYearly.fieldDate.textOnTheLabel": "に", - "esUi.cronEditor.cronYearly.fieldDateLabel": "日付", - "esUi.cronEditor.cronYearly.fieldHour.textAtLabel": "に", - "esUi.cronEditor.cronYearly.fieldMonth.textInLabel": "入", - "esUi.cronEditor.cronYearly.fieldMonthLabel": "月", - "esUi.cronEditor.cronYearly.fieldTimeLabel": "時間", - "esUi.cronEditor.cronYearly.hourSelectLabel": "時間", - "esUi.cronEditor.cronYearly.minuteSelectLabel": "分", - "esUi.cronEditor.day.friday": "金曜日", - "esUi.cronEditor.day.monday": "月曜日", - "esUi.cronEditor.day.saturday": "土曜日", - "esUi.cronEditor.day.sunday": "日曜日", - "esUi.cronEditor.day.thursday": "木曜日", - "esUi.cronEditor.day.tuesday": "火曜日", - "esUi.cronEditor.day.wednesday": "水曜日", - "esUi.cronEditor.fieldFrequencyLabel": "頻度", - "esUi.cronEditor.month.april": "4 月", - "esUi.cronEditor.month.august": "8 月", - "esUi.cronEditor.month.december": "12 月", - "esUi.cronEditor.month.february": "2 月", - "esUi.cronEditor.month.january": "1 月", - "esUi.cronEditor.month.july": "7 月", - "esUi.cronEditor.month.june": "6 月", - "esUi.cronEditor.month.march": "3 月", - "esUi.cronEditor.month.may": "5月", - "esUi.cronEditor.month.november": "11 月", - "esUi.cronEditor.month.october": "10 月", - "esUi.cronEditor.month.september": "9 月", - "esUi.cronEditor.textEveryLabel": "毎", - "esUi.forms.comboBoxField.placeHolderText": "入力してエンターキーを押してください", - "esUi.forms.fieldValidation.indexNameSpacesError": "インデックス名にはスペースを使用できません。", - "esUi.forms.fieldValidation.indexNameStartsWithDotError": "インデックス名の始めにピリオド(.)は使用できません。", - "esUi.forms.fieldValidation.indexPatternSpacesError": "インデックスパターンにはスペースを使用できません。", - "esUi.formWizard.backButtonLabel": "戻る", - "esUi.formWizard.nextButtonLabel": "次へ", - "esUi.formWizard.saveButtonLabel": "保存", - "esUi.formWizard.savingButtonLabel": "保存中...", - "esUi.validation.string.invalidJSONError": "無効なJSON", - "expressionError.errorComponent.description": "表現が失敗し次のメッセージが返されました:", - "expressionError.errorComponent.title": "おっと!表現が失敗しました", - "expressionError.renderer.debug.displayName": "デバッグ", - "expressionError.renderer.debug.helpDescription": "デバッグアウトプットをフォーマットされた {JSON} としてレンダリングします", - "expressionError.renderer.error.displayName": "エラー情報", - "expressionError.renderer.error.helpDescription": "エラーデータをユーザーにわかるようにレンダリングします", - "expressionImage.functions.image.args.dataurlHelpText": "画像の {https} {URL} または {BASE64} データ {URL} です。", - "expressionImage.functions.image.args.modeHelpText": "{contain} はサイズに合わせて拡大・縮小して画像全体を表示し、{cover} はコンテナーを画像で埋め、必要に応じて両端や下をクロップします。{stretch} は画像の高さと幅をコンテナーの 100% になるよう変更します。", - "expressionImage.functions.image.invalidImageModeErrorMessage": "「mode」は「{contain}」、「{cover}」、または「{stretch}」でなければなりません", - "expressionImage.functions.imageHelpText": "画像を表示します。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", - "expressionImage.renderer.image.displayName": "画像", - "expressionImage.renderer.image.helpDescription": "画像をレンダリングします", - "expressionMetric.functions.metric.args.labelFontHelpText": "ラベルの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", - "expressionMetric.functions.metric.args.labelHelpText": "メトリックを説明するテキストです。", - "expressionMetric.functions.metric.args.metricFontHelpText": "メトリックの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", - "expressionMetric.functions.metric.args.metricFormatHelpText": "{NUMERALJS} 形式の文字列。例:{example1} または {example2}。", - "expressionMetric.functions.metricHelpText": "ラベルの上に数字を表示します。", - "expressionMetric.renderer.metric.displayName": "メトリック", - "expressionMetric.renderer.metric.helpDescription": "ラベルの上に数字をレンダリングします", - "expressionRepeatImage.error.repeatImage.missingMaxArgument": "{emptyImageArgument} を指定する場合は、{maxArgument} を設定する必要があります", - "expressionRepeatImage.functions.repeatImage.args.emptyImageHelpText": "この画像のエレメントについて、{CONTEXT}および{maxArg}パラメーターの差異を解消します。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", - "expressionRepeatImage.functions.repeatImage.args.imageHelpText": "繰り返す画像です。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", - "expressionRepeatImage.functions.repeatImage.args.maxHelpText": "画像が繰り返される最高回数です。", - "expressionRepeatImage.functions.repeatImage.args.sizeHelpText": "画像の高さまたは幅のピクセル単位での最高値です。画像が縦長の場合、この関数は高さを制限します。", - "expressionRepeatImage.functions.repeatImageHelpText": "繰り返し画像エレメントを構成します。", - "expressionRepeatImage.renderer.repeatImage.displayName": "RepeatImage", - "expressionRepeatImage.renderer.repeatImage.helpDescription": "基本repeatImageを表示", - "expressionRevealImage.functions.revealImage.args.emptyImageHelpText": "表示される背景画像です。画像アセットは「{BASE64}」データ {URL} として提供するか、部分式で渡します。", - "expressionRevealImage.functions.revealImage.args.imageHelpText": "表示する画像です。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", - "expressionRevealImage.functions.revealImage.args.originHelpText": "画像で埋め始める位置です。たとえば、{list}、または {end}です。", - "expressionRevealImage.functions.revealImage.invalidImageUrl": "無効な画像URL:'{imageUrl}'。", - "expressionRevealImage.functions.revealImage.invalidPercentErrorMessage": "無効な値:「{percent}」。パーセンテージは 0 と 1 の間でなければなりません ", - "expressionRevealImage.functions.revealImageHelpText": "画像表示エレメントを構成します。", - "expressionRevealImage.renderer.revealImage.displayName": "画像の部分表示", - "expressionRevealImage.renderer.revealImage.helpDescription": "カスタムゲージスタイルチャートを作成するため、画像のパーセンテージを表示します", - "expressions.defaultErrorRenderer.errorTitle": "ビジュアライゼーションエラー", - "expressions.execution.functionDisabled": "関数 {fnName} が無効です。", - "expressions.execution.functionNotFound": "関数 {fnName} が見つかりませんでした。", - "expressions.functions.createTable.args.idsHelpText": "位置順序で生成する列ID。IDは行のキーを表します。", - "expressions.functions.createTable.args.nameHelpText": "位置順序で生成する列名。名前は一意でなくてもかまいません。指定しない場合は、デフォルトでIDが使用されます。", - "expressions.functions.createTable.args.rowCountText": "後から値を割り当てられる、テーブルに追加する空の行数。", - "expressions.functions.createTableHelpText": "データテーブルと、列のリスト、1つ以上の空の行を作成します。行を入力するには、{mapColumnFn}または{mathColumnFn}を使用します。", - "expressions.functions.cumulativeSum.args.byHelpText": "累積和計算を分割する列", - "expressions.functions.cumulativeSum.args.inputColumnIdHelpText": "累積和を計算する列", - "expressions.functions.cumulativeSum.args.outputColumnIdHelpText": "結果の累積和を格納する列", - "expressions.functions.cumulativeSum.args.outputColumnNameHelpText": "結果の累積和を格納する列の名前", - "expressions.functions.cumulativeSum.help": "データテーブルの列の累積和を計算します", - "expressions.functions.derivative.args.byHelpText": "微分係数計算を分割する列", - "expressions.functions.derivative.args.inputColumnIdHelpText": "微分係数を計算する列", - "expressions.functions.derivative.args.outputColumnIdHelpText": "結果の微分係数を格納する列", - "expressions.functions.derivative.args.outputColumnNameHelpText": "結果の微分係数を格納する列の名前", - "expressions.functions.derivative.help": "データテーブルの列の微分係数を計算します", - "expressions.functions.font.args.alignHelpText": "水平テキスト配置", - "expressions.functions.font.args.colorHelpText": "文字の色です。", - "expressions.functions.font.args.familyHelpText": "利用可能な{css}ウェブフォント文字列です", - "expressions.functions.font.args.italicHelpText": "テキストを斜体にしますか?", - "expressions.functions.font.args.lHeightHelpText": "ピクセル単位の行の高さです。", - "expressions.functions.font.args.sizeHelpText": "ピクセル単位のフォントサイズです。", - "expressions.functions.font.args.underlineHelpText": "テキストに下線を引きますか?", - "expressions.functions.font.args.weightHelpText": "フォントの重量です。たとえば、{list}、または {end}です。", - "expressions.functions.font.invalidFontWeightErrorMessage": "無効なフォント太さ:'{weight}'", - "expressions.functions.font.invalidTextAlignmentErrorMessage": "無効なテキストアラインメント:'{align}'", - "expressions.functions.fontHelpText": "フォントスタイルを作成します。", - "expressions.functions.mapColumn.args.copyMetaFromHelpText": "設定されている場合、指定した列IDのメタオブジェクトが指定したターゲット列にコピーされます。列が存在しない場合は失敗し、エラーは表示されません。", - "expressions.functions.mapColumn.args.expressionHelpText": "すべての行で実行される式。単一行の{DATATABLE}と一緒に指定され、セル値を返します。", - "expressions.functions.mapColumn.args.idHelpText": "結果列の任意のID。IDが指定されていないときには、指定された名前引数で既存の列からルックアップされます。この名前の列が存在しない場合、この名前と同じIDの新しい列がテーブルに追加されます。", - "expressions.functions.mapColumn.args.nameHelpText": "結果の列の名前です。名前は一意である必要はありません。", - "expressions.functions.mapColumnHelpText": "他の列の結果として計算された列を追加します。引数が指定された場合のみ変更が加えられます。{alterColumnFn}と{staticColumnFn}もご参照ください。", - "expressions.functions.math.args.expressionHelpText": "評価された {TINYMATH} 表現です。{TINYMATH_URL} をご覧ください。", - "expressions.functions.math.args.onErrorHelpText": "{TINYMATH}評価が失敗するか、NaNが返される場合、戻り値はonErrorで指定されます。「'throw'」の場合、例外が発生し、式の実行が終了します(デフォルト)。", - "expressions.functions.math.emptyDatatableErrorMessage": "空のデータベース", - "expressions.functions.math.emptyExpressionErrorMessage": "空の表現", - "expressions.functions.math.executionFailedErrorMessage": "数式の実行に失敗しました。列名を確認してください", - "expressions.functions.math.tooManyResultsErrorMessage": "式は 1 つの数字を返す必要があります。表現を {mean} または {sum} で囲んでみてください", - "expressions.functions.mathColumn.args.copyMetaFromHelpText": "設定されている場合、指定した列IDのメタオブジェクトが指定したターゲット列にコピーされます。列が存在しない場合は失敗し、エラーは表示されません。", - "expressions.functions.mathColumn.args.idHelpText": "結果の列のIDです。一意でなければなりません。", - "expressions.functions.mathColumn.args.nameHelpText": "結果の列の名前です。名前は一意である必要はありません。", - "expressions.functions.mathColumn.arrayValueError": "{name}で配列値に対する演算を実行できません", - "expressions.functions.mathColumn.uniqueIdError": "IDは一意でなければなりません", - "expressions.functions.mathColumnHelpText": "他の列の結果として計算された列を追加します。引数が指定された場合のみ変更が加えられます。{alterColumnFn}と{staticColumnFn}もご参照ください。", - "expressions.functions.mathHelpText": "{TYPE_NUMBER}または{DATATABLE}を{CONTEXT}として使用して、{TINYMATH}数式を解釈します。{DATATABLE}列は列名で表示されます。{CONTEXT}が数字の場合は、{value}と表示されます。", - "expressions.functions.movingAverage.args.byHelpText": "移動平均計算を分割する列", - "expressions.functions.movingAverage.args.inputColumnIdHelpText": "移動平均を計算する列", - "expressions.functions.movingAverage.args.outputColumnIdHelpText": "結果の移動平均を格納する列", - "expressions.functions.movingAverage.args.outputColumnNameHelpText": "結果の移動平均を格納する列の名前", - "expressions.functions.movingAverage.args.windowHelpText": "ヒストグラム全体でスライドするウィンドウのサイズ。", - "expressions.functions.movingAverage.help": "データテーブルの列の移動平均を計算します", - "expressions.functions.overallMetric.args.byHelpText": "全体の計算を分割する列", - "expressions.functions.overallMetric.args.inputColumnIdHelpText": "全体のメトリックを計算する列", - "expressions.functions.overallMetric.args.outputColumnIdHelpText": "結果の全体のメトリックを格納する列", - "expressions.functions.overallMetric.args.outputColumnNameHelpText": "結果の全体のメトリックを格納する列の名前", - "expressions.functions.overallMetric.help": "データテーブルの列の合計値、最小値、最大値、」または平均を計算します", - "expressions.functions.overallMetric.metricHelpText": "計算するメトリック", - "expressions.functions.seriesCalculations.columnConflictMessage": "指定した outputColumnId {columnId} はすでに存在します。別の列 ID を選択してください。", - "expressions.functions.theme.args.defaultHelpText": "テーマ情報がない場合のデフォルト値。", - "expressions.functions.theme.args.variableHelpText": "読み取るテーマ変数名。", - "expressions.functions.themeHelpText": "テーマ設定を読み取ります。", - "expressions.functions.uiSetting.args.default": "パラメーターが設定されていない場合のデフォルト値。", - "expressions.functions.uiSetting.args.parameter": "パラメーター名。", - "expressions.functions.uiSetting.error.kibanaRequest": "サーバーでUI設定を取得するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", - "expressions.functions.uiSetting.error.parameter": "無効なパラメーター\"{parameter}\"です。", - "expressions.functions.uiSetting.help": "UI設定パラメーター値を返します。", - "expressions.functions.var.help": "Kibanaグローバルコンテキストを更新します。", - "expressions.functions.var.name.help": "変数の名前を指定します。", - "expressions.functions.varset.help": "Kibanaグローバルコンテキストを更新します。", - "expressions.functions.varset.name.help": "変数の名前を指定します。", - "expressions.functions.varset.val.help": "変数の値を指定します。指定しないと、入力コンテキストが使用されます。", - "expressions.types.number.fromStringConversionErrorMessage": "\"{string}\" 文字列を数字に変換できません", - "expressionShape.functions.progress.args.barColorHelpText": "背景バーの色です。", - "expressionShape.functions.progress.args.barWeightHelpText": "背景バーの太さです。", - "expressionShape.functions.progress.args.fontHelpText": "ラベルの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", - "expressionShape.functions.progress.args.labelHelpText": "ラベルの表示・非表示を切り替えるには、{BOOLEAN_TRUE}または{BOOLEAN_FALSE}を使用します。また、ラベルとして表示する文字列を入力することもできます。", - "expressionShape.functions.progress.args.maxHelpText": "進捗エレメントの最高値です。", - "expressionShape.functions.progress.args.shapeHelpText": "{list} または {end} を選択します。", - "expressionShape.functions.progress.args.valueColorHelpText": "進捗バーの色です。", - "expressionShape.functions.progress.args.valueWeightHelpText": "進捗バーの太さです。", - "expressionShape.functions.progress.invalidMaxValueErrorMessage": "無効な {arg} 値:「{max, number}」。「{arg}」は 0 より大きい必要があります", - "expressionShape.functions.progress.invalidValueErrorMessage": "無効な値:「{value, number}」。値は 0 と {max, number} の間でなければなりません", - "expressionShape.functions.progressHelpText": "進捗エレメントを構成します。", - "expressionShape.functions.shape.args.borderHelpText": "図形の外郭の {SVG} カラーです。", - "expressionShape.functions.shape.args.borderWidthHelpText": "境界の太さです。", - "expressionShape.functions.shape.args.fillHelpText": "図形を塗りつぶす {SVG} カラーです。", - "expressionShape.functions.shape.args.maintainAspectHelpText": "図形の元の横縦比を維持しますか?", - "expressionShape.functions.shape.args.shapeHelpText": "図形を選択します。", - "expressionShape.functions.shape.invalidShapeErrorMessage": "無効な値:'{shape}'。このような形状は存在しません。", - "expressionShape.functions.shapeHelpText": "図形を作成します。", - "expressionShape.renderer.progress.displayName": "進捗", - "expressionShape.renderer.progress.helpDescription": "基本進捗状況をレンダリング", - "expressionShape.renderer.shape.displayName": "形状", - "expressionShape.renderer.shape.helpDescription": "基本的な図形をレンダリングします", - "fieldFormats.advancedSettings.format.bytesFormat.numeralFormatLinkText": "数字フォーマット", - "fieldFormats.advancedSettings.format.bytesFormatText": "「バイト」フォーマットのデフォルト{numeralFormatLink}です", - "fieldFormats.advancedSettings.format.bytesFormatTitle": "バイトフォーマット", - "fieldFormats.advancedSettings.format.currencyFormat.numeralFormatLinkText": "数字フォーマット", - "fieldFormats.advancedSettings.format.currencyFormatText": "「通貨」フォーマットのデフォルト{numeralFormatLink}です", - "fieldFormats.advancedSettings.format.currencyFormatTitle": "通貨フォーマット", - "fieldFormats.advancedSettings.format.defaultTypeMapText": "各フィールドタイプにデフォルトで使用するフォーマット名のマップです。フィールドタイプが特に指定されていない場合は {defaultFormat} が使用されます", - "fieldFormats.advancedSettings.format.defaultTypeMapTitle": "フィールドタイプフォーマット名", - "fieldFormats.advancedSettings.format.formattingLocale.numeralLanguageLinkText": "数字言語", - "fieldFormats.advancedSettings.format.formattingLocaleText": "{numeralLanguageLink} locale", - "fieldFormats.advancedSettings.format.formattingLocaleTitle": "フォーマットロケール", - "fieldFormats.advancedSettings.format.numberFormat.numeralFormatLinkText": "数字フォーマット", - "fieldFormats.advancedSettings.format.numberFormatText": "「数字」フォーマットのデフォルト{numeralFormatLink}です", - "fieldFormats.advancedSettings.format.numberFormatTitle": "数字フォーマット", - "fieldFormats.advancedSettings.format.percentFormat.numeralFormatLinkText": "数字フォーマット", - "fieldFormats.advancedSettings.format.percentFormatText": "「パーセント」フォーマットのデフォルト{numeralFormatLink}です", - "fieldFormats.advancedSettings.format.percentFormatTitle": "パーセントフォーマット", - "fieldFormats.advancedSettings.shortenFieldsText": "長いフィールドを短くします。例:foo.bar.bazの代わりにf.b.bazと表示", - "fieldFormats.advancedSettings.shortenFieldsTitle": "フィールドの短縮", - "fieldFormats.boolean.title": "ブール", - "fieldFormats.bytes.title": "バイト", - "fieldFormats.color.title": "色", - "fieldFormats.date_nanos.title": "日付ナノ", - "fieldFormats.date.title": "日付", - "fieldFormats.duration.inputFormats.days": "日", - "fieldFormats.duration.inputFormats.hours": "時間", - "fieldFormats.duration.inputFormats.microseconds": "マイクロ秒", - "fieldFormats.duration.inputFormats.milliseconds": "ミリ秒", - "fieldFormats.duration.inputFormats.minutes": "分", - "fieldFormats.duration.inputFormats.months": "か月", - "fieldFormats.duration.inputFormats.nanoseconds": "ナノ秒", - "fieldFormats.duration.inputFormats.picoseconds": "ピコ秒", - "fieldFormats.duration.inputFormats.seconds": "秒", - "fieldFormats.duration.inputFormats.weeks": "週間", - "fieldFormats.duration.inputFormats.years": "年", - "fieldFormats.duration.negativeLabel": "マイナス", - "fieldFormats.duration.outputFormats.asDays": "日", - "fieldFormats.duration.outputFormats.asDays.short": "d", - "fieldFormats.duration.outputFormats.asHours": "時間", - "fieldFormats.duration.outputFormats.asHours.short": "h", - "fieldFormats.duration.outputFormats.asMilliseconds": "ミリ秒", - "fieldFormats.duration.outputFormats.asMilliseconds.short": "ms", - "fieldFormats.duration.outputFormats.asMinutes": "分", - "fieldFormats.duration.outputFormats.asMinutes.short": "分", - "fieldFormats.duration.outputFormats.asMonths": "か月", - "fieldFormats.duration.outputFormats.asMonths.short": "mon", - "fieldFormats.duration.outputFormats.asSeconds": "秒", - "fieldFormats.duration.outputFormats.asSeconds.short": "s", - "fieldFormats.duration.outputFormats.asWeeks": "週間", - "fieldFormats.duration.outputFormats.asWeeks.short": "w", - "fieldFormats.duration.outputFormats.asYears": "年", - "fieldFormats.duration.outputFormats.asYears.short": "y", - "fieldFormats.duration.outputFormats.humanize.approximate": "人間が読み取り可能(近似値)", - "fieldFormats.duration.outputFormats.humanize.precise": "人間が読み取り可能(正確な値)", - "fieldFormats.duration.title": "期間", - "fieldFormats.histogram.title": "ヒストグラム", - "fieldFormats.ip.title": "IP アドレス", - "fieldFormats.number.title": "数字", - "fieldFormats.percent.title": "割合(%)", - "fieldFormats.relative_date.title": "相対日付", - "fieldFormats.static_lookup.title": "静的ルックアップ", - "fieldFormats.string.emptyLabel": "(空)", - "fieldFormats.string.title": "文字列", - "fieldFormats.string.transformOptions.base64": "Base64 デコード", - "fieldFormats.string.transformOptions.lower": "小文字", - "fieldFormats.string.transformOptions.none": "- なし -", - "fieldFormats.string.transformOptions.short": "短い点線", - "fieldFormats.string.transformOptions.title": "タイトルケース", - "fieldFormats.string.transformOptions.upper": "大文字", - "fieldFormats.string.transformOptions.url": "URL パラメーターデコード", - "fieldFormats.truncated_string.title": "切り詰めた文字列", - "fieldFormats.url.title": "Url", - "fieldFormats.url.types.audio": "音声", - "fieldFormats.url.types.img": "画像", - "fieldFormats.url.types.link": "リンク", - "flot.pie.unableToDrawLabelsInsideCanvasErrorMessage": "キャンバス内のラベルではパイを作成できません", - "flot.time.aprLabel": "4 月", - "flot.time.augLabel": "8 月", - "flot.time.decLabel": "12 月", - "flot.time.febLabel": "2 月", - "flot.time.friLabel": "金", - "flot.time.janLabel": "1月", - "flot.time.julLabel": "7月", - "flot.time.junLabel": "6 月", - "flot.time.marLabel": "3 月", - "flot.time.mayLabel": "5月", - "flot.time.monLabel": "月", - "flot.time.novLabel": "11月", - "flot.time.octLabel": "10 月", - "flot.time.satLabel": "土", - "flot.time.sepLabel": "9月", - "flot.time.sunLabel": "日", - "flot.time.thuLabel": "木", - "flot.time.tueLabel": "火", - "flot.time.wedLabel": "水", - "home.addData.addDataButtonLabel": "データを追加", - "home.addData.sampleDataButtonLabel": "サンプルデータを試す", - "home.addData.sectionTitle": "データを追加して開始する", - "home.addData.text": "データの操作を開始するには、多数の取り込みオプションのいずれかを使用します。アプリまたはサービスからデータを収集するか、ファイルをアップロードします。独自のデータを使用する準備ができていない場合は、サンプルデータセットを追加してください。", - "home.breadcrumbs.homeTitle": "ホーム", - "home.dataManagementDisableCollection": " 収集を停止するには、", - "home.dataManagementDisableCollectionLink": "ここで使用状況データを無効にします。", - "home.dataManagementDisclaimerPrivacy": "使用状況データがどのように製品とサービスの管理と改善につながるのかに関する詳細については ", - "home.dataManagementDisclaimerPrivacyLink": "プライバシーポリシーをご覧ください。", - "home.dataManagementEnableCollection": " 収集を開始するには、", - "home.dataManagementEnableCollectionLink": "ここで使用状況データを有効にします。", - "home.exploreButtonLabel": "独りで閲覧", - "home.exploreYourDataDescription": "すべてのステップを終えたら、データ閲覧準備の完了です。", - "home.header.title": "ようこそホーム", - "home.letsStartDescription": "任意のソースからクラスターにデータを追加して、リアルタイムでデータを分析して可視化します。当社のソリューションを使用すれば、どこからでも検索を追加し、エコシステムを監視して、セキュリティの脅威から保護することができます。", - "home.letsStartTitle": "データを追加して開始する", - "home.loadTutorials.requestFailedErrorMessage": "リクエスト失敗、ステータスコード:{status}", - "home.loadTutorials.unableToLoadErrorMessage": "チュートリアルが読み込めません。", - "home.manageData.devToolsButtonLabel": "開発ツール", - "home.manageData.sectionTitle": "管理", - "home.manageData.stackManagementButtonLabel": "スタック管理", - "home.pageTitle": "ホーム", - "home.recentlyAccessed.recentlyViewedTitle": "最近閲覧", - "home.sampleData.ecommerceSpec.ordersTitle": "[eコマース] 注文", - "home.sampleData.ecommerceSpec.promotionTrackingTitle": "[eコマース] プロモーショントラッキング", - "home.sampleData.ecommerceSpec.revenueDashboardDescription": "サンプルの e コマースの注文と収益を分析します", - "home.sampleData.ecommerceSpec.revenueDashboardTitle": "[eコマース] 収益ダッシュボード", - "home.sampleData.ecommerceSpec.soldProductsPerDayTitle": "[eコマース] 1日の販売製品", - "home.sampleData.ecommerceSpecDescription": "e コマースの注文をトラッキングするサンプルデータ、ビジュアライゼーション、ダッシュボードです。", - "home.sampleData.ecommerceSpecTitle": "サンプル e コマース注文", - "home.sampleData.flightsSpec.airportConnectionsTitle": "[フライト] 空港乗り継ぎ(空港にカーソルを合わせてください)", - "home.sampleData.flightsSpec.delayBucketsTitle": "[フライト] 遅延バケット", - "home.sampleData.flightsSpec.delaysAndCancellationsTitle": "[フライト] 遅延・欠航", - "home.sampleData.flightsSpec.departuresCountMapTitle": "[フライト] 出発カウントマップ", - "home.sampleData.flightsSpec.destinationWeatherTitle": "[フライト] 目的地の天候", - "home.sampleData.flightsSpec.flightLogTitle": "[フライト] 飛行記録", - "home.sampleData.flightsSpec.globalFlightDashboardDescription": "ES-Air、Logstash Airways、Kibana Airlines、JetBeats のサンプル飛行データを分析します", - "home.sampleData.flightsSpec.globalFlightDashboardTitle": "[フライト] グローバルフライトダッシュボード", - "home.sampleData.flightsSpecDescription": "飛行ルートを監視するサンプルデータ、ビジュアライゼーション、ダッシュボードです。", - "home.sampleData.flightsSpecTitle": "サンプル飛行データ", - "home.sampleData.logsSpec.bytesDistributionTitle": "[ログ] バイト分布", - "home.sampleData.logsSpec.discoverTitle": "[ログ] 訪問", - "home.sampleData.logsSpec.goalsTitle": "[ログ] 目標", - "home.sampleData.logsSpec.heatmapTitle": "[ログ] 一意の訪問者ヒートマップ", - "home.sampleData.logsSpec.hostVisitsBytesTableTitle": "[ログ] ホスト、訪問数、バイト表", - "home.sampleData.logsSpec.responseCodesOverTimeTitle": "[ログ] 一定期間の応答コードと注釈", - "home.sampleData.logsSpec.sourceAndDestinationSankeyChartTitle": "[ログ] ソースと行先のサンキーダイアグラム", - "home.sampleData.logsSpec.visitorsMapTitle": "[ログ] ビジターマップ", - "home.sampleData.logsSpec.webTrafficDescription": "Elastic Web サイトのサンプル Webトラフィックログデータを分析します", - "home.sampleData.logsSpec.webTrafficTitle": "[ログ] Webトラフィック", - "home.sampleData.logsSpecDescription": "Web ログを監視するサンプルデータ、ビジュアライゼーション、ダッシュボードです。", - "home.sampleData.logsSpecTitle": "サンプル Web ログ", - "home.sampleDataSet.installedLabel": "{name} がインストールされました", - "home.sampleDataSet.unableToInstallErrorMessage": "サンプルデータセット「{name}」をインストールできません", - "home.sampleDataSet.unableToLoadListErrorMessage": "サンプルデータセットのリストを読み込めません", - "home.sampleDataSet.unableToUninstallErrorMessage": "サンプルデータセット「{name}」をアンインストールできません", - "home.sampleDataSet.uninstalledLabel": "{name} がアンインストールされました", - "home.sampleDataSetCard.addButtonAriaLabel": "{datasetName} を追加", - "home.sampleDataSetCard.addButtonLabel": "データの追加", - "home.sampleDataSetCard.addingButtonAriaLabel": "{datasetName} を追加", - "home.sampleDataSetCard.addingButtonLabel": "追加中", - "home.sampleDataSetCard.dashboardLinkLabel": "ダッシュボード", - "home.sampleDataSetCard.default.addButtonAriaLabel": "{datasetName} を追加", - "home.sampleDataSetCard.default.addButtonLabel": "データの追加", - "home.sampleDataSetCard.default.unableToVerifyErrorMessage": "データセットステータスを確認できません、エラー:{statusMsg}", - "home.sampleDataSetCard.removeButtonAriaLabel": "{datasetName} を削除", - "home.sampleDataSetCard.removeButtonLabel": "削除", - "home.sampleDataSetCard.removingButtonAriaLabel": "{datasetName} を削除中", - "home.sampleDataSetCard.removingButtonLabel": "削除中", - "home.sampleDataSetCard.viewDataButtonAriaLabel": "{datasetName} を表示", - "home.sampleDataSetCard.viewDataButtonLabel": "データを表示", - "home.solutionsSection.sectionTitle": "ソリューションを選択", - "home.tryButtonLabel": "データの追加", - "home.tutorial.addDataToKibanaTitle": "データの追加", - "home.tutorial.card.sampleDataDescription": "これらの「ワンクリック」データセットで Kibana の探索を始めましょう。", - "home.tutorial.card.sampleDataTitle": "サンプルデータ", - "home.tutorial.elasticCloudButtonLabel": "Elastic Cloud", - "home.tutorial.instructionSet.checkStatusButtonLabel": "ステータスを確認", - "home.tutorial.instructionSet.customizeLabel": "コードスニペットのカスタマイズ", - "home.tutorial.instructionSet.noDataLabel": "データが見つかりません", - "home.tutorial.instructionSet.statusCheckTitle": "ステータス確認", - "home.tutorial.instructionSet.successLabel": "成功", - "home.tutorial.introduction.betaLabel": "ベータ", - "home.tutorial.introduction.imageAltDescription": "プライマリダッシュボードのスクリーンショット。", - "home.tutorial.introduction.viewButtonLabel": "エクスポートされたフィールドを表示", - "home.tutorial.noTutorialLabel": "チュートリアル {tutorialId} が見つかりません", - "home.tutorial.savedObject.addedLabel": "{savedObjectsLength} 件の保存されたオブジェクトが追加されました", - "home.tutorial.savedObject.confirmButtonLabel": "上書きを確定", - "home.tutorial.savedObject.defaultButtonLabel": "Kibana オブジェクトを読み込む", - "home.tutorial.savedObject.installLabel": "インデックスパターン、ビジュアライゼーション、事前定義済みのダッシュボードをインポートします。", - "home.tutorial.savedObject.installStatusLabel": "{savedObjectsLength} オブジェクトの {overwriteErrorsLength} がすでに存在します。インポートして既存のオブジェクトを上書きするには、「上書きを確定」をクリックしてください。オブジェクトへの変更はすべて失われます。", - "home.tutorial.savedObject.loadTitle": "Kibana オブジェクトを読み込む", - "home.tutorial.savedObject.requestFailedErrorMessage": "リクエスト失敗、エラー:{message}", - "home.tutorial.savedObject.unableToAddErrorMessage": "{savedObjectsLength} 件中 {errorsLength} 件の kibana オブジェクトが追加できません。エラー:{errorMessage}", - "home.tutorial.selectionLegend": "デプロイタイプ", - "home.tutorial.selfManagedButtonLabel": "自己管理", - "home.tutorial.tabs.sampleDataTitle": "サンプルデータ", - "home.tutorial.unexpectedStatusCheckStateErrorDescription": "予期せぬステータス確認ステータス {statusCheckState}", - "home.tutorial.unhandledInstructionTypeErrorDescription": "予期せぬ指示タイプ {visibleInstructions}", - "home.tutorialDirectory.featureCatalogueDescription": "一般的なアプリやサービスからデータを取り込みます。", - "home.tutorialDirectory.featureCatalogueTitle": "データの追加", - "home.tutorials.activemqLogs.artifacts.dashboards.linkLabel": "ActiveMQ 監査イベント", - "home.tutorials.activemqLogs.longDescription": "Filebeat で ActiveMQ ログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.activemqLogs.nameTitle": "ActiveMQ ログ", - "home.tutorials.activemqLogs.shortDescription": "Filebeat で ActiveMQ ログを収集します。", - "home.tutorials.activemqMetrics.artifacts.application.label": "Discover", - "home.tutorials.activemqMetrics.nameTitle": "ActiveMQ メトリック", - "home.tutorials.activemqMetrics.shortDescription": "ActiveMQ インスタンスから監視メトリックを取得します。", - "home.tutorials.aerospikeMetrics.artifacts.application.label": "Discover", - "home.tutorials.aerospikeMetrics.longDescription": "「aerospike」Metricbeatモジュールは、Aerospikeから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.aerospikeMetrics.nameTitle": "Aerospike メトリック", - "home.tutorials.aerospikeMetrics.shortDescription": "Aerospike サーバーから内部メトリックを取得します。", - "home.tutorials.apacheLogs.artifacts.dashboards.linkLabel": "Apache ログダッシュボード", - "home.tutorials.apacheLogs.longDescription": "apache Filebeatモジュールが、Apache 2 HTTPサーバーにより作成されたアクセスとエラーのログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.apacheLogs.nameTitle": "Apache ログ", - "home.tutorials.apacheLogs.shortDescription": "Apache HTTP サーバーが作成したアクセスとエラーのログを収集しパースします。", - "home.tutorials.apacheMetrics.artifacts.dashboards.linkLabel": "Apache メトリックダッシュボード", - "home.tutorials.apacheMetrics.longDescription": "「apache」Metricbeatモジュールは、Apache 2 HTTPサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.apacheMetrics.nameTitle": "Apache メトリック", - "home.tutorials.apacheMetrics.shortDescription": "Apache 2 HTTP サーバーから内部メトリックを取得します。", - "home.tutorials.auditbeat.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.auditbeat.longDescription": "Auditbeat を使用してホストから監査データを収集します。これらにはプロセス、ユーザー、ログイン、ソケット情報、ファイルアクセス、その他が含まれます。[詳細]({learnMoreLink})", - "home.tutorials.auditbeat.nameTitle": "Auditbeat", - "home.tutorials.auditbeat.shortDescription": "ホストから監査データを収集します。", - "home.tutorials.auditdLogs.artifacts.dashboards.linkLabel": "監査イベント", - "home.tutorials.auditdLogs.longDescription": "モジュールは監査デーモン(「auditd」)からログを収集して解析します。[詳細]({learnMoreLink})", - "home.tutorials.auditdLogs.nameTitle": "Auditd ログ", - "home.tutorials.auditdLogs.shortDescription": "Linux auditd デーモンからログを収集します。", - "home.tutorials.awsLogs.artifacts.dashboards.linkLabel": "AWS S3 サーバーアクセスログダッシュボード", - "home.tutorials.awsLogs.longDescription": "SQS通知設定されているS3バケットにAWSログをエクスポートすることで、AWSログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.awsLogs.nameTitle": "AWS S3 ベースのログ", - "home.tutorials.awsLogs.shortDescription": "Filebeat で S3 バケットから AWS ログを収集します。", - "home.tutorials.awsMetrics.artifacts.dashboards.linkLabel": "AWS メトリックダッシュボード", - "home.tutorials.awsMetrics.longDescription": "「aws」Metricbeatモジュールが、AWS APIとCloudwatchから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.awsMetrics.nameTitle": "AWS メトリック", - "home.tutorials.awsMetrics.shortDescription": "AWS API と Cloudwatch からの EC2 インスタンスの監視メトリックです。", - "home.tutorials.azureLogs.artifacts.dashboards.linkLabel": "Apacheログダッシュボード", - "home.tutorials.azureLogs.longDescription": "「azure」Filebeatモジュールは、Azureアクティビティと監査関連ログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.azureLogs.nameTitle": "Azureログ", - "home.tutorials.azureLogs.shortDescription": "Azureアクティビティと監査関連ログを収集します。", - "home.tutorials.azureMetrics.artifacts.dashboards.linkLabel": "Apacheメトリックダッシュボード", - "home.tutorials.azureMetrics.longDescription": "Metricbeatモジュール「azure」は、Azureから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.azureMetrics.nameTitle": "Azure メトリック", - "home.tutorials.azureMetrics.shortDescription": "Azure 監視メトリックをフェッチします。", - "home.tutorials.barracudaLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.barracudaLogs.longDescription": "これは、SyslogまたはファイルでBarracuda Web Application Firewallログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.barracudaLogs.nameTitle": "Barracuda ログ", - "home.tutorials.barracudaLogs.shortDescription": "Barracuda Web Application Firewall ログを syslog またはファイルから収集します。", - "home.tutorials.bluecoatLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.bluecoatLogs.longDescription": "これは、SyslogまたはファイルでBlue Coat Directorログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.bluecoatLogs.nameTitle": "Blue Coat ログ", - "home.tutorials.bluecoatLogs.shortDescription": "Blue Coat Director ログを syslog またはファイルから収集します。", - "home.tutorials.cefLogs.artifacts.dashboards.linkLabel": "CEF ネットワーク概要ダッシュボード", - "home.tutorials.cefLogs.longDescription": "これは Syslog で Common Event Format(CEF)データを受信するためのモジュールです。Syslog プロトコルでメッセージが受信されると、Syslog 入力がヘッダーを解析し、タイムスタンプ値を設定します。次に、プロセッサーが適用され、CEF エンコードデータを解析します。デコードされたデータは「cef」オブジェクトフィールドに書き込まれます。CEFデータを入力できるすべてのElastic Common Schema(ECS)フィールドが入力されます。 [詳細]({learnMoreLink})", - "home.tutorials.cefLogs.nameTitle": "CEF ログ", - "home.tutorials.cefLogs.shortDescription": "Syslog で Common Event Format(CEF)ログデータを収集します。", - "home.tutorials.cephMetrics.artifacts.application.label": "Discover", - "home.tutorials.cephMetrics.longDescription": "「ceph」Metricbeatモジュールは、Cephから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.cephMetrics.nameTitle": "Ceph メトリック", - "home.tutorials.cephMetrics.shortDescription": "Ceph サーバーから内部メトリックを取得します。", - "home.tutorials.checkpointLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.checkpointLogs.longDescription": "これは Check Point ファイアウォールログ用のモジュールです。Syslog形式のLog Exporterからのログをサポートします。[詳細]({learnMoreLink})", - "home.tutorials.checkpointLogs.nameTitle": "Check Point ログ", - "home.tutorials.checkpointLogs.shortDescription": "Check Point ファイアウォールログを収集します。", - "home.tutorials.ciscoLogs.artifacts.dashboards.linkLabel": "ASA ファイアウォールダッシュボード", - "home.tutorials.ciscoLogs.longDescription": "これは Cisco ネットワークデバイスのログ用のモジュールです(ASA、FTD、IOS、Nexus)。Syslogのログまたはファイルから読み取られたログを受信するための次のファイルセットが含まれます。[詳細]({learnMoreLink})", - "home.tutorials.ciscoLogs.nameTitle": "Cisco ログ", - "home.tutorials.ciscoLogs.shortDescription": "Syslog またはファイルから Cisco ネットワークデバイスログを収集します。", - "home.tutorials.cloudwatchLogs.longDescription": "FunctionbeatをAWS Lambda関数として実行するようデプロイし、Cloudwatchログを収集します。 [詳細]({learnMoreLink})", - "home.tutorials.cloudwatchLogs.nameTitle": "AWS Cloudwatch ログ", - "home.tutorials.cloudwatchLogs.shortDescription": "Functionbeat で Cloudwatch ログを収集します。", - "home.tutorials.cockroachdbMetrics.artifacts.dashboards.linkLabel": "CockroachDB メトリックダッシュボード", - "home.tutorials.cockroachdbMetrics.longDescription": "Metricbeatモジュール「cockroachdb」は、CockroachDBから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.cockroachdbMetrics.nameTitle": "CockroachDB メトリック", - "home.tutorials.cockroachdbMetrics.shortDescription": "CockroachDB サーバーから監視メトリックを取得します。", - "home.tutorials.common.auditbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.auditbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.auditbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.auditbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatCloudInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.auditbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.auditbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatCloudInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.auditbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.auditbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.auditbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.auditbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.auditbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.auditbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.auditbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", - "home.tutorials.common.auditbeatInstructions.install.debTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.auditbeatInstructions.install.debTitle": "Auditbeat のダウンロードとインストール", - "home.tutorials.common.auditbeatInstructions.install.osxTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.auditbeatInstructions.install.osxTitle": "Auditbeat のダウンロードとインストール", - "home.tutorials.common.auditbeatInstructions.install.rpmTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", - "home.tutorials.common.auditbeatInstructions.install.rpmTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.auditbeatInstructions.install.rpmTitle": "Auditbeat のダウンロードとインストール", - "home.tutorials.common.auditbeatInstructions.install.windowsTextPost": "{auditbeatPath} ファイルの {propertyName} を Elasticsearch のインストールに設定します。", - "home.tutorials.common.auditbeatInstructions.install.windowsTextPre": "Auditbeatは初めてですか?[クイックスタート]({guideLinkUrl})を参照してください。\n 1.[ダウンロード]({auditbeatLinkUrl})ページからAuditbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName}」ディレクトリの名前を「Auditbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Auditbeat を Windows サービスとしてインストールします。", - "home.tutorials.common.auditbeatInstructions.install.windowsTitle": "Auditbeat のダウンロードとインストール", - "home.tutorials.common.auditbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.auditbeatInstructions.start.debTitle": "Auditbeat を起動", - "home.tutorials.common.auditbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.auditbeatInstructions.start.osxTitle": "Auditbeat を起動", - "home.tutorials.common.auditbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.auditbeatInstructions.start.rpmTitle": "Auditbeat を起動", - "home.tutorials.common.auditbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.auditbeatInstructions.start.windowsTitle": "Auditbeat を起動", - "home.tutorials.common.auditbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.auditbeatStatusCheck.errorText": "まだデータを受信していません", - "home.tutorials.common.auditbeatStatusCheck.successText": "データを受信しました", - "home.tutorials.common.auditbeatStatusCheck.text": "Auditbeat からデータを受け取ったことを確認してください。", - "home.tutorials.common.auditbeatStatusCheck.title": "ステータス", - "home.tutorials.common.cloudInstructions.passwordAndResetLink": "{passwordTemplate}が「Elastic」ユーザーのパスワードです。\\{#config.cloud.profileUrl\\}\n パスワードを忘れた場合[Elastic Cloudでリセットしてください](\\{config.cloud.baseUrl\\}\\{config.cloud.profileUrl\\})。\n \\{/config.cloud.profileUrl\\}", - "home.tutorials.common.filebeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.filebeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.filebeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.filebeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatCloudInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.filebeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.filebeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatCloudInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.filebeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.filebeatEnableInstructions.debTextPost": "「/etc/filebeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", - "home.tutorials.common.filebeatEnableInstructions.debTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatEnableInstructions.osxTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", - "home.tutorials.common.filebeatEnableInstructions.osxTextPre": "インストールディレクトリから次のファイルを実行します:", - "home.tutorials.common.filebeatEnableInstructions.osxTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatEnableInstructions.rpmTextPost": "「/etc/filebeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", - "home.tutorials.common.filebeatEnableInstructions.rpmTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatEnableInstructions.windowsTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", - "home.tutorials.common.filebeatEnableInstructions.windowsTextPre": "「{path}」フォルダから次のファイルを実行します:", - "home.tutorials.common.filebeatEnableInstructions.windowsTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.filebeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.filebeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.filebeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.filebeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.filebeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.filebeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.filebeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", - "home.tutorials.common.filebeatInstructions.install.debTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.filebeatInstructions.install.debTitle": "Filebeat のダウンロードとインストール", - "home.tutorials.common.filebeatInstructions.install.osxTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.filebeatInstructions.install.osxTitle": "Filebeat のダウンロードとインストール", - "home.tutorials.common.filebeatInstructions.install.rpmTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", - "home.tutorials.common.filebeatInstructions.install.rpmTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", - "home.tutorials.common.filebeatInstructions.install.rpmTitle": "Filebeat のダウンロードとインストール", - "home.tutorials.common.filebeatInstructions.install.windowsTextPost": "{filebeatPath} ファイルの {propertyName} を Elasticsearch のインストールに設定します。", - "home.tutorials.common.filebeatInstructions.install.windowsTextPre": "Filebeatは初めてですか?[クイックスタート]({guideLinkUrl})を参照してください。\n 1.[ダウンロード]({filebeatLinkUrl})ページからFilebeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName}」ディレクトリの名前を「Filebeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Filebeat を Windows サービスとしてインストールします。", - "home.tutorials.common.filebeatInstructions.install.windowsTitle": "Filebeat のダウンロードとインストール", - "home.tutorials.common.filebeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.filebeatInstructions.start.debTitle": "Filebeat を起動します", - "home.tutorials.common.filebeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.filebeatInstructions.start.osxTitle": "Filebeat を起動します", - "home.tutorials.common.filebeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.filebeatInstructions.start.rpmTitle": "Filebeat を起動します", - "home.tutorials.common.filebeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.filebeatInstructions.start.windowsTitle": "Filebeat を起動", - "home.tutorials.common.filebeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.filebeatStatusCheck.errorText": "モジュールからまだデータを受け取っていません", - "home.tutorials.common.filebeatStatusCheck.successText": "このモジュールからデータを受け取りました", - "home.tutorials.common.filebeatStatusCheck.text": "Filebeat の「{moduleName}」モジュールからデータを受け取ったことを確認してください。", - "home.tutorials.common.filebeatStatusCheck.title": "モジュールステータス", - "home.tutorials.common.functionbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.functionbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.functionbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.functionbeatAWSInstructions.textPost": "「<your-access-key>」と「<your-secret-access-key>」がアカウント資格情報、「us-east-1」がご希望の地域です。", - "home.tutorials.common.functionbeatAWSInstructions.textPre": "環境で AWS アカウント認証情報を設定します。", - "home.tutorials.common.functionbeatAWSInstructions.title": "AWS 認証情報の設定", - "home.tutorials.common.functionbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.functionbeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.functionbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.functionbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.functionbeatEnableOnPremInstructions.defaultTextPost": "「<cloudwatch-log-group>」が投入するロググループの名前で、「<unique-bucket-name>」が Functionbeat デプロイのステージングに使用されるが有効な S3 バケット名です。", - "home.tutorials.common.functionbeatEnableOnPremInstructions.defaultTitle": "Cloudwatch ロググループの構成", - "home.tutorials.common.functionbeatEnableOnPremInstructionsOSXLinux.textPre": "「functionbeat.yml」ファイルで設定を変更します。", - "home.tutorials.common.functionbeatEnableOnPremInstructionsWindows.textPre": "{path} ファイルで設定を変更します。", - "home.tutorials.common.functionbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.functionbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.functionbeatInstructions.config.osxTitle": "Elastic クラスターの構成", - "home.tutorials.common.functionbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.functionbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.functionbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.functionbeatInstructions.deploy.osxTextPre": "これにより Functionbeat が Lambda 関数としてインストールされます「setup」コマンドで Elasticsearch の構成を確認し、Kibana インデックスパターンを読み込みます。通常このコマンドを省いても大丈夫です。", - "home.tutorials.common.functionbeatInstructions.deploy.osxTitle": "Functionbeat を AWS Lambda にデプロイ", - "home.tutorials.common.functionbeatInstructions.deploy.windowsTextPre": "これにより Functionbeat が Lambda 関数としてインストールされます「setup」コマンドで Elasticsearch の構成を確認し、Kibana インデックスパターンを読み込みます。通常このコマンドを省いても大丈夫です。", - "home.tutorials.common.functionbeatInstructions.deploy.windowsTitle": "Functionbeat を AWS Lambda にデプロイ", - "home.tutorials.common.functionbeatInstructions.install.linuxTextPre": "Functionbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.functionbeatInstructions.install.linuxTitle": "Functionbeat のダウンロードとインストール", - "home.tutorials.common.functionbeatInstructions.install.osxTextPre": "Functionbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.functionbeatInstructions.install.osxTitle": "Functionbeat のダウンロードとインストール", - "home.tutorials.common.functionbeatInstructions.install.windowsTextPre": "Functionbeatは初めてですか?[クイックスタート]({functionbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからFunctionbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName} ディレクトリの名前を「Functionbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトから、Functionbeat ディレクトリに移動します:", - "home.tutorials.common.functionbeatInstructions.install.windowsTitle": "Functionbeat のダウンロードとインストール", - "home.tutorials.common.functionbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.functionbeatStatusCheck.errorText": "Functionbeat からまだデータを受け取っていません", - "home.tutorials.common.functionbeatStatusCheck.successText": "Functionbeat からデータを受け取りました", - "home.tutorials.common.functionbeatStatusCheck.text": "Functionbeat からデータを受け取ったことを確認してください。", - "home.tutorials.common.functionbeatStatusCheck.title": "Functionbeat ステータス", - "home.tutorials.common.heartbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.heartbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.heartbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.heartbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatCloudInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.heartbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.heartbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatCloudInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.heartbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.heartbeatEnableCloudInstructions.debTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableCloudInstructions.defaultTextPost": "Heartbeatのモニターの設定の詳細は、[Heartbeat設定ドキュメント]({configureLink})をご覧ください。", - "home.tutorials.common.heartbeatEnableCloudInstructions.defaultTitle": "構成を変更 - 監視を追加", - "home.tutorials.common.heartbeatEnableCloudInstructions.osxTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableCloudInstructions.rpmTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableCloudInstructions.windowsTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.debTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.defaultTextPost": "{hostTemplate}は監視対象のURLです。Heartbeatの監視を構成する手順の詳細は、[Heartbeat構成ドキュメント]({configureLink})をご覧ください。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.defaultTitle": "構成を変更 - 監視を追加", - "home.tutorials.common.heartbeatEnableOnPremInstructions.osxTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.rpmTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatEnableOnPremInstructions.windowsTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", - "home.tutorials.common.heartbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.heartbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.heartbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.heartbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.heartbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.heartbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.heartbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({link})をご覧ください。", - "home.tutorials.common.heartbeatInstructions.install.debTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.heartbeatInstructions.install.debTitle": "Heartbeat のダウンロードとインストール", - "home.tutorials.common.heartbeatInstructions.install.osxTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.heartbeatInstructions.install.osxTitle": "Heartbeat のダウンロードとインストール", - "home.tutorials.common.heartbeatInstructions.install.rpmTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.heartbeatInstructions.install.rpmTitle": "Heartbeat のダウンロードとインストール", - "home.tutorials.common.heartbeatInstructions.install.windowsTextPre": "Heartbeatは初めてですか?[クイックスタート]({heartbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからHeartbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName} ディレクトリの名前を「Heartbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Heartbeat を Windows サービスとしてインストールします。", - "home.tutorials.common.heartbeatInstructions.install.windowsTitle": "Heartbeat のダウンロードとインストール", - "home.tutorials.common.heartbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", - "home.tutorials.common.heartbeatInstructions.start.debTitle": "Heartbeat を起動します", - "home.tutorials.common.heartbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", - "home.tutorials.common.heartbeatInstructions.start.osxTitle": "Heartbeat を起動します", - "home.tutorials.common.heartbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", - "home.tutorials.common.heartbeatInstructions.start.rpmTitle": "Heartbeat を起動します", - "home.tutorials.common.heartbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", - "home.tutorials.common.heartbeatInstructions.start.windowsTitle": "Heartbeat を起動します", - "home.tutorials.common.heartbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.heartbeatStatusCheck.errorText": "Heartbeat からまだデータを受け取っていません", - "home.tutorials.common.heartbeatStatusCheck.successText": "Heartbeat からデータを受け取りました", - "home.tutorials.common.heartbeatStatusCheck.text": "Heartbeat からデータを受け取ったことを確認してください。", - "home.tutorials.common.heartbeatStatusCheck.title": "Heartbeat のステータス", - "home.tutorials.common.logstashInstructions.install.java.osxTextPre": "[こちら]({link})のインストール手順に従ってください。", - "home.tutorials.common.logstashInstructions.install.java.osxTitle": "Java Runtime Environment のダウンロードとインストール", - "home.tutorials.common.logstashInstructions.install.java.windowsTextPre": "[こちら]({link})のインストール手順に従ってください。", - "home.tutorials.common.logstashInstructions.install.java.windowsTitle": "Java Runtime Environment のダウンロードとインストール", - "home.tutorials.common.logstashInstructions.install.logstash.osxTextPre": "Logstash は初めてですか? [入門ガイド]({link})をご覧ください。", - "home.tutorials.common.logstashInstructions.install.logstash.osxTitle": "Logstash のダウンロードとインストール", - "home.tutorials.common.logstashInstructions.install.logstash.windowsTextPre": "Logstash は初めてですか? [入門ガイド]({logstashLink})をご覧ください。\n 1.Logstash Windows zipファイルを[ダウンロード]({elasticLink})します。\n 2.zip ファイルのコンテンツを展開します。", - "home.tutorials.common.logstashInstructions.install.logstash.windowsTitle": "Logstash のダウンロードとインストール", - "home.tutorials.common.metricbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.metricbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.metricbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.metricbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatCloudInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.metricbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatCloudInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.metricbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatCloudInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.metricbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.metricbeatEnableInstructions.debTextPost": "「/etc/metricbeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", - "home.tutorials.common.metricbeatEnableInstructions.debTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatEnableInstructions.osxTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", - "home.tutorials.common.metricbeatEnableInstructions.osxTextPre": "インストールディレクトリから次のファイルを実行します:", - "home.tutorials.common.metricbeatEnableInstructions.osxTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatEnableInstructions.rpmTextPost": "「/etc/metricbeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", - "home.tutorials.common.metricbeatEnableInstructions.rpmTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatEnableInstructions.windowsTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", - "home.tutorials.common.metricbeatEnableInstructions.windowsTextPre": "「{path}」フォルダから次のファイルを実行します:", - "home.tutorials.common.metricbeatEnableInstructions.windowsTitle": "{moduleName} モジュールを有効にし構成します", - "home.tutorials.common.metricbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.metricbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatInstructions.config.debTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.metricbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatInstructions.config.osxTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.metricbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatInstructions.config.rpmTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.metricbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.metricbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.metricbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({link})をご覧ください。", - "home.tutorials.common.metricbeatInstructions.install.debTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.metricbeatInstructions.install.debTitle": "Metricbeat のダウンロードとインストール", - "home.tutorials.common.metricbeatInstructions.install.osxTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.metricbeatInstructions.install.osxTitle": "Metricbeat のダウンロードとインストール", - "home.tutorials.common.metricbeatInstructions.install.rpmTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", - "home.tutorials.common.metricbeatInstructions.install.rpmTitle": "Metricbeat のダウンロードとインストール", - "home.tutorials.common.metricbeatInstructions.install.windowsTextPost": "{path} ファイルの「output.elasticsearch」を Elasticsearch のインストールに設定します。", - "home.tutorials.common.metricbeatInstructions.install.windowsTextPre": "Metricbeatは初めてですか?[クイックスタート]({metricbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからMetricbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.{directoryName}ディレクトリの名前を「Metricbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Metricbeat を Windows サービスとしてインストールします。", - "home.tutorials.common.metricbeatInstructions.install.windowsTitle": "Metricbeat のダウンロードとインストール", - "home.tutorials.common.metricbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.metricbeatInstructions.start.debTitle": "Metricbeat を起動します", - "home.tutorials.common.metricbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.metricbeatInstructions.start.osxTitle": "Metricbeat を起動します", - "home.tutorials.common.metricbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.metricbeatInstructions.start.rpmTitle": "Metricbeat を起動します", - "home.tutorials.common.metricbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.metricbeatInstructions.start.windowsTitle": "Metricbeat を起動します", - "home.tutorials.common.metricbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.metricbeatStatusCheck.errorText": "モジュールからまだデータを受け取っていません", - "home.tutorials.common.metricbeatStatusCheck.successText": "このモジュールからデータを受け取りました", - "home.tutorials.common.metricbeatStatusCheck.text": "Metricbeat の「{moduleName}」モジュールからデータを受け取ったことを確認してください", - "home.tutorials.common.metricbeatStatusCheck.title": "モジュールステータス", - "home.tutorials.common.premCloudInstructions.option1.textPre": "[Elastic Cloud]({link})にアクセスします。アカウントをお持ちでない場合は新規登録してください。14 日間の無料トライアルがご利用いただけます。\n\nElastic Cloud コンソールにログインします\n\nElastic Cloud コンソールで次の手順に従ってクラスターを作成します。\n 1.[デプロイを作成]を選択して[デプロイ名]を指定します\n 2.必要に応じて他のデプロイオプションを変更します(デフォルトも使い始めるのに有効です)\n 3.「デプロイを作成」をクリックします\n 4.デプロイの作成が完了するまで待ちます\n 5.新規クラウド Kibana インスタンスにアクセスし、Kibana ホームの手順に従います。", - "home.tutorials.common.premCloudInstructions.option1.title": "オプション 1:Elastic Cloud でお試しください", - "home.tutorials.common.premCloudInstructions.option2.textPre": "この Kibana インスタンスをマネージド Elasticsearch インスタンスに対して実行している場合は、手動セットアップを行います。\n\n「Elasticsearch」エンドポイントを {urlTemplate} として保存し、クラスターの「パスワード」を {passwordTemplate} として保存します。", - "home.tutorials.common.premCloudInstructions.option2.title": "オプション 2:Kibana を Cloud インスタンスに接続", - "home.tutorials.common.winlogbeat.cloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.winlogbeat.premCloudInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.winlogbeat.premInstructions.gettingStarted.title": "はじめに", - "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.winlogbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", - "home.tutorials.common.winlogbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", - "home.tutorials.common.winlogbeatInstructions.config.windowsTitle": "構成を編集する", - "home.tutorials.common.winlogbeatInstructions.install.windowsTextPost": "{path} ファイルの「output.elasticsearch」を Elasticsearch のインストールに設定します。", - "home.tutorials.common.winlogbeatInstructions.install.windowsTextPre": "Winlogbeatは初めてですか?[クイックスタート]({winlogbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからWinlogbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.{directoryName}ディレクトリの名前を「Winlogbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Winlogbeat を Windows サービスとしてインストールします。", - "home.tutorials.common.winlogbeatInstructions.install.windowsTitle": "Winlogbeat のダウンロードとインストール", - "home.tutorials.common.winlogbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", - "home.tutorials.common.winlogbeatInstructions.start.windowsTitle": "Winlogbeat を起動", - "home.tutorials.common.winlogbeatStatusCheck.buttonLabel": "データを確認してください", - "home.tutorials.common.winlogbeatStatusCheck.errorText": "まだデータを受信していません", - "home.tutorials.common.winlogbeatStatusCheck.successText": "データを受信しました", - "home.tutorials.common.winlogbeatStatusCheck.text": "Winlogbeat からデータを受け取ったことを確認してください。", - "home.tutorials.common.winlogbeatStatusCheck.title": "モジュールステータス", - "home.tutorials.consulMetrics.artifacts.dashboards.linkLabel": "Consul メトリックダッシュボード", - "home.tutorials.consulMetrics.longDescription": "Metricbeatモジュール「consul」は、Consulから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.consulMetrics.nameTitle": "Consul メトリック", - "home.tutorials.consulMetrics.shortDescription": "CouchdB サーバーから監視メトリックを取得します。", - "home.tutorials.corednsLogs.artifacts.dashboards.linkLabel": "[[Filebeat CoreDNS] 概要", - "home.tutorials.corednsLogs.longDescription": "これは CoreDNS の Filebeatモジュールです。スタンドアロンのCoreDNSデプロイメントとKubernetesでのCoreDNSデプロイメントの両方をサポートします。[詳細]({learnMoreLink})", - "home.tutorials.corednsLogs.nameTitle": "CoreDNS ログ", - "home.tutorials.corednsLogs.shortDescription": "CoreDNS ログを収集します。", - "home.tutorials.corednsMetrics.artifacts.application.label": "Discover", - "home.tutorials.corednsMetrics.longDescription": "「coredns」Metricbeatモジュールが、CoreDNSから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.corednsMetrics.nameTitle": "CoreDNS メトリック", - "home.tutorials.corednsMetrics.shortDescription": "CoreDNS サーバーから監視メトリックを取得します。", - "home.tutorials.couchbaseMetrics.artifacts.application.label": "Discover", - "home.tutorials.couchbaseMetrics.longDescription": "「couchbase」Metricbeatモジュールは、Couchbaseから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.couchbaseMetrics.nameTitle": "Couchbase メトリック", - "home.tutorials.couchbaseMetrics.shortDescription": "Couchbase から内部メトリックを取得します。", - "home.tutorials.couchdbMetrics.artifacts.dashboards.linkLabel": "CouchDB メトリックダッシュボード", - "home.tutorials.couchdbMetrics.longDescription": "「couchdb」Metricbeatモジュールが、CouchDBから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.couchdbMetrics.nameTitle": "CouchDB メトリック", - "home.tutorials.couchdbMetrics.shortDescription": "CouchdB サーバーから監視メトリックを取得します。", - "home.tutorials.crowdstrikeLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.crowdstrikeLogs.longDescription": "これはFalcon [SIEM Connector](https://www.crowdstrike.com/blog/tech-center/integrate-with-your-siem)を使用したFilebeat module for CrowdStrike Falconです。 このモジュールはこのデータを収集し、ECS に変換して、取り込み、SIEM に表示します。 デフォルトでは、Falcon SIEMコネクターはJSON形式のFalcon Streaming APIイベントデータを出力します。[詳細]({learnMoreLink})", - "home.tutorials.crowdstrikeLogs.nameTitle": "CrowdStrike ログ", - "home.tutorials.crowdstrikeLogs.shortDescription": "Falcon SIEM コネクターを使用して CrowdStrike Falcon ログを収集します。", - "home.tutorials.cylanceLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.cylanceLogs.longDescription": "これは、SyslogまたはファイルでCylancePROTECTログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.cylanceLogs.nameTitle": "CylancePROTECT ログ", - "home.tutorials.dockerMetrics.artifacts.dashboards.linkLabel": "Docker メトリックダッシュボード", - "home.tutorials.dockerMetrics.longDescription": "「docker」 Metricbeatモジュールは、Dockerサーバーからメトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.dockerMetrics.nameTitle": "Docker メトリック", - "home.tutorials.dockerMetrics.shortDescription": "Docker コンテナーに関するメトリックを取得します。", - "home.tutorials.dropwizardMetrics.artifacts.application.label": "Discover", - "home.tutorials.dropwizardMetrics.longDescription": "「dropwizard」 Metricbeatモジュールは、Dropwizard Javaアプリケーションから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.dropwizardMetrics.nameTitle": "Dropwizard メトリック", - "home.tutorials.dropwizardMetrics.shortDescription": "Dropwizard Java アプリケーションから内部メトリックを取得します。", - "home.tutorials.elasticsearchLogs.artifacts.application.label": "Discover", - "home.tutorials.elasticsearchLogs.longDescription": "「elasticsearch」Filebeatモジュールが、Elasticsearchにより作成されたログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.elasticsearchLogs.nameTitle": "Elasticsearch ログ", - "home.tutorials.elasticsearchLogs.shortDescription": "Elasticsearch により作成されたログを収集しパースします。", - "home.tutorials.elasticsearchMetrics.artifacts.application.label": "Discover", - "home.tutorials.elasticsearchMetrics.longDescription": "「elasticsearch」Metricbeatモジュールは、Elasticsearchから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.elasticsearchMetrics.nameTitle": "Elasticsearch メトリック", - "home.tutorials.elasticsearchMetrics.shortDescription": "Elasticsearch から内部メトリックを取得します。", - "home.tutorials.envoyproxyLogs.artifacts.dashboards.linkLabel": "Envoy Proxy 概要", - "home.tutorials.envoyproxyLogs.longDescription": "これは Envoy Proxy アクセスログ(https://www.envoyproxy.io/docs/envoy/v1.10.0/configuration/access_log)用の Filebeat モジュールです。KubernetesでのスタンドアロンのデプロイメントとEnvoyプロキシデプロイメントの両方をサポートします。[詳細]({learnMoreLink})", - "home.tutorials.envoyproxyLogs.nameTitle": "Envoy Proxy ログ", - "home.tutorials.envoyproxyLogs.shortDescription": "Envoy Proxy ログを収集します。", - "home.tutorials.envoyproxyMetrics.longDescription": "Metricbeatモジュール「envoyproxy」は、Envoy Proxyから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.envoyproxyMetrics.nameTitle": "Envoy Proxy メトリック", - "home.tutorials.envoyproxyMetrics.shortDescription": "Envoy Proxy サーバーから監視メトリックを取得します。", - "home.tutorials.etcdMetrics.artifacts.application.label": "Discover", - "home.tutorials.etcdMetrics.longDescription": "「etcd」Metricbeatモジュールは、Etcdから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.etcdMetrics.nameTitle": "Etcd メトリック", - "home.tutorials.etcdMetrics.shortDescription": "Etcd サーバーから内部メトリックを取得します。", - "home.tutorials.f5Logs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.f5Logs.longDescription": "これは、SyslogまたはファイルでBig-IP Access Policy Managerログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.f5Logs.nameTitle": "F5 ログ", - "home.tutorials.f5Logs.shortDescription": "Syslog またはファイルで F5 Big-IP Access Policy Manager ログを収集します。", - "home.tutorials.fortinetLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.fortinetLogs.longDescription": "これはSyslog形式で送信されたFortinet FortiOSログのためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.fortinetLogs.nameTitle": "Fortinet ログ", - "home.tutorials.fortinetLogs.shortDescription": "Syslog で Fortinet FortiOS ログを収集します。", - "home.tutorials.gcpLogs.artifacts.dashboards.linkLabel": "監査ログダッシュボード", - "home.tutorials.gcpLogs.longDescription": "これは Google Cloud ログのモジュールです。StackdriverからGoogle Pub/Subトピックシンクにエクスポートされた監査、VPCフロー、ファイアウォールログの読み取りをサポートします。[詳細]({learnMoreLink})", - "home.tutorials.gcpLogs.nameTitle": "Google Cloud ログ", - "home.tutorials.gcpLogs.shortDescription": "Google Cloud 監査、ファイアウォール、VPC フローログを収集します。", - "home.tutorials.gcpMetrics.artifacts.dashboards.linkLabel": "Google Cloudメトリックダッシュボード", - "home.tutorials.gcpMetrics.longDescription": "「gcp」Metricbeatモジュールは、Stackdriver Monitoring APIを使用して、Google Cloud Platformから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.gcpMetrics.nameTitle": "Google Cloudメトリック", - "home.tutorials.gcpMetrics.shortDescription": "Stackdriver Monitoring API を使用して、Google Cloud Platform から監視メトリックを取得します。", - "home.tutorials.golangMetrics.artifacts.dashboards.linkLabel": "Golang メトリックダッシュボード", - "home.tutorials.golangMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Golangアプリから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.golangMetrics.nameTitle": "Golang メトリック", - "home.tutorials.golangMetrics.shortDescription": "Golang アプリから内部メトリックを取得します。", - "home.tutorials.gsuiteLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.gsuiteLogs.longDescription": "これは異なるGSuite監査レポートAPIからデータを取り込むためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.gsuiteLogs.nameTitle": "GSuite ログ", - "home.tutorials.gsuiteLogs.shortDescription": "GSuite アクティビティレポートを収集します。", - "home.tutorials.haproxyLogs.artifacts.dashboards.linkLabel": "HAProxy 概要", - "home.tutorials.haproxyLogs.longDescription": "このモジュールは、(「haproxy」)プロセスからログを収集して解析します。[詳細]({learnMoreLink})", - "home.tutorials.haproxyLogs.nameTitle": "HAProxy ログ", - "home.tutorials.haproxyLogs.shortDescription": "HAProxy ログを収集します。", - "home.tutorials.haproxyMetrics.artifacts.application.label": "Discover", - "home.tutorials.haproxyMetrics.longDescription": "「haproxy」Metricbeatモジュールは、HAProxyアプリから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.haproxyMetrics.nameTitle": "HAProxy メトリック", - "home.tutorials.haproxyMetrics.shortDescription": "HAProxy サーバーから内部メトリックを取得します。", - "home.tutorials.ibmmqLogs.artifacts.dashboards.linkLabel": "IBM MQ イベント", - "home.tutorials.ibmmqLogs.longDescription": "Filebeat で IBM MQ ログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.ibmmqLogs.nameTitle": "IBM MQ ログ", - "home.tutorials.ibmmqLogs.shortDescription": "Filebeat で IBM MQ ログを収集します。", - "home.tutorials.ibmmqMetrics.artifacts.application.label": "Discover", - "home.tutorials.ibmmqMetrics.nameTitle": "IBM MQ メトリック", - "home.tutorials.ibmmqMetrics.shortDescription": "IBM MQ インスタンスから監視メトリックを取得します。", - "home.tutorials.icingaLogs.artifacts.dashboards.linkLabel": "Icinga Main ログ", - "home.tutorials.icingaLogs.longDescription": "このモジュールは[Icinga](https://www.icinga.com/products/icinga-2/)のメイン、デバッグ、スタートアップログを解析します。[詳細]({learnMoreLink})", - "home.tutorials.icingaLogs.nameTitle": "Icinga ログ", - "home.tutorials.icingaLogs.shortDescription": "Icinga メイン、デバッグ、スタートアップログを収集します。", - "home.tutorials.iisLogs.artifacts.dashboards.linkLabel": "IIS ログダッシュボード", - "home.tutorials.iisLogs.longDescription": "「iis」Filebeatモジュールが、Nginx HTTPサーバーにより作成されたアクセスとエラーのログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.iisLogs.nameTitle": "IIS ログ", - "home.tutorials.iisLogs.shortDescription": "IIS HTTP サーバーにより作成されたアクセスとエラーのログを収集しパースします。", - "home.tutorials.iisMetrics.artifacts.dashboards.linkLabel": "IISメトリックダッシュボード", - "home.tutorials.iisMetrics.longDescription": "「iis」Metricbeatモジュールは、IISサーバーおよび実行中のアプリケーションプールとWebサイトからメトリックを収集します。[詳細]({learnMoreLink})", - "home.tutorials.iisMetrics.nameTitle": "IISメトリック", - "home.tutorials.iisMetrics.shortDescription": "IISサーバー関連メトリックを収集します。", - "home.tutorials.impervaLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.impervaLogs.longDescription": "これは、SyslogまたはファイルでSecureSphereログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.impervaLogs.nameTitle": "Imperva ログ", - "home.tutorials.impervaLogs.shortDescription": "Syslog またはファイルから Imperva SecureSphere ログを収集します。", - "home.tutorials.infobloxLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.infobloxLogs.longDescription": "これは、SyslogまたはファイルでInfoblox NIOSログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.infobloxLogs.nameTitle": "Infoblox ログ", - "home.tutorials.infobloxLogs.shortDescription": "Syslog またはファイルから Infoblox NIOS ログを収集します。", - "home.tutorials.iptablesLogs.artifacts.dashboards.linkLabel": "Iptables 概要", - "home.tutorials.iptablesLogs.longDescription": "これは iptables と ip6tables ログ用のモジュールです。ネットワーク上で受信した syslog ログ経由や、ファイルからのログをパースします。また、ルールセット名、ルール番号、トラフィックに実行されたアクション (許可/拒否) を含む、Ubiquitiファイアウォールにより追加された接頭辞も認識できます [詳細]({learnMoreLink})", - "home.tutorials.iptablesLogs.nameTitle": "Iptables ログ", - "home.tutorials.iptablesLogs.shortDescription": "iptables および ip6tables ログを収集します。", - "home.tutorials.juniperLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.juniperLogs.longDescription": "これは、SyslogまたはファイルでJuniper JUNOSログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.juniperLogs.nameTitle": "Juniper ログ", - "home.tutorials.juniperLogs.shortDescription": "Syslog またはファイルから Juniper JUNOS ログを収集します。", - "home.tutorials.kafkaLogs.artifacts.dashboards.linkLabel": "Kafka ログダッシュボード", - "home.tutorials.kafkaLogs.longDescription": "「kafka」Filebeatモジュールは、Kafkaが作成したログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.kafkaLogs.nameTitle": "Kafka ログ", - "home.tutorials.kafkaLogs.shortDescription": "Kafka が作成したログを収集しパースします。", - "home.tutorials.kafkaMetrics.artifacts.application.label": "Discover", - "home.tutorials.kafkaMetrics.longDescription": "「kafka」Metricbeatモジュールは、Kafkaから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.kafkaMetrics.nameTitle": "Kafka メトリック", - "home.tutorials.kafkaMetrics.shortDescription": "Kafka サーバーから内部メトリックを取得します。", - "home.tutorials.kibanaLogs.artifacts.application.label": "Discover", - "home.tutorials.kibanaLogs.longDescription": "これはKibanaモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.kibanaLogs.nameTitle": "Kibana ログ", - "home.tutorials.kibanaLogs.shortDescription": "Kibana ログを収集します。", - "home.tutorials.kibanaMetrics.artifacts.application.label": "Discover", - "home.tutorials.kibanaMetrics.longDescription": "「kibana」Metricbeatモジュールは、Kibanaから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.kibanaMetrics.nameTitle": "Kibana メトリック", - "home.tutorials.kibanaMetrics.shortDescription": "Kibana から内部メトリックを取得します。", - "home.tutorials.kubernetesMetrics.artifacts.dashboards.linkLabel": "Kubernetes メトリックダッシュボード", - "home.tutorials.kubernetesMetrics.longDescription": "「kubernetes」Metricbeatモジュールは、Kubernetes APIからメトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.kubernetesMetrics.nameTitle": "Kubernetes メトリック", - "home.tutorials.kubernetesMetrics.shortDescription": "Kubernetes からメトリックを取得します。", - "home.tutorials.logstashLogs.artifacts.dashboards.linkLabel": "Logstash ログ", - "home.tutorials.logstashLogs.longDescription": "このモジュールはLogstash標準ログと低速ログを解析します。プレーンテキスト形式とJSON形式がサポートされます。[詳細]({learnMoreLink})", - "home.tutorials.logstashLogs.nameTitle": "Logstash ログ", - "home.tutorials.logstashLogs.shortDescription": "Logstash メインおよび低速ログを収集します。", - "home.tutorials.logstashMetrics.artifacts.application.label": "Discover", - "home.tutorials.logstashMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Logstashサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.logstashMetrics.nameTitle": "Logstash メトリック", - "home.tutorials.logstashMetrics.shortDescription": "Logstash サーバーから内部メトリックを取得します。", - "home.tutorials.memcachedMetrics.artifacts.application.label": "Discover", - "home.tutorials.memcachedMetrics.longDescription": "「memcached」Metricbeatモジュールは、Memcachedから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.memcachedMetrics.nameTitle": "Memcached メトリック", - "home.tutorials.memcachedMetrics.shortDescription": "Memcached サーバーから内部メトリックを取得します。", - "home.tutorials.microsoftLogs.artifacts.dashboards.linkLabel": "Microsoft ATP 概要", - "home.tutorials.microsoftLogs.longDescription": "Elastic Securityで使用するMicrosoft Defender ATPアラートを収集します。[詳細]({learnMoreLink})", - "home.tutorials.microsoftLogs.nameTitle": "Microsoft Defender ATP ログ", - "home.tutorials.microsoftLogs.shortDescription": "Microsoft Defender ATP アラートを収集します。", - "home.tutorials.mispLogs.artifacts.dashboards.linkLabel": "MISP 概要", - "home.tutorials.mispLogs.longDescription": "これは MISP プラットフォーム(https://www.circl.lu/doc/misp/)から脅威インテリジェンス情報を読み取るための Filebeatモジュールです。MISP REST APIインターフェイスにアクセスするためにhttpjson入力を使用します。[詳細]({learnMoreLink})", - "home.tutorials.mispLogs.nameTitle": "MISP 脅威インテリジェンスログ", - "home.tutorials.mispLogs.shortDescription": "Filebeat を使用して MISP 脅威インテリジェンスデータを収集します。", - "home.tutorials.mongodbLogs.artifacts.dashboards.linkLabel": "MongoDB概要", - "home.tutorials.mongodbLogs.longDescription": "このモジュールは、[MongoDB](https://www.mongodb.com/)によって作成されたログを収集して解析します。[詳細]({learnMoreLink})", - "home.tutorials.mongodbLogs.nameTitle": "MongoDB ログ", - "home.tutorials.mongodbLogs.shortDescription": "MongoDB ログを収集します。", - "home.tutorials.mongodbMetrics.artifacts.dashboards.linkLabel": "MongoDB メトリックダッシュボード", - "home.tutorials.mongodbMetrics.longDescription": "「mongodb」Metricbeatモジュールは、MongoDBサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.mongodbMetrics.nameTitle": "MongoDB メトリック", - "home.tutorials.mongodbMetrics.shortDescription": "MongoDB から内部メトリックを取得します。", - "home.tutorials.mssqlLogs.artifacts.application.label": "Discover", - "home.tutorials.mssqlLogs.longDescription": "このモジュールはMSSQLにより作成されたエラーログを解析します。[詳細]({learnMoreLink})", - "home.tutorials.mssqlLogs.nameTitle": "MSSQL ログ", - "home.tutorials.mssqlLogs.shortDescription": "MSSQL ログを収集します。", - "home.tutorials.mssqlMetrics.artifacts.dashboards.linkLabel": "Microsoft SQL Server メトリックダッシュボード", - "home.tutorials.mssqlMetrics.longDescription": "「mssql」Metricbeatモジュールが、Microsoft SQL Serverインスタンスからの監視、ログ、パフォーマンスメトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.mssqlMetrics.nameTitle": "Microsoft SQL Serverメトリック", - "home.tutorials.mssqlMetrics.shortDescription": "Microsoft SQL Server インスタンスから監視メトリックを取得します。", - "home.tutorials.muninMetrics.artifacts.application.label": "Discover", - "home.tutorials.muninMetrics.longDescription": "「munin」Metricbeatモジュールは、Muninから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.muninMetrics.nameTitle": "Munin メトリック", - "home.tutorials.muninMetrics.shortDescription": "Munin サーバーから内部メトリックを取得します。", - "home.tutorials.mysqlLogs.artifacts.dashboards.linkLabel": "MySQL ログダッシュボード", - "home.tutorials.mysqlLogs.longDescription": "「mysql」Filebeatモジュールは、MySQLが作成したエラーとスローログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.mysqlLogs.nameTitle": "MySQL ログ", - "home.tutorials.mysqlLogs.shortDescription": "MySQL が作成したエラーとスローログを収集しパースします。", - "home.tutorials.mysqlMetrics.artifacts.dashboards.linkLabel": "MySQL メトリックダッシュボード", - "home.tutorials.mysqlMetrics.longDescription": "「mysql」Metricbeatモジュールは、MySQLサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.mysqlMetrics.nameTitle": "MySQL メトリック", - "home.tutorials.mysqlMetrics.shortDescription": "MySQL から内部メトリックを取得します。", - "home.tutorials.natsLogs.artifacts.dashboards.linkLabel": "NATSログダッシュボード", - "home.tutorials.natsLogs.longDescription": "「nats」Filebeatモジュールが、Natsにより作成されたログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.natsLogs.nameTitle": "NATSログ", - "home.tutorials.natsLogs.shortDescription": "Nats により作成されたログを収集しパースします。", - "home.tutorials.natsMetrics.artifacts.dashboards.linkLabel": "NATSメトリックダッシュボード", - "home.tutorials.natsMetrics.longDescription": "「nats」Metricbeatモジュールが、Natsから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.natsMetrics.nameTitle": "NATSメトリック", - "home.tutorials.natsMetrics.shortDescription": "Nats サーバーから監視メトリックを取得します。", - "home.tutorials.netflowLogs.artifacts.dashboards.linkLabel": "Netflow 概要", - "home.tutorials.netflowLogs.longDescription": "これは UDP で NetFlow および IPFIX フローレコードを受信するモジュールです。この入力は、NetFlow バージョン 1、5、6、7、8、9、IPFIX をサポートします。NetFlowバージョン9以外では、フィールドが自動的にNetFlow v9にマッピングされます。[詳細]({learnMoreLink})", - "home.tutorials.netflowLogs.nameTitle": "NetFlow / IPFIX Collector", - "home.tutorials.netflowLogs.shortDescription": "NetFlow および IPFIX フローレコードを収集します。", - "home.tutorials.netscoutLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.netscoutLogs.longDescription": "これは、SyslogまたはファイルでArbor Peakflow SPログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.netscoutLogs.nameTitle": "Arbor Peakflow ログ", - "home.tutorials.netscoutLogs.shortDescription": "Syslog またはファイルから Netscout Arbor Peakflow SP ログを収集します。", - "home.tutorials.nginxLogs.artifacts.dashboards.linkLabel": "Nginx ログダッシュボード", - "home.tutorials.nginxLogs.longDescription": "「nginx」Filebeatモジュールは、Nginx HTTPサーバーが作成したアクセスとエラーのログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.nginxLogs.nameTitle": "Nginx ログ", - "home.tutorials.nginxLogs.shortDescription": "Nginx HTTP サーバーが作成したアクセスとエラーのログを収集しパースします。", - "home.tutorials.nginxMetrics.artifacts.dashboards.linkLabel": "Nginx メトリックダッシュボード", - "home.tutorials.nginxMetrics.longDescription": "Metricbeat モジュール「nginx」は、Nginx サーバーから内部メトリックを取得します。このモジュールは{statusModuleLink}が作成したウェブページからサーバーステータスデータを取得します。Nginxインストールで有効にする必要があります。[詳細]({learnMoreLink})", - "home.tutorials.nginxMetrics.nameTitle": "Nginx メトリック", - "home.tutorials.nginxMetrics.shortDescription": "Nginx HTTP サーバーから内部メトリックを取得します。", - "home.tutorials.o365Logs.artifacts.dashboards.linkLabel": "O365 監査ダッシュボード", - "home.tutorials.o365Logs.longDescription": "これは Office 365 API エンドポイントのいずれか経由で受信された Office 365 ログのモジュールです。現在、ユーザー、管理者、システム、ポリシーアクションのほか、Office 365 Management Activity APIによって公開されたOffice 365およびAzure ADアクティビティログからのイベントがサポートされています。 [詳細]({learnMoreLink})", - "home.tutorials.o365Logs.nameTitle": "Office 365 ログ", - "home.tutorials.o365Logs.shortDescription": "Office 365 API 経由で Office 365 アクティビティログを収集します。", - "home.tutorials.oktaLogs.artifacts.dashboards.linkLabel": "Okta 概要", - "home.tutorials.oktaLogs.longDescription": "Oktaモジュールは[Okta API](https://developer.okta.com/docs/reference/)からイベントを収集します。 特にこれは[OktaシステムログAPI](https://developer.okta.com/docs/reference/api/system-log/)からの読み取りをサポートします。 [詳細]({learnMoreLink})", - "home.tutorials.oktaLogs.nameTitle": "Okta ログ", - "home.tutorials.oktaLogs.shortDescription": "Okta API 経由で Okta システムログを収集します。", - "home.tutorials.openmetricsMetrics.longDescription": "Metricbeatモジュール「openmetrics」は、OpenMetricsの形式でメトリックを提供するエンドポイントからメトリックをフェッチします。[詳細]({learnMoreLink})", - "home.tutorials.openmetricsMetrics.nameTitle": "OpenMetrics メトリック", - "home.tutorials.openmetricsMetrics.shortDescription": "OpenMetrics 形式でメトリックを提供するエンドポイントからメトリックを取得します。", - "home.tutorials.oracleMetrics.artifacts.application.label": "Discover", - "home.tutorials.oracleMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Oraclサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.oracleMetrics.nameTitle": "Oracleメトリック", - "home.tutorials.oracleMetrics.shortDescription": "Oracleサーバーから内部メトリックを取得します。", - "home.tutorials.osqueryLogs.artifacts.dashboards.linkLabel": "Osquery コンプライアンスパック", - "home.tutorials.osqueryLogs.longDescription": "このモジュールはJSON形式で[osqueryd](https://osquery.readthedocs.io/en/latest/introduction/using-osqueryd/)で書き込まれた結果ログを収集してデコードします。osqueryd を設定するには、ご使用のオペレーティングシステムの osquery インストール手順に従い、「filesystem」ロギングドラバー(デフォルト)を構成します。 UTCタイムスタンプが有効であることを確認してください。 [詳細]({learnMoreLink})", - "home.tutorials.osqueryLogs.nameTitle": "Osquery ログ", - "home.tutorials.osqueryLogs.shortDescription": "JSON 形式で osquery を収集します。", - "home.tutorials.panwLogs.artifacts.dashboards.linkLabel": "PANW ネットワークフロー", - "home.tutorials.panwLogs.longDescription": "このモジュールは、Syslog から受信したログまたはファイルから読み取られたログを監視する Palo Alto Networks PAN-OS ファイアウォール監視ログのモジュールです。現在、トラフィックおよび脅威タイプのメッセージがサポートされています。[詳細]({learnMoreLink})", - "home.tutorials.panwLogs.nameTitle": "Palo Alto Networks PAN-OS ログ", - "home.tutorials.panwLogs.shortDescription": "Syslog またはログファイルから Palo Alto Networks PAN-OS 脅威およびトラフィックログを収集します。", - "home.tutorials.phpFpmMetrics.longDescription": "「php_fpm」Metricbeatモジュールは、PHP-FPMサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.phpFpmMetrics.nameTitle": "PHP-FPM メトリック", - "home.tutorials.phpFpmMetrics.shortDescription": "PHP-FPM から内部メトリックを取得します。", - "home.tutorials.postgresqlLogs.artifacts.dashboards.linkLabel": "PostgreSQL ログダッシュボード", - "home.tutorials.postgresqlLogs.longDescription": "「postgresql」Filebeatモジュールが、PostgreSQLにより作成されたエラーとスローログをパースします。[詳細]({learnMoreLink})", - "home.tutorials.postgresqlLogs.nameTitle": "PostgreSQL ログ", - "home.tutorials.postgresqlLogs.shortDescription": "PostgreSQL により作成されたエラーとスローログを収集しパースします。", - "home.tutorials.postgresqlMetrics.longDescription": "「postgresql」Metricbeatモジュールは、PostgreSQLサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.postgresqlMetrics.nameTitle": "PostgreSQL メトリック", - "home.tutorials.postgresqlMetrics.shortDescription": "PostgreSQL から内部メトリックを取得します。", - "home.tutorials.prometheusMetrics.artifacts.application.label": "Discover", - "home.tutorials.prometheusMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Prometheusエンドポイントからメトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.prometheusMetrics.nameTitle": "Prometheus メトリック", - "home.tutorials.prometheusMetrics.shortDescription": "Prometheus エクスポーターからメトリックを取得します。", - "home.tutorials.rabbitmqLogs.artifacts.application.label": "Discover", - "home.tutorials.rabbitmqLogs.longDescription": "このモジュールは[RabbitMQログファイル](https://www.rabbitmq.com/logging.html)を解析します [詳細]({learnMoreLink})。", - "home.tutorials.rabbitmqLogs.nameTitle": "RabbitMQ ログ", - "home.tutorials.rabbitmqLogs.shortDescription": "RabbitMQ ログを収集します。", - "home.tutorials.rabbitmqMetrics.artifacts.dashboards.linkLabel": "RabbitMQ メトリックダッシュボード", - "home.tutorials.rabbitmqMetrics.longDescription": "「rabbitmq」Metricbeatモジュールは、RabbitMQサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.rabbitmqMetrics.nameTitle": "RabbitMQ メトリック", - "home.tutorials.rabbitmqMetrics.shortDescription": "RabbitMQ サーバーから内部メトリックを取得します。", - "home.tutorials.radwareLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.radwareLogs.longDescription": "これは、SyslogまたはファイルでRadware DefenseProログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.radwareLogs.nameTitle": "Radware DefensePro ログ", - "home.tutorials.radwareLogs.shortDescription": "Syslog またはファイルから Radware DefensePro ログを収集します。", - "home.tutorials.redisenterpriseMetrics.artifacts.application.label": "Discover", - "home.tutorials.redisenterpriseMetrics.nameTitle": "Redis Enterprise メトリック", - "home.tutorials.redisenterpriseMetrics.shortDescription": "Redis Enterprise Server から監視メトリックを取得します。", - "home.tutorials.redisLogs.artifacts.dashboards.linkLabel": "Redis ログダッシュボード", - "home.tutorials.redisLogs.longDescription": "「redis」Filebeat モジュールは、Redis が作成したエラーとスローログをパースします。Redis がエラーログを作成するには、Redis 構成ファイルの「logfile」オプションが「redis-server.log」に設定されていることを確認してください。スローログは「SLOWLOG」コマンドで Redis から直接的に読み込まれます。Redis でスローログを記録するには、「slowlog-log-slower-than」オプションが設定されていることを確認してください。「slowlog」ファイルセットは実験的な機能のためご注意ください。[詳細]({learnMoreLink})", - "home.tutorials.redisLogs.nameTitle": "Redis ログ", - "home.tutorials.redisLogs.shortDescription": "Redis が作成したエラーとスローログを収集しパースします。", - "home.tutorials.redisMetrics.artifacts.dashboards.linkLabel": "Redis メトリックダッシュボード", - "home.tutorials.redisMetrics.longDescription": "「redis」Metricbeatモジュールは、Redisサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.redisMetrics.nameTitle": "Redis メトリック", - "home.tutorials.redisMetrics.shortDescription": "Redis から内部メトリックを取得します。", - "home.tutorials.santaLogs.artifacts.dashboards.linkLabel": "Santa 概要", - "home.tutorials.santaLogs.longDescription": "このモジュールは、プロセス実行を監視し、バイナリをブラックリスト/ホワイトリストに登録できるmacOS向けのセキュリティツールである[Google Santa](https://github.com/google/santa)からログを収集して解析します。[詳細]({learnMoreLink})", - "home.tutorials.santaLogs.nameTitle": "Google Santa ログ", - "home.tutorials.santaLogs.shortDescription": "MacOS でのプロセス実行に関する Google Santa ログを収集します。", - "home.tutorials.sonicwallLogs.longDescription": "これは、SyslogまたはファイルでSonicwall-FWログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.sonicwallLogs.nameTitle": "Sonicwall FW ログ", - "home.tutorials.sonicwallLogs.shortDescription": "Syslog またはファイルから Sonicwall-FW ログを収集します。", - "home.tutorials.sophosLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.sophosLogs.longDescription": "これはSophos製品用モジュールであり、Syslog形式で送信されたXG SFOSログが現在サポートされています。[詳細]({learnMoreLink})", - "home.tutorials.sophosLogs.nameTitle": "Sophos ログ", - "home.tutorials.sophosLogs.shortDescription": "Syslog で Sophos XG SFOS ログを収集します。", - "home.tutorials.squidLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.squidLogs.longDescription": "これは、SyslogまたはファイルでSquidログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.squidLogs.nameTitle": "Squid ログ", - "home.tutorials.squidLogs.shortDescription": "Syslog またはファイルから Squid ログを収集します。", - "home.tutorials.stanMetrics.artifacts.dashboards.linkLabel": "Stan メトリックダッシュボード", - "home.tutorials.stanMetrics.longDescription": "Metricbeatモジュール「stan」は、STANから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.stanMetrics.nameTitle": "STAN メトリック", - "home.tutorials.stanMetrics.shortDescription": "STAN サーバーから監視メトリックを取得します。", - "home.tutorials.statsdMetrics.longDescription": "Metricbeatモジュール「statsd」は、statsdから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.statsdMetrics.nameTitle": "statsd メトリック", - "home.tutorials.statsdMetrics.shortDescription": "statsd から監視メトリックを取得します。", - "home.tutorials.suricataLogs.artifacts.dashboards.linkLabel": "Suricata イベント概要", - "home.tutorials.suricataLogs.longDescription": "このモジュールは Suricata IDS/IPS/NSM ログ用です。[Suricata Eve JSON形式](https://suricata.readthedocs.io/en/latest/output/eve/eve-json-format.html)のログを解析します。 [詳細]({learnMoreLink})", - "home.tutorials.suricataLogs.nameTitle": "Suricata ログ", - "home.tutorials.suricataLogs.shortDescription": "Suricata IDS/IPS/NSM ログを収集します。", - "home.tutorials.systemLogs.artifacts.dashboards.linkLabel": "システム Syslog ダッシュボード", - "home.tutorials.systemLogs.longDescription": "このモジュールは、一般的なUnix/Linuxベースのディストリビューションのシステムログサービスが作成したログを収集しパースします。[詳細]({learnMoreLink})", - "home.tutorials.systemLogs.nameTitle": "システムログ", - "home.tutorials.systemLogs.shortDescription": "一般的な Unix/Linux ベースのディストリビューションのシステムログを収集します。", - "home.tutorials.systemMetrics.artifacts.dashboards.linkLabel": "システムメトリックダッシュボード", - "home.tutorials.systemMetrics.longDescription": "Metricbeat モジュール「system」は、ホストから CPU、メモリー、ネットワーク、ディスクの統計を収集します。システム全体の統計とプロセスやファイルシステムごとの統計を収集します。[詳細]({learnMoreLink})", - "home.tutorials.systemMetrics.nameTitle": "システムメトリック", - "home.tutorials.systemMetrics.shortDescription": "ホストから CPU、メモリー、ネットワーク、ディスクの統計を収集します。", - "home.tutorials.tomcatLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.tomcatLogs.longDescription": "これは、SyslogまたはファイルでApache Tomcatログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.tomcatLogs.nameTitle": "Tomcat ログ", - "home.tutorials.tomcatLogs.shortDescription": "Syslog またはファイルから Apache Tomcat ログを収集します。", - "home.tutorials.traefikLogs.artifacts.dashboards.linkLabel": "Traefik アクセスログ", - "home.tutorials.traefikLogs.longDescription": "このモジュールは[Træfik](https://traefik.io/)によって作成されたアクセスログを解析します。[詳細]({learnMoreLink})", - "home.tutorials.traefikLogs.nameTitle": "Traefik ログ", - "home.tutorials.traefikLogs.shortDescription": "Traefik アクセスログを収集します。", - "home.tutorials.traefikMetrics.longDescription": "Metricbeatモジュール「traefik」は、Traefikから監視メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.traefikMetrics.nameTitle": "Traefik メトリック", - "home.tutorials.traefikMetrics.shortDescription": "Traefik から監視メトリックを取得します。", - "home.tutorials.uptimeMonitors.artifacts.dashboards.linkLabel": "Uptime アプリ", - "home.tutorials.uptimeMonitors.longDescription": "アクティブなプロービングでサービスの稼働状況を監視します。 HeartbeatはURLのリストに基づいて、シンプルにたずねます。「稼働していますか?」と。 [詳細]({learnMoreLink})", - "home.tutorials.uptimeMonitors.nameTitle": "稼働状況監視", - "home.tutorials.uptimeMonitors.shortDescription": "サービスの稼働状況を監視します。", - "home.tutorials.uwsgiMetrics.artifacts.dashboards.linkLabel": "uWSGI メトリックダッシュボード", - "home.tutorials.uwsgiMetrics.longDescription": "「uwsgi」Metricbeatモジュールは、uWSGIサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.uwsgiMetrics.nameTitle": "uWSGI メトリック", - "home.tutorials.uwsgiMetrics.shortDescription": "uWSGI サーバーから内部メトリックを取得します。", - "home.tutorials.vsphereMetrics.artifacts.application.label": "Discover", - "home.tutorials.vsphereMetrics.longDescription": "「vsphere」Metricbeatモジュールは、vSphereクラスターから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.vsphereMetrics.nameTitle": "vSphere メトリック", - "home.tutorials.vsphereMetrics.shortDescription": "vSphere から内部メトリックを取得します。", - "home.tutorials.windowsEventLogs.artifacts.application.label": "SIEM アプリ", - "home.tutorials.windowsEventLogs.longDescription": "Winlogbeatを使用してWindows Event Logからのログを収集します。[詳細]({learnMoreLink})", - "home.tutorials.windowsEventLogs.nameTitle": "Windows イベントログ", - "home.tutorials.windowsEventLogs.shortDescription": "Windows イベントログからイベントを取得します。", - "home.tutorials.windowsMetrics.artifacts.application.label": "Discover", - "home.tutorials.windowsMetrics.longDescription": "「windows」Metricbeatモジュールは、Windowsから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.windowsMetrics.nameTitle": "Windows メトリック", - "home.tutorials.windowsMetrics.shortDescription": "Windows から内部メトリックを取得します。", - "home.tutorials.zeekLogs.artifacts.dashboards.linkLabel": "Zeek 概要", - "home.tutorials.zeekLogs.longDescription": "これは Zeek(旧称 Bro)のモジュールです。[Zeek JSON形式](https://www.zeek.org/manual/release/logs/index.html)のログを解析します。 [詳細]({learnMoreLink})", - "home.tutorials.zeekLogs.nameTitle": "Zeek ログ", - "home.tutorials.zeekLogs.shortDescription": "Zeek ネットワークセキュリティ監視ログを収集します。", - "home.tutorials.zookeeperMetrics.artifacts.application.label": "Discover", - "home.tutorials.zookeeperMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Zookeeperサーバーから内部メトリックを取得します。[詳細]({learnMoreLink})", - "home.tutorials.zookeeperMetrics.nameTitle": "Zookeeper メトリック", - "home.tutorials.zookeeperMetrics.shortDescription": "Zookeeper サーバーから内部メトリックを取得します。", - "home.tutorials.zscalerLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", - "home.tutorials.zscalerLogs.longDescription": "これは、Syslog またはファイルで Zscaler NSS ログを受信するためのモジュールです。[詳細]({learnMoreLink})", - "home.tutorials.zscalerLogs.nameTitle": "Zscaler ログ", - "home.tutorials.zscalerLogs.shortDescription": "これは、Syslog またはファイルで Zscaler NSS ログを受信するためのモジュールです。", - "home.welcomeTitle": "Elasticへようこそ", - "indexPatternEditor.aliasLabel": "エイリアス", - "indexPatternEditor.createIndex.noMatch": "名前は1つ以上のデータストリーム、インデックス、またはインデックスエイリアスと一致する必要があります。", - "indexPatternEditor.createIndexPattern.emptyState.checkDataButton": "新規データを確認", - "indexPatternEditor.createIndexPattern.emptyState.haveData": "すでにデータがある場合", - "indexPatternEditor.createIndexPattern.emptyState.integrationCardDescription": "さまざまなソースからデータを追加します。", - "indexPatternEditor.createIndexPattern.emptyState.integrationCardTitle": "統合の追加", - "indexPatternEditor.createIndexPattern.emptyState.learnMore": "詳細について", - "indexPatternEditor.createIndexPattern.emptyState.noDataTitle": "Kibanaを試しますか?まずデータが必要です。", - "indexPatternEditor.createIndexPattern.emptyState.readDocs": "ドキュメンテーションを表示", - "indexPatternEditor.createIndexPattern.emptyState.sampleDataCardDescription": "データセットとKibanaダッシュボードを読み込みます。", - "indexPatternEditor.createIndexPattern.emptyState.sampleDataCardTitle": "サンプルデータの追加", - "indexPatternEditor.createIndexPattern.emptyState.uploadCardDescription": "CSV、NDJSON、またはログファイルをインポートします。", - "indexPatternEditor.createIndexPattern.emptyState.uploadCardTitle": "ファイルをアップロード", - "indexPatternEditor.createIndexPattern.stepTime.noTimeFieldOptionLabel": "--- 時間フィルターを使用しない ---", - "indexPatternEditor.dataStreamLabel": "データストリーム", - "indexPatternEditor.editor.emptyPrompt.flyoutCloseButtonLabel": "閉じる", - "indexPatternEditor.editor.flyoutCloseButtonLabel": "閉じる", - "indexPatternEditor.editor.flyoutSaveButtonLabel": "インデックスパターンを作成", - "indexPatternEditor.editor.form.advancedSettings.hideButtonLabel": "高度な SIEM 設定の非表示化", - "indexPatternEditor.editor.form.advancedSettings.showButtonLabel": "高度なSIEM設定の表示", - "indexPatternEditor.editor.form.allowHiddenLabel": "非表示のインデックスとシステムインデックスを許可", - "indexPatternEditor.editor.form.customIdHelp": "Kibanaは各インデックスパターンの一意のIDを提供します。独自のIDを作成することもできます。", - "indexPatternEditor.editor.form.customIdLabel": "カスタムインデックスパターンID", - "indexPatternEditor.editor.form.noTimeFieldsLabel": "一致するデータストリーム、インデックス、またはインデックスエイリアスにはタイムスタンプフィールドがありません。", - "indexPatternEditor.editor.form.runtimeType.placeholderLabel": "タイムスタンプフィールドを選択", - "indexPatternEditor.editor.form.timeFieldHelp": "グローバル時間フィルターで使用するためのタイムスタンプフィールドを選択してください。", - "indexPatternEditor.editor.form.timeFieldLabel": "タイムスタンプフィールド", - "indexPatternEditor.editor.form.timestampFieldHelp": "グローバル時間フィルターで使用するためのタイムスタンプフィールドを選択してください。", - "indexPatternEditor.editor.form.timestampSelectAriaLabel": "タイムスタンプフィールド", - "indexPatternEditor.editor.form.titleLabel": "名前", - "indexPatternEditor.editor.form.TypeLabel": "インデックスパターンタイプ", - "indexPatternEditor.editor.form.typeSelectAriaLabel": "タイプフィールド", - "indexPatternEditor.emptyIndexPatternPrompt.documentation": "ドキュメンテーションを表示", - "indexPatternEditor.emptyIndexPatternPrompt.learnMore": "詳細について", - "indexPatternEditor.emptyIndexPatternPrompt.youHaveData": "Elasticsearchにデータがあります。", - "indexPatternEditor.form.allowHiddenAriaLabel": "非表示のインデックスとシステムインデックスを許可", - "indexPatternEditor.form.customIndexPatternIdLabel": "カスタムインデックスパターンID", - "indexPatternEditor.form.titleAriaLabel": "タイトルフィールド", - "indexPatternEditor.frozenLabel": "凍結", - "indexPatternEditor.indexLabel": "インデックス", - "indexPatternEditor.loadingHeader": "一致するインデックスを検索中…", - "indexPatternEditor.pagingLabel": "ページごとの行数:{perPage}", - "indexPatternEditor.requireTimestampOption.ValidationErrorMessage": "タイムスタンプフィールドを選択します。", - "indexPatternEditor.rollup.uncaughtError": "ロールアップインデックスパターンエラー:{error}", - "indexPatternEditor.rollupIndexPattern.warning.title": "ベータ機能", - "indexPatternEditor.rollupLabel": "ロールアップ", - "indexPatternEditor.saved": "Saved '{indexPatternTitle}'", - "indexPatternEditor.status.noSystemIndicesLabel": "データストリーム、インデックス、またはインデックスエイリアスがインデックスパターンと一致しません。", - "indexPatternEditor.status.noSystemIndicesWithPromptLabel": "データストリーム、インデックス、またはインデックスエイリアスがインデックスパターンと一致しません。", - "indexPatternEditor.status.notMatchLabel.notMatchDetail": "入力したインデックスパターンはデータストリーム、インデックス、またはインデックスエイリアスと一致しません。{strongIndices}と一致できます。", - "indexPatternEditor.status.notMatchLabel.notMatchNoIndicesDetail": "入力したインデックスパターンはデータストリーム、インデックス、またはインデックスエイリアスと一致しません。", - "indexPatternEditor.title": "インデックスパターンを作成", - "indexPatternEditor.typeSelect.betaLabel": "ベータ", - "indexPatternEditor.typeSelect.rollup": "ロールアップ", - "indexPatternEditor.typeSelect.rollupDescription": "要約データに制限された集約を実行します。", - "indexPatternEditor.typeSelect.rollupTitle": "ロールアップインデックスパターン", - "indexPatternEditor.typeSelect.standard": "スタンダード", - "indexPatternEditor.typeSelect.standardDescription": "すべてのデータに完全アグリゲーションを実行", - "indexPatternEditor.typeSelect.standardTitle": "標準インデックスパターン", - "indexPatternEditor.validations.titleHelpText": "複数の文字の一致にアスタリスク(*)を使用します。ペースと / ? , \" < > | 文字は使用できません。", - "indexPatternEditor.validations.titleIsRequiredErrorMessage": "名前が必要です。", - "indexPatternFieldEditor.cancelField.confirmationModal.cancelButtonLabel": "キャンセル", - "indexPatternFieldEditor.cancelField.confirmationModal.description": "フィールドの変更は破棄されます。続行しますか?", - "indexPatternFieldEditor.cancelField.confirmationModal.title": "変更を破棄", - "indexPatternFieldEditor.color.actions": "アクション", - "indexPatternFieldEditor.color.addColorButton": "色を追加", - "indexPatternFieldEditor.color.backgroundLabel": "背景色", - "indexPatternFieldEditor.color.deleteAria": "削除", - "indexPatternFieldEditor.color.deleteTitle": "色のフォーマットを削除", - "indexPatternFieldEditor.color.exampleLabel": "例", - "indexPatternFieldEditor.color.patternLabel": "パターン(正規表現)", - "indexPatternFieldEditor.color.rangeLabel": "範囲(min:max)", - "indexPatternFieldEditor.color.textColorLabel": "文字の色", - "indexPatternFieldEditor.createField.flyoutAriaLabel": "フィールドを作成", - "indexPatternFieldEditor.date.documentationLabel": "ドキュメント", - "indexPatternFieldEditor.date.momentLabel": "Moment.jsのフォーマットパターン(デフォルト:{defaultPattern})", - "indexPatternFieldEditor.defaultErrorMessage": "このフォーマット構成の使用を試みた際にエラーが発生しました:{message}", - "indexPatternFieldEditor.defaultFormatDropDown": "- デフォルト -", - "indexPatternFieldEditor.defaultFormatHeader": "フォーマット(デフォルト:{defaultFormat})", - "indexPatternFieldEditor.deleteField.savedHeader": "「{fieldName}」が保存されました", - "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.cancelButtonLabel": "キャンセル", - "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.removeButtonLabel": "フィールドの削除", - "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.removeMultipleButtonLabel": "フィールドの削除", - "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.saveButtonLabel": "変更を保存", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.deleteMultipleTitle": "{count}個のフィールドを削除", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.deleteSingleTitle": "フィールド'{name}'を削除", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.multipleDeletionDescription": "これらのランタイムフィールドを削除しようとしています。", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.typeConfirm": "REMOVEと入力すると確認します", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.warningChangingFields": "名前または型を変更すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", - "indexPatternFieldEditor.deleteRuntimeField.confirmModal.warningRemovingFields": "フィールドを削除すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", - "indexPatternFieldEditor.duration.decimalPlacesLabel": "小数部分の桁数", - "indexPatternFieldEditor.duration.includeSpace": "サフィックスと値の間にスペースを入れる", - "indexPatternFieldEditor.duration.inputFormatLabel": "インプット形式", - "indexPatternFieldEditor.duration.outputFormatLabel": "アウトプット形式", - "indexPatternFieldEditor.duration.showSuffixLabel": "接尾辞を表示", - "indexPatternFieldEditor.duration.showSuffixLabel.short": "短縮サフィックスを使用", - "indexPatternFieldEditor.durationErrorMessage": "小数部分の桁数は0から20までの間で指定する必要があります", - "indexPatternFieldEditor.editField.flyoutAriaLabel": "{fieldName} フィールドの編集", - "indexPatternFieldEditor.editor.flyoutCancelButtonLabel": "キャンセル", - "indexPatternFieldEditor.editor.flyoutDefaultTitle": "フィールドを作成", - "indexPatternFieldEditor.editor.flyoutEditFieldSubtitle": "インデックスパターン:{patternName}", - "indexPatternFieldEditor.editor.flyoutEditFieldTitle": "「{fieldName}」フィールドの編集", - "indexPatternFieldEditor.editor.flyoutSaveButtonLabel": "保存", - "indexPatternFieldEditor.editor.form.advancedSettings.hideButtonLabel": "高度な SIEM 設定の非表示化", - "indexPatternFieldEditor.editor.form.advancedSettings.showButtonLabel": "高度なSIEM設定の表示", - "indexPatternFieldEditor.editor.form.changeWarning": "名前または型を変更すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", - "indexPatternFieldEditor.editor.form.customLabelDescription": "Discover、Maps、Visualizeでフィールド名の代わりに表示するラベルを作成します。長いフィールド名を短くする際に役立ちます。 クエリとフィルターは元のフィールド名を使用します。", - "indexPatternFieldEditor.editor.form.customLabelLabel": "カスタムラベル", - "indexPatternFieldEditor.editor.form.customLabelTitle": "カスタムラベルを設定", - "indexPatternFieldEditor.editor.form.defineFieldLabel": "スクリプトを定義", - "indexPatternFieldEditor.editor.form.fieldShadowingCalloutDescription": "このフィールドはマッピングされたフィールドの名前を共有します。このフィールドの値は検索結果に返されます。", - "indexPatternFieldEditor.editor.form.fieldShadowingCalloutTitle": "フィールドシャドーイング", - "indexPatternFieldEditor.editor.form.formatDescription": "値を表示する任意の形式を設定します。形式を変更すると値に影響し、Discoverでのハイライトができない可能性があります。", - "indexPatternFieldEditor.editor.form.formatTitle": "フォーマットの設定", - "indexPatternFieldEditor.editor.form.nameAriaLabel": "名前フィールド", - "indexPatternFieldEditor.editor.form.nameLabel": "名前", - "indexPatternFieldEditor.editor.form.popularityDescription": "ポピュラリティを調整し、フィールドリストでフィールドを上下に表示させます。 デフォルトでは、Discoverは選択の多いものから選択の少ないものの順に表示します。", - "indexPatternFieldEditor.editor.form.popularityLabel": "利用頻度", - "indexPatternFieldEditor.editor.form.popularityTitle": "ポピュラリティ", - "indexPatternFieldEditor.editor.form.runtimeType.placeholderLabel": "タイプを選択", - "indexPatternFieldEditor.editor.form.runtimeTypeLabel": "型", - "indexPatternFieldEditor.editor.form.script.learnMoreLinkText": "スクリプト構文の詳細を参照してください。", - "indexPatternFieldEditor.editor.form.scriptEditor.compileErrorMessage": "Painlessスクリプトのコンパイルエラー", - "indexPatternFieldEditor.editor.form.scriptEditorAriaLabel": "スクリプトエディター", - "indexPatternFieldEditor.editor.form.source.scriptFieldHelpText": "スクリプトがないランタイムフィールドは、{source}から値を取得します。フィールドが_sourceに存在しない場合は、検索リクエストは値を返しません。{learnMoreLink}", - "indexPatternFieldEditor.editor.form.typeSelectAriaLabel": "タイプ選択", - "indexPatternFieldEditor.editor.form.validations.customLabelIsRequiredErrorMessage": "フィールドにラベルを付けます。", - "indexPatternFieldEditor.editor.form.validations.nameIsRequiredErrorMessage": "名前が必要です。", - "indexPatternFieldEditor.editor.form.validations.popularityGreaterThan0ErrorMessage": "ポピュラリティはゼロ以上でなければなりません。", - "indexPatternFieldEditor.editor.form.validations.popularityIsRequiredErrorMessage": "フィールドにポピュラリティを割り当てます。", - "indexPatternFieldEditor.editor.form.validations.scriptIsRequiredErrorMessage": "フィールド値を設定するには、スクリプトが必要です。", - "indexPatternFieldEditor.editor.form.valueDescription": "{source}の同じ名前のフィールドから取得するのではなく、フィールドの値を設定します。", - "indexPatternFieldEditor.editor.form.valueTitle": "値を設定", - "indexPatternFieldEditor.editor.runtimeFieldsEditor.existRuntimeFieldNamesValidationErrorMessage": "この名前のフィールドはすでに存在します。", - "indexPatternFieldEditor.fieldPreview.documentIdField.label": "ドキュメントID", - "indexPatternFieldEditor.fieldPreview.documentIdField.loadDocumentsFromCluster": "クラスターからドキュメントを読み込む", - "indexPatternFieldEditor.fieldPreview.documentNav.nextArialabel": "次のドキュメント", - "indexPatternFieldEditor.fieldPreview.documentNav.previousArialabel": "前のドキュメント", - "indexPatternFieldEditor.fieldPreview.emptyPromptDescription": "既存のフィールドの名前を入力するか、スクリプトを定義して、計算された出力のプレビューを表示します。", - "indexPatternFieldEditor.fieldPreview.emptyPromptTitle": "プレビュー", - "indexPatternFieldEditor.fieldPreview.error.documentNotFoundDescription": "ドキュメントIDが見つかりません", - "indexPatternFieldEditor.fieldPreview.errorCallout.title": "プレビューエラー", - "indexPatternFieldEditor.fieldPreview.errorTitle": "フィールドプレビューを読み込めませんでした", - "indexPatternFieldEditor.fieldPreview.filterFieldsPlaceholder": "フィールドのフィルタリング", - "indexPatternFieldEditor.fieldPreview.pinFieldButtonLabel": "フィールドを固定", - "indexPatternFieldEditor.fieldPreview.searchResult.emptyPrompt.clearSearchButtonLabel": "検索のクリア", - "indexPatternFieldEditor.fieldPreview.searchResult.emptyPromptTitle": "このインデックスパターンには一致するフィールドがありません", - "indexPatternFieldEditor.fieldPreview.showLessFieldsButtonLabel": "簡易表示", - "indexPatternFieldEditor.fieldPreview.showMoreFieldsButtonLabel": "詳細表示", - "indexPatternFieldEditor.fieldPreview.subTitle": "開始:{from}", - "indexPatternFieldEditor.fieldPreview.subTitle.customData": "カスタムデータ", - "indexPatternFieldEditor.fieldPreview.title": "プレビュー", - "indexPatternFieldEditor.fieldPreview.updatingPreviewLabel": "更新中...", - "indexPatternFieldEditor.fieldPreview.viewImageButtonLabel": "画像を表示", - "indexPatternFieldEditor.formatHeader": "フォーマット", - "indexPatternFieldEditor.histogram.histogramAsNumberLabel": "アグリゲーションされた数値形式", - "indexPatternFieldEditor.histogram.numeralLabel": "数値形式パターン(任意)", - "indexPatternFieldEditor.histogram.subFormat.bytes": "バイト", - "indexPatternFieldEditor.histogram.subFormat.number": "数字", - "indexPatternFieldEditor.histogram.subFormat.percent": "割合(%)", - "indexPatternFieldEditor.noSuchFieldName": "フィールド名'{fieldName}'はインデックスパターンで見つかりません", - "indexPatternFieldEditor.number.documentationLabel": "ドキュメント", - "indexPatternFieldEditor.number.numeralLabel": "Numeral.js のフォーマットパターン (デフォルト: {defaultPattern})", - "indexPatternFieldEditor.samples.inputHeader": "インプット", - "indexPatternFieldEditor.samples.outputHeader": "アウトプット", - "indexPatternFieldEditor.samplesHeader": "サンプル", - "indexPatternFieldEditor.save.deleteErrorTitle": "フィールド削除を保存できませんでした", - "indexPatternFieldEditor.save.errorTitle": "フィールド変更を保存できませんでした", - "indexPatternFieldEditor.saveRuntimeField.confirmationModal.cancelButtonLabel": "キャンセル", - "indexPatternFieldEditor.saveRuntimeField.confirmModal.title": "変更を'{name}'に保存", - "indexPatternFieldEditor.saveRuntimeField.confirmModal.typeConfirm": "続行するにはCHANGEと入力します", - "indexPatternFieldEditor.staticLookup.actions": "アクション", - "indexPatternFieldEditor.staticLookup.addEntryButton": "エントリーを追加", - "indexPatternFieldEditor.staticLookup.deleteAria": "削除", - "indexPatternFieldEditor.staticLookup.deleteTitle": "エントリーの削除", - "indexPatternFieldEditor.staticLookup.keyLabel": "キー", - "indexPatternFieldEditor.staticLookup.leaveBlankPlaceholder": "値をそのままにするには空欄にします", - "indexPatternFieldEditor.staticLookup.unknownKeyLabel": "不明なキーの値", - "indexPatternFieldEditor.staticLookup.valueLabel": "値", - "indexPatternFieldEditor.string.transformLabel": "変換", - "indexPatternFieldEditor.truncate.lengthLabel": "フィールドの長さ", - "indexPatternFieldEditor.url.heightLabel": "高さ", - "indexPatternFieldEditor.url.labelTemplateHelpText": "ラベルテンプレートのヘルプ", - "indexPatternFieldEditor.url.labelTemplateLabel": "ラベルテンプレート", - "indexPatternFieldEditor.url.offLabel": "オフ", - "indexPatternFieldEditor.url.onLabel": "オン", - "indexPatternFieldEditor.url.openTabLabel": "新規タブで開く", - "indexPatternFieldEditor.url.template.helpLinkText": "URLテンプレートのヘルプ", - "indexPatternFieldEditor.url.typeLabel": "型", - "indexPatternFieldEditor.url.urlTemplateLabel": "URLテンプレート", - "indexPatternFieldEditor.url.widthLabel": "幅", - "indexPatternManagement.actions.cancelButton": "キャンセル", - "indexPatternManagement.actions.createButton": "フィールドを作成", - "indexPatternManagement.actions.deleteButton": "削除", - "indexPatternManagement.actions.saveButton": "フィールドを保存", - "indexPatternManagement.createHeader": "スクリプトフィールドを作成", - "indexPatternManagement.customLabel": "カスタムラベル", - "indexPatternManagement.defaultFormatDropDown": "- デフォルト -", - "indexPatternManagement.defaultFormatHeader": "フォーマット(デフォルト:{defaultFormat})", - "indexPatternManagement.deleteField.cancelButton": "キャンセル", - "indexPatternManagement.deleteField.deleteButton": "削除", - "indexPatternManagement.deleteField.deletedHeader": "「{fieldName}」が削除されました", - "indexPatternManagement.deleteField.savedHeader": "「{fieldName}」が保存されました", - "indexPatternManagement.deleteFieldHeader": "フィールド「{fieldName}」を削除", - "indexPatternManagement.deleteFieldLabel": "削除されたフィールドは復元できません。{separator}続行してよろしいですか?", - "indexPatternManagement.disabledCallOutHeader": "スクリプティングが無効です", - "indexPatternManagement.disabledCallOutLabel": "Elasticsearchでのすべてのインラインスクリプティングが無効になっています。Kibanaでスクリプトフィールドを使用するには、インラインスクリプティングを有効にする必要があります。", - "indexPatternManagement.editHeader": "{fieldName}を編集", - "indexPatternManagement.editIndexPattern.deleteButton": "削除", - "indexPatternManagement.editIndexPattern.deprecation": "スクリプトフィールドは廃止予定です。代わりに{runtimeDocs}を使用してください。", - "indexPatternManagement.editIndexPattern.fields.addFieldButtonLabel": "フィールドの追加", - "indexPatternManagement.editIndexPattern.fields.allLangsDropDown": "すべての言語", - "indexPatternManagement.editIndexPattern.fields.allTypesDropDown": "すべてのフィールドタイプ", - "indexPatternManagement.editIndexPattern.fields.filterAria": "フィールドタイプをフィルター", - "indexPatternManagement.editIndexPattern.fields.filterPlaceholder": "検索", - "indexPatternManagement.editIndexPattern.fields.searchAria": "検索フィールド", - "indexPatternManagement.editIndexPattern.fields.table.additionalInfoAriaLabel": "追加フィールド情報", - "indexPatternManagement.editIndexPattern.fields.table.aggregatableDescription": "これらのフィールドはビジュアライゼーションの集約に使用できます", - "indexPatternManagement.editIndexPattern.fields.table.aggregatableLabel": "集約可能", - "indexPatternManagement.editIndexPattern.fields.table.customLabelTooltip": "フィールドのカスタムラベル。", - "indexPatternManagement.editIndexPattern.fields.table.deleteDescription": "削除", - "indexPatternManagement.editIndexPattern.fields.table.deleteLabel": "削除", - "indexPatternManagement.editIndexPattern.fields.table.editDescription": "編集", - "indexPatternManagement.editIndexPattern.fields.table.editLabel": "編集", - "indexPatternManagement.editIndexPattern.fields.table.excludedDescription": "取得の際に_sourceから除外されるフィールドです", - "indexPatternManagement.editIndexPattern.fields.table.excludedLabel": "除外", - "indexPatternManagement.editIndexPattern.fields.table.formatHeader": "フォーマット", - "indexPatternManagement.editIndexPattern.fields.table.isAggregatableAria": "は集約可能です", - "indexPatternManagement.editIndexPattern.fields.table.isExcludedAria": "は除外されています", - "indexPatternManagement.editIndexPattern.fields.table.isSearchableAria": "は検索可能です", - "indexPatternManagement.editIndexPattern.fields.table.multiTypeAria": "複数タイプのフィールド", - "indexPatternManagement.editIndexPattern.fields.table.multiTypeTooltip": "このフィールドのタイプはインデックスごとに変わります。多くの分析機能には使用できません。", - "indexPatternManagement.editIndexPattern.fields.table.nameHeader": "名前", - "indexPatternManagement.editIndexPattern.fields.table.primaryTimeAriaLabel": "プライマリ時間フィールド", - "indexPatternManagement.editIndexPattern.fields.table.primaryTimeTooltip": "このフィールドはイベントの発生時刻を表します。", - "indexPatternManagement.editIndexPattern.fields.table.runtimeIconTipTitle": "ランタイムフィールド", - "indexPatternManagement.editIndexPattern.fields.table.searchableDescription": "これらのフィールドはフィルターバーで使用できます", - "indexPatternManagement.editIndexPattern.fields.table.searchableHeader": "検索可能", - "indexPatternManagement.editIndexPattern.fields.table.typeHeader": "型", - "indexPatternManagement.editIndexPattern.list.DateHistogramDelaySummary": "遅延:{delay},", - "indexPatternManagement.editIndexPattern.list.dateHistogramSummary": "{aggName} (間隔:{interval}, {delay} {time_zone})", - "indexPatternManagement.editIndexPattern.list.defaultIndexPatternListName": "デフォルト", - "indexPatternManagement.editIndexPattern.list.histogramSummary": "{aggName} (間隔:{interval})", - "indexPatternManagement.editIndexPattern.list.rollupIndexPatternListName": "ロールアップ", - "indexPatternManagement.editIndexPattern.mappingConflictHeader": "マッピングの矛盾", - "indexPatternManagement.editIndexPattern.scripted.addFieldButton": "スクリプトフィールドを追加", - "indexPatternManagement.editIndexPattern.scripted.deleteField.cancelButton": "キャンセル", - "indexPatternManagement.editIndexPattern.scripted.deleteField.deleteButton": "削除", - "indexPatternManagement.editIndexPattern.scripted.deleteFieldLabel": "スクリプトフィールド「{fieldName}」を削除しますか?", - "indexPatternManagement.editIndexPattern.scripted.deprecationLangHeader": "廃止された言語が使用されています", - "indexPatternManagement.editIndexPattern.scripted.deprecationLangLabel.deprecationLangDetail": "次の廃止された言語が使用されています。{deprecatedLangsInUse}これらの言語は、KibanaとElasticsearchの次のメジャーバージョンでサポートされなくなります。問題を避けるため、スクリプトフィールドを{link}に変換してください。", - "indexPatternManagement.editIndexPattern.scripted.deprecationLangLabel.painlessDescription": "Painless", - "indexPatternManagement.editIndexPattern.scripted.newFieldPlaceholder": "新規スクリプトフィールド", - "indexPatternManagement.editIndexPattern.scripted.table.deleteDescription": "このフィールドを削除します", - "indexPatternManagement.editIndexPattern.scripted.table.deleteHeader": "削除", - "indexPatternManagement.editIndexPattern.scripted.table.editDescription": "このフィールドを編集します", - "indexPatternManagement.editIndexPattern.scripted.table.editHeader": "編集", - "indexPatternManagement.editIndexPattern.scripted.table.formatDescription": "フィールドに使用されているフォーマットです", - "indexPatternManagement.editIndexPattern.scripted.table.formatHeader": "フォーマット", - "indexPatternManagement.editIndexPattern.scripted.table.langDescription": "フィールドに使用されている言語です", - "indexPatternManagement.editIndexPattern.scripted.table.langHeader": "言語", - "indexPatternManagement.editIndexPattern.scripted.table.nameDescription": "フィールドの名前です", - "indexPatternManagement.editIndexPattern.scripted.table.nameHeader": "名前", - "indexPatternManagement.editIndexPattern.scripted.table.scriptDescription": "フィールドのスクリプトです", - "indexPatternManagement.editIndexPattern.scripted.table.scriptHeader": "スクリプト", - "indexPatternManagement.editIndexPattern.scriptedLabel": "スクリプトフィールドはビジュアライゼーションで使用され、ドキュメントに表示できます。ただし、検索することはできません。", - "indexPatternManagement.editIndexPattern.source.addButtonLabel": "追加", - "indexPatternManagement.editIndexPattern.source.deleteFilter.cancelButtonLabel": "キャンセル", - "indexPatternManagement.editIndexPattern.source.deleteFilter.deleteButtonLabel": "削除", - "indexPatternManagement.editIndexPattern.source.deleteSourceFilterLabel": "フィールドフィルター「{value}」を削除しますか?", - "indexPatternManagement.editIndexPattern.source.noteLabel": "下の表で、マルチフィールドが一致として誤って表示されます。これらのフィルターは、オリジナルのソースドキュメントのフィールドのみに適用されるため、一致するマルチフィールドはフィルタリングされません。", - "indexPatternManagement.editIndexPattern.source.table.cancelAria": "キャンセル", - "indexPatternManagement.editIndexPattern.source.table.deleteAria": "削除", - "indexPatternManagement.editIndexPattern.source.table.editAria": "編集", - "indexPatternManagement.editIndexPattern.source.table.filterDescription": "フィルター名", - "indexPatternManagement.editIndexPattern.source.table.filterHeader": "フィルター", - "indexPatternManagement.editIndexPattern.source.table.matchesDescription": "フィールドに使用されている言語です", - "indexPatternManagement.editIndexPattern.source.table.matchesHeader": "一致", - "indexPatternManagement.editIndexPattern.source.table.notMatchedLabel": "ソースフィルターが既知のフィールドと一致しません。", - "indexPatternManagement.editIndexPattern.source.table.saveAria": "保存", - "indexPatternManagement.editIndexPattern.sourceLabel": "フィールドフィルターは、ドキュメントの取得時に 1 つまたは複数のフィールドを除外するのに使用される場合もあります。これは Discover アプリでのドキュメントの表示中、またはダッシュボードアプリの保存された検索の結果を表示する表で起こります。ドキュメントに大きなフィールドや重要ではないフィールドが含まれている場合、この程度の低いレベルでフィルターにより除外すると良いかもしれません。", - "indexPatternManagement.editIndexPattern.sourcePlaceholder": "フィールドフィルター、ワイルドカード使用可(例:「user*」と入力して「user」で始まるフィールドをフィルタリング)", - "indexPatternManagement.editIndexPattern.tabs.fieldsHeader": "フィールド", - "indexPatternManagement.editIndexPattern.tabs.scriptedHeader": "スクリプトフィールド", - "indexPatternManagement.editIndexPattern.tabs.sourceHeader": "フィールドフィルター", - "indexPatternManagement.editIndexPattern.timeFilterHeader": "時刻フィールド:「{timeFieldName}」", - "indexPatternManagement.editIndexPattern.timeFilterLabel.mappingAPILink": "フィールドマッピング", - "indexPatternManagement.editIndexPattern.timeFilterLabel.timeFilterDetail": "{indexPatternTitle}でフィールドを表示して編集します。型や検索可否などのフィールド属性はElasticsearchで{mappingAPILink}に基づきます。", - "indexPatternManagement.fieldTypeConflict": "フィールドタイプの矛盾", - "indexPatternManagement.formatHeader": "フォーマット", - "indexPatternManagement.formatLabel": "フォーマットは、特定の値の表示形式を管理できます。また、値を完全に変更したり、Discover でのハイライト機能を無効にしたりすることも可能です。", - "indexPatternManagement.header.runtimeLink": "ランタイムフィールド", - "indexPatternManagement.indexNameLabel": "インデックス名", - "indexPatternManagement.indexPatterns.badge.readOnly.text": "読み取り専用", - "indexPatternManagement.indexPatterns.createFieldBreadcrumb": "フィールドを作成", - "indexPatternManagement.labelHelpText": "このフィールドが Discover、Maps、Visualize に表示されるときに使用するカスタムラベルを設定します。現在、クエリとフィルターはカスタムラベルをサポートせず、元のフィールド名が使用されます。", - "indexPatternManagement.languageLabel": "言語", - "indexPatternManagement.mappingConflictLabel.mappingConflictDetail": "{mappingConflict} {fieldName}というフィールドはすでに存在します。スクリプトフィールドに同じ名前を付けると、同時に両方のフィールドにクエリが実行できなくなります。", - "indexPatternManagement.mappingConflictLabel.mappingConflictLabel": "マッピングの矛盾:", - "indexPatternManagement.multiTypeLabelDesc": "このフィールドのタイプはインデックスごとに変わります。多くの分析機能には使用できません。タイプごとのインデックスは次のとおりです。", - "indexPatternManagement.nameErrorMessage": "名前が必要です", - "indexPatternManagement.nameLabel": "名前", - "indexPatternManagement.namePlaceholder": "新規スクリプトフィールド", - "indexPatternManagement.popularityLabel": "利用頻度", - "indexPatternManagement.script.accessWithLabel": "{code} でフィールドにアクセスします。", - "indexPatternManagement.script.getHelpLabel": "構文のヒントを得たり、スクリプトの結果をプレビューしたりできます。", - "indexPatternManagement.scriptedFieldsDeprecatedBody": "柔軟性とPainlessスクリプトサポートを強化するには、{runtimeDocs}を使用してください。", - "indexPatternManagement.scriptedFieldsDeprecatedTitle": "スクリプトフィールドは廃止予定です。", - "indexPatternManagement.scriptingLanguages.errorFetchingToastDescription": "Elasticsearchから利用可能なスクリプト言語の取得中にエラーが発生しました", - "indexPatternManagement.scriptInvalidErrorMessage": "スクリプトが無効です。詳細については、スクリプトプレビューを表示してください", - "indexPatternManagement.scriptLabel": "スクリプト", - "indexPatternManagement.scriptRequiredErrorMessage": "スクリプトが必要です", - "indexPatternManagement.syntax.default.formatLabel": "doc['some_field'].value", - "indexPatternManagement.syntax.defaultLabel.defaultDetail": "デフォルトで、KibanaのスクリプトフィールドはElasticsearchでの使用を目的に特別に開発されたシンプルでセキュアなスクリプト言語の{painless}を使用します。ドキュメントの値にアクセスするには次のフォーマットを使用します。", - "indexPatternManagement.syntax.defaultLabel.painlessLink": "Painless", - "indexPatternManagement.syntax.kibanaLabel": "現在、Kibanaでは、作成するPainlessスクリプトに特別な制限が1つ設定されています。Named関数を含めることができません。", - "indexPatternManagement.syntax.lucene.commonLabel.commonDetail": "Kibanaの旧バージョンからのアップグレードですか?おなじみの{lucene}は引き続きご利用いただけます。Lucene式はJavaScriptと非常に似ていますが、基本的な計算、ビット処理、比較オペレーション用に開発されたものです。", - "indexPatternManagement.syntax.lucene.commonLabel.luceneLink": "Lucene表現", - "indexPatternManagement.syntax.lucene.limits.fieldsLabel": "格納されたフィールドは利用できません", - "indexPatternManagement.syntax.lucene.limits.sparseLabel": "フィールドがまばらな(ドキュメントの一部にしか値がない)場合、値がないドキュメントには 0 の値が入力されます", - "indexPatternManagement.syntax.lucene.limits.typesLabel": "数字、ブール、日付、geo_pointフィールドのみアクセスできます", - "indexPatternManagement.syntax.lucene.limitsLabel": "Lucene表現には次のいくつかの制限があります。", - "indexPatternManagement.syntax.lucene.operations.arithmeticLabel": "算術演算子:{operators}", - "indexPatternManagement.syntax.lucene.operations.bitwiseLabel": "ビット処理演算子:{operators}", - "indexPatternManagement.syntax.lucene.operations.booleanLabel": "ブール演算子(三項演算子を含む):{operators}", - "indexPatternManagement.syntax.lucene.operations.comparisonLabel": "比較演算子:{operators}", - "indexPatternManagement.syntax.lucene.operations.distanceLabel": "距離関数:{operators}", - "indexPatternManagement.syntax.lucene.operations.mathLabel": "一般的な関数:{operators}", - "indexPatternManagement.syntax.lucene.operations.miscellaneousLabel": "その他関数:{operators}", - "indexPatternManagement.syntax.lucene.operations.trigLabel": "三角ライブラリ関数:{operators}", - "indexPatternManagement.syntax.lucene.operationsLabel": "Lucene表現で利用可能なオペレーションは次のとおりです。", - "indexPatternManagement.syntax.painlessLabel.javaAPIsLink": "ネイティブJava API", - "indexPatternManagement.syntax.painlessLabel.painlessDetail": "Painlessは非常に強力かつ使いやすい言語です。多くの{javaAPIs}にアクセスすることができます。{syntax}について読めば、すぐに習得することができます!", - "indexPatternManagement.syntax.painlessLabel.syntaxLink": "構文", - "indexPatternManagement.syntaxHeader": "構文", - "indexPatternManagement.testScript.errorMessage": "スクリプト内にエラーがあります", - "indexPatternManagement.testScript.fieldsLabel": "追加フィールド", - "indexPatternManagement.testScript.fieldsPlaceholder": "選択してください...", - "indexPatternManagement.testScript.instructions": "スクリプトを実行すると、最初の検索結果10件をプレビューできます。追加フィールドを選択して結果に含み、コンテキストをさらに加えたり、特定の文書上でフィルターにクエリを追加したりすることもできます。", - "indexPatternManagement.testScript.resultsLabel": "最初の10件", - "indexPatternManagement.testScript.resultsTitle": "結果を表示", - "indexPatternManagement.testScript.submitButtonLabel": "スクリプトを実行", - "indexPatternManagement.typeLabel": "型", - "indexPatternManagement.warningCallOutLabel.callOutDetail": "この機能を使う前に、{scripFields}と{scriptsInAggregation}についてよく理解するようにしてください。計算値の表示と集約にスクリプトフィールドが使用できます。そのため非常に遅い場合があり、適切に行わないとKibanaが使用できなくなる可能性もあります。", - "indexPatternManagement.warningCallOutLabel.runtimeLink": "ランタイムフィールド", - "indexPatternManagement.warningCallOutLabel.scripFieldsLink": "スクリプトフィールド", - "indexPatternManagement.warningCallOutLabel.scriptsInAggregationLink": "集約におけるスクリプト", - "indexPatternManagement.warningHeader": "廃止警告:", - "indexPatternManagement.warningLabel.painlessLinkLabel": "Painless", - "indexPatternManagement.warningLabel.warningDetail": "{language}は廃止され、KibanaとElasticsearchの次のメジャーバージョンではサポートされなくなります。新規スクリプトフィールドには{painlessLink}を使うことをお勧めします。", - "inputControl.control.noIndexPatternTooltip": "index-pattern id が見つかりませんでした:{indexPatternId}.", - "inputControl.control.notInitializedTooltip": "コントロールが初期化されていません", - "inputControl.control.noValuesDisableTooltip": "「{indexPatternName}」インデックスパターンでいずれのドキュメントにも存在しない「{fieldName}」フィールドがフィルターの対象になっています。異なるフィールドを選択するか、このフィールドに値が入力されているドキュメントをインデックスしてください。", - "inputControl.editor.controlEditor.controlLabel": "コントロールラベル", - "inputControl.editor.controlEditor.moveControlDownAriaLabel": "コントロールを下に移動", - "inputControl.editor.controlEditor.moveControlUpAriaLabel": "コントロールを上に移動", - "inputControl.editor.controlEditor.removeControlAriaLabel": "コントロールを削除", - "inputControl.editor.controlsTab.addButtonLabel": "追加", - "inputControl.editor.controlsTab.select.addControlAriaLabel": "コントロールを追加", - "inputControl.editor.controlsTab.select.controlTypeAriaLabel": "コントロールタイプを選択してください", - "inputControl.editor.controlsTab.select.listDropDownOptionLabel": "オプションリスト", - "inputControl.editor.controlsTab.select.rangeDropDownOptionLabel": "範囲スライダー", - "inputControl.editor.fieldSelect.fieldLabel": "フィールド", - "inputControl.editor.fieldSelect.selectFieldPlaceholder": "フィールドを選択してください...", - "inputControl.editor.indexPatternSelect.patternLabel": "インデックスパターン", - "inputControl.editor.indexPatternSelect.patternPlaceholder": "インデックスパターンを選択してください...", - "inputControl.editor.listControl.dynamicOptions.stringFieldDescription": "「文字列」フィールドでのみ利用可能", - "inputControl.editor.listControl.dynamicOptions.updateDescription": "ユーザーインプットに対する更新オプション", - "inputControl.editor.listControl.dynamicOptionsLabel": "ダイナミックオプション", - "inputControl.editor.listControl.multiselectDescription": "複数選択を許可", - "inputControl.editor.listControl.multiselectLabel": "複数選択", - "inputControl.editor.listControl.parentDescription": "オプションは親コントロールの値がベースになっています。親が設定されていない場合は無効です。", - "inputControl.editor.listControl.parentLabel": "親コントロール", - "inputControl.editor.listControl.sizeDescription": "オプション数", - "inputControl.editor.listControl.sizeLabel": "サイズ", - "inputControl.editor.optionsTab.pinFiltersLabel": "すべてのアプリケーションのフィルターをピン付け", - "inputControl.editor.optionsTab.updateFilterLabel": "変更するごとに Kibana フィルターを更新", - "inputControl.editor.optionsTab.useTimeFilterLabel": "時間フィルターを使用", - "inputControl.editor.rangeControl.decimalPlacesLabel": "小数部分の桁数", - "inputControl.editor.rangeControl.stepSizeLabel": "ステップサイズ", - "inputControl.function.help": "インプットコントロールビジュアライゼーション", - "inputControl.listControl.disableTooltip": "「{label}」が設定されるまで無効です。", - "inputControl.listControl.unableToFetchTooltip": "用語を取得できません、エラー:{errorMessage}", - "inputControl.rangeControl.unableToFetchTooltip": "範囲(最低値と最高値)を取得できません、エラー: {errorMessage}", - "inputControl.register.controlsDescription": "ドロップダウンメニューと範囲スライダーをダッシュボードに追加します。", - "inputControl.register.controlsTitle": "コントロール", - "inputControl.register.tabs.controlsTitle": "コントロール", - "inputControl.register.tabs.optionsTitle": "オプション", - "inputControl.vis.inputControlVis.applyChangesButtonLabel": "変更を適用", - "inputControl.vis.inputControlVis.cancelChangesButtonLabel": "変更をキャンセル", - "inputControl.vis.inputControlVis.clearFormButtonLabel": "用語を消去", - "inputControl.vis.listControl.partialResultsWarningMessage": "リクエストに長くかかり過ぎているため、用語リストが不完全な可能性があります。完全な結果を得るには、kibana.yml の自動完了設定を調整してください。", - "inputControl.vis.listControl.selectPlaceholder": "選択してください...", - "inputControl.vis.listControl.selectTextPlaceholder": "選択してください...", - "inspector.closeButton": "インスペクターを閉じる", - "inspector.reqTimestampDescription": "リクエストの開始が記録された時刻です", - "inspector.reqTimestampKey": "リクエストのタイムスタンプ", - "inspector.requests.copyToClipboardLabel": "クリップボードにコピー", - "inspector.requests.descriptionRowIconAriaLabel": "説明", - "inspector.requests.failedLabel": " (失敗)", - "inspector.requests.noRequestsLoggedDescription.elementHasNotLoggedAnyRequestsText": "エレメントが(まだ)リクエストを記録していません。", - "inspector.requests.noRequestsLoggedDescription.whatDoesItUsuallyMeanText": "これは通常、データを取得する必要がないか、エレメントがまだデータの取得を開始していないことを意味します。", - "inspector.requests.noRequestsLoggedTitle": "リクエストが記録されていません", - "inspector.requests.requestFailedTooltipTitle": "リクエストに失敗しました", - "inspector.requests.requestInProgressAriaLabel": "リクエストが進行中", - "inspector.requests.requestsDescriptionTooltip": "データを収集したリクエストを表示します", - "inspector.requests.requestsTitle": "リクエスト", - "inspector.requests.requestSucceededTooltipTitle": "リクエスト成功", - "inspector.requests.requestTabLabel": "リクエスト", - "inspector.requests.requestTimeLabel": "{requestTime}ms", - "inspector.requests.requestTooltipDescription": "リクエストの合計所要時間です。", - "inspector.requests.requestWasMadeDescription.requestHadFailureText": "、{failedCount} 件に失敗がありました", - "inspector.requests.responseTabLabel": "応答", - "inspector.requests.searchSessionId": "セッション ID を検索:{searchSessionId}", - "inspector.requests.statisticsTabLabel": "統計", - "inspector.title": "インスペクター", - "inspector.view": "{viewName} を表示", - "kibana_legacy.notify.toaster.errorStatusMessage": "エラー {errStatus} {errStatusText}: {errMessage}", - "kibana_legacy.notify.toaster.unavailableServerErrorMessage": "HTTP リクエストで接続に失敗しました。Kibana サーバーが実行されていて、ご使用のブラウザの接続が正常に動作していることを確認するか、システム管理者にお問い合わせください。", - "kibana_utils.history.savedObjectIsMissingNotificationMessage": "保存されたオブジェクトがありません", - "kibana_utils.stateManagement.stateHash.unableToRestoreUrlErrorMessage": "URL を完全に復元できません。共有機能を使用していることを確認してください。", - "kibana_utils.stateManagement.stateHash.unableToStoreHistoryInSessionErrorMessage": "セッションがいっぱいで安全に削除できるアイテムが見つからないため、Kibana は履歴アイテムを保存できません。\n\nこれは大抵新規タブに移動することで解決されますが、より大きな問題が原因である可能性もあります。このメッセージが定期的に表示される場合は、{gitHubIssuesUrl} で問題を報告してください。", - "kibana_utils.stateManagement.url.restoreUrlErrorTitle": "URLからの状態の復元エラー", - "kibana_utils.stateManagement.url.saveStateInUrlErrorTitle": "URLでの状態の保存エラー", - "kibana-react.dualRangeControl.maxInputAriaLabel": "範囲最大", - "kibana-react.dualRangeControl.minInputAriaLabel": "範囲最小", - "kibana-react.dualRangeControl.mustSetBothErrorMessage": "下と上の値の両方を設定する必要があります", - "kibana-react.dualRangeControl.outsideOfRangeErrorMessage": "値は {min} と {max} の間でなければなりません", - "kibana-react.dualRangeControl.upperValidErrorMessage": "上の値は下の値以上でなければなりません", - "kibana-react.exitFullScreenButton.exitFullScreenModeButtonAriaLabel": "全画面モードを終了", - "kibana-react.exitFullScreenButton.exitFullScreenModeButtonText": "全画面を終了", - "kibana-react.exitFullScreenButton.fullScreenModeDescription": "ESC キーで全画面モードを終了します。", - "kibana-react.kbnOverviewPageHeader.addDataButtonLabel": "データの追加", - "kibana-react.kbnOverviewPageHeader.devToolsButtonLabel": "開発ツール", - "kibana-react.kbnOverviewPageHeader.stackManagementButtonLabel": "管理", - "kibana-react.kibanaCodeEditor.ariaLabel": "コードエディター", - "kibana-react.kibanaCodeEditor.enterKeyLabel": "Enter", - "kibana-react.kibanaCodeEditor.escapeKeyLabel": "Esc", - "kibana-react.kibanaCodeEditor.startEditing": "編集を開始するには{key}を押してください。", - "kibana-react.kibanaCodeEditor.startEditingReadOnly": "コードの操作を開始するには{key}を押してください。", - "kibana-react.kibanaCodeEditor.stopEditing": "編集を停止するには{key}を押してください。", - "kibana-react.kibanaCodeEditor.stopEditingReadOnly": "コードの操作を停止するには{key}を押してください。", - "kibana-react.mountPointPortal.errorMessage": "ポータルコンテンツのレンダリングエラー", - "kibana-react.noDataPage.cantDecide": "どれを使用すべきかわからない場合{link}", - "kibana-react.noDataPage.cantDecide.link": "詳細については、ドキュメントをご確認ください。", - "kibana-react.noDataPage.elasticAgentCard.description": "Elasticエージェントを使用すると、シンプルで統一された方法でコンピューターからデータを収集するできます。", - "kibana-react.noDataPage.elasticAgentCard.title": "Elasticエージェントの追加", - "kibana-react.noDataPage.intro": "データを追加して開始するか、{solution}については{link}をご覧ください。", - "kibana-react.noDataPage.intro.link": "詳細", - "kibana-react.noDataPage.noDataPage.recommended": "推奨", - "kibana-react.noDataPage.welcomeTitle": "Elastic {solution}へようこそ。", - "kibana-react.pageFooter.changeDefaultRouteSuccessToast": "ランディングページが更新されました", - "kibana-react.pageFooter.changeHomeRouteLink": "ログイン時に別のページを表示", - "kibana-react.pageFooter.makeDefaultRouteLink": "これをランディングページにする", - "kibana-react.solutionNav.collapsibleLabel": "サイドナビゲーションを折りたたむ", - "kibana-react.solutionNav.mobileTitleText": "{solutionName}メニュー", - "kibana-react.solutionNav.openLabel": "サイドナビゲーションを開く", - "kibana-react.splitPanel.adjustPanelSizeAriaLabel": "左右のキーを押してパネルサイズを調整します", - "kibana-react.tableListView.listing.createNewItemButtonLabel": "Create {entityName}", - "kibana-react.tableListView.listing.deleteButtonMessage": "{itemCount} 件の {entityName} を削除", - "kibana-react.tableListView.listing.deleteConfirmModalDescription": "削除された {entityNamePlural} は復元できません。", - "kibana-react.tableListView.listing.deleteSelectedConfirmModal.title": "{itemCount} 件の {entityName} を削除", - "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.cancelButtonLabel": "キャンセル", - "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.confirmButtonLabel": "削除", - "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.confirmButtonLabelDeleting": "削除中", - "kibana-react.tableListView.listing.fetchErrorDescription": "{entityName}リストを取得できませんでした。{message}", - "kibana-react.tableListView.listing.fetchErrorTitle": "リストを取得できませんでした", - "kibana-react.tableListView.listing.listingLimitExceeded.advancedSettingsLinkText": "高度な設定", - "kibana-react.tableListView.listing.listingLimitExceededDescription": "{totalItems} 件の {entityNamePlural} がありますが、{listingLimitText} の設定により {listingLimitValue} 件までしか下の表に表示できません。{advancedSettingsLink} の下でこの設定を変更できます。", - "kibana-react.tableListView.listing.listingLimitExceededTitle": "リスティング制限超過", - "kibana-react.tableListView.listing.noAvailableItemsMessage": "利用可能な {entityNamePlural} がありません。", - "kibana-react.tableListView.listing.noMatchedItemsMessage": "検索条件に一致する {entityNamePlural} がありません。", - "kibana-react.tableListView.listing.table.actionTitle": "アクション", - "kibana-react.tableListView.listing.table.editActionDescription": "編集", - "kibana-react.tableListView.listing.table.editActionName": "編集", - "kibana-react.tableListView.listing.unableToDeleteDangerMessage": "{entityName} を削除できません", - "kibanaOverview.addData.sampleDataButtonLabel": "サンプルデータを試す", - "kibanaOverview.addData.sectionTitle": "データを取り込む", - "kibanaOverview.apps.title": "これらのアプリを検索", - "kibanaOverview.breadcrumbs.title": "分析", - "kibanaOverview.header.title": "分析", - "kibanaOverview.kibana.solution.description": "強力な分析ツールやアプリケーションスイートを使用して、データを探索、可視化、分析できます。", - "kibanaOverview.kibana.solution.title": "分析", - "kibanaOverview.manageData.sectionTitle": "データを管理", - "kibanaOverview.more.title": "Elasticではさまざまなことが可能です", - "kibanaOverview.news.title": "新機能", - "kibanaOverview.noDataConfig.solutionName": "分析", - "lists.exceptions.doesNotExistOperatorLabel": "存在しない", - "lists.exceptions.existsOperatorLabel": "存在する", - "lists.exceptions.isInListOperatorLabel": "リストにある", - "lists.exceptions.isNotInListOperatorLabel": "リストにない", - "lists.exceptions.isNotOneOfOperatorLabel": "is not one of", - "lists.exceptions.isNotOperatorLabel": "is not", - "lists.exceptions.isOneOfOperatorLabel": "is one of", - "lists.exceptions.isOperatorLabel": "is", - "management.breadcrumb": "スタック管理", - "management.landing.header": "Stack Management {version}へようこそ", - "management.landing.subhead": "インデックス、インデックスパターン、保存されたオブジェクト、Kibanaの設定、その他を管理します。", - "management.landing.text": "アプリの一覧は左側のメニューにあります。", - "management.nav.label": "管理", - "management.sections.dataTip": "クラスターデータとバックアップを管理します", - "management.sections.dataTitle": "データ", - "management.sections.ingestTip": "データを変換し、クラスターに読み込む方法を管理します", - "management.sections.ingestTitle": "投入", - "management.sections.insightsAndAlertingTip": "データの変化を検出する方法を管理します", - "management.sections.insightsAndAlertingTitle": "アラートとインサイト", - "management.sections.kibanaTip": "Kibanaをカスタマイズし、保存されたオブジェクトを管理します", - "management.sections.kibanaTitle": "Kibana", - "management.sections.section.tip": "機能とデータへのアクセスを制御します", - "management.sections.section.title": "セキュリティ", - "management.sections.stackTip": "ライセンスを管理し、スタックをアップグレードします", - "management.sections.stackTitle": "スタック", - "management.stackManagement.managementDescription": "Elastic Stack の管理を行うセンターコンソールです。", - "management.stackManagement.managementLabel": "スタック管理", - "management.stackManagement.title": "スタック管理", - "monaco.painlessLanguage.autocomplete.docKeywordDescription": "doc['field_name'] 構文を使用して、スクリプトからフィールド値にアクセスします", - "monaco.painlessLanguage.autocomplete.emitKeywordDescription": "戻らずに値を発行します。", - "monaco.painlessLanguage.autocomplete.fieldValueDescription": "フィールド「{fieldName}」の値を取得します", - "monaco.painlessLanguage.autocomplete.paramsKeywordDescription": "スクリプトに渡された変数にアクセスします。", - "newsfeed.emptyPrompt.noNewsText": "Kibana インスタンスがインターネットにアクセスできない場合、管理者にこの機能を無効にするように依頼してください。そうでない場合は、ニュースを取り込み続けます。", - "newsfeed.emptyPrompt.noNewsTitle": "ニュースがない場合", - "newsfeed.flyoutList.closeButtonLabel": "閉じる", - "newsfeed.flyoutList.versionTextLabel": "{version}", - "newsfeed.flyoutList.whatsNewTitle": "Elastic の新機能", - "newsfeed.headerButton.readAriaLabel": "ニュースフィードメニュー - すべての項目が既読です", - "newsfeed.headerButton.unreadAriaLabel": "ニュースフィードメニュー - 未読の項目があります", - "newsfeed.loadingPrompt.gettingNewsText": "最新ニュースを取得しています...", - "presentationUtil.dashboardPicker.searchDashboardPlaceholder": "ダッシュボードを検索...", - "presentationUtil.labs.components.browserSwitchHelp": "このブラウザーでラボを有効にします。ブラウザーを閉じた後も永続します。", - "presentationUtil.labs.components.browserSwitchName": "ブラウザー", - "presentationUtil.labs.components.calloutHelp": "変更を適用するには更新します", - "presentationUtil.labs.components.closeButtonLabel": "閉じる", - "presentationUtil.labs.components.descriptionMessage": "開発中の機能や実験的な機能を試します。", - "presentationUtil.labs.components.disabledStatusMessage": "デフォルト: {status}", - "presentationUtil.labs.components.enabledStatusMessage": "デフォルト: {status}", - "presentationUtil.labs.components.kibanaSwitchHelp": "すべてのKibanaユーザーでこのラボを有効にします。", - "presentationUtil.labs.components.kibanaSwitchName": "Kibana", - "presentationUtil.labs.components.labFlagsLabel": "ラボフラグ", - "presentationUtil.labs.components.noProjectsinSolutionMessage": "現在{solutionName}にはラボがありません。", - "presentationUtil.labs.components.noProjectsMessage": "現在ラボはありません。", - "presentationUtil.labs.components.overrideFlagsLabel": "上書き", - "presentationUtil.labs.components.overridenIconTipLabel": "デフォルトの上書き", - "presentationUtil.labs.components.resetToDefaultLabel": "デフォルトにリセット", - "presentationUtil.labs.components.sessionSwitchHelp": "このブラウザーセッションのラボを有効にします。ブラウザーを閉じるとリセットされます。", - "presentationUtil.labs.components.sessionSwitchName": "セッション", - "presentationUtil.labs.components.titleLabel": "ラボ", - "presentationUtil.labs.enableDeferBelowFoldProjectDescription": "「区切り」の下のすべてのパネル(ウィンドウ下部の下にある非表示の領域)はすぐに読み込まれません。ビューポートを入力するときにのみ読み込まれます", - "presentationUtil.labs.enableDeferBelowFoldProjectName": "「区切り」の下のパネルの読み込みを延期", - "presentationUtil.saveModalDashboard.addToDashboardLabel": "ダッシュボードに追加", - "presentationUtil.saveModalDashboard.dashboardInfoTooltip": "Visualizeライブラリに追加された項目はすべてのダッシュボードで使用できます。ライブラリ項目の編集は、使用されるすべての場所に表示されます。", - "presentationUtil.saveModalDashboard.existingDashboardOptionLabel": "既存", - "presentationUtil.saveModalDashboard.libraryOptionLabel": "ライブラリに追加", - "presentationUtil.saveModalDashboard.newDashboardOptionLabel": "新規", - "presentationUtil.saveModalDashboard.noDashboardOptionLabel": "なし", - "presentationUtil.saveModalDashboard.saveAndGoToDashboardLabel": "保存してダッシュボードを開く", - "presentationUtil.saveModalDashboard.saveLabel": "保存", - "presentationUtil.saveModalDashboard.saveToLibraryLabel": "保存してライブラリに追加", - "presentationUtil.solutionToolbar.editorMenuButtonLabel": "すべてのエディター", - "presentationUtil.solutionToolbar.libraryButtonLabel": "ライブラリから追加", - "presentationUtil.solutionToolbar.quickButton.ariaButtonLabel": "新しい{createType}を作成", - "presentationUtil.solutionToolbar.quickButton.legendLabel": "クイック作成", - "savedObjects.advancedSettings.listingLimitText": "一覧ページ用に取得するオブジェクトの数です", - "savedObjects.advancedSettings.listingLimitTitle": "オブジェクト取得制限", - "savedObjects.advancedSettings.perPageText": "読み込みダイアログで表示されるページごとのオブジェクトの数です", - "savedObjects.advancedSettings.perPageTitle": "ページごとのオブジェクト数", - "savedObjects.confirmModal.cancelButtonLabel": "キャンセル", - "savedObjects.confirmModal.overwriteButtonLabel": "上書き", - "savedObjects.confirmModal.overwriteConfirmationMessage": "{title} を上書きしてよろしいですか?", - "savedObjects.confirmModal.overwriteTitle": "{name} を上書きしますか?", - "savedObjects.confirmModal.saveDuplicateButtonLabel": "{name} を保存", - "savedObjects.confirmModal.saveDuplicateConfirmationMessage": "「{title}」というタイトルの {name} がすでに存在します。保存しますか?", - "savedObjects.finder.filterButtonLabel": "タイプ", - "savedObjects.finder.searchPlaceholder": "検索…", - "savedObjects.finder.sortAsc": "昇順", - "savedObjects.finder.sortAuto": "ベストマッチ", - "savedObjects.finder.sortButtonLabel": "並べ替え", - "savedObjects.finder.sortDesc": "降順", - "savedObjects.overwriteRejectedDescription": "上書き確認が拒否されました", - "savedObjects.saveDuplicateRejectedDescription": "重複ファイルの保存確認が拒否されました", - "savedObjects.saveModal.cancelButtonLabel": "キャンセル", - "savedObjects.saveModal.descriptionLabel": "説明", - "savedObjects.saveModal.duplicateTitleDescription": "「{title}」を保存すると、タイトルが重複します。", - "savedObjects.saveModal.duplicateTitleLabel": "この{objectType}はすでに存在します", - "savedObjects.saveModal.saveAsNewLabel": "新しい {objectType} として保存", - "savedObjects.saveModal.saveButtonLabel": "保存", - "savedObjects.saveModal.saveTitle": "{objectType} を保存", - "savedObjects.saveModal.titleLabel": "タイトル", - "savedObjects.saveModalOrigin.addToOriginLabel": "追加", - "savedObjects.saveModalOrigin.originAfterSavingSwitchLabel": "保存後に{originVerb}から{origin}", - "savedObjects.saveModalOrigin.returnToOriginLabel": "戻る", - "savedObjects.saveModalOrigin.saveAndReturnLabel": "保存して戻る", - "savedObjectsManagement.breadcrumb.index": "保存されたオブジェクト", - "savedObjectsManagement.deleteConfirm.modalDeleteButtonLabel": "削除", - "savedObjectsManagement.deleteConfirm.modalDescription": "このアクションはオブジェクトをKibanaから永久に削除します。", - "savedObjectsManagement.deleteConfirm.modalTitle": "「{title}」を削除しますか?", - "savedObjectsManagement.deleteSavedObjectsConfirmModalDescription": "この操作は次の保存されたオブジェクトを削除します:", - "savedObjectsManagement.importSummary.createdCountHeader": "{createdCount}件の新規項目", - "savedObjectsManagement.importSummary.createdOutcomeLabel": "作成済み", - "savedObjectsManagement.importSummary.errorCountHeader": "{errorCount}件のエラー", - "savedObjectsManagement.importSummary.errorOutcomeLabel": "{errorMessage}", - "savedObjectsManagement.importSummary.overwrittenCountHeader": "{overwrittenCount} overwritten", - "savedObjectsManagement.importSummary.overwrittenOutcomeLabel": "上書き", - "savedObjectsManagement.importSummary.warnings.defaultButtonLabel": "Go", - "savedObjectsManagement.managementSectionLabel": "保存されたオブジェクト", - "savedObjectsManagement.objects.savedObjectsTitle": "保存されたオブジェクト", - "savedObjectsManagement.objectsTable.deleteConfirmModal.sharedObjectsCallout.content": "共有オブジェクトは属しているすべてのスペースから削除されます。", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.cancelButtonLabel": "キャンセル", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.idColumnName": "Id", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.titleColumnName": "タイトル", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.typeColumnName": "型", - "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModalTitle": "保存されたオブジェクトの削除", - "savedObjectsManagement.objectsTable.export.successNotification": "ファイルはバックグラウンドでダウンロード中です", - "savedObjectsManagement.objectsTable.export.successWithExcludedObjectsNotification": "ファイルはバックグラウンドでダウンロード中です。一部のオブジェクトはエクスポートから除外されました。除外されたオブジェクトの一覧は、エクスポートされたファイルの最後の行をご覧ください。", - "savedObjectsManagement.objectsTable.export.successWithMissingRefsNotification": "ファイルはバックグラウンドでダウンロード中です。一部の関連オブジェクトが見つかりませんでした。足りないオブジェクトの一覧は、エクスポートされたファイルの最後の行をご覧ください。", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.cancelButtonLabel": "キャンセル", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.exportAllButtonLabel": "すべてエクスポート", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.exportOptionsLabel": "オプション", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.includeReferencesDeepLabel": "関連オブジェクトを含める", - "savedObjectsManagement.objectsTable.exportObjectsConfirmModalDescription": "エクスポートするタイプを選択してください", - "savedObjectsManagement.objectsTable.flyout.errorCalloutTitle": "申し訳ございません、エラーが発生しました", - "savedObjectsManagement.objectsTable.flyout.import.cancelButtonLabel": "キャンセル", - "savedObjectsManagement.objectsTable.flyout.import.confirmButtonLabel": "インポート", - "savedObjectsManagement.objectsTable.flyout.importFileErrorMessage": "エラーのためファイルを処理できませんでした:「{error}」", - "savedObjectsManagement.objectsTable.flyout.importPromptText": "インポート", - "savedObjectsManagement.objectsTable.flyout.importSavedObjectTitle": "保存されたオブジェクトのインポート", - "savedObjectsManagement.objectsTable.flyout.importSuccessful.confirmAllChangesButtonLabel": "すべての変更を確定", - "savedObjectsManagement.objectsTable.flyout.importSuccessful.confirmButtonLabel": "完了", - "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsCalloutLinkText": "新規インデックスパターンを作成", - "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsDescription": "次の保存されたオブジェクトは、存在しないインデックスパターンを使用しています。関連付け直す別のインデックスパターンを選択してください。必要に応じて、{indexPatternLink}できます。", - "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsTitle": "インデックスパターンの矛盾", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnCountDescription": "影響されるオブジェクトの数です", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnCountName": "カウント", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnIdDescription": "インデックスパターンのIDです", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnIdName": "ID", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnNewIndexPatternName": "新規インデックスパターン", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsDescription": "影響されるオブジェクトのサンプル", - "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsName": "影響されるオブジェクトのサンプル", - "savedObjectsManagement.objectsTable.flyout.selectFileToImportFormRowLabel": "インポートするファイルを選択してください", - "savedObjectsManagement.objectsTable.header.importButtonLabel": "インポート", - "savedObjectsManagement.objectsTable.header.refreshButtonLabel": "更新", - "savedObjectsManagement.objectsTable.header.savedObjectsTitle": "保存されたオブジェクト", - "savedObjectsManagement.objectsTable.howToDeleteSavedObjectsDescription": "保存されたオブジェクトを管理して共有します。オブジェクトの基本データを編集するには、関連付けられたアプリケーションに移動します。", - "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.disabledText": "オブジェクトが以前にコピーまたはインポートされたかどうかを確認します。", - "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.disabledTitle": "既存のオブジェクトを確認", - "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.enabledText": "このオプションを使用すると、オブジェクトの1つ以上のコピーを作成します。", - "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.enabledTitle": "ランダムIDで新しいオブジェクトを作成", - "savedObjectsManagement.objectsTable.importModeControl.importOptionsTitle": "インポートオプション", - "savedObjectsManagement.objectsTable.importModeControl.overwrite.disabledLabel": "競合時にアクションを要求", - "savedObjectsManagement.objectsTable.importModeControl.overwrite.enabledLabel": "自動的に競合を上書き", - "savedObjectsManagement.objectsTable.importSummary.unsupportedTypeError": "サポートされていないオブジェクトタイプ", - "savedObjectsManagement.objectsTable.overwriteModal.body.ambiguousConflict": "「{title}」は複数の既存のオブジェクトと競合します。上書きしますか?", - "savedObjectsManagement.objectsTable.overwriteModal.body.conflict": "「{title}」は既存のオブジェクトと競合します。上書きしますか?", - "savedObjectsManagement.objectsTable.overwriteModal.cancelButtonText": "スキップ", - "savedObjectsManagement.objectsTable.overwriteModal.overwriteButtonText": "上書き", - "savedObjectsManagement.objectsTable.overwriteModal.selectControlLabel": "オブジェクトID", - "savedObjectsManagement.objectsTable.overwriteModal.title": "{type}を上書きしますか?", - "savedObjectsManagement.objectsTable.relationships.columnActions.inspectActionDescription": "この保存されたオブジェクトを確認してください", - "savedObjectsManagement.objectsTable.relationships.columnActions.inspectActionName": "検査", - "savedObjectsManagement.objectsTable.relationships.columnActionsName": "アクション", - "savedObjectsManagement.objectsTable.relationships.columnErrorDescription": "関係でエラーが発生しました", - "savedObjectsManagement.objectsTable.relationships.columnErrorName": "エラー", - "savedObjectsManagement.objectsTable.relationships.columnIdDescription": "保存されたオブジェクトのID", - "savedObjectsManagement.objectsTable.relationships.columnIdName": "Id", - "savedObjectsManagement.objectsTable.relationships.columnRelationship.childAsValue": "子", - "savedObjectsManagement.objectsTable.relationships.columnRelationship.parentAsValue": "親", - "savedObjectsManagement.objectsTable.relationships.columnRelationshipName": "直接関係", - "savedObjectsManagement.objectsTable.relationships.columnTitleDescription": "保存されたオブジェクトのタイトルです", - "savedObjectsManagement.objectsTable.relationships.columnTitleName": "タイトル", - "savedObjectsManagement.objectsTable.relationships.columnTypeDescription": "保存されたオブジェクトのタイプです", - "savedObjectsManagement.objectsTable.relationships.columnTypeName": "型", - "savedObjectsManagement.objectsTable.relationships.invalidRelationShip": "この保存されたオブジェクトには無効な関係がいくつかあります。", - "savedObjectsManagement.objectsTable.relationships.relationshipsTitle": "{title}に関連する保存済みオブジェクトはこちらです。この{type}を削除すると、親オブジェクトに影響しますが、子オブジェクトには影響しません。", - "savedObjectsManagement.objectsTable.relationships.renderErrorMessage": "エラー", - "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.childAsValue.view": "子", - "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.name": "直接関係", - "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.parentAsValue.view": "親", - "savedObjectsManagement.objectsTable.relationships.search.filters.type.name": "型", - "savedObjectsManagement.objectsTable.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", - "savedObjectsManagement.objectsTable.table.columnActions.inspectActionDescription": "この保存されたオブジェクトを確認してください", - "savedObjectsManagement.objectsTable.table.columnActions.inspectActionName": "検査", - "savedObjectsManagement.objectsTable.table.columnActions.viewRelationshipsActionDescription": "この保存されたオブジェクトと他の保存されたオブジェクトとの関係性を表示します", - "savedObjectsManagement.objectsTable.table.columnActions.viewRelationshipsActionName": "関係", - "savedObjectsManagement.objectsTable.table.columnActionsName": "アクション", - "savedObjectsManagement.objectsTable.table.columnTitleDescription": "保存されたオブジェクトのタイトルです", - "savedObjectsManagement.objectsTable.table.columnTitleName": "タイトル", - "savedObjectsManagement.objectsTable.table.columnTypeDescription": "保存されたオブジェクトのタイプです", - "savedObjectsManagement.objectsTable.table.columnTypeName": "型", - "savedObjectsManagement.objectsTable.table.deleteButtonLabel": "削除", - "savedObjectsManagement.objectsTable.table.deleteButtonTitle": "保存されたオブジェクトを削除できません", - "savedObjectsManagement.objectsTable.table.exportButtonLabel": "エクスポート", - "savedObjectsManagement.objectsTable.table.exportPopoverButtonLabel": "エクスポート", - "savedObjectsManagement.objectsTable.table.typeFilterName": "型", - "savedObjectsManagement.objectsTable.unableFindSavedObjectNotificationMessage": "保存されたオブジェクトが見つかりません", - "savedObjectsManagement.objectsTable.unableFindSavedObjectsNotificationMessage": "保存されたオブジェクトが見つかりません", - "savedObjectsManagement.objectView.unableFindSavedObjectNotificationMessage": "保存されたオブジェクトが見つかりません", - "savedObjectsManagement.view.fieldDoesNotExistErrorMessage": "このオブジェクトに関連付けられたフィールドは、現在このインデックスパターンに存在しません。", - "savedObjectsManagement.view.indexPatternDoesNotExistErrorMessage": "このオブジェクトに関連付けられたインデックスパターンは現在存在しません。", - "savedObjectsManagement.view.savedObjectProblemErrorMessage": "この保存されたオブジェクトに問題があります", - "savedObjectsManagement.view.savedSearchDoesNotExistErrorMessage": "このオブジェクトに関連付けられた保存された検索は現在存在しません。", - "share.advancedSettings.csv.quoteValuesText": "csvエクスポートに値を引用するかどうかです", - "share.advancedSettings.csv.quoteValuesTitle": "CSVの値を引用", - "share.advancedSettings.csv.separatorText": "エクスポートされた値をこの文字列で区切ります", - "share.advancedSettings.csv.separatorTitle": "CSVセパレーター", - "share.contextMenu.embedCodeLabel": "埋め込みコード", - "share.contextMenu.embedCodePanelTitle": "埋め込みコード", - "share.contextMenu.permalinkPanelTitle": "パーマリンク", - "share.contextMenu.permalinksLabel": "パーマリンク", - "share.contextMenuTitle": "この {objectType} を共有", - "share.urlGenerators.error.createUrlFnProvided": "このジェネレーターは非推奨とマークされています。createUrl fn を付けないでください。", - "share.urlGenerators.error.migrationFnGivenNotDeprecated": "移行機能を提供する場合、このジェネレーターに非推奨マークを付ける必要があります", - "share.urlGenerators.error.noCreateUrlFnProvided": "このジェネレーターには非推奨のマークがありません。createUrl fn を付けてください。", - "share.urlGenerators.error.noMigrationFnProvided": "アクセスリンクジェネレーターに非推奨マークが付いている場合、移行機能を提供する必要があります。", - "share.urlGenerators.errors.noGeneratorWithId": "{id} という ID のジェネレーターはありません", - "share.urlPanel.canNotShareAsSavedObjectHelpText": "{objectType} が保存されるまで保存されたオブジェクトを共有することはできません。", - "share.urlPanel.copyIframeCodeButtonLabel": "iFrame コードをコピー", - "share.urlPanel.copyLinkButtonLabel": "リンクをコピー", - "share.urlPanel.generateLinkAsLabel": "名前を付けてリンクを生成", - "share.urlPanel.publicUrlHelpText": "公開URLを使用して、他のユーザーと共有します。ログインプロンプトをなくして、ワンステップの匿名アクセスを可能にします。", - "share.urlPanel.publicUrlLabel": "公開URL", - "share.urlPanel.savedObjectDescription": "この URL を共有することで、他のユーザーがこの {objectType} の最も最近保存されたバージョンを読み込めるようになります。", - "share.urlPanel.savedObjectLabel": "保存されたオブジェクト", - "share.urlPanel.shortUrlHelpText": "互換性が最も高くなるよう、短いスナップショット URL を共有することをお勧めします。Internet Explorer は URL の長さに制限があり、一部の wiki やマークアップパーサーは長い完全なスナップショット URL に対応していませんが、短い URL は正常に動作するはずです。", - "share.urlPanel.shortUrlLabel": "短い URL", - "share.urlPanel.snapshotDescription": "スナップショット URL には、{objectType} の現在の状態がエンコードされています。保存された {objectType} への編集内容はこの URL には反映されません。", - "share.urlPanel.snapshotLabel": "スナップショット", - "share.urlPanel.unableCreateShortUrlErrorMessage": "短い URL を作成できません。エラー:{errorMessage}", - "share.urlPanel.urlGroupTitle": "URL", - "share.urlService.redirect.components.Error.title": "リダイレクトエラー", - "share.urlService.redirect.components.Spinner.label": "リダイレクト中...", - "share.urlService.redirect.RedirectManager.invalidParamParams": "ロケーターパラメーターを解析できませんでした。ロケーターパラメーターはJSONとしてシリアル化し、「p」URL検索パラメーターで設定する必要があります。", - "share.urlService.redirect.RedirectManager.locatorNotFound": "ロケーター[ID = {id}]が存在しません。", - "share.urlService.redirect.RedirectManager.missingParamLocator": "ロケーターIDが指定されていません。URLで「l」検索パラメーターを指定します。これは既存のロケーターIDにしてください。", - "share.urlService.redirect.RedirectManager.missingParamParams": "ロケーターパラメーターが指定されていません。URLで「p」検索パラメーターを指定します。これはロケーターパラメーターのJSONシリアル化オブジェクトにしてください。", - "share.urlService.redirect.RedirectManager.missingParamVersion": "ロケーターパラメーターバージョンが指定されていません。URLで「v」検索パラメーターを指定します。これはロケーターパラメーターが生成されたときのKibanaのリリースバージョンです。", - "telemetry.callout.appliesSettingTitle": "この設定に加えた変更は {allOfKibanaText} に適用され、自動的に保存されます。", - "telemetry.callout.appliesSettingTitle.allOfKibanaText": "Kibana のすべて", - "telemetry.callout.clusterStatisticsDescription": "これは収集される基本的なクラスター統計の例です。インデックス、シャード、ノードの数が含まれます。監視がオンになっているかどうかなどのハイレベルの使用統計も含まれます。", - "telemetry.callout.clusterStatisticsTitle": "クラスター統計", - "telemetry.callout.errorLoadingClusterStatisticsDescription": "クラスター統計の取得中に予期せぬエラーが発生しました。Elasticsearch、Kibana、またはネットワークのエラーが原因の可能性があります。Kibana を確認し、ページを再読み込みして再試行してください。", - "telemetry.callout.errorLoadingClusterStatisticsTitle": "クラスター統計の読み込みエラー", - "telemetry.callout.errorUnprivilegedUserDescription": "暗号化されていないクラスター統計を表示するアクセス権がありません。", - "telemetry.callout.errorUnprivilegedUserTitle": "クラスター統計の表示エラー", - "telemetry.clusterData": "クラスターデータ", - "telemetry.optInErrorToastText": "使用状況統計設定の設定中にエラーが発生しました。", - "telemetry.optInErrorToastTitle": "エラー", - "telemetry.optInNoticeSeenErrorTitle": "エラー", - "telemetry.optInNoticeSeenErrorToastText": "通知の消去中にエラーが発生しました", - "telemetry.optInSuccessOff": "使用状況データ収集がオフです。", - "telemetry.optInSuccessOn": "使用状況データ収集がオンです。", - "telemetry.readOurUsageDataPrivacyStatementLinkText": "プライバシーポリシー", - "telemetry.securityData": "Endpoint Security データ", - "telemetry.telemetryBannerDescription": "Elastic Stackの改善にご協力ください使用状況データの収集は現在無効です。使用状況データの収集を有効にすると、製品とサービスを管理して改善することができます。詳細については、{privacyStatementLink}をご覧ください。", - "telemetry.telemetryConfigAndLinkDescription": "使用状況データの収集を有効にすると、製品とサービスを管理して改善することができます。詳細については、{privacyStatementLink}をご覧ください。", - "telemetry.telemetryOptedInDisableUsage": "ここで使用状況データを無効にする", - "telemetry.telemetryOptedInDismissMessage": "閉じる", - "telemetry.telemetryOptedInNoticeDescription": "使用状況データがどのように製品とサービスの管理と改善につながるのかに関する詳細については、{privacyStatementLink}をご覧ください。収集を停止するには、{disableLink}。", - "telemetry.telemetryOptedInNoticeTitle": "Elastic Stack の改善にご協力ください", - "telemetry.telemetryOptedInPrivacyStatement": "プライバシーポリシー", - "telemetry.usageDataTitle": "使用データ", - "telemetry.welcomeBanner.disableButtonLabel": "無効にする", - "telemetry.welcomeBanner.enableButtonLabel": "有効にする", - "telemetry.welcomeBanner.telemetryConfigDetailsDescription.telemetryPrivacyStatementLinkText": "プライバシーポリシー", - "telemetry.welcomeBanner.title": "Elastic Stack の改善にご協力ください", - "timelion.emptyExpressionErrorMessage": "Timelion エラー:式が入力されていません", - "timelion.expressionSuggestions.argument.description.acceptsText": "受け入れ", - "timelion.expressionSuggestions.func.description.chainableHelpText": "連鎖可能", - "timelion.expressionSuggestions.func.description.dataSourceHelpText": "データソース", - "timelion.fitFunctions.carry.downSampleErrorMessage": "ダウンサンプルには「carry」フィットメソドを使用せず、「scale」または「average」を使用してください", - "timelion.function.help": "Timelion のビジュアライゼーションです。", - "timelion.help.functions.absHelpText": "数列リストの各値の絶対値を返します", - "timelion.help.functions.aggregate.args.functionHelpText": "{functions} の 1 つ", - "timelion.help.functions.aggregateHelpText": "数列のすべての点の処理結果に基づく線を作成します。利用可能な関数:{functions}", - "timelion.help.functions.bars.args.stackHelpText": "バーがスタックした場合はデフォルトで true にする", - "timelion.help.functions.bars.args.widthHelpText": "バーの幅(ピクセル)", - "timelion.help.functions.barsHelpText": "seriesList をバーとして表示", - "timelion.help.functions.color.args.colorHelpText": "16 進数としての数列の色です。例:#c6c6c6 はかわいいライトグレーを示します。複数の色を指定し、複数数列がある場合、グラデーションになります。例:「#00B1CC:#00FF94:#FF3A39:#CC1A6F」", - "timelion.help.functions.colorHelpText": "数列の色を変更します", - "timelion.help.functions.common.args.fitHelpText": "ターゲットの期間と間隔に数列を合わせるためのアルゴリズムです。使用可能:{fitFunctions}", - "timelion.help.functions.common.args.offsetHelpText": "日付表現による数列の取得をオフセットします。例:1 か月前からイベントを作成する -1M は現在のように表示されます。「timerange」によって、チャートの全体的な時間範囲に関連した数列をオフセットします。例:「timerange:-2」は過去に対する全体的なチャート時間範囲の 2 倍をオフセットします。", - "timelion.help.functions.condition.args.elseHelpText": "比較が false の場合に点が設定される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", - "timelion.help.functions.condition.args.ifHelpText": "点が比較される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", - "timelion.help.functions.condition.args.operator.suggestions.eqHelpText": "equal", - "timelion.help.functions.condition.args.operator.suggestions.gteHelpText": "超過", - "timelion.help.functions.condition.args.operator.suggestions.gtHelpText": "より大きい", - "timelion.help.functions.condition.args.operator.suggestions.lteHelpText": "未満", - "timelion.help.functions.condition.args.operator.suggestions.ltHelpText": "より小さい", - "timelion.help.functions.condition.args.operator.suggestions.neHelpText": "not equal", - "timelion.help.functions.condition.args.operatorHelpText": "比較に使用する比較演算子、有効な演算子は eq(=)、ne(≠), lt(&lt;), lte(≦), gt(>), gte(≧)", - "timelion.help.functions.condition.args.thenHelpText": "比較が true の場合に点が設定される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", - "timelion.help.functions.conditionHelpText": "演算子を使って各点を数字、または別の数列の同じ点と比較し、true の場合値を結果の値に設定し、オプションとして else が使用されます。", - "timelion.help.functions.cusum.args.baseHelpText": "開始の数字です。基本的に、数列の初めにこの数字が追加されます", - "timelion.help.functions.cusumHelpText": "ベースから始め、数列の累積和を返します。", - "timelion.help.functions.derivativeHelpText": "一定期間の値の変化をプロットします。", - "timelion.help.functions.divide.args.divisorHelpText": "割る数字または数列です。複数数列を含む seriesList はラベルに適用されます。", - "timelion.help.functions.divideHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に割けます。", - "timelion.help.functions.es.args.indexHelpText": "クエリを実行するインデックスで、ワイルドカードが使えます。「metrics」、「split」、「timefield」引数のスクリプトフィールドのフィールド名のインデックスパターン名とフィールド名の入力候補を提供します。", - "timelion.help.functions.es.args.intervalHelpText": "**これは使用しないでください**。fit 関数のデバッグは楽しいですが、間隔ピッカーを使用すべきです。", - "timelion.help.functions.es.args.kibanaHelpText": "Kibana ダッシュボードでフィルターを適用します。Kibana ダッシュボードの使用時にのみ適用されます。", - "timelion.help.functions.es.args.metricHelpText": "Elasticsearch メトリック集約:avg、sum、min、max、percentiles、または基数、後ろにフィールドを付けます。例:「sum:bytes」、「percentiles:bytes:95,99,99.9」、「count」", - "timelion.help.functions.es.args.qHelpText": "Lucene クエリ文字列の構文のクエリ", - "timelion.help.functions.es.args.splitHelpText": "分割する Elasticsearch フィールドと制限です。例:「{hostnameSplitArg}」は上位 10 のホスト名を取得します", - "timelion.help.functions.es.args.timefieldHelpText": "X 軸にフィールドタイプ「date」を使用", - "timelion.help.functions.esHelpText": "Elasticsearch インスタンスからデータを取得します", - "timelion.help.functions.firstHelpText": "これは単純に input seriesList を返す内部機能です。この機能は使わないでください", - "timelion.help.functions.fit.args.modeHelpText": "数列をターゲットに合わせるためのアルゴリズムです。次のいずれかです。{fitFunctions}", - "timelion.help.functions.fitHelpText": "定義された fit 関数を使用して空値を入力します", - "timelion.help.functions.graphite.args.metricHelpText": "取得する Graphite メトリック、例:{metricExample}", - "timelion.help.functions.graphiteHelpText": "[実験] Graphiteからデータを取得します。Kibana の高度な設定で Graphite サーバーを構成します", - "timelion.help.functions.hide.args.hideHelpText": "数列の表示と非表示を切り替えます", - "timelion.help.functions.hideHelpText": "デフォルトで数列を非表示にします", - "timelion.help.functions.holt.args.alphaHelpText": "\n 0 から 1 の平滑化加重です。\n アルファを上げると新しい数列がオリジナルにさらに近くなります。\n 下げると数列がスムーズになります", - "timelion.help.functions.holt.args.betaHelpText": "\n 0 から 1 の傾向加重です。\n ベータを上げると線の上下の動きが長くなります。\n 下げると新しい傾向をより早く反映するようになります", - "timelion.help.functions.holt.args.gammaHelpText": "0 から 1 のシーズン加重です。データが波のようになっていますか?\n この数字を上げると、最近のシーズンの重要性が高まり、波形の動きを速くします。\n 下げると新しいシーズンの重要性が下がり、過去がより重要視されます。", - "timelion.help.functions.holt.args.sampleHelpText": "\n シーズン数列の「予測」を開始する前にサンプリングするシーズンの数です。\n (gamma でのみ有効、デフォルト:all)", - "timelion.help.functions.holt.args.seasonHelpText": "シーズンの長さです、例:パターンが毎週繰り返される場合は 1w。(gamma でのみ有効)", - "timelion.help.functions.holtHelpText": "\n 数列の始めをサンプリングし、\n いくつかのオプションパラメーターを使用して何が起こるか予測します。基本的に、この機能は未来を予測するのではなく、\n 過去のデータに基づき現在何が起きているべきかを予測します。\n この情報は異常検知に役立ちます。null には予測値が入力されます。", - "timelion.help.functions.label.args.labelHelpText": "数列の凡例値です。文字列で $1、$2 などを使用して、正規表現の捕捉グループに合わせることができます。", - "timelion.help.functions.label.args.regexHelpText": "捕捉グループをサポートする正規表現です", - "timelion.help.functions.labelHelpText": "数列のラベルを変更します。%s で既存のラベルを参照します", - "timelion.help.functions.legend.args.columnsHelpText": "凡例を分ける列の数です", - "timelion.help.functions.legend.args.position.suggestions.falseHelpText": "凡例を無効にします", - "timelion.help.functions.legend.args.position.suggestions.neHelpText": "北東の角に凡例を配置します", - "timelion.help.functions.legend.args.position.suggestions.nwHelpText": "北西の角に凡例を配置します", - "timelion.help.functions.legend.args.position.suggestions.seHelpText": "南東の角に凡例を配置します", - "timelion.help.functions.legend.args.position.suggestions.swHelpText": "南西の角に凡例を配置します", - "timelion.help.functions.legend.args.positionHelpText": "凡例を配置する角:nw、ne、se、または sw。false で凡例を無効にすることもできます", - "timelion.help.functions.legend.args.showTimeHelpText": "グラフにカーソルを合わせた時、凡例の時間値を表示します。デフォルト:true", - "timelion.help.functions.legend.args.timeFormatHelpText": "moment.js フォーマットパターンです。デフォルト:{defaultTimeFormat}", - "timelion.help.functions.legendHelpText": "プロットの凡例の位置とスタイルを設定します", - "timelion.help.functions.lines.args.fillHelpText": "0 と 10 の間の数字です。エリアチャートの作成に使用します。", - "timelion.help.functions.lines.args.showHelpText": "線の表示と非表示を切り替えます", - "timelion.help.functions.lines.args.stackHelpText": "線をスタックします。よく誤解を招きます。この機能を使用する際は塗りつぶしを使うようにしましょう。", - "timelion.help.functions.lines.args.stepsHelpText": "線をステップとして表示します。つまり、点の間に中間値を挿入しません。", - "timelion.help.functions.lines.args.widthHelpText": "線の太さです", - "timelion.help.functions.linesHelpText": "seriesList を線として表示します", - "timelion.help.functions.log.args.baseHelpText": "対数のベースを設定します、デフォルトは 10 です", - "timelion.help.functions.logHelpText": "数列リストの各値の対数値を返します(デフォルトのベース:10)", - "timelion.help.functions.max.args.valueHelpText": "点を既存の値と引き渡された値のどちらか高い方に設定します。seriesList を引き渡す場合、数列がちょうど 1 つでなければなりません。", - "timelion.help.functions.maxHelpText": "インプット seriesList の各数列のそれぞれの配置の seriesList の 1 つまたは複数の数列の最高値です", - "timelion.help.functions.min.args.valueHelpText": "点を既存の値と引き渡された値のどちらか低い方に設定します。seriesList を引き渡す場合、数列がちょうど 1 つでなければなりません。", - "timelion.help.functions.minHelpText": "インプット seriesList の各数列のそれぞれの配置の seriesList の 1 つまたは複数の数列の最低値です", - "timelion.help.functions.movingaverage.args.positionHelpText": "結果時間に相対的な平均点の位置です。次のいずれかです。{validPositions}", - "timelion.help.functions.movingaverage.args.windowHelpText": "平均を出す点の数、または日付計算式(例:1d、1M)です。日付計算式が指定された場合、この機能は現在選択された間隔でできるだけ近づけます。日付計算式が間隔で均等に分けられない場合、結果に異常が出る場合があります。", - "timelion.help.functions.movingaverageHelpText": "特定期間の移動平均を計算します。ばらばらの数列を滑らかにするのに有効です。", - "timelion.help.functions.movingstd.args.positionHelpText": "結果時間に相対的な期間スライスの配置です。オプションは {positions} です。デフォルト:{defaultPosition}", - "timelion.help.functions.movingstd.args.windowHelpText": "標準偏差を計算する点の数です。", - "timelion.help.functions.movingstdHelpText": "特定期間の移動標準偏差を計算します。ネイティブ two-pass アルゴリズムを使用します。非常に長い数列や、非常に大きな数字を含む数列では、四捨五入による誤差がより明らかになる可能性があります。", - "timelion.help.functions.multiply.args.multiplierHelpText": "掛ける数字または数列です。複数数列を含む seriesList はラベルに適用されます。", - "timelion.help.functions.multiplyHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に掛けます。", - "timelion.help.functions.notAllowedGraphiteUrl": "この Graphite URL は kibana.yml ファイルで構成されていません。\n 「timelion.graphiteUrls」で kibana.yml ファイルの Graphite サーバーリストを構成し、\n Kibana の高度な設定でいずれかを選択してください", - "timelion.help.functions.points.args.fillColorHelpText": "点を塗りつぶす色です。", - "timelion.help.functions.points.args.fillHelpText": "塗りつぶしの透明度を表す 0 から 10 までの数字です", - "timelion.help.functions.points.args.radiusHelpText": "点のサイズです", - "timelion.help.functions.points.args.showHelpText": "点の表示・非表示です", - "timelion.help.functions.points.args.symbolHelpText": "点のシンボルです。次のいずれかです。{validSymbols}", - "timelion.help.functions.points.args.weightHelpText": "点の周りの太さです", - "timelion.help.functions.pointsHelpText": "数列を点として表示します", - "timelion.help.functions.precision.args.precisionHelpText": "各値を切り捨てる桁数です", - "timelion.help.functions.precisionHelpText": "値の小数点以下を切り捨てる桁数です", - "timelion.help.functions.props.args.globalHelpText": "各数列に対し、seriesList にプロップを設定します", - "timelion.help.functions.propsHelpText": "数列に任意のプロパティを設定するため、自己責任で行ってください。例:{example}。", - "timelion.help.functions.quandl.args.codeHelpText": "プロットする Quandl コードです。これらは quandl.com に掲載されています。", - "timelion.help.functions.quandl.args.positionHelpText": "Quandl ソースによっては、複数数列を返すものがあります。どれを使用しますか?1 ベースインデックス", - "timelion.help.functions.quandlHelpText": "\n [実験]\n Quandl コードで quandl.com からデータを取得します。Kibana で {quandlKeyField} を空き API キーに設定\n 高度な設定API は、キーなしでは非常に低いレート制限があります。", - "timelion.help.functions.range.args.maxHelpText": "新しい最高値です", - "timelion.help.functions.range.args.minHelpText": "新しい最低値です", - "timelion.help.functions.rangeHelpText": "同じシェイプを維持しつつ数列の最高値と最低値を変更します", - "timelion.help.functions.scaleInterval.args.intervalHelpText": "新しい間隔の日付計算表記です。例:1 秒 = 1s。1m、5m、1M、1w、1y など。", - "timelion.help.functions.scaleIntervalHelpText": "変更すると、値(通常合計またはカウント)が新しい間隔にスケーリングされます。例:毎秒のレート", - "timelion.help.functions.static.args.labelHelpText": "数列のラベルを簡単に設定する方法です。.label()関数を使用することもできます。", - "timelion.help.functions.static.args.valueHelpText": "表示する単一の値です。複数の値が渡された場合、指定された時間範囲に均等に挿入されます。", - "timelion.help.functions.staticHelpText": "チャートに 1 つの値を挿入します", - "timelion.help.functions.subtract.args.termHelpText": "インプットから引く数字または数列です。複数数列を含む seriesList はラベルに適用されます。", - "timelion.help.functions.subtractHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置から引きます。", - "timelion.help.functions.sum.args.termHelpText": "インプット数列に足す数字または数列です。複数数列を含む seriesList はラベルに適用されます。", - "timelion.help.functions.sumHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に足します。", - "timelion.help.functions.title.args.titleHelpText": "プロットのタイトルです。", - "timelion.help.functions.titleHelpText": "プロットの上部にタイトルを追加します。複数の seriesList がコールされた場合、最後のコールが使用されます。", - "timelion.help.functions.trend.args.endHelpText": "始めまたは終わりからの計算を修了する場所です。たとえば、-10 の場合終わりから 10 点目で計算が終了し、+15 の場合始めから 15 点目で終了します。デフォルト:0", - "timelion.help.functions.trend.args.modeHelpText": "傾向線の生成に使用するアルゴリズムです。次のいずれかです。{validRegressions}", - "timelion.help.functions.trend.args.startHelpText": "始めまたは終わりからの計算を開始する場所です。たとえば、-10 の場合終わりから 10 点目から計算を開始し、+15 の場合始めから 15 点目から開始します。デフォルト:0", - "timelion.help.functions.trendHelpText": "指定された回帰アルゴリズムで傾向線を描きます", - "timelion.help.functions.trim.args.endHelpText": "数列の終わりから切り取るバケットです。デフォルト:1", - "timelion.help.functions.trim.args.startHelpText": "数列の始めから切り取るバケットです。デフォルト:1", - "timelion.help.functions.trimHelpText": "「部分的バケットの問題」に合わせて、数列の始めか終わりの N 個のバケットを無効化するように設定します。", - "timelion.help.functions.worldbank.args.codeHelpText": "Worldbank API パスです。これは通常ドメインの後ろからクエリ文字列までのすべてです。例:{apiPathExample}。", - "timelion.help.functions.worldbankHelpText": "\n [実験]\n 数列へのパスを使用して {worldbankUrl} からデータを取得します。\n Worldbank は主に年間データを提供し、現在の年のデータがないことがよくあります。\n 最近の期間範囲のデータが取得できない場合は、{offsetQuery} をお試しください。", - "timelion.help.functions.worldbankIndicators.args.countryHelpText": "Worldbank の国 ID です。通常は国の 2 文字のコートです", - "timelion.help.functions.worldbankIndicators.args.indicatorHelpText": "使用するインジケーターコードです。{worldbankUrl} で調べる必要があります。多くが分かりづらいものです。例:{indicatorExample} は人口です", - "timelion.help.functions.worldbankIndicatorsHelpText": "\n [実験]\n 国名とインジケーターを使って {worldbankUrl} からデータを取得します。Worldbank は\n 主に年間データを提供し、現在の年のデータがないことがよくあります。最近の期間範囲のデータが取得できない場合は、{offsetQuery} をお試しください。\n 時間範囲", - "timelion.help.functions.yaxis.args.colorHelpText": "軸ラベルの色です", - "timelion.help.functions.yaxis.args.labelHelpText": "軸のラベルです", - "timelion.help.functions.yaxis.args.maxHelpText": "最高値", - "timelion.help.functions.yaxis.args.minHelpText": "最低値", - "timelion.help.functions.yaxis.args.positionHelpText": "左から右", - "timelion.help.functions.yaxis.args.tickDecimalsHelpText": "y 軸とティックラベルの小数点以下の桁数です。", - "timelion.help.functions.yaxis.args.unitsHelpText": "Y 軸のラベルのフォーマットに使用する機能です。次のいずれかです。{formatters}", - "timelion.help.functions.yaxis.args.yaxisHelpText": "この数列をプロットする数字の Y 軸です。例:2 本目の Y 軸は .yaxis(2)になります。", - "timelion.help.functions.yaxisHelpText": "さまざまな Y 軸のオプションを構成します。おそらく最も重要なのは、N 本目(例:2 本目)の Y 軸を追加する機能です。", - "timelion.noFunctionErrorMessage": "そのような関数はありません:{name}", - "timelion.panels.timechart.unknownIntervalErrorMessage": "不明な間隔", - "timelion.requestHandlerErrorTitle": "Timelion リクエストエラー", - "timelion.serverSideErrors.argumentsOverflowErrorMessage": "{functionName} に引き渡された引数が多すぎます", - "timelion.serverSideErrors.bucketsOverflowErrorMessage": "最大バケットを超えました:{bucketCount}/{maxBuckets} が許可されています。より広い間隔または短い期間を選択してください", - "timelion.serverSideErrors.colorFunction.colorNotProvidedErrorMessage": "色が指定されていません", - "timelion.serverSideErrors.conditionFunction.unknownOperatorErrorMessage": "不明な演算子", - "timelion.serverSideErrors.conditionFunction.wrongArgTypeErrorMessage": "数字または seriesList でなければなりません", - "timelion.serverSideErrors.esFunction.indexNotFoundErrorMessage": "Elasticsearch インデックス {index} が見つかりません", - "timelion.serverSideErrors.holtFunction.missingParamsErrorMessage": "シーズンの長さとサンプルサイズ >= 2 を指定する必要があります", - "timelion.serverSideErrors.holtFunction.notEnoughPointsErrorMessage": "二重指数平滑化を使用するには最低 2 つの点が必要です", - "timelion.serverSideErrors.movingaverageFunction.notValidPositionErrorMessage": "有効な配置:{validPositions}", - "timelion.serverSideErrors.movingstdFunction.notValidPositionErrorMessage": "有効な配置:{validPositions}", - "timelion.serverSideErrors.pointsFunction.notValidSymbolErrorMessage": "有効なシンボル:{validSymbols}", - "timelion.serverSideErrors.quandlFunction.unsupportedIntervalErrorMessage": "quandl()でサポートされていない間隔:{interval}. quandl()でサポートされている間隔:{intervals}", - "timelion.serverSideErrors.sheetParseErrorMessage": "予想:文字 {column} で {expectedDescription}", - "timelion.serverSideErrors.unknownArgumentErrorMessage": "{functionName} への不明な引数:{argumentName}", - "timelion.serverSideErrors.unknownArgumentTypeErrorMessage": "引数タイプがサポートされていません:{argument}", - "timelion.serverSideErrors.worldbankFunction.noDataErrorMessage": "Worldbank へのリクエストは成功しましたが、{code} のデータがありませんでした", - "timelion.serverSideErrors.wrongFunctionArgumentTypeErrorMessage": "{functionName}({argumentName})は {requiredTypes} の内の 1 つでなければなりません。{actualType} を入手", - "timelion.serverSideErrors.yaxisFunction.notSupportedUnitTypeErrorMessage": "{units} はサポートされているユニットタイプではありません。", - "timelion.serverSideErrors.yaxisFunction.notValidCurrencyFormatErrorMessage": "通貨は 3 文字のコードでなければなりません", - "timelion.timelionDescription": "グラフに時系列データを表示します。", - "timelion.uiSettings.defaultIndexDescription": "{esParam} で検索するデフォルトの Elasticsearch インデックスです", - "timelion.uiSettings.defaultIndexLabel": "デフォルトのインデックス", - "timelion.uiSettings.experimentalLabel": "実験的", - "timelion.uiSettings.graphiteURLDescription": "{experimentalLabel} Graphite ホストの <a href=\"https://www.hostedgraphite.com/UID/ACCESS_KEY/graphite\" target=\"_blank\" rel=\"noopener\">URL</a>", - "timelion.uiSettings.graphiteURLLabel": "Graphite URL", - "timelion.uiSettings.legacyChartsLibraryDeprication": "この設定はサポートが終了し、Kibana 8.0 ではサポートされません。", - "timelion.uiSettings.legacyChartsLibraryDescription": "VisualizeでTimelionグラフのレガシーグラフライブラリを有効にします", - "timelion.uiSettings.legacyChartsLibraryLabel": "Timelionレガシーグラフライブラリ", - "timelion.uiSettings.maximumBucketsDescription": "1つのデータソースが返せるバケットの最大数です", - "timelion.uiSettings.maximumBucketsLabel": "バケットの最大数", - "timelion.uiSettings.minimumIntervalDescription": "「auto」を使用時に計算される最小の間隔です", - "timelion.uiSettings.minimumIntervalLabel": "最低間隔", - "timelion.uiSettings.quandlKeyDescription": "{experimentalLabel} www.quandl.com からの API キーです", - "timelion.uiSettings.quandlKeyLabel": "Quandl キー", - "timelion.uiSettings.targetBucketsDescription": "自動間隔の使用時に目標となるバケット数です。", - "timelion.uiSettings.targetBucketsLabel": "目標バケット数", - "timelion.uiSettings.timeFieldDescription": "{esParam} の使用時にタイムスタンプを含むデフォルトのフィールドです", - "timelion.uiSettings.timeFieldLabel": "時間フィールド", - "timelion.vis.expressionLabel": "Timelion 式", - "timelion.vis.interval.auto": "自動", - "timelion.vis.interval.day": "1日", - "timelion.vis.interval.hour": "1時間", - "timelion.vis.interval.minute": "1分", - "timelion.vis.interval.month": "1か月", - "timelion.vis.interval.second": "1秒", - "timelion.vis.interval.week": "1週間", - "timelion.vis.interval.year": "1年", - "timelion.vis.intervalLabel": "間隔", - "timelion.vis.invalidIntervalErrorMessage": "無効な間隔フォーマット。", - "timelion.vis.selectIntervalHelpText": "オプションを選択するかカスタム値を作成します。例:30s、20m、24h、2d、1w、1M", - "timelion.vis.selectIntervalPlaceholder": "間隔を選択", - "uiActions.actionPanel.more": "詳細", - "uiActions.actionPanel.title": "オプション", - "uiActions.errors.incompatibleAction": "操作に互換性がありません", - "uiActions.triggers.rowClickkDescription": "テーブル行をクリック", - "uiActions.triggers.rowClickTitle": "テーブル行クリック", - "usageCollection.stats.notReadyMessage": "まだ統計が準備できていません。しばらくたってから再試行してください。", - "visDefaultEditor.advancedToggle.advancedLinkLabel": "高度な設定", - "visDefaultEditor.agg.disableAggButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを無効にする", - "visDefaultEditor.agg.enableAggButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを有効にする", - "visDefaultEditor.agg.errorsAriaLabel": "{schemaTitle} {aggTitle} アグリゲーションにエラーがあります", - "visDefaultEditor.agg.modifyPriorityButtonTooltip": "ドラッグして {schemaTitle} {aggTitle} の優先度を変更する", - "visDefaultEditor.agg.removeDimensionButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを削除する", - "visDefaultEditor.agg.toggleEditorButtonAriaLabel": "{schema} エディターを切り替える", - "visDefaultEditor.aggAdd.addButtonLabel": "追加", - "visDefaultEditor.aggAdd.addGroupButtonLabel": "{groupNameLabel}を追加", - "visDefaultEditor.aggAdd.addSubGroupButtonLabel": "サブ {groupNameLabel} を追加", - "visDefaultEditor.aggAdd.bucketLabel": "バケット", - "visDefaultEditor.aggAdd.maxBuckets": "最大{groupNameLabel}数に達しました", - "visDefaultEditor.aggAdd.metricLabel": "メトリック", - "visDefaultEditor.aggParams.errors.aggWrongRunOrderErrorMessage": "「{schema}」集約は他のバケットの前に実行する必要があります!", - "visDefaultEditor.aggSelect.aggregationLabel": "集約", - "visDefaultEditor.aggSelect.helpLinkLabel": "{aggTitle}のヘルプ", - "visDefaultEditor.aggSelect.noCompatibleAggsDescription": "インデックスパターン{indexPatternTitle}には集約可能なフィールドが含まれていません。", - "visDefaultEditor.aggSelect.selectAggPlaceholder": "集約を選択してください", - "visDefaultEditor.aggSelect.subAggregationLabel": "サブ集約", - "visDefaultEditor.buckets.mustHaveBucketErrorMessage": "「日付ヒストグラム」または「ヒストグラム」集約のバケットを追加します。", - "visDefaultEditor.controls.aggNotValidLabel": "- 無効な集約 -", - "visDefaultEditor.controls.aggregateWith.noAggsErrorTooltip": "選択されたフィールドには互換性のある集約がありません。", - "visDefaultEditor.controls.aggregateWithLabel": "集約:", - "visDefaultEditor.controls.aggregateWithTooltip": "複数ヒットまたは複数値のフィールドを 1 つのメトリックにまとめる方法を選択します。", - "visDefaultEditor.controls.changePrecisionLabel": "マップズームの精度を変更", - "visDefaultEditor.controls.columnsLabel": "列", - "visDefaultEditor.controls.customMetricLabel": "カスタムメトリック", - "visDefaultEditor.controls.dateRanges.acceptedDateFormatsLinkText": "許容可能な日付形式", - "visDefaultEditor.controls.dateRanges.addRangeButtonLabel": "範囲を追加", - "visDefaultEditor.controls.dateRanges.errorMessage": "各範囲は1つ以上の有効な日付にしてください。", - "visDefaultEditor.controls.dateRanges.fromColumnLabel": "開始:", - "visDefaultEditor.controls.dateRanges.removeRangeButtonAriaLabel": "{from}から{to}の範囲を削除", - "visDefaultEditor.controls.dateRanges.toColumnLabel": "終了:", - "visDefaultEditor.controls.definiteMetricLabel": "メトリック:{metric}", - "visDefaultEditor.controls.dotSizeRatioHelpText": "最小の点から最大の点までの半径の比率を変更します。", - "visDefaultEditor.controls.dotSizeRatioLabel": "点サイズ率", - "visDefaultEditor.controls.dropPartialBucketsLabel": "不完全なバケットをドロップ", - "visDefaultEditor.controls.dropPartialBucketsTooltip": "時間範囲外にわたるバケットを削除してヒストグラムが不完全なバケットで開始・終了しないようにします。", - "visDefaultEditor.controls.extendedBounds.errorMessage": "最低値は最大値以下でなければなりません。", - "visDefaultEditor.controls.extendedBounds.maxLabel": "最高", - "visDefaultEditor.controls.extendedBounds.minLabel": "最低", - "visDefaultEditor.controls.extendedBoundsLabel": "拡張された境界", - "visDefaultEditor.controls.extendedBoundsTooltip": "最低値と最高値は結果を絞るのではなく、結果セットのバウンドを拡張します。", - "visDefaultEditor.controls.field.fieldIsNotExists": "このオブジェクトに関連付けられたフィールド\"{fieldParameter}\"は、インデックスパターンに存在しません。別のフィールドを使用してください。", - "visDefaultEditor.controls.field.fieldLabel": "フィールド", - "visDefaultEditor.controls.field.invalidFieldForAggregation": "このアグリゲーションで使用するには、インデックスパターン\"{indexPatternTitle}\"の保存されたフィールド\"{fieldParameter}\"が無効です。新しいフィールドを選択してください。", - "visDefaultEditor.controls.field.noCompatibleFieldsDescription": "インデックスパターン` {indexPatternTitle} に次の互換性のあるフィールドタイプが 1 つも含まれていません:{fieldTypes}", - "visDefaultEditor.controls.field.selectFieldPlaceholder": "フィールドの選択", - "visDefaultEditor.controls.filters.addFilterButtonLabel": "フィルターを追加します", - "visDefaultEditor.controls.filters.definiteFilterLabel": "{index} ラベルでフィルタリング", - "visDefaultEditor.controls.filters.filterLabel": "{index} でフィルタリング", - "visDefaultEditor.controls.filters.labelPlaceholder": "ラベル", - "visDefaultEditor.controls.filters.removeFilterButtonAriaLabel": "このフィルターを削除", - "visDefaultEditor.controls.filters.toggleFilterButtonAriaLabel": "フィルターラベルを切り替える", - "visDefaultEditor.controls.includeExclude.addUnitButtonLabel": "値を追加", - "visDefaultEditor.controls.ipRanges.addRangeButtonLabel": "範囲を追加", - "visDefaultEditor.controls.ipRanges.cidrMaskAriaLabel": "CIDR マスク:{mask}", - "visDefaultEditor.controls.ipRanges.cidrMasksButtonLabel": "CIDR マスク", - "visDefaultEditor.controls.ipRanges.fromToButtonLabel": "開始/終了", - "visDefaultEditor.controls.ipRanges.ipRangeFromAriaLabel": "IP 範囲の開始値:{value}", - "visDefaultEditor.controls.ipRanges.ipRangeToAriaLabel": "IP 範囲の終了値:{value}", - "visDefaultEditor.controls.ipRanges.removeCidrMaskButtonAriaLabel": "{mask} の CIDR マスクの値を削除", - "visDefaultEditor.controls.ipRanges.removeEmptyCidrMaskButtonAriaLabel": "CIDR マスクのデフォルトの値を削除", - "visDefaultEditor.controls.ipRanges.removeRangeAriaLabel": "{from}から{to}の範囲を削除", - "visDefaultEditor.controls.ipRangesAriaLabel": "IP 範囲", - "visDefaultEditor.controls.jsonInputLabel": "JSON インプット", - "visDefaultEditor.controls.jsonInputTooltip": "ここに追加された JSON 形式のプロパティは、すべてこのセクションの Elasticsearch 集約定義に融合されます。用語集約における「shard_size」がその例です。", - "visDefaultEditor.controls.maxBars.autoPlaceholder": "自動", - "visDefaultEditor.controls.maxBars.maxBarsHelpText": "間隔は、使用可能なデータに基づいて、自動的に選択されます。棒の最大数は、詳細設定の{histogramMaxBars}以下でなければなりません。", - "visDefaultEditor.controls.maxBars.maxBarsLabel": "棒の最大数", - "visDefaultEditor.controls.metricLabel": "メトリック", - "visDefaultEditor.controls.metrics.bucketTitle": "バケット", - "visDefaultEditor.controls.metrics.metricTitle": "メトリック", - "visDefaultEditor.controls.numberInterval.autoInteralIsUsed": "自動間隔が使用されます", - "visDefaultEditor.controls.numberInterval.minimumIntervalLabel": "最低間隔", - "visDefaultEditor.controls.numberInterval.minimumIntervalTooltip": "入力された値により高度な設定の {histogramMaxBars} で指定されたよりも多くのバケットが作成される場合、間隔は自動的にスケーリングされます。", - "visDefaultEditor.controls.numberInterval.selectIntervalPlaceholder": "間隔を入力", - "visDefaultEditor.controls.numberList.addUnitButtonLabel": "{unitName} を追加", - "visDefaultEditor.controls.numberList.duplicateValueErrorMessage": "重複値。", - "visDefaultEditor.controls.numberList.enterValuePlaceholder": "値を入力", - "visDefaultEditor.controls.numberList.invalidAscOrderErrorMessage": "値は昇順になっていません。", - "visDefaultEditor.controls.numberList.invalidRangeErrorMessage": "値は {min} から {max} の範囲でなければなりません。", - "visDefaultEditor.controls.numberList.removeUnitButtonAriaLabel": "{value} のランク値を削除", - "visDefaultEditor.controls.onlyRequestDataAroundMapExtentLabel": "マップ範囲のデータのみリクエストしてください", - "visDefaultEditor.controls.onlyRequestDataAroundMapExtentTooltip": "geo_bounding_box フィルター集約を適用して、襟付きのマップビューボックスにサブジェクトエリアを絞ります", - "visDefaultEditor.controls.orderAgg.alphabeticalLabel": "アルファベット順", - "visDefaultEditor.controls.orderAgg.orderByLabel": "並び順", - "visDefaultEditor.controls.orderLabel": "順序", - "visDefaultEditor.controls.otherBucket.groupValuesLabel": "他の値を別のバケットにまとめる", - "visDefaultEditor.controls.otherBucket.groupValuesTooltip": "トップ N 以外の値はこのバケットにまとめられます。欠測値があるドキュメントを含めるには、「欠測値を表示」を有効にしてください。", - "visDefaultEditor.controls.otherBucket.showMissingValuesLabel": "欠測値を表示", - "visDefaultEditor.controls.otherBucket.showMissingValuesTooltip": "「文字列」タイプのフィールドにのみ使用できます。有効にすると、欠測値があるドキュメントが検索に含まれます。バケットがトップ N の場合、チャートに表示されます。トップ N ではなく、「他の値を別のバケットにまとえる」が有効な場合、Elasticsearch は欠測値を「他」のバケットに追加します。", - "visDefaultEditor.controls.percentileRanks.percentUnitNameText": "パーセント", - "visDefaultEditor.controls.percentileRanks.valuesLabel": "値", - "visDefaultEditor.controls.percentileRanks.valueUnitNameText": "値", - "visDefaultEditor.controls.percentiles.percentsLabel": "パーセント", - "visDefaultEditor.controls.placeMarkersOffGridLabel": "グリッド外にマーカーを配置(ジオセントロイドを使用)", - "visDefaultEditor.controls.precisionLabel": "精度", - "visDefaultEditor.controls.ranges.addRangeButtonLabel": "範囲を追加", - "visDefaultEditor.controls.ranges.fromLabel": "開始:", - "visDefaultEditor.controls.ranges.greaterThanOrEqualPrepend": "≥", - "visDefaultEditor.controls.ranges.greaterThanOrEqualTooltip": "よりも大きいまたは等しい", - "visDefaultEditor.controls.ranges.lessThanPrepend": "<", - "visDefaultEditor.controls.ranges.lessThanTooltip": "より小さい", - "visDefaultEditor.controls.ranges.removeRangeButtonAriaLabel": "{from}から{to}の範囲を削除", - "visDefaultEditor.controls.ranges.toLabel": "終了:", - "visDefaultEditor.controls.rowsLabel": "行", - "visDefaultEditor.controls.scaleMetricsLabel": "メトリック値のスケーリング(非推奨)", - "visDefaultEditor.controls.scaleMetricsTooltip": "これを有効にすると、手動最低間隔を選択し、広い間隔が使用された場合、カウントと合計メトリックが手動で選択された間隔にスケーリングされます。", - "visDefaultEditor.controls.showEmptyBucketsLabel": "空のバケットを表示", - "visDefaultEditor.controls.showEmptyBucketsTooltip": "結果のあるバケットだけでなくすべてのバケットを表示します", - "visDefaultEditor.controls.sizeLabel": "サイズ", - "visDefaultEditor.controls.sizeTooltip": "トップ K のヒットをリクエスト。複数ヒットは「集約基準」でまとめられます。", - "visDefaultEditor.controls.sortOnLabel": "並べ替えオン", - "visDefaultEditor.controls.splitByLegend": "行または列でチャートを分割します。", - "visDefaultEditor.controls.timeInterval.createsTooLargeBucketsTooltip": "この間隔は、選択された時間範囲に表示するには大きすぎるバケットが作成されるため、にスケーリングされています。", - "visDefaultEditor.controls.timeInterval.createsTooManyBucketsTooltip": "この間隔は選択された時間範囲に表示しきれない数のバケットが作成されるため、にスケーリングされています。", - "visDefaultEditor.controls.timeInterval.invalidFormatErrorMessage": "無効な間隔フォーマット。", - "visDefaultEditor.controls.timeInterval.minimumIntervalLabel": "最低間隔", - "visDefaultEditor.controls.timeInterval.scaledHelpText": "現在 {bucketDescription} にスケーリングされています", - "visDefaultEditor.controls.timeInterval.selectIntervalPlaceholder": "間隔を選択", - "visDefaultEditor.controls.timeInterval.selectOptionHelpText": "オプションを選択するかカスタム値を作成します。例:30s、20m、24h、2d、1w、1M", - "visDefaultEditor.controls.useAutoInterval": "自動間隔を使用", - "visDefaultEditor.editorConfig.dateHistogram.customInterval.helpText": "構成間隔の倍数でなければなりません:{interval}", - "visDefaultEditor.editorConfig.histogram.interval.helpText": "構成間隔の倍数でなければなりません:{interval}", - "visDefaultEditor.metrics.wrongLastBucketTypeErrorMessage": "「{type}」メトリック集約を使用する場合、最後のバケット集約は「Date Histogram」または「Histogram」でなければなりません。", - "visDefaultEditor.options.colorRanges.errorText": "各範囲は前の範囲よりも大きくなければなりません。", - "visDefaultEditor.options.colorSchema.colorSchemaLabel": "配色", - "visDefaultEditor.options.colorSchema.howToChangeColorsDescription": "それぞれの色は凡例で変更できます。", - "visDefaultEditor.options.colorSchema.resetColorsButtonLabel": "色をリセット", - "visDefaultEditor.options.colorSchema.reverseColorSchemaLabel": "図表を反転", - "visDefaultEditor.options.percentageMode.documentationLabel": "Numeral.jsドキュメント", - "visDefaultEditor.options.percentageMode.numeralLabel": "形式パターン", - "visDefaultEditor.options.percentageMode.percentageModeLabel": "百分率モード", - "visDefaultEditor.options.rangeErrorMessage": "値は{min}と{max}の間でなければなりません", - "visDefaultEditor.options.vislibBasicOptions.legendPositionLabel": "凡例位置", - "visDefaultEditor.options.vislibBasicOptions.showTooltipLabel": "ツールヒントを表示", - "visDefaultEditor.palettePicker.label": "カラーパレット", - "visDefaultEditor.sidebar.autoApplyChangesLabelOff": "自動適用がオフです", - "visDefaultEditor.sidebar.autoApplyChangesLabelOn": "自動適用がオンです", - "visDefaultEditor.sidebar.autoApplyChangesOff": "オフ", - "visDefaultEditor.sidebar.autoApplyChangesOffLabel": "自動適用がオフです", - "visDefaultEditor.sidebar.autoApplyChangesOn": "オン", - "visDefaultEditor.sidebar.autoApplyChangesOnLabel": "自動適用がオンです", - "visDefaultEditor.sidebar.autoApplyChangesTooltip": "変更されるごとにビジュアライゼーションを自動的に更新します。", - "visDefaultEditor.sidebar.collapseButtonAriaLabel": "サイドバーを切り替える", - "visDefaultEditor.sidebar.discardChangesButtonLabel": "破棄", - "visDefaultEditor.sidebar.errorButtonTooltip": "ハイライトされたフィールドのエラーを解決する必要があります。", - "visDefaultEditor.sidebar.indexPatternAriaLabel": "インデックスパターン:{title}", - "visDefaultEditor.sidebar.savedSearch.goToDiscoverButtonText": "Discover にこの検索を表示", - "visDefaultEditor.sidebar.savedSearch.linkButtonAriaLabel": "保存された検索へのリンク。クリックして詳細を確認するかリンクを解除します。", - "visDefaultEditor.sidebar.savedSearch.popoverHelpText": "保存したこの検索に今後加える修正は、ビジュアライゼーションに反映されます。自動更新を無効にするには、リンクを削除します。", - "visDefaultEditor.sidebar.savedSearch.popoverTitle": "保存された検索にリンクされています", - "visDefaultEditor.sidebar.savedSearch.titleAriaLabel": "保存された検索:{title}", - "visDefaultEditor.sidebar.savedSearch.unlinkSavedSearchButtonText": "保存された検索へのリンクを削除", - "visDefaultEditor.sidebar.tabs.dataLabel": "データ", - "visDefaultEditor.sidebar.tabs.optionsLabel": "オプション", - "visDefaultEditor.sidebar.updateChartButtonLabel": "更新", - "visDefaultEditor.sidebar.updateInfoTooltip": "CTRL + Enterは更新のショートカットです。", - "visTypeMarkdown.function.font.help": "フォント設定です。", - "visTypeMarkdown.function.help": "マークダウンビジュアライゼーション", - "visTypeMarkdown.function.markdown.help": "レンダリングするマークダウン", - "visTypeMarkdown.function.openLinksInNewTab.help": "新規タブでリンクを開きます", - "visTypeMarkdown.markdownDescription": "テキストと画像をダッシュボードに追加します。", - "visTypeMarkdown.markdownTitleInWizard": "テキスト", - "visTypeMarkdown.params.fontSizeLabel": "ポイント単位のベースフォントサイズです。", - "visTypeMarkdown.params.helpLinkLabel": "ヘルプ", - "visTypeMarkdown.params.openLinksLabel": "新規タブでリンクを開く", - "visTypeMarkdown.tabs.dataText": "データ", - "visTypeMarkdown.tabs.optionsText": "オプション", - "visTypeMetric.colorModes.backgroundOptionLabel": "背景", - "visTypeMetric.colorModes.labelsOptionLabel": "ラベル", - "visTypeMetric.colorModes.noneOptionLabel": "なし", - "visTypeMetric.metricDescription": "計算結果を単独の数字として表示します。", - "visTypeMetric.metricTitle": "メトリック", - "visTypeMetric.params.color.useForLabel": "使用する色", - "visTypeMetric.params.rangesTitle": "範囲", - "visTypeMetric.params.settingsTitle": "設定", - "visTypeMetric.params.showTitleLabel": "タイトルを表示", - "visTypeMetric.params.style.fontSizeLabel": "ポイント単位のメトリックフォントサイズ", - "visTypeMetric.params.style.styleTitle": "スタイル", - "visTypeMetric.schemas.metricTitle": "メトリック", - "visTypeMetric.schemas.splitGroupTitle": "グループを分割", - "expressionMetricVis.function.dimension.splitGroup": "グループを分割", - "expressionMetricVis.function.bucket.help": "バケットディメンションの構成です。", - "expressionMetricVis.function.colorMode.help": "色を変更するメトリックの部分", - "expressionMetricVis.function.dimension.metric": "メトリック", - "expressionMetricVis.function.font.help": "フォント設定です。", - "expressionMetricVis.function.help": "メトリックビジュアライゼーション", - "expressionMetricVis.function.metric.help": "メトリックディメンションの構成です。", - "expressionMetricVis.function.percentageMode.help": "百分率モードでメトリックを表示します。colorRange を設定する必要があります。", - "expressionMetricVis.function.showLabels.help": "メトリック値の下にラベルを表示します。", - "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.deprecation": "Visualizeの円グラフのレガシーグラフライブラリは廃止予定であり、8.0以降ではサポートされません。", - "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.description": "Visualizeで円グラフのレガシーグラフライブラリを有効にします。", - "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.name": "円グラフのレガシーグラフライブラリ", - "visTypePie.controls.truncateLabel": "切り捨て", - "visTypePie.editors.pie.addLegendLabel": "凡例を表示", - "visTypePie.editors.pie.decimalSliderLabel": "割合の最大小数点桁数", - "visTypePie.editors.pie.distinctColorsLabel": "スライスごとに異なる色を使用", - "visTypePie.editors.pie.donutLabel": "ドーナッツ", - "visTypePie.editors.pie.labelPositionLabel": "ラベル位置", - "visTypePie.editors.pie.labelsSettingsTitle": "ラベル設定", - "visTypePie.editors.pie.nestedLegendLabel": "ネスト凡例", - "visTypePie.editors.pie.pieSettingsTitle": "パイ設定", - "visTypePie.editors.pie.showLabelsLabel": "ラベルを表示", - "visTypePie.editors.pie.showTopLevelOnlyLabel": "トップレベルのみ表示", - "visTypePie.editors.pie.showValuesLabel": "値を表示", - "visTypePie.editors.pie.valueFormatsLabel": "値", - "visTypePie.function.adimension.buckets": "スライス", - "visTypePie.function.args.addLegendHelpText": "グラフ凡例を表示", - "visTypePie.function.args.addTooltipHelpText": "スライスにカーソルを置いたときにツールチップを表示", - "visTypePie.function.args.bucketsHelpText": "バケットディメンション構成", - "visTypePie.function.args.distinctColorsHelpText": "スライスごとに異なる色をマッピングします。同じ値のスライスは同じ色になります", - "visTypePie.function.args.isDonutHelpText": "円グラフをドーナツグラフとして表示します", - "visTypePie.function.args.labelsHelpText": "円グラフラベル構成", - "visTypePie.function.args.legendPositionHelpText": "グラフの上、下、左、右に凡例を配置", - "visTypePie.function.args.metricHelpText": "メトリックディメンション構成", - "visTypePie.function.args.nestedLegendHelpText": "詳細凡例を表示", - "visTypePie.function.args.paletteHelpText": "グラフパレット名を定義します", - "visTypePie.function.args.splitColumnHelpText": "列ディメンション構成で分割", - "visTypePie.function.args.splitRowHelpText": "行ディメンション構成で分割", - "visTypePie.function.dimension.metric": "スライスサイズ", - "visTypePie.function.dimension.splitcolumn": "列分割", - "visTypePie.function.dimension.splitrow": "行分割", - "visTypePie.function.pieLabels.help": "円グラフラベルオブジェクトを生成します", - "visTypePie.function.pieLabels.lastLevel.help": "最上位のラベルのみを表示", - "visTypePie.function.pieLabels.percentDecimals.help": "割合として値に表示される10進数を定義します", - "visTypePie.function.pieLabels.position.help": "ラベル位置を定義します", - "visTypePie.function.pieLabels.show.help": "円グラフのラベルを表示します", - "visTypePie.function.pieLabels.truncate.help": "スライス値が表示される文字数を定義します", - "visTypePie.function.pieLabels.values.help": "スライス内の値を定義します", - "visTypePie.function.pieLabels.valuesFormat.help": "値の形式を定義します", - "visTypePie.functions.help": "パイビジュアライゼーション", - "visTypePie.labelPositions.insideOrOutsideText": "内部または外部", - "visTypePie.labelPositions.insideText": "内部", - "visTypePie.legend.filterForValueButtonAriaLabel": "値でフィルター", - "visTypePie.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", - "visTypePie.legend.filterOutValueButtonAriaLabel": "値を除外", - "visTypePie.legendPositions.bottomText": "一番下", - "visTypePie.legendPositions.leftText": "左", - "visTypePie.legendPositions.rightText": "右", - "visTypePie.legendPositions.topText": "トップ", - "visTypePie.pie.metricTitle": "スライスサイズ", - "visTypePie.pie.pieDescription": "全体に対する比率でデータを比較します。", - "visTypePie.pie.pieTitle": "円", - "visTypePie.pie.segmentTitle": "スライスの分割", - "visTypePie.pie.splitTitle": "チャートを分割", - "visTypePie.valuesFormats.percent": "割合を表示", - "visTypePie.valuesFormats.value": "値を表示", - "visTypeTable.defaultAriaLabel": "データ表ビジュアライゼーション", - "visTypeTable.function.adimension.buckets": "バケット", - "visTypeTable.function.args.bucketsHelpText": "バケットディメンション構成", - "visTypeTable.function.args.metricsHelpText": "メトリックディメンション構成", - "visTypeTable.function.args.percentageColHelpText": "割合を表示する列の名前", - "visTypeTable.function.args.perPageHelpText": "表ページの行数はページネーションで使用されます", - "visTypeTable.function.args.rowHelpText": "行値は分割表モードで使用されます。「true」に設定すると、行で分割します", - "visTypeTable.function.args.showToolbarHelpText": "「true」に設定すると、グリッドツールバーと[エクスポート]ボタンを表示します", - "visTypeTable.function.args.showTotalHelpText": "「true」に設定すると、合計行を表示します", - "visTypeTable.function.args.splitColumnHelpText": "列ディメンション構成で分割", - "visTypeTable.function.args.splitRowHelpText": "行ディメンション構成で分割", - "visTypeTable.function.args.titleHelpText": "ビジュアライゼーションタイトル。タイトルはデフォルトファイル名としてCSVエクスポートで使用されます", - "visTypeTable.function.args.totalFuncHelpText": "合計行の集計関数を指定します。使用可能なオプション:", - "visTypeTable.function.dimension.metrics": "メトリック", - "visTypeTable.function.dimension.splitColumn": "列で分割", - "visTypeTable.function.dimension.splitRow": "行で分割", - "visTypeTable.function.help": "表ビジュアライゼーション", - "visTypeTable.params.defaultPercentageCol": "非表示", - "visTypeTable.params.PercentageColLabel": "パーセンテージ列", - "visTypeTable.params.percentageTableColumnName": "{title} パーセント", - "visTypeTable.params.perPageLabel": "ページごとの最大行数", - "visTypeTable.params.showMetricsLabel": "すべてのバケット/レベルのメトリックを表示", - "visTypeTable.params.showPartialRowsLabel": "部分的な行を表示", - "visTypeTable.params.showPartialRowsTip": "部分データのある行を表示。表示されていなくてもすべてのバケット/レベルのメトリックが計算されます。", - "visTypeTable.params.showToolbarLabel": "ツールバーを表示", - "visTypeTable.params.showTotalLabel": "合計を表示", - "visTypeTable.params.totalFunctionLabel": "合計機能", - "visTypeTable.sort.ascLabel": "昇順で並べ替え", - "visTypeTable.sort.descLabel": "降順で並べ替え", - "visTypeTable.tableCellFilter.filterForValueAriaLabel": "値のフィルター:{cellContent}", - "visTypeTable.tableCellFilter.filterForValueText": "値でフィルター", - "visTypeTable.tableCellFilter.filterOutValueAriaLabel": "値の除外:{cellContent}", - "visTypeTable.tableCellFilter.filterOutValueText": "値を除外", - "visTypeTable.tableVisDescription": "行と列にデータを表示します。", - "visTypeTable.tableVisEditorConfig.schemas.bucketTitle": "行を分割", - "visTypeTable.tableVisEditorConfig.schemas.metricTitle": "メトリック", - "visTypeTable.tableVisEditorConfig.schemas.splitTitle": "テーブルを分割", - "visTypeTable.tableVisTitle": "データテーブル", - "visTypeTable.totalAggregations.averageText": "平均", - "visTypeTable.totalAggregations.countText": "カウント", - "visTypeTable.totalAggregations.maxText": "最高", - "visTypeTable.totalAggregations.minText": "最低", - "visTypeTable.totalAggregations.sumText": "合計", - "visTypeTable.vis.controls.exportButtonAriaLabel": "{dataGridAriaLabel} を CSV としてエクスポート", - "visTypeTable.vis.controls.exportButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", - "visTypeTable.vis.controls.exportButtonLabel": "エクスポート", - "visTypeTable.vis.controls.formattedCSVButtonLabel": "フォーマット済み", - "visTypeTable.vis.controls.rawCSVButtonLabel": "未加工", - "visTypeTagCloud.orientations.multipleText": "複数", - "visTypeTagCloud.orientations.rightAngledText": "直角", - "visTypeTagCloud.orientations.singleText": "単一", - "visTypeTagCloud.scales.linearText": "線形", - "visTypeTagCloud.scales.logText": "ログ", - "visTypeTagCloud.scales.squareRootText": "平方根", - "visTypeTagCloud.vis.schemas.metricTitle": "タグサイズ", - "visTypeTagCloud.vis.schemas.segmentTitle": "タグ", - "visTypeTagCloud.vis.tagCloudDescription": "単語の頻度とフォントサイズを表示します。", - "visTypeTagCloud.vis.tagCloudTitle": "タグクラウド", - "visTypeTagCloud.visParams.fontSizeLabel": "フォントサイズ範囲(ピクセル)", - "visTypeTagCloud.visParams.orientationsLabel": "方向", - "visTypeTagCloud.visParams.showLabelToggleLabel": "ラベルを表示", - "visTypeTagCloud.visParams.textScaleLabel": "テキストスケール", - "visTypeTimeseries.addDeleteButtons.addButtonDefaultTooltip": "追加", - "visTypeTimeseries.addDeleteButtons.cloneButtonDefaultTooltip": "クローンを作成", - "visTypeTimeseries.addDeleteButtons.deleteButtonDefaultTooltip": "削除", - "visTypeTimeseries.addDeleteButtons.reEnableTooltip": "再度有効にする", - "visTypeTimeseries.addDeleteButtons.temporarilyDisableTooltip": "一時的に無効にする", - "visTypeTimeseries.advancedSettings.maxBucketsText": "TSVBヒストグラム密度に影響します。「histogram:maxBars」よりも大きく設定する必要があります。", - "visTypeTimeseries.advancedSettings.maxBucketsTitle": "TSVBバケット制限", - "visTypeTimeseries.aggRow.addMetricButtonTooltip": "メトリックを追加", - "visTypeTimeseries.aggRow.deleteMetricButtonTooltip": "メトリックを削除", - "visTypeTimeseries.aggSelect.aggGroups.metricAggLabel": "メトリック集約", - "visTypeTimeseries.aggSelect.aggGroups.parentPipelineAggLabel": "親パイプライン集約", - "visTypeTimeseries.aggSelect.aggGroups.siblingPipelineAggLabel": "シブリングパイプライン集約", - "visTypeTimeseries.aggSelect.aggGroups.specialAggLabel": "特殊集約", - "visTypeTimeseries.aggSelect.selectAggPlaceholder": "集約を選択", - "visTypeTimeseries.annotationsEditor.addDataSourceButtonLabel": "データソースを追加", - "visTypeTimeseries.annotationsEditor.dataSourcesLabel": "データソース", - "visTypeTimeseries.annotationsEditor.fieldsLabel": "フィールド(必須 - コンマ区切りのパス)", - "visTypeTimeseries.annotationsEditor.howToCreateAnnotationDataSourceDescription": "下のボタンをクリックして注釈データソースを作成します。", - "visTypeTimeseries.annotationsEditor.iconLabel": "アイコン(必須)", - "visTypeTimeseries.annotationsEditor.ignoreGlobalFiltersLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.annotationsEditor.ignorePanelFiltersLabel": "パネルフィルターを無視しますか?", - "visTypeTimeseries.annotationsEditor.queryStringLabel": "クエリ文字列", - "visTypeTimeseries.annotationsEditor.rowTemplateHelpText": "eg.{rowTemplateExample}", - "visTypeTimeseries.annotationsEditor.rowTemplateLabel": "行テンプレート (必須)", - "visTypeTimeseries.annotationsEditor.timeFieldLabel": "時間フィールド (必須)", - "visTypeTimeseries.axisLabelOptions.axisLabel": "{unitValue} {unitString}単位", - "visTypeTimeseries.calculateLabel.bucketScriptsLabel": "バケットスクリプト", - "visTypeTimeseries.calculateLabel.countLabel": "カウント", - "visTypeTimeseries.calculateLabel.filterRatioLabel": "フィルターレート", - "visTypeTimeseries.calculateLabel.mathLabel": "数学処理", - "visTypeTimeseries.calculateLabel.positiveRateLabel": "{field} のカウンターレート", - "visTypeTimeseries.calculateLabel.seriesAggLabel": "数列アグリゲーション({metricFunction})", - "visTypeTimeseries.calculateLabel.staticValueLabel": "{metricValue} の静的値", - "visTypeTimeseries.calculateLabel.unknownLabel": "不明", - "visTypeTimeseries.calculation.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.calculation.painlessScriptDescription": "変数は {params}オブジェクトのキーです(例:{paramsName})。バケット間隔(ミリ秒単位)にアクセスするには {paramsInterval} を使用します。", - "visTypeTimeseries.calculation.painlessScriptLabel": "Painless スクリプト", - "visTypeTimeseries.calculation.variablesLabel": "変数", - "visTypeTimeseries.colorPicker.clearIconLabel": "クリア", - "visTypeTimeseries.colorPicker.notAccessibleAriaLabel": "カラーピッカー、アクセス不可", - "visTypeTimeseries.colorPicker.notAccessibleWithValueAriaLabel": "カラーピッカー({value})、アクセス不可", - "visTypeTimeseries.colorRules.adjustChartSizeAriaLabel": "上下の矢印を押してチャートサイズを調整します", - "visTypeTimeseries.colorRules.defaultPrimaryNameLabel": "背景", - "visTypeTimeseries.colorRules.defaultSecondaryNameLabel": "テキスト", - "visTypeTimeseries.colorRules.emptyLabel": "空", - "visTypeTimeseries.colorRules.greaterThanLabel": "> より大きい", - "visTypeTimeseries.colorRules.greaterThanOrEqualLabel": ">= greater than or equal", - "visTypeTimeseries.colorRules.ifMetricIsLabel": "メトリックが", - "visTypeTimeseries.colorRules.lessThanLabel": "< less than", - "visTypeTimeseries.colorRules.lessThanOrEqualLabel": "<= less than or equal", - "visTypeTimeseries.colorRules.setPrimaryColorLabel": "{primaryName} を設定", - "visTypeTimeseries.colorRules.setSecondaryColorLabel": "{secondaryName} を設定", - "visTypeTimeseries.colorRules.valueAriaLabel": "値", - "visTypeTimeseries.cumulativeSum.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.cumulativeSum.metricLabel": "メトリック", - "visTypeTimeseries.dataFormatPicker.bytesLabel": "バイト", - "visTypeTimeseries.dataFormatPicker.customLabel": "カスタム", - "visTypeTimeseries.dataFormatPicker.decimalPlacesLabel": "小数部分の桁数", - "visTypeTimeseries.dataFormatPicker.durationLabel": "期間", - "visTypeTimeseries.dataFormatPicker.formatPatternHelpText": "ドキュメント", - "visTypeTimeseries.dataFormatPicker.formatPatternLabel": "Numeral.js のフォーマットパターン (デフォルト: {defaultPattern})", - "visTypeTimeseries.dataFormatPicker.fromLabel": "開始:", - "visTypeTimeseries.dataFormatPicker.numberLabel": "数字", - "visTypeTimeseries.dataFormatPicker.percentLabel": "パーセント", - "visTypeTimeseries.dataFormatPicker.toLabel": "終了:", - "visTypeTimeseries.defaultDataFormatterLabel": "データフォーマッター", - "visTypeTimeseries.derivative.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.derivative.metricLabel": "メトリック", - "visTypeTimeseries.derivative.unitsLabel": "単位(1s、1m など)", - "visTypeTimeseries.durationOptions.daysLabel": "日", - "visTypeTimeseries.durationOptions.hoursLabel": "時間", - "visTypeTimeseries.durationOptions.humanize": "人間に読解可能", - "visTypeTimeseries.durationOptions.microsecondsLabel": "マイクロ秒", - "visTypeTimeseries.durationOptions.millisecondsLabel": "ミリ秒", - "visTypeTimeseries.durationOptions.minutesLabel": "分", - "visTypeTimeseries.durationOptions.monthsLabel": "か月", - "visTypeTimeseries.durationOptions.nanosecondsLabel": "ナノ秒", - "visTypeTimeseries.durationOptions.picosecondsLabel": "ピコ秒", - "visTypeTimeseries.durationOptions.secondsLabel": "秒", - "visTypeTimeseries.durationOptions.weeksLabel": "週間", - "visTypeTimeseries.durationOptions.yearsLabel": "年", - "visTypeTimeseries.emptyTextValue": "(空)", - "visTypeTimeseries.error.requestForPanelFailedErrorMessage": "このパネルのリクエストに失敗しました", - "visTypeTimeseries.fetchFields.loadIndexPatternFieldsErrorMessage": "index_pattern フィールドを読み込めません", - "visTypeTimeseries.fieldSelect.fieldIsNotValid": "\"{fieldParameter}\"フィールドは無効であり、現在のインデックスで使用できません。新しいフィールドを選択してください。", - "visTypeTimeseries.fieldSelect.selectFieldPlaceholder": "フィールドを選択してください...", - "visTypeTimeseries.filterRatio.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.filterRatio.denominatorLabel": "分母", - "visTypeTimeseries.filterRatio.fieldLabel": "フィールド", - "visTypeTimeseries.filterRatio.metricAggregationLabel": "メトリック集約", - "visTypeTimeseries.filterRatio.numeratorLabel": "分子", - "visTypeTimeseries.function.help": "TSVB ビジュアライゼーション", - "visTypeTimeseries.gauge.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.gauge.dataTab.metricsButtonLabel": "メトリック", - "visTypeTimeseries.gauge.editor.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.gauge.editor.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.gauge.editor.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.gauge.editor.labelPlaceholder": "ラベル", - "visTypeTimeseries.gauge.editor.toggleEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.gauge.optionsTab.backgroundColorLabel": "背景色:", - "visTypeTimeseries.gauge.optionsTab.colorRulesLabel": "カラールール", - "visTypeTimeseries.gauge.optionsTab.dataLabel": "データ", - "visTypeTimeseries.gauge.optionsTab.gaugeLineWidthLabel": "ゲージ線の幅", - "visTypeTimeseries.gauge.optionsTab.gaugeMaxLabel": "ゲージ最大値(自動は未入力)", - "visTypeTimeseries.gauge.optionsTab.gaugeStyleLabel": "ゲージスタイル", - "visTypeTimeseries.gauge.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.gauge.optionsTab.innerColorLabel": "内側の色:", - "visTypeTimeseries.gauge.optionsTab.innerLineWidthLabel": "内側の線の幅", - "visTypeTimeseries.gauge.optionsTab.optionsButtonLabel": "オプション", - "visTypeTimeseries.gauge.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.gauge.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.gauge.optionsTab.styleLabel": "スタイル", - "visTypeTimeseries.gauge.styleOptions.circleLabel": "円", - "visTypeTimeseries.gauge.styleOptions.halfCircleLabel": "半円", - "visTypeTimeseries.getInterval.daysLabel": "日", - "visTypeTimeseries.getInterval.hoursLabel": "時間", - "visTypeTimeseries.getInterval.minutesLabel": "分", - "visTypeTimeseries.getInterval.monthsLabel": "か月", - "visTypeTimeseries.getInterval.secondsLabel": "秒", - "visTypeTimeseries.getInterval.weeksLabel": "週間", - "visTypeTimeseries.getInterval.yearsLabel": "年", - "visTypeTimeseries.handleErrorResponse.unexpectedError": "予期しないエラー", - "visTypeTimeseries.iconSelect.asteriskLabel": "アスタリスク", - "visTypeTimeseries.iconSelect.bellLabel": "ベル", - "visTypeTimeseries.iconSelect.boltLabel": "ボルト", - "visTypeTimeseries.iconSelect.bombLabel": "ボム", - "visTypeTimeseries.iconSelect.bugLabel": "バグ", - "visTypeTimeseries.iconSelect.commentLabel": "コメント", - "visTypeTimeseries.iconSelect.exclamationCircleLabel": "マル感嘆符", - "visTypeTimeseries.iconSelect.exclamationTriangleLabel": "注意三角マーク", - "visTypeTimeseries.iconSelect.fireLabel": "炎", - "visTypeTimeseries.iconSelect.flagLabel": "旗", - "visTypeTimeseries.iconSelect.heartLabel": "ハート", - "visTypeTimeseries.iconSelect.mapMarkerLabel": "マップマーカー", - "visTypeTimeseries.iconSelect.mapPinLabel": "マップピン", - "visTypeTimeseries.iconSelect.starLabel": "星", - "visTypeTimeseries.iconSelect.tagLabel": "タグ", - "visTypeTimeseries.indexPattern.detailLevel": "詳細レベル", - "visTypeTimeseries.indexPattern.detailLevelAriaLabel": "詳細レベル", - "visTypeTimeseries.indexPattern.detailLevelHelpText": "時間範囲に基づき自動およびgte間隔を制御します。デフォルトの間隔は詳細設定の{histogramTargetBars}と{histogramMaxBars}の影響を受けます。", - "visTypeTimeseries.indexPattern.dropLastBucketLabel": "最後のバケットをドロップしますか?", - "visTypeTimeseries.indexPattern.finest": "最も細かい", - "visTypeTimeseries.indexPattern.intervalHelpText": "例:auto、1m、1d、7d、1y、>=1m", - "visTypeTimeseries.indexPattern.intervalLabel": "間隔", - "visTypeTimeseries.indexPattern.timeFieldLabel": "時間フィールド", - "visTypeTimeseries.indexPattern.timeRange.entireTimeRange": "時間範囲全体", - "visTypeTimeseries.indexPattern.timeRange.error": "現在のインデックスタイプでは\"{mode}\"を使用できません。", - "visTypeTimeseries.indexPattern.timeRange.hint": "この設定は、一致するドキュメントに使用される期間をコントロールします。「時間範囲全体」は、タイムピッカーで選択されたすべてのドキュメントと照会します。「最終値」は、期間の終了時から指定期間のドキュメントのみと照会します。", - "visTypeTimeseries.indexPattern.timeRange.label": "データ期間モード", - "visTypeTimeseries.indexPattern.timeRange.lastValue": "最終値", - "visTypeTimeseries.indexPattern.timeRange.selectTimeRange": "選択してください", - "visTypeTimeseries.indexPattern.сoarse": "粗い", - "visTypeTimeseries.kbnVisTypes.metricsDescription": "時系列データの高度な分析を実行します。", - "visTypeTimeseries.kbnVisTypes.metricsTitle": "TSVB", - "visTypeTimeseries.lastValueModeIndicator.lastBucketDate": "バケット:{lastBucketDate}", - "visTypeTimeseries.lastValueModeIndicator.lastValue": "最終値", - "visTypeTimeseries.lastValueModeIndicator.lastValueModeBadgeAriaLabel": "最後の値の詳細を表示", - "visTypeTimeseries.lastValueModeIndicator.panelInterval": "間隔:{formattedPanelInterval}", - "visTypeTimeseries.lastValueModePopover.gearButton": "最終値のインジケーター表示オプションを変更", - "visTypeTimeseries.lastValueModePopover.switch": "最終値モードを使用するときにラベルを表示", - "visTypeTimeseries.lastValueModePopover.title": "最終値オプション", - "visTypeTimeseries.markdown.alignOptions.bottomLabel": "一番下", - "visTypeTimeseries.markdown.alignOptions.middleLabel": "真ん中", - "visTypeTimeseries.markdown.alignOptions.topLabel": "一番上", - "visTypeTimeseries.markdown.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.markdown.dataTab.metricsButtonLabel": "メトリック", - "visTypeTimeseries.markdown.editor.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.markdown.editor.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.markdown.editor.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.markdown.editor.labelPlaceholder": "ラベル", - "visTypeTimeseries.markdown.editor.toggleEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.markdown.editor.variableNamePlaceholder": "変数名", - "visTypeTimeseries.markdown.optionsTab.backgroundColorLabel": "背景色:", - "visTypeTimeseries.markdown.optionsTab.customCSSLabel": "カスタム CSS(Less をサポート)", - "visTypeTimeseries.markdown.optionsTab.dataLabel": "データ", - "visTypeTimeseries.markdown.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.markdown.optionsTab.openLinksInNewTab": "新規タブでリンクを開きますか?", - "visTypeTimeseries.markdown.optionsTab.optionsButtonLabel": "オプション", - "visTypeTimeseries.markdown.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.markdown.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.markdown.optionsTab.showScrollbarsLabel": "スクロールバーを表示しますか?", - "visTypeTimeseries.markdown.optionsTab.styleLabel": "スタイル", - "visTypeTimeseries.markdown.optionsTab.verticalAlignmentLabel": "縦の配列:", - "visTypeTimeseries.markdownEditor.howToAccessEntireTreeDescription": "{all} という特殊な変数もあり、ツリー全体へのアクセスに使用できます。これは group by からデータのリストを作成する際に便利です:", - "visTypeTimeseries.markdownEditor.howToUseVariablesInMarkdownDescription": "次の変数は Markdown で Handlebar(mustache)構文を使用して使用できます。利用可能な表現は {handlebarLink} をご覧ください。", - "visTypeTimeseries.markdownEditor.howUseVariablesInMarkdownDescription.documentationLinkText": "ドキュメンテーションはここをクリックしてください", - "visTypeTimeseries.markdownEditor.nameLabel": "名前", - "visTypeTimeseries.markdownEditor.noVariablesAvailableDescription": "選択されたデータメトリックに利用可能な変数はありません。", - "visTypeTimeseries.markdownEditor.valueLabel": "値", - "visTypeTimeseries.math.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.math.expressionDescription.tinyMathLinkText": "TinyMath", - "visTypeTimeseries.math.expressionLabel": "表現", - "visTypeTimeseries.math.variablesLabel": "変数", - "visTypeTimeseries.metric.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.metric.dataTab.metricsButtonLabel": "メトリック", - "visTypeTimeseries.metric.editor.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.metric.editor.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.metric.editor.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.metric.editor.labelPlaceholder": "ラベル", - "visTypeTimeseries.metric.editor.toggleEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.metric.optionsTab.colorRulesLabel": "カラールール", - "visTypeTimeseries.metric.optionsTab.dataLabel": "データ", - "visTypeTimeseries.metric.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.metric.optionsTab.optionsButtonLabel": "オプション", - "visTypeTimeseries.metric.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.metric.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.metricMissingErrorMessage": "メトリックに {field} がありません", - "visTypeTimeseries.metricSelect.selectMetricPlaceholder": "メトリックを選択してください…", - "visTypeTimeseries.missingPanelConfigDescription": "「{modelType}」にパネル構成が欠けています", - "visTypeTimeseries.movingAverage.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.movingAverage.alpha": "アルファ", - "visTypeTimeseries.movingAverage.beta": "ベータ", - "visTypeTimeseries.movingAverage.gamma": "ガンマ", - "visTypeTimeseries.movingAverage.metricLabel": "メトリック", - "visTypeTimeseries.movingAverage.model.selectPlaceholder": "選択してください", - "visTypeTimeseries.movingAverage.modelLabel": "モデル", - "visTypeTimeseries.movingAverage.modelOptions.exponentiallyWeightedLabel": "指数加重", - "visTypeTimeseries.movingAverage.modelOptions.holtLinearLabel": "Holt-Linear", - "visTypeTimeseries.movingAverage.modelOptions.holtWintersLabel": "Holt-Winters", - "visTypeTimeseries.movingAverage.modelOptions.linearLabel": "線形", - "visTypeTimeseries.movingAverage.modelOptions.simpleLabel": "シンプル", - "visTypeTimeseries.movingAverage.multiplicative": "マルチキャプティブ", - "visTypeTimeseries.movingAverage.multiplicative.selectPlaceholder": "選択してください", - "visTypeTimeseries.movingAverage.multiplicativeOptions.false": "False", - "visTypeTimeseries.movingAverage.multiplicativeOptions.true": "True", - "visTypeTimeseries.movingAverage.period": "期間", - "visTypeTimeseries.movingAverage.windowSizeHint": "ウィンドウは、必ず、期間のサイズの 2 倍以上でなければなりません", - "visTypeTimeseries.movingAverage.windowSizeLabel": "ウィンドウサイズ", - "visTypeTimeseries.noButtonLabel": "いいえ", - "visTypeTimeseries.percentile.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.percentile.fieldLabel": "フィールド", - "visTypeTimeseries.percentile.fillToLabel": "次の基準に合わせる:", - "visTypeTimeseries.percentile.modeLabel": "モード:", - "visTypeTimeseries.percentile.modeOptions.bandLabel": "帯", - "visTypeTimeseries.percentile.modeOptions.lineLabel": "折れ線", - "visTypeTimeseries.percentile.percentile": "パーセンタイル", - "visTypeTimeseries.percentile.percentileAriaLabel": "パーセンタイル", - "visTypeTimeseries.percentile.percents": "パーセント", - "visTypeTimeseries.percentile.shadeLabel": "シェイド(0 から 1):", - "visTypeTimeseries.percentileHdr.numberOfSignificantValueDigits": "大きい値の桁数(HDR ヒストグラム)", - "visTypeTimeseries.percentileHdr.numberOfSignificantValueDigits.hint": "HDR ヒストグラム(ハイダイナミックレンジヒストグラム)は、レイテンシ測定のパーセンタイルランクを計算するときに役立つ別の実装方法です。メモリ消費量が多いというトレードオフがある t-digest 実装よりも高速になります。大きい値の桁数パラメーターは、大きい桁数のヒストグラムで値の解像度を指定します。", - "visTypeTimeseries.percentileRank.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.percentileRank.fieldLabel": "フィールド", - "visTypeTimeseries.percentileRank.values": "値", - "visTypeTimeseries.positiveOnly.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.positiveOnly.metricLabel": "メトリック", - "visTypeTimeseries.positiveRate.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.positiveRate.helpText": "このアグリゲーションは、{link}にのみ適用してください。これは、最大値、微分、正の値のみを適用するショートカットです。", - "visTypeTimeseries.positiveRate.helpTextLink": "単調に数値を増加しています", - "visTypeTimeseries.positiveRate.unitSelectPlaceholder": "スケールを選択...", - "visTypeTimeseries.positiveRate.unitsLabel": "スケール", - "visTypeTimeseries.postiveRate.fieldLabel": "フィールド", - "visTypeTimeseries.replaceVars.errors.markdownErrorDescription": "Markdown、既知の変数、ビルトイン Handlebars 表現のみが使用されていることを確認してください。", - "visTypeTimeseries.replaceVars.errors.markdownErrorTitle": "Markdown の処理中にエラーが発生", - "visTypeTimeseries.replaceVars.errors.unknownVarDescription": "{badVar} は不明な変数です", - "visTypeTimeseries.replaceVars.errors.unknownVarTitle": "Markdown の処理中にエラーが発生", - "visTypeTimeseries.searchStrategyUndefinedErrorMessage": "検索ストラテジが定義されていませんでした", - "visTypeTimeseries.serialDiff.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.serialDiff.lagLabel": "ラグ", - "visTypeTimeseries.serialDiff.metricLabel": "メトリック", - "visTypeTimeseries.series.missingAggregationKeyErrorMessage": "返答から集約キーが欠けています。このリクエストのパーミッションを確認してください。", - "visTypeTimeseries.series.shouldOneSeriesPerRequestErrorMessage": "1 つのリクエストに複数の数列を含めることはできません。", - "visTypeTimeseries.seriesAgg.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.seriesAgg.functionLabel": "関数", - "visTypeTimeseries.seriesAgg.functionOptions.avgLabel": "平均", - "visTypeTimeseries.seriesAgg.functionOptions.countLabel": "系列数", - "visTypeTimeseries.seriesAgg.functionOptions.cumulativeSumLabel": "累積和", - "visTypeTimeseries.seriesAgg.functionOptions.maxLabel": "最高", - "visTypeTimeseries.seriesAgg.functionOptions.minLabel": "最低", - "visTypeTimeseries.seriesAgg.functionOptions.overallAvgLabel": "全体平均", - "visTypeTimeseries.seriesAgg.functionOptions.overallMaxLabel": "全体最高", - "visTypeTimeseries.seriesAgg.functionOptions.overallMinLabel": "全体最低", - "visTypeTimeseries.seriesAgg.functionOptions.overallSumLabel": "全体合計", - "visTypeTimeseries.seriesAgg.functionOptions.sumLabel": "合計", - "visTypeTimeseries.seriesAgg.seriesAggIsNotCompatibleLabel": "数列集約は表の可視化に対応していません。", - "visTypeTimeseries.seriesConfig.filterLabel": "フィルター", - "visTypeTimeseries.seriesConfig.ignoreGlobalFilterDisabledTooltip": "グローバルフィルターはパネルオプションで無視されるため、これは無効です。", - "visTypeTimeseries.seriesConfig.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.seriesConfig.missingSeriesComponentDescription": "パネルタイプ {panelType} の数列コンポーネントが欠けています", - "visTypeTimeseries.seriesConfig.offsetSeriesTimeLabel": "数列の時間を(1m, 1h, 1w, 1d)でオフセット", - "visTypeTimeseries.seriesConfig.templateHelpText": "eg. {templateExample}", - "visTypeTimeseries.seriesConfig.templateLabel": "テンプレート", - "visTypeTimeseries.sort.dragToSortAriaLabel": "ドラッグして並べ替えます", - "visTypeTimeseries.sort.dragToSortTooltip": "ドラッグして並べ替えます", - "visTypeTimeseries.splits.everything.groupByLabel": "グループ分けの条件", - "visTypeTimeseries.splits.filter.groupByLabel": "グループ分けの条件", - "visTypeTimeseries.splits.filter.queryStringLabel": "クエリ文字列", - "visTypeTimeseries.splits.filterItems.labelAriaLabel": "ラベル", - "visTypeTimeseries.splits.filterItems.labelPlaceholder": "ラベル", - "visTypeTimeseries.splits.filters.groupByLabel": "グループ分けの条件", - "visTypeTimeseries.splits.groupBySelect.modeOptions.everythingLabel": "すべて", - "visTypeTimeseries.splits.groupBySelect.modeOptions.filterLabel": "フィルター", - "visTypeTimeseries.splits.groupBySelect.modeOptions.filtersLabel": "フィルター", - "visTypeTimeseries.splits.groupBySelect.modeOptions.termsLabel": "用語", - "visTypeTimeseries.splits.terms.byLabel": "グループ基準", - "visTypeTimeseries.splits.terms.defaultCountLabel": "ドキュメントカウント(デフォルト)", - "visTypeTimeseries.splits.terms.directionLabel": "方向", - "visTypeTimeseries.splits.terms.dirOptions.ascendingLabel": "昇順", - "visTypeTimeseries.splits.terms.dirOptions.descendingLabel": "降順", - "visTypeTimeseries.splits.terms.excludeLabel": "除外", - "visTypeTimeseries.splits.terms.groupByLabel": "グループ分けの条件", - "visTypeTimeseries.splits.terms.includeLabel": "含める", - "visTypeTimeseries.splits.terms.orderByLabel": "並び順", - "visTypeTimeseries.splits.terms.sizePlaceholder": "サイズ", - "visTypeTimeseries.splits.terms.termsLabel": "用語", - "visTypeTimeseries.splits.terms.topLabel": "一番上", - "visTypeTimeseries.static.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.static.staticValuesLabel": "固定値", - "visTypeTimeseries.stdAgg.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.stdAgg.fieldLabel": "フィールド", - "visTypeTimeseries.stdDeviation.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.stdDeviation.fieldLabel": "フィールド", - "visTypeTimeseries.stdDeviation.modeLabel": "モード", - "visTypeTimeseries.stdDeviation.modeOptions.boundsBandLabel": "境界バンド", - "visTypeTimeseries.stdDeviation.modeOptions.lowerBoundLabel": "下の境界", - "visTypeTimeseries.stdDeviation.modeOptions.rawLabel": "未加工", - "visTypeTimeseries.stdDeviation.modeOptions.upperBoundLabel": "上の境界", - "visTypeTimeseries.stdDeviation.sigmaLabel": "シグマ", - "visTypeTimeseries.stdSibling.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.stdSibling.metricLabel": "メトリック", - "visTypeTimeseries.stdSibling.modeLabel": "モード", - "visTypeTimeseries.stdSibling.modeOptions.boundsBandLabel": "境界バンド", - "visTypeTimeseries.stdSibling.modeOptions.lowerBoundLabel": "下の境界", - "visTypeTimeseries.stdSibling.modeOptions.rawLabel": "未加工", - "visTypeTimeseries.stdSibling.modeOptions.upperBoundLabel": "上の境界", - "visTypeTimeseries.stdSibling.sigmaLabel": "シグマ", - "visTypeTimeseries.table.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.table.aggregateFunctionLabel": "集約関数", - "visTypeTimeseries.table.avgLabel": "平均", - "visTypeTimeseries.table.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.table.colorRulesLabel": "カラールール", - "visTypeTimeseries.table.columnNotSortableTooltip": "この列は並べ替えできません", - "visTypeTimeseries.table.cumulativeSumLabel": "累積和", - "visTypeTimeseries.table.dataTab.columnLabel": "列ラベル", - "visTypeTimeseries.table.dataTab.columnsButtonLabel": "列", - "visTypeTimeseries.table.dataTab.defineFieldDescription": "表の可視化は、用語集約でグループ分けの基準となるフィールドを定義する必要があります。", - "visTypeTimeseries.table.dataTab.groupByFieldLabel": "フィールドでグループ分け", - "visTypeTimeseries.table.dataTab.rowsLabel": "行", - "visTypeTimeseries.table.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.table.fieldLabel": "フィールド", - "visTypeTimeseries.table.filterLabel": "フィルター", - "visTypeTimeseries.table.labelAriaLabel": "ラベル", - "visTypeTimeseries.table.labelPlaceholder": "ラベル", - "visTypeTimeseries.table.maxLabel": "最高", - "visTypeTimeseries.table.minLabel": "最低", - "visTypeTimeseries.table.noResultsAvailableMessage": "結果がありません。", - "visTypeTimeseries.table.noResultsAvailableWithDescriptionMessage": "結果がありません。このビジュアライゼーションは、フィールドでグループを選択する必要があります。", - "visTypeTimeseries.table.optionsTab.dataLabel": "データ", - "visTypeTimeseries.table.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.table.optionsTab.itemUrlHelpText": "これは mustache テンプレートをサポートしています。{key} が用語に設定されています。", - "visTypeTimeseries.table.optionsTab.itemUrlLabel": "アイテム URL", - "visTypeTimeseries.table.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.table.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.table.overallAvgLabel": "全体平均", - "visTypeTimeseries.table.overallMaxLabel": "全体最高", - "visTypeTimeseries.table.overallMinLabel": "全体最低", - "visTypeTimeseries.table.overallSumLabel": "全体合計", - "visTypeTimeseries.table.showTrendArrowsLabel": "傾向矢印を表示しますか?", - "visTypeTimeseries.table.sumLabel": "合計", - "visTypeTimeseries.table.tab.metricsLabel": "メトリック", - "visTypeTimeseries.table.tab.optionsLabel": "オプション", - "visTypeTimeseries.table.templateHelpText": "eg.{templateExample}", - "visTypeTimeseries.table.templateLabel": "テンプレート", - "visTypeTimeseries.table.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.timeSeries.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.timeseries.annotationsTab.annotationsButtonLabel": "注釈", - "visTypeTimeseries.timeSeries.axisMaxLabel": "軸最大値", - "visTypeTimeseries.timeSeries.axisMinLabel": "軸最小値", - "visTypeTimeseries.timeSeries.axisPositionLabel": "軸の配置", - "visTypeTimeseries.timeSeries.barLabel": "バー", - "visTypeTimeseries.timeSeries.chartBar.chartTypeLabel": "チャートタイプ", - "visTypeTimeseries.timeSeries.chartBar.fillLabel": "塗りつぶし(0 から 1)", - "visTypeTimeseries.timeSeries.chartBar.lineWidthLabel": "線の幅", - "visTypeTimeseries.timeSeries.chartBar.stackedLabel": "スタック", - "visTypeTimeseries.timeSeries.chartLine.chartTypeLabel": "チャートタイプ", - "visTypeTimeseries.timeSeries.chartLine.fillLabel": "塗りつぶし(0 から 1)", - "visTypeTimeseries.timeSeries.chartLine.lineWidthLabel": "線の幅", - "visTypeTimeseries.timeSeries.chartLine.pointSizeLabel": "点のサイズ", - "visTypeTimeseries.timeSeries.chartLine.stackedLabel": "スタック", - "visTypeTimeseries.timeSeries.chartLine.stepsLabel": "ステップ", - "visTypeTimeseries.timeSeries.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.timeseries.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.timeSeries.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.timeSeries.gradientLabel": "グラデーション", - "visTypeTimeseries.timeSeries.hideInLegendLabel": "凡例で非表示", - "visTypeTimeseries.timeSeries.labelPlaceholder": "ラベル", - "visTypeTimeseries.timeSeries.leftLabel": "左", - "visTypeTimeseries.timeseries.legendPositionOptions.bottomLabel": "一番下", - "visTypeTimeseries.timeseries.legendPositionOptions.leftLabel": "左", - "visTypeTimeseries.timeseries.legendPositionOptions.rightLabel": "右", - "visTypeTimeseries.timeSeries.lineLabel": "折れ線", - "visTypeTimeseries.timeSeries.noneLabel": "なし", - "visTypeTimeseries.timeSeries.offsetSeriesTimeLabel": "数列の時間を(1m, 1h, 1w, 1d)でオフセット", - "visTypeTimeseries.timeseries.optionsTab.axisMaxLabel": "軸最大値", - "visTypeTimeseries.timeseries.optionsTab.axisMinLabel": "軸最小値", - "visTypeTimeseries.timeseries.optionsTab.axisPositionLabel": "軸の配置", - "visTypeTimeseries.timeseries.optionsTab.axisScaleLabel": "軸のスケール", - "visTypeTimeseries.timeseries.optionsTab.backgroundColorLabel": "背景色:", - "visTypeTimeseries.timeseries.optionsTab.dataLabel": "データ", - "visTypeTimeseries.timeseries.optionsTab.displayGridLabel": "グリッドを表示", - "visTypeTimeseries.timeseries.optionsTab.ignoreDaylightTimeLabel": "夏時間を無視しますか?", - "visTypeTimeseries.timeseries.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.timeseries.optionsTab.legendPositionLabel": "凡例位置", - "visTypeTimeseries.timeseries.optionsTab.maxLinesLabel": "最大凡例行", - "visTypeTimeseries.timeseries.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.timeseries.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.timeseries.optionsTab.showLegendLabel": "凡例を表示しますか?", - "visTypeTimeseries.timeseries.optionsTab.styleLabel": "スタイル", - "visTypeTimeseries.timeseries.optionsTab.tooltipMode": "ツールチップ", - "visTypeTimeseries.timeseries.optionsTab.truncateLegendLabel": "凡例を切り捨てますか?", - "visTypeTimeseries.timeSeries.percentLabel": "パーセント", - "visTypeTimeseries.timeseries.positionOptions.leftLabel": "左", - "visTypeTimeseries.timeseries.positionOptions.rightLabel": "右", - "visTypeTimeseries.timeSeries.rainbowLabel": "虹", - "visTypeTimeseries.timeSeries.rightLabel": "右", - "visTypeTimeseries.timeseries.scaleOptions.logLabel": "ログ", - "visTypeTimeseries.timeseries.scaleOptions.normalLabel": "標準", - "visTypeTimeseries.timeSeries.separateAxisLabel": "軸を分けますか?", - "visTypeTimeseries.timeSeries.splitColorThemeLabel": "カラーテーマを分割", - "visTypeTimeseries.timeSeries.stackedLabel": "スタック", - "visTypeTimeseries.timeSeries.stackedWithinSeriesLabel": "数列内でスタック", - "visTypeTimeseries.timeSeries.tab.metricsLabel": "メトリック", - "visTypeTimeseries.timeSeries.tab.optionsLabel": "オプション", - "visTypeTimeseries.timeSeries.templateHelpText": "eg.{templateExample}", - "visTypeTimeseries.timeSeries.templateLabel": "テンプレート", - "visTypeTimeseries.timeSeries.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.timeseries.tooltipOptions.showAll": "すべての値を表示", - "visTypeTimeseries.timeseries.tooltipOptions.showFocused": "フォーカスされた値を表示", - "visTypeTimeseries.topHit.aggregateWith.selectPlaceholder": "選択してください...", - "visTypeTimeseries.topHit.aggregateWithLabel": "集約:", - "visTypeTimeseries.topHit.aggregationLabel": "アグリゲーション", - "visTypeTimeseries.topHit.aggWithOptions.averageLabel": "平均", - "visTypeTimeseries.topHit.aggWithOptions.concatenate": "連結", - "visTypeTimeseries.topHit.aggWithOptions.maxLabel": "最高", - "visTypeTimeseries.topHit.aggWithOptions.minLabel": "最低", - "visTypeTimeseries.topHit.aggWithOptions.sumLabel": "合計", - "visTypeTimeseries.topHit.fieldLabel": "フィールド", - "visTypeTimeseries.topHit.order.selectPlaceholder": "選択してください...", - "visTypeTimeseries.topHit.orderByLabel": "並び順", - "visTypeTimeseries.topHit.orderLabel": "順序", - "visTypeTimeseries.topHit.orderOptions.ascLabel": "昇順", - "visTypeTimeseries.topHit.orderOptions.descLabel": "降順", - "visTypeTimeseries.topHit.sizeLabel": "サイズ", - "visTypeTimeseries.topN.addSeriesTooltip": "数列を追加", - "visTypeTimeseries.topN.cloneSeriesTooltip": "数列のクローンを作成", - "visTypeTimeseries.topN.dataTab.dataButtonLabel": "データ", - "visTypeTimeseries.topN.deleteSeriesTooltip": "数列を削除", - "visTypeTimeseries.topN.labelPlaceholder": "ラベル", - "visTypeTimeseries.topN.optionsTab.backgroundColorLabel": "背景色:", - "visTypeTimeseries.topN.optionsTab.colorRulesLabel": "カラールール", - "visTypeTimeseries.topN.optionsTab.dataLabel": "データ", - "visTypeTimeseries.topN.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", - "visTypeTimeseries.topN.optionsTab.itemUrlDescription": "これは mustache テンプレートをサポートしています。{key} が用語に設定されています。", - "visTypeTimeseries.topN.optionsTab.itemUrlLabel": "アイテム URL", - "visTypeTimeseries.topN.optionsTab.panelFilterLabel": "パネルフィルター", - "visTypeTimeseries.topN.optionsTab.panelOptionsButtonLabel": "パネルオプション", - "visTypeTimeseries.topN.optionsTab.styleLabel": "スタイル", - "visTypeTimeseries.topN.tab.metricsLabel": "メトリック", - "visTypeTimeseries.topN.tab.optionsLabel": "オプション", - "visTypeTimeseries.topN.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", - "visTypeTimeseries.units.auto": "自動", - "visTypeTimeseries.units.perDay": "日単位", - "visTypeTimeseries.units.perHour": "時間単位", - "visTypeTimeseries.units.perMillisecond": "ミリ秒単位", - "visTypeTimeseries.units.perMinute": "分単位", - "visTypeTimeseries.units.perSecond": "秒単位", - "visTypeTimeseries.unsupportedSplit.splitIsUnsupportedDescription": "{modelType} での分割はサポートされていません。", - "visTypeTimeseries.vars.variableNameAriaLabel": "変数名", - "visTypeTimeseries.vars.variableNamePlaceholder": "変数名", - "visTypeTimeseries.visEditorVisualization.applyChangesLabel": "変更を適用", - "visTypeTimeseries.visEditorVisualization.autoApplyLabel": "自動適用", - "visTypeTimeseries.visEditorVisualization.changesHaveNotBeenAppliedMessage": "ビジュアライゼーションへの変更が適用されました。", - "visTypeTimeseries.visEditorVisualization.changesSuccessfullyAppliedMessage": "最新の変更が適用されました。", - "visTypeTimeseries.visEditorVisualization.changesWillBeAutomaticallyAppliedMessage": "変更が自動的に適用されます。", - "visTypeTimeseries.visEditorVisualization.dataViewMode.dismissNoticeButtonText": "閉じる", - "visTypeTimeseries.visEditorVisualization.dataViewMode.link": "確認してください。", - "visTypeTimeseries.visPicker.gaugeLabel": "ゲージ", - "visTypeTimeseries.visPicker.metricLabel": "メトリック", - "visTypeTimeseries.visPicker.tableLabel": "表", - "visTypeTimeseries.visPicker.timeSeriesLabel": "時系列", - "visTypeTimeseries.visPicker.topNLabel": "トップ N", - "visTypeTimeseries.yesButtonLabel": "はい", - "visTypeVega.editor.formatError": "仕様のフォーマット中にエラーが発生", - "visTypeVega.editor.reformatAsHJSONButtonLabel": "HJSON に変換", - "visTypeVega.editor.reformatAsJSONButtonLabel": "JSON に変換しコメントを削除", - "visTypeVega.editor.vegaDocumentationLinkText": "Vega ドキュメント", - "visTypeVega.editor.vegaEditorOptionsButtonAriaLabel": "Vega エディターオプション", - "visTypeVega.editor.vegaHelpButtonAriaLabel": "Vega ヘルプ", - "visTypeVega.editor.vegaHelpLinkText": "Kibana Vega ヘルプ", - "visTypeVega.editor.vegaLiteDocumentationLinkText": "Vega-Lite ドキュメンテーション", - "visTypeVega.emsFileParser.emsFileNameDoesNotExistErrorMessage": "{emsfile} {emsfileName} が存在しません", - "visTypeVega.emsFileParser.missingNameOfFileErrorMessage": "{dataUrlParamValue} の {dataUrlParam} には {nameParam} パラメーター(ファイル名)が必要です", - "visTypeVega.esQueryParser.autointervalValueTypeErrorMessage": "{autointerval} は文字 {trueValue} または数字である必要があります", - "visTypeVega.esQueryParser.dataUrlMustNotHaveLegacyAndBodyQueryValuesAtTheSameTimeErrorMessage": "{dataUrlParam} はレガシー {legacyContext} と {bodyQueryConfigName} の値を同時に含めることができません。", - "visTypeVega.esQueryParser.dataUrlMustNotHaveLegacyContextTogetherWithContextOrTimefieldErrorMessage": "{dataUrlParam} は {legacyContext} と同時に {context} または {timefield} を含めることができません", - "visTypeVega.esQueryParser.legacyContextCanBeTrueErrorMessage": "レガシー {legacyContext} は {trueValue}(時間範囲ピッカーを無視)、または時間フィールドの名前のどちらかです。例:{timestampParam}", - "visTypeVega.esQueryParser.legacyUrlShouldChangeToWarningMessage": "レガシー {urlParam}: {legacyUrl} を {result} に変更する必要があります", - "visTypeVega.esQueryParser.shiftMustValueTypeErrorMessage": "{shiftParam} は数値でなければなりません", - "visTypeVega.esQueryParser.timefilterValueErrorMessage": "{timefilter} のプロパティは {trueValue}、{minValue}、または {maxValue} に設定する必要があります", - "visTypeVega.esQueryParser.unknownUnitValueErrorMessage": "不明な {unitParamName} 値。次のいずれかでなければなりません。[{unitParamValues}]", - "visTypeVega.esQueryParser.unnamedRequest": "無題のリクエスト#{index}", - "visTypeVega.esQueryParser.urlBodyValueTypeErrorMessage": "{configName} はオブジェクトでなければなりません", - "visTypeVega.esQueryParser.urlContextAndUrlTimefieldMustNotBeUsedErrorMessage": "{urlContext} と {timefield} は {queryParam} が設定されている場合使用できません", - "visTypeVega.function.help": "Vega ビジュアライゼーション", - "visTypeVega.inspector.dataSetsLabel": "データセット", - "visTypeVega.inspector.dataViewer.dataSetAriaLabel": "データセット", - "visTypeVega.inspector.dataViewer.gridAriaLabel": "{name}データグリッド", - "visTypeVega.inspector.signalValuesLabel": "単一の値", - "visTypeVega.inspector.signalViewer.gridAriaLabel": "単一の値のデータグリッド", - "visTypeVega.inspector.specLabel": "仕様", - "visTypeVega.inspector.specViewer.copyToClipboardLabel": "クリップボードにコピー", - "visTypeVega.inspector.vegaAdapter.signal": "信号", - "visTypeVega.inspector.vegaAdapter.value": "値", - "visTypeVega.inspector.vegaDebugLabel": "Vegaデバッグ", - "visTypeVega.mapView.experimentalMapLayerInfo": "マップレイヤーはまだ実験段階であり、オフィシャルGA機能のサポートSLAが適用されません。フィードバックがある場合は、{githubLink}で問題を報告してください。", - "visTypeVega.mapView.mapStyleNotFoundWarningMessage": "{mapStyleParam} が見つかりませんでした", - "visTypeVega.mapView.minZoomAndMaxZoomHaveBeenSwappedWarningMessage": "{minZoomPropertyName} と {maxZoomPropertyName} が交換されました", - "visTypeVega.mapView.resettingPropertyToMaxValueWarningMessage": "{name} を {max} にリセットしています", - "visTypeVega.mapView.resettingPropertyToMinValueWarningMessage": "{name} を {min} にリセットしています", - "visTypeVega.type.vegaDescription": "Vega を使用して、新しいタイプのビジュアライゼーションを作成します。", - "visTypeVega.type.vegaNote": "Vega 構文の知識が必要です。", - "visTypeVega.type.vegaTitleInWizard": "カスタムビジュアライゼーション", - "visTypeVega.urlParser.dataUrlRequiresUrlParameterInFormErrorMessage": "{dataUrlParam} には「{formLink}」の形で {urlParam} パラメーターが必要です", - "visTypeVega.urlParser.urlShouldHaveQuerySubObjectWarningMessage": "{urlObject} を使用するには {subObjectName} サブオブジェクトが必要です", - "visTypeVega.vegaParser.autoSizeDoesNotAllowFalse": "{autoSizeParam}が有効です。無効にするには、{autoSizeParam}を{noneParam}に設定してください", - "visTypeVega.vegaParser.baseView.externalUrlsAreNotEnabledErrorMessage": "外部 URL が無効です。{enableExternalUrls}を{kibanaConfigFileName}に追加", - "visTypeVega.vegaParser.baseView.functionIsNotDefinedForGraphErrorMessage": "このグラフには {funcName} が定義されていません", - "visTypeVega.vegaParser.baseView.indexNotFoundErrorMessage": "インデックス {index} が見つかりません", - "visTypeVega.vegaParser.baseView.timeValuesTypeErrorMessage": "時間フィルターの設定エラー:両方の時間の値は相対的または絶対的な日付である必要があります。 {start}、{end}", - "visTypeVega.vegaParser.baseView.unableToFindDefaultIndexErrorMessage": "デフォルトのインデックスが見つかりません", - "visTypeVega.vegaParser.centerOnMarkConfigValueTypeErrorMessage": "{configName} は {trueValue}、{falseValue}、または数字でなければなりません", - "visTypeVega.vegaParser.dataExceedsSomeParamsUseTimesLimitErrorMessage": "データには {urlParam}、{valuesParam}、 {sourceParam} の内複数を含めることができません", - "visTypeVega.vegaParser.hostConfigIsDeprecatedWarningMessage": "{deprecatedConfigName} は廃止されました。代わりに {newConfigName} を使用します。", - "visTypeVega.vegaParser.hostConfigValueTypeErrorMessage": "{configName} が含まれている場合、オブジェクトでなければなりません", - "visTypeVega.vegaParser.inputSpecDoesNotSpecifySchemaErrorMessage": "仕様に基づき、{schemaParam}フィールドには、\nVega({vegaSchemaUrl}を参照)または\nVega-Lite({vegaLiteSchemaUrl}を参照)の有効なURLを入力する必要があります。\nURLは識別子にすぎません。Kibanaやご使用のブラウザーがこのURLにアクセスすることはありません。", - "visTypeVega.vegaParser.invalidVegaSpecErrorMessage": "無効な Vega 仕様", - "visTypeVega.vegaParser.kibanaConfigValueTypeErrorMessage": "{configName} が含まれている場合、オブジェクトでなければなりません", - "visTypeVega.vegaParser.maxBoundsValueTypeWarningMessage": "{maxBoundsConfigName} は 4 つの数字の配列でなければなりません", - "visTypeVega.vegaParser.notSupportedUrlTypeErrorMessage": "{urlObject} はサポートされていません", - "visTypeVega.vegaParser.notValidLibraryVersionForInputSpecWarningMessage": "インプット仕様に {schemaLibrary} {schemaVersion} が使用されていますが、現在のバージョンの {schemaLibrary} は {libraryVersion} です。", - "visTypeVega.vegaParser.paddingConfigValueTypeErrorMessage": "{configName} は数字でなければなりません", - "visTypeVega.vegaParser.someKibanaConfigurationIsNoValidWarningMessage": "{configName} は有効ではありません", - "visTypeVega.vegaParser.someKibanaParamValueTypeWarningMessage": "{configName} はブール値でなければなりません", - "visTypeVega.vegaParser.textTruncateConfigValueTypeErrorMessage": "{configName} はブール値でなければなりません", - "visTypeVega.vegaParser.unexpectedValueForPositionConfigurationErrorMessage": "{configurationName} 構成に予期せぬ値が使用されています", - "visTypeVega.vegaParser.unrecognizedControlsLocationValueErrorMessage": "認識されていない {controlsLocationParam} 値。[{locToDirMap}]のいずれかが想定されます。", - "visTypeVega.vegaParser.unrecognizedDirValueErrorMessage": "認識されていない {dirParam} 値。[{expectedValues}]のいずれかが想定されます。", - "visTypeVega.vegaParser.VLCompilerShouldHaveGeneratedSingleProtectionObjectErrorMessage": "内部エラー:Vega-Lite コンパイラーがシングルプロジェクションオブジェクトを生成したはずです", - "visTypeVega.vegaParser.widthAndHeightParamsAreIgnored": "{autoSizeParam}が有効であるため、{widthParam}および{heightParam}パラメーターは無視されます。無効にする{autoSizeParam}: {noneParam}を設定", - "visTypeVega.vegaParser.widthAndHeightParamsAreRequired": "{autoSizeParam}が{noneParam}に設定されているときには、カットまたは繰り返された{vegaLiteParam}仕様を使用している間に何も表示されません。修正するには、{autoSizeParam}を削除するか、{vegaParam}を使用してください。", - "visTypeVega.visualization.renderErrorTitle": "Vega エラー", - "visTypeVega.visualization.unableToRenderWithoutDataWarningMessage": "データなしにはレンダリングできません", - "visTypeVislib.advancedSettings.visualization.heatmap.maxBucketsText": "1つのデータソースが返せるバケットの最大数です。値が大きいとブラウザのレンダリング速度が下がる可能性があります。", - "visTypeVislib.advancedSettings.visualization.heatmap.maxBucketsTitle": "ヒートマップの最大バケット数", - "visTypeVislib.aggResponse.allDocsTitle": "すべてのドキュメント", - "visTypeVislib.controls.gaugeOptions.alignmentLabel": "アラインメント", - "visTypeVislib.controls.gaugeOptions.autoExtendRangeLabel": "範囲を自動拡張", - "visTypeVislib.controls.gaugeOptions.extendRangeTooltip": "範囲をデータの最高値に広げます。", - "visTypeVislib.controls.gaugeOptions.gaugeTypeLabel": "ゲージタイプ", - "visTypeVislib.controls.gaugeOptions.labelsTitle": "ラベル", - "visTypeVislib.controls.gaugeOptions.rangesTitle": "範囲", - "visTypeVislib.controls.gaugeOptions.showLabelsLabel": "ラベルを表示", - "visTypeVislib.controls.gaugeOptions.showLegendLabel": "凡例を表示", - "visTypeVislib.controls.gaugeOptions.showOutline": "アウトラインを表示", - "visTypeVislib.controls.gaugeOptions.showScaleLabel": "縮尺を表示", - "visTypeVislib.controls.gaugeOptions.styleTitle": "スタイル", - "visTypeVislib.controls.gaugeOptions.subTextLabel": "サブラベル", - "visTypeVislib.controls.heatmapOptions.colorLabel": "色", - "visTypeVislib.controls.heatmapOptions.colorScaleLabel": "カラースケール", - "visTypeVislib.controls.heatmapOptions.colorsNumberLabel": "色の数", - "visTypeVislib.controls.heatmapOptions.labelsTitle": "ラベル", - "visTypeVislib.controls.heatmapOptions.overwriteAutomaticColorLabel": "自動カラーを上書きする", - "visTypeVislib.controls.heatmapOptions.rotateLabel": "回転", - "visTypeVislib.controls.heatmapOptions.scaleToDataBoundsLabel": "データバウンドに合わせる", - "visTypeVislib.controls.heatmapOptions.showLabelsTitle": "ラベルを表示", - "visTypeVislib.controls.heatmapOptions.useCustomRangesLabel": "カスタム範囲を使用", - "visTypeVislib.editors.heatmap.basicSettingsTitle": "基本設定", - "visTypeVislib.editors.heatmap.heatmapSettingsTitle": "ヒートマップ設定", - "visTypeVislib.editors.heatmap.highlightLabel": "ハイライト範囲", - "visTypeVislib.editors.heatmap.highlightLabelTooltip": "チャートのカーソルを当てた部分と凡例の対応するラベルをハイライトします。", - "visTypeVislib.functions.pie.help": "パイビジュアライゼーション", - "visTypeVislib.functions.vislib.help": "Vislib ビジュアライゼーション", - "visTypeVislib.gauge.alignmentAutomaticTitle": "自動", - "visTypeVislib.gauge.alignmentHorizontalTitle": "横", - "visTypeVislib.gauge.alignmentVerticalTitle": "縦", - "visTypeVislib.gauge.gaugeDescription": "メトリックのステータスを示します。", - "visTypeVislib.gauge.gaugeTitle": "ゲージ", - "visTypeVislib.gauge.gaugeTypes.arcText": "弧形", - "visTypeVislib.gauge.gaugeTypes.circleText": "円", - "visTypeVislib.gauge.groupTitle": "グループを分割", - "visTypeVislib.gauge.metricTitle": "メトリック", - "visTypeVislib.goal.goalDescription": "メトリックがどのように目標まで進むのかを追跡します。", - "visTypeVislib.goal.goalTitle": "ゴール", - "visTypeVislib.goal.groupTitle": "グループを分割", - "visTypeVislib.goal.metricTitle": "メトリック", - "visTypeVislib.heatmap.groupTitle": "Y 軸", - "visTypeVislib.heatmap.heatmapDescription": "マトリックスのセルのデータを網掛けにします。", - "visTypeVislib.heatmap.heatmapTitle": "ヒートマップ", - "visTypeVislib.heatmap.metricTitle": "値", - "visTypeVislib.heatmap.segmentTitle": "X 軸", - "visTypeVislib.heatmap.splitTitle": "チャートを分割", - "visTypeVislib.vislib.errors.noResultsFoundTitle": "結果が見つかりませんでした", - "visTypeVislib.vislib.heatmap.maxBucketsText": "定義された数列が多すぎます({nr})。構成されている最大値は {max} です。", - "visTypeVislib.vislib.legend.filterForValueButtonAriaLabel": "値 {legendDataLabel} でフィルタリング", - "visTypeVislib.vislib.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", - "visTypeVislib.vislib.legend.filterOutValueButtonAriaLabel": "値 {legendDataLabel} を除外", - "visTypeVislib.vislib.legend.loadingLabel": "読み込み中…", - "visTypeVislib.vislib.legend.toggleLegendButtonAriaLabel": "凡例を切り替える", - "visTypeVislib.vislib.legend.toggleLegendButtonTitle": "凡例を切り替える", - "visTypeVislib.vislib.legend.toggleOptionsButtonAriaLabel": "{legendDataLabel}、トグルオプション", - "visTypeVislib.vislib.tooltip.fieldLabel": "フィールド", - "visTypeVislib.vislib.tooltip.valueLabel": "値", - "visTypeXy.aggResponse.allDocsTitle": "すべてのドキュメント", - "visTypeXy.area.areaDescription": "軸と線の間のデータを強調します。", - "visTypeXy.area.areaTitle": "エリア", - "visTypeXy.area.groupTitle": "系列を分割", - "visTypeXy.area.metricsTitle": "Y 軸", - "visTypeXy.area.radiusTitle": "点のサイズ", - "visTypeXy.area.segmentTitle": "X 軸", - "visTypeXy.area.splitTitle": "チャートを分割", - "visTypeXy.area.tabs.metricsAxesTitle": "メトリックと軸", - "visTypeXy.area.tabs.panelSettingsTitle": "パネル設定", - "visTypeXy.axisModes.normalText": "標準", - "visTypeXy.axisModes.percentageText": "割合(%)", - "visTypeXy.axisModes.silhouetteText": "シルエット", - "visTypeXy.axisModes.wiggleText": "振動", - "visTypeXy.categoryAxis.rotate.angledText": "傾斜", - "visTypeXy.categoryAxis.rotate.horizontalText": "横", - "visTypeXy.categoryAxis.rotate.verticalText": "縦", - "visTypeXy.chartModes.normalText": "標準", - "visTypeXy.chartModes.stackedText": "スタック", - "visTypeXy.chartTypes.areaText": "エリア", - "visTypeXy.chartTypes.barText": "バー", - "visTypeXy.chartTypes.lineText": "折れ線", - "visTypeXy.controls.pointSeries.categoryAxis.alignLabel": "配置", - "visTypeXy.controls.pointSeries.categoryAxis.filterLabelsLabel": "フィルターラベル", - "visTypeXy.controls.pointSeries.categoryAxis.labelsTitle": "ラベル", - "visTypeXy.controls.pointSeries.categoryAxis.positionLabel": "位置", - "visTypeXy.controls.pointSeries.categoryAxis.showLabel": "軸線とラベルを表示", - "visTypeXy.controls.pointSeries.categoryAxis.showLabelsLabel": "ラベルを表示", - "visTypeXy.controls.pointSeries.categoryAxis.xAxisTitle": "X 軸", - "visTypeXy.controls.pointSeries.gridAxis.dontShowLabel": "非表示", - "visTypeXy.controls.pointSeries.gridAxis.gridText": "グリッド", - "visTypeXy.controls.pointSeries.gridAxis.xAxisLinesLabel": "X 軸線を表示", - "visTypeXy.controls.pointSeries.gridAxis.yAxisLinesLabel": "Y 軸線を表示", - "visTypeXy.controls.pointSeries.series.chartTypeLabel": "チャートタイプ", - "visTypeXy.controls.pointSeries.series.circlesRadius": "点のサイズ", - "visTypeXy.controls.pointSeries.series.lineModeLabel": "線のモード", - "visTypeXy.controls.pointSeries.series.lineWidthLabel": "線の幅", - "visTypeXy.controls.pointSeries.series.metricsTitle": "メトリック", - "visTypeXy.controls.pointSeries.series.modeLabel": "モード", - "visTypeXy.controls.pointSeries.series.newAxisLabel": "新規軸…", - "visTypeXy.controls.pointSeries.series.showDotsLabel": "点を表示", - "visTypeXy.controls.pointSeries.series.showLineLabel": "線を表示", - "visTypeXy.controls.pointSeries.series.valueAxisLabel": "値軸", - "visTypeXy.controls.pointSeries.seriesAccordionAriaLabel": "{agg} オプションを切り替える", - "visTypeXy.controls.pointSeries.valueAxes.addButtonTooltip": "Y 軸を追加します", - "visTypeXy.controls.pointSeries.valueAxes.customExtentsLabel": "カスタム範囲", - "visTypeXy.controls.pointSeries.valueAxes.maxLabel": "最高", - "visTypeXy.controls.pointSeries.valueAxes.minErrorMessage": "最低値は最高値よりも低く設定する必要があります。", - "visTypeXy.controls.pointSeries.valueAxes.minLabel": "最低", - "visTypeXy.controls.pointSeries.valueAxes.minNeededScaleText": "ログスケールが選択されている場合、最低値は 0 よりも大きいものである必要があります。", - "visTypeXy.controls.pointSeries.valueAxes.modeLabel": "モード", - "visTypeXy.controls.pointSeries.valueAxes.positionLabel": "位置", - "visTypeXy.controls.pointSeries.valueAxes.removeButtonTooltip": "Y 軸を削除します", - "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBounds.boundsMargin": "境界マージン", - "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBounds.minNeededBoundsMargin": "境界マージンは 0 以上でなければなりません。", - "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBoundsLabel": "データバウンドに合わせる", - "visTypeXy.controls.pointSeries.valueAxes.scaleTypeLabel": "スケールタイプ", - "visTypeXy.controls.pointSeries.valueAxes.setAxisExtentsLabel": "軸範囲を設定", - "visTypeXy.controls.pointSeries.valueAxes.showLabel": "軸線とラベルを表示", - "visTypeXy.controls.pointSeries.valueAxes.titleLabel": "タイトル", - "visTypeXy.controls.pointSeries.valueAxes.toggleCustomExtendsAriaLabel": "カスタム範囲を切り替える", - "visTypeXy.controls.pointSeries.valueAxes.toggleOptionsAriaLabel": "{axisName} オプションを切り替える", - "visTypeXy.controls.pointSeries.valueAxes.yAxisTitle": "Y 軸", - "visTypeXy.controls.truncateLabel": "切り捨て", - "visTypeXy.editors.elasticChartsOptions.detailedTooltip.label": "詳細ツールチップを表示", - "visTypeXy.editors.elasticChartsOptions.detailedTooltip.tooltip": "単一の値を表示するためのレガシー詳細ツールチップを有効にします。無効にすると、新しい概要のツールチップに複数の値が表示されます。", - "visTypeXy.editors.elasticChartsOptions.fillOpacity": "塗りつぶしの透明度", - "visTypeXy.editors.elasticChartsOptions.missingValuesLabel": "欠測値を埋める", - "visTypeXy.editors.pointSeries.currentTimeMarkerLabel": "現在時刻マーカー", - "visTypeXy.editors.pointSeries.orderBucketsBySumLabel": "バケットを合計で並べ替え", - "visTypeXy.editors.pointSeries.settingsTitle": "設定", - "visTypeXy.editors.pointSeries.showLabels": "チャートに値を表示", - "visTypeXy.editors.pointSeries.thresholdLine.colorLabel": "線の色", - "visTypeXy.editors.pointSeries.thresholdLine.showLabel": "しきい線を表示", - "visTypeXy.editors.pointSeries.thresholdLine.styleLabel": "ラインスタイル", - "visTypeXy.editors.pointSeries.thresholdLine.valueLabel": "しきい値", - "visTypeXy.editors.pointSeries.thresholdLine.widthLabel": "線の幅", - "visTypeXy.editors.pointSeries.thresholdLineSettingsTitle": "しきい線", - "visTypeXy.fittingFunctionsTitle.carry": "最後(ギャップを最後の値で埋める)", - "visTypeXy.fittingFunctionsTitle.linear": "線形(ギャップを線で埋める)", - "visTypeXy.fittingFunctionsTitle.lookahead": "次(ギャップを次の値で埋める)", - "visTypeXy.fittingFunctionsTitle.none": "非表示(ギャップを埋めない)", - "visTypeXy.fittingFunctionsTitle.zero": "ゼロ(ギャップをゼロで埋める)", - "visTypeXy.function.adimension.bucket": "バケット", - "visTypeXy.function.adimension.dotSize": "点のサイズ", - "visTypeXy.function.args.addLegend.help": "グラフ凡例を表示", - "visTypeXy.function.args.addTimeMarker.help": "時刻マーカーを表示", - "visTypeXy.function.args.addTooltip.help": "カーソルを置いたときにツールチップを表示", - "visTypeXy.function.args.args.chartType.help": "グラフの種類。折れ線、エリア、ヒストグラムを選択できます", - "visTypeXy.function.args.categoryAxes.help": "カテゴリ軸構成", - "visTypeXy.function.args.detailedTooltip.help": "詳細ツールチップを表示", - "visTypeXy.function.args.fillOpacity.help": "エリアグラフの塗りつぶしの透明度を定義します", - "visTypeXy.function.args.fittingFunction.help": "適合関数の名前", - "visTypeXy.function.args.gridCategoryLines.help": "グラフにグリッドカテゴリ線を表示", - "visTypeXy.function.args.gridValueAxis.help": "グリッドを表示する値軸の名前", - "visTypeXy.function.args.isVislibVis.help": "古いvislib可視化を示すフラグ。色を含む後方互換性のために使用されます", - "visTypeXy.function.args.labels.help": "グラフラベル構成", - "visTypeXy.function.args.legendPosition.help": "グラフの上、下、左、右に凡例を配置", - "visTypeXy.function.args.orderBucketsBySum.help": "バケットを合計で並べ替え", - "visTypeXy.function.args.palette.help": "グラフパレット名を定義します", - "visTypeXy.function.args.radiusRatio.help": "点サイズ率", - "visTypeXy.function.args.seriesDimension.help": "系列ディメンション構成", - "visTypeXy.function.args.seriesParams.help": "系列パラメーター構成", - "visTypeXy.function.args.splitColumnDimension.help": "列ディメンション構成で分割", - "visTypeXy.function.args.splitRowDimension.help": "行ディメンション構成で分割", - "visTypeXy.function.args.thresholdLine.help": "しきい値線構成", - "visTypeXy.function.args.times.help": "時刻マーカー構成", - "visTypeXy.function.args.valueAxes.help": "値軸構成", - "visTypeXy.function.args.widthDimension.help": "幅ディメンション構成", - "visTypeXy.function.args.xDimension.help": "X軸ディメンション構成", - "visTypeXy.function.args.yDimension.help": "Y軸ディメンション構成", - "visTypeXy.function.args.zDimension.help": "Z軸ディメンション構成", - "visTypeXy.function.categoryAxis.help": "カテゴリ軸オブジェクトを生成します", - "visTypeXy.function.categoryAxis.id.help": "カテゴリ軸のID", - "visTypeXy.function.categoryAxis.labels.help": "軸ラベル構成", - "visTypeXy.function.categoryAxis.position.help": "カテゴリ軸の位置", - "visTypeXy.function.categoryAxis.scale.help": "スケール構成", - "visTypeXy.function.categoryAxis.show.help": "カテゴリ軸を表示", - "visTypeXy.function.categoryAxis.title.help": "カテゴリ軸のタイトル", - "visTypeXy.function.categoryAxis.type.help": "カテゴリ軸の種類。カテゴリまたは値を選択できます", - "visTypeXy.function.dimension.metric": "メトリック", - "visTypeXy.function.dimension.splitcolumn": "列分割", - "visTypeXy.function.dimension.splitrow": "行分割", - "visTypeXy.function.label.color.help": "ラベルの色", - "visTypeXy.function.label.filter.help": "軸の重なるラベルと重複を非表示にします", - "visTypeXy.function.label.help": "ラベルオブジェクトを生成します", - "visTypeXy.function.label.overwriteColor.help": "色を上書き", - "visTypeXy.function.label.rotate.help": "角度を回転", - "visTypeXy.function.label.show.help": "ラベルを表示", - "visTypeXy.function.label.truncate.help": "切り捨てる前の記号の数", - "visTypeXy.function.scale.boundsMargin.help": "境界のマージン", - "visTypeXy.function.scale.defaultYExtents.help": "データ境界にスケールできるフラグ", - "visTypeXy.function.scale.help": "スケールオブジェクトを生成します", - "visTypeXy.function.scale.max.help": "最高値", - "visTypeXy.function.scale.min.help": "最低値", - "visTypeXy.function.scale.mode.help": "スケールモード。標準、割合、小刻み、シルエットを選択できます", - "visTypeXy.function.scale.setYExtents.help": "独自の範囲を設定できるフラグ", - "visTypeXy.function.scale.type.help": "スケールタイプ。線形、対数、平方根を選択できます", - "visTypeXy.function.seriesParam.circlesRadius.help": "円のサイズ(半径)を定義します", - "visTypeXy.function.seriesParam.drawLinesBetweenPoints.help": "点の間に線を描画", - "visTypeXy.function.seriesparam.help": "系列パラメーターオブジェクトを生成します", - "visTypeXy.function.seriesParam.id.help": "系列パラメーターのID", - "visTypeXy.function.seriesParam.interpolate.help": "補間モード。線形、カーディナル、階段状を選択できます", - "visTypeXy.function.seriesParam.label.help": "系列パラメーターの名前", - "visTypeXy.function.seriesParam.lineWidth.help": "線の幅", - "visTypeXy.function.seriesParam.mode.help": "グラフモード。積み上げまたは割合を選択できます", - "visTypeXy.function.seriesParam.show.help": "パラメーターを表示", - "visTypeXy.function.seriesParam.showCircles.help": "円を表示", - "visTypeXy.function.seriesParam.type.help": "グラフの種類。折れ線、エリア、ヒストグラムを選択できます", - "visTypeXy.function.seriesParam.valueAxis.help": "値軸の名前", - "visTypeXy.function.thresholdLine.color.help": "しきい線の色", - "visTypeXy.function.thresholdLine.help": "しきい値線オブジェクトを生成します", - "visTypeXy.function.thresholdLine.show.help": "しきい線を表示", - "visTypeXy.function.thresholdLine.style.help": "しきい線のスタイル。実線、点線、一点鎖線を選択できます", - "visTypeXy.function.thresholdLine.value.help": "しきい値", - "visTypeXy.function.thresholdLine.width.help": "しきい値線の幅", - "visTypeXy.function.timeMarker.class.help": "CSSクラス名", - "visTypeXy.function.timeMarker.color.help": "時刻マーカーの色", - "visTypeXy.function.timemarker.help": "時刻マーカーオブジェクトを生成します", - "visTypeXy.function.timeMarker.opacity.help": "時刻マーカーの透明度", - "visTypeXy.function.timeMarker.time.help": "正確な時刻", - "visTypeXy.function.timeMarker.width.help": "時刻マーカーの幅", - "visTypeXy.function.valueAxis.axisParams.help": "値軸パラメーター", - "visTypeXy.function.valueaxis.help": "値軸オブジェクトを生成します", - "visTypeXy.function.valueAxis.name.help": "値軸の名前", - "visTypeXy.functions.help": "XYビジュアライゼーション", - "visTypeXy.histogram.groupTitle": "系列を分割", - "visTypeXy.histogram.histogramDescription": "軸の縦棒にデータを表示します。", - "visTypeXy.histogram.histogramTitle": "縦棒", - "visTypeXy.histogram.metricTitle": "Y 軸", - "visTypeXy.histogram.radiusTitle": "点のサイズ", - "visTypeXy.histogram.segmentTitle": "X 軸", - "visTypeXy.histogram.splitTitle": "チャートを分割", - "visTypeXy.horizontalBar.groupTitle": "系列を分割", - "visTypeXy.horizontalBar.horizontalBarDescription": "軸の横棒にデータを表示します。", - "visTypeXy.horizontalBar.horizontalBarTitle": "横棒", - "visTypeXy.horizontalBar.metricTitle": "Y 軸", - "visTypeXy.horizontalBar.radiusTitle": "点のサイズ", - "visTypeXy.horizontalBar.segmentTitle": "X 軸", - "visTypeXy.horizontalBar.splitTitle": "チャートを分割", - "visTypeXy.interpolationModes.smoothedText": "スムーズ", - "visTypeXy.interpolationModes.steppedText": "ステップ", - "visTypeXy.interpolationModes.straightText": "直線", - "visTypeXy.legend.filterForValueButtonAriaLabel": "値でフィルター", - "visTypeXy.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", - "visTypeXy.legend.filterOutValueButtonAriaLabel": "値を除外", - "visTypeXy.legendPositions.bottomText": "一番下", - "visTypeXy.legendPositions.leftText": "左", - "visTypeXy.legendPositions.rightText": "右", - "visTypeXy.legendPositions.topText": "トップ", - "visTypeXy.line.groupTitle": "系列を分割", - "visTypeXy.line.lineDescription": "データを系列点として表示します。", - "visTypeXy.line.lineTitle": "折れ線", - "visTypeXy.line.metricTitle": "Y 軸", - "visTypeXy.line.radiusTitle": "点のサイズ", - "visTypeXy.line.segmentTitle": "X 軸", - "visTypeXy.line.splitTitle": "チャートを分割", - "visTypeXy.scaleTypes.linearText": "線形", - "visTypeXy.scaleTypes.logText": "ログ", - "visTypeXy.scaleTypes.squareRootText": "平方根", - "visTypeXy.thresholdLine.style.dashedText": "鎖線", - "visTypeXy.thresholdLine.style.dotdashedText": "点線", - "visTypeXy.thresholdLine.style.fullText": "完全", - "visualizations.advancedSettings.visualizeEnableLabsText": "ユーザーが実験的なビジュアライゼーションを作成、表示、編集できるようになります。無効の場合、\n ユーザーは本番準備が整ったビジュアライゼーションのみを利用できます。", - "visualizations.advancedSettings.visualizeEnableLabsTitle": "実験的なビジュアライゼーションを有効にする", - "visualizations.disabledLabVisualizationLink": "ドキュメンテーションを表示", - "visualizations.disabledLabVisualizationMessage": "ラボビジュアライゼーションを表示するには、高度な設定でラボモードをオンにしてください。", - "visualizations.disabledLabVisualizationTitle": "{title} はラボビジュアライゼーションです。", - "visualizations.displayName": "ビジュアライゼーション", - "visualizations.embeddable.placeholderTitle": "プレースホルダータイトル", - "visualizations.function.range.from.help": "範囲の開始", - "visualizations.function.range.help": "範囲オブジェクトを生成します", - "visualizations.function.range.to.help": "範囲の終了", - "visualizations.function.visDimension.accessor.help": "使用するデータセット内の列(列インデックスまたは列名)", - "visualizations.function.visDimension.error.accessor": "入力された列名は無効です。", - "visualizations.function.visDimension.format.help": "フォーマット", - "visualizations.function.visDimension.formatParams.help": "フォーマットパラメーター", - "visualizations.function.visDimension.help": "visConfig ディメンションオブジェクトを生成します", - "visualizations.function.xyDimension.aggType.help": "集約タイプ", - "visualizations.function.xydimension.help": "XYディメンションオブジェクトを生成します", - "visualizations.function.xyDimension.label.help": "ラベル", - "visualizations.function.xyDimension.params.help": "パラメーター", - "visualizations.function.xyDimension.visDimension.help": "ディメンションオブジェクト構成", - "visualizations.initializeWithoutIndexPatternErrorMessage": "インデックスパターンなしで集約を初期化しようとしています", - "visualizations.newVisWizard.aggBasedGroupDescription": "クラシック Visualize ライブラリを使用して、アグリゲーションに基づいてグラフを作成します。", - "visualizations.newVisWizard.aggBasedGroupTitle": "アグリゲーションに基づく", - "visualizations.newVisWizard.chooseSourceTitle": "ソースの選択", - "visualizations.newVisWizard.experimentalTitle": "実験的", - "visualizations.newVisWizard.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。", - "visualizations.newVisWizard.exploreOptionLinkText": "探索オプション", - "visualizations.newVisWizard.filterVisTypeAriaLabel": "ビジュアライゼーションのタイプでフィルタリング", - "visualizations.newVisWizard.goBackLink": "別のビジュアライゼーションを選択", - "visualizations.newVisWizard.helpTextAriaLabel": "タイプを選択してビジュアライゼーションの作成を始めましょう。ESC を押してこのモーダルを閉じます。Tab キーを押して次に進みます。", - "visualizations.newVisWizard.learnMoreText": "詳細について", - "visualizations.newVisWizard.newVisTypeTitle": "新規 {visTypeName}", - "visualizations.newVisWizard.readDocumentationLink": "ドキュメンテーションを表示", - "visualizations.newVisWizard.searchSelection.notFoundLabel": "一致インデックスまたは保存した検索が見つかりません。", - "visualizations.newVisWizard.searchSelection.savedObjectType.search": "保存検索", - "visualizations.newVisWizard.title": "新規ビジュアライゼーション", - "visualizations.newVisWizard.toolsGroupTitle": "ツール", - "visualizations.noResultsFoundTitle": "結果が見つかりませんでした", - "visualizations.savedObjectName": "ビジュアライゼーション", - "visualizations.savingVisualizationFailed.errorMsg": "ビジュアライゼーションの保存が失敗しました", - "visualizations.visualizationTypeInvalidMessage": "無効なビジュアライゼーションタイプ \"{visType}\"", - "visualize.badge.readOnly.text": "読み取り専用", - "visualize.badge.readOnly.tooltip": "ビジュアライゼーションをライブラリに保存できません", - "visualize.byValue_pageHeading": "{originatingApp}アプリに埋め込まれた{chartType}タイプのビジュアライゼーション", - "visualize.confirmModal.confirmTextDescription": "変更を保存せずにVisualizeエディターから移動しますか?", - "visualize.confirmModal.title": "保存されていない変更", - "visualize.createVisualization.failedToLoadErrorMessage": "ビジュアライゼーションを読み込めませんでした", - "visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "indexPatternまたはsavedSearchIdが必要です", - "visualize.createVisualization.noVisTypeErrorMessage": "有効なビジュアライゼーションタイプを指定してください", - "visualize.editor.createBreadcrumb": "作成", - "visualize.editor.defaultEditBreadcrumbText": "ビジュアライゼーションを編集", - "visualize.experimentalVisInfoText": "このビジュアライゼーションはまだ実験段階であり、オフィシャルGA機能のサポートSLAが適用されません。フィードバックがある場合は、{githubLink}で問題を報告してください。", - "visualize.helpMenu.appName": "Visualizeライブラリ", - "visualize.linkedToSearch.unlinkSuccessNotificationText": "保存された検索「{searchTitle}」からリンクが解除されました", - "visualize.listing.betaTitle": "ベータ", - "visualize.listing.betaTooltip": "このビジュアライゼーションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャルGA機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャルGA機能のSLAが適用されません", - "visualize.listing.breadcrumb": "Visualizeライブラリ", - "visualize.listing.createNew.createButtonLabel": "新規ビジュアライゼーションを追加", - "visualize.listing.createNew.description": "データに基づき異なるビジュアライゼーションを作成できます。", - "visualize.listing.createNew.title": "最初のビジュアライゼーションの作成", - "visualize.listing.experimentalTitle": "実験的", - "visualize.listing.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。", - "visualize.listing.table.descriptionColumnName": "説明", - "visualize.listing.table.entityName": "ビジュアライゼーション", - "visualize.listing.table.entityNamePlural": "ビジュアライゼーション", - "visualize.listing.table.listTitle": "Visualizeライブラリ", - "visualize.listing.table.titleColumnName": "タイトル", - "visualize.listing.table.typeColumnName": "型", - "visualize.listingPageTitle": "Visualizeライブラリ", - "visualize.noMatchRoute.bannerText": "Visualizeアプリケーションはこのルートを認識できません。{route}", - "visualize.noMatchRoute.bannerTitleText": "ページが見つかりません", - "visualize.pageHeading": "{chartName} {chartType}ビジュアライゼーション", - "visualize.topNavMenu.cancelAndReturnButtonTooltip": "完了する前に変更を破棄", - "visualize.topNavMenu.cancelButtonAriaLabel": "変更を保存せずに最後に使用していたアプリに戻る", - "visualize.topNavMenu.cancelButtonLabel": "キャンセル", - "visualize.topNavMenu.openInspectorButtonAriaLabel": "ビジュアライゼーションのインスペクターを開く", - "visualize.topNavMenu.openInspectorButtonLabel": "検査", - "visualize.topNavMenu.openInspectorDisabledButtonTooltip": "このビジュアライゼーションはインスペクターをサポートしていません。", - "visualize.topNavMenu.saveAndReturnVisualizationButtonAriaLabel": "可視化の編集が完了し、前回使用していたアプリに戻ります", - "visualize.topNavMenu.saveAndReturnVisualizationButtonLabel": "保存して戻る", - "visualize.topNavMenu.saveAndReturnVisualizationDisabledButtonTooltip": "完了する前に変更を適用または破棄", - "visualize.topNavMenu.saveVisualization.failureNotificationText": "「{visTitle}」の保存中にエラーが発生しました", - "visualize.topNavMenu.saveVisualization.successNotificationText": "保存された'{visTitle}'", - "visualize.topNavMenu.saveVisualizationAsButtonLabel": "名前を付けて保存", - "visualize.topNavMenu.saveVisualizationButtonAriaLabel": "ビジュアライゼーションを保存", - "visualize.topNavMenu.saveVisualizationButtonLabel": "保存", - "visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "保存する前に変更を適用または破棄", - "visualize.topNavMenu.saveVisualizationObjectType": "ビジュアライゼーション", - "visualize.topNavMenu.saveVisualizationToLibraryButtonLabel": "ライブラリに保存", - "visualize.topNavMenu.shareVisualizationButtonAriaLabel": "ビジュアライゼーションを共有", - "visualize.topNavMenu.shareVisualizationButtonLabel": "共有", - "visualize.topNavMenu.updatePanel": "{originatingAppName}でパネルを更新", - "visualize.visualizationLoadingFailedErrorMessage": "ビジュアライゼーションを読み込めませんでした", - "visualize.visualizeDescription": "ビジュアライゼーションを作成してElasticsearchインデックスに保存されたデータをアグリゲーションします。", - "visualize.visualizeListingBreadcrumbsTitle": "Visualizeライブラリ", - "visualize.visualizeListingDashboardAppName": "ダッシュボードアプリケーション", - "visualize.visualizeListingDashboardFlowDescription": "ダッシュボードを作成しますか?{dashboardApp}から直接ビジュアライゼーションを作成して追加します。", - "visualize.visualizeListingDeleteErrorTitle": "ビジュアライゼーションの削除中にエラーが発生", - "xpack.actions.actionTypeRegistry.get.missingActionTypeErrorMessage": "アクションタイプ「{id}」は登録されていません。", - "xpack.actions.actionTypeRegistry.register.duplicateActionTypeErrorMessage": "アクションタイプ「{id}」はすでに登録されています。", - "xpack.actions.alertHistoryEsIndexConnector.name": "アラート履歴Elasticsearchインデックス", - "xpack.actions.appName": "アクション", - "xpack.actions.builtin.case.swimlaneTitle": "スイムレーン", - "xpack.actions.builtin.cases.jiraTitle": "Jira", - "xpack.actions.builtin.cases.resilientTitle": "IBM Resilient", - "xpack.actions.builtin.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", - "xpack.actions.builtin.email.customViewInKibanaMessage": "このメッセージはKibanaによって送信されました[{kibanaFooterLinkText}]({link})。", - "xpack.actions.builtin.email.errorSendingErrorMessage": "エラー送信メールアドレス", - "xpack.actions.builtin.email.kibanaFooterLinkText": "Kibana を開く", - "xpack.actions.builtin.email.sentByKibanaMessage": "このメッセージは Kibana によって送信されました。", - "xpack.actions.builtin.emailTitle": "メール", - "xpack.actions.builtin.esIndex.errorIndexingErrorMessage": "エラーインデックス作成ドキュメント", - "xpack.actions.builtin.esIndexTitle": "インデックス", - "xpack.actions.builtin.jira.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", - "xpack.actions.builtin.pagerduty.invalidTimestampErrorMessage": "タイムスタンプ\"{timestamp}\"の解析エラー", - "xpack.actions.builtin.pagerduty.missingDedupkeyErrorMessage": "eventActionが「{eventAction}」のときにはDedupKeyが必要です", - "xpack.actions.builtin.pagerduty.pagerdutyConfigurationError": "pagerduty アクションの設定エラー:{message}", - "xpack.actions.builtin.pagerduty.postingErrorMessage": "pagerduty イベントの投稿エラー", - "xpack.actions.builtin.pagerduty.postingRetryErrorMessage": "pagerduty イベントの投稿エラー:http status {status}、後ほど再試行", - "xpack.actions.builtin.pagerduty.postingUnexpectedErrorMessage": "pagerduty イベントの投稿エラー:予期せぬステータス {status}", - "xpack.actions.builtin.pagerduty.timestampParsingFailedErrorMessage": "タイムスタンプの解析エラー \"{timestamp}\":{message}", - "xpack.actions.builtin.pagerdutyTitle": "PagerDuty", - "xpack.actions.builtin.serverLog.errorLoggingErrorMessage": "メッセージのロギングエラー", - "xpack.actions.builtin.serverLogTitle": "サーバーログ", - "xpack.actions.builtin.serviceNowITSMTitle": "ServiceNow ITSM", - "xpack.actions.builtin.serviceNowSIRTitle": "ServiceNow SecOps", - "xpack.actions.builtin.serviceNowTitle": "ServiceNow", - "xpack.actions.builtin.slack.errorPostingErrorMessage": "slack メッセージの投稿エラー", - "xpack.actions.builtin.slack.errorPostingRetryDateErrorMessage": "slack メッセージの投稿エラー、 {retryString} で再試行", - "xpack.actions.builtin.slack.errorPostingRetryLaterErrorMessage": "slack メッセージの投稿エラー、後ほど再試行", - "xpack.actions.builtin.slack.slackConfigurationError": "slack アクションの設定エラー:{message}", - "xpack.actions.builtin.slack.slackConfigurationErrorNoHostname": "slack アクションの構成エラー:Web フック URL からホスト名をパースできません", - "xpack.actions.builtin.slack.unexpectedHttpResponseErrorMessage": "slack からの予期せぬ http 応答:{httpStatus} {httpStatusText}", - "xpack.actions.builtin.slack.unexpectedNullResponseErrorMessage": "Slack から予期せぬ null 応答", - "xpack.actions.builtin.slackTitle": "Slack", - "xpack.actions.builtin.swimlane.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", - "xpack.actions.builtin.swimlaneTitle": "スイムレーン", - "xpack.actions.builtin.teams.errorPostingRetryDateErrorMessage": "Microsoft Teams メッセージの投稿エラーです。{retryString} に再試行します", - "xpack.actions.builtin.teams.errorPostingRetryLaterErrorMessage": "Microsoft Teams メッセージの投稿エラーです。しばらくたってから再試行します", - "xpack.actions.builtin.teams.invalidResponseErrorMessage": "Microsoft Teams への投稿エラーです。無効な応答です", - "xpack.actions.builtin.teams.teamsConfigurationError": "Teams アクションの設定エラー:{message}", - "xpack.actions.builtin.teams.teamsConfigurationErrorNoHostname": "Teams アクションの構成エラー:Web フック URL からホスト名をパースできません", - "xpack.actions.builtin.teams.unreachableErrorMessage": "Microsoft Teams への投稿エラーです。予期しないエラーです", - "xpack.actions.builtin.teamsTitle": "Microsoft Teams", - "xpack.actions.builtin.webhook.invalidResponseErrorMessage": "Webフックの呼び出しエラー、無効な応答", - "xpack.actions.builtin.webhook.invalidResponseRetryDateErrorMessage": "Webフックの呼び出しエラー、{retryString} に再試行", - "xpack.actions.builtin.webhook.invalidResponseRetryLaterErrorMessage": "Webフックの呼び出しエラー、後ほど再試行", - "xpack.actions.builtin.webhook.invalidUsernamePassword": "ユーザーとパスワードの両方を指定する必要があります", - "xpack.actions.builtin.webhook.requestFailedErrorMessage": "Webフックの呼び出しエラー。要求が失敗しました", - "xpack.actions.builtin.webhook.unreachableErrorMessage": "webhookの呼び出しエラー、予期せぬエラー", - "xpack.actions.builtin.webhook.webhookConfigurationError": "Web フックアクションの構成中にエラーが発生:{message}", - "xpack.actions.builtin.webhook.webhookConfigurationErrorNoHostname": "Webフックアクションの構成エラーです。URLを解析できません。{err}", - "xpack.actions.builtin.webhookTitle": "Web フック", - "xpack.actions.disabledActionTypeError": "アクションタイプ \"{actionType}\" は、Kibana 構成 xpack.actions.enabledActionTypes では有効化されません", - "xpack.actions.featureRegistry.actionsFeatureName": "アクションとコネクター", - "xpack.actions.savedObjects.goToConnectorsButtonText": "コネクターに移動", - "xpack.actions.serverSideErrors.expirerdLicenseErrorMessage": "{licenseType} ライセンスの期限が切れたのでアクションタイプ {actionTypeId} は無効です。", - "xpack.actions.serverSideErrors.invalidLicenseErrorMessage": "{licenseType} ライセンスでサポートされないのでアクションタイプ {actionTypeId} は無効です。ライセンスをアップグレードしてください。", - "xpack.actions.serverSideErrors.predefinedActionDeleteDisabled": "あらかじめ構成されたアクション{id}は削除できません。", - "xpack.actions.serverSideErrors.predefinedActionUpdateDisabled": "あらかじめ構成されたアクション{id}は更新できません。", - "xpack.actions.serverSideErrors.unavailableLicenseErrorMessage": "現時点でライセンス情報を入手できないため、アクションタイプ {actionTypeId} は無効です。", - "xpack.actions.serverSideErrors.unavailableLicenseInformationErrorMessage": "グラフを利用できません。現在ライセンス情報が利用できません。", - "xpack.actions.urlAllowedHostsConfigurationError": "ターゲット{field}「{value}」はKibana構成xpack.actions.allowedHostsに追加されていません", - "xpack.alerting.alertNavigationRegistry.get.missingNavigationError": "「{consumer}」内のアラートタイプ「{alertType}」のナビゲーションは登録されていません。", - "xpack.alerting.alertNavigationRegistry.register.duplicateDefaultError": "「{consumer}」内のデフォルトナビゲーションはすでに登録されています。", - "xpack.alerting.alertNavigationRegistry.register.duplicateNavigationError": "「{consumer}」内のアラートタイプ「{alertType}」のナビゲーションは既に登録されています。", - "xpack.alerting.api.error.disabledApiKeys": "アラートは API キーに依存しますがキーが無効になっているようです", - "xpack.alerting.appName": "アラート", - "xpack.alerting.builtinActionGroups.recovered": "回復済み", - "xpack.alerting.injectActionParams.email.kibanaFooterLinkText": "Kibanaでルールを表示", - "xpack.alerting.rulesClient.invalidDate": "パラメーター{field}の無効な日付:「{dateValue}」", - "xpack.alerting.rulesClient.validateActions.invalidGroups": "無効なアクショングループ:{groups}", - "xpack.alerting.rulesClient.validateActions.misconfiguredConnector": "無効なコネクター:{groups}", - "xpack.alerting.ruleTypeRegistry.get.missingAlertTypeError": "ルールタイプ「{id}」は登録されていません。", - "xpack.alerting.ruleTypeRegistry.register.customRecoveryActionGroupUsageError": "ルールタイプ [id=\"{id}\"] を登録できません。アクショングループ[{actionGroup}] は、復元とアクティブなアクショングループの両方として使用できません。", - "xpack.alerting.ruleTypeRegistry.register.duplicateAlertTypeError": "ルールタイプ\"{id}\"はすでに登録されています。", - "xpack.alerting.savedObjects.goToRulesButtonText": "ルールに移動", - "xpack.alerting.serverSideErrors.expirerdLicenseErrorMessage": "{licenseType} ライセンスの期限が切れたのでアラートタイプ {alertTypeId} は無効です。", - "xpack.alerting.serverSideErrors.invalidLicenseErrorMessage": "アラート{alertTypeId}は無効です。{licenseType}ライセンスが必要です。アップグレードオプションを表示するには、[ライセンス管理]に移動してください。", - "xpack.alerting.serverSideErrors.unavailableLicenseErrorMessage": "現時点でライセンス情報を入手できないため、アラートタイプ {alertTypeId} は無効です。", - "xpack.alerting.serverSideErrors.unavailableLicenseInformationErrorMessage": "アラートを利用できません。現在ライセンス情報が利用できません。", - "xpack.apm.a.thresholdMet": "しきい値一致", - "xpack.apm.addDataButtonLabel": "データの追加", - "xpack.apm.agentConfig.allOptionLabel": "すべて", - "xpack.apm.agentConfig.apiRequestSize.description": "チャンクエンコーディング(HTTPストリーミング)を経由してAPM ServerインテークAPIに送信されるリクエスト本文の最大合計圧縮サイズ。\nわずかなオーバーシュートの可能性があることに注意してください。\n\n使用できるバイト単位は、「b」、「kb」、「mb」です。「1kb」は「1024b」と等価です。", - "xpack.apm.agentConfig.apiRequestSize.label": "API リクエストサイズ", - "xpack.apm.agentConfig.apiRequestTime.description": "APM Server への HTTP リクエストを開いておく最大時間。\n\n注:この値は、APM Server の「read_timeout」設定よりも低くする必要があります。", - "xpack.apm.agentConfig.apiRequestTime.label": "API リクエスト時間", - "xpack.apm.agentConfig.captureBody.description": "HTTPリクエストのトランザクションの場合、エージェントはオプションとしてリクエスト本文(POST変数など)をキャプチャすることができます。\nメッセージブローカーからメッセージを受信すると開始するトランザクションでは、エージェントがテキストメッセージの本文を取り込むことができます。", - "xpack.apm.agentConfig.captureBody.label": "本文をキャプチャ", - "xpack.apm.agentConfig.captureHeaders.description": "「true」に設定すると、メッセージングフレームワーク(Kafkaなど)を使用するときに、エージェントはHTTP要求と応答ヘッダー(Cookieを含む)、およびメッセージヘッダー/プロパティを取り込みます。\n\n注:これを「false」に設定すると、ネットワーク帯域幅、ディスク容量、およびオブジェクト割り当てが減少します。", - "xpack.apm.agentConfig.captureHeaders.label": "ヘッダーのキャプチャ", - "xpack.apm.agentConfig.chooseService.editButton": "編集", - "xpack.apm.agentConfig.chooseService.service.environment.label": "環境", - "xpack.apm.agentConfig.chooseService.service.name.label": "サービス名", - "xpack.apm.agentConfig.circuitBreakerEnabled.description": "Circuit Breakerを有効にすべきかどうかを指定するブール値。 有効にすると、エージェントは定期的にストレス監視をポーリングして、システム/プロセス/JVMのストレス状態を検出します。監視のいずれかがストレスの兆候を検出した場合、`recording`構成オプションの設定が「false」であるかのようにエージェントは一時停止し、リソース消費を最小限に抑えられます。一時停止した場合、エージェントはストレス状態が緩和されたかどうかを検出するために同じ監視のポーリングを継続します。すべての監視でシステム/プロセス/JVMにストレスがないことが認められると、エージェントは再開して完全に機能します。", - "xpack.apm.agentConfig.circuitBreakerEnabled.label": "Cirtcuit Breaker が有効", - "xpack.apm.agentConfig.configTable.appliedTooltipMessage": "1 つ以上のエージェントにより適用されました", - "xpack.apm.agentConfig.configTable.configTable.failurePromptText": "エージェントの構成一覧を取得できませんでした。ユーザーに十分なパーミッションがない可能性があります。", - "xpack.apm.agentConfig.configTable.createConfigButtonLabel": "構成の作成", - "xpack.apm.agentConfig.configTable.emptyPromptTitle": "構成が見つかりません。", - "xpack.apm.agentConfig.configTable.environmentColumnLabel": "サービス環境", - "xpack.apm.agentConfig.configTable.lastUpdatedColumnLabel": "最終更新", - "xpack.apm.agentConfig.configTable.notAppliedTooltipMessage": "まだエージェントにより適用されていません", - "xpack.apm.agentConfig.configTable.serviceNameColumnLabel": "サービス名", - "xpack.apm.agentConfig.configurationsPanelTitle": "構成", - "xpack.apm.agentConfig.configurationsPanelTitle.noPermissionTooltipLabel": "ユーザーロールには、エージェント構成を作成する権限がありません", - "xpack.apm.agentConfig.createConfigButtonLabel": "構成の作成", - "xpack.apm.agentConfig.createConfigTitle": "構成の作成", - "xpack.apm.agentConfig.deleteModal.cancel": "キャンセル", - "xpack.apm.agentConfig.deleteModal.confirm": "削除", - "xpack.apm.agentConfig.deleteModal.text": "サービス「{serviceName}」と環境「{environment}」の構成を削除しようとしています。", - "xpack.apm.agentConfig.deleteModal.title": "構成を削除", - "xpack.apm.agentConfig.deleteSection.deleteConfigFailedText": "「{serviceName}」の構成を削除中に問題が発生しました。エラー:「{errorMessage}」", - "xpack.apm.agentConfig.deleteSection.deleteConfigFailedTitle": "構成を削除できませんでした", - "xpack.apm.agentConfig.deleteSection.deleteConfigSucceededText": "「{serviceName}」の構成が正常に削除されました。エージェントに反映されるまでに少し時間がかかります。", - "xpack.apm.agentConfig.deleteSection.deleteConfigSucceededTitle": "構成が削除されました", - "xpack.apm.agentConfig.editConfigTitle": "構成の編集", - "xpack.apm.agentConfig.enableLogCorrelation.description": "エージェントがSLF4JのMDCと融合してトレースログ相関を有効にすべきかどうかを指定するブール値。「true」に設定した場合、エージェントは現在アクティブなスパンとトランザクションの「trace.id」と「transaction.id」をMDCに設定します。Javaエージェントバージョン1.16.0以降では、エージェントは、エラーメッセージが記録される前に、取り込まれたエラーの「error.id」もMDCに追加します。注:実行時にこの設定を有効にできますが、再起動しないと無効にはできません。", - "xpack.apm.agentConfig.enableLogCorrelation.label": "ログ相関を有効にする", - "xpack.apm.agentConfig.logLevel.description": "エージェントのログ記録レベルを設定します", - "xpack.apm.agentConfig.logLevel.label": "ログレベル", - "xpack.apm.agentConfig.newConfig.description": "APMアプリ内からエージェント構成を微調整してください。変更はAPMエージェントに自動的に伝達されるので、再デプロイする必要はありません。", - "xpack.apm.agentConfig.profilingInferredSpansEnabled.description": "「true」に設定すると、エージェントは、別名統計プロファイラーと呼ばれるサンプリングプロファイラーであるasync-profilerに基づいてメソッド実行用のスパンを作成します。サンプリングプロファイラーのしくみの性質上、推定スパンの期間は厳密ではなく見込みのみです。「profiling_inferred_spans_sampling_interval」では、正確度とオーバーヘッドの間のトレードオフを微調整できます。推定スパンは、プロファイルセッションの終了後に作成されます。つまり、通常のスパンと推定スパンの間にはUIに表示されるタイミングに遅延があります。注:この機能はWindowsで使用できません。", - "xpack.apm.agentConfig.profilingInferredSpansEnabled.label": "プロファイル推定スパンが有効です", - "xpack.apm.agentConfig.profilingInferredSpansExcludedClasses.description": "プロファイラー推定スパンを作成する必要がないクラスを除外します。このオプションは、0文字以上に一致するワイルドカード「*」をサポートします。デフォルトでは、照合時に大文字と小文字の区別はありません。要素の前に「(?-i)」を付けると、照合時に大文字と小文字が区別されます。", - "xpack.apm.agentConfig.profilingInferredSpansExcludedClasses.label": "プロファイル推定スパンでクラスを除外しました", - "xpack.apm.agentConfig.profilingInferredSpansIncludedClasses.description": "設定した場合、エージェントは、このリストに一致するメソッドの推定スパンのみを作成します。値を設定すると、わずかに負荷が低減することがあり、対象となるクラスのスパンのみを作成することによって煩雑になるのを防止できます。このオプションは、0文字以上に一致するワイルドカード「*」をサポートします。例:「org.example.myapp.*」デフォルトでは、照合時に大文字と小文字の区別はありません。要素の前に「(?-i)」を付けると、照合時に大文字と小文字が区別されます。", - "xpack.apm.agentConfig.profilingInferredSpansIncludedClasses.label": "プロファイル推定スパンでクラスを包含しました", - "xpack.apm.agentConfig.profilingInferredSpansMinDuration.description": "推定スパンの最小期間。最小期間もサンプリング間隔によって暗黙的に設定されることに注意してください。ただし、サンプリング間隔を大きくすると、推定スパンの期間の精度も低下します。", - "xpack.apm.agentConfig.profilingInferredSpansMinDuration.label": "プロファイル推定スパン最小期間", - "xpack.apm.agentConfig.profilingInferredSpansSamplingInterval.description": "プロファイルセッション内でスタックトレースを収集する頻度。低い値に設定するほど継続時間の精度が上がります。その代わり、オーバーヘッドが増し、潜在的に無関係なオペレーションのスパンが増えるという犠牲が伴います。プロファイル推定スパンの最小期間は、この設定値と同じです。", - "xpack.apm.agentConfig.profilingInferredSpansSamplingInterval.label": "プロファイル推定サンプリング間隔", - "xpack.apm.agentConfig.range.errorText": "{rangeType, select,\n between {{min}と{max}の間でなければなりません}\n gt {値は{min}よりも大きい値でなければなりません}\n lt {{max}よりも低く設定する必要があります}\n other {整数でなければなりません}\n }", - "xpack.apm.agentConfig.recording.description": "記録中の場合、エージェントは着信HTTPリクエストを計測し、エラーを追跡し、メトリックを収集して送信します。記録なしに設定すると、エージェントはnoopとして動作し、更新された更新のポーリングを除き、データの収集や APM Server との通信を行いません。これは可逆スイッチなので、記録なしに設定されていてもエージェントスレッドは強制終了されませんが、この状態ではほとんどアイドル状態なのでオーバーヘッドは無視できます。この設定を使用すると、Elastic APMが有効か無効かを動的に制御できます。", - "xpack.apm.agentConfig.recording.label": "記録中", - "xpack.apm.agentConfig.sanitizeFiledNames.description": "場合によっては、サニタイズが必要です。つまり、Elastic APM に送信される機密データを削除する必要があります。この構成では、サニタイズされるフィールド名のワイルドカードパターンのリストを使用できます。これらは HTTP ヘッダー(Cookie を含む)と「application/x-www-form-urlencoded」データ(POST フォームフィールド)に適用されます。クエリ文字列と取り込まれた要求本文(「application/json」データなど)はサニタイズされません。", - "xpack.apm.agentConfig.sanitizeFiledNames.label": "フィールド名のサニタイズ", - "xpack.apm.agentConfig.saveConfig.failed.text": "「{serviceName}」の構成の保存中に問題が発生しました。エラー:「{errorMessage}」", - "xpack.apm.agentConfig.saveConfig.failed.title": "構成を保存できませんでした", - "xpack.apm.agentConfig.saveConfig.succeeded.text": "「{serviceName}」の構成を保存しました。エージェントに反映されるまでに少し時間がかかります。", - "xpack.apm.agentConfig.saveConfig.succeeded.title": "構成が保存されました", - "xpack.apm.agentConfig.saveConfigurationButtonLabel": "次のステップ", - "xpack.apm.agentConfig.serverTimeout.description": "APM Server への要求で構成されたタイムアウトより時間がかかる場合、\n要求がキャンセルされ、イベント(例外またはトランザクション)が破棄されます。\n0に設定するとタイムアウトが無効になります。\n\n警告:タイムアウトが無効か高い値に設定されている場合、APM Serverがタイムアウトになると、アプリでメモリの問題が発生する可能性があります。", - "xpack.apm.agentConfig.serverTimeout.label": "サーバータイムアウト", - "xpack.apm.agentConfig.servicePage.alreadyConfiguredOption": "すでに構成済み", - "xpack.apm.agentConfig.servicePage.cancelButton": "キャンセル", - "xpack.apm.agentConfig.servicePage.environment.description": "構成ごとに 1 つの環境のみがサポートされます。", - "xpack.apm.agentConfig.servicePage.environment.fieldLabel": "サービス環境", - "xpack.apm.agentConfig.servicePage.environment.title": "環境", - "xpack.apm.agentConfig.servicePage.service.description": "構成するサービスを選択してください。", - "xpack.apm.agentConfig.servicePage.service.fieldLabel": "サービス名", - "xpack.apm.agentConfig.servicePage.service.title": "サービス", - "xpack.apm.agentConfig.settingsPage.discardChangesButton": "変更を破棄", - "xpack.apm.agentConfig.settingsPage.notFound.message": "リクエストされた構成が存在しません", - "xpack.apm.agentConfig.settingsPage.notFound.title": "申し訳ございません、エラーが発生しました", - "xpack.apm.agentConfig.settingsPage.saveButton": "構成を保存", - "xpack.apm.agentConfig.spanFramesMinDuration.description": "デフォルト設定では、APM エージェントは記録されたすべてのスパンでスタックトレースを収集します。\nこれはコード内でスパンの原因になる厳密な場所を見つけるうえで非常に役立ちますが、このスタックトレースを収集するとオーバーヘッドが生じます。\nこのオプションを負の値(「-1ms」など)に設定すると、すべてのスパンのスタックトレースが収集されます。正の値(たとえば、「5 ms」)に設定すると、スタックトレース収集を、指定値(たとえば、5ミリ秒)以上の期間にわたるスパンに制限されます。\n\nスパンのスタックトレース収集を完全に無効にするには、値を「0ms」に設定します。", - "xpack.apm.agentConfig.spanFramesMinDuration.label": "スパンフレーム最小期間", - "xpack.apm.agentConfig.stackTraceLimit.description": "0 に設定するとスタックトレース収集が無効になります。収集するフレームの最大数として正の整数値が使用されます。-1 に設定すると、すべてのフレームが収集されます。", - "xpack.apm.agentConfig.stackTraceLimit.label": "スタックトレース制限", - "xpack.apm.agentConfig.stressMonitorCpuDurationThreshold.description": "システムに現在ストレスがかかっているか、それとも以前に検出したストレスが緩和されたかを判断するために必要な最小時間。この時期のすべての測定は、関連しきい値と比較してストレス状態の変化を検出できるように一貫性が必要です。「1m」以上にする必要があります。", - "xpack.apm.agentConfig.stressMonitorCpuDurationThreshold.label": "ストレス監視 CPU 期間しきい値", - "xpack.apm.agentConfig.stressMonitorGcReliefThreshold.description": "ヒープにストレスがかからない時期を特定するためにGC監視で使用するしきい値。「stress_monitor_gc_stress_threshold」を超えた場合、エージェントはそれをヒープストレス状態と見なします。ストレス状態が収まったことを確認するには、すべてのヒーププールで占有メモリの割合がこのしきい値よりも低いことを確認します。GC監視は、直近のGCの後で測定したメモリ消費のみに依存します。", - "xpack.apm.agentConfig.stressMonitorGcReliefThreshold.label": "ストレス監視システム GC 緩和しきい値", - "xpack.apm.agentConfig.stressMonitorGcStressThreshold.description": "ヒープストレスを特定するためにGC監視で使用するしきい値。すべてのヒーププールに同じしきい値が使用され、いずれかの使用率がその値を超える場合、エージェントはそれをヒープストレスと見なします。GC監視は、直近のGCの後で測定したメモリ消費のみに依存します。", - "xpack.apm.agentConfig.stressMonitorGcStressThreshold.label": "ストレス監視システム GC ストレスしきい値", - "xpack.apm.agentConfig.stressMonitorSystemCpuReliefThreshold.description": "システムにCPUストレスがかかっていないことを判断するためにシステムCPU監視で使用するしきい値。監視機能でCPUストレスを検出した場合にCPUストレスが緩和されたと判断するには、測定されたシステムCPUが「stress_monitor_cpu_duration_threshold」と同じ長さ以上の期間にわたってこのしきい値を下回る必要があります。", - "xpack.apm.agentConfig.stressMonitorSystemCpuReliefThreshold.label": "ストレス監視システム CPU 緩和しきい値", - "xpack.apm.agentConfig.stressMonitorSystemCpuStressThreshold.description": "システムCPU監視でシステムCPUストレスの検出に使用するしきい値。システムCPUが少なくとも「stress_monitor_cpu_duration_threshold」と同じ長さ以上の期間にわたってこのしきい値を超えると、監視機能はこれをストレス状態と見なします。", - "xpack.apm.agentConfig.stressMonitorSystemCpuStressThreshold.label": "ストレス監視システム CPU ストレスしきい値", - "xpack.apm.agentConfig.transactionIgnoreUrl.description": "特定の URL への要求が命令されないように制限するために使用します。この構成では、無視される URL パスのワイルドカードパターンのカンマ区切りのリストを使用できます。受信 HTTP 要求が検出されると、要求パスが、リストの各要素に対してテストされます。たとえば、このリストに「/home/index」を追加すると、一致して、「http://localhost/home/index」と「http://whatever.com/home/index?value1=123」から命令が削除されます。", - "xpack.apm.agentConfig.transactionIgnoreUrl.label": "URL に基づくトランザクションを無視", - "xpack.apm.agentConfig.transactionMaxSpans.description": "トランザクションごとに記録される範囲を制限します。", - "xpack.apm.agentConfig.transactionMaxSpans.label": "トランザクションの最大範囲", - "xpack.apm.agentConfig.transactionSampleRate.description": "デフォルトでは、エージェントはすべてのトランザクション(たとえば、サービスへのリクエストなど)をサンプリングします。オーバーヘッドやストレージ要件を減らすには、サンプルレートの値を0.0〜1.0に設定します。全体的な時間とサンプリングされないトランザクションの結果は記録されますが、コンテキスト情報、ラベル、スパンは記録されません。", - "xpack.apm.agentConfig.transactionSampleRate.label": "トランザクションのサンプルレート", - "xpack.apm.agentConfig.unsavedSetting.tooltip": "未保存", - "xpack.apm.agentMetrics.java.gcRate": "GC レート", - "xpack.apm.agentMetrics.java.gcRateChartTitle": "1 分ごとのガベージコレクション", - "xpack.apm.agentMetrics.java.gcTime": "GC 時間", - "xpack.apm.agentMetrics.java.gcTimeChartTitle": "1 分ごとのごみ収集の時間", - "xpack.apm.agentMetrics.java.heapMemoryChartTitle": "ヒープ領域", - "xpack.apm.agentMetrics.java.heapMemorySeriesCommitted": "平均実行割当", - "xpack.apm.agentMetrics.java.heapMemorySeriesMax": "平均制限", - "xpack.apm.agentMetrics.java.heapMemorySeriesUsed": "平均使用", - "xpack.apm.agentMetrics.java.nonHeapMemoryChartTitle": "ヒープ領域以外", - "xpack.apm.agentMetrics.java.nonHeapMemorySeriesCommitted": "平均実行割当", - "xpack.apm.agentMetrics.java.nonHeapMemorySeriesUsed": "平均使用", - "xpack.apm.agentMetrics.java.threadCount": "平均カウント", - "xpack.apm.agentMetrics.java.threadCountChartTitle": "スレッド数", - "xpack.apm.agentMetrics.java.threadCountMax": "最高カウント", - "xpack.apm.aggregatedTransactions.fallback.badge": "サンプリングされたトランザクションに基づく", - "xpack.apm.aggregatedTransactions.fallback.tooltip": "メトリックイベントが現在の時間範囲にないか、メトリックイベントドキュメントにないフィールドに基づいてフィルターが適用されたため、このページはトランザクションイベントデータを使用しています。", - "xpack.apm.alertAnnotationButtonAriaLabel": "アラート詳細を表示", - "xpack.apm.alertAnnotationCriticalTitle": "重大アラート", - "xpack.apm.alertAnnotationNoSeverityTitle": "アラート", - "xpack.apm.alertAnnotationWarningTitle": "警告アラート", - "xpack.apm.alerting.fields.environment": "環境", - "xpack.apm.alerting.fields.service": "サービス", - "xpack.apm.alerting.fields.type": "型", - "xpack.apm.alerts.action_variables.environment": "アラートが作成されるトランザクションタイプ", - "xpack.apm.alerts.action_variables.intervalSize": "アラート条件が満たされた期間の長さと単位", - "xpack.apm.alerts.action_variables.serviceName": "アラートが作成されるサービス", - "xpack.apm.alerts.action_variables.threshold": "この値を超えるすべてのトリガーによりアラートが実行されます", - "xpack.apm.alerts.action_variables.transactionType": "アラートが作成されるトランザクションタイプ", - "xpack.apm.alerts.action_variables.triggerValue": "しきい値に達し、アラートをトリガーした値", - "xpack.apm.alerts.anomalySeverity.criticalLabel": "致命的", - "xpack.apm.alerts.anomalySeverity.majorLabel": "メジャー", - "xpack.apm.alerts.anomalySeverity.minor": "マイナー", - "xpack.apm.alerts.anomalySeverity.scoreDetailsDescription": "スコア {value} {value, select, critical {} other {以上}}", - "xpack.apm.alerts.anomalySeverity.warningLabel": "警告", - "xpack.apm.alertTypes.errorCount.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- しきい値\\{\\{context.threshold\\}\\}エラー\n- トリガーされた値:過去\\{\\{context.interval\\}\\}に\\{\\{context.triggerValue\\}\\}件のエラー", - "xpack.apm.alertTypes.errorCount.description": "サービスのエラー数が定義されたしきい値を超過したときにアラートを発行します。", - "xpack.apm.alertTypes.errorCount.reason": "エラー数が{serviceName}の{threshold}を超えています(現在の値は{measured})", - "xpack.apm.alertTypes.transactionDuration.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- レイテンシしきい値:\\{\\{context.threshold\\}\\}ミリ秒\n- 観察されたレイテンシ:直前の\\{\\{context.interval\\}\\}に\\{\\{context.triggerValue\\}\\}", - "xpack.apm.alertTypes.transactionDuration.description": "サービスの特定のトランザクションタイプのレイテンシが定義されたしきい値を超えたときにアラートを発行します。", - "xpack.apm.alertTypes.transactionDuration.reason": "レイテンシが{serviceName}の{threshold}を超えています(現在の値は{measured})", - "xpack.apm.alertTypes.transactionDurationAnomaly.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- 重要度しきい値:\\{\\{context.threshold\\}\\}%\n- 重要度値:\\{\\{context.triggerValue\\}\\}\n", - "xpack.apm.alertTypes.transactionDurationAnomaly.description": "サービスのレイテンシが異常であるときにアラートを表示します。", - "xpack.apm.alertTypes.transactionDurationAnomaly.reason": "{serviceName}の{severityLevel}異常が検知されました(スコアは{measured})", - "xpack.apm.alertTypes.transactionErrorRate.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- しきい値:\\{\\{context.threshold\\}\\}%\n- トリガーされた値:過去\\{\\{context.interval\\}\\}にエラーの\\{\\{context.triggerValue\\}\\}%", - "xpack.apm.alertTypes.transactionErrorRate.description": "サービスのトランザクションエラー率が定義されたしきい値を超過したときにアラートを発行します。", - "xpack.apm.alertTypes.transactionErrorRate.reason": "トランザクションエラー率が{serviceName}の{threshold}を超えています(現在の値は{measured})", - "xpack.apm.analyzeDataButton.label": "データを分析", - "xpack.apm.analyzeDataButton.tooltip": "実験 - データの分析では、任意のディメンションの結果データを選択してフィルタリングし、パフォーマンスの問題の原因または影響を調査することができます", - "xpack.apm.analyzeDataButtonLabel": "データを分析", - "xpack.apm.analyzeDataButtonLabel.message": "実験 - データの分析では、任意のディメンションの結果データを選択してフィルタリングし、パフォーマンスの問題の原因または影響を調査することができます。", - "xpack.apm.anomaly_detection.error.invalid_license": "異常検知を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。このライセンスがあれば、機械学習を活用して、サービスを監視できます。", - "xpack.apm.anomaly_detection.error.missing_read_privileges": "異常検知ジョブを表示するには、機械学習およびAPMの「読み取り」権限が必要です", - "xpack.apm.anomaly_detection.error.missing_write_privileges": "異常検知ジョブを作成するには、機械学習およびAPMの「書き込み」権限が必要です", - "xpack.apm.anomaly_detection.error.not_available": "機械学習を利用できません", - "xpack.apm.anomaly_detection.error.not_available_in_space": "選択したスペースでは、機械学習を利用できません", - "xpack.apm.anomalyDetection.createJobs.failed.text": "APMサービス環境用に[{environments}]1つ以上の異常検知ジョブを作成しているときに問題が発生しました。エラー:「{errorMessage}」", - "xpack.apm.anomalyDetection.createJobs.failed.title": "異常検知ジョブを作成できませんでした", - "xpack.apm.anomalyDetection.createJobs.succeeded.text": "APMサービス環境[{environments}]の異常検知ジョブが正常に作成されました。機械学習がトラフィック異常値の分析を開始するには、少し時間がかかります。", - "xpack.apm.anomalyDetection.createJobs.succeeded.title": "異常検知ジョブが作成されました", - "xpack.apm.anomalyDetectionSetup.linkLabel": "異常検知", - "xpack.apm.anomalyDetectionSetup.notEnabledForEnvironmentText": "「{currentEnvironment}」環境では、まだ異常検知が有効ではありません。クリックすると、セットアップを続行します。", - "xpack.apm.anomalyDetectionSetup.notEnabledText": "異常検知はまだ有効ではありません。クリックすると、セットアップを続行します。", - "xpack.apm.api.fleet.cloud_apm_package_policy.requiredRoleOnCloud": "スーパーユーザーロールが付与されたElastic Cloudユーザーのみが操作できます。", - "xpack.apm.api.fleet.fleetSecurityRequired": "FleetおよびSecurityプラグインが必要です", - "xpack.apm.apmDescription": "アプリケーション内から自動的に詳細なパフォーマンスメトリックやエラーを集めます。", - "xpack.apm.apmSchema.index": "APMサーバースキーマ - インデックス", - "xpack.apm.apmSettings.index": "APM 設定 - インデックス", - "xpack.apm.backendDetail.dependenciesTableColumnBackend": "サービス", - "xpack.apm.backendDetail.dependenciesTableTitle": "アップストリームサービス", - "xpack.apm.backendDetailFailedTransactionRateChartTitle": "失敗したトランザクション率", - "xpack.apm.backendDetailLatencyChartTitle": "レイテンシ", - "xpack.apm.backendDetailThroughputChartTitle": "スループット", - "xpack.apm.backendErrorRateChart.chartTitle": "失敗したトランザクション率", - "xpack.apm.backendErrorRateChart.previousPeriodLabel": "前の期間", - "xpack.apm.backendLatencyChart.chartTitle": "レイテンシ", - "xpack.apm.backendLatencyChart.previousPeriodLabel": "前の期間", - "xpack.apm.backendThroughputChart.chartTitle": "スループット", - "xpack.apm.backendThroughputChart.previousPeriodLabel": "前の期間", - "xpack.apm.chart.annotation.version": "バージョン", - "xpack.apm.chart.cpuSeries.processAverageLabel": "プロセス平均", - "xpack.apm.chart.cpuSeries.processMaxLabel": "プロセス最大", - "xpack.apm.chart.cpuSeries.systemAverageLabel": "システム平均", - "xpack.apm.chart.cpuSeries.systemMaxLabel": "システム最大", - "xpack.apm.chart.error": "データの取得時にエラーが発生しました。再試行してください", - "xpack.apm.chart.memorySeries.systemAverageLabel": "平均", - "xpack.apm.chart.memorySeries.systemMaxLabel": "最高", - "xpack.apm.clearFilters": "フィルターを消去", - "xpack.apm.compositeSpanCallsLabel": "、{count}件の呼び出し、平均{duration}", - "xpack.apm.compositeSpanDurationLabel": "平均時間", - "xpack.apm.correlations.correlationsTable.excludeDescription": "値を除外", - "xpack.apm.correlations.correlationsTable.excludeLabel": "除外", - "xpack.apm.correlations.correlationsTable.filterDescription": "値でフィルタリング", - "xpack.apm.correlations.correlationsTable.filterLabel": "フィルター", - "xpack.apm.correlations.correlationsTable.loadingText": "読み込み中", - "xpack.apm.correlations.correlationsTable.noDataText": "データなし", - "xpack.apm.correlations.failedTransactions.correlationsTable.fieldNameLabel": "フィールド名", - "xpack.apm.correlations.failedTransactions.correlationsTable.fieldValueLabel": "フィールド値", - "xpack.apm.correlations.failedTransactions.correlationsTable.impactLabel": "インパクト", - "xpack.apm.correlations.failedTransactions.correlationsTable.pValueLabel": "スコア", - "xpack.apm.correlations.failedTransactions.errorTitle": "失敗したトランザクションで相関関係の実行中にエラーが発生しました", - "xpack.apm.correlations.failedTransactions.highImpactText": "高", - "xpack.apm.correlations.failedTransactions.lowImpactText": "低", - "xpack.apm.correlations.failedTransactions.mediumImpactText": "中", - "xpack.apm.correlations.failedTransactions.panelTitle": "失敗したトランザクション", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.actionsLabel": "フィルター", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.correlationColumnDescription": "属性の相関関係スコア[0-1]。スコアが大きいほど、属性の遅延が大きくなります。", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.correlationLabel": "相関関係", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.excludeDescription": "値を除外", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.excludeLabel": "除外", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.fieldNameLabel": "フィールド名", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.fieldValueLabel": "フィールド値", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.filterDescription": "値でフィルタリング", - "xpack.apm.correlations.latencyCorrelations.correlationsTable.filterLabel": "フィルター", - "xpack.apm.correlations.latencyCorrelations.errorTitle": "相関関係の取得中にエラーが発生しました", - "xpack.apm.correlations.latencyCorrelations.panelTitle": "レイテンシ分布", - "xpack.apm.correlations.latencyCorrelations.tableTitle": "相関関係", - "xpack.apm.correlations.latencyPopoverBasicExplanation": "相関関係により、トランザクション応答時間の増加や遅延の原因となっている属性を検出できます。", - "xpack.apm.correlations.latencyPopoverChartExplanation": "遅延分布グラフは、サービスのトランザクションの全体的な遅延を可視化します。表の属性にカーソルを置くと、遅延の分布がグラフに追加されます。", - "xpack.apm.correlations.latencyPopoverFilterExplanation": "フィルターを追加または削除して、APMアプリでクエリに影響を及ぼすこともできます。", - "xpack.apm.correlations.latencyPopoverPerformanceExplanation": "この分析は多数の属性に対して統計検索を実行します。広い時間範囲やトランザクションスループットが高いサービスでは、時間がかかる場合があります。パフォーマンスを改善するには、時間範囲を絞り込みます。", - "xpack.apm.correlations.latencyPopoverTableExplanation": "この表は0~1の相関係数で並べ替えられます。相関値が高い属性は、遅延が長いトランザクションの原因である可能性が高くなります。", - "xpack.apm.correlations.latencyPopoverTitle": "遅延の相関関係", - "xpack.apm.csm.breakdownFilter.browser": "ブラウザー", - "xpack.apm.csm.breakdownFilter.device": "デバイス", - "xpack.apm.csm.breakdownFilter.location": "場所", - "xpack.apm.csm.breakDownFilter.noBreakdown": "内訳なし", - "xpack.apm.csm.breakdownFilter.os": "OS", - "xpack.apm.csm.pageViews.analyze": "分析", - "xpack.apm.customLink.buttom.create": "カスタムリンクを作成", - "xpack.apm.customLink.buttom.create.title": "作成", - "xpack.apm.customLink.buttom.manage": "カスタムリンクを管理", - "xpack.apm.customLink.empty": "カスタムリンクが見つかりません。独自のカスタムリンク、たとえば特定のダッシュボードまたは外部リンクへのリンクをセットアップします。", - "xpack.apm.dependenciesTable.columnErrorRate": "失敗したトランザクション率", - "xpack.apm.dependenciesTable.columnImpact": "インパクト", - "xpack.apm.dependenciesTable.columnLatency": "レイテンシ(平均)", - "xpack.apm.dependenciesTable.columnThroughput": "スループット", - "xpack.apm.dependenciesTable.serviceMapLinkText": "サービスマップを表示", - "xpack.apm.emptyMessage.noDataFoundDescription": "別の時間範囲を試すか検索フィルターをリセットしてください。", - "xpack.apm.emptyMessage.noDataFoundLabel": "データが見つかりません。", - "xpack.apm.error.prompt.body": "詳細はブラウザの開発者コンソールをご確認ください。", - "xpack.apm.error.prompt.title": "申し訳ございませんが、エラーが発生しました :(", - "xpack.apm.errorCountAlert.name": "エラー数しきい値", - "xpack.apm.errorCountAlertTrigger.errors": " エラー", - "xpack.apm.errorGroupDetails.culpritLabel": "原因", - "xpack.apm.errorGroupDetails.errorGroupTitle": "エラーグループ {errorGroupId}", - "xpack.apm.errorGroupDetails.errorOccurrenceTitle": "エラーのオカレンス", - "xpack.apm.errorGroupDetails.exceptionMessageLabel": "例外メッセージ", - "xpack.apm.errorGroupDetails.logMessageLabel": "ログメッセージ", - "xpack.apm.errorGroupDetails.occurrencesChartLabel": "オカレンス", - "xpack.apm.errorGroupDetails.relatedTransactionSample": "関連トランザクションサンプル", - "xpack.apm.errorGroupDetails.unhandledLabel": "未対応", - "xpack.apm.errorRate.chart.errorRate": "失敗したトランザクション率(平均)", - "xpack.apm.errorRate.chart.errorRate.previousPeriodLabel": "前の期間", - "xpack.apm.errorsTable.errorMessageAndCulpritColumnLabel": "エラーメッセージと原因", - "xpack.apm.errorsTable.groupIdColumnDescription": "スタックトレースのハッシュ。動的パラメータのため、エラーメッセージが異なる場合でも、類似したエラーをグループ化します。", - "xpack.apm.errorsTable.groupIdColumnLabel": "グループ ID", - "xpack.apm.errorsTable.latestOccurrenceColumnLabel": "最近のオカレンス", - "xpack.apm.errorsTable.noErrorsLabel": "エラーが見つかりませんでした", - "xpack.apm.errorsTable.occurrencesColumnLabel": "オカレンス", - "xpack.apm.errorsTable.typeColumnLabel": "型", - "xpack.apm.errorsTable.unhandledLabel": "未対応", - "xpack.apm.failedTransactionsCorrelations.licenseCheckText": "失敗したトランザクションの相関関係機能を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。", - "xpack.apm.featureRegistry.apmFeatureName": "APMおよびユーザーエクスペリエンス", - "xpack.apm.feedbackMenu.appName": "APM", - "xpack.apm.fetcher.error.status": "エラー", - "xpack.apm.fetcher.error.title": "リソースの取得中にエラーが発生しました", - "xpack.apm.fetcher.error.url": "URL", - "xpack.apm.filter.environment.allLabel": "すべて", - "xpack.apm.filter.environment.label": "環境", - "xpack.apm.filter.environment.notDefinedLabel": "未定義", - "xpack.apm.filter.environment.selectEnvironmentLabel": "環境を選択", - "xpack.apm.fleet_integration.settings.advancedOptionsLavel": "高度なオプション", - "xpack.apm.fleet_integration.settings.apm.capturePersonalDataDescription": "IPやユーザーエージェントなどの個人データを取り込みます", - "xpack.apm.fleet_integration.settings.apm.capturePersonalDataTitle": "個人データを取り込む", - "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentDescription": "サービス環境が定義されていないイベントで記録するデフォルトのサービス環境。", - "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentLabel": "デフォルトのサービス環境", - "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentTitle": "サービス構成", - "xpack.apm.fleet_integration.settings.apm.expvarEnabledDescription": "/debug/varsの下に公開されます", - "xpack.apm.fleet_integration.settings.apm.expvarEnabledTitle": "APM Server Golang expvarサポートを有効にする", - "xpack.apm.fleet_integration.settings.apm.hostLabel": "ホスト", - "xpack.apm.fleet_integration.settings.apm.hostTitle": "サーバー構成", - "xpack.apm.fleet_integration.settings.apm.idleTimeoutLabel": "基本接続が終了するまでのアイドル時間", - "xpack.apm.fleet_integration.settings.apm.maxConnectionsLabel": "許可された同時接続数", - "xpack.apm.fleet_integration.settings.apm.maxEventBytesLabel": "イベントごとの最大サイズ(バイト)", - "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesDescription": "リクエストヘッダーサイズおよびタイミング構成の上限を設定します。", - "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesLabel": "リクエストヘッダーの最大サイズ(バイト)", - "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesTitle": "上限", - "xpack.apm.fleet_integration.settings.apm.readTimeoutLabel": "リクエスト全体を読み取る最大期間", - "xpack.apm.fleet_integration.settings.apm.responseHeadersHelpText": "セキュリティポリシー遵守目的で使用できます。", - "xpack.apm.fleet_integration.settings.apm.responseHeadersLabel": "HTTP応答に追加されたカスタムHTTPヘッダー", - "xpack.apm.fleet_integration.settings.apm.responseHeadersTitle": "カスタムヘッダー", - "xpack.apm.fleet_integration.settings.apm.settings.subtitle": "APM統合の設定", - "xpack.apm.fleet_integration.settings.apm.settings.title": "一般", - "xpack.apm.fleet_integration.settings.apm.shutdownTimeoutLabel": "シャットダウン時にリリースを解放する前の最大時間", - "xpack.apm.fleet_integration.settings.apm.urlLabel": "URL", - "xpack.apm.fleet_integration.settings.apm.writeTimeoutLabel": "応答を書き込む最大時間", - "xpack.apm.fleet_integration.settings.apmAgent.description": "{title}アプリケーションの計測を構成します。", - "xpack.apm.fleet_integration.settings.disabledLabel": "無効", - "xpack.apm.fleet_integration.settings.enabledLabel": "有効", - "xpack.apm.fleet_integration.settings.optionalLabel": "オプション", - "xpack.apm.fleet_integration.settings.requiredFieldLabel": "必須フィールド", - "xpack.apm.fleet_integration.settings.requiredLabel": "必須", - "xpack.apm.fleet_integration.settings.rum.enableRumDescription": "リアルユーザー監視(RUM)を有効にする", - "xpack.apm.fleet_integration.settings.rum.enableRumTitle": "RUMを有効にする", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderDescription": "エージェントの認証を構成", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderHelpText": "ユーザーエージェントが送信する許可された元のヘッダー。", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderLabel": "許可された元のヘッダー", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderTitle": "カスタムヘッダー", - "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsHelpText": "「Content-Type」、「Content-Encoding」、「Accept」のほかにAccess-Control-Allow-Headersがサポートされています。", - "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsLabel": "Access-Control-Allow-Headers", - "xpack.apm.fleet_integration.settings.rum.rumLibraryPatternHelpText": "スタックトレースフレームのfile_nameおよびabs_pathをこのregexpと照合し、ライブラリフレームを特定します。", - "xpack.apm.fleet_integration.settings.rum.rumLibraryPatternLabel": "ライブラリフレームパターン", - "xpack.apm.fleet_integration.settings.rum.rumResponseHeadersHelpText": "セキュリティポリシー遵守などの目的でRUM応答に追加されます。", - "xpack.apm.fleet_integration.settings.rum.rumResponseHeadersLabel": "カスタムHTTP応答ヘッダー", - "xpack.apm.fleet_integration.settings.rum.settings.subtitle": "RUM JSエージェントの構成を管理します。", - "xpack.apm.fleet_integration.settings.rum.settings.title": "リアルユーザー監視", - "xpack.apm.fleet_integration.settings.selectOrCreateOptions": "オプションを選択または作成", - "xpack.apm.fleet_integration.settings.tls.settings.subtitle": "TLS構成の設定。", - "xpack.apm.fleet_integration.settings.tls.settings.title": "TLS設定", - "xpack.apm.fleet_integration.settings.tls.tlsCertificateLabel": "サーバー証明書へのファイルパス。", - "xpack.apm.fleet_integration.settings.tls.tlsCertificateTitle": "TLS証明書", - "xpack.apm.fleet_integration.settings.tls.tlsCipherSuitesHelpText": "TLS 1.3では構成できません。", - "xpack.apm.fleet_integration.settings.tls.tlsCipherSuitesLabel": "TLS接続の暗号化スイート", - "xpack.apm.fleet_integration.settings.tls.tlsCurveTypesLabel": "ECDHEに基づく暗号化スイートの曲線タイプ", - "xpack.apm.fleet_integration.settings.tls.tlsEnabledTitle": "TLS を有効にする", - "xpack.apm.fleet_integration.settings.tls.tlsKeyLabel": "サーバー証明書鍵へのファイルパス", - "xpack.apm.fleet_integration.settings.tls.tlsSupportedProtocolsLabel": "サポートされているプロトコルバージョン", - "xpack.apm.fleetIntegration.assets.description": "APMでアプリケーショントレースとサービスマップを表示", - "xpack.apm.fleetIntegration.assets.name": "サービス", - "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentButtonText": "APMエージェントのインストール", - "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentDescription": "エージェントの起動後、ホストでAPMエージェントをインストールし、アプリケーションとサービスからデータを収集できます。", - "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentTitle": "APMエージェントのインストール", - "xpack.apm.formatters.hoursTimeUnitLabel": "h", - "xpack.apm.formatters.microsTimeUnitLabel": "μs", - "xpack.apm.formatters.millisTimeUnitLabel": "ms", - "xpack.apm.formatters.minutesTimeUnitLabel": "分", - "xpack.apm.formatters.secondsTimeUnitLabel": "s", - "xpack.apm.header.badge.readOnly.text": "読み取り専用", - "xpack.apm.header.badge.readOnly.tooltip": "を保存できませんでした", - "xpack.apm.helpMenu.upgradeAssistantLink": "アップグレードアシスタント", - "xpack.apm.helpPopover.ariaLabel": "ヘルプ", - "xpack.apm.home.alertsMenu.alerts": "アラートとルール", - "xpack.apm.home.alertsMenu.createAnomalyAlert": "異常ルールを作成", - "xpack.apm.home.alertsMenu.createThresholdAlert": "しきい値ルールを作成", - "xpack.apm.home.alertsMenu.errorCount": "エラー数", - "xpack.apm.home.alertsMenu.transactionDuration": "レイテンシ", - "xpack.apm.home.alertsMenu.transactionErrorRate": "失敗したトランザクション率", - "xpack.apm.home.alertsMenu.viewActiveAlerts": "ルールの管理", - "xpack.apm.home.serviceLogsTabLabel": "ログ", - "xpack.apm.home.serviceMapTabLabel": "サービスマップ", - "xpack.apm.instancesLatencyDistributionChartLegend": "インスタンス", - "xpack.apm.instancesLatencyDistributionChartLegend.previousPeriod": "前の期間", - "xpack.apm.instancesLatencyDistributionChartTitle": "インスタンスのレイテンシ分布", - "xpack.apm.instancesLatencyDistributionChartTooltipClickToFilterDescription": "クリックすると、インスタンスでフィルタリングします", - "xpack.apm.instancesLatencyDistributionChartTooltipLatencyLabel": "レイテンシ", - "xpack.apm.instancesLatencyDistributionChartTooltipThroughputLabel": "スループット", - "xpack.apm.invalidLicense.licenseManagementLink": "ライセンスを更新", - "xpack.apm.invalidLicense.message": "現在ご使用のライセンスが期限切れか有効でなくなったため、APM UI を利用できません。", - "xpack.apm.invalidLicense.title": "無効なライセンス", - "xpack.apm.jvmsTable.cpuColumnLabel": "CPU 平均", - "xpack.apm.jvmsTable.explainServiceNodeNameMissing": "これらのメトリックが所属する JVM を特定できませんでした。7.5 よりも古い APM Server を実行していることが原因である可能性が高いです。この問題は APM Server 7.5 以降にアップグレードすることで解決されます。", - "xpack.apm.jvmsTable.heapMemoryColumnLabel": "ヒープ領域の平均", - "xpack.apm.jvmsTable.nameColumnLabel": "名前", - "xpack.apm.jvmsTable.nameExplanation": "JVM 名はデフォルトでコンピューター ID(該当する場合)またはホスト名ですが、エージェントの「'service_node_name」で手動で構成することもできます。", - "xpack.apm.jvmsTable.noJvmsLabel": "JVM が見つかりませんでした", - "xpack.apm.jvmsTable.nonHeapMemoryColumnLabel": "非ヒープ領域の平均", - "xpack.apm.jvmsTable.threadCountColumnLabel": "最大スレッド数", - "xpack.apm.keyValueFilterList.actionFilterLabel": "値でフィルタリング", - "xpack.apm.latencyCorrelations.licenseCheckText": "遅延の相関関係を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。使用すると、パフォーマンスの低下に関連しているフィールドを検出できます。", - "xpack.apm.license.betaBadge": "ベータ", - "xpack.apm.license.betaTooltipMessage": "現在、この機能はベータです。不具合を見つけた場合やご意見がある場合、サポートに問い合わせるか、またはディスカッションフォーラムにご報告ください。", - "xpack.apm.license.button": "トライアルを開始", - "xpack.apm.license.title": "無料の 30 日トライアルを開始", - "xpack.apm.localFilters.titles.browser": "ブラウザー", - "xpack.apm.localFilters.titles.device": "デバイス", - "xpack.apm.localFilters.titles.location": "場所", - "xpack.apm.localFilters.titles.os": "OS", - "xpack.apm.localFilters.titles.serviceName": "サービス名", - "xpack.apm.localFilters.titles.transactionUrl": "URL", - "xpack.apm.localFiltersTitle": "フィルター", - "xpack.apm.metrics.transactionChart.machineLearningLabel": "機械学習:", - "xpack.apm.metrics.transactionChart.machineLearningTooltip": "ストリームには、平均レイテンシの想定境界が表示されます。赤色の垂直の注釈は、異常スコアが75以上の異常値を示します。", - "xpack.apm.metrics.transactionChart.machineLearningTooltip.withKuery": "フィルタリングで検索バーを使用しているときには、機械学習結果が表示されません", - "xpack.apm.metrics.transactionChart.viewJob": "ジョブを表示", - "xpack.apm.navigation.serviceMapTitle": "サービスマップ", - "xpack.apm.navigation.servicesTitle": "サービス", - "xpack.apm.navigation.tracesTitle": "トレース", - "xpack.apm.notAvailableLabel": "N/A", - "xpack.apm.profiling.collapseSimilarFrames": "類似した項目を折りたたむ", - "xpack.apm.profiling.highlightFrames": "検索", - "xpack.apm.profiling.table.name": "名前", - "xpack.apm.profiling.table.value": "自己", - "xpack.apm.propertiesTable.agentFeature.noDataAvailableLabel": "利用可能なデータがありません", - "xpack.apm.propertiesTable.agentFeature.noResultFound": "\"{value}\"に対する結果が見つかりませんでした。", - "xpack.apm.propertiesTable.tabs.exceptionStacktraceLabel": "例外のスタックトレース", - "xpack.apm.propertiesTable.tabs.logs.serviceName": "サービス名", - "xpack.apm.propertiesTable.tabs.logsLabel": "ログ", - "xpack.apm.propertiesTable.tabs.logStacktraceLabel": "スタックトレース", - "xpack.apm.propertiesTable.tabs.metadataLabel": "メタデータ", - "xpack.apm.propertiesTable.tabs.timelineLabel": "Timeline", - "xpack.apm.rum.coreVitals.dataUndefined": "N/A", - "xpack.apm.rum.coreVitals.fcp": "初回コンテンツの描画", - "xpack.apm.rum.coreVitals.fcpTooltip": "初回コンテンツの描画(FCP)は初期のレンダリングに集中し、ページの読み込みが開始してから、ページのコンテンツのいずれかの部分が画面に表示されるときまでの時間を測定します。", - "xpack.apm.rum.coreVitals.tbt": "合計ブロック時間", - "xpack.apm.rum.coreVitals.tbtTooltip": "合計ブロック時間(TBT)は、初回コンテンツの描画からトランザクションが完了したときまでに発生する、各長いタスクのブロック時間(50 ミリ秒超)の合計です。", - "xpack.apm.rum.dashboard.backend": "バックエンド", - "xpack.apm.rum.dashboard.dataMissing": "N/A", - "xpack.apm.rum.dashboard.frontend": "フロントエンド", - "xpack.apm.rum.dashboard.impactfulMetrics.highTrafficPages": "高トラフィックページ", - "xpack.apm.rum.dashboard.impactfulMetrics.jsErrors": "JavaScript エラー", - "xpack.apm.rum.dashboard.overall.label": "全体", - "xpack.apm.rum.dashboard.pageLoad.label": "ページの読み込み", - "xpack.apm.rum.dashboard.pageLoadDistribution.label": "ページ読み込み分布", - "xpack.apm.rum.dashboard.pageLoadDuration.label": "ページ読み込み時間", - "xpack.apm.rum.dashboard.pageLoadTime.label": "ページ読み込み時間(秒)", - "xpack.apm.rum.dashboard.pageLoadTimes.label": "ページ読み込み時間", - "xpack.apm.rum.dashboard.pagesLoaded.label": "ページが読み込まれました", - "xpack.apm.rum.dashboard.pageViews": "合計ページビュー", - "xpack.apm.rum.dashboard.resetZoom.label": "ズームをリセット", - "xpack.apm.rum.dashboard.tooltips.backEnd": "バックエンド時間は、最初の 1 バイトを受信するまでの時間(TTFB)です。これは、要求が実行された後、最初の応答パケットが受信された時点です。", - "xpack.apm.rum.dashboard.tooltips.frontEnd": "フロントエンド時間は、合計ページ読み込み時間からバックエンド時間を減算した時間です。", - "xpack.apm.rum.dashboard.tooltips.totalPageLoad": "合計はすべてのページ読み込み時間です。", - "xpack.apm.rum.dashboard.totalPageLoad": "合計", - "xpack.apm.rum.filterGroup.breakdown": "内訳", - "xpack.apm.rum.filterGroup.coreWebVitals": "コアWebバイタル", - "xpack.apm.rum.filterGroup.seconds": "秒", - "xpack.apm.rum.filterGroup.selectBreakdown": "内訳を選択", - "xpack.apm.rum.jsErrors.errorMessage": "エラーメッセージ", - "xpack.apm.rum.jsErrors.errorRate": "エラー率", - "xpack.apm.rum.jsErrors.impactedPageLoads": "影響を受けるページ読み込み数", - "xpack.apm.rum.jsErrors.totalErrors": "合計エラー数", - "xpack.apm.rum.uxMetrics.longestLongTasks": "最長タスク時間", - "xpack.apm.rum.uxMetrics.longestLongTasksTooltip": "最も長いタスクの時間。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", - "xpack.apm.rum.uxMetrics.noOfLongTasks": "時間がかかるタスク数", - "xpack.apm.rum.uxMetrics.noOfLongTasksTooltip": "長いタスクの数。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", - "xpack.apm.rum.uxMetrics.sumLongTasks": "時間がかかるタスクの合計時間", - "xpack.apm.rum.uxMetrics.sumLongTasksTooltip": "長いタスクの合計時間。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", - "xpack.apm.rum.visitorBreakdown": "アクセスユーザー内訳", - "xpack.apm.rum.visitorBreakdown.browser": "ブラウザー", - "xpack.apm.rum.visitorBreakdown.operatingSystem": "オペレーティングシステム", - "xpack.apm.rum.visitorBreakdownMap.avgPageLoadDuration": "平均ページ読み込み時間", - "xpack.apm.rum.visitorBreakdownMap.pageLoadDurationByRegion": "地域別ページ読み込み時間(平均)", - "xpack.apm.searchInput.filter": "フィルター...", - "xpack.apm.selectPlaceholder": "オプションを選択:", - "xpack.apm.serviceDependencies.breakdownChartTitle": "依存関係にかかった時間", - "xpack.apm.serviceDetails.dependenciesTabLabel": "依存関係", - "xpack.apm.serviceDetails.errorsTabLabel": "エラー", - "xpack.apm.serviceDetails.metrics.cpuUsageChartTitle": "CPU 使用状況", - "xpack.apm.serviceDetails.metrics.errorOccurrencesChart.title": "エラーのオカレンス", - "xpack.apm.serviceDetails.metrics.errorsList.title": "エラー", - "xpack.apm.serviceDetails.metrics.memoryUsageChartTitle": "システムメモリー使用状況", - "xpack.apm.serviceDetails.metricsTabLabel": "メトリック", - "xpack.apm.serviceDetails.nodesTabLabel": "JVM", - "xpack.apm.serviceDetails.overviewTabLabel": "概要", - "xpack.apm.serviceDetails.profilingTabExperimentalDescription": "プロファイリングは実験的機能であり、内部利用専用です。", - "xpack.apm.serviceDetails.profilingTabExperimentalLabel": "実験的", - "xpack.apm.serviceDetails.profilingTabLabel": "プロファイリング", - "xpack.apm.serviceDetails.transactionsTabLabel": "トランザクション", - "xpack.apm.serviceHealthStatus.critical": "重大", - "xpack.apm.serviceHealthStatus.healthy": "正常", - "xpack.apm.serviceHealthStatus.unknown": "不明", - "xpack.apm.serviceHealthStatus.warning": "警告", - "xpack.apm.serviceIcons.cloud": "クラウド", - "xpack.apm.serviceIcons.container": "コンテナー", - "xpack.apm.serviceIcons.service": "サービス", - "xpack.apm.serviceIcons.serviceDetails.cloud.availabilityZoneLabel": "{zones, plural, =other {可用性ゾーン}} ", - "xpack.apm.serviceIcons.serviceDetails.cloud.machineTypesLabel": "{machineTypes, plural, =other {コンピュータータイプ}} ", - "xpack.apm.serviceIcons.serviceDetails.cloud.projectIdLabel": "プロジェクト ID", - "xpack.apm.serviceIcons.serviceDetails.cloud.providerLabel": "クラウドプロバイダー", - "xpack.apm.serviceIcons.serviceDetails.container.containerizedLabel": "コンテナー化", - "xpack.apm.serviceIcons.serviceDetails.container.noLabel": "いいえ", - "xpack.apm.serviceIcons.serviceDetails.container.orchestrationLabel": "オーケストレーション", - "xpack.apm.serviceIcons.serviceDetails.container.osLabel": "OS", - "xpack.apm.serviceIcons.serviceDetails.container.totalNumberInstancesLabel": "インスタンスの合計数", - "xpack.apm.serviceIcons.serviceDetails.container.yesLabel": "はい", - "xpack.apm.serviceIcons.serviceDetails.service.agentLabel": "エージェント名・バージョン", - "xpack.apm.serviceIcons.serviceDetails.service.frameworkLabel": "フレームワーク名", - "xpack.apm.serviceIcons.serviceDetails.service.runtimeLabel": "ランタイム名・バージョン", - "xpack.apm.serviceIcons.serviceDetails.service.versionLabel": "サービスバージョン", - "xpack.apm.serviceInventory.mlNudgeMessageTitle": "異常検知を有効にして、正常性ステータスインジケーターをサービスに追加します", - "xpack.apm.serviceInventory.toastText": "現在 Elastic Stack 7.0+ を実行中で、以前のバージョン 6.x からの互換性のないデータを検知しました。このデータを APM で表示するには、移行が必要です。詳細 ", - "xpack.apm.serviceInventory.toastTitle": "選択された時間範囲内にレガシーデータが検知されました。", - "xpack.apm.serviceInventory.upgradeAssistantLinkText": "アップグレードアシスタント", - "xpack.apm.serviceLogs.noInfrastructureMessage": "表示するログメッセージがありません。", - "xpack.apm.serviceMap.anomalyDetectionPopoverDisabled": "APM 設定で異常検知を有効にすると、サービス正常性インジケーターが表示されます。", - "xpack.apm.serviceMap.anomalyDetectionPopoverLink": "異常を表示", - "xpack.apm.serviceMap.anomalyDetectionPopoverNoData": "選択した時間範囲で、異常スコアを検出できませんでした。異常エクスプローラーで詳細を確認してください。", - "xpack.apm.serviceMap.anomalyDetectionPopoverScoreMetric": "スコア(最大)", - "xpack.apm.serviceMap.anomalyDetectionPopoverTitle": "異常検知", - "xpack.apm.serviceMap.anomalyDetectionPopoverTooltip": "サービス正常性インジケーターは、機械学習の異常検知に基づいています。", - "xpack.apm.serviceMap.avgCpuUsagePopoverStat": "CPU使用状況(平均)", - "xpack.apm.serviceMap.avgMemoryUsagePopoverStat": "メモリー使用状況(平均)", - "xpack.apm.serviceMap.avgReqPerMinutePopoverMetric": "スループット(平均)", - "xpack.apm.serviceMap.avgTransDurationPopoverStat": "レイテンシ(平均)", - "xpack.apm.serviceMap.center": "中央", - "xpack.apm.serviceMap.download": "ダウンロード", - "xpack.apm.serviceMap.emptyBanner.docsLink": "詳細はドキュメントをご覧ください", - "xpack.apm.serviceMap.emptyBanner.message": "接続されているサービスや外部リクエストを検出できる場合、システムはそれらをマップします。最新版の APM エージェントが動作していることを確認してください。", - "xpack.apm.serviceMap.emptyBanner.title": "単一のサービスしかないようです。", - "xpack.apm.serviceMap.errorRatePopoverStat": "失敗したトランザクション率(平均)", - "xpack.apm.serviceMap.focusMapButtonText": "焦点マップ", - "xpack.apm.serviceMap.invalidLicenseMessage": "サービスマップを利用するには、Elastic Platinum ライセンスが必要です。これにより、APM データとともにアプリケーションスタックすべてを可視化することができるようになります。", - "xpack.apm.serviceMap.noServicesPromptDescription": "現在選択されている時間範囲と環境内では、マッピングするサービスが見つかりません。別の範囲を試すか、選択した環境を確認してください。サービスがない場合は、セットアップ手順に従って開始してください。", - "xpack.apm.serviceMap.noServicesPromptTitle": "サービスが利用できません", - "xpack.apm.serviceMap.popover.noDataText": "選択した環境のデータがありません。別の環境に切り替えてください。", - "xpack.apm.serviceMap.resourceCountLabel": "{count}個のリソース", - "xpack.apm.serviceMap.serviceDetailsButtonText": "サービス詳細", - "xpack.apm.serviceMap.subtypePopoverStat": "サブタイプ", - "xpack.apm.serviceMap.timeoutPrompt.docsLink": "APM 設定の詳細については、ドキュメントを参照してください", - "xpack.apm.serviceMap.timeoutPromptDescription": "サービスマップのデータの取得中にタイムアウトしました。時間範囲を狭めて範囲を制限するか、小さい値で構成設定「{configName}」を使用してください。", - "xpack.apm.serviceMap.timeoutPromptTitle": "サービスマップタイムアウト", - "xpack.apm.serviceMap.typePopoverStat": "型", - "xpack.apm.serviceMap.viewFullMap": "サービスの全体マップを表示", - "xpack.apm.serviceMap.zoomIn": "ズームイン", - "xpack.apm.serviceMap.zoomOut": "ズームアウト", - "xpack.apm.serviceNodeMetrics.containerId": "コンテナー ID", - "xpack.apm.serviceNodeMetrics.host": "ホスト", - "xpack.apm.serviceNodeMetrics.serviceName": "サービス名", - "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningDocumentationLink": "APM Server のドキュメンテーション", - "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningText": "これらのメトリックが所属する JVM を特定できませんでした。7.5 よりも古い APM Server を実行していることが原因である可能性が高いです。この問題は APM Server 7.5 以降にアップグレードすることで解決されます。アップグレードに関する詳細は、{link} をご覧ください。代わりに Kibana クエリバーを使ってホスト名、コンテナー ID、またはその他フィールドでフィルタリングすることもできます。", - "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningTitle": "JVM を特定できませんでした", - "xpack.apm.serviceNodeNameMissing": "(空)", - "xpack.apm.serviceOveriew.errorsTableOccurrences": "{occurrencesCount} occ.", - "xpack.apm.serviceOverview.dependenciesTableTabLink": "依存関係を表示", - "xpack.apm.serviceOverview.dependenciesTableTitle": "ダウンストリームサービスとバックエンド", - "xpack.apm.serviceOverview.errorsTableColumnLastSeen": "前回の認識", - "xpack.apm.serviceOverview.errorsTableColumnName": "名前", - "xpack.apm.serviceOverview.errorsTableColumnOccurrences": "オカレンス", - "xpack.apm.serviceOverview.errorsTableLinkText": "エラーを表示", - "xpack.apm.serviceOverview.errorsTableTitle": "エラー", - "xpack.apm.serviceOverview.instancesTable.actionMenus.container.subtitle": "このコンテナーのログとインデックスを表示し、さらに詳細を確認できます。", - "xpack.apm.serviceOverview.instancesTable.actionMenus.container.title": "コンテナーの詳細", - "xpack.apm.serviceOverview.instancesTable.actionMenus.containerLogs": "コンテナーログ", - "xpack.apm.serviceOverview.instancesTable.actionMenus.containerMetrics": "コンテナーメトリック", - "xpack.apm.serviceOverview.instancesTable.actionMenus.filterByInstance": "インスタンスで概要をフィルタリング", - "xpack.apm.serviceOverview.instancesTable.actionMenus.metrics": "メトリック", - "xpack.apm.serviceOverview.instancesTable.actionMenus.pod.subtitle": "このポッドのログとメトリックを表示し、さらに詳細を確認できます。", - "xpack.apm.serviceOverview.instancesTable.actionMenus.pod.title": "ポッドの詳細", - "xpack.apm.serviceOverview.instancesTable.actionMenus.podLogs": "ポッドログ", - "xpack.apm.serviceOverview.instancesTable.actionMenus.podMetrics": "ポッドメトリック", - "xpack.apm.serviceOverview.instancesTableColumnCpuUsage": "CPU使用状況(平均)", - "xpack.apm.serviceOverview.instancesTableColumnErrorRate": "失敗したトランザクション率", - "xpack.apm.serviceOverview.instancesTableColumnMemoryUsage": "メモリー使用状況(平均)", - "xpack.apm.serviceOverview.instancesTableColumnNodeName": "ノード名", - "xpack.apm.serviceOverview.instancesTableColumnThroughput": "スループット", - "xpack.apm.serviceOverview.instancesTableTitle": "インスタンス", - "xpack.apm.serviceOverview.instanceTable.details.cloudTitle": "クラウド", - "xpack.apm.serviceOverview.instanceTable.details.containerTitle": "コンテナー", - "xpack.apm.serviceOverview.instanceTable.details.serviceTitle": "サービス", - "xpack.apm.serviceOverview.latencyChartTitle": "レイテンシ", - "xpack.apm.serviceOverview.latencyChartTitle.prepend": "メトリック", - "xpack.apm.serviceOverview.latencyChartTitle.previousPeriodLabel": "前の期間", - "xpack.apm.serviceOverview.latencyColumnAvgLabel": "レイテンシ(平均)", - "xpack.apm.serviceOverview.latencyColumnDefaultLabel": "レイテンシ", - "xpack.apm.serviceOverview.latencyColumnP95Label": "レイテンシ(95 番目)", - "xpack.apm.serviceOverview.latencyColumnP99Label": "レイテンシ(99 番目)", - "xpack.apm.serviceOverview.mlNudgeMessage.content": "APM の異常検知統合で、異常なトランザクションを特定し、アップストリームおよびダウンストリームサービスの正常性を確認します。わずか数分で開始できます。", - "xpack.apm.serviceOverview.mlNudgeMessage.dismissButton": "閉じる", - "xpack.apm.serviceOverview.mlNudgeMessage.learnMoreButton": "使ってみる", - "xpack.apm.serviceOverview.throughtputChart.previousPeriodLabel": "前の期間", - "xpack.apm.serviceOverview.throughtputChartTitle": "スループット", - "xpack.apm.serviceOverview.tpmHelp": "スループットは1分あたりのトランザクション数(tpm)で測定されます", - "xpack.apm.serviceOverview.transactionsTableColumnErrorRate": "失敗したトランザクション率", - "xpack.apm.serviceOverview.transactionsTableColumnImpact": "インパクト", - "xpack.apm.serviceOverview.transactionsTableColumnName": "名前", - "xpack.apm.serviceOverview.transactionsTableColumnThroughput": "スループット", - "xpack.apm.serviceProfiling.valueTypeLabel.allocObjects": "Alloc. objects", - "xpack.apm.serviceProfiling.valueTypeLabel.allocSpace": "Alloc. space", - "xpack.apm.serviceProfiling.valueTypeLabel.cpuTime": "On-CPU", - "xpack.apm.serviceProfiling.valueTypeLabel.inuseObjects": "使用中のオブジェクト", - "xpack.apm.serviceProfiling.valueTypeLabel.inuseSpace": "使用中のスペース", - "xpack.apm.serviceProfiling.valueTypeLabel.samples": "サンプル", - "xpack.apm.serviceProfiling.valueTypeLabel.unknown": "その他", - "xpack.apm.serviceProfiling.valueTypeLabel.wallTime": "Wall", - "xpack.apm.servicesTable.environmentColumnLabel": "環境", - "xpack.apm.servicesTable.healthColumnLabel": "ヘルス", - "xpack.apm.servicesTable.latencyAvgColumnLabel": "レイテンシ(平均)", - "xpack.apm.servicesTable.metricsExplanationLabel": "これらのメトリックは何か。", - "xpack.apm.servicesTable.nameColumnLabel": "名前", - "xpack.apm.servicesTable.notFoundLabel": "サービスが見つかりません", - "xpack.apm.servicesTable.throughputColumnLabel": "スループット", - "xpack.apm.servicesTable.tooltip.metricsExplanation": "サービスメトリックは、トランザクションタイプ「要求」、「ページ読み込み」、または上位の使用可能なトランザクションタイプのいずれかで集計されます。", - "xpack.apm.servicesTable.transactionColumnLabel": "トランザクションタイプ", - "xpack.apm.servicesTable.transactionErrorRate": "失敗したトランザクション率", - "xpack.apm.settings.agentConfig": "エージェントの編集", - "xpack.apm.settings.agentConfig.createConfigButton.tooltip": "エージェント構成を作成する権限がありません", - "xpack.apm.settings.agentConfig.descriptionText": "APMアプリ内からエージェント構成を微調整してください。変更はAPMエージェントに自動的に伝達されるので、再デプロイする必要はありません。", - "xpack.apm.settings.anomaly_detection.legacy_jobs.body": "以前の統合のレガシー機械学習ジョブが見つかりました。これは、APMアプリでは使用されていません。", - "xpack.apm.settings.anomaly_detection.legacy_jobs.button": "ジョブの確認", - "xpack.apm.settings.anomaly_detection.legacy_jobs.title": "レガシーMLジョブはAPMアプリで使用されていません。", - "xpack.apm.settings.anomalyDetection": "異常検知", - "xpack.apm.settings.anomalyDetection.addEnvironments.cancelButtonText": "キャンセル", - "xpack.apm.settings.anomalyDetection.addEnvironments.createJobsButtonText": "ジョブの作成", - "xpack.apm.settings.anomalyDetection.addEnvironments.descriptionText": "異常検知を有効にするサービス環境を選択してください。異常は選択した環境内のすべてのサービスとトランザクションタイプで表面化します。", - "xpack.apm.settings.anomalyDetection.addEnvironments.selectorLabel": "環境", - "xpack.apm.settings.anomalyDetection.addEnvironments.selectorPlaceholder": "環境を選択または追加", - "xpack.apm.settings.anomalyDetection.addEnvironments.titleText": "環境を選択", - "xpack.apm.settings.anomalyDetection.jobList.actionColumnLabel": "アクション", - "xpack.apm.settings.anomalyDetection.jobList.addEnvironments": "MLジョブを作成", - "xpack.apm.settings.anomalyDetection.jobList.emptyListText": "異常検知ジョブがありません。", - "xpack.apm.settings.anomalyDetection.jobList.environmentColumnLabel": "環境", - "xpack.apm.settings.anomalyDetection.jobList.environments": "環境", - "xpack.apm.settings.anomalyDetection.jobList.failedFetchText": "異常検知ジョブを取得できません。", - "xpack.apm.settings.anomalyDetection.jobList.mlDescriptionText": "異常検知を新しい環境に追加するには、機械学習ジョブを作成します。既存の機械学習ジョブは、{mlJobsLink}で管理できます。", - "xpack.apm.settings.anomalyDetection.jobList.mlDescriptionText.mlJobsLinkText": "機械学習", - "xpack.apm.settings.anomalyDetection.jobList.mlJobLinkText": "MLでジョブを表示", - "xpack.apm.settings.apmIndices.applyButton": "変更を適用", - "xpack.apm.settings.apmIndices.applyChanges.failed.text": "インデックスの適用時に何か問題が発生しました。エラー:{errorMessage}", - "xpack.apm.settings.apmIndices.applyChanges.failed.title": "インデックスが適用できませんでした。", - "xpack.apm.settings.apmIndices.applyChanges.succeeded.text": "インデックスの変更の適用に成功しました。これらの変更は、APM UIで直ちに反映されます。", - "xpack.apm.settings.apmIndices.applyChanges.succeeded.title": "適用されるインデックス", - "xpack.apm.settings.apmIndices.cancelButton": "キャンセル", - "xpack.apm.settings.apmIndices.description": "APM UI は、APM インデックスをクエリするためにインデックスパターンを使用しています。APM Server がイベントを書き込むインデックス名をカスタマイズした場合、APM UI が機能するにはこれらパターンをアップデートする必要がある場合があります。ここの設定は、 kibana.yml で設定されたものよりも優先します。", - "xpack.apm.settings.apmIndices.errorIndicesLabel": "エラーインデックス", - "xpack.apm.settings.apmIndices.helpText": "上書き {configurationName}: {defaultValue}", - "xpack.apm.settings.apmIndices.metricsIndicesLabel": "メトリックインデックス", - "xpack.apm.settings.apmIndices.noPermissionTooltipLabel": "ユーザーロールには、APMインデックスを変更する権限がありません", - "xpack.apm.settings.apmIndices.onboardingIndicesLabel": "オンボーディングインデックス", - "xpack.apm.settings.apmIndices.sourcemapIndicesLabel": "ソースマップインデックス", - "xpack.apm.settings.apmIndices.spanIndicesLabel": "スパンインデックス", - "xpack.apm.settings.apmIndices.title": "インデックス", - "xpack.apm.settings.apmIndices.transactionIndicesLabel": "トランザクションインデックス", - "xpack.apm.settings.createApmPackagePolicy.errorToast.title": "クラウドエージェントポリシーでAPMパッケージポリシーを作成できません", - "xpack.apm.settings.customizeApp": "アプリをカスタマイズ", - "xpack.apm.settings.customizeUI.customLink": "カスタムリンク", - "xpack.apm.settings.customizeUI.customLink.create.failed": "リンクを保存できませんでした!", - "xpack.apm.settings.customizeUI.customLink.create.failed.message": "リンクを保存するときに問題が発生しました。エラー:「{errorMessage}」", - "xpack.apm.settings.customizeUI.customLink.create.successed": "リンクを保存しました。", - "xpack.apm.settings.customizeUI.customLink.createCustomLink": "カスタムリンクを作成", - "xpack.apm.settings.customizeUI.customLink.default.label": "Elastic.co", - "xpack.apm.settings.customizeUI.customLink.default.url": "https://www.elastic.co", - "xpack.apm.settings.customizeUI.customLink.delete": "削除", - "xpack.apm.settings.customizeUI.customLink.delete.failed": "カスタムリンクを削除できませんでした", - "xpack.apm.settings.customizeUI.customLink.delete.successed": "カスタムリンクを削除しました。", - "xpack.apm.settings.customizeUI.customLink.emptyPromptText": "変更しましょう。サービスごとのトランザクションの詳細でアクションコンテキストメニューにカスタムリンクを追加できます。自社のサポートポータルへの役立つリンクを作成するか、新しい不具合レポートを発行します。詳細はドキュメントをご覧ください。", - "xpack.apm.settings.customizeUI.customLink.emptyPromptTitle": "リンクが見つかりません。", - "xpack.apm.settings.customizeUI.customLink.flyout.action.title": "リンク", - "xpack.apm.settings.customizeUI.customLink.flyout.close": "閉じる", - "xpack.apm.settings.customizeUI.customLink.flyout.filters.addAnotherFilter": "別のフィルターを追加", - "xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption": "フィールドを選択してください...", - "xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption.value": "値", - "xpack.apm.settings.customizeUI.customLink.flyout.filters.prepend": "フィールド", - "xpack.apm.settings.customizeUI.customLink.flyout.filters.subtitle": "フィルターオプションを使用すると、特定のサービスについてのみ表示されるようにスコープを設定できます。", - "xpack.apm.settings.customizeUI.customLink.flyout.filters.title": "フィルター", - "xpack.apm.settings.customizeUI.customLink.flyout.label": "リンクは APM アプリ全体にわたるトランザクション詳細のコンテキストで利用できるようになります。作成できるリンクの数は無制限です。トランザクションメタデータのいずれかを使用することで、動的変数を参照して URL を入力できます。さらなる詳細および例がドキュメンテーションに記載されています", - "xpack.apm.settings.customizeUI.customLink.flyout.label.doc": "ドキュメンテーション", - "xpack.apm.settings.customizeUI.customLink.flyout.link.label": "ラベル", - "xpack.apm.settings.customizeUI.customLink.flyout.link.label.helpText": "これはアクションコンテキストメニューに表示されるラベルです。できるだけ短くしてください。", - "xpack.apm.settings.customizeUI.customLink.flyout.link.label.placeholder": "例:サポートチケット", - "xpack.apm.settings.customizeUI.customLink.flyout.link.url": "URL", - "xpack.apm.settings.customizeUI.customLink.flyout.link.url.doc": "詳細はドキュメントをご覧ください。", - "xpack.apm.settings.customizeUI.customLink.flyout.link.url.helpText": "URL にフィールド名変数(例:{sample})を追加すると値を適用できます。", - "xpack.apm.settings.customizeUI.customLink.flyout.link.url.placeholder": "例:https://www.elastic.co/", - "xpack.apm.settings.customizeUI.customLink.flyout.required": "必須", - "xpack.apm.settings.customizeUI.customLink.flyout.save": "保存", - "xpack.apm.settings.customizeUI.customLink.flyout.title": "リンクを作成", - "xpack.apm.settings.customizeUI.customLink.info": "これらのリンクは、トランザクション詳細などによって、アプリの選択した領域にあるアクションコンテキストメニューに表示されます。", - "xpack.apm.settings.customizeUI.customLink.license.text": "カスタムリンクを作成するには、Elastic Gold 以上のライセンスが必要です。適切なライセンスがあれば、カスタムリンクを作成してサービスを分析する際にワークフローを改良できます。", - "xpack.apm.settings.customizeUI.customLink.linkPreview.descrition": "上記のフィルターに基づき、サンプルトランザクションドキュメントの値でリンクをテストしてください。", - "xpack.apm.settings.customizeUI.customLink.noPermissionTooltipLabel": "ユーザーロールには、カスタムリンクを作成する権限がありません", - "xpack.apm.settings.customizeUI.customLink.preview.contextVariable.invalid": "無効な変数が定義されているため、サンプルトランザクションドキュメントが見つかりませんでした。", - "xpack.apm.settings.customizeUI.customLink.preview.contextVariable.noMatch": "{variables} に一致する値がサンプルトランザクションドキュメント内にありませんでした。", - "xpack.apm.settings.customizeUI.customLink.preview.transaction.notFound": "定義されたフィルターに基づき、一致するトランザクションドキュメントが見つかりませんでした。", - "xpack.apm.settings.customizeUI.customLink.previewSectionTitle": "プレビュー", - "xpack.apm.settings.customizeUI.customLink.searchInput.filter": "名前と URL でリンクをフィルタリング...", - "xpack.apm.settings.customizeUI.customLink.table.editButtonDescription": "このカスタムリンクを編集", - "xpack.apm.settings.customizeUI.customLink.table.editButtonLabel": "編集", - "xpack.apm.settings.customizeUI.customLink.table.lastUpdated": "最終更新", - "xpack.apm.settings.customizeUI.customLink.table.name": "名前", - "xpack.apm.settings.customizeUI.customLink.table.noResultFound": "\"{value}\"に対する結果が見つかりませんでした。", - "xpack.apm.settings.customizeUI.customLink.table.url": "URL", - "xpack.apm.settings.indices": "インデックス", - "xpack.apm.settings.schema": "スキーマ", - "xpack.apm.settings.schema.confirm.apmServerSettingsCloudLinkText": "クラウドでAPMサーバー設定に移動", - "xpack.apm.settings.schema.confirm.cancelText": "キャンセル", - "xpack.apm.settings.schema.confirm.checkboxLabel": "データストリームに切り替えることを確認する", - "xpack.apm.settings.schema.confirm.irreversibleWarning.message": "移行中には一時的にAPMデータ収集に影響する可能性があります。移行プロセスは数分で完了します。", - "xpack.apm.settings.schema.confirm.irreversibleWarning.title": "データストリームへの切り替えは元に戻せません。", - "xpack.apm.settings.schema.confirm.switchButtonText": "データストリームに切り替える", - "xpack.apm.settings.schema.confirm.title": "選択内容を確認してください", - "xpack.apm.settings.schema.confirm.unsupportedConfigs.descriptionText": "互換性のあるカスタムapm-server.ymlユーザー設定がFleetサーバー設定に移動されます。削除する前に互換性のない設定について通知されます。", - "xpack.apm.settings.schema.confirm.unsupportedConfigs.title": "次のapm-server.ymlユーザー設定は互換性がないため削除されます", - "xpack.apm.settings.schema.descriptionText.irreversibleEmphasisText": "元に戻せません", - "xpack.apm.settings.schema.descriptionText.superuserEmphasisText": "スーパーユーザー", - "xpack.apm.settings.schema.disabledReason": "データストリームへの切り替えを使用できません: {reasons}", - "xpack.apm.settings.schema.disabledReason.cloudApmMigrationEnabled": "クラウド移行が有効ではありません", - "xpack.apm.settings.schema.disabledReason.hasCloudAgentPolicy": "クラウドエージェントポリシーが存在しません", - "xpack.apm.settings.schema.disabledReason.hasRequiredRole": "ユーザーにはスーパーユーザーロールがありません", - "xpack.apm.settings.schema.migrate.classicIndices.currentSetup": "現在の設定", - "xpack.apm.settings.schema.migrate.classicIndices.description": "現在、データのクラシックAPMインデックスを使用しています。このデータスキーマは廃止予定であり、Elastic Stackバージョン8.0でデータストリームに置換されます。", - "xpack.apm.settings.schema.migrate.classicIndices.title": "クラシックAPMインデックス", - "xpack.apm.settings.schema.migrate.dataStreams.buttonText": "データストリームに切り替える", - "xpack.apm.settings.schema.migrate.dataStreams.description": "今後、新しく取り込まれたデータはすべてデータストリームに格納されます。以前に取り込まれたデータはクラシックAPMインデックスに残ります。APMおよびUXアプリは引き続き両方のインデックスをサポートします。", - "xpack.apm.settings.schema.migrate.dataStreams.title": "データストリーム", - "xpack.apm.settings.schema.migrationInProgressPanelDescription": "古いAPMサーバーインスタンスのシャットダウン中に新しいAPMサーバーを含めるFleetサーバーインスタンスを作成しています。数分以内にデータがもう一度アプリに取り込まれます。", - "xpack.apm.settings.schema.migrationInProgressPanelTitle": "データストリームに切り替え中...", - "xpack.apm.settings.schema.success.description": "APM統合が設定されました。現在導入されているエージェントからデータを受信できます。統合に適用されたポリシーは自由に確認できます。", - "xpack.apm.settings.schema.success.returnText": "あるいは、{serviceInventoryLink}に戻ることができます。", - "xpack.apm.settings.schema.success.returnText.serviceInventoryLink": "サービスインベントリ", - "xpack.apm.settings.schema.success.title": "データストリームが正常に設定されました。", - "xpack.apm.settings.schema.success.viewIntegrationInFleet.buttonText": "FleetでAPM統合を表示", - "xpack.apm.settings.title": "設定", - "xpack.apm.settings.unsupportedConfigs.errorToast.title": "APMサーバー設定を取り込めません", - "xpack.apm.settingsLinkLabel": "設定", - "xpack.apm.setupInstructionsButtonLabel": "セットアップの手順", - "xpack.apm.stacktraceTab.causedByFramesToogleButtonLabel": "作成元", - "xpack.apm.stacktraceTab.localVariablesToogleButtonLabel": "ローカル変数", - "xpack.apm.stacktraceTab.noStacktraceAvailableLabel": "利用可能なスタックトレースがありません。", - "xpack.apm.timeComparison.label": "比較", - "xpack.apm.timeComparison.select.dayBefore": "前の日", - "xpack.apm.timeComparison.select.weekBefore": "前の週", - "xpack.apm.toggleHeight.showLessButtonLabel": "表示する行数を減らす", - "xpack.apm.toggleHeight.showMoreButtonLabel": "表示する行数を増やす", - "xpack.apm.tracesTable.avgResponseTimeColumnLabel": "レイテンシ(平均)", - "xpack.apm.tracesTable.impactColumnDescription": "ご利用のサービスで最も頻繁に使用されていて、最も遅いエンドポイントです。レイテンシとスループットを乗算した結果です", - "xpack.apm.tracesTable.impactColumnLabel": "インパクト", - "xpack.apm.tracesTable.nameColumnLabel": "名前", - "xpack.apm.tracesTable.notFoundLabel": "このクエリのトレースが見つかりません", - "xpack.apm.tracesTable.originatingServiceColumnLabel": "発生元サービス", - "xpack.apm.tracesTable.tracesPerMinuteColumnLabel": "1 分あたりのトレース", - "xpack.apm.transactionActionMenu.actionsButtonLabel": "調査", - "xpack.apm.transactionActionMenu.container.subtitle": "このコンテナーのログとインデックスを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.container.title": "コンテナーの詳細", - "xpack.apm.transactionActionMenu.customLink.section": "カスタムリンク", - "xpack.apm.transactionActionMenu.customLink.showAll": "すべて表示", - "xpack.apm.transactionActionMenu.customLink.showFewer": "簡易表示", - "xpack.apm.transactionActionMenu.customLink.subtitle": "リンクは新しいウィンドウで開きます。", - "xpack.apm.transactionActionMenu.host.subtitle": "ホストログとメトリックを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.host.title": "ホストの詳細", - "xpack.apm.transactionActionMenu.pod.subtitle": "このポッドのログとメトリックを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.pod.title": "ポッドの詳細", - "xpack.apm.transactionActionMenu.showContainerLogsLinkLabel": "コンテナーログ", - "xpack.apm.transactionActionMenu.showContainerMetricsLinkLabel": "コンテナーメトリック", - "xpack.apm.transactionActionMenu.showHostLogsLinkLabel": "ホストログ", - "xpack.apm.transactionActionMenu.showHostMetricsLinkLabel": "ホストメトリック", - "xpack.apm.transactionActionMenu.showPodLogsLinkLabel": "ポッドログ", - "xpack.apm.transactionActionMenu.showPodMetricsLinkLabel": "ポッドメトリック", - "xpack.apm.transactionActionMenu.showTraceLogsLinkLabel": "トレースログ", - "xpack.apm.transactionActionMenu.status.subtitle": "ステータスを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.status.title": "ステータスの詳細", - "xpack.apm.transactionActionMenu.trace.subtitle": "トレースログを表示し、さらに詳細を確認できます。", - "xpack.apm.transactionActionMenu.trace.title": "トレースの詳細", - "xpack.apm.transactionActionMenu.viewInUptime": "ステータス", - "xpack.apm.transactionActionMenu.viewSampleDocumentLinkLabel": "サンプルドキュメントを表示", - "xpack.apm.transactionBreakdown.chartTitle": "スパンタイプ別時間", - "xpack.apm.transactionDetails.clearSelectionAriaLabel": "選択した項目をクリア", - "xpack.apm.transactionDetails.distribution.panelTitle": "レイテンシ分布", - "xpack.apm.transactionDetails.emptySelectionText": "クリックおよびドラッグして範囲を選択", - "xpack.apm.transactionDetails.noTraceParentButtonTooltip": "トレースの親が見つかりませんでした", - "xpack.apm.transactionDetails.percentOfTraceLabelExplanation": "{parentType, select, transaction {トランザクション} trace {トレース} }の割合が100%を超えています。これは、この{childType, select, span {スパン} transaction {トランザクション} }がルートトランザクションよりも時間がかかるためです。", - "xpack.apm.transactionDetails.requestMethodLabel": "リクエストメソッド", - "xpack.apm.transactionDetails.resultLabel": "結果", - "xpack.apm.transactionDetails.serviceLabel": "サービス", - "xpack.apm.transactionDetails.servicesTitle": "サービス", - "xpack.apm.transactionDetails.spanFlyout.backendLabel": "バックエンド", - "xpack.apm.transactionDetails.spanFlyout.compositeExampleWarning": "これは連続した類似したスパンのグループのサンプルドキュメントです", - "xpack.apm.transactionDetails.spanFlyout.databaseStatementTitle": "データベースステートメント", - "xpack.apm.transactionDetails.spanFlyout.nameLabel": "名前", - "xpack.apm.transactionDetails.spanFlyout.spanAction": "アクション", - "xpack.apm.transactionDetails.spanFlyout.spanDetailsTitle": "スパン詳細", - "xpack.apm.transactionDetails.spanFlyout.spanSubtype": "サブタイプ", - "xpack.apm.transactionDetails.spanFlyout.spanType": "型", - "xpack.apm.transactionDetails.spanFlyout.spanType.navigationTimingLabel": "ナビゲーションタイミング", - "xpack.apm.transactionDetails.spanFlyout.stackTraceTabLabel": "スタックトレース", - "xpack.apm.transactionDetails.spanFlyout.viewSpanInDiscoverButtonLabel": "Discover でスパンを表示", - "xpack.apm.transactionDetails.spanTypeLegendTitle": "型", - "xpack.apm.transactionDetails.statusCode": "ステータスコード", - "xpack.apm.transactionDetails.syncBadgeAsync": "非同期", - "xpack.apm.transactionDetails.syncBadgeBlocking": "ブロック", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaDescription": "失敗したトランザクション率はGAではありません。不具合が発生したら報告してください。", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaLabel": "ベータ", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaTitle": "失敗したトランザクション率", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsLabel": "失敗したトランザクションの相関関係", - "xpack.apm.transactionDetails.tabs.latencyLabel": "遅延の相関関係", - "xpack.apm.transactionDetails.tabs.traceSamplesLabel": "トレースのサンプル", - "xpack.apm.transactionDetails.traceNotFound": "選択されたトレースが見つかりません", - "xpack.apm.transactionDetails.traceSampleTitle": "トレースのサンプル", - "xpack.apm.transactionDetails.transactionLabel": "トランザクション", - "xpack.apm.transactionDetails.transFlyout.callout.agentDroppedSpansMessage": "このトランザクションを報告した APM エージェントが、構成に基づき {dropped} 個以上のスパンをドロップしました。", - "xpack.apm.transactionDetails.transFlyout.callout.learnMoreAboutDroppedSpansLinkText": "ドロップされたスパンの詳細。", - "xpack.apm.transactionDetails.transFlyout.transactionDetailsTitle": "トランザクションの詳細", - "xpack.apm.transactionDetails.userAgentAndVersionLabel": "ユーザーエージェントとバージョン", - "xpack.apm.transactionDetails.viewFullTraceButtonLabel": "完全なトレースを表示", - "xpack.apm.transactionDetails.viewingFullTraceButtonTooltip": "現在完全なトレースが表示されています", - "xpack.apm.transactionDistribution.chart.allTransactionsLabel": "すべてのトランザクション", - "xpack.apm.transactionDistribution.chart.currentTransactionMarkerLabel": "現在のサンプル", - "xpack.apm.transactionDistribution.chart.numberOfTransactionsLabel": "# トランザクション", - "xpack.apm.transactionDurationAlert.aggregationType.95th": "95 パーセンタイル", - "xpack.apm.transactionDurationAlert.aggregationType.99th": "99 パーセンタイル", - "xpack.apm.transactionDurationAlert.aggregationType.avg": "平均", - "xpack.apm.transactionDurationAlert.name": "レイテンシしきい値", - "xpack.apm.transactionDurationAlertTrigger.ms": "ms", - "xpack.apm.transactionDurationAlertTrigger.when": "タイミング", - "xpack.apm.transactionDurationAnomalyAlert.name": "レイテンシ異常値", - "xpack.apm.transactionDurationAnomalyAlertTrigger.anomalySeverity": "異常と重要度があります", - "xpack.apm.transactionDurationLabel": "期間", - "xpack.apm.transactionErrorRateAlert.name": "失敗したトランザクション率しきい値", - "xpack.apm.transactionErrorRateAlertTrigger.isAbove": "より大きい", - "xpack.apm.transactionRateLabel": "{displayedValue} tpm", - "xpack.apm.transactions.latency.chart.95thPercentileLabel": "95 パーセンタイル", - "xpack.apm.transactions.latency.chart.99thPercentileLabel": "99 パーセンタイル", - "xpack.apm.transactions.latency.chart.averageLabel": "平均", - "xpack.apm.tutorial.agent_config.choosePolicy.helper": "選択したポリシー構成を下のスニペットに追加します。", - "xpack.apm.tutorial.agent_config.choosePolicyLabel": "ポリシーを選択", - "xpack.apm.tutorial.agent_config.defaultStandaloneConfig": "デフォルトのダッシュボード構成", - "xpack.apm.tutorial.agent_config.fleetPoliciesLabel": "Fleetポリシー", - "xpack.apm.tutorial.agent_config.getStartedWithFleet": "Fleetの基本", - "xpack.apm.tutorial.agent_config.manageFleetPolicies": "Fleetポリシーの管理", - "xpack.apm.tutorial.apmAgents.statusCheck.btnLabel": "エージェントステータスを確認", - "xpack.apm.tutorial.apmAgents.statusCheck.errorMessage": "エージェントからまだデータを受け取っていません", - "xpack.apm.tutorial.apmAgents.statusCheck.successMessage": "1 つまたは複数のエージェントからデータを受け取りました", - "xpack.apm.tutorial.apmAgents.statusCheck.text": "アプリケーションが実行されていてエージェントがデータを送信していることを確認してください。", - "xpack.apm.tutorial.apmAgents.statusCheck.title": "エージェントステータス", - "xpack.apm.tutorial.apmAgents.title": "APM エージェント", - "xpack.apm.tutorial.apmServer.callOut.message": "ご使用の APM Server を 7.0 以上に更新してあることを確認してください。 Kibana の管理セクションにある移行アシスタントで 6.x データを移行することもできます。", - "xpack.apm.tutorial.apmServer.callOut.title": "重要:7.0 以上に更新中", - "xpack.apm.tutorial.apmServer.fleet.apmIntegration.button": "APM統合", - "xpack.apm.tutorial.apmServer.fleet.manageApmIntegration.button": "FleetでAPM統合を管理", - "xpack.apm.tutorial.apmServer.fleet.message": "APMA統合は、APMデータ用にElasticsearchテンプレートとIngest Nodeパイプラインをインストールします。", - "xpack.apm.tutorial.apmServer.statusCheck.btnLabel": "APM Server ステータスを確認", - "xpack.apm.tutorial.apmServer.statusCheck.errorMessage": "APM Server が検出されました。7.0 以上に更新され、動作中であることを確認してください。", - "xpack.apm.tutorial.apmServer.statusCheck.successMessage": "APM Server が正しくセットアップされました", - "xpack.apm.tutorial.apmServer.statusCheck.text": "APM エージェントの導入を開始する前に、APM Server が動作していることを確認してください。", - "xpack.apm.tutorial.apmServer.statusCheck.title": "APM Server ステータス", - "xpack.apm.tutorial.apmServer.title": "APM Server", - "xpack.apm.tutorial.djangoClient.configure.commands.addAgentComment": "インストールされたアプリにエージェントを追加します", - "xpack.apm.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment": "パフォーマンスメトリックを送信するには、追跡ミドルウェアを追加します。", - "xpack.apm.tutorial.djangoClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース", - "xpack.apm.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "任意のサービス名を設定します。使用できる文字:", - "xpack.apm.tutorial.djangoClient.configure.commands.setServiceEnvironmentComment": "サービス環境を設定します", - "xpack.apm.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", - "xpack.apm.tutorial.djangoClient.configure.textPost": "高度な用途に関しては[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.djangoClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。", - "xpack.apm.tutorial.djangoClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.djangoClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。", - "xpack.apm.tutorial.djangoClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.dotNetClient.configureAgent.textPost": "エージェントに「IConfiguration」インスタンスが渡されていない場合、(例:非 ASP.NET Core アプリケーションの場合)、エージェントを環境変数で構成することもできます。\n 高度な用途に関しては[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.dotNetClient.configureAgent.title": "appsettings.json ファイルの例:", - "xpack.apm.tutorial.dotNetClient.configureApplication.textPost": "「IConfiguration」インスタンスを渡すのは任意であり、これにより、エージェントはこの「IConfiguration」インスタンス(例:「appsettings.json」ファイル)から構成を読み込みます。", - "xpack.apm.tutorial.dotNetClient.configureApplication.textPre": "「Elastic.Apm.NetCoreAll」パッケージの ASP.NET Core の場合、「Startup.cs」ファイル内の「Configure」メソドの「UseElasticApm」メソドを呼び出します。", - "xpack.apm.tutorial.dotNetClient.configureApplication.title": "エージェントをアプリケーションに追加", - "xpack.apm.tutorial.dotNetClient.download.textPre": "[NuGet]({allNuGetPackagesLink}) から.NETアプリケーションにエージェントパッケージを追加してください。用途の異なる複数の NuGet パッケージがあります。\n\nEntity Framework CoreのASP.NET Coreアプリケーションの場合は、[Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink})パッケージをダウンロードしてください。このパッケージは、自動的にすべてのエージェントコンポーネントをアプリケーションに追加します。\n\n 依存性を最低限に抑えたい場合、ASP.NET Coreの監視のみに[Elastic.Apm.AspNetCore]({aspNetCorePackageLink})パッケージ、またはEntity Framework Coreの監視のみに[Elastic.Apm.EfCore]({efCorePackageLink})パッケージを使用することができます。\n\n 手動インストルメンテーションのみにパブリックAgent APIを使用する場合は、[Elastic.Apm]({elasticApmPackageLink})パッケージを使用してください。", - "xpack.apm.tutorial.dotNetClient.download.title": "APM エージェントのダウンロード", - "xpack.apm.tutorial.downloadServer.title": "APM Server をダウンロードして展開します", - "xpack.apm.tutorial.downloadServerRpm": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink})をご覧ください。", - "xpack.apm.tutorial.downloadServerTitle": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink})をご覧ください。", - "xpack.apm.tutorial.editConfig.textPre": "Elastic Stack の X-Pack セキュアバージョンをご使用の場合、「apm-server.yml」構成ファイルで認証情報を指定する必要があります。", - "xpack.apm.tutorial.editConfig.title": "構成を編集する", - "xpack.apm.tutorial.elasticCloud.textPre": "APMサーバーを有効にするには、](https://cloud.elastic.co/deployments/{deploymentId}/edit)Elastic Cloudコンソール[に移動し、デプロイ設定でAPMを有効にします。有効になったら、このページを更新してください。", - "xpack.apm.tutorial.elasticCloudInstructions.title": "APM エージェント", - "xpack.apm.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース", - "xpack.apm.tutorial.flaskClient.configure.commands.configureElasticApmComment": "またはアプリケーションの設定で ELASTIC_APM を使用するよう構成します。", - "xpack.apm.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します", - "xpack.apm.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "任意のサービス名を設定します。使用できる文字:", - "xpack.apm.tutorial.flaskClient.configure.commands.setServiceEnvironmentComment": "サービス環境を設定します", - "xpack.apm.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", - "xpack.apm.tutorial.flaskClient.configure.textPost": "高度な用途に関しては[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.flaskClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。", - "xpack.apm.tutorial.flaskClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.flaskClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。", - "xpack.apm.tutorial.flaskClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します:", - "xpack.apm.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.goClient.configure.commands.setServiceEnvironment": "サービス環境を設定します", - "xpack.apm.tutorial.goClient.configure.commands.setServiceNameComment": "サービス名を設定します。使用できる文字は # a-z、A-Z、0-9、-、_、スペースです。", - "xpack.apm.tutorial.goClient.configure.commands.usedExecutableNameComment": "ELASTIC_APM_SERVICE_NAME が指定されていない場合、実行ファイルの名前が使用されます。", - "xpack.apm.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", - "xpack.apm.tutorial.goClient.configure.textPost": "高度な構成に関しては[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.goClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは実行ファイル名または「ELASTIC_APM_SERVICE_NAME」環境変数に基づいてプログラムで作成されます。", - "xpack.apm.tutorial.goClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.goClient.install.textPre": "Go の APM エージェントパッケージをインストールします。", - "xpack.apm.tutorial.goClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.goClient.instrument.textPost": "Goのソースコードのインストルメンテーションの詳細ガイドは、[ドキュメンテーション]({documentationLink})をご参照ください。", - "xpack.apm.tutorial.goClient.instrument.textPre": "提供されたインストルメンテーションモジュールの 1 つ、またはトレーサー API を直接使用して、Go アプリケーションにインストルメンテーションを設定します。", - "xpack.apm.tutorial.goClient.instrument.title": "アプリケーションのインストルメンテーション", - "xpack.apm.tutorial.introduction": "アプリケーション内から詳細なパフォーマンスメトリックやエラーを収集します。", - "xpack.apm.tutorial.javaClient.download.textPre": "[Maven Central]({mavenCentralLink})からエージェントジャーをダウンロードします。アプリケーションにエージェントを依存関係として「追加しない」でください。", - "xpack.apm.tutorial.javaClient.download.title": "APM エージェントのダウンロード", - "xpack.apm.tutorial.javaClient.startApplication.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。", - "xpack.apm.tutorial.javaClient.startApplication.textPre": "「-javaagent」フラグを追加し、システムプロパティを使用してエージェントを構成します。\n\n * 任意のサービス名を設定します(使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)\n * カスタム APM Server URL(デフォルト:{customApmServerUrl})を設定します\n * APM Server シークレットトークンを設定します\n * サービス環境を設定します\n * アプリケーションのベースパッケージを設定します", - "xpack.apm.tutorial.javaClient.startApplication.title": "javaagent フラグでアプリケーションを起動", - "xpack.apm.tutorial.jsClient.enableRealUserMonitoring.textPre": "デフォルトでは、APM Server を実行すると RUM サポートは無効になります。RUMサポートを有効にする手順については、[ドキュメンテーション]({documentationLink})をご覧ください。", - "xpack.apm.tutorial.jsClient.enableRealUserMonitoring.title": "APM Server のリアルユーザー監視サポートを有効にする", - "xpack.apm.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "任意のサービス名を設定します(使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)", - "xpack.apm.tutorial.jsClient.installDependency.commands.setServiceEnvironmentComment": "サービス環境を設定します", - "xpack.apm.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "サービスバージョンを設定します(ソースマップ機能に必要)", - "xpack.apm.tutorial.jsClient.installDependency.textPost": "React や Angular などのフレームワーク統合には、カスタム依存関係があります。詳細は[統合ドキュメント]({docLink})をご覧ください。", - "xpack.apm.tutorial.jsClient.installDependency.textPre": "「npm install @elastic/apm-rum --save」でエージェントをアプリケーションへの依存関係としてインストールできます。\n\nその後で以下のようにアプリケーションでエージェントを初期化して構成できます。", - "xpack.apm.tutorial.jsClient.installDependency.title": "エージェントを依存関係としてセットアップ", - "xpack.apm.tutorial.jsClient.scriptTags.textPre": "または、スクリプトタグを使用してエージェントのセットアップと構成ができます。` を追加<script>` tag to the HTML page and use the `elasticApm` global object to load and initialize the agent. Don't forget to download the latest version of the RUM Agent from [GitHub]({GitHubLink}) or [UNPKG]({UnpkgLink}), and host the file on your Server/CDN before deploying to production.", - "xpack.apm.tutorial.jsClient.scriptTags.title": "スクリプトタグを付けてエージェントをセットアップ", - "xpack.apm.tutorial.nodeClient.configure.commands.addThisToTheFileTopComment": "アプリに読み込んだファイルのトップにこれを追加します", - "xpack.apm.tutorial.nodeClient.configure.commands.allowedCharactersComment": "使用できる文字は a-z、A-Z、0-9、-、_、スペースです", - "xpack.apm.tutorial.nodeClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", - "xpack.apm.tutorial.nodeClient.configure.commands.setCustomServiceEnvironmentComment": "サービス環境を設定します", - "xpack.apm.tutorial.nodeClient.configure.commands.setRequiredServiceNameComment": "package.json からサービス名を上書きします", - "xpack.apm.tutorial.nodeClient.configure.commands.useIfApmRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", - "xpack.apm.tutorial.nodeClient.configure.textPost": "[Babel/ESモジュール]({babelEsModulesLink})との使用を含む高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。", - "xpack.apm.tutorial.nodeClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APMサービスは「serviceName」に基づいてプログラムで作成されます。このエージェントはさまざまなフレームワークをサポートしていますが、カスタムスタックで使用することもできます。", - "xpack.apm.tutorial.nodeClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.nodeClient.install.textPre": "Node.js 用の APM エージェントをアプリケーションに依存関係としてインストール。", - "xpack.apm.tutorial.nodeClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.phpClient.configure.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。\n\n", - "xpack.apm.tutorial.phpClient.configureAgent.textPre": "APM はアプリの起動時に自動的に起動します。「php.ini」ファイルを使用してエージェントを構成:", - "xpack.apm.tutorial.phpClient.configureAgent.title": "エージェントの構成", - "xpack.apm.tutorial.phpClient.download.textPre": "[GitHub releases]({githubReleasesLink})からプラットフォームに対応するパッケージをダウンロードします。", - "xpack.apm.tutorial.phpClient.download.title": "APM エージェントのダウンロード", - "xpack.apm.tutorial.phpClient.installPackage.textPost": "他のサポートされているプラットフォームでのインストールコマンドおよび高度なインストールについては、[ドキュメンテーション]({documentationLink})を参照してください。", - "xpack.apm.tutorial.phpClient.installPackage.textPre": "Alpine LinuxでAPKパッケージを使用する例:", - "xpack.apm.tutorial.phpClient.installPackage.title": "ダウンロードしたパッケージをインストールする", - "xpack.apm.tutorial.rackClient.configure.commands.optionalComment": "オプション、デフォルトで config/elastic_apm.yml になります", - "xpack.apm.tutorial.rackClient.configure.commands.requiredComment": "必須", - "xpack.apm.tutorial.rackClient.configure.textPre": "Rack または対応フレームワーク(Sinatra など)の場合は、アプリのミドルウェアを含めてエージェントを起動してください。", - "xpack.apm.tutorial.rackClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.rackClient.createConfig.commands.defaultsToTheNameOfRackAppClassComment": "デフォルトで Rack アプリのクラスになります。", - "xpack.apm.tutorial.rackClient.createConfig.commands.setCustomApmServerComment": "カスタム APM Server URL を設定します(デフォルト: {defaultServerUrl})", - "xpack.apm.tutorial.rackClient.createConfig.commands.setServiceEnvironment": "サービス環境を設定します", - "xpack.apm.tutorial.rackClient.createConfig.commands.setServiceNameComment": "サービス名を設定します。使用できる文字は、a-z、A-Z、0-9、-、_、スペースです。", - "xpack.apm.tutorial.rackClient.createConfig.commands.useIfApmServerRequiresTokenComment": "APM Server でトークンが必要な場合に使います", - "xpack.apm.tutorial.rackClient.createConfig.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。\n\n", - "xpack.apm.tutorial.rackClient.createConfig.textPre": "構成ファイル {configFile} を作成します:", - "xpack.apm.tutorial.rackClient.createConfig.title": "構成ファイルの作成", - "xpack.apm.tutorial.rackClient.install.textPre": "Gemfile にエージェントを追加します。", - "xpack.apm.tutorial.rackClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.railsClient.configure.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。\n\n", - "xpack.apm.tutorial.railsClient.configure.textPre": "APM はアプリの起動時に自動的に起動します。構成ファイル {configFile} を作成してエージェントを構成します", - "xpack.apm.tutorial.railsClient.configure.title": "エージェントの構成", - "xpack.apm.tutorial.railsClient.install.textPre": "Gemfile にエージェントを追加します。", - "xpack.apm.tutorial.railsClient.install.title": "APM エージェントのインストール", - "xpack.apm.tutorial.specProvider.artifacts.application.label": "APM を起動", - "xpack.apm.tutorial.specProvider.artifacts.dashboards.linkLabel": "APM ダッシュボード", - "xpack.apm.tutorial.specProvider.longDescription": "アプリケーションパフォーマンスモニタリング(APM)は、アプリケーション内から詳細なパフォーマンスメトリックやエラーを収集します。何千ものアプリケーションのパフォーマンスをリアルタイムで監視できます。[詳細]({learnMoreLink})", - "xpack.apm.tutorial.specProvider.name": "APM", - "xpack.apm.tutorial.specProvider.savedObjectsInstallMsg": "APM UI の機能には APM インデックスパターンが必要なものがあります。", - "xpack.apm.tutorial.startServer.textPre": "サーバーは、Elasticsearch アプリケーションのパフォーマンスメトリックを処理し保存します。", - "xpack.apm.tutorial.startServer.title": "APM Server の起動", - "xpack.apm.tutorial.windowsServerInstructions.textPost": "注:システムでスクリプトの実行が無効な場合、スクリプトを実行するために現在のセッションの実行ポリシーの設定が必要となります。例:{command}。", - "xpack.apm.tutorial.windowsServerInstructions.textPre": "1.[ダウンロードページ]({downloadPageLink})からAPM Server Windows zipファイルをダウンロードします。\n2.zip ファイルの内容を {zipFileExtractFolder} に抽出します。\n3.「{apmServerDirectory} ディレクトリの名前を「APM-Server」に変更します。\n4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n5.PowerShell プロンプトで次のコマンドを実行し、APM Server を Windows サービスとしてインストールします。", - "xpack.apm.unitLabel": "単位を選択", - "xpack.apm.ux.breadcrumbs.dashboard": "ダッシュボード", - "xpack.apm.ux.breadcrumbs.root": "ユーザーエクスペリエンス", - "xpack.apm.ux.jsErrors.percent": "{pageLoadPercent} %", - "xpack.apm.ux.localFilters.titles.webApplication": "Webアプリケーション", - "xpack.apm.ux.median": "中間", - "xpack.apm.ux.metrics": "メトリック", - "xpack.apm.ux.overview.heading": "ダッシュボード", - "xpack.apm.ux.percentile.50thMedian": "50 番目(中央値)", - "xpack.apm.ux.percentile.75th": "75番目", - "xpack.apm.ux.percentile.90th": "90番目", - "xpack.apm.ux.percentile.95th": "95番目", - "xpack.apm.ux.percentile.99th": "99番目", - "xpack.apm.ux.percentile.label": "パーセンタイル", - "xpack.apm.ux.percentiles.label": "{value} パーセンタイル", - "xpack.apm.ux.title": "ダッシュボード", - "xpack.apm.ux.visitorBreakdown.noData": "データがありません。", - "xpack.apm.views.dependencies.title": "依存関係", - "xpack.apm.views.errors.title": "エラー", - "xpack.apm.views.listSettings.title": "設定", - "xpack.apm.views.logs.title": "ログ", - "xpack.apm.views.metrics.title": "メトリック", - "xpack.apm.views.nodes.title": "JVM", - "xpack.apm.views.overview.title": "概要", - "xpack.apm.views.serviceInventory.title": "サービス", - "xpack.apm.views.serviceMap.title": "サービスマップ", - "xpack.apm.views.serviceProfiling.title": "プロファイリング", - "xpack.apm.views.settings.agentConfiguration.title": "エージェントの編集", - "xpack.apm.views.settings.anomalyDetection.title": "異常検知", - "xpack.apm.views.settings.createAgentConfiguration.title": "エージェント構成の作成", - "xpack.apm.views.settings.customizeUI.title": "アプリをカスタマイズ", - "xpack.apm.views.settings.editAgentConfiguration.title": "エージェント構成の編集", - "xpack.apm.views.settings.indices.title": "インデックス", - "xpack.apm.views.settings.schema.title": "スキーマ", - "xpack.apm.views.traceOverview.title": "トレース", - "xpack.apm.views.transactions.title": "トランザクション", - "xpack.apm.waterfall.exceedsMax": "このトレースの項目数は表示されている範囲を超えています", - "xpack.observability.apply.label": "適用", - "xpack.observability.search.url.close": "閉じる", - "xpack.observability.filters.filterByUrl": "IDでフィルタリング", - "xpack.observability.filters.searchResults": "{total}件の検索結果", - "xpack.observability.filters.select": "選択してください", - "xpack.observability.filters.topPages": "上位のページ", - "xpack.observability.filters.url": "Url", - "xpack.observability.filters.url.loadingResults": "結果を読み込み中", - "xpack.observability.filters.url.noResults": "結果がありません", - "xpack.observability.alerts.manageRulesButtonLabel": "ルールの管理", - "xpack.observability.alerts.searchBarPlaceholder": "kibana.alert.evaluation.threshold > 75", - "xpack.observability.alertsDisclaimerLinkText": "アラートとアクション", - "xpack.observability.alertsDisclaimerTitle": "実験的", - "xpack.observability.alertsFlyout.actualValueLabel": "実際の値", - "xpack.observability.alertsFlyout.durationLabel": "期間", - "xpack.observability.alertsFlyout.expectedValueLabel": "想定された値", - "xpack.observability.alertsFlyout.ruleTypeLabel": "ルールタイプ", - "xpack.observability.alertsFlyout.statusLabel": "ステータス", - "xpack.observability.alertsLinkTitle": "アラート", - "xpack.observability.alertsTable.actionsTextLabel": "アクション", - "xpack.observability.alertsTable.footerTextLabel": "アラート", - "xpack.observability.alertsTable.loadingTextLabel": "アラートを読み込んでいます", - "xpack.observability.alertsTGrid.durationColumnDescription": "期間", - "xpack.observability.alertsTGrid.lastUpdatedColumnDescription": "最終更新", - "xpack.observability.alertsTGrid.reasonColumnDescription": "理由", - "xpack.observability.alertsTGrid.statusColumnDescription": "ステータス", - "xpack.observability.alertsTitle": "アラート", - "xpack.observability.breadcrumbs.alertsLinkText": "アラート", - "xpack.observability.breadcrumbs.casesConfigureLinkText": "構成", - "xpack.observability.breadcrumbs.casesCreateLinkText": "作成", - "xpack.observability.breadcrumbs.casesLinkText": "ケース", - "xpack.observability.breadcrumbs.landingLinkText": "はじめて使う", - "xpack.observability.breadcrumbs.observabilityLinkText": "オブザーバビリティ", - "xpack.observability.breadcrumbs.overviewLinkText": "概要", - "xpack.observability.cases.allCases.actions": "アクション", - "xpack.observability.cases.allCases.comments": "コメント", - "xpack.observability.cases.allCases.noTagsAvailable": "利用可能なタグがありません", - "xpack.observability.cases.badge.readOnly.text": "読み取り専用", - "xpack.observability.cases.badge.readOnly.tooltip": "ケースを作成または編集できません", - "xpack.observability.cases.caseFeatureNoPermissionsMessage": "ケースを表示するには、Kibana スペースでケース機能の権限が必要です。詳細については、Kibana管理者に連絡してください。", - "xpack.observability.cases.caseFeatureNoPermissionsTitle": "Kibana機能権限が必要です", - "xpack.observability.cases.caseView.backLabel": "ケースに戻る", - "xpack.observability.cases.caseView.cancel": "キャンセル", - "xpack.observability.cases.caseView.caseName": "ケース名", - "xpack.observability.cases.caseView.closeCase": "ケースを閉じる", - "xpack.observability.cases.caseView.comment.addComment": "コメントを追加", - "xpack.observability.cases.caseView.comment.addCommentHelpText": "新しいコメントを追加...", - "xpack.observability.cases.caseView.commentFieldRequiredError": "コメントが必要です。", - "xpack.observability.cases.caseView.connectors": "外部インシデント管理システム", - "xpack.observability.cases.caseView.create": "新規ケースを作成", - "xpack.observability.cases.caseView.createCase": "ケースを作成", - "xpack.observability.cases.caseView.description": "説明", - "xpack.observability.cases.caseView.description.save": "保存", - "xpack.observability.cases.caseView.edit": "編集", - "xpack.observability.cases.caseView.editConnector": "外部インシデント管理システムを変更", - "xpack.observability.cases.caseView.fieldRequiredError": "必須フィールド", - "xpack.observability.cases.caseView.goToDocumentationButton": "ドキュメンテーションを表示", - "xpack.observability.cases.caseView.name": "名前", - "xpack.observability.cases.caseView.noReportersAvailable": "利用可能なレポートがありません。", - "xpack.observability.cases.caseView.noTags": "現在、このケースにタグは割り当てられていません。", - "xpack.observability.cases.caseView.optional": "オプション", - "xpack.observability.cases.caseView.particpantsLabel": "参加者", - "xpack.observability.cases.caseView.reopenCase": "ケースを再開", - "xpack.observability.cases.caseView.reporterLabel": "報告者", - "xpack.observability.cases.caseView.tags": "タグ", - "xpack.observability.cases.caseView.to": "に", - "xpack.observability.cases.configureCases.headerTitle": "ケースを構成", - "xpack.observability.cases.configureCasesButton": "外部接続を編集", - "xpack.observability.cases.confirmDeleteCase.deleteCase": "ケースを削除", - "xpack.observability.cases.confirmDeleteCase.deleteCases": "ケースを削除", - "xpack.observability.cases.createCase.descriptionFieldRequiredError": "説明が必要です。", - "xpack.observability.cases.createCase.fieldTagsHelpText": "このケースの1つ以上のカスタム識別タグを入力します。新しいタグを開始するには、各タグの後でEnterを押します。", - "xpack.observability.cases.createCase.titleFieldRequiredError": "タイトルが必要です。", - "xpack.observability.cases.dismissErrorsPushServiceCallOutTitle": "閉じる", - "xpack.observability.casesLinkTitle": "ケース", - "xpack.observability.emptySection.apps.alert.description": "503 エラーが累積していますか?サービスは応答していますか?CPUとRAMの使用量が跳ね上がっていますか?このような警告を、事後にではなく、発生と同時に把握しましょう。", - "xpack.observability.emptySection.apps.alert.link": "ルールを作成", - "xpack.observability.emptySection.apps.alert.title": "アラートが見つかりません。", - "xpack.observability.emptySection.apps.apm.description": "分散アーキテクチャ全体でトランザクションを追跡し、サービスの通信をマップ化して、簡単にパフォーマンスボトルネックを特定できます。", - "xpack.observability.emptySection.apps.apm.link": "エージェントのインストール", - "xpack.observability.emptySection.apps.apm.title": "APM", - "xpack.observability.emptySection.apps.logs.description": "任意のソースからログを一元化します。より迅速に対応できるように、検索、追跡、異常検知の自動化、傾向の可視化を行います。", - "xpack.observability.emptySection.apps.logs.link": "Filebeatをインストール", - "xpack.observability.emptySection.apps.logs.title": "ログ", - "xpack.observability.emptySection.apps.metrics.description": "インフラストラクチャ、アプリ、サービスからメトリックを分析します。傾向、予測動作を発見し、異常などに関するアラートを通知します。", - "xpack.observability.emptySection.apps.metrics.link": "Metricbeatのインストール", - "xpack.observability.emptySection.apps.metrics.title": "メトリック", - "xpack.observability.emptySection.apps.uptime.description": "サイトとサービスの可用性をアクティブに監視するアラートを受信し、問題をより迅速に解決して、ユーザーエクスペリエンスを最適化します。", - "xpack.observability.emptySection.apps.uptime.link": "Heartbeatのインストール", - "xpack.observability.emptySection.apps.uptime.title": "アップタイム", - "xpack.observability.emptySection.apps.ux.description": "パフォーマンスは分散です。Web アプリケーションにアクセスするすべてのユーザーの経験を計測し、全員にとっての経験を改善する方法を理解します。", - "xpack.observability.emptySection.apps.ux.link": "Rum エージェントをインストール", - "xpack.observability.emptySection.apps.ux.title": "ユーザーエクスペリエンス", - "xpack.observability.enableInspectEsQueriesExperimentDescription": "API応答でElasticsearchクエリを調査します。", - "xpack.observability.enableInspectEsQueriesExperimentName": "ESクエリを調査", - "xpack.observability.exp.breakDownFilter.noBreakdown": "内訳なし", - "xpack.observability.experimentalBadgeDescription": "この機能は実験的機能であり、将来のリリースでは変更されたり完全に削除されたりする場合があります。Elasticは最善の努力を講じてすべての問題の修正に努めますが、実験的機能には正式なGA機能のサポートSLAが適用されません。", - "xpack.observability.experimentalBadgeLabel": "実験的", - "xpack.observability.exploratoryView.noBrusing": "ブラシ選択によるズームは時系列グラフでのみ使用できます。", - "xpack.observability.expView.chartTypes.label": "チャートタイプ", - "xpack.observability.expView.columns.label": "{sourceField}の{percentileValue}パーセンタイル", - "xpack.observability.expView.columns.operation.label": "{sourceField}の{operationType}", - "xpack.observability.expView.dateRanger.endDate": "終了日", - "xpack.observability.expView.dateRanger.startDate": "開始日", - "xpack.observability.expView.fieldLabels.agentHost": "エージェントホスト", - "xpack.observability.expView.fieldLabels.backend": "バックエンド時刻", - "xpack.observability.expView.fieldLabels.browserFamily": "ブラウザーファミリー", - "xpack.observability.expView.fieldLabels.browserVersion": "ブラウザーバージョン", - "xpack.observability.expView.fieldLabels.carrierLocation": "キャリアの位置情報", - "xpack.observability.expView.fieldLabels.carrierName": "キャリア名", - "xpack.observability.expView.fieldLabels.cls": "累積レイアウト変更", - "xpack.observability.expView.fieldLabels.connectionType": "接続タイプ", - "xpack.observability.expView.fieldLabels.coreWebVitals": "コア Web バイタル", - "xpack.observability.expView.fieldLabels.cpuUsage": "CPU使用状況", - "xpack.observability.expView.fieldLabels.dcl": "DOMコンテンツが読み込まれました", - "xpack.observability.expView.fieldLabels.device": "デバイス", - "xpack.observability.expView.fieldLabels.deviceDistribution": "デバイス分布", - "xpack.observability.expView.fieldLabels.deviceModel": "デバイスモデル", - "xpack.observability.expView.fieldLabels.downPings": "Down Ping", - "xpack.observability.expView.fieldLabels.environment": "環境", - "xpack.observability.expView.fieldLabels.fcp": "初回コンテンツの描画", - "xpack.observability.expView.fieldLabels.fid": "初回入力遅延", - "xpack.observability.expView.fieldLabels.hostName": "ホスト名", - "xpack.observability.expView.fieldLabels.hostOS": "ホストOS", - "xpack.observability.expView.fieldLabels.kpi": "KPI", - "xpack.observability.expView.fieldLabels.kpiOverTime": "一定期間のKPI", - "xpack.observability.expView.fieldLabels.lcp": "最大コンテンツの描画", - "xpack.observability.expView.fieldLabels.location": "場所", - "xpack.observability.expView.fieldLabels.memoryUsage": "システムメモリー使用状況", - "xpack.observability.expView.fieldLabels.metric": "メトリック", - "xpack.observability.expView.fieldLabels.mobile.memoryUsage": "メモリー使用状況", - "xpack.observability.expView.fieldLabels.mobileApp": "モバイルアプリ", - "xpack.observability.expView.fieldLabels.mobileResponse": "モバイル応答", - "xpack.observability.expView.fieldLabels.monitorDurationLabel": "監視期間", - "xpack.observability.expView.fieldLabels.monitorId": "モニターID", - "xpack.observability.expView.fieldLabels.monitorName": "モニター名", - "xpack.observability.expView.fieldLabels.monitorStatus": "監視ステータス", - "xpack.observability.expView.fieldLabels.monitorType": "モニタータイプ", - "xpack.observability.expView.fieldLabels.numberOfDevices": "デバイス数", - "xpack.observability.expView.fieldLabels.obsLocation": "Observerの位置情報", - "xpack.observability.expView.fieldLabels.onload": "ドキュメント完了(読み込み時)", - "xpack.observability.expView.fieldLabels.os": "オペレーティングシステム", - "xpack.observability.expView.fieldLabels.osPlatform": "OSプラットフォーム", - "xpack.observability.expView.fieldLabels.pageLoadTime": "ページ読み込み時間", - "xpack.observability.expView.fieldLabels.pagesLoaded": "ページが読み込まれました", - "xpack.observability.expView.fieldLabels.pageViews": "ページビュー", - "xpack.observability.expView.fieldLabels.performanceDistribution": "パフォーマンス分布", - "xpack.observability.expView.fieldLabels.pings": "ピング", - "xpack.observability.expView.fieldLabels.port": "ポート", - "xpack.observability.expView.fieldLabels.requestMethod": "リクエストメソッド", - "xpack.observability.expView.fieldLabels.responseLatency": "レイテンシ", - "xpack.observability.expView.fieldLabels.serviceName": "サービス名", - "xpack.observability.expView.fieldLabels.serviceVersion": "サービスバージョン", - "xpack.observability.expView.fieldLabels.tags": "タグ", - "xpack.observability.expView.fieldLabels.tbt": "合計ブロック時間", - "xpack.observability.expView.fieldLabels.transactionPerMinute": "スループット", - "xpack.observability.expView.fieldLabels.upPings": "Up Ping", - "xpack.observability.expView.fieldLabels.url": "URL", - "xpack.observability.expView.fieldLabels.webApplication": "Webアプリケーション", - "xpack.observability.expView.filterValueButton.negate": "{value}ではない", - "xpack.observability.expView.heading.experimental": "実験的", - "xpack.observability.expView.heading.label": "データを分析", - "xpack.observability.expView.heading.openInLens": "Lensで開く", - "xpack.observability.expView.heading.saveLensVisualization": "保存", - "xpack.observability.expView.operationType.75thPercentile": "75パーセンタイル", - "xpack.observability.expView.operationType.90thPercentile": "90パーセンタイル", - "xpack.observability.expView.operationType.95thPercentile": "95パーセンタイル", - "xpack.observability.expView.operationType.99thPercentile": "99パーセンタイル", - "xpack.observability.expView.operationType.average": "平均", - "xpack.observability.expView.operationType.median": "中央", - "xpack.observability.expView.operationType.sum": "合計", - "xpack.observability.expView.reportType.selectDataType": "ビジュアライゼーションを作成するデータ型を選択します。", - "xpack.observability.expView.seriesBuilder.addSeries": "数列を追加", - "xpack.observability.expView.seriesBuilder.apply": "変更を適用", - "xpack.observability.expView.seriesBuilder.emptyReportDefinition": "ビジュアライゼーションを作成するレポート定義を選択します。", - "xpack.observability.expView.seriesBuilder.emptyview": "表示する情報がありません。", - "xpack.observability.expView.seriesBuilder.loadingView": "ビューを読み込んでいます...", - "xpack.observability.expView.seriesBuilder.selectReportType": "レポートタイプが選択されていません", - "xpack.observability.expView.seriesBuilder.selectReportType.empty": "レポートタイプを選択すると、ビジュアライゼーションを作成します。", - "xpack.observability.expView.seriesEditor.clearFilter": "フィルターを消去", - "xpack.observability.expView.seriesEditor.notFound": "系列が見つかりません。系列を追加してください。", - "xpack.observability.expView.seriesEditor.removeSeries": "クリックすると、系列を削除します", - "xpack.observability.featureCatalogueDescription": "専用UIで、ログ、メトリック、アプリケーショントレース、システム可用性を連結します。", - "xpack.observability.featureCatalogueTitle": "オブザーバビリティ", - "xpack.observability.featureRegistry.linkObservabilityTitle": "ケース", - "xpack.observability.feedbackMenu.appName": "オブザーバビリティ", - "xpack.observability.fieldValueSelection.apply": "適用", - "xpack.observability.fieldValueSelection.loading": "読み込み中", - "xpack.observability.fieldValueSelection.placeholder": "{label}をフィルタリング", - "xpack.observability.fieldValueSelection.placeholder.search": "{label}を検索", - "xpack.observability.filterButton.label": "{label}フィルターのフィルターグループを展開", - "xpack.observability.filters.expanded.noFilter": "フィルターが見つかりません。", - "xpack.observability.filters.expanded.search": "{label}を検索", - "xpack.observability.fleet.button": "Fleetを試す", - "xpack.observability.fleet.text": "Elastic エージェントでは、シンプルかつ統合された方法で、ログ、メトリック、他の種類のデータの監視をホストに追加することができます。複数の Beats と他のエージェントをインストールする必要はありません。このため、インフラストラクチャ全体での構成のデプロイが簡単で高速になりました。", - "xpack.observability.fleet.title": "新しい Fleet をご覧になりましたか。", - "xpack.observability.formatters.hoursTimeUnitLabel": "h", - "xpack.observability.formatters.hoursTimeUnitLabelExtended": "時間", - "xpack.observability.formatters.microsTimeUnitLabel": "μs", - "xpack.observability.formatters.microsTimeUnitLabelExtended": "マイクロ秒", - "xpack.observability.formatters.millisTimeUnitLabel": "ms", - "xpack.observability.formatters.millisTimeUnitLabelExtended": "ミリ秒", - "xpack.observability.formatters.minutesTimeUnitLabel": "分", - "xpack.observability.formatters.minutesTimeUnitLabelExtended": "分", - "xpack.observability.formatters.secondsTimeUnitLabel": "s", - "xpack.observability.formatters.secondsTimeUnitLabelExtended": "秒", - "xpack.observability.home.addData": "データの追加", - "xpack.observability.navigation.newBadge": "新規", - "xpack.observability.news.readFullStory": "詳細なストーリーを読む", - "xpack.observability.news.title": "新機能", - "xpack.observability.notAvailable": "N/A", - "xpack.observability.overview.alert.allTypes": "すべてのタイプ", - "xpack.observability.overview.alert.appLink": "アラートを管理", - "xpack.observability.overview.alerts.muted": "ミュート", - "xpack.observability.overview.alerts.title": "アラート", - "xpack.observability.overview.apm.appLink": "アプリで表示", - "xpack.observability.overview.apm.services": "サービス", - "xpack.observability.overview.apm.throughput": "スループット", - "xpack.observability.overview.apm.title": "APM", - "xpack.observability.overview.exploratoryView": "データを分析", - "xpack.observability.overview.exploratoryView.lensDisabled": "Lensアプリを使用できません。調査ビューを使用するには、Lensを有効にしてください。", - "xpack.observability.overview.loadingObservability": "オブザーバビリティを読み込んでいます", - "xpack.observability.overview.logs.appLink": "アプリで表示", - "xpack.observability.overview.logs.subtitle": "毎分のログレート", - "xpack.observability.overview.logs.title": "ログ", - "xpack.observability.overview.metrics.appLink": "アプリで表示", - "xpack.observability.overview.metrics.colunms.cpu": "CPU %", - "xpack.observability.overview.metrics.colunms.hostname": "ホスト名", - "xpack.observability.overview.metrics.colunms.load15": "読み込み15", - "xpack.observability.overview.metrics.colunms.uptime": "アップタイム", - "xpack.observability.overview.metrics.title": "メトリック", - "xpack.observability.overview.pageTitle": "概要", - "xpack.observability.overview.uptime.appLink": "アプリで表示", - "xpack.observability.overview.uptime.chart.down": "ダウン", - "xpack.observability.overview.uptime.chart.up": "アップ", - "xpack.observability.overview.uptime.down": "ダウン", - "xpack.observability.overview.uptime.monitors": "監視", - "xpack.observability.overview.uptime.title": "アップタイム", - "xpack.observability.overview.uptime.up": "アップ", - "xpack.observability.overview.ux.appLink": "アプリで表示", - "xpack.observability.overview.ux.title": "ユーザーエクスペリエンス", - "xpack.observability.overviewLinkTitle": "概要", - "xpack.observability.pageLayout.sideNavTitle": "オブザーバビリティ", - "xpack.observability.resources.documentation": "ドキュメント", - "xpack.observability.resources.forum": "ディスカッションフォーラム", - "xpack.observability.resources.quick_start": "クイックスタートビデオ", - "xpack.observability.resources.title": "リソース", - "xpack.observability.resources.training": "無料のObservabilityコース", - "xpack.observability.section.apps.apm.description": "分散アーキテクチャ全体でトランザクションを追跡し、サービスの通信をマップ化して、簡単にパフォーマンスボトルネックを特定できます。", - "xpack.observability.section.apps.apm.title": "APM", - "xpack.observability.section.apps.logs.description": "任意のソースからログを一元化します。より迅速に対応できるように、検索、追跡、異常検知の自動化、傾向の可視化を行います。", - "xpack.observability.section.apps.logs.title": "ログ", - "xpack.observability.section.apps.metrics.description": "インフラストラクチャ、アプリ、サービスからメトリックを分析します。傾向、予測動作を発見し、異常などに関するアラートを通知します。", - "xpack.observability.section.apps.metrics.title": "メトリック", - "xpack.observability.section.apps.uptime.description": "サイトとサービスの可用性をアクティブに監視するアラートを受信し、問題をより迅速に解決して、ユーザーエクスペリエンスを最適化します。", - "xpack.observability.section.apps.uptime.title": "アップタイム", - "xpack.observability.section.errorPanel": "データの取得時にエラーが発生しました。再試行してください", - "xpack.observability.seriesEditor.clone": "系列をコピー", - "xpack.observability.transactionRateLabel": "{value} tpm", - "xpack.observability.ux.coreVitals.average": "平均", - "xpack.observability.ux.coreVitals.averageMessage": " {bad}未満", - "xpack.observability.ux.coreVitals.cls": "累積レイアウト変更", - "xpack.observability.ux.coreVitals.cls.help": "累積レイアウト変更(CLS):視覚的な安定性を計測します。優れたユーザーエクスペリエンスを実現するには、ページのCLSを0.1未満に保ってください。", - "xpack.observability.ux.coreVitals.fid.help": "初回入力遅延(FID)は双方向性を計測します。優れたユーザーエクスペリエンスを実現するには、ページのFIDを100ミリ秒未満に保ってください。", - "xpack.observability.ux.coreVitals.fip": "初回入力遅延", - "xpack.observability.ux.coreVitals.good": "優れている", - "xpack.observability.ux.coreVitals.is": "is", - "xpack.observability.ux.coreVitals.lcp": "最大コンテンツの描画", - "xpack.observability.ux.coreVitals.lcp.help": "最大コンテンツの描画(LCP)は読み込みパフォーマンスを計測します。優れたユーザーエクスペリエンスを実現するには、ページの読み込みが開始した後、2.5秒以内にLCPが実行されるようにしてください。", - "xpack.observability.ux.coreVitals.legends.good": "優れている", - "xpack.observability.ux.coreVitals.legends.needsImprovement": "要改善", - "xpack.observability.ux.coreVitals.legends.poor": "悪い", - "xpack.observability.ux.coreVitals.less": "少ない", - "xpack.observability.ux.coreVitals.more": "多い", - "xpack.observability.ux.coreVitals.noData": "利用可能なデータがありません。", - "xpack.observability.ux.coreVitals.paletteLegend.rankPercentage": "{labelsInd} ({ranksInd}%)", - "xpack.observability.ux.coreVitals.poor": "悪い", - "xpack.observability.ux.coreVitals.takes": "取得", - "xpack.observability.ux.coreWebVitals": "コア Web バイタル", - "xpack.observability.ux.coreWebVitals.browser.support": "コア Web バイタルのブラウザーサポート", - "xpack.observability.ux.coreWebVitals.service": "サービス", - "xpack.observability.ux.dashboard.webCoreVitals.browser.help": "詳細", - "xpack.observability.ux.dashboard.webCoreVitals.help": "詳細", - "xpack.observability.ux.dashboard.webCoreVitals.helpAriaLabel": "ヘルプ", - "xpack.observability.ux.dashboard.webCoreVitals.traffic": "トラフィックの {trafficPerc} が表示されました", - "xpack.observability.ux.dashboard.webVitals.palette.tooltip": "{title} は {value}{averageMessage}より{moreOrLess}{isOrTakes}ため、{percentage} %のユーザーが{exp}を経験しています。", - "xpack.observability.ux.service.help": "最大トラフィックのRUMサービスが選択されています", + "advancedSettings.advancedSettingsLabel": "高度な設定", + "advancedSettings.badge.readOnly.text": "読み取り専用", + "advancedSettings.badge.readOnly.tooltip": "高度な設定を保存できません", + "advancedSettings.callOutCautionDescription": "これらの設定は非常に上級ユーザー向けなのでご注意ください。ここでの変更は Kibana の重要な部分に不具合を生じさせる可能性があります。これらの設定は非公開、サポート対象外、または実験的な場合があります。フィールドにデフォルト値がある場合、そのフィールドを未入力のままにするとデフォルトに戻り、他の構成で許容されないことがあります。カスタム設定を削除すると、Kibana の構成から永久に削除されます。", + "advancedSettings.callOutCautionTitle": "注意:不具合につながる可能性があります", + "advancedSettings.categoryNames.dashboardLabel": "ダッシュボード", + "advancedSettings.categoryNames.discoverLabel": "Discover", + "advancedSettings.categoryNames.generalLabel": "一般", + "advancedSettings.categoryNames.machineLearningLabel": "機械学習", + "advancedSettings.categoryNames.notificationsLabel": "通知", + "advancedSettings.categoryNames.observabilityLabel": "オブザーバビリティ", + "advancedSettings.categoryNames.reportingLabel": "レポート", + "advancedSettings.categoryNames.searchLabel": "検索", + "advancedSettings.categoryNames.securitySolutionLabel": "セキュリティソリューション", + "advancedSettings.categoryNames.timelionLabel": "Timelion", + "advancedSettings.categoryNames.visualizationsLabel": "ビジュアライゼーション", + "advancedSettings.categorySearchLabel": "カテゴリー", + "advancedSettings.featureCatalogueTitle": "日付形式の変更、ダークモードの有効化など、Kibanaエクスペリエンスをカスタマイズします。", + "advancedSettings.field.changeImageLinkAriaLabel": "{ariaName} を変更", + "advancedSettings.field.changeImageLinkText": "画像を変更", + "advancedSettings.field.codeEditorSyntaxErrorMessage": "無効な JSON 構文", + "advancedSettings.field.customSettingAriaLabel": "カスタム設定", + "advancedSettings.field.customSettingTooltip": "カスタム設定", + "advancedSettings.field.defaultValueText": "デフォルト:{value}", + "advancedSettings.field.defaultValueTypeJsonText": "デフォルト:{value}", + "advancedSettings.field.deprecationClickAreaLabel": "クリックすると {settingName} のサポート終了に関するドキュメントが表示されます。", + "advancedSettings.field.helpText": "この設定は Kibana サーバーにより上書きされ、変更することはできません。", + "advancedSettings.field.imageChangeErrorMessage": "画像を保存できませんでした", + "advancedSettings.field.invalidIconLabel": "無効", + "advancedSettings.field.offLabel": "オフ", + "advancedSettings.field.onLabel": "オン", + "advancedSettings.field.resetToDefaultLinkAriaLabel": "{ariaName} をデフォルトにリセット", + "advancedSettings.field.resetToDefaultLinkText": "デフォルトにリセット", + "advancedSettings.field.settingIsUnsaved": "設定は現在保存されていません。", + "advancedSettings.field.unsavedIconLabel": "未保存", + "advancedSettings.form.cancelButtonLabel": "変更をキャンセル", + "advancedSettings.form.clearNoSearchResultText": "(検索結果を消去)", + "advancedSettings.form.clearSearchResultText": "(検索結果を消去)", + "advancedSettings.form.noSearchResultText": "{queryText} {clearSearch}の設定が見つかりません", + "advancedSettings.form.requiresPageReloadToastButtonLabel": "ページを再読み込み", + "advancedSettings.form.requiresPageReloadToastDescription": "設定を有効にするためにページの再読み込みが必要です。", + "advancedSettings.form.saveButtonLabel": "変更を保存", + "advancedSettings.form.saveButtonTooltipWithInvalidChanges": "保存前に無効な設定を修正してください。", + "advancedSettings.form.saveErrorMessage": "を保存できませんでした", + "advancedSettings.form.searchResultText": "検索用語により {settingsCount} 件の設定が非表示になっています {clearSearch}", + "advancedSettings.pageTitle": "設定", + "advancedSettings.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", + "advancedSettings.searchBarAriaLabel": "高度な設定を検索", + "advancedSettings.voiceAnnouncement.ariaLabel": "詳細設定結果情報", + "alerts.documentationTitle": "ドキュメンテーションを表示", + "alerts.noPermissionsMessage": "アラートを表示するには、Kibanaスペースでアラート機能の権限が必要です。詳細については、Kibana管理者に連絡してください。", + "alerts.noPermissionsTitle": "Kibana機能権限が必要です", + "autocomplete.fieldRequiredError": "値を空にすることはできません", + "autocomplete.invalidDateError": "有効な日付ではありません", + "autocomplete.invalidNumberError": "有効な数値ではありません", + "autocomplete.loadingDescription": "読み込み中...", + "autocomplete.selectField": "最初にフィールドを選択してください...", + "bfetch.disableBfetchCompression": "バッチ圧縮を無効にする", + "bfetch.disableBfetchCompressionDesc": "バッチ圧縮を無効にします。個別の要求をデバッグできますが、応答サイズが大きくなります。", + "charts.advancedSettings.visualization.colorMappingText": "<strong>互換性</strong>パレットを使用して、グラフで値を特定の色にマッピング色にマッピングします。", + "charts.advancedSettings.visualization.colorMappingTextDeprecation": "この設定はサポートが終了し、Kibana 8.0 ではサポートされません。", + "charts.advancedSettings.visualization.colorMappingTitle": "カラーマッピング", + "charts.colormaps.bluesText": "青", + "charts.colormaps.greensText": "緑", + "charts.colormaps.greenToRedText": "緑から赤", + "charts.colormaps.greysText": "グレー", + "charts.colormaps.redsText": "赤", + "charts.colormaps.yellowToRedText": "黄色から赤", + "charts.colorPicker.clearColor": "色をリセット", + "charts.colorPicker.setColor.screenReaderDescription": "値 {legendDataLabel} の色を設定", + "charts.countText": "カウント", + "charts.functions.palette.args.colorHelpText": "パレットの色です。{html} カラー名、{hex}、{hsl}、{hsla}、{rgb}、または {rgba} を使用できます。", + "charts.functions.palette.args.gradientHelpText": "サポートされている場合グラデーションパレットを作成しますか?", + "charts.functions.palette.args.reverseHelpText": "パレットを反転させますか?", + "charts.functions.palette.args.stopHelpText": "パレットの色経由点。使用するときには、各色に関連付ける必要があります。", + "charts.functions.paletteHelpText": "カラーパレットを作成します。", + "charts.functions.systemPalette.args.nameHelpText": "パレットリストのパレットの名前", + "charts.functions.systemPaletteHelpText": "動的カラーパレットを作成します。", + "charts.legend.toggleLegendButtonAriaLabel": "凡例を切り替える", + "charts.legend.toggleLegendButtonTitle": "凡例を切り替える", + "charts.palettes.complimentaryLabel": "無料", + "charts.palettes.coolLabel": "Cool", + "charts.palettes.customLabel": "カスタム", + "charts.palettes.defaultPaletteLabel": "デフォルト", + "charts.palettes.grayLabel": "グレー", + "charts.palettes.kibanaPaletteLabel": "互換性", + "charts.palettes.negativeLabel": "負", + "charts.palettes.positiveLabel": "正", + "charts.palettes.statusLabel": "ステータス", + "charts.palettes.temperatureLabel": "温度", + "charts.palettes.warmLabel": "ウォーム", + "charts.partialData.bucketTooltipText": "選択された時間範囲にはこのバケット全体は含まれていません。一部データが含まれている可能性があります。", + "console.autocomplete.addMethodMetaText": "メソド", + "console.consoleDisplayName": "コンソール", + "console.consoleMenu.copyAsCurlFailedMessage": "要求をcURLとしてコピーできませんでした", + "console.consoleMenu.copyAsCurlMessage": "リクエストが URL としてコピーされました", + "console.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "console.deprecations.enabled.manualStepTwoMessage": "「console.enabled」設定を「console.ui.enabled」に変更します。", + "console.deprecations.enabledMessage": "ユーザーがコンソールUIにアクセスすることを禁止するには、「console.enabled」ではなく、「console.ui.enabled」設定を使用します。", + "console.deprecations.enabledTitle": "「console.enabled」設定は廃止予定です", + "console.deprecations.proxyConfig.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "console.deprecations.proxyConfig.manualStepThreeMessage": "「server.ssl.*」設定を使用して、KibanaとElasticsearchの間の安全な接続を構成します。", + "console.deprecations.proxyConfig.manualStepTwoMessage": "「console.proxyConfig」設定を削除します。", + "console.deprecations.proxyConfigMessage": "「console.proxyConfig」の構成は廃止予定であり、8.0.0で削除されます。KibanaとElasticsearchの間の安全な接続を構成するには、標準の「server.ssl.*」設定を使用します。", + "console.deprecations.proxyConfigTitle": "「console.proxyConfig」設定は廃止予定です", + "console.deprecations.proxyFilter.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "console.deprecations.proxyFilter.manualStepThreeMessage": "「server.ssl.*」設定を使用して、KibanaとElasticsearchの間の安全な接続を構成します。", + "console.deprecations.proxyFilter.manualStepTwoMessage": "「console.proxyFilter」設定を削除します。", + "console.deprecations.proxyFilterMessage": "「console.proxyFilter」の構成は廃止予定であり、8.0.0で削除されます。KibanaとElasticsearchの間の安全な接続を構成するには、標準の「server.ssl.*」設定を使用します。", + "console.deprecations.proxyFilterTitle": "「console.proxyFilter」設定は廃止予定です", + "console.devToolsDescription": "コンソールでデータを操作するには、cURLをスキップして、JSONインターフェイスを使用します。", + "console.devToolsTitle": "Elasticsearch APIとの連携", + "console.exampleOutputTextarea": "開発ツールコンソールエディターの例", + "console.helpPage.keyboardCommands.autoIndentDescription": "現在のリクエストを自動インデントします", + "console.helpPage.keyboardCommands.closeAutoCompleteMenuDescription": "自動入力メニューを閉じます", + "console.helpPage.keyboardCommands.collapseAllScopesDescription": "現在のスコープを除きすべてのスコープを最小表示します。シフトを追加して拡張します。", + "console.helpPage.keyboardCommands.collapseExpandCurrentScopeDescription": "現在のスコープを最小/拡張表示します。", + "console.helpPage.keyboardCommands.jumpToPreviousNextRequestDescription": "前/次のリクエストの開始または終了に移動します。", + "console.helpPage.keyboardCommands.openAutoCompleteDescription": "自動入力を開きます(未入力時を含む)", + "console.helpPage.keyboardCommands.openDocumentationDescription": "現在のリクエストのドキュメントを開きます", + "console.helpPage.keyboardCommands.selectCurrentlySelectedInAutoCompleteMenuDescription": "現在の選択項目または自動入力メニューで最も使用されている用語を選択します", + "console.helpPage.keyboardCommands.submitRequestDescription": "リクエストを送信します", + "console.helpPage.keyboardCommands.switchFocusToAutoCompleteMenuDescription": "自動入力メニューに焦点を切り替えます。矢印を使用してさらに用語を選択します", + "console.helpPage.keyboardCommandsTitle": "キーボードコマンド", + "console.helpPage.pageTitle": "ヘルプ", + "console.helpPage.requestFormatDescription": "ホワイトエディターに 1 つ以上のリクエストを入力できます。コンソールはコンパクトなフォーマットのリクエストを理解できます。", + "console.helpPage.requestFormatTitle": "リクエストフォーマット", + "console.historyPage.applyHistoryButtonLabel": "適用", + "console.historyPage.clearHistoryButtonLabel": "クリア", + "console.historyPage.closehistoryButtonLabel": "閉じる", + "console.historyPage.itemOfRequestListAriaLabel": "リクエスト:{historyItem}", + "console.historyPage.noHistoryTextMessage": "履歴がありません", + "console.historyPage.pageTitle": "履歴", + "console.historyPage.requestListAriaLabel": "リクエストの送信履歴", + "console.inputTextarea": "開発ツールコンソール", + "console.loadFromDataUriErrorMessage": "URLのload_fromクエリパラメーターからデータを読み込めません", + "console.loadingError.buttonLabel": "コンソールの再読み込み", + "console.loadingError.message": "最新データを取得するために再読み込みを試してください。", + "console.loadingError.title": "コンソールを読み込めません", + "console.notification.error.couldNotSaveRequestTitle": "リクエストをコンソール履歴に保存できませんでした。", + "console.notification.error.historyQuotaReachedMessage": "リクエスト履歴が満杯です。コンソール履歴を消去して、新しいリクエストを保存します。", + "console.notification.error.noRequestSelectedTitle": "リクエストを選択していません。リクエストの中にカーソルを置いて選択します。", + "console.notification.error.unknownErrorTitle": "不明なリクエストエラー", + "console.outputTextarea": "開発ツールコンソール出力", + "console.pageHeading": "コンソール", + "console.requestInProgressBadgeText": "リクエストが進行中", + "console.requestOptions.autoIndentButtonLabel": "自動インデント", + "console.requestOptions.copyAsUrlButtonLabel": "cURL としてコピー", + "console.requestOptions.openDocumentationButtonLabel": "ドキュメントを開く", + "console.requestOptionsButtonAriaLabel": "リクエストオプション", + "console.requestTimeElapasedBadgeTooltipContent": "経過時間", + "console.sendRequestButtonTooltip": "クリックしてリクエストを送信", + "console.settingsPage.autocompleteLabel": "自動入力", + "console.settingsPage.cancelButtonLabel": "キャンセル", + "console.settingsPage.fieldsLabelText": "フィールド", + "console.settingsPage.fontSizeLabel": "フォントサイズ", + "console.settingsPage.indicesAndAliasesLabelText": "インデックスとエイリアス", + "console.settingsPage.jsonSyntaxLabel": "JSON構文", + "console.settingsPage.pageTitle": "コンソール設定", + "console.settingsPage.pollingLabelText": "自動入力候補を自動的に更新", + "console.settingsPage.refreshButtonLabel": "自動入力候補の更新", + "console.settingsPage.refreshingDataDescription": "コンソールは、Elasticsearchをクエリして自動入力候補を更新します。クラスターが大きい場合や、ネットワークの制限がある場合には、自動更新で問題が発生する可能性があります。", + "console.settingsPage.refreshingDataLabel": "自動入力候補を更新しています", + "console.settingsPage.saveButtonLabel": "保存", + "console.settingsPage.templatesLabelText": "テンプレート", + "console.settingsPage.tripleQuotesMessage": "出力ウィンドウでは三重引用符を使用してください", + "console.settingsPage.wrapLongLinesLabelText": "長い行を改行", + "console.topNav.helpTabDescription": "ヘルプ", + "console.topNav.helpTabLabel": "ヘルプ", + "console.topNav.historyTabDescription": "履歴", + "console.topNav.historyTabLabel": "履歴", + "console.topNav.settingsTabDescription": "設定", + "console.topNav.settingsTabLabel": "設定", + "console.welcomePage.closeButtonLabel": "閉じる", + "console.welcomePage.pageTitle": "コンソールへようこそ", + "console.welcomePage.quickIntroDescription": "コンソール UI は、エディターペイン(左)と応答ペイン(右)の 2 つのペインに分かれています。エディターでリクエストを入力し、Elasticsearch に送信します。結果が右側の応答ペインに表示されます。", + "console.welcomePage.quickIntroTitle": "UI の簡単な説明", + "console.welcomePage.quickTips.cUrlFormatForRequestsDescription": "cURL フォーマットのリクエストを貼り付けると、Console 構文に変換されます。", + "console.welcomePage.quickTips.keyboardShortcutsDescription": "ヘルプボタンでキーボードショートカットが学べます。便利な情報が揃っています!", + "console.welcomePage.quickTips.resizeEditorDescription": "間の区切りをドラッグすることで、エディターとアウトプットペインのサイズを変更できます。", + "console.welcomePage.quickTips.submitRequestDescription": "緑の三角形のボタンをクリックして ES にリクエストを送信します。", + "console.welcomePage.quickTips.useWrenchMenuDescription": "レンチメニューで他の便利な機能が使えます。", + "console.welcomePage.quickTipsTitle": "今のうちにいくつか簡単なコツをお教えします", + "console.welcomePage.supportedRequestFormatDescription": "リクエストの入力中、コンソールが候補を提案するので、Enter/Tabを押して確定できます。これらの候補はリクエストの構造、およびインデックス、タイプに基づくものです。", + "console.welcomePage.supportedRequestFormatTitle": "コンソールは cURL と同様に、コンパクトなフォーマットのリクエストを理解できます。", + "core.application.appContainer.loadingAriaLabel": "アプリケーションを読み込んでいます", + "core.application.appNotFound.pageDescription": "この URL にアプリケーションが見つかりませんでした。前の画面に戻るか、メニューからアプリを選択してみてください。", + "core.application.appNotFound.title": "アプリケーションが見つかりません", + "core.application.appRenderError.defaultTitle": "アプリケーションエラー", + "core.chrome.browserDeprecationLink": "Web サイトのサポートマトリックス", + "core.chrome.browserDeprecationWarning": "このソフトウェアの将来のバージョンでは、Internet Explorerのサポートが削除されます。{link}をご確認ください。", + "core.chrome.legacyBrowserWarning": "ご使用のブラウザが Kibana のセキュリティ要件を満たしていません。", + "core.deprecations.deprecations.fetchFailed.manualStepOneMessage": "エラーメッセージについては、Kibanaサーバーログを確認してください。", + "core.deprecations.deprecations.fetchFailedMessage": "プラグイン{domainId}の廃止予定情報を取得できません。", + "core.deprecations.deprecations.fetchFailedTitle": "{domainId}の廃止予定を取得できませんでした", + "core.deprecations.elasticsearchSSL.manualSteps1": "\"{missingSetting}\"設定をkibana.ymlに追加します。", + "core.deprecations.elasticsearchSSL.manualSteps2": "あるいは、Mutual TLS認証を使用しない場合は、kibana.ymlから\"{existingSetting}\"を削除します。", + "core.deprecations.elasticsearchSSL.message": "\"{existingSetting}\"と\"{missingSetting}\"の両方を使用すると、KibanaでElasticsearchと認証する際にMutual TLS認証を使用できます。", + "core.deprecations.elasticsearchSSL.title": "\"{missingSetting}\"なしで\"{existingSetting}\"を使用しても効果がありません", + "core.deprecations.elasticsearchUsername.manualSteps1": "elasticsearch-service-tokens CLIツールを使用して、「elastic/kibana」サービスアカウントの新しいサービスアカウントトークンを作成します。", + "core.deprecations.elasticsearchUsername.manualSteps2": "「elasticsearch.serviceAccountToken」設定をkibana.ymlに追加します。", + "core.deprecations.elasticsearchUsername.manualSteps3": "kibana.ymlから「elasticsearch.username」と「elasticsearch.password」を削除します。", + "core.deprecations.elasticsearchUsername.message": "Kibanaは\"{username}\"ユーザーを使用してElasticsearchで認証するように構成されています。代わりにサービスアカウントトークンを使用します。", + "core.deprecations.elasticsearchUsername.title": "「elasticsearch.username: {username}」は廃止予定です", + "core.deprecations.noCorrectiveAction": "この廃止予定は自動的に解決できません。", + "core.euiAccordion.isLoading": "読み込み中", + "core.euiBasicTable.noItemsMessage": "項目が見つかりません", + "core.euiBasicTable.selectAllRows": "すべての行を選択", + "core.euiBasicTable.selectThisRow": "この行を選択", + "core.euiBasicTable.tableAutoCaptionWithoutPagination": "この表には{itemCount}行あります。", + "core.euiBasicTable.tableAutoCaptionWithPagination": "この表には{totalItemCount}行中{itemCount}行あります; {page}/{pageCount}ページ。", + "core.euiBasicTable.tableCaptionWithPagination": "{tableCaption}; {page}/{pageCount}ページ。", + "core.euiBasicTable.tablePagination": "表のページネーション: {tableCaption}", + "core.euiBasicTable.tableSimpleAutoCaptionWithPagination": "この表には{itemCount}行あります; {page}/{pageCount}ページ。", + "core.euiBottomBar.customScreenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマーク{landmarkHeading}とページレベルのコントロールがあります。", + "core.euiBottomBar.screenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマークとページレベルのコントロールがあります。", + "core.euiBottomBar.screenReaderHeading": "ページレベルのコントロール", + "core.euiBreadcrumbs.collapsedBadge.ariaLabel": "折りたたまれたブレッドクラムを表示", + "core.euiBreadcrumbs.nav.ariaLabel": "ブレッドクラム", + "core.euiCardSelect.select": "選択してください", + "core.euiCardSelect.selected": "利用不可", + "core.euiCardSelect.unavailable": "選択済み", + "core.euiCodeBlock.copyButton": "コピー", + "core.euiCodeBlock.fullscreenCollapse": "縮小", + "core.euiCodeBlock.fullscreenExpand": "拡張", + "core.euiCollapsedItemActions.allActions": "すべてのアクション", + "core.euiColorPicker.alphaLabel": "アルファチャネル(不透明)値", + "core.euiColorPicker.closeLabel": "下矢印キーを押すと、色オプションを含むポップオーバーが開きます", + "core.euiColorPicker.colorErrorMessage": "無効な色値", + "core.euiColorPicker.colorLabel": "色値", + "core.euiColorPicker.openLabel": "Escapeキーを押すと、ポップオーバーを閉じます", + "core.euiColorPicker.popoverLabel": "色選択ダイアログ", + "core.euiColorPicker.transparent": "透明", + "core.euiColorPickerSwatch.ariaLabel": "色として{color}を選択します", + "core.euiColorStops.screenReaderAnnouncement": "{label}:{readOnly} {disabled}色終了位置ピッカー。各終了には数値と対応するカラー値があります。上下矢印キーを使用して、個別の終了を選択します。Enterキーを押すと、新しい終了を作成します。", + "core.euiColorStopThumb.buttonAriaLabel": "Enterキーを押すと、この点を変更します。Escapeキーを押すと、グループにフォーカスします", + "core.euiColorStopThumb.buttonTitle": "クリックすると編集できます。ドラッグすると再配置できます", + "core.euiColorStopThumb.removeLabel": "この終了を削除", + "core.euiColorStopThumb.screenReaderAnnouncement": "カラー終了編集フォームのポップアップが開きました。Tabを押してフォームコントロールを閲覧するか、Escでこのポップアップを閉じます。", + "core.euiColorStopThumb.stopErrorMessage": "値が範囲外です", + "core.euiColorStopThumb.stopLabel": "点値", + "core.euiColumnActions.hideColumn": "列を非表示", + "core.euiColumnActions.moveLeft": "左に移動", + "core.euiColumnActions.moveRight": "右に移動", + "core.euiColumnActions.sort": "{schemaLabel}を並べ替える", + "core.euiColumnSelector.button": "列", + "core.euiColumnSelector.buttonActivePlural": "{numberOfHiddenFields}個の列が非表示です", + "core.euiColumnSelector.buttonActiveSingular": "{numberOfHiddenFields}個の列が非表示です", + "core.euiColumnSelector.hideAll": "すべて非表示", + "core.euiColumnSelector.search": "検索", + "core.euiColumnSelector.searchcolumns": "列を検索", + "core.euiColumnSelector.selectAll": "すべて表示", + "core.euiColumnSorting.button": "フィールドの並べ替え", + "core.euiColumnSorting.clearAll": "並び替えを消去", + "core.euiColumnSorting.emptySorting": "現在並び替えられているフィールドはありません", + "core.euiColumnSorting.pickFields": "並び替え基準でフィールドの選択", + "core.euiColumnSorting.sortFieldAriaLabel": "並べ替え基準:", + "core.euiColumnSortingDraggable.activeSortLabel": "{display}はこのデータグリッドを並べ替えています", + "core.euiColumnSortingDraggable.defaultSortAsc": "A-Z", + "core.euiColumnSortingDraggable.defaultSortDesc": "Z-A", + "core.euiColumnSortingDraggable.removeSortLabel": "データグリッドの並べ替えから{display}を削除", + "core.euiColumnSortingDraggable.toggleLegend": "{display}の並べ替え方法を選択", + "core.euiComboBoxOptionsList.allOptionsSelected": "利用可能なオプションをすべて選択しました", + "core.euiComboBoxOptionsList.alreadyAdded": "{label} はすでに追加されています", + "core.euiComboBoxOptionsList.createCustomOption": "{searchValue}をカスタムオプションとして追加", + "core.euiComboBoxOptionsList.delimiterMessage": "各項目を{delimiter}で区切って追加", + "core.euiComboBoxOptionsList.loadingOptions": "オプションを読み込み中", + "core.euiComboBoxOptionsList.noAvailableOptions": "利用可能なオプションがありません", + "core.euiComboBoxOptionsList.noMatchingOptions": "{searchValue} はどのオプションにも一致していません", + "core.euiComboBoxPill.removeSelection": "グループの選択項目から {children} を削除してください", + "core.euiCommonlyUsedTimeRanges.legend": "頻繁に使用", + "core.euiControlBar.customScreenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマーク{landmarkHeading}とページレベルのコントロールがあります。", + "core.euiControlBar.screenReaderAnnouncement": "ドキュメントの最後には、新しいリージョンランドマークとページレベルのコントロールがあります。", + "core.euiControlBar.screenReaderHeading": "ページレベルのコントロール", + "core.euiDataGrid.ariaLabel": "{label}; {page}/{pageCount}ページ。", + "core.euiDataGrid.ariaLabelledBy": "{page}/{pageCount}ページ。", + "core.euiDataGrid.screenReaderNotice": "セルにはインタラクティブコンテンツが含まれます。", + "core.euiDataGridCell.position": "行:{row}、列:{col}", + "core.euiDataGridCellButtons.expandButtonTitle": "クリックするか enter を押すと、セルのコンテンツとインタラクトできます。", + "core.euiDataGridHeaderCell.headerActions": "ヘッダーアクション", + "core.euiDataGridPagination.detailedPaginationLabel": "前のグリッドのページネーション:{label}", + "core.euiDataGridPagination.paginationLabel": "前のグリッドのページネーション", + "core.euiDataGridSchema.booleanSortTextAsc": "False-True", + "core.euiDataGridSchema.booleanSortTextDesc": "True-False", + "core.euiDataGridSchema.currencySortTextAsc": "低-高", + "core.euiDataGridSchema.currencySortTextDesc": "高-低", + "core.euiDataGridSchema.dateSortTextAsc": "旧-新", + "core.euiDataGridSchema.dateSortTextDesc": "新-旧", + "core.euiDataGridSchema.jsonSortTextAsc": "小-大", + "core.euiDataGridSchema.jsonSortTextDesc": "大-小", + "core.euiDataGridSchema.numberSortTextAsc": "低-高", + "core.euiDataGridSchema.numberSortTextDesc": "高-低", + "core.euiDataGridToolbar.fullScreenButton": "全画面", + "core.euiDataGridToolbar.fullScreenButtonActive": "全画面を終了", + "core.euiDatePopoverButton.outdatedTitle": "更新が必要:{title}", + "core.euiFieldPassword.maskPassword": "パスワードをマスク", + "core.euiFieldPassword.showPassword": "プレーンテキストとしてパスワードを表示します。注記:パスワードは画面上に見えるように表示されます。", + "core.euiFilePicker.clearSelectedFiles": "選択したファイルを消去", + "core.euiFilePicker.filesSelected": "{fileCount}個のファイルが選択されました", + "core.euiFilePicker.promptText": "ファイルを選択するかドラッグ &amp; ドロップしてください", + "core.euiFilePicker.removeSelected": "削除", + "core.euiFilterButton.filterBadgeActiveAriaLabel": "{count}個のアクティブなフィルター", + "core.euiFilterButton.filterBadgeAvailableAriaLabel": "{count}個の使用可能なフィルター", + "core.euiFlyout.closeAriaLabel": "このダイアログを閉じる", + "core.euiForm.addressFormErrors": "ハイライトされたエラーを修正してください。", + "core.euiFormControlLayoutClearButton.label": "インプットを消去", + "core.euiHeaderLinks.appNavigation": "アプリメニュー", + "core.euiHeaderLinks.openNavigationMenu": "メニューを開く", + "core.euiHue.label": "HSV カラーモードの「色相」値を選択", + "core.euiImage.closeImage": "全画面 {alt} 画像を閉じる", + "core.euiImage.openImage": "全画面 {alt} 画像を開く", + "core.euiLink.external.ariaLabel": "外部リンク", + "core.euiLink.newTarget.screenReaderOnlyText": "(新しいタブまたはウィンドウで開く)", + "core.euiMarkdownEditorFooter.closeButton": "閉じる", + "core.euiMarkdownEditorFooter.errorsTitle": "エラー", + "core.euiMarkdownEditorFooter.mdSyntaxLink": "GitHub風のマークダウン", + "core.euiMarkdownEditorFooter.openUploadModal": "ファイルのアップロードモーダルを開く", + "core.euiMarkdownEditorFooter.showMarkdownHelp": "マークダウンヘルプを表示", + "core.euiMarkdownEditorFooter.showSyntaxErrors": "エラーを表示", + "core.euiMarkdownEditorFooter.supportedFileTypes": "サポートされているファイル:{supportedFileTypes}", + "core.euiMarkdownEditorFooter.syntaxModalDescriptionPrefix": "このエディターは使用します", + "core.euiMarkdownEditorFooter.syntaxModalDescriptionSuffix": "これらの追加の構文プラグインを利用して、リッチコンテンツをテキストに追加することもできます。", + "core.euiMarkdownEditorFooter.syntaxPopoverDescription": "このエディターは使用します", + "core.euiMarkdownEditorFooter.syntaxTitle": "構文ヘルプ", + "core.euiMarkdownEditorFooter.unsupportedFileType": "ファイルタイプがサポートされていません", + "core.euiMarkdownEditorFooter.uploadingFiles": "クリックすると、ファイルをアップロードします", + "core.euiMarkdownEditorToolbar.editor": "エディター", + "core.euiMarkdownEditorToolbar.previewMarkdown": "プレビュー", + "core.euiModal.closeModal": "このモーダルウィンドウを閉じます", + "core.euiNotificationEventMessages.accordionAriaLabelButtonText": "+ {eventName}の{messagesLength}メスえーいj", + "core.euiNotificationEventMessages.accordionButtonText": "+ {messagesLength}以上", + "core.euiNotificationEventMessages.accordionHideText": "非表示", + "core.euiNotificationEventMeta.contextMenuButton": "{eventName}のメニュー", + "core.euiNotificationEventReadButton.markAsRead": "既読に設定", + "core.euiNotificationEventReadButton.markAsReadAria": "{eventName}を既読に設定", + "core.euiNotificationEventReadButton.markAsUnread": "未読に設定", + "core.euiNotificationEventReadButton.markAsUnreadAria": "{eventName}を未読に設定", + "core.euiNotificationEventReadIcon.read": "読み取り", + "core.euiNotificationEventReadIcon.readAria": "{eventName}は既読です", + "core.euiNotificationEventReadIcon.unread": "未読", + "core.euiNotificationEventReadIcon.unreadAria": "{eventName}は未読です", + "core.euiPagination.disabledNextPage": "次のページ", + "core.euiPagination.disabledPreviousPage": "前のページ", + "core.euiPagination.firstRangeAriaLabel": "ページ2を{lastPage}にスキップしています", + "core.euiPagination.lastRangeAriaLabel": "ページ{firstPage}を{lastPage}にスキップしています", + "core.euiPagination.nextPage": "次のページ、{page}", + "core.euiPagination.pageOfTotalCompressed": "{total}ページ中{page}ページ", + "core.euiPagination.previousPage": "前のページ、{page}", + "core.euiPaginationButton.longPageString": "{page}/{totalPages}ページ", + "core.euiPaginationButton.shortPageString": "{page}ページ", + "core.euiPinnableListGroup.pinExtraActionLabel": "項目をピン留め", + "core.euiPinnableListGroup.pinnedExtraActionLabel": "項目のピン留めを外す", + "core.euiPopover.screenReaderAnnouncement": "これはダイアログです。ダイアログを閉じるには、 escape を押してください。", + "core.euiProgress.valueText": "{value}%", + "core.euiQuickSelect.applyButton": "適用", + "core.euiQuickSelect.fullDescription": "現在 {timeTense} {timeValue} {timeUnit}に設定されています。", + "core.euiQuickSelect.legendText": "時間範囲をすばやく選択", + "core.euiQuickSelect.nextLabel": "次の時間ウィンドウ", + "core.euiQuickSelect.previousLabel": "前の時間ウィンドウ", + "core.euiQuickSelect.quickSelectTitle": "すばやく選択", + "core.euiQuickSelect.tenseLabel": "時間テンス", + "core.euiQuickSelect.unitLabel": "時間単位", + "core.euiQuickSelect.valueLabel": "時間値", + "core.euiRecentlyUsed.legend": "最近使用した日付範囲", + "core.euiRefreshInterval.fullDescription": "現在{optionValue} {optionText}に設定されている間隔を更新します。", + "core.euiRefreshInterval.legend": "以下の感覚ごとに更新", + "core.euiRefreshInterval.start": "開始", + "core.euiRefreshInterval.stop": "終了", + "core.euiRelativeTab.dateInputError": "有効な範囲でなければなりません", + "core.euiRelativeTab.fullDescription": "単位は変更可能です。現在 {unit} に設定されています。", + "core.euiRelativeTab.numberInputError": "0以上でなければなりません", + "core.euiRelativeTab.numberInputLabel": "時間スパンの量", + "core.euiRelativeTab.relativeDate": "{position} 日付", + "core.euiRelativeTab.roundingLabel": "{unit} に四捨五入する", + "core.euiRelativeTab.unitInputLabel": "相対的時間スパン", + "core.euiResizableButton.horizontalResizerAriaLabel": "左右矢印キーを押してパネルサイズを調整します", + "core.euiResizableButton.verticalResizerAriaLabel": "上下矢印キーを押してパネルサイズを調整します", + "core.euiResizablePanel.toggleButtonAriaLabel": "押すと、このパネルを切り替えます", + "core.euiSaturation.ariaLabel": "HSVカラーモード彩度と値2軸スライダー", + "core.euiSaturation.screenReaderInstructions": "矢印キーで四角のカラーグラデーションを操作します。座標は、0~1の範囲のHSVカラーモード「彩度」および「値」数値を計算するために使用されます。左右キーで彩度を変更します。上下キーで値を変更します。", + "core.euiSelectable.loadingOptions": "オプションを読み込み中", + "core.euiSelectable.noAvailableOptions": "オプションがありません", + "core.euiSelectable.noMatchingOptions": "{searchValue} はどのオプションにも一致していません", + "core.euiSelectable.placeholderName": "フィルターオプション", + "core.euiSelectableListItem.excludedOption": "除外されたオプション。", + "core.euiSelectableListItem.excludedOptionInstructions": "このオプションの選択を解除するには、Enterを押します。", + "core.euiSelectableListItem.includedOption": "追加されたオプション。", + "core.euiSelectableListItem.includedOptionInstructions": "このオプションを除外するには、Enterを押します", + "core.euiSelectableTemplateSitewide.loadingResults": "結果を読み込み中", + "core.euiSelectableTemplateSitewide.noResults": "結果がありません", + "core.euiSelectableTemplateSitewide.onFocusBadgeGoTo": "移動:", + "core.euiSelectableTemplateSitewide.searchPlaceholder": "検索しています...", + "core.euiStat.loadingText": "統計を読み込み中です", + "core.euiStepStrings.complete": "ステップ{number}: {title}は完了しました", + "core.euiStepStrings.current": "現在のステップ{number}:{title}", + "core.euiStepStrings.disabled": "ステップ{number}: {title}は無効です", + "core.euiStepStrings.errors": "ステップ{number}: {title}にはエラーがあります", + "core.euiStepStrings.incomplete": "ステップ{number}: {title}は完了していません", + "core.euiStepStrings.loading": "ステップ{number}: {title}を読み込んでいます", + "core.euiStepStrings.simpleComplete": "ステップ{number}は完了しました", + "core.euiStepStrings.simpleCurrent": "現在のステップは{number}です", + "core.euiStepStrings.simpleDisabled": "ステップ{number}は無効です", + "core.euiStepStrings.simpleErrors": "ステップ{number}にはエラーがあります", + "core.euiStepStrings.simpleIncomplete": "ステップ{number}は完了していません", + "core.euiStepStrings.simpleLoading": "ステップ{number}を読み込んでいます", + "core.euiStepStrings.simpleStep": "ステップ{number}", + "core.euiStepStrings.simpleWarning": "ステップ{number}には警告があります", + "core.euiStepStrings.step": "ステップ{number}: {title}", + "core.euiStepStrings.warning": "ステップ{number}: {title}には警告があります", + "core.euiStyleSelector.buttonLegend": "データグリッドの表示密度を選択", + "core.euiStyleSelector.buttonText": "密度", + "core.euiStyleSelector.labelCompact": "コンパクト密度", + "core.euiStyleSelector.labelExpanded": "拡張密度", + "core.euiStyleSelector.labelNormal": "標準密度", + "core.euiSuperDatePicker.showDatesButtonLabel": "日付を表示", + "core.euiSuperSelect.screenReaderAnnouncement": "{optionsCount} 件のアイテムのフォームセレクターを使用しています。1 つのオプションを選択する必要があります。上下の矢印キーで移動するか、Escキーで閉じます。", + "core.euiSuperSelectControl.selectAnOption": "オプションの選択:{selectedValue} を選択済み", + "core.euiSuperUpdateButton.cannotUpdateTooltip": "アップデートできません", + "core.euiSuperUpdateButton.clickToApplyTooltip": "クリックして適用", + "core.euiSuperUpdateButton.refreshButtonLabel": "更新", + "core.euiSuperUpdateButton.updateButtonLabel": "更新", + "core.euiSuperUpdateButton.updatingButtonLabel": "更新中", + "core.euiTableHeaderCell.titleTextWithDesc": "{innerText}; {description}", + "core.euiTablePagination.rowsPerPage": "ページごとの行数", + "core.euiTablePagination.rowsPerPageOption": "{rowsPerPage}行", + "core.euiTableSortMobile.sorting": "並べ替え", + "core.euiToast.dismissToast": "トーストを閉じる", + "core.euiToast.newNotification": "新しい通知が表示されます", + "core.euiToast.notification": "通知", + "core.euiTourStep.closeTour": "ツアーを閉じる", + "core.euiTourStep.endTour": "ツアーを終了", + "core.euiTourStep.skipTour": "ツアーをスキップ", + "core.euiTourStepIndicator.ariaLabel": "ステップ{number} {status}", + "core.euiTourStepIndicator.isActive": "アクティブ", + "core.euiTourStepIndicator.isComplete": "完了", + "core.euiTourStepIndicator.isIncomplete": "未完了", + "core.euiTreeView.ariaLabel": "{nodeLabel} {ariaLabel} のチャイルド", + "core.euiTreeView.listNavigationInstructions": "矢印キーを使ってこのリストをすばやくナビゲートすることができます。", + "core.fatalErrors.clearYourSessionButtonLabel": "セッションを消去", + "core.fatalErrors.goBackButtonLabel": "戻る", + "core.fatalErrors.somethingWentWrongTitle": "問題が発生しました", + "core.fatalErrors.tryRefreshingPageDescription": "ページを更新してみてください。うまくいかない場合は、前のページに戻るか、セッションデータを消去してください。", + "core.notifications.errorToast.closeModal": "閉じる", + "core.notifications.globalToast.ariaLabel": "通知メッセージリスト", + "core.notifications.unableUpdateUISettingNotificationMessageTitle": "UI 設定を更新できません", + "core.savedObjects.deprecations.unknownTypes.manualSteps.1": "無効なプラグインを有効にしてから、Kibanaを再起動してください。", + "core.savedObjects.deprecations.unknownTypes.manualSteps.2": "無効なプラグインがないか、有効にしても問題が解決しない場合は、ドキュメントを削除してください。", + "core.savedObjects.deprecations.unknownTypes.title": "Kibanaシステムインデックスに不明な型の保存されたオブジェクトがあります", + "core.status.greenTitle": "緑", + "core.status.redTitle": "赤", + "core.status.yellowTitle": "黄", + "core.statusPage.loadStatus.serverIsDownErrorMessage": "サーバーステータスのリクエストに失敗しました。サーバーがダウンしている可能性があります。", + "core.statusPage.loadStatus.serverStatusCodeErrorMessage": "サーバーステータスのリクエストに失敗しました。ステータスコード:{responseStatus}", + "core.statusPage.metricsTiles.columns.heapTotalHeader": "ヒープ合計", + "core.statusPage.metricsTiles.columns.heapUsedHeader": "使用ヒープ", + "core.statusPage.metricsTiles.columns.loadHeader": "読み込み", + "core.statusPage.metricsTiles.columns.requestsPerSecHeader": "1秒あたりのリクエスト", + "core.statusPage.metricsTiles.columns.resTimeAvgHeader": "平均応答時間", + "core.statusPage.metricsTiles.columns.resTimeMaxHeader": "最長応答時間", + "core.statusPage.serverStatus.statusTitle": "Kibanaのステータス:{kibanaStatus}", + "core.statusPage.statusApp.loadingErrorText": "ステータスの読み込み中にエラーが発生しました", + "core.statusPage.statusApp.statusActions.buildText": "ビルド{buildNum}", + "core.statusPage.statusApp.statusActions.commitText": "COMMIT {buildSha}", + "core.statusPage.statusApp.statusTitle": "プラグインステータス", + "core.statusPage.statusTable.columns.idHeader": "ID", + "core.statusPage.statusTable.columns.statusHeader": "ステータス", + "core.toasts.errorToast.seeFullError": "完全なエラーを表示", + "core.ui_settings.params.darkModeText": "Kibana UIのダークモードを有効にします。この設定を適用するにはページの更新が必要です。", + "core.ui_settings.params.darkModeTitle": "ダークモード", + "core.ui_settings.params.dateFormat.dayOfWeekText": "週の初めの曜日を設定します", + "core.ui_settings.params.dateFormat.dayOfWeekTitle": "曜日", + "core.ui_settings.params.dateFormat.optionsLinkText": "フォーマット", + "core.ui_settings.params.dateFormat.scaled.intervalsLinkText": "ISO8601間隔", + "core.ui_settings.params.dateFormat.scaledText": "時間ベースのデータが順番にレンダリングされ、フォーマットされたタイムスタンプが測定値の間隔に適応すべき状況で使用されるフォーマットを定義する値です。キーは{intervalsLink}です。", + "core.ui_settings.params.dateFormat.scaledTitle": "スケーリングされたデータフォーマットです", + "core.ui_settings.params.dateFormat.timezone.invalidValidationMessage": "無効なタイムゾーン:{timezone}", + "core.ui_settings.params.dateFormat.timezoneText": "使用されるタイムゾーンです。{defaultOption}ではご使用のブラウザーにより検知されたタイムゾーンが使用されます。", + "core.ui_settings.params.dateFormat.timezoneTitle": "データフォーマットのタイムゾーン", + "core.ui_settings.params.dateFormatText": "きちんとフォーマットされたデータを表示する際、この{formatLink}を使用します", + "core.ui_settings.params.dateFormatTitle": "データフォーマット", + "core.ui_settings.params.dateNanosFormatText": "Elasticsearchの{dateNanosLink}データタイプに使用されます", + "core.ui_settings.params.dateNanosFormatTitle": "ナノ秒フォーマットでの日付", + "core.ui_settings.params.dateNanosLinkTitle": "date_nanos", + "core.ui_settings.params.dayOfWeekText.invalidValidationMessage": "無効な曜日:{dayOfWeek}", + "core.ui_settings.params.defaultRoute.defaultRouteIsRelativeValidationMessage": "相対URLでなければなりません。", + "core.ui_settings.params.defaultRoute.defaultRouteText": "この設定は、Kibana起動時のデフォルトのルートを設定します。この設定で、Kibana起動時のランディングページを変更できます。ルートは相対URLでなければなりません。", + "core.ui_settings.params.defaultRoute.defaultRouteTitle": "デフォルトのルート", + "core.ui_settings.params.disableAnimationsText": "Kibana UIの不要なアニメーションをオフにします。変更を適用するにはページを更新してください。", + "core.ui_settings.params.disableAnimationsTitle": "アニメーションを無効にする", + "core.ui_settings.params.notifications.banner.markdownLinkText": "マークダウン対応", + "core.ui_settings.params.notifications.bannerLifetimeText": "バナー通知が画面に表示される時間(ミリ秒単位)です。", + "core.ui_settings.params.notifications.bannerLifetimeTitle": "バナー通知時間", + "core.ui_settings.params.notifications.bannerText": "すべてのユーザーへの一時的な通知を目的としたカスタムバナーです。{markdownLink}", + "core.ui_settings.params.notifications.bannerTitle": "カスタムバナー通知", + "core.ui_settings.params.notifications.errorLifetimeText": "エラー通知が画面に表示される時間(ミリ秒単位)です。", + "core.ui_settings.params.notifications.errorLifetimeTitle": "エラー通知時間", + "core.ui_settings.params.notifications.infoLifetimeText": "情報通知が画面に表示される時間(ミリ秒単位)です。", + "core.ui_settings.params.notifications.infoLifetimeTitle": "情報通知時間", + "core.ui_settings.params.notifications.warningLifetimeText": "警告通知が画面に表示される時間(ミリ秒単位)です。", + "core.ui_settings.params.notifications.warningLifetimeTitle": "警告通知時間", + "core.ui_settings.params.storeUrlText": "URLが長くなりすぎるためブラウザーが対応できない場合があります。セッションストレージにURLの一部を保存することでこの問題に対処できるかどうかをテストしています。結果を教えてください!", + "core.ui_settings.params.storeUrlTitle": "セッションストレージにURLを格納", + "core.ui_settings.params.themeVersionTitle": "テーマバージョン", + "core.ui.chrome.headerGlobalNav.goHomePageIconAriaLabel": "Elastic ホーム", + "core.ui.chrome.headerGlobalNav.helpMenuAskElasticTitle": "Elastic に確認する", + "core.ui.chrome.headerGlobalNav.helpMenuButtonAriaLabel": "ヘルプメニュー", + "core.ui.chrome.headerGlobalNav.helpMenuDocumentation": "ドキュメント", + "core.ui.chrome.headerGlobalNav.helpMenuGiveFeedbackOnApp": "{appName} についてのフィードバックを作成する", + "core.ui.chrome.headerGlobalNav.helpMenuGiveFeedbackTitle": "フィードバックを作成する", + "core.ui.chrome.headerGlobalNav.helpMenuKibanaDocumentationTitle": "Kibanaドキュメント", + "core.ui.chrome.headerGlobalNav.helpMenuOpenGitHubIssueTitle": "GitHubで問題を開く", + "core.ui.chrome.headerGlobalNav.helpMenuTitle": "ヘルプ", + "core.ui.chrome.headerGlobalNav.helpMenuVersion": "v {version}", + "core.ui.chrome.headerGlobalNav.logoAriaLabel": "Elastic ロゴ", + "core.ui.enterpriseSearchNavList.label": "エンタープライズサーチ", + "core.ui.errorUrlOverflow.bigUrlWarningNotificationMessage": "{advancedSettingsLink}で{storeInSessionStorageParam}オプションを有効にするか、オンスクリーンビジュアルを簡素化してください。", + "core.ui.errorUrlOverflow.bigUrlWarningNotificationMessage.advancedSettingsLinkText": "高度な設定", + "core.ui.errorUrlOverflow.bigUrlWarningNotificationTitle": "URLが大きく、Kibanaの動作が停止する可能性があります", + "core.ui.errorUrlOverflow.errorTitle": "このオブジェクトのURLは長すぎます。表示できません", + "core.ui.errorUrlOverflow.optionsToFixError.doNotUseIEText": "最新のブラウザーにアップグレードしてください。他の対応ブラウザーでは、いずれもこの制限がありません。", + "core.ui.errorUrlOverflow.optionsToFixError.enableOptionText": "{kibanaSettingsLink}で{storeInSessionStorageConfig}オプションを有効にしてください。", + "core.ui.errorUrlOverflow.optionsToFixError.enableOptionText.advancedSettingsLinkText": "高度な設定", + "core.ui.errorUrlOverflow.optionsToFixError.removeStuffFromDashboardText": "コンテンツまたはフィルターを削除すると、編集しているオブジェクトがシンプルになります。", + "core.ui.errorUrlOverflow.optionsToFixErrorDescription": "次を試してください。", + "core.ui.kibanaNavList.label": "分析", + "core.ui.legacyBrowserMessage": "この Elastic インストレーションは、現在ご使用のブラウザが満たしていない厳格なセキュリティ要件が有効になっています。", + "core.ui.legacyBrowserTitle": "ブラウザをアップグレードしてください", + "core.ui.loadingIndicatorAriaLabel": "コンテンツを読み込んでいます", + "core.ui.managementNavList.label": "管理", + "core.ui.observabilityNavList.label": "オブザーバビリティ", + "core.ui.overlays.banner.attentionTitle": "注意", + "core.ui.overlays.banner.closeButtonLabel": "閉じる", + "core.ui.primaryNav.addData": "統合の追加", + "core.ui.primaryNav.pinnedLinksAriaLabel": "ピン留めされたリンク", + "core.ui.primaryNav.screenReaderLabel": "プライマリ", + "core.ui.primaryNav.toggleNavAriaLabel": "プライマリナビゲーションを切り替える", + "core.ui.primaryNavSection.screenReaderLabel": "プライマリナビゲーションリンク、{category}", + "core.ui.publicBaseUrlWarning.configMissingDescription": "{configKey}が見つかりません。本番環境を実行するときに構成してください。一部の機能が正常に動作しない場合があります。", + "core.ui.publicBaseUrlWarning.configMissingTitle": "構成がありません", + "core.ui.publicBaseUrlWarning.muteWarningButtonLabel": "ミュート警告", + "core.ui.publicBaseUrlWarning.seeDocumentationLinkLabel": "ドキュメントを参照してください。", + "core.ui.recentLinks.linkItem.screenReaderLabel": "{recentlyAccessedItemLinklabel}、タイプ:{pageType}", + "core.ui.recentlyViewed": "最近閲覧", + "core.ui.recentlyViewedAriaLabel": "最近閲覧したリンク", + "core.ui.securityNavList.label": "セキュリティ", + "core.ui.welcomeErrorMessage": "Elasticが正常に読み込まれませんでした。詳細はサーバーアウトプットを確認してください。", + "core.ui.welcomeMessage": "Elastic の読み込み中", + "customIntegrations.components.replacementAccordion.comparisonPageLinkLabel": "比較ページ", + "customIntegrations.components.replacementAccordion.recommendationDescription": "Elasticエージェント統合が推奨されますが、Beatsも使用できます。詳細については、{link}。", + "customIntegrations.components.replacementAccordionLabel": "Beatsでも使用可能", + "customIntegrations.languageclients.DotNetDescription": ".NETクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.DotNetTitle": "Elasticsearch .NETクライアント", + "customIntegrations.languageclients.GoDescription": "GoクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.GoTitle": "Elasticsearch Goクライアント", + "customIntegrations.languageclients.JavaDescription": "JavaクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.JavascriptDescription": "JavaScriptクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.JavascriptTitle": "Elasticsearch JavaScriptクライアント", + "customIntegrations.languageclients.JavaTitle": "Elasticsearch Javaクライアント", + "customIntegrations.languageclients.PerlDescription": "PerlクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.PerlTitle": "Elasticsearch Perlクライアント", + "customIntegrations.languageclients.PhpDescription": "PHPクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.PhpTitle": "Elasticsearch PHPクライアント", + "customIntegrations.languageclients.PythonDescription": "PythonクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.PythonTitle": "Elasticsearch Pythonクライアント", + "customIntegrations.languageclients.RubyDescription": "RubyクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.RubyTitle": "Elasticsearch Rubyクライアント", + "customIntegrations.languageclients.RustDescription": "RustクライアントでElasticsearchのデータにインデックスを作成します。", + "customIntegrations.languageclients.RustTitle": "Elasticsearch Rustクライアント", + "dashboard.actions.DownloadCreateDrilldownAction.displayName": "CSV をダウンロード", + "dashboard.actions.downloadOptionsUnsavedFilename": "無題", + "dashboard.actions.toggleExpandPanelMenuItem.expandedDisplayName": "最小化", + "dashboard.actions.toggleExpandPanelMenuItem.notExpandedDisplayName": "パネルを最大化", + "dashboard.addPanel.noMatchingObjectsMessage": "一致するオブジェクトが見つかりませんでした。", + "dashboard.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} が追加されました", + "dashboard.appLeaveConfirmModal.cancelButtonLabel": "キャンセル", + "dashboard.appLeaveConfirmModal.unsavedChangesSubtitle": "作業を保存せずにダッシュボードから移動しますか?", + "dashboard.appLeaveConfirmModal.unsavedChangesTitle": "保存されていない変更", + "dashboard.badge.readOnly.text": "読み取り専用", + "dashboard.badge.readOnly.tooltip": "ダッシュボードを保存できません", + "dashboard.changeViewModeConfirmModal.cancelButtonLabel": "編集を続行", + "dashboard.changeViewModeConfirmModal.confirmButtonLabel": "変更を破棄", + "dashboard.changeViewModeConfirmModal.description": "表示モードに戻ったときに変更内容を保持または破棄できます。 破棄された変更を回復することはできません。", + "dashboard.changeViewModeConfirmModal.keepUnsavedChangesButtonLabel": "変更を保持", + "dashboard.changeViewModeConfirmModal.leaveEditModeTitle": "保存されていない変更があります", + "dashboard.cloneModal.cloneDashboardTitleAriaLabel": "クローンダッシュボードタイトル", + "dashboard.createConfirmModal.cancelButtonLabel": "キャンセル", + "dashboard.createConfirmModal.confirmButtonLabel": "やり直す", + "dashboard.createConfirmModal.continueButtonLabel": "編集を続行", + "dashboard.createConfirmModal.unsavedChangesSubtitle": "編集を続行するか、空のダッシュボードで始めることができます。", + "dashboard.createConfirmModal.unsavedChangesTitle": "新しいダッシュボードはすでに実行中です", + "dashboard.dashboardAppBreadcrumbsTitle": "ダッシュボード", + "dashboard.dashboardGrid.toast.unableToLoadDashboardDangerMessage": "ダッシュボードが読み込めません。", + "dashboard.dashboardPageTitle": "ダッシュボード", + "dashboard.dashboardWasNotSavedDangerMessage": "ダッシュボード「{dashTitle}」が保存されませんでした。エラー:{errorMessage}", + "dashboard.dashboardWasSavedSuccessMessage": "ダッシュボード「{dashTitle}」が保存されました。", + "dashboard.discardChangesConfirmModal.cancelButtonLabel": "キャンセル", + "dashboard.discardChangesConfirmModal.confirmButtonLabel": "変更を破棄", + "dashboard.discardChangesConfirmModal.discardChangesDescription": "変更を破棄すると、元に戻すことはできません。", + "dashboard.discardChangesConfirmModal.discardChangesTitle": "ダッシュボードへの変更を破棄しますか?", + "dashboard.editorMenu.aggBasedGroupTitle": "アグリゲーションに基づく", + "dashboard.embedUrlParamExtension.filterBar": "フィルターバー", + "dashboard.embedUrlParamExtension.include": "含める", + "dashboard.embedUrlParamExtension.query": "クエリ", + "dashboard.embedUrlParamExtension.timeFilter": "時間フィルター", + "dashboard.embedUrlParamExtension.topMenu": "トップメニュー", + "dashboard.emptyDashboardAdditionalPrivilege": "このダッシュボードを編集するには、追加権限が必要です。", + "dashboard.emptyDashboardTitle": "このダッシュボードは空です。", + "dashboard.emptyWidget.addPanelDescription": "データに関するストーリーを伝えるコンテンツを作成します。", + "dashboard.emptyWidget.addPanelTitle": "最初のビジュアライゼーションを追加", + "dashboard.factory.displayName": "ダッシュボード", + "dashboard.featureCatalogue.dashboardDescription": "ビジュアライゼーションと保存された検索のコレクションの表示と共有を行います。", + "dashboard.featureCatalogue.dashboardSubtitle": "ダッシュボードでデータを分析します。", + "dashboard.featureCatalogue.dashboardTitle": "ダッシュボード", + "dashboard.fillDashboardTitle": "このダッシュボードは空です。コンテンツを追加しましょう!", + "dashboard.helpMenu.appName": "ダッシュボード", + "dashboard.howToStartWorkingOnNewDashboardDescription": "上のメニューバーで[編集]をクリックすると、パネルの追加を開始します。", + "dashboard.howToStartWorkingOnNewDashboardEditLinkAriaLabel": "ダッシュボードを編集", + "dashboard.labs.enableLabsDescription": "このフラグはビューアーで[ラボ]ボタンを使用できるかどうかを決定します。ダッシュボードで実験的機能を有効および無効にするための簡単な方法です。", + "dashboard.labs.enableUI": "ダッシュボードで[ラボ]ボタンを有効にする", + "dashboard.listing.createNewDashboard.combineDataViewFromKibanaAppDescription": "あらゆるKibanaアプリからダッシュボードにデータビューを組み合わせて、すべてを1か所に表示できます。", + "dashboard.listing.createNewDashboard.createButtonLabel": "新規ダッシュボードを作成", + "dashboard.listing.createNewDashboard.newToKibanaDescription": "Kibanaは初心者ですか?{sampleDataInstallLink}してお試しください。", + "dashboard.listing.createNewDashboard.sampleDataInstallLinkText": "サンプルデータをインストール", + "dashboard.listing.createNewDashboard.title": "初めてのダッシュボードを作成してみましょう。", + "dashboard.listing.readonlyNoItemsBody": "使用可能なダッシュボードはありません。権限を変更してこのスペースにダッシュボードを表示するには、管理者に問い合わせてください。", + "dashboard.listing.readonlyNoItemsTitle": "表示するダッシュボードがありません", + "dashboard.listing.table.descriptionColumnName": "説明", + "dashboard.listing.table.entityName": "ダッシュボード", + "dashboard.listing.table.entityNamePlural": "ダッシュボード", + "dashboard.listing.table.titleColumnName": "タイトル", + "dashboard.listing.unsaved.discardAria": "{title}への変更を破棄", + "dashboard.listing.unsaved.discardTitle": "変更を破棄", + "dashboard.listing.unsaved.editAria": "{title}の編集を続行", + "dashboard.listing.unsaved.editTitle": "編集を続行", + "dashboard.listing.unsaved.loading": "読み込み中", + "dashboard.listing.unsaved.unsavedChangesTitle": "次の{dash}には保存されていない変更があります。", + "dashboard.migratedChanges": "一部のパネルは正常に最新バージョンに更新されました。", + "dashboard.noMatchRoute.bannerText": "ダッシュボードアプリケーションはこのルート{route}を認識できません。", + "dashboard.noMatchRoute.bannerTitleText": "ページが見つかりません", + "dashboard.panel.AddToLibrary": "ライブラリに保存", + "dashboard.panel.addToLibrary.successMessage": "パネル {panelTitle} は Visualize ライブラリに追加されました", + "dashboard.panel.clonedToast": "クローンパネル", + "dashboard.panel.clonePanel": "パネルのクローン", + "dashboard.panel.copyToDashboard.cancel": "キャンセル", + "dashboard.panel.copyToDashboard.description": "パネルのコピー先を選択します。コピー先のダッシュボードに移動します。", + "dashboard.panel.copyToDashboard.existingDashboardOptionLabel": "<b>既存のダッシュボード</b>", + "dashboard.panel.copyToDashboard.goToDashboard": "コピーしてダッシュボードを開く", + "dashboard.panel.copyToDashboard.newDashboardOptionLabel": "新規ダッシュボード", + "dashboard.panel.copyToDashboard.title": "ダッシュボードにコピー", + "dashboard.panel.invalidData": "URL の無効なデータ", + "dashboard.panel.LibraryNotification": "Visualize ライブラリ通知", + "dashboard.panel.libraryNotification.ariaLabel": "ライブラリ情報を表示し、このパネルのリンクを解除します", + "dashboard.panel.libraryNotification.toolTip": "このパネルを編集すると、他のダッシュボードに影響する場合があります。このパネルのみを変更するには、ライブラリからリンクを解除します。", + "dashboard.panel.removePanel.replacePanel": "パネルの交換", + "dashboard.panel.title.clonedTag": "コピー", + "dashboard.panel.unableToMigratePanelDataForSixOneZeroErrorMessage": "「6.1.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルには想定された列または行フィールドがありません", + "dashboard.panel.unableToMigratePanelDataForSixThreeZeroErrorMessage": "「6.3.0」のダッシュボードの互換性のため、パネルデータを移行できませんでした。パネルに必要なフィールドがありません:{key}", + "dashboard.panel.unlinkFromLibrary": "ライブラリからのリンクを解除", + "dashboard.panel.unlinkFromLibrary.successMessage": "パネル {panelTitle} は Visualize ライブラリに接続されていません", + "dashboard.panelStorageError.clearError": "保存されていない変更の消去中にエラーが発生しました。{message}", + "dashboard.panelStorageError.getError": "保存されていない変更の取得中にエラーが発生しました。{message}", + "dashboard.panelStorageError.setError": "保存されていない変更の設定中にエラーが発生しました。{message}", + "dashboard.placeholder.factory.displayName": "プレースホルダー", + "dashboard.savedDashboard.newDashboardTitle": "新規ダッシュボード", + "dashboard.share.defaultDashboardTitle": "ダッシュボード[{date}]", + "dashboard.solutionToolbar.addPanelButtonLabel": "ビジュアライゼーションを作成", + "dashboard.solutionToolbar.editorMenuButtonLabel": "すべてのタイプ", + "dashboard.strings.dashboardEditTitle": "{title}を編集中", + "dashboard.topNav.cloneModal.cancelButtonLabel": "キャンセル", + "dashboard.topNav.cloneModal.cloneDashboardModalHeaderTitle": "ダッシュボードのクローンを作成", + "dashboard.topNav.cloneModal.confirmButtonLabel": "クローンの確認", + "dashboard.topNav.cloneModal.confirmCloneDescription": "クローンの確認", + "dashboard.topNav.cloneModal.dashboardExistsDescription": "{confirmClone}をクリックして重複タイトルでダッシュボードのクローンを作成します。", + "dashboard.topNav.cloneModal.dashboardExistsTitle": "「{newDashboardName}」というタイトルのダッシュボードがすでに存在します。", + "dashboard.topNav.cloneModal.enterNewNameForDashboardDescription": "ダッシュボードの新しい名前を入力してください。", + "dashboard.topNav.labsButtonAriaLabel": "ラボ", + "dashboard.topNav.labsConfigDescription": "ラボ", + "dashboard.topNav.options.hideAllPanelTitlesSwitchLabel": "パネルタイトルを表示", + "dashboard.topNav.options.syncColorsBetweenPanelsSwitchLabel": "パネル全体でカラーパレットを同期", + "dashboard.topNav.options.useMarginsBetweenPanelsSwitchLabel": "パネルの間に余白を使用", + "dashboard.topNav.saveModal.descriptionFormRowLabel": "説明", + "dashboard.topNav.saveModal.objectType": "ダッシュボード", + "dashboard.topNav.saveModal.storeTimeWithDashboardFormRowHelpText": "有効化すると、ダッシュボードが読み込まれるごとに現在選択された時刻の時間フィルターが変更されます。", + "dashboard.topNav.saveModal.storeTimeWithDashboardFormRowLabel": "ダッシュボードに時刻を保存", + "dashboard.topNav.showCloneModal.dashboardCopyTitle": "{title}のコピー", + "dashboard.topNave.cancelButtonAriaLabel": "表示モードに切り替える", + "dashboard.topNave.cloneButtonAriaLabel": "クローンを作成", + "dashboard.topNave.cloneConfigDescription": "ダッシュボードのコピーを作成します", + "dashboard.topNave.editButtonAriaLabel": "編集", + "dashboard.topNave.editConfigDescription": "編集モードに切り替えます", + "dashboard.topNave.fullScreenButtonAriaLabel": "全画面", + "dashboard.topNave.fullScreenConfigDescription": "全画面モード", + "dashboard.topNave.optionsButtonAriaLabel": "オプション", + "dashboard.topNave.optionsConfigDescription": "オプション", + "dashboard.topNave.saveAsButtonAriaLabel": "名前を付けて保存", + "dashboard.topNave.saveAsConfigDescription": "新しいダッシュボードとして保存", + "dashboard.topNave.saveButtonAriaLabel": "保存", + "dashboard.topNave.saveConfigDescription": "プロンプトを表示せずにダッシュボードをクイック保存", + "dashboard.topNave.shareButtonAriaLabel": "共有", + "dashboard.topNave.shareConfigDescription": "ダッシュボードを共有します", + "dashboard.topNave.viewConfigDescription": "表示専用モードに切り替え", + "dashboard.unsavedChangesBadge": "保存されていない変更", + "dashboard.urlWasRemovedInSixZeroWarningMessage": "URL「dashboard/create」は6.0で廃止されました。ブックマークを更新してください。", + "data.advancedSettings.autocompleteIgnoreTimerange": "時間範囲を使用", + "data.advancedSettings.autocompleteIgnoreTimerangeText": "このプロパティを無効にすると、現在の時間範囲からではなく、データセットからオートコンプリートの候補を取得します。{learnMoreLink}", + "data.advancedSettings.autocompleteValueSuggestionMethod": "自動入力値候補の提案方法", + "data.advancedSettings.autocompleteValueSuggestionMethodLearnMoreLink": "詳細情報", + "data.advancedSettings.autocompleteValueSuggestionMethodLink": "詳細情報", + "data.advancedSettings.autocompleteValueSuggestionMethodText": "KQL自動入力で値の候補をクエリするために使用される方法。terms_enumを選択すると、Elasticsearch用語enum APIを使用して、自動入力候補のパフォーマンスを改善します。terms_aggを選択すると、Elasticsearch用語アグリゲーションを使用します。{learnMoreLink}", + "data.advancedSettings.courier.customRequestPreference.requestPreferenceLinkText": "リクエスト設定", + "data.advancedSettings.courier.customRequestPreferenceText": "{setRequestReferenceSetting} が {customSettingValue} に設定されている時に使用される {requestPreferenceLink} です。", + "data.advancedSettings.courier.customRequestPreferenceTitle": "カスタムリクエスト設定", + "data.advancedSettings.courier.ignoreFilterText": "この構成は、似ていないインデックスにアクセスするビジュアライゼーションを含むダッシュボードのサポートを強化します。無効にすると、すべてのフィルターがすべてのビジュアライゼーションに適用されます。有効にすると、ビジュアライゼーションのインデックスにフィルター対象のフィールドが含まれていない場合、ビジュアライゼーションの際にフィルターが無視されます。", + "data.advancedSettings.courier.ignoreFilterTitle": "フィルターの無視", + "data.advancedSettings.courier.maxRequestsText": "Kibanaから送信された_msearchリクエストに使用される{maxRequestsLink}設定を管理します。この構成を無効にしてElasticsearchのデフォルトを使用するには、0に設定します。", + "data.advancedSettings.courier.maxRequestsTitle": "最大同時シャードリクエスト", + "data.advancedSettings.courier.requestPreferenceCustom": "カスタム", + "data.advancedSettings.courier.requestPreferenceNone": "なし", + "data.advancedSettings.courier.requestPreferenceSessionId": "セッションID", + "data.advancedSettings.courier.requestPreferenceText": "どのシャードが検索リクエストを扱うかを設定できます。\n <ul>\n <li><strong>{sessionId}:</strong>同じシャードのすべての検索リクエストを実行するため、オペレーションを制限します。\n これにはリクエスト間でシャードのキャッシュを共有できるというメリットがあります。</li>\n <li><strong>{custom}:</strong>独自の設定が可能になります。\n <strong>'courier:customRequestPreference'</strong>で設定値をカスタマイズします。</li>\n <li><strong>{none}:</strong>設定されていないことを意味します。\n これにより、リクエストが全シャードコピー間に分散されるため、パフォーマンスが改善される可能性があります。\n ただし、シャードによって更新ステータスが異なる場合があるため、結果に矛盾が生じる可能性があります。</li>\n </ul>", + "data.advancedSettings.courier.requestPreferenceTitle": "リクエスト設定", + "data.advancedSettings.defaultIndexText": "インデックスが設定されていない時にアクセスするインデックスです", + "data.advancedSettings.defaultIndexTitle": "デフォルトのインデックス", + "data.advancedSettings.docTableHighlightText": "Discover と保存された検索ダッシュボードの結果をハイライトします。ハイライトすることで、大きなドキュメントを扱う際にリクエストが遅くなります。", + "data.advancedSettings.docTableHighlightTitle": "結果をハイライト", + "data.advancedSettings.histogram.barTargetText": "日付ヒストグラムで「自動」間隔を使用する際、この数に近いバケットの作成を試みます", + "data.advancedSettings.histogram.barTargetTitle": "目標バケット数", + "data.advancedSettings.histogram.maxBarsText": "\n Kibana全体で日付の密度とヒストグラム数を制限し、\n テストクエリを使用するときのパフォーマンスを向上させます。テストクエリのバケットが多すぎる場合は、\n バケットの間隔が増えます。この設定は個別に\n 各ヒストグラムアグリゲーションに適用されます。他の種類のアグリゲーションには適用されません。\n この設定の最大値を求めるには、Elasticsearch「search.max_buckets」\n 値を各ビジュアライゼーションのアグリゲーションの最大数で除算します。\n ", + "data.advancedSettings.histogram.maxBarsTitle": "バケットの最大数", + "data.advancedSettings.historyLimitText": "履歴があるフィールド(例:クエリインプット)に個の数の最近の値が表示されます", + "data.advancedSettings.historyLimitTitle": "履歴制限数", + "data.advancedSettings.metaFieldsText": "_source の外にあり、ドキュメントが表示される時に融合されるフィールドです", + "data.advancedSettings.metaFieldsTitle": "メタフィールド", + "data.advancedSettings.pinFiltersText": "フィルターがデフォルトでグローバル(ピン付けされた状態)になるかの設定です", + "data.advancedSettings.pinFiltersTitle": "フィルターをデフォルトでピン付けする", + "data.advancedSettings.query.allowWildcardsText": "設定すると、クエリ句の頭に*が使えるようになります。現在クエリバーで実験的クエリ機能が有効になっている場合にのみ適用されます。基本的なLuceneクエリでリーディングワイルドカードを無効にするには、{queryStringOptionsPattern}を使用します。", + "data.advancedSettings.query.allowWildcardsTitle": "クエリでリーディングワイルドカードを許可する", + "data.advancedSettings.query.queryStringOptions.optionsLinkText": "オプション", + "data.advancedSettings.query.queryStringOptionsText": "Luceneクエリ文字列パーサーの{optionsLink}。「{queryLanguage}」が{luceneLanguage}に設定されているときにのみ使用されます。", + "data.advancedSettings.query.queryStringOptionsTitle": "クエリ文字列のオプション", + "data.advancedSettings.search.includeFrozenTextDeprecation": "この設定はサポートが終了し、Kibana 9.0では削除されます。", + "data.advancedSettings.searchQueryLanguageKql": "KQL", + "data.advancedSettings.searchQueryLanguageLucene": "Lucene", + "data.advancedSettings.searchQueryLanguageText": "クエリ言語はクエリバーで使用されます。KQLはKibana用に特別に開発された新しい言語です。", + "data.advancedSettings.searchQueryLanguageTitle": "クエリ言語", + "data.advancedSettings.searchTimeout": "検索タイムアウト", + "data.advancedSettings.searchTimeoutDesc": "検索セッションの最大タイムアウトを変更するか、0 に設定してタイムアウトを無効にすると、クエリは完了するまで実行されます。", + "data.advancedSettings.sortOptions.optionsLinkText": "オプション", + "data.advancedSettings.sortOptionsText": "Elasticsearch の並べ替えパラメーターの {optionsLink}", + "data.advancedSettings.sortOptionsTitle": "並べ替えオプション", + "data.advancedSettings.suggestFilterValuesText": "フィルターエディターがフィールドの値の候補を表示しないようにするには、このプロパティをfalseにしてください。", + "data.advancedSettings.suggestFilterValuesTitle": "フィルターエディターの候補値", + "data.advancedSettings.timepicker.last15Minutes": "過去15分間", + "data.advancedSettings.timepicker.last1Hour": "過去1時間", + "data.advancedSettings.timepicker.last1Year": "過去1年間", + "data.advancedSettings.timepicker.last24Hours": "過去 24 時間", + "data.advancedSettings.timepicker.last30Days": "過去30日間", + "data.advancedSettings.timepicker.last30Minutes": "過去30分間", + "data.advancedSettings.timepicker.last7Days": "過去7日間", + "data.advancedSettings.timepicker.last90Days": "過去90日間", + "data.advancedSettings.timepicker.quickRanges.acceptedFormatsLinkText": "対応フォーマット", + "data.advancedSettings.timepicker.quickRangesText": "時間フィルターのクイックセクションに表示される範囲のリストです。それぞれのオブジェクトに「開始」、「終了」({acceptedFormatsLink}を参照)、「表示」(表示するタイトル)が含まれるオブジェクトの配列です。", + "data.advancedSettings.timepicker.quickRangesTitle": "タイムピッカーのクイック範囲", + "data.advancedSettings.timepicker.refreshIntervalDefaultsText": "時間フィルターのデフォルト更新間隔「値」はミリ秒で指定する必要があります。", + "data.advancedSettings.timepicker.refreshIntervalDefaultsTitle": "タイムピッカーの更新間隔", + "data.advancedSettings.timepicker.thisWeek": "今週", + "data.advancedSettings.timepicker.timeDefaultsText": "時間フィルターが選択されずにKibanaが起動した際に使用される時間フィルターです", + "data.advancedSettings.timepicker.timeDefaultsTitle": "デフォルトのタイムピッカー", + "data.advancedSettings.timepicker.today": "今日", + "data.aggTypes.buckets.ranges.rangesFormatMessage": "{gte} {from} と {lt} {to}", + "data.aggTypes.buckets.ranges.rangesFormatMessageArrowRight": "{from} → {to}", + "data.errors.fetchError": "ネットワークとプロキシ構成を確認してください。問題が解決しない場合は、ネットワーク管理者に問い合わせてください。", + "data.esError.unknownRootCause": "不明", + "data.filter.applyFilterActionTitle": "現在のビューにフィルターを適用", + "data.filter.applyFilters.popupHeader": "適用するフィルターの選択", + "data.filter.applyFiltersPopup.cancelButtonLabel": "キャンセル", + "data.filter.applyFiltersPopup.saveButtonLabel": "適用", + "data.filter.filterBar.addFilterButtonLabel": "フィルターを追加します", + "data.filter.filterBar.deleteFilterButtonLabel": "削除", + "data.filter.filterBar.disabledFilterPrefix": "無効", + "data.filter.filterBar.disableFilterButtonLabel": "一時的に無効にする", + "data.filter.filterBar.editFilterButtonLabel": "フィルターを編集", + "data.filter.filterBar.enableFilterButtonLabel": "再度有効にする", + "data.filter.filterBar.excludeFilterButtonLabel": "結果を除外", + "data.filter.filterBar.fieldNotFound": "インデックスパターン {indexPattern} にフィールド {key} がありません", + "data.filter.filterBar.filterItemBadgeAriaLabel": "フィルターアクション", + "data.filter.filterBar.filterItemBadgeIconAriaLabel": "{filter}を削除", + "data.filter.filterBar.includeFilterButtonLabel": "結果を含める", + "data.filter.filterBar.indexPatternSelectPlaceholder": "インデックスパターンの選択", + "data.filter.filterBar.labelErrorInfo": "インデックスパターン{indexPattern}が見つかりません", + "data.filter.filterBar.labelErrorText": "エラー", + "data.filter.filterBar.labelWarningInfo": "フィールド{fieldName}は現在のビューに存在しません", + "data.filter.filterBar.labelWarningText": "警告", + "data.filter.filterBar.moreFilterActionsMessage": "フィルター:{innerText}。他のフィルターアクションを使用するには選択してください。", + "data.filter.filterBar.negatedFilterPrefix": "NOT ", + "data.filter.filterBar.pinFilterButtonLabel": "すべてのアプリにピン付け", + "data.filter.filterBar.pinnedFilterPrefix": "ピン付け済み", + "data.filter.filterBar.unpinFilterButtonLabel": "ピンを外す", + "data.filter.filterEditor.cancelButtonLabel": "キャンセル", + "data.filter.filterEditor.createCustomLabelInputLabel": "カスタムラベル", + "data.filter.filterEditor.createCustomLabelSwitchLabel": "カスタムラベルを作成しますか?", + "data.filter.filterEditor.doesNotExistOperatorOptionLabel": "存在しない", + "data.filter.filterEditor.editFilterPopupTitle": "フィルターを編集", + "data.filter.filterEditor.editFilterValuesButtonLabel": "フィルター値を編集", + "data.filter.filterEditor.editQueryDslButtonLabel": "クエリ DSL として編集", + "data.filter.filterEditor.existsOperatorOptionLabel": "存在する", + "data.filter.filterEditor.falseOptionLabel": "false", + "data.filter.filterEditor.fieldSelectLabel": "フィールド", + "data.filter.filterEditor.fieldSelectPlaceholder": "フィールドを選択", + "data.filter.filterEditor.indexPatternSelectLabel": "インデックスパターン", + "data.filter.filterEditor.isBetweenOperatorOptionLabel": "is between", + "data.filter.filterEditor.isNotBetweenOperatorOptionLabel": "is not between", + "data.filter.filterEditor.isNotOneOfOperatorOptionLabel": "is not one of", + "data.filter.filterEditor.isNotOperatorOptionLabel": "is not", + "data.filter.filterEditor.isOneOfOperatorOptionLabel": "is one of", + "data.filter.filterEditor.isOperatorOptionLabel": "is", + "data.filter.filterEditor.operatorSelectLabel": "演算子", + "data.filter.filterEditor.operatorSelectPlaceholderSelect": "選択してください", + "data.filter.filterEditor.operatorSelectPlaceholderWaiting": "待機中", + "data.filter.filterEditor.queryDslAriaLabel": "ElasticsearchクエリDSLエディター", + "data.filter.filterEditor.queryDslLabel": "Elasticsearch クエリ DSL", + "data.filter.filterEditor.rangeEndInputPlaceholder": "範囲の終了値", + "data.filter.filterEditor.rangeInputLabel": "範囲", + "data.filter.filterEditor.rangeStartInputPlaceholder": "範囲の開始値", + "data.filter.filterEditor.saveButtonLabel": "保存", + "data.filter.filterEditor.trueOptionLabel": "true", + "data.filter.filterEditor.valueInputLabel": "値", + "data.filter.filterEditor.valueInputPlaceholder": "値を入力", + "data.filter.filterEditor.valueSelectPlaceholder": "値を選択", + "data.filter.filterEditor.valuesSelectLabel": "値", + "data.filter.filterEditor.valuesSelectPlaceholder": "値を選択", + "data.filter.options.changeAllFiltersButtonLabel": "すべてのフィルターの変更", + "data.filter.options.deleteAllFiltersButtonLabel": "すべて削除", + "data.filter.options.disableAllFiltersButtonLabel": "すべて無効にする", + "data.filter.options.enableAllFiltersButtonLabel": "すべて有効にする", + "data.filter.options.invertDisabledFiltersButtonLabel": "有効・無効を反転", + "data.filter.options.invertNegatedFiltersButtonLabel": "含める・除外を反転", + "data.filter.options.pinAllFiltersButtonLabel": "すべてピン付け", + "data.filter.options.unpinAllFiltersButtonLabel": "すべてのピンを外す", + "data.filter.searchBar.changeAllFiltersTitle": "すべてのフィルターの変更", + "data.functions.esaggs.help": "AggConfig 集約を実行します", + "data.functions.esaggs.inspector.dataRequest.description": "このリクエストはElasticsearchにクエリし、ビジュアライゼーション用のデータを取得します。", + "data.functions.esaggs.inspector.dataRequest.title": "データ", + "data.inspector.table..dataDescriptionTooltip": "ビジュアライゼーションの元のデータを表示", + "data.inspector.table.dataTitle": "データ", + "data.inspector.table.downloadCSVToggleButtonLabel": "CSV をダウンロード", + "data.inspector.table.downloadOptionsUnsavedFilename": "未保存", + "data.inspector.table.exportButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", + "data.inspector.table.filterForValueButtonAriaLabel": "値でフィルター", + "data.inspector.table.filterForValueButtonTooltip": "値でフィルター", + "data.inspector.table.filterOutValueButtonAriaLabel": "値を除外", + "data.inspector.table.filterOutValueButtonTooltip": "値を除外", + "data.inspector.table.formattedCSVButtonLabel": "フォーマット済み CSV", + "data.inspector.table.formattedCSVButtonTooltip": "データを表形式でダウンロード", + "data.inspector.table.noDataAvailableDescription": "エレメントがデータを提供しませんでした。", + "data.inspector.table.noDataAvailableTitle": "利用可能なデータがありません", + "data.inspector.table.rawCSVButtonLabel": "CSV", + "data.inspector.table.rawCSVButtonTooltip": "日付をタイムスタンプとしてなど、提供されたデータをそのままダウンロードします", + "data.inspector.table.tableLabel": "テーブル{index}", + "data.inspector.table.tableSelectorLabel": "選択済み:", + "data.kueryAutocomplete.andOperatorDescription": "{bothArguments} が true であることを条件とする", + "data.kueryAutocomplete.andOperatorDescription.bothArgumentsText": "両方の引数", + "data.kueryAutocomplete.equalOperatorDescription": "一部の値に{equals}", + "data.kueryAutocomplete.equalOperatorDescription.equalsText": "一致する", + "data.kueryAutocomplete.existOperatorDescription": "いずれかの形式中に{exists}", + "data.kueryAutocomplete.existOperatorDescription.existsText": "存在する", + "data.kueryAutocomplete.filterResultsDescription": "{fieldName}を含む結果をフィルタリング", + "data.kueryAutocomplete.greaterThanOperatorDescription": "が一部の値{greaterThan}", + "data.kueryAutocomplete.greaterThanOperatorDescription.greaterThanText": "より大きい", + "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription": "が一部の値{greaterThanOrEqualTo}", + "data.kueryAutocomplete.greaterThanOrEqualOperatorDescription.greaterThanOrEqualToText": "よりも大きいまたは等しい", + "data.kueryAutocomplete.lessThanOperatorDescription": "が一部の値{lessThan}", + "data.kueryAutocomplete.lessThanOperatorDescription.lessThanText": "より小さい", + "data.kueryAutocomplete.lessThanOrEqualOperatorDescription": "が一部の値{lessThanOrEqualTo}", + "data.kueryAutocomplete.lessThanOrEqualOperatorDescription.lessThanOrEqualToText": "より小さいまたは等しい", + "data.kueryAutocomplete.orOperatorDescription": "{oneOrMoreArguments} が true であることを条件とする", + "data.kueryAutocomplete.orOperatorDescription.oneOrMoreArgumentsText": "1つ以上の引数", + "data.noDataPopover.content": "この時間範囲にはデータが含まれていません。表示するフィールドを増やし、グラフを作成するには、時間範囲を広げるか、調整してください。", + "data.noDataPopover.dismissAction": "今後表示しない", + "data.noDataPopover.subtitle": "ヒント", + "data.noDataPopover.title": "空のデータセット", + "data.painlessError.buttonTxt": "スクリプトを編集", + "data.painlessError.painlessScriptedFieldErrorMessage": "インデックスパターン{indexPatternName}でのランタイムフィールドまたはスクリプトフィールドの実行エラー", + "data.parseEsInterval.invalidEsCalendarIntervalErrorMessage": "無効なカレンダー間隔:{interval}、1よりも大きな値が必要です", + "data.parseEsInterval.invalidEsIntervalFormatErrorMessage": "無効な間隔形式:{interval}", + "data.query.queryBar.clearInputLabel": "インプットを消去", + "data.query.queryBar.comboboxAriaLabel": "{pageType} ページの検索とフィルタリング", + "data.query.queryBar.kqlFullLanguageName": "Kibana クエリ言語", + "data.query.queryBar.kqlLanguageName": "KQL", + "data.query.queryBar.KQLNestedQuerySyntaxInfoDocLinkText": "ドキュメント", + "data.query.queryBar.KQLNestedQuerySyntaxInfoOptOutText": "今後表示しない", + "data.query.queryBar.KQLNestedQuerySyntaxInfoText": "ネストされたフィールドをクエリされているようです。ネストされたクエリに対しては、ご希望の結果により異なる方法で KQL 構文を構築することができます。詳細については、{link}をご覧ください。", + "data.query.queryBar.KQLNestedQuerySyntaxInfoTitle": "KQL ネストされたクエリ構文", + "data.query.queryBar.kqlOffLabel": "オフ", + "data.query.queryBar.kqlOnLabel": "オン", + "data.query.queryBar.languageSwitcher.toText": "検索用にKibana Query Languageに切り替える", + "data.query.queryBar.luceneLanguageName": "Lucene", + "data.query.queryBar.searchInputAriaLabel": "{pageType} ページの検索とフィルタリングを行うには入力を開始してください", + "data.query.queryBar.searchInputPlaceholder": "検索", + "data.query.queryBar.syntaxOptionsDescription": "{docsLink}(KQL)は、シンプルなクエリ構文とスクリプトフィールドのサポートを提供します。KQLにはオートコンプリート機能もあります。KQLをオフにする場合は、{nonKqlModeHelpText}", + "data.query.queryBar.syntaxOptionsDescription.nonKqlModeHelpText": "KibanaはLuceneを使用します。", + "data.query.queryBar.syntaxOptionsTitle": "構文オプション", + "data.search.aggs.aggGroups.bucketsText": "バケット", + "data.search.aggs.aggGroups.metricsText": "メトリック", + "data.search.aggs.aggGroups.noneText": "なし", + "data.search.aggs.aggTypesLabel": "{fieldName} の範囲", + "data.search.aggs.buckets.dateHistogram.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.dateHistogram.dropPartials.help": "このアグリゲーションでdrop_partialsを使用するかどうかを指定します", + "data.search.aggs.buckets.dateHistogram.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.dateHistogram.extendedBounds.help": "extended_bounds設定を使用すると、強制的にヒストグラムアグリゲーションを実行し、特定の最小値に対してバケットの作成を開始し、最大値までバケットを作成し続けます。 ", + "data.search.aggs.buckets.dateHistogram.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.dateHistogram.format.help": "このアグリゲーションで使用するフォーマット", + "data.search.aggs.buckets.dateHistogram.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.dateHistogram.interval.help": "このアグリゲーションで使用する間隔", + "data.search.aggs.buckets.dateHistogram.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.dateHistogram.minDocCount.help": "このアグリゲーションで使用する最小ドキュメントカウント", + "data.search.aggs.buckets.dateHistogram.scaleMetricValues.help": "このアグリゲーションでscaleMetricValuesを使用するかどうかを指定します", + "data.search.aggs.buckets.dateHistogram.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.dateHistogram.timeRange.help": "このアグリゲーションで使用する時間範囲", + "data.search.aggs.buckets.dateHistogram.timeZone.help": "このアグリゲーションで使用するタイムゾーン", + "data.search.aggs.buckets.dateHistogram.useNormalizedEsInterval.help": "このアグリゲーションでuseNormalizedEsIntervalを使用するかどうかを指定します", + "data.search.aggs.buckets.dateHistogramLabel": "{intervalDescription} ごとの {fieldName}", + "data.search.aggs.buckets.dateHistogramTitle": "日付ヒストグラム", + "data.search.aggs.buckets.dateRange.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.dateRange.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.dateRange.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.dateRange.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.dateRange.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.dateRange.ranges.help": "このアグリゲーションで使用する範囲。", + "data.search.aggs.buckets.dateRange.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.dateRange.timeZone.help": "このアグリゲーションで使用するタイムゾーン。", + "data.search.aggs.buckets.dateRangeTitle": "日付範囲", + "data.search.aggs.buckets.filter.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.filter.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.filter.filter.help": "KQLまたはLuceneクエリに基づいて結果をフィルタリングします。geo_bounding_boxと一緒に使用しないでください", + "data.search.aggs.buckets.filter.geoBoundingBox.help": "バウンディングボックス内の点の位置に基づいて結果をフィルタリングします", + "data.search.aggs.buckets.filter.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.filter.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.filter.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.filters.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.filters.filters.help": "このアグリゲーションで使用するフィルター", + "data.search.aggs.buckets.filters.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.filters.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.filters.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.filtersTitle": "フィルター", + "data.search.aggs.buckets.filterTitle": "フィルター", + "data.search.aggs.buckets.geoHash.autoPrecision.help": "このアグリゲーションで自動精度を使用するかどうかを指定します", + "data.search.aggs.buckets.geoHash.boundingBox.help": "バウンディングボックス内の点の位置に基づいて結果をフィルタリングします", + "data.search.aggs.buckets.geoHash.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.geoHash.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.geoHash.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.geoHash.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.geoHash.isFilteredByCollar.help": "カラーでフィルタリングするかどうかを指定します", + "data.search.aggs.buckets.geoHash.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.geoHash.precision.help": "このアグリゲーションで使用する精度。", + "data.search.aggs.buckets.geoHash.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.geoHash.useGeocentroid.help": "このアグリゲーションでgeocentroid使用するかどうかを指定します", + "data.search.aggs.buckets.geohashGridTitle": "ジオハッシュ", + "data.search.aggs.buckets.geoTile.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.geoTile.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.geoTile.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.geoTile.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.geoTile.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.geoTile.precision.help": "このアグリゲーションで使用する精度。", + "data.search.aggs.buckets.geoTile.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.geoTile.useGeocentroid.help": "このアグリゲーションでgeocentroid使用するかどうかを指定します", + "data.search.aggs.buckets.geotileGridTitle": "ジオタイル", + "data.search.aggs.buckets.histogram.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.histogram.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.histogram.extendedBounds.help": "extended_bounds設定を使用すると、強制的にヒストグラムアグリゲーションを実行し、特定の最小値に対してバケットの作成を開始し、最大値までバケットを作成し続けます。 ", + "data.search.aggs.buckets.histogram.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.histogram.hasExtendedBounds.help": "このアグリゲーションでhas_extended_boundsを使用するかどうかを指定します", + "data.search.aggs.buckets.histogram.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.histogram.interval.help": "このアグリゲーションで使用する間隔", + "data.search.aggs.buckets.histogram.intervalBase.help": "このアグリゲーションで使用するIntervalBase", + "data.search.aggs.buckets.histogram.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.histogram.maxBars.help": "間隔を計算して、この数の棒を取得します", + "data.search.aggs.buckets.histogram.minDocCount.help": "このアグリゲーションでmin_doc_countを使用するかどうかを指定します", + "data.search.aggs.buckets.histogram.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.histogramTitle": "ヒストグラム", + "data.search.aggs.buckets.intervalOptions.autoDisplayName": "自動", + "data.search.aggs.buckets.intervalOptions.dailyDisplayName": "日", + "data.search.aggs.buckets.intervalOptions.hourlyDisplayName": "時間", + "data.search.aggs.buckets.intervalOptions.millisecondDisplayName": "ミリ秒", + "data.search.aggs.buckets.intervalOptions.minuteDisplayName": "分", + "data.search.aggs.buckets.intervalOptions.monthlyDisplayName": "月", + "data.search.aggs.buckets.intervalOptions.secondDisplayName": "秒", + "data.search.aggs.buckets.intervalOptions.weeklyDisplayName": "週", + "data.search.aggs.buckets.intervalOptions.yearlyDisplayName": "年", + "data.search.aggs.buckets.ipRange.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.ipRange.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.ipRange.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.ipRange.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.ipRange.ipRangeType.help": "このアグリゲーションで使用するIP範囲タイプ。値mask、fromTOのいずれかを取ります。", + "data.search.aggs.buckets.ipRange.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.ipRange.ranges.help": "このアグリゲーションで使用する範囲。", + "data.search.aggs.buckets.ipRange.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.ipRangeLabel": "{fieldName} IP 範囲", + "data.search.aggs.buckets.ipRangeTitle": "IP範囲", + "data.search.aggs.buckets.range.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.range.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.range.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.range.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.range.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.range.ranges.help": "このアグリゲーションで使用するシリアル化された範囲。", + "data.search.aggs.buckets.range.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.rangeTitle": "範囲", + "data.search.aggs.buckets.shardDelay.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.shardDelay.delay.help": "処理するシャード間の遅延。例:\"5s\".", + "data.search.aggs.buckets.shardDelay.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.shardDelay.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.shardDelay.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.shardDelay.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.significantTerms.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.significantTerms.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.significantTerms.exclude.help": "結果から除外する特定のバケット値", + "data.search.aggs.buckets.significantTerms.excludeLabel": "除外", + "data.search.aggs.buckets.significantTerms.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.significantTerms.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.significantTerms.include.help": "結果に含める特定のバケット値", + "data.search.aggs.buckets.significantTerms.includeLabel": "含める", + "data.search.aggs.buckets.significantTerms.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.significantTerms.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.significantTerms.size.help": "取得するバケットの最大数", + "data.search.aggs.buckets.significantTermsLabel": "{fieldName} のトップ {size} の珍しいアイテム", + "data.search.aggs.buckets.significantTermsTitle": "重要な用語", + "data.search.aggs.buckets.terms.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.buckets.terms.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.buckets.terms.exclude.help": "結果から除外する特定のバケット値", + "data.search.aggs.buckets.terms.excludeLabel": "除外", + "data.search.aggs.buckets.terms.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.buckets.terms.id.help": "このアグリゲーションのID", + "data.search.aggs.buckets.terms.include.help": "結果に含める特定のバケット値", + "data.search.aggs.buckets.terms.includeLabel": "含める", + "data.search.aggs.buckets.terms.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.buckets.terms.missingBucket.help": "trueに設定すると、見つからないフィールドのすべてのバケットをグループ化します", + "data.search.aggs.buckets.terms.missingBucketLabel": "欠測値", + "data.search.aggs.buckets.terms.missingBucketLabel.help": "ドキュメントのフィールドが見つからないときにグラフで使用される既定のラベル。", + "data.search.aggs.buckets.terms.order.help": "結果を返す順序:昇順または降順", + "data.search.aggs.buckets.terms.orderAgg.help": "結果の並べ替えで使用するアグリゲーション構成", + "data.search.aggs.buckets.terms.orderAscendingTitle": "昇順", + "data.search.aggs.buckets.terms.orderBy.help": "結果を並べ替える基準のフィールド", + "data.search.aggs.buckets.terms.orderDescendingTitle": "降順", + "data.search.aggs.buckets.terms.otherBucket.help": "trueに設定すると、許可されたサイズを超えるすべてのバケットをグループ化します", + "data.search.aggs.buckets.terms.otherBucketDescription": "このリクエストは、データバケットの基準外のドキュメントの数をカウントします。", + "data.search.aggs.buckets.terms.otherBucketLabel": "その他", + "data.search.aggs.buckets.terms.otherBucketLabel.help": "他のバケットのドキュメントのグラフで使用される既定のラベル", + "data.search.aggs.buckets.terms.otherBucketTitle": "他のバケット", + "data.search.aggs.buckets.terms.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.buckets.terms.size.help": "取得するバケットの最大数", + "data.search.aggs.buckets.termsTitle": "用語", + "data.search.aggs.error.aggNotFound": "「{type}」に登録されたアグリゲーションタイプが見つかりません。", + "data.search.aggs.function.buckets.dateHistogram.help": "ヒストグラムアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.dateRange.help": "日付範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.filter.help": "フィルターアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.filters.help": "フィルターアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.geoHash.help": "ジオハッシュアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.geoTile.help": "ジオタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.histogram.help": "ヒストグラムアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.ipRange.help": "IP範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.range.help": "範囲アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.shardDelay.help": "シャード遅延アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.significantTerms.help": "重要な用語アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.buckets.terms.help": "用語アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.avg.help": "平均値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.bucket_avg.help": "平均値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.bucket_max.help": "最大値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.bucket_min.help": "最小値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.bucket_sum.help": "合計値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.cardinality.help": "カーディナリティアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.count.help": "カウントアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.cumulative_sum.help": "合計値バケットアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.derivative.help": "微分アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.filtered_metric.help": "フィルタリングされたメトリックアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.geo_bounds.help": "ジオ境界アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.geo_centroid.help": "ジオ中心アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.max.help": "最大値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.median.help": "中央値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.min.help": "最小値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.moving_avg.help": "移動平均値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.percentile_ranks.help": "パーセンタイル順位アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.percentiles.help": "パーセンタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.serial_diff.help": "シリアル差異アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.singlePercentile.help": "パーセンタイルアグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.std_deviation.help": "標準偏差アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.sum.help": "合計値アグリゲーションのシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.function.metrics.top_hit.help": "上位一致のシリアル化されたアグリゲーション構成を生成します", + "data.search.aggs.histogram.missingMaxMinValuesWarning": "自動スケールヒストグラムバケットから最高値と最低値を取得できません。これによりビジュアライゼーションのパフォーマンスが低下する可能性があります。", + "data.search.aggs.metrics.averageBucketTitle": "平均バケット", + "data.search.aggs.metrics.averageLabel": "平均 {field}", + "data.search.aggs.metrics.averageTitle": "平均", + "data.search.aggs.metrics.avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.avg.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.avg.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.avg.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.bucket_avg.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.bucket_avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.bucket_avg.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.bucket_avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.bucket_avg.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.bucket_avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.bucket_avg.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.bucket_max.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.bucket_max.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.bucket_max.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.bucket_max.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.bucket_max.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.bucket_max.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.bucket_max.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.bucket_min.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.bucket_min.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.bucket_min.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.bucket_min.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.bucket_min.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.bucket_min.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.bucket_min.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.bucket_sum.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.bucket_sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.bucket_sum.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.bucket_sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.bucket_sum.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.bucket_sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.bucket_sum.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.cardinality.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.cardinality.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.cardinality.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.cardinality.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.cardinality.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.cardinality.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.count.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.count.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.count.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.count.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.countLabel": "カウント", + "data.search.aggs.metrics.countTitle": "カウント", + "data.search.aggs.metrics.cumulative_sum.buckets_path.help": "関心があるメトリックへのパス", + "data.search.aggs.metrics.cumulative_sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.cumulative_sum.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.cumulative_sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.cumulative_sum.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.cumulative_sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.cumulative_sum.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", + "data.search.aggs.metrics.cumulative_sum.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.cumulativeSumLabel": "累積和", + "data.search.aggs.metrics.cumulativeSumTitle": "累積和", + "data.search.aggs.metrics.derivative.buckets_path.help": "関心があるメトリックへのパス", + "data.search.aggs.metrics.derivative.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.derivative.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.derivative.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.derivative.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.derivative.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.derivative.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", + "data.search.aggs.metrics.derivative.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.derivativeLabel": "派生", + "data.search.aggs.metrics.derivativeTitle": "派生", + "data.search.aggs.metrics.filtered_metric.customBucket.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成フィルターアグリゲーションでなければなりません", + "data.search.aggs.metrics.filtered_metric.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.filtered_metric.customMetric.help": "兄弟パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.filtered_metric.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.filtered_metric.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.filtered_metric.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.filteredMetricLabel": "フィルタリング済み", + "data.search.aggs.metrics.filteredMetricTitle": "フィルタリングされたメトリック", + "data.search.aggs.metrics.geo_bounds.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.geo_bounds.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.geo_bounds.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.geo_bounds.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.geo_bounds.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.geo_bounds.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.geo_centroid.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.geo_centroid.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.geo_centroid.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.geo_centroid.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.geo_centroid.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.geo_centroid.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.geoBoundsLabel": "境界", + "data.search.aggs.metrics.geoBoundsTitle": "境界", + "data.search.aggs.metrics.geoCentroidLabel": "ジオセントロイド", + "data.search.aggs.metrics.geoCentroidTitle": "ジオセントロイド", + "data.search.aggs.metrics.max.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.max.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.max.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.max.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.max.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.max.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.maxBucketTitle": "最高バケット", + "data.search.aggs.metrics.maxLabel": "最高 {field}", + "data.search.aggs.metrics.maxTitle": "最高", + "data.search.aggs.metrics.median.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.median.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.median.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.median.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.median.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.median.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.medianLabel": "中央 {field}", + "data.search.aggs.metrics.medianTitle": "中央", + "data.search.aggs.metrics.metricAggregationsSubtypeTitle": "メトリック集約", + "data.search.aggs.metrics.min.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.min.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.min.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.min.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.min.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.min.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.minBucketTitle": "最低バケット", + "data.search.aggs.metrics.minLabel": "最低 {field}", + "data.search.aggs.metrics.minTitle": "最低", + "data.search.aggs.metrics.moving_avg.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.moving_avg.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.moving_avg.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.moving_avg.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.moving_avg.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.moving_avg.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", + "data.search.aggs.metrics.moving_avg.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.moving_avg.script.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", + "data.search.aggs.metrics.moving_avg.window.help": "ヒストグラム全体でスライドするウィンドウのサイズ。", + "data.search.aggs.metrics.movingAvgLabel": "移動平均", + "data.search.aggs.metrics.movingAvgTitle": "移動平均", + "data.search.aggs.metrics.overallAverageLabel": "全体平均", + "data.search.aggs.metrics.overallMaxLabel": "全体最高", + "data.search.aggs.metrics.overallMinLabel": "全体最低", + "data.search.aggs.metrics.overallSumLabel": "全体合計", + "data.search.aggs.metrics.parentPipelineAggregationsSubtypeTitle": "親パイプライン集約", + "data.search.aggs.metrics.percentile_ranks.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.percentile_ranks.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.percentile_ranks.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.percentile_ranks.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.percentile_ranks.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.percentile_ranks.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.percentile_ranks.values.help": "パーセンタイル順位の範囲", + "data.search.aggs.metrics.percentileRanks.valuePropsLabel": "「{label}」の {format} のパーセンタイル順位", + "data.search.aggs.metrics.percentileRanksLabel": "{field} のパーセンタイル順位", + "data.search.aggs.metrics.percentileRanksTitle": "パーセンタイル順位", + "data.search.aggs.metrics.percentiles.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.percentiles.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.percentiles.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.percentiles.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.percentiles.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.percentiles.percents.help": "パーセンタイル順位の範囲", + "data.search.aggs.metrics.percentiles.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.percentiles.valuePropsLabel": "{label} の {percentile} パーセンタイル", + "data.search.aggs.metrics.percentilesLabel": "{field} のパーセンタイル", + "data.search.aggs.metrics.percentilesTitle": "パーセンタイル", + "data.search.aggs.metrics.serial_diff.buckets_path.help": "関心があるメトリックへのパス", + "data.search.aggs.metrics.serial_diff.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.serial_diff.customMetric.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成", + "data.search.aggs.metrics.serial_diff.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.serial_diff.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.serial_diff.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.serial_diff.metricAgg.help": "親パイプラインアグリゲーションを構築するために使用するアグリゲーション構成を検索するためのID", + "data.search.aggs.metrics.serial_diff.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.serialDiffLabel": "差分の推移", + "data.search.aggs.metrics.serialDiffTitle": "差分の推移", + "data.search.aggs.metrics.siblingPipelineAggregationsSubtypeTitle": "シブリングパイプラインアグリゲーション", + "data.search.aggs.metrics.singlePercentile.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.singlePercentile.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.singlePercentile.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.singlePercentile.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.singlePercentile.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.singlePercentile.percentile.help": "取得するパーセンタイル", + "data.search.aggs.metrics.singlePercentile.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.singlePercentileLabel": "パーセンタイル{field}", + "data.search.aggs.metrics.singlePercentileTitle": "パーセンタイル", + "data.search.aggs.metrics.standardDeviation.keyDetailsLabel": "{fieldDisplayName} の標準偏差", + "data.search.aggs.metrics.standardDeviation.lowerKeyDetailsTitle": "下の{label}", + "data.search.aggs.metrics.standardDeviation.upperKeyDetailsTitle": "上の{label}", + "data.search.aggs.metrics.standardDeviationLabel": "{field} の標準偏差", + "data.search.aggs.metrics.standardDeviationTitle": "標準偏差", + "data.search.aggs.metrics.std_deviation.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.std_deviation.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.std_deviation.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.std_deviation.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.std_deviation.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.std_deviation.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.sum.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.sum.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.sum.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.sum.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.sum.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.sum.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.sumBucketTitle": "合計バケット", + "data.search.aggs.metrics.sumLabel": "{field} の合計", + "data.search.aggs.metrics.sumTitle": "合計", + "data.search.aggs.metrics.timeShift.help": "設定した時間の分だけメトリックの時間範囲をシフトします。例:1時間、7日。[前へ]は日付ヒストグラムまたは時間範囲フィルターから最も近い時間範囲を使用します。", + "data.search.aggs.metrics.top_hit.aggregate.help": "アグリゲーションタイプ", + "data.search.aggs.metrics.top_hit.customLabel.help": "このアグリゲーションのカスタムラベルを表します", + "data.search.aggs.metrics.top_hit.enabled.help": "このアグリゲーションが有効かどうかを指定します", + "data.search.aggs.metrics.top_hit.field.help": "このアグリゲーションで使用するフィールド", + "data.search.aggs.metrics.top_hit.id.help": "このアグリゲーションのID", + "data.search.aggs.metrics.top_hit.json.help": "アグリゲーションがElasticsearchに送信されるときに含める高度なJSON", + "data.search.aggs.metrics.top_hit.schema.help": "このアグリゲーションで使用するスキーマ", + "data.search.aggs.metrics.top_hit.size.help": "取得するバケットの最大数", + "data.search.aggs.metrics.top_hit.sortField.help": "結果を並べ替える基準のフィールド", + "data.search.aggs.metrics.top_hit.sortOrder.help": "結果を返す順序:昇順または降順", + "data.search.aggs.metrics.topHit.ascendingLabel": "昇順", + "data.search.aggs.metrics.topHit.averageLabel": "平均", + "data.search.aggs.metrics.topHit.concatenateLabel": "連結", + "data.search.aggs.metrics.topHit.descendingLabel": "降順", + "data.search.aggs.metrics.topHit.firstPrefixLabel": "最初", + "data.search.aggs.metrics.topHit.lastPrefixLabel": "最後", + "data.search.aggs.metrics.topHit.maxLabel": "最高", + "data.search.aggs.metrics.topHit.minLabel": "最低", + "data.search.aggs.metrics.topHit.sumLabel": "合計", + "data.search.aggs.metrics.topHitTitle": "トップヒット", + "data.search.aggs.metrics.uniqueCountLabel": "{field} のユニークカウント", + "data.search.aggs.metrics.uniqueCountTitle": "ユニークカウント", + "data.search.aggs.otherBucket.labelForMissingValuesLabel": "欠測値のラベル", + "data.search.aggs.otherBucket.labelForOtherBucketLabel": "他のバケットのラベル", + "data.search.aggs.paramTypes.field.invalidSavedFieldParameterErrorMessage": "「{aggType}」アグリゲーションで使用するには、インデックスパターン「{indexPatternTitle}」の保存されたフィールド「{fieldParameter}」が無効です。新しいフィールドを選択してください。", + "data.search.aggs.paramTypes.field.notFoundSavedFieldParameterErrorMessage": "このオブジェクトに関連付けられたフィールド\"{fieldParameter}\"は、インデックスパターンに存在しません。別のフィールドを使用してください。", + "data.search.aggs.paramTypes.field.requiredFieldParameterErrorMessage": "{fieldParameter} は必須パラメーターです", + "data.search.aggs.percentageOfLabel": "{label} の割合", + "data.search.aggs.string.customLabel": "カスタムラベル", + "data.search.dataRequest.title": "データ", + "data.search.es_search.dataRequest.description": "このリクエストはElasticsearchにクエリし、ビジュアライゼーション用のデータを取得します。", + "data.search.es_search.hitsDescription": "クエリにより返されたドキュメントの数です。", + "data.search.es_search.hitsLabel": "ヒット数", + "data.search.es_search.hitsTotalDescription": "クエリに一致するドキュメントの数です。", + "data.search.es_search.hitsTotalLabel": "ヒット数(合計)", + "data.search.es_search.indexPatternDescription": "Elasticsearchインデックスに接続したインデックスパターンです。", + "data.search.es_search.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザーでのパースの時間は含まれません。", + "data.search.es_search.queryTimeLabel": "クエリ時間", + "data.search.es_search.queryTimeValue": "{queryTime}ms", + "data.search.esaggs.error.kibanaRequest": "サーバーでこの検索を実行するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", + "data.search.esdsl.help": "Elasticsearch リクエストを実行", + "data.search.esdsl.index.help": "クエリするElasticsearchインデックス", + "data.search.esdsl.q.help": "クエリDSL", + "data.search.esdsl.size.help": "Elasticsearch 検索 API サイズパラメーター", + "data.search.esErrorTitle": "検索結果を取得できません", + "data.search.functions.cidr.cidr.help": "CIDRブロックを指定", + "data.search.functions.cidr.help": "CIDRに基づく範囲を作成", + "data.search.functions.dateRange.from.help": "開始日を指定", + "data.search.functions.dateRange.help": "日付範囲を作成", + "data.search.functions.dateRange.to.help": "終了日を指定", + "data.search.functions.esaggs.aggConfigs.help": "agg_type 関数で構成されたアグリゲーションのリスト", + "data.search.functions.esaggs.index.help": "indexPatternLoad で取得されたインデックスパターン", + "data.search.functions.esaggs.metricsAtAllLevels.help": "各バケットレベルでメトリックがある列が含まれるかどうか", + "data.search.functions.esaggs.partialRows.help": "一部のデータのみを含む行を返すかどうか", + "data.search.functions.esaggs.timeFields.help": "クエリに対して解決された時間範囲を取得する時刻フィールドを指定します", + "data.search.functions.existsFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", + "data.search.functions.existsFilter.help": "Kibana existsフィルターを作成", + "data.search.functions.existsFilter.negate.help": "フィルターは否定でなければなりません。", + "data.search.functions.extendedBounds.help": "予想バウンドを作成", + "data.search.functions.extendedBounds.max.help": "上限値を指定", + "data.search.functions.extendedBounds.min.help": "下限値を指定", + "data.search.functions.field.help": "Kibanaフィールドを作成します。", + "data.search.functions.field.name.help": "フィールドの名前です", + "data.search.functions.field.script.help": "フィールドがスクリプト化されている場合はフィールドスクリプト。", + "data.search.functions.field.type.help": "フィールド型", + "data.search.functions.geoBoundingBox.arguments.error": "次のパラメーターのグループの1つ以上を指定する必要があります:{parameters}。", + "data.search.functions.geoBoundingBox.bottom_left.help": "左下角を指定", + "data.search.functions.geoBoundingBox.bottom_right.help": "右下角を指定", + "data.search.functions.geoBoundingBox.bottom.help": "下座標を指定", + "data.search.functions.geoBoundingBox.help": "ジオバウンディングボックスを作成", + "data.search.functions.geoBoundingBox.left.help": "左座標を指定", + "data.search.functions.geoBoundingBox.right.help": "右座標を指定", + "data.search.functions.geoBoundingBox.top_left.help": "左上角を指定", + "data.search.functions.geoBoundingBox.top_right.help": "右上角を指定", + "data.search.functions.geoBoundingBox.top.help": "上座標を指定", + "data.search.functions.geoBoundingBox.wkt.help": "よく知られたテキスト(WKT)を指定", + "data.search.functions.geoPoint.arguments.error": "「緯度」、「経度」、または「ポイント」パラメーターを指定してください。", + "data.search.functions.geoPoint.help": "地理ポイントを作成", + "data.search.functions.geoPoint.lat.help": "緯度を指定", + "data.search.functions.geoPoint.lon.help": "経度を指定", + "data.search.functions.geoPoint.point.error": "ポイントパラメーターは文字列または2つの数値にしてください。", + "data.search.functions.geoPoint.point.help": "カンマ区切りの座標が付いた文字列または2つの数値としてポイントを指定", + "data.search.functions.ipRange.from.help": "開始アドレスを指定", + "data.search.functions.ipRange.help": "IP範囲を作成", + "data.search.functions.ipRange.to.help": "終了アドレスを指定", + "data.search.functions.kibana_context.filters.help": "Kibana ジェネリックフィルターを指定します", + "data.search.functions.kibana_context.help": "Kibana グローバルコンテキストを更新します", + "data.search.functions.kibana_context.q.help": "自由形式の Kibana テキストクエリを指定します", + "data.search.functions.kibana_context.savedSearchId.help": "クエリとフィルターに使用する保存検索ID を指定します。", + "data.search.functions.kibana_context.timeRange.help": "Kibana 時間範囲フィルターを指定します", + "data.search.functions.kibana.help": "Kibana グローバルコンテキストを取得します", + "data.search.functions.kibanaFilter.disabled.help": "フィルターは無効でなければなりません", + "data.search.functions.kibanaFilter.field.help": "フリーフォームesdslクエリを指定", + "data.search.functions.kibanaFilter.help": "Kibanaフィルターを作成", + "data.search.functions.kibanaFilter.negate.help": "フィルターは否定でなければなりません", + "data.search.functions.kql.help": "Kibana kqlクエリ", + "data.search.functions.kql.q.help": "Kibana KQLフリーフォームテキストクエリを指定", + "data.search.functions.lucene.help": "Kibana Luceneクエリを作成", + "data.search.functions.lucene.q.help": "Kibanaフリーフォームテキストクエリを指定", + "data.search.functions.numericalRange.from.help": "開始値を指定", + "data.search.functions.numericalRange.help": "数値範囲を作成", + "data.search.functions.numericalRange.label.help": "範囲ラベルを指定", + "data.search.functions.numericalRange.to.help": "終了値を指定", + "data.search.functions.phraseFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", + "data.search.functions.phraseFilter.help": "Kibanaフレーズまたはフレーズフィルターを作成", + "data.search.functions.phraseFilter.negate.help": "フィルターは否定でなければなりません", + "data.search.functions.phraseFilter.phrase.help": "フレーズを指定", + "data.search.functions.queryFilter.help": "クエリフィルターを作成", + "data.search.functions.queryFilter.input.help": "クエリフィルターを指定", + "data.search.functions.queryFilter.label.help": "フィルターラベルを指定", + "data.search.functions.range.gt.help": "より大きい", + "data.search.functions.range.gte.help": "以上", + "data.search.functions.range.help": "Kibana範囲フィルターを作成", + "data.search.functions.range.lt.help": "より小さい", + "data.search.functions.range.lte.help": "以下", + "data.search.functions.rangeFilter.field.help": "フィルタリングするフィールドを指定します。「field」関数を使用します。", + "data.search.functions.rangeFilter.help": "Kibana範囲フィルターを作成", + "data.search.functions.rangeFilter.negate.help": "フィルターは否定でなければなりません", + "data.search.functions.rangeFilter.range.help": "範囲を指定し、「range」関数を使用します。", + "data.search.functions.timerange.from.help": "開始日を指定", + "data.search.functions.timerange.help": "Kibana timerangeを作成", + "data.search.functions.timerange.mode.help": "モードを指定(絶対または相対)", + "data.search.functions.timerange.to.help": "終了日を指定", + "data.search.httpErrorTitle": "データを取得できません", + "data.search.searchBar.savedQueryDescriptionLabelText": "説明", + "data.search.searchBar.savedQueryDescriptionText": "再度使用するクエリテキストとフィルターを保存します。", + "data.search.searchBar.savedQueryForm.titleConflictText": "タイトルがすでに保存されているクエリに使用されています", + "data.search.searchBar.savedQueryFormCancelButtonText": "キャンセル", + "data.search.searchBar.savedQueryFormSaveButtonText": "保存", + "data.search.searchBar.savedQueryFormTitle": "クエリを保存", + "data.search.searchBar.savedQueryIncludeFiltersLabelText": "フィルターを含める", + "data.search.searchBar.savedQueryIncludeTimeFilterLabelText": "時間フィルターを含める", + "data.search.searchBar.savedQueryNameHelpText": "名前は必須です。名前の始めと終わりにはスペースを使用できません。名前は一意でなければなりません。", + "data.search.searchBar.savedQueryNameLabelText": "名前", + "data.search.searchBar.savedQueryNoSavedQueriesText": "保存されたクエリがありません。", + "data.search.searchBar.savedQueryPopoverButtonText": "保存されたクエリを表示", + "data.search.searchBar.savedQueryPopoverClearButtonAriaLabel": "現在保存されているクエリを消去", + "data.search.searchBar.savedQueryPopoverClearButtonText": "クリア", + "data.search.searchBar.savedQueryPopoverConfirmDeletionCancelButtonText": "キャンセル", + "data.search.searchBar.savedQueryPopoverConfirmDeletionConfirmButtonText": "削除", + "data.search.searchBar.savedQueryPopoverConfirmDeletionTitle": "「{savedQueryName}」を削除しますか?", + "data.search.searchBar.savedQueryPopoverDeleteButtonAriaLabel": "保存されたクエリ {savedQueryName} を削除", + "data.search.searchBar.savedQueryPopoverSaveAsNewButtonAriaLabel": "新規保存クエリを保存", + "data.search.searchBar.savedQueryPopoverSaveAsNewButtonText": "新規保存", + "data.search.searchBar.savedQueryPopoverSaveButtonAriaLabel": "新規保存クエリを保存", + "data.search.searchBar.savedQueryPopoverSaveButtonText": "現在のクエリを保存", + "data.search.searchBar.savedQueryPopoverSaveChangesButtonAriaLabel": "{title} への変更を保存", + "data.search.searchBar.savedQueryPopoverSaveChangesButtonText": "変更を保存", + "data.search.searchBar.savedQueryPopoverSavedQueryListItemButtonAriaLabel": "保存クエリボタン {savedQueryName}", + "data.search.searchBar.savedQueryPopoverSavedQueryListItemDescriptionAriaLabel": "{savedQueryName}の説明", + "data.search.searchBar.savedQueryPopoverSavedQueryListItemSelectedButtonAriaLabel": "選択されたクエリボタン {savedQueryName} を保存しました。変更を破棄するには押してください。", + "data.search.searchBar.savedQueryPopoverTitleText": "保存されたクエリ", + "data.search.searchSource.fetch.requestTimedOutNotificationMessage": "リクエストがタイムアウトしたため、データが不完全な可能性があります", + "data.search.searchSource.fetch.shardsFailedModal.close": "閉じる", + "data.search.searchSource.fetch.shardsFailedModal.copyToClipboard": "応答をクリップボードにコピー", + "data.search.searchSource.fetch.shardsFailedModal.failureHeader": "{failureName} at {failureDetails}", + "data.search.searchSource.fetch.shardsFailedModal.showDetails": "詳細を表示", + "data.search.searchSource.fetch.shardsFailedModal.tabHeaderRequest": "リクエスト", + "data.search.searchSource.fetch.shardsFailedModal.tabHeaderResponse": "応答", + "data.search.searchSource.fetch.shardsFailedModal.tabHeaderShardFailures": "シャードエラー", + "data.search.searchSource.fetch.shardsFailedModal.tableColIndex": "インデックス", + "data.search.searchSource.fetch.shardsFailedModal.tableColNode": "ノード", + "data.search.searchSource.fetch.shardsFailedModal.tableColReason": "理由", + "data.search.searchSource.fetch.shardsFailedModal.tableColShard": "シャード", + "data.search.searchSource.fetch.shardsFailedModal.tableRowCollapse": "{rowDescription}を折りたたむ", + "data.search.searchSource.fetch.shardsFailedModal.tableRowExpand": "{rowDescription}を展開する", + "data.search.searchSource.fetch.shardsFailedNotificationDescription": "表示されているデータは不完全か誤りの可能性があります。", + "data.search.searchSource.fetch.shardsFailedNotificationMessage": "{shardsTotal} 件中 {shardsFailed} 件のシャードでエラーが発生しました", + "data.search.searchSource.hitsDescription": "クエリにより返されたドキュメントの数です。", + "data.search.searchSource.hitsLabel": "ヒット数", + "data.search.searchSource.hitsTotalDescription": "クエリに一致するドキュメントの数です。", + "data.search.searchSource.hitsTotalLabel": "ヒット数(合計)", + "data.search.searchSource.indexPatternIdDescription": "{kibanaIndexPattern} インデックス内の ID です。", + "data.search.searchSource.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザーでのパースの時間は含まれません。", + "data.search.searchSource.queryTimeLabel": "クエリ時間", + "data.search.searchSource.queryTimeValue": "{queryTime}ms", + "data.search.searchSource.requestTimeDescription": "ブラウザから Elasticsearch にリクエストが送信され返されるまでの所要時間です。リクエストがキューで待機していた時間は含まれません。", + "data.search.searchSource.requestTimeLabel": "リクエスト時間", + "data.search.searchSource.requestTimeValue": "{requestTime}ms", + "data.search.timeBuckets.infinityLabel": "1年を超える", + "data.search.timeBuckets.monthLabel": "1か月", + "data.search.timeBuckets.yearLabel": "1年", + "data.search.timeoutContactAdmin": "クエリがタイムアウトしました。実行時間を延長するには、システム管理者に問い合わせてください。", + "data.search.timeoutIncreaseSetting": "クエリがタイムアウトしました。検索タイムアウト詳細設定で実行時間を延長します。", + "data.search.timeoutIncreaseSettingActionText": "設定を編集", + "data.search.unableToGetSavedQueryToastTitle": "保存したクエリ {savedQueryId} を読み込めません", + "data.searchSession.warning.readDocs": "続きを読む", + "data.searchSessionIndicator.noCapability": "検索セッションを作成するアクセス権がありません。", + "data.searchSessions.sessionService.sessionEditNameError": "検索セッションの名前を編集できませんでした", + "data.searchSessions.sessionService.sessionObjectFetchError": "検索セッション情報を取得できませんでした", + "data.triggers.applyFilterDescription": "Kibanaフィルターが適用されるとき。単一の値または範囲フィルターにすることができます。", + "data.triggers.applyFilterTitle": "フィルターを適用", + "dataViews.deprecations.scriptedFields.manualStepOneMessage": "[スタック管理]>[Kibana]>[インデックスパターン]に移動します。", + "dataViews.deprecations.scriptedFields.manualStepTwoMessage": "ランタイムフィールドを使用するには、スクリプト化されたフィールドがある{numberOfIndexPatternsWithScriptedFields}インデックスパターンを更新します。ほとんどの場合、既存のスクリプトを移行するには、「return <value>;」から「emit(<value>);」に変更する必要があります。1つ以上のスクリプト化されたフィールドがあるインデックスパターン:{allTitles}", + "dataViews.deprecations.scriptedFieldsMessage": "スクリプト化されたフィールドを使用する{numberOfIndexPatternsWithScriptedFields}インデックスパターン({titlesPreview}...)があります。スクリプト化されたフィールドは廃止予定であり、今後は削除されます。ランタイムフィールドを使用してください。", + "dataViews.deprecations.scriptedFieldsTitle": "スクリプト化されたフィールドを使用しているインデックスパターンが見つかりました", + "dataViews.ensureDefaultIndexPattern.bannerLabel": "Kibanaでデータの可視化と閲覧を行うには、Elasticsearchからデータを取得するためのインデックスパターンの作成が必要です。", + "dataViews.fetchFieldErrorTitle": "インデックスパターンのフィールド取得中にエラーが発生 {title}(ID:{id})", + "dataViews.indexPatternLoad.error.kibanaRequest": "サーバーでこの検索を実行するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", + "dataViews.unableWriteLabel": "インデックスパターンを書き込めません。このインデックスパターンへの最新の変更を取得するには、ページを更新してください。", + "devTools.badge.readOnly.text": "読み取り専用", + "devTools.badge.readOnly.tooltip": "を保存できませんでした", + "devTools.devToolsTitle": "開発ツール", + "discover.advancedSettings.context.defaultSizeText": "コンテキストビューに表示される周りのエントリーの数", + "discover.advancedSettings.context.defaultSizeTitle": "コンテキストサイズ", + "discover.advancedSettings.context.sizeStepText": "コンテキストサイズを増減させる際の最低単位です", + "discover.advancedSettings.context.sizeStepTitle": "コンテキストサイズのステップ", + "discover.advancedSettings.context.tieBreakerFieldsText": "同じタイムスタンプ値のドキュメントを区別するためのコンマ区切りのフィールドのリストです。このリストから、現在のインデックスパターンに含まれ並べ替え可能な初めのフィールドが使用されます。", + "discover.advancedSettings.context.tieBreakerFieldsTitle": "タイブレーカーフィールド", + "discover.advancedSettings.defaultColumnsText": "デフォルトでDiscoverアプリに表示される列。空の場合、ドキュメントの概要が表示されます。", + "discover.advancedSettings.defaultColumnsTitle": "デフォルトの列", + "discover.advancedSettings.discover.modifyColumnsOnSwitchText": "新しいインデックスパターンで使用できない列を削除します。", + "discover.advancedSettings.discover.modifyColumnsOnSwitchTitle": "インデックスパターンを変更するときに列を修正", + "discover.advancedSettings.discover.multiFieldsLinkText": "マルチフィールド", + "discover.advancedSettings.discover.readFieldsFromSource": "_sourceからフィールドを読み取る", + "discover.advancedSettings.discover.readFieldsFromSourceDescription": "有効にすると、「_source」から直接ドキュメントを読み込みます。これはまもなく廃止される予定です。無効にすると、上位レベルの検索サービスで新しいフィールドAPI経由でフィールドを取得します。", + "discover.advancedSettings.discover.showMultifields": "マルチフィールドを表示", + "discover.advancedSettings.discover.showMultifieldsDescription": "拡張ドキュメントビューに{multiFields}が表示されるかどうかを制御します。ほとんどの場合、マルチフィールドは元のフィールドと同じです。「searchFieldsFromSource」がオフのときにのみこのオプションを使用できます。", + "discover.advancedSettings.docTableHideTimeColumnText": "Discover と、ダッシュボードのすべての保存された検索で、「時刻」列を非表示にします。", + "discover.advancedSettings.docTableHideTimeColumnTitle": "「時刻」列を非表示", + "discover.advancedSettings.fieldsPopularLimitText": "最も頻繁に使用されるフィールドのトップNを表示します", + "discover.advancedSettings.fieldsPopularLimitTitle": "頻繁に使用されるフィールドの制限", + "discover.advancedSettings.maxDocFieldsDisplayedText": "ドキュメント列でレンダリングされたフィールドの最大数", + "discover.advancedSettings.maxDocFieldsDisplayedTitle": "表示される最大ドキュメントフィールド数", + "discover.advancedSettings.sampleSizeText": "表に表示する行数です", + "discover.advancedSettings.sampleSizeTitle": "行数", + "discover.advancedSettings.searchOnPageLoadText": "Discover の最初の読み込み時に検索を実行するかを制御します。この設定は、保存された検索の読み込み時には影響しません。", + "discover.advancedSettings.searchOnPageLoadTitle": "ページの読み込み時の検索", + "discover.advancedSettings.sortDefaultOrderText": "Discover アプリのインデックスパターンに基づく時刻のデフォルトの並べ替え方向をコントロールします。", + "discover.advancedSettings.sortDefaultOrderTitle": "デフォルトの並べ替え方向", + "discover.advancedSettings.sortOrderAsc": "昇順", + "discover.advancedSettings.sortOrderDesc": "降順", + "discover.backToTopLinkText": "最上部へ戻る。", + "discover.badge.readOnly.text": "読み取り専用", + "discover.badge.readOnly.tooltip": "検索を保存できません", + "discover.bucketIntervalTooltip": "この間隔は選択された時間範囲に表示される{bucketsDescription}が作成されるため、{bucketIntervalDescription}にスケーリングされています。", + "discover.bucketIntervalTooltip.tooLargeBucketsText": "大きすぎるバケット", + "discover.bucketIntervalTooltip.tooManyBucketsText": "バケットが多すぎます", + "discover.chartOptions": "グラフオプション", + "discover.chartOptionsButton": "グラフオプション", + "discover.clearSelection": "選択した項目をクリア", + "discover.context.breadcrumb": "周りのドキュメント", + "discover.context.contextOfTitle": "#{anchorId}の周りのドキュメント", + "discover.context.failedToLoadAnchorDocumentDescription": "アンカードキュメントの読み込みに失敗しました", + "discover.context.failedToLoadAnchorDocumentErrorDescription": "アンカードキュメントの読み込みに失敗しました。", + "discover.context.invalidTieBreakerFiledSetting": "無効なタイブレーカーフィールド設定", + "discover.context.loadButtonLabel": "読み込み", + "discover.context.loadingDescription": "読み込み中...", + "discover.context.newerDocumentsAriaLabel": "新しいドキュメントの数", + "discover.context.newerDocumentsDescription": "新しいドキュメント", + "discover.context.newerDocumentsWarning": "アンカーよりも新しいドキュメントは{docCount}件しか見つかりませんでした。", + "discover.context.newerDocumentsWarningZero": "アンカーよりも新しいドキュメントは見つかりませんでした。", + "discover.context.olderDocumentsAriaLabel": "古いドキュメントの数", + "discover.context.olderDocumentsDescription": "古いドキュメント", + "discover.context.olderDocumentsWarning": "アンカーよりも古いドキュメントは{docCount}件しか見つかりませんでした。", + "discover.context.olderDocumentsWarningZero": "アンカーよりも古いドキュメントは見つかりませんでした。", + "discover.context.reloadPageDescription.reloadOrVisitTextMessage": "ドキュメントリストを再読み込みするか、ドキュメントリストに戻り、有効なアンカードキュメントを選択してください。", + "discover.context.unableToLoadAnchorDocumentDescription": "アンカードキュメントを読み込めません", + "discover.context.unableToLoadDocumentDescription": "ドキュメントを読み込めません", + "discover.controlColumnHeader": "列の制御", + "discover.copyToClipboardJSON": "ドキュメントをクリップボードにコピー(JSON)", + "discover.discoverBreadcrumbTitle": "Discover", + "discover.discoverDefaultSearchSessionName": "Discover", + "discover.discoverDescription": "ドキュメントにクエリをかけたりフィルターを適用することで、データをインタラクティブに閲覧できます。", + "discover.discoverError.title": "Discoverの読み込みエラー", + "discover.discoverSubtitle": "インサイトを検索して見つけます。", + "discover.discoverTitle": "Discover", + "discover.doc.couldNotFindDocumentsDescription": "そのIDに一致するドキュメントがありません。", + "discover.doc.failedToExecuteQueryDescription": "検索の実行に失敗しました", + "discover.doc.failedToLocateDocumentDescription": "ドキュメントが見つかりませんでした", + "discover.doc.loadingDescription": "読み込み中…", + "discover.doc.somethingWentWrongDescription": "{indexName}が見つかりません。", + "discover.doc.somethingWentWrongDescriptionAddon": "インデックスが存在することを確認してください。", + "discover.docTable.documentsNavigation": "ドキュメントナビゲーション", + "discover.docTable.limitedSearchResultLabel": "{resultCount}件の結果のみが表示されます。検索結果を絞り込みます。", + "discover.docTable.noResultsTitle": "結果が見つかりませんでした", + "discover.docTable.rows": "行", + "discover.docTable.tableHeader.documentHeader": "ドキュメント", + "discover.docTable.tableHeader.moveColumnLeftButtonAriaLabel": "{columnName}列を左に移動", + "discover.docTable.tableHeader.moveColumnLeftButtonTooltip": "列を左に移動", + "discover.docTable.tableHeader.moveColumnRightButtonAriaLabel": "{columnName}列を右に移動", + "discover.docTable.tableHeader.moveColumnRightButtonTooltip": "列を右に移動", + "discover.docTable.tableHeader.removeColumnButtonAriaLabel": "{columnName}列を削除", + "discover.docTable.tableHeader.removeColumnButtonTooltip": "列の削除", + "discover.docTable.tableHeader.sortByColumnAscendingAriaLabel": "{columnName}を昇順に並べ替える", + "discover.docTable.tableHeader.sortByColumnDescendingAriaLabel": "{columnName}を降順に並べ替える", + "discover.docTable.tableHeader.sortByColumnUnsortedAriaLabel": "{columnName}で並べ替えを止める", + "discover.docTable.tableRow.detailHeading": "拡張ドキュメント", + "discover.docTable.tableRow.filterForValueButtonAriaLabel": "値でフィルター", + "discover.docTable.tableRow.filterForValueButtonTooltip": "値でフィルター", + "discover.docTable.tableRow.filterOutValueButtonAriaLabel": "値を除外", + "discover.docTable.tableRow.filterOutValueButtonTooltip": "値を除外", + "discover.docTable.tableRow.toggleRowDetailsButtonAriaLabel": "行の詳細を切り替える", + "discover.docTable.tableRow.viewSingleDocumentLinkText": "単一のドキュメントを表示", + "discover.docTable.tableRow.viewSurroundingDocumentsLinkText": "周りのドキュメントを表示", + "discover.docTable.totalDocuments": "{totalDocuments}ドキュメント", + "discover.documentsAriaLabel": "ドキュメント", + "discover.docView.table.ignored.multiAboveTooltip": "このフィールドの1つ以上の値が長すぎるため、検索またはフィルタリングできません。", + "discover.docView.table.ignored.multiMalformedTooltip": "このフィールドは、検索またはフィルタリングできない正しくない形式の値が1つ以上あります。", + "discover.docView.table.ignored.multiUnknownTooltip": "このフィールドの1つ以上の値がElasticsearchによって無視されたため、検索またはフィルタリングできません。", + "discover.docView.table.ignored.singleAboveTooltip": "このフィールドの値が長すぎるため、検索またはフィルタリングできません。", + "discover.docView.table.ignored.singleMalformedTooltip": "このフィールドの値の形式が正しくないため、検索またはフィルタリングできません。", + "discover.docView.table.ignored.singleUnknownTooltip": "このフィールドの値はElasticsearchによって無視されたため、検索またはフィルタリングできません。", + "discover.docViews.json.jsonTitle": "JSON", + "discover.docViews.table.filterForFieldPresentButtonAriaLabel": "フィールド表示のフィルター", + "discover.docViews.table.filterForFieldPresentButtonTooltip": "フィールド表示のフィルター", + "discover.docViews.table.filterForValueButtonAriaLabel": "値でフィルター", + "discover.docViews.table.filterForValueButtonTooltip": "値でフィルター", + "discover.docViews.table.filterOutValueButtonAriaLabel": "値を除外", + "discover.docViews.table.filterOutValueButtonTooltip": "値を除外", + "discover.docViews.table.ignored.multiValueLabel": "無視された値を含む", + "discover.docViews.table.ignored.singleValueLabel": "無視された値", + "discover.docViews.table.scoreSortWarningTooltip": "_scoreの値を取得するには、並べ替える必要があります。", + "discover.docViews.table.tableTitle": "表", + "discover.docViews.table.toggleColumnInTableButtonAriaLabel": "表の列を切り替える", + "discover.docViews.table.toggleColumnInTableButtonTooltip": "表の列を切り替える", + "discover.docViews.table.toggleFieldDetails": "フィールド詳細を切り替える", + "discover.docViews.table.unableToFilterForPresenceOfMetaFieldsTooltip": "メタフィールドの有無でフィルタリングできません", + "discover.docViews.table.unableToFilterForPresenceOfScriptedFieldsTooltip": "スクリプトフィールドの有無でフィルタリングできません", + "discover.docViews.table.unindexedFieldsCanNotBeSearchedTooltip": "インデックスがないフィールドまたは無視された値は検索できません", + "discover.embeddable.inspectorRequestDataTitle": "データ", + "discover.embeddable.inspectorRequestDescription": "このリクエストはElasticsearchにクエリをかけ、検索データを取得します。", + "discover.embeddable.search.displayName": "検索", + "discover.field.mappingConflict": "このフィールドは、このパターンと一致するインデックス全体に対して複数の型(文字列、整数など)として定義されています。この競合フィールドを使用することはできますが、Kibana で型を認識する必要がある関数では使用できません。この問題を修正するにはデータのレンダリングが必要です。", + "discover.field.mappingConflict.title": "マッピングの矛盾", + "discover.field.title": "{fieldName} ({fieldDisplayName})", + "discover.fieldChooser.detailViews.emptyStringText": "空の文字列", + "discover.fieldChooser.detailViews.existsInRecordsText": "{value} / {totalValue}件のレコードに存在", + "discover.fieldChooser.detailViews.filterOutValueButtonAriaLabel": "{field}を除外:\"{value}\"", + "discover.fieldChooser.detailViews.filterValueButtonAriaLabel": "{field}を除外:\"{value}\"", + "discover.fieldChooser.detailViews.valueOfRecordsText": "{value} / {totalValue}件のレコード", + "discover.fieldChooser.discoverField.actions": "アクション", + "discover.fieldChooser.discoverField.addButtonAriaLabel": "{field}を表に追加", + "discover.fieldChooser.discoverField.addFieldTooltip": "フィールドを列として追加", + "discover.fieldChooser.discoverField.deleteFieldLabel": "インデックスパターンフィールドを削除", + "discover.fieldChooser.discoverField.editFieldLabel": "インデックスパターンフィールドを編集", + "discover.fieldChooser.discoverField.fieldTopValuesLabel": "トップ5の値", + "discover.fieldChooser.discoverField.multiField": "複数フィールド", + "discover.fieldChooser.discoverField.multiFields": "マルチフィールド", + "discover.fieldChooser.discoverField.multiFieldTooltipContent": "複数フィールドにはフィールドごとに複数の値を入力できます", + "discover.fieldChooser.discoverField.name": "フィールド", + "discover.fieldChooser.discoverField.removeButtonAriaLabel": "{field}を表から削除", + "discover.fieldChooser.discoverField.removeFieldTooltip": "フィールドを表から削除", + "discover.fieldChooser.discoverField.value": "値", + "discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForGeoFieldsErrorMessage": "ジオフィールドは分析できません。", + "discover.fieldChooser.fieldCalculator.analysisIsNotAvailableForObjectFieldsErrorMessage": "オブジェクトフィールドは分析できません。", + "discover.fieldChooser.fieldCalculator.fieldIsNotPresentInDocumentsErrorMessage": "このフィールドはElasticsearchマッピングに表示されますが、ドキュメントテーブルの{hitsLength}件のドキュメントには含まれません。可視化や検索は可能な場合があります。", + "discover.fieldChooser.fieldFilterButtonLabel": "タイプでフィルタリング", + "discover.fieldChooser.fieldsMobileButtonLabel": "フィールド", + "discover.fieldChooser.filter.aggregatableLabel": "集約可能", + "discover.fieldChooser.filter.availableFieldsTitle": "利用可能なフィールド", + "discover.fieldChooser.filter.fieldSelectorLabel": "{id}フィルターオプションの選択", + "discover.fieldChooser.filter.filterByTypeLabel": "タイプでフィルタリング", + "discover.fieldChooser.filter.hideEmptyFieldsLabel": "空のフィールドを非表示", + "discover.fieldChooser.filter.indexAndFieldsSectionAriaLabel": "インデックスとフィールド", + "discover.fieldChooser.filter.popularTitle": "人気", + "discover.fieldChooser.filter.searchableLabel": "検索可能", + "discover.fieldChooser.filter.selectedFieldsTitle": "スクリプトフィールド", + "discover.fieldChooser.filter.toggleButton.any": "すべて", + "discover.fieldChooser.filter.toggleButton.no": "いいえ", + "discover.fieldChooser.filter.toggleButton.yes": "はい", + "discover.fieldChooser.filter.typeLabel": "型", + "discover.fieldChooser.indexPatterns.actionsPopoverLabel": "インデックスパターン設定", + "discover.fieldChooser.indexPatterns.addFieldButton": "フィールドをインデックスパターンに追加", + "discover.fieldChooser.indexPatterns.manageFieldButton": "インデックスパターンを管理", + "discover.fieldChooser.searchPlaceHolder": "検索フィールド名", + "discover.fieldChooser.toggleFieldFilterButtonHideAriaLabel": "フィールド設定を非表示", + "discover.fieldChooser.toggleFieldFilterButtonShowAriaLabel": "フィールド設定を表示", + "discover.fieldChooser.visualizeButton.label": "可視化", + "discover.fieldList.flyoutBackIcon": "戻る", + "discover.fieldList.flyoutHeading": "フィールドリスト", + "discover.fieldNameIcons.booleanAriaLabel": "ブールフィールド", + "discover.fieldNameIcons.conflictFieldAriaLabel": "矛盾フィールド", + "discover.fieldNameIcons.dateFieldAriaLabel": "日付フィールド", + "discover.fieldNameIcons.geoPointFieldAriaLabel": "地理ポイントフィールド", + "discover.fieldNameIcons.geoShapeFieldAriaLabel": "地理情報シェイプフィールド", + "discover.fieldNameIcons.ipAddressFieldAriaLabel": "IPアドレスフィールド", + "discover.fieldNameIcons.murmur3FieldAriaLabel": "Murmur3フィールド", + "discover.fieldNameIcons.nestedFieldAriaLabel": "入れ子フィールド", + "discover.fieldNameIcons.numberFieldAriaLabel": "数値フィールド", + "discover.fieldNameIcons.sourceFieldAriaLabel": "ソースフィールド", + "discover.fieldNameIcons.stringFieldAriaLabel": "文字列フィールド", + "discover.fieldNameIcons.unknownFieldAriaLabel": "不明なフィールド", + "discover.grid.documentHeader": "ドキュメント", + "discover.grid.filterFor": "フィルター", + "discover.grid.filterForAria": "この{value}でフィルターを適用", + "discover.grid.filterOut": "除外", + "discover.grid.filterOutAria": "この{value}を除外", + "discover.grid.flyout.documentNavigation": "ドキュメントナビゲーション", + "discover.grid.flyout.toastColumnAdded": "列'{columnName}'が追加されました", + "discover.grid.flyout.toastColumnRemoved": "列'{columnName}'が削除されました", + "discover.grid.flyout.toastFilterAdded": "フィルターが追加されました", + "discover.grid.tableRow.detailHeading": "拡張ドキュメント", + "discover.grid.tableRow.viewSingleDocumentLinkTextSimple": "1つのドキュメント", + "discover.grid.tableRow.viewSurroundingDocumentsLinkTextSimple": "周りのドキュメント", + "discover.grid.tableRow.viewText": "表示:", + "discover.grid.viewDoc": "詳細ダイアログを切り替え", + "discover.helpMenu.appName": "Discover", + "discover.hideChart": "グラフを非表示", + "discover.histogramOfFoundDocumentsAriaLabel": "検出されたドキュメントのヒストグラム", + "discover.hitCountSpinnerAriaLabel": "読み込み中の最終一致件数", + "discover.howToSeeOtherMatchingDocumentsDescription": "これらは検索条件に一致した初めの {sampleSize} 件のドキュメントです。他の結果を表示するには検索条件を絞ってください。", + "discover.howToSeeOtherMatchingDocumentsDescriptionGrid": "これらは検索条件に一致した初めの {sampleSize} 件のドキュメントです。他の結果を表示するには検索条件を絞ってください。", + "discover.inspectorRequestDataTitleChart": "グラフデータ", + "discover.inspectorRequestDataTitleDocuments": "ドキュメント", + "discover.inspectorRequestDataTitleTotalHits": "総ヒット数", + "discover.inspectorRequestDescriptionChart": "このリクエストはElasticsearchにクエリをかけ、グラフの集計データを取得します。", + "discover.inspectorRequestDescriptionDocument": "このリクエストはElasticsearchにクエリをかけ、ドキュメントを取得します。", + "discover.inspectorRequestDescriptionTotalHits": "このリクエストはElasticsearchにクエリをかけ、合計一致数を取得します。", + "discover.json.codeEditorAriaLabel": "Elasticsearch ドキュメントの JSON ビューのみを読み込む", + "discover.json.copyToClipboardLabel": "クリップボードにコピー", + "discover.loadingChartResults": "グラフを読み込み中", + "discover.loadingDocuments": "ドキュメントを読み込み中", + "discover.loadingJSON": "JSONを読み込んでいます", + "discover.loadingResults": "結果を読み込み中", + "discover.localMenu.fallbackReportTitle": "無題のDiscover検索", + "discover.localMenu.inspectTitle": "検査", + "discover.localMenu.localMenu.newSearchTitle": "新規", + "discover.localMenu.localMenu.optionsTitle": "オプション", + "discover.localMenu.newSearchDescription": "新規検索", + "discover.localMenu.openInspectorForSearchDescription": "検索用にインスペクターを開きます", + "discover.localMenu.openSavedSearchDescription": "保存された検索を開きます", + "discover.localMenu.openTitle": "開く", + "discover.localMenu.optionsDescription": "オプション", + "discover.localMenu.saveSaveSearchObjectType": "検索", + "discover.localMenu.saveSearchDescription": "検索を保存します", + "discover.localMenu.saveTitle": "保存", + "discover.localMenu.shareSearchDescription": "検索を共有します", + "discover.localMenu.shareTitle": "共有", + "discover.noMatchRoute.bannerText": "Discoverアプリケーションはこのルート{route}を認識できません", + "discover.noMatchRoute.bannerTitleText": "ページが見つかりません", + "discover.noResults.adjustFilters": "フィルターを調整", + "discover.noResults.adjustSearch": "クエリを調整", + "discover.noResults.disableFilters": "フィルターを一時的に無効にしています", + "discover.noResults.expandYourTimeRangeTitle": "時間範囲を拡大", + "discover.noResults.queryMayNotMatchTitle": "期間を長くして検索を試してください。", + "discover.noResults.searchExamples.noResultsBecauseOfError": "検索結果の取得中にエラーが発生しました", + "discover.noResults.searchExamples.noResultsMatchSearchCriteriaTitle": "検索条件と一致する結果がありません。", + "discover.noResultsFound": "結果が見つかりませんでした", + "discover.notifications.invalidTimeRangeText": "指定された時間範囲が無効です。(開始:'{from}'、終了:'{to}')", + "discover.notifications.invalidTimeRangeTitle": "無効な時間範囲", + "discover.notifications.notSavedSearchTitle": "検索「{savedSearchTitle}」は保存されませんでした。", + "discover.notifications.savedSearchTitle": "検索「{savedSearchTitle}」が保存されました。", + "discover.reloadSavedSearchButton": "検索をリセット", + "discover.removeColumnLabel": "列を削除", + "discover.rootBreadcrumb": "Discover", + "discover.savedSearch.savedObjectName": "保存検索", + "discover.savedSearchAliasMatchRedirect.objectNoun": "{savedSearch}検索", + "discover.savedSearchEmbeddable.action.viewSavedSearch.displayName": "Discoverで開く", + "discover.savedSearchEmbeddable.legacyURLConflict.errorMessage": "この検索にはレガシーエイリアスと同じURLがあります。このエラーを解決するには、エイリアスを無効にしてください:{json}", + "discover.savedSearchURLConflictCallout.objectNoun": "{savedSearch}検索", + "discover.searchGenerationWithDescription": "検索{searchTitle}で生成されたテーブル", + "discover.searchGenerationWithDescriptionGrid": "検索{searchTitle}で生成されたテーブル({searchDescription})", + "discover.searchingTitle": "検索中", + "discover.selectColumnHeader": "列を選択", + "discover.selectedDocumentsNumber": "{nr}個のドキュメントが選択されました", + "discover.showAllDocuments": "すべてのドキュメントを表示", + "discover.showChart": "グラフを表示", + "discover.showErrorMessageAgain": "エラーメッセージを表示", + "discover.showSelectedDocumentsOnly": "選択したドキュメントのみを表示", + "discover.singleDocRoute.errorMessage": "ID {indexPatternId} の一致するインデックスパターンが見つかりません", + "discover.singleDocRoute.errorTitle": "エラーが発生しました", + "discover.skipToBottomButtonLabel": "テーブルの最後に移動", + "discover.sourceViewer.errorMessage": "現在データを取得できませんでした。タブを更新して、再試行してください。", + "discover.sourceViewer.errorMessageTitle": "エラーが発生しました", + "discover.sourceViewer.refresh": "更新", + "discover.timeIntervals": "時間間隔", + "discover.timeIntervalWithValue": "時間間隔:{timeInterval}", + "discover.timeIntervalWithValueWarning": "警告", + "discover.toggleSidebarAriaLabel": "サイドバーを切り替える", + "discover.topNav.openSearchPanel.manageSearchesButtonLabel": "検索の管理", + "discover.topNav.openSearchPanel.noSearchesFoundDescription": "一致する検索が見つかりませんでした。", + "discover.topNav.openSearchPanel.openSearchTitle": "検索を開く", + "discover.topNav.optionsPopover.currentViewMode": "{viewModeLabel}: {currentViewMode}", + "discover.uninitializedRefreshButtonText": "データを更新", + "discover.uninitializedText": "クエリを作成、フィルターを追加、または[更新]をクリックして、現在のクエリの結果を取得します。", + "discover.uninitializedTitle": "検索開始", + "embeddableApi.addPanel.createNewDefaultOption": "新規作成", + "embeddableApi.addPanel.displayName": "パネルの追加", + "embeddableApi.addPanel.noMatchingObjectsMessage": "一致するオブジェクトが見つかりませんでした。", + "embeddableApi.addPanel.savedObjectAddedToContainerSuccessMessageTitle": "{savedObjectName} が追加されました", + "embeddableApi.addPanel.Title": "ライブラリから追加", + "embeddableApi.attributeService.saveToLibraryError": "保存中にエラーが発生しました。エラー:{errorMessage}", + "embeddableApi.contextMenuTrigger.description": "パネルの右上のコンテキストメニューをクリックします。", + "embeddableApi.contextMenuTrigger.title": "コンテキストメニュー", + "embeddableApi.customizePanel.action.displayName": "パネルタイトルを編集", + "embeddableApi.customizePanel.modal.cancel": "キャンセル", + "embeddableApi.customizePanel.modal.optionsMenuForm.panelTitleFormRowLabel": "パネルタイトル", + "embeddableApi.customizePanel.modal.optionsMenuForm.panelTitleInputAriaLabel": "パネルのカスタムタイトルを入力してください", + "embeddableApi.customizePanel.modal.optionsMenuForm.resetCustomDashboardButtonLabel": "リセット", + "embeddableApi.customizePanel.modal.saveButtonTitle": "保存", + "embeddableApi.customizePanel.modal.showTitle": "パネルタイトルを表示", + "embeddableApi.customizeTitle.optionsMenuForm.panelTitleFormRowLabel": "パネルタイトル", + "embeddableApi.customizeTitle.optionsMenuForm.panelTitleInputAriaLabel": "このインプットへの変更は直ちに適用されます。Enter を押して閉じます。", + "embeddableApi.customizeTitle.optionsMenuForm.resetCustomDashboardButtonLabel": "タイトルをリセット", + "embeddableApi.errors.embeddableFactoryNotFound": "{type} を読み込めません。Elasticsearch と Kibana のデフォルトのディストリビューションを適切なライセンスでアップグレードしてください。", + "embeddableApi.errors.paneldoesNotExist": "パネルが見つかりません", + "embeddableApi.helloworld.displayName": "こんにちは", + "embeddableApi.panel.dashboardPanelAriaLabel": "ダッシュボードパネル", + "embeddableApi.panel.editPanel.displayName": "{value} を編集", + "embeddableApi.panel.editTitleAriaLabel": "クリックしてタイトルを編集:{title}", + "embeddableApi.panel.enhancedDashboardPanelAriaLabel": "ダッシュボードパネル:{title}", + "embeddableApi.panel.inspectPanel.displayName": "検査", + "embeddableApi.panel.inspectPanel.untitledEmbeddableFilename": "無題", + "embeddableApi.panel.labelAborted": "中断しました", + "embeddableApi.panel.labelError": "エラー", + "embeddableApi.panel.optionsMenu.panelOptionsButtonAriaLabel": "パネルオプション", + "embeddableApi.panel.optionsMenu.panelOptionsButtonEnhancedAriaLabel": "{title} のパネルオプション", + "embeddableApi.panel.placeholderTitle": "[タイトルなし]", + "embeddableApi.panel.removePanel.displayName": "ダッシュボードから削除", + "embeddableApi.panelBadgeTrigger.description": "パネルに埋め込み可能なファイルが読み込まれるときに、アクションがタイトルバーに表示されます。", + "embeddableApi.panelBadgeTrigger.title": "パネルバッジ", + "embeddableApi.panelNotificationTrigger.description": "パネルの右上にアクションが表示されます。", + "embeddableApi.panelNotificationTrigger.title": "パネル通知", + "embeddableApi.samples.contactCard.displayName": "連絡先カード", + "embeddableApi.samples.filterableContainer.displayName": "フィルター可能なダッシュボード", + "embeddableApi.samples.filterableEmbeddable.displayName": "フィルター可能", + "embeddableApi.selectRangeTrigger.description": "ビジュアライゼーションでの値の範囲", + "embeddableApi.selectRangeTrigger.title": "範囲選択", + "embeddableApi.valueClickTrigger.description": "ビジュアライゼーションでデータポイントをクリック", + "embeddableApi.valueClickTrigger.title": "シングルクリック", + "esQuery.kql.errors.endOfInputText": "インプットの終わり", + "esQuery.kql.errors.fieldNameText": "フィールド名", + "esQuery.kql.errors.literalText": "文字通り", + "esQuery.kql.errors.syntaxError": "{expectedList} を期待しましたが {foundInput} が検出されました。", + "esQuery.kql.errors.valueText": "値", + "esQuery.kql.errors.whitespaceText": "空白類", + "esUi.cronEditor.cronDaily.fieldHour.textAtLabel": "に", + "esUi.cronEditor.cronDaily.fieldTimeLabel": "時間", + "esUi.cronEditor.cronDaily.hourSelectLabel": "時間", + "esUi.cronEditor.cronDaily.minuteSelectLabel": "分", + "esUi.cronEditor.cronHourly.fieldMinute.textAtLabel": "に", + "esUi.cronEditor.cronHourly.fieldTimeLabel": "分", + "esUi.cronEditor.cronMonthly.fieldDateLabel": "日付", + "esUi.cronEditor.cronMonthly.fieldHour.textAtLabel": "に", + "esUi.cronEditor.cronMonthly.fieldTimeLabel": "時間", + "esUi.cronEditor.cronMonthly.hourSelectLabel": "時間", + "esUi.cronEditor.cronMonthly.minuteSelectLabel": "分", + "esUi.cronEditor.cronMonthly.textOnTheLabel": "に", + "esUi.cronEditor.cronWeekly.fieldDateLabel": "日", + "esUi.cronEditor.cronWeekly.fieldHour.textAtLabel": "に", + "esUi.cronEditor.cronWeekly.fieldTimeLabel": "時間", + "esUi.cronEditor.cronWeekly.hourSelectLabel": "時間", + "esUi.cronEditor.cronWeekly.minuteSelectLabel": "分", + "esUi.cronEditor.cronWeekly.textOnLabel": "オン", + "esUi.cronEditor.cronYearly.fieldDate.textOnTheLabel": "に", + "esUi.cronEditor.cronYearly.fieldDateLabel": "日付", + "esUi.cronEditor.cronYearly.fieldHour.textAtLabel": "に", + "esUi.cronEditor.cronYearly.fieldMonth.textInLabel": "入", + "esUi.cronEditor.cronYearly.fieldMonthLabel": "月", + "esUi.cronEditor.cronYearly.fieldTimeLabel": "時間", + "esUi.cronEditor.cronYearly.hourSelectLabel": "時間", + "esUi.cronEditor.cronYearly.minuteSelectLabel": "分", + "esUi.cronEditor.day.friday": "金曜日", + "esUi.cronEditor.day.monday": "月曜日", + "esUi.cronEditor.day.saturday": "土曜日", + "esUi.cronEditor.day.sunday": "日曜日", + "esUi.cronEditor.day.thursday": "木曜日", + "esUi.cronEditor.day.tuesday": "火曜日", + "esUi.cronEditor.day.wednesday": "水曜日", + "esUi.cronEditor.fieldFrequencyLabel": "頻度", + "esUi.cronEditor.month.april": "4 月", + "esUi.cronEditor.month.august": "8 月", + "esUi.cronEditor.month.december": "12 月", + "esUi.cronEditor.month.february": "2 月", + "esUi.cronEditor.month.january": "1 月", + "esUi.cronEditor.month.july": "7 月", + "esUi.cronEditor.month.june": "6 月", + "esUi.cronEditor.month.march": "3 月", + "esUi.cronEditor.month.may": "5月", + "esUi.cronEditor.month.november": "11 月", + "esUi.cronEditor.month.october": "10 月", + "esUi.cronEditor.month.september": "9 月", + "esUi.cronEditor.textEveryLabel": "毎", + "esUi.forms.comboBoxField.placeHolderText": "入力してエンターキーを押してください", + "esUi.forms.fieldValidation.indexNameSpacesError": "インデックス名にはスペースを使用できません。", + "esUi.forms.fieldValidation.indexNameStartsWithDotError": "インデックス名の始めにピリオド(.)は使用できません。", + "esUi.forms.fieldValidation.indexPatternSpacesError": "インデックスパターンにはスペースを使用できません。", + "esUi.formWizard.backButtonLabel": "戻る", + "esUi.formWizard.nextButtonLabel": "次へ", + "esUi.formWizard.saveButtonLabel": "保存", + "esUi.formWizard.savingButtonLabel": "保存中...", + "esUi.validation.string.invalidJSONError": "無効なJSON", + "expressionError.errorComponent.description": "表現が失敗し次のメッセージが返されました:", + "expressionError.errorComponent.title": "おっと!表現が失敗しました", + "expressionError.renderer.debug.displayName": "デバッグ", + "expressionError.renderer.debug.helpDescription": "デバッグアウトプットをフォーマットされた {JSON} としてレンダリングします", + "expressionError.renderer.error.displayName": "エラー情報", + "expressionError.renderer.error.helpDescription": "エラーデータをユーザーにわかるようにレンダリングします", + "expressionImage.functions.image.args.dataurlHelpText": "画像の {https} {URL} または {BASE64} データ {URL} です。", + "expressionImage.functions.image.args.modeHelpText": "{contain} はサイズに合わせて拡大・縮小して画像全体を表示し、{cover} はコンテナーを画像で埋め、必要に応じて両端や下をクロップします。{stretch} は画像の高さと幅をコンテナーの 100% になるよう変更します。", + "expressionImage.functions.image.invalidImageModeErrorMessage": "「mode」は「{contain}」、「{cover}」、または「{stretch}」でなければなりません", + "expressionImage.functions.imageHelpText": "画像を表示します。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", + "expressionImage.renderer.image.displayName": "画像", + "expressionImage.renderer.image.helpDescription": "画像をレンダリングします", + "expressionMetric.functions.metric.args.labelFontHelpText": "ラベルの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", + "expressionMetric.functions.metric.args.labelHelpText": "メトリックを説明するテキストです。", + "expressionMetric.functions.metric.args.metricFontHelpText": "メトリックの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", + "expressionMetric.functions.metric.args.metricFormatHelpText": "{NUMERALJS} 形式の文字列。例:{example1} または {example2}。", + "expressionMetric.functions.metricHelpText": "ラベルの上に数字を表示します。", + "expressionMetric.renderer.metric.displayName": "メトリック", + "expressionMetric.renderer.metric.helpDescription": "ラベルの上に数字をレンダリングします", + "expressionMetricVis.function.bucket.help": "バケットディメンションの構成です。", + "expressionMetricVis.function.colorMode.help": "色を変更するメトリックの部分", + "expressionMetricVis.function.dimension.metric": "メトリック", + "expressionMetricVis.function.dimension.splitGroup": "グループを分割", + "expressionMetricVis.function.font.help": "フォント設定です。", + "expressionMetricVis.function.help": "メトリックビジュアライゼーション", + "expressionMetricVis.function.metric.help": "メトリックディメンションの構成です。", + "expressionMetricVis.function.percentageMode.help": "百分率モードでメトリックを表示します。colorRange を設定する必要があります。", + "expressionMetricVis.function.showLabels.help": "メトリック値の下にラベルを表示します。", + "expressionRepeatImage.error.repeatImage.missingMaxArgument": "{emptyImageArgument} を指定する場合は、{maxArgument} を設定する必要があります", + "expressionRepeatImage.functions.repeatImage.args.emptyImageHelpText": "この画像のエレメントについて、{CONTEXT}および{maxArg}パラメーターの差異を解消します。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", + "expressionRepeatImage.functions.repeatImage.args.imageHelpText": "繰り返す画像です。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", + "expressionRepeatImage.functions.repeatImage.args.maxHelpText": "画像が繰り返される最高回数です。", + "expressionRepeatImage.functions.repeatImage.args.sizeHelpText": "画像の高さまたは幅のピクセル単位での最高値です。画像が縦長の場合、この関数は高さを制限します。", + "expressionRepeatImage.functions.repeatImageHelpText": "繰り返し画像エレメントを構成します。", + "expressionRepeatImage.renderer.repeatImage.displayName": "RepeatImage", + "expressionRepeatImage.renderer.repeatImage.helpDescription": "基本repeatImageを表示", + "expressionRevealImage.functions.revealImage.args.emptyImageHelpText": "表示される背景画像です。画像アセットは「{BASE64}」データ {URL} として提供するか、部分式で渡します。", + "expressionRevealImage.functions.revealImage.args.imageHelpText": "表示する画像です。画像アセットは{BASE64}データ{URL}として提供するか、部分式で渡します。", + "expressionRevealImage.functions.revealImage.args.originHelpText": "画像で埋め始める位置です。たとえば、{list}、または {end}です。", + "expressionRevealImage.functions.revealImage.invalidImageUrl": "無効な画像URL:'{imageUrl}'。", + "expressionRevealImage.functions.revealImage.invalidPercentErrorMessage": "無効な値:「{percent}」。パーセンテージは 0 と 1 の間でなければなりません ", + "expressionRevealImage.functions.revealImageHelpText": "画像表示エレメントを構成します。", + "expressionRevealImage.renderer.revealImage.displayName": "画像の部分表示", + "expressionRevealImage.renderer.revealImage.helpDescription": "カスタムゲージスタイルチャートを作成するため、画像のパーセンテージを表示します", + "expressions.defaultErrorRenderer.errorTitle": "ビジュアライゼーションエラー", + "expressions.execution.functionDisabled": "関数 {fnName} が無効です。", + "expressions.execution.functionNotFound": "関数 {fnName} が見つかりませんでした。", + "expressions.functions.createTable.args.idsHelpText": "位置順序で生成する列ID。IDは行のキーを表します。", + "expressions.functions.createTable.args.nameHelpText": "位置順序で生成する列名。名前は一意でなくてもかまいません。指定しない場合は、デフォルトでIDが使用されます。", + "expressions.functions.createTable.args.rowCountText": "後から値を割り当てられる、テーブルに追加する空の行数。", + "expressions.functions.createTableHelpText": "データテーブルと、列のリスト、1つ以上の空の行を作成します。行を入力するには、{mapColumnFn}または{mathColumnFn}を使用します。", + "expressions.functions.cumulativeSum.args.byHelpText": "累積和計算を分割する列", + "expressions.functions.cumulativeSum.args.inputColumnIdHelpText": "累積和を計算する列", + "expressions.functions.cumulativeSum.args.outputColumnIdHelpText": "結果の累積和を格納する列", + "expressions.functions.cumulativeSum.args.outputColumnNameHelpText": "結果の累積和を格納する列の名前", + "expressions.functions.cumulativeSum.help": "データテーブルの列の累積和を計算します", + "expressions.functions.derivative.args.byHelpText": "微分係数計算を分割する列", + "expressions.functions.derivative.args.inputColumnIdHelpText": "微分係数を計算する列", + "expressions.functions.derivative.args.outputColumnIdHelpText": "結果の微分係数を格納する列", + "expressions.functions.derivative.args.outputColumnNameHelpText": "結果の微分係数を格納する列の名前", + "expressions.functions.derivative.help": "データテーブルの列の微分係数を計算します", + "expressions.functions.font.args.alignHelpText": "水平テキスト配置", + "expressions.functions.font.args.colorHelpText": "文字の色です。", + "expressions.functions.font.args.familyHelpText": "利用可能な{css}ウェブフォント文字列です", + "expressions.functions.font.args.italicHelpText": "テキストを斜体にしますか?", + "expressions.functions.font.args.lHeightHelpText": "ピクセル単位の行の高さです。", + "expressions.functions.font.args.sizeHelpText": "ピクセル単位のフォントサイズです。", + "expressions.functions.font.args.underlineHelpText": "テキストに下線を引きますか?", + "expressions.functions.font.args.weightHelpText": "フォントの重量です。たとえば、{list}、または {end}です。", + "expressions.functions.font.invalidFontWeightErrorMessage": "無効なフォント太さ:'{weight}'", + "expressions.functions.font.invalidTextAlignmentErrorMessage": "無効なテキストアラインメント:'{align}'", + "expressions.functions.fontHelpText": "フォントスタイルを作成します。", + "expressions.functions.mapColumn.args.copyMetaFromHelpText": "設定されている場合、指定した列IDのメタオブジェクトが指定したターゲット列にコピーされます。列が存在しない場合は失敗し、エラーは表示されません。", + "expressions.functions.mapColumn.args.expressionHelpText": "すべての行で実行される式。単一行の{DATATABLE}と一緒に指定され、セル値を返します。", + "expressions.functions.mapColumn.args.idHelpText": "結果列の任意のID。IDが指定されていないときには、指定された名前引数で既存の列からルックアップされます。この名前の列が存在しない場合、この名前と同じIDの新しい列がテーブルに追加されます。", + "expressions.functions.mapColumn.args.nameHelpText": "結果の列の名前です。名前は一意である必要はありません。", + "expressions.functions.mapColumnHelpText": "他の列の結果として計算された列を追加します。引数が指定された場合のみ変更が加えられます。{alterColumnFn}と{staticColumnFn}もご参照ください。", + "expressions.functions.math.args.expressionHelpText": "評価された {TINYMATH} 表現です。{TINYMATH_URL} をご覧ください。", + "expressions.functions.math.args.onErrorHelpText": "{TINYMATH}評価が失敗するか、NaNが返される場合、戻り値はonErrorで指定されます。「'throw'」の場合、例外が発生し、式の実行が終了します(デフォルト)。", + "expressions.functions.math.emptyDatatableErrorMessage": "空のデータベース", + "expressions.functions.math.emptyExpressionErrorMessage": "空の表現", + "expressions.functions.math.executionFailedErrorMessage": "数式の実行に失敗しました。列名を確認してください", + "expressions.functions.math.tooManyResultsErrorMessage": "式は 1 つの数字を返す必要があります。表現を {mean} または {sum} で囲んでみてください", + "expressions.functions.mathColumn.args.copyMetaFromHelpText": "設定されている場合、指定した列IDのメタオブジェクトが指定したターゲット列にコピーされます。列が存在しない場合は失敗し、エラーは表示されません。", + "expressions.functions.mathColumn.args.idHelpText": "結果の列のIDです。一意でなければなりません。", + "expressions.functions.mathColumn.args.nameHelpText": "結果の列の名前です。名前は一意である必要はありません。", + "expressions.functions.mathColumn.arrayValueError": "{name}で配列値に対する演算を実行できません", + "expressions.functions.mathColumn.uniqueIdError": "IDは一意でなければなりません", + "expressions.functions.mathColumnHelpText": "他の列の結果として計算された列を追加します。引数が指定された場合のみ変更が加えられます。{alterColumnFn}と{staticColumnFn}もご参照ください。", + "expressions.functions.mathHelpText": "{TYPE_NUMBER}または{DATATABLE}を{CONTEXT}として使用して、{TINYMATH}数式を解釈します。{DATATABLE}列は列名で表示されます。{CONTEXT}が数字の場合は、{value}と表示されます。", + "expressions.functions.movingAverage.args.byHelpText": "移動平均計算を分割する列", + "expressions.functions.movingAverage.args.inputColumnIdHelpText": "移動平均を計算する列", + "expressions.functions.movingAverage.args.outputColumnIdHelpText": "結果の移動平均を格納する列", + "expressions.functions.movingAverage.args.outputColumnNameHelpText": "結果の移動平均を格納する列の名前", + "expressions.functions.movingAverage.args.windowHelpText": "ヒストグラム全体でスライドするウィンドウのサイズ。", + "expressions.functions.movingAverage.help": "データテーブルの列の移動平均を計算します", + "expressions.functions.overallMetric.args.byHelpText": "全体の計算を分割する列", + "expressions.functions.overallMetric.args.inputColumnIdHelpText": "全体のメトリックを計算する列", + "expressions.functions.overallMetric.args.outputColumnIdHelpText": "結果の全体のメトリックを格納する列", + "expressions.functions.overallMetric.args.outputColumnNameHelpText": "結果の全体のメトリックを格納する列の名前", + "expressions.functions.overallMetric.help": "データテーブルの列の合計値、最小値、最大値、」または平均を計算します", + "expressions.functions.overallMetric.metricHelpText": "計算するメトリック", + "expressions.functions.seriesCalculations.columnConflictMessage": "指定した outputColumnId {columnId} はすでに存在します。別の列 ID を選択してください。", + "expressions.functions.theme.args.defaultHelpText": "テーマ情報がない場合のデフォルト値。", + "expressions.functions.theme.args.variableHelpText": "読み取るテーマ変数名。", + "expressions.functions.themeHelpText": "テーマ設定を読み取ります。", + "expressions.functions.uiSetting.args.default": "パラメーターが設定されていない場合のデフォルト値。", + "expressions.functions.uiSetting.args.parameter": "パラメーター名。", + "expressions.functions.uiSetting.error.kibanaRequest": "サーバーでUI設定を取得するには、KibanaRequest が必要です。式実行パラメーターに要求オブジェクトを渡してください。", + "expressions.functions.uiSetting.error.parameter": "無効なパラメーター\"{parameter}\"です。", + "expressions.functions.uiSetting.help": "UI設定パラメーター値を返します。", + "expressions.functions.var.help": "Kibanaグローバルコンテキストを更新します。", + "expressions.functions.var.name.help": "変数の名前を指定します。", + "expressions.functions.varset.help": "Kibanaグローバルコンテキストを更新します。", + "expressions.functions.varset.name.help": "変数の名前を指定します。", + "expressions.functions.varset.val.help": "変数の値を指定します。指定しないと、入力コンテキストが使用されます。", + "expressions.types.number.fromStringConversionErrorMessage": "\"{string}\" 文字列を数字に変換できません", + "expressionShape.functions.progress.args.barColorHelpText": "背景バーの色です。", + "expressionShape.functions.progress.args.barWeightHelpText": "背景バーの太さです。", + "expressionShape.functions.progress.args.fontHelpText": "ラベルの {CSS} フォントプロパティです。例:{FONT_FAMILY} または {FONT_WEIGHT}。", + "expressionShape.functions.progress.args.labelHelpText": "ラベルの表示・非表示を切り替えるには、{BOOLEAN_TRUE}または{BOOLEAN_FALSE}を使用します。また、ラベルとして表示する文字列を入力することもできます。", + "expressionShape.functions.progress.args.maxHelpText": "進捗エレメントの最高値です。", + "expressionShape.functions.progress.args.shapeHelpText": "{list} または {end} を選択します。", + "expressionShape.functions.progress.args.valueColorHelpText": "進捗バーの色です。", + "expressionShape.functions.progress.args.valueWeightHelpText": "進捗バーの太さです。", + "expressionShape.functions.progress.invalidMaxValueErrorMessage": "無効な {arg} 値:「{max, number}」。「{arg}」は 0 より大きい必要があります", + "expressionShape.functions.progress.invalidValueErrorMessage": "無効な値:「{value, number}」。値は 0 と {max, number} の間でなければなりません", + "expressionShape.functions.progressHelpText": "進捗エレメントを構成します。", + "expressionShape.functions.shape.args.borderHelpText": "図形の外郭の {SVG} カラーです。", + "expressionShape.functions.shape.args.borderWidthHelpText": "境界の太さです。", + "expressionShape.functions.shape.args.fillHelpText": "図形を塗りつぶす {SVG} カラーです。", + "expressionShape.functions.shape.args.maintainAspectHelpText": "図形の元の横縦比を維持しますか?", + "expressionShape.functions.shape.args.shapeHelpText": "図形を選択します。", + "expressionShape.functions.shape.invalidShapeErrorMessage": "無効な値:'{shape}'。このような形状は存在しません。", + "expressionShape.functions.shapeHelpText": "図形を作成します。", + "expressionShape.renderer.progress.displayName": "進捗", + "expressionShape.renderer.progress.helpDescription": "基本進捗状況をレンダリング", + "expressionShape.renderer.shape.displayName": "形状", + "expressionShape.renderer.shape.helpDescription": "基本的な図形をレンダリングします", + "expressionTagcloud.feedbackMessage.tooSmallContainerDescription": "コンテナーが小さすぎてクラウド全体を表示できません。タグが切り取られたか省略されている可能性があります。", + "expressionTagcloud.feedbackMessage.truncatedTagsDescription": "描写時間が長くなるのを防ぐため、タグの数が切り捨てられています。", + "expressionTagcloud.functions.tagcloud.args.bucketHelpText": "バケットディメンションの構成です。", + "expressionTagcloud.functions.tagcloud.args.maxFontSizeHelpText": "最大フォントサイズ", + "expressionTagcloud.functions.tagcloud.args.metricHelpText": "メトリックディメンションの構成です。", + "expressionTagcloud.functions.tagcloud.args.minFontSizeHelpText": "最小フォントサイズ", + "expressionTagcloud.functions.tagcloud.args.orientationHelpText": "タグクラウド内の単語の方向です。", + "expressionTagcloud.functions.tagcloud.args.paletteHelpText": "グラフパレット名を定義します", + "expressionTagcloud.functions.tagcloud.args.scaleHelpText": "単語のフォントサイズを決定するスケールです", + "expressionTagcloud.functions.tagcloud.args.showLabelHelpText": "グラフラベルを表示", + "expressionTagcloud.functions.tagcloud.dimension.tags": "タグ", + "expressionTagcloud.functions.tagcloud.dimension.tagSize": "タグサイズ", + "expressionTagcloud.functions.tagcloud.invalidImageUrl": "無効な画像URL:'{imageUrl}'。", + "expressionTagcloud.functions.tagcloud.invalidPercentErrorMessage": "無効な値:「{percent}」。パーセンテージは 0 と 1 の間でなければなりません ", + "expressionTagcloud.functions.tagcloudHelpText": "Tagcloudのビジュアライゼーションです。", + "expressionTagcloud.renderer.tagcloud.displayName": "Tag Cloudのビジュアライゼーションです", + "expressionTagcloud.renderer.tagcloud.helpDescription": "Tag Cloudを表示", + "fieldFormats.advancedSettings.format.bytesFormat.numeralFormatLinkText": "数字フォーマット", + "fieldFormats.advancedSettings.format.bytesFormatText": "「バイト」フォーマットのデフォルト{numeralFormatLink}です", + "fieldFormats.advancedSettings.format.bytesFormatTitle": "バイトフォーマット", + "fieldFormats.advancedSettings.format.currencyFormat.numeralFormatLinkText": "数字フォーマット", + "fieldFormats.advancedSettings.format.currencyFormatText": "「通貨」フォーマットのデフォルト{numeralFormatLink}です", + "fieldFormats.advancedSettings.format.currencyFormatTitle": "通貨フォーマット", + "fieldFormats.advancedSettings.format.defaultTypeMapText": "各フィールドタイプにデフォルトで使用するフォーマット名のマップです。フィールドタイプが特に指定されていない場合は {defaultFormat} が使用されます", + "fieldFormats.advancedSettings.format.defaultTypeMapTitle": "フィールドタイプフォーマット名", + "fieldFormats.advancedSettings.format.formattingLocale.numeralLanguageLinkText": "数字言語", + "fieldFormats.advancedSettings.format.formattingLocaleText": "{numeralLanguageLink} locale", + "fieldFormats.advancedSettings.format.formattingLocaleTitle": "フォーマットロケール", + "fieldFormats.advancedSettings.format.numberFormat.numeralFormatLinkText": "数字フォーマット", + "fieldFormats.advancedSettings.format.numberFormatText": "「数字」フォーマットのデフォルト{numeralFormatLink}です", + "fieldFormats.advancedSettings.format.numberFormatTitle": "数字フォーマット", + "fieldFormats.advancedSettings.format.percentFormat.numeralFormatLinkText": "数字フォーマット", + "fieldFormats.advancedSettings.format.percentFormatText": "「パーセント」フォーマットのデフォルト{numeralFormatLink}です", + "fieldFormats.advancedSettings.format.percentFormatTitle": "パーセントフォーマット", + "fieldFormats.advancedSettings.shortenFieldsText": "長いフィールドを短くします。例:foo.bar.bazの代わりにf.b.bazと表示", + "fieldFormats.advancedSettings.shortenFieldsTitle": "フィールドの短縮", + "fieldFormats.boolean.title": "ブール", + "fieldFormats.bytes.title": "バイト", + "fieldFormats.color.title": "色", + "fieldFormats.date_nanos.title": "日付ナノ", + "fieldFormats.date.title": "日付", + "fieldFormats.duration.inputFormats.days": "日", + "fieldFormats.duration.inputFormats.hours": "時間", + "fieldFormats.duration.inputFormats.microseconds": "マイクロ秒", + "fieldFormats.duration.inputFormats.milliseconds": "ミリ秒", + "fieldFormats.duration.inputFormats.minutes": "分", + "fieldFormats.duration.inputFormats.months": "か月", + "fieldFormats.duration.inputFormats.nanoseconds": "ナノ秒", + "fieldFormats.duration.inputFormats.picoseconds": "ピコ秒", + "fieldFormats.duration.inputFormats.seconds": "秒", + "fieldFormats.duration.inputFormats.weeks": "週間", + "fieldFormats.duration.inputFormats.years": "年", + "fieldFormats.duration.negativeLabel": "マイナス", + "fieldFormats.duration.outputFormats.asDays": "日", + "fieldFormats.duration.outputFormats.asDays.short": "d", + "fieldFormats.duration.outputFormats.asHours": "時間", + "fieldFormats.duration.outputFormats.asHours.short": "h", + "fieldFormats.duration.outputFormats.asMilliseconds": "ミリ秒", + "fieldFormats.duration.outputFormats.asMilliseconds.short": "ms", + "fieldFormats.duration.outputFormats.asMinutes": "分", + "fieldFormats.duration.outputFormats.asMinutes.short": "分", + "fieldFormats.duration.outputFormats.asMonths": "か月", + "fieldFormats.duration.outputFormats.asMonths.short": "mon", + "fieldFormats.duration.outputFormats.asSeconds": "秒", + "fieldFormats.duration.outputFormats.asSeconds.short": "s", + "fieldFormats.duration.outputFormats.asWeeks": "週間", + "fieldFormats.duration.outputFormats.asWeeks.short": "w", + "fieldFormats.duration.outputFormats.asYears": "年", + "fieldFormats.duration.outputFormats.asYears.short": "y", + "fieldFormats.duration.outputFormats.humanize.approximate": "人間が読み取り可能(近似値)", + "fieldFormats.duration.outputFormats.humanize.precise": "人間が読み取り可能(正確な値)", + "fieldFormats.duration.title": "期間", + "fieldFormats.histogram.title": "ヒストグラム", + "fieldFormats.ip.title": "IP アドレス", + "fieldFormats.number.title": "数字", + "fieldFormats.percent.title": "割合(%)", + "fieldFormats.relative_date.title": "相対日付", + "fieldFormats.static_lookup.title": "静的ルックアップ", + "fieldFormats.string.emptyLabel": "(空)", + "fieldFormats.string.title": "文字列", + "fieldFormats.string.transformOptions.base64": "Base64 デコード", + "fieldFormats.string.transformOptions.lower": "小文字", + "fieldFormats.string.transformOptions.none": "- なし -", + "fieldFormats.string.transformOptions.short": "短い点線", + "fieldFormats.string.transformOptions.title": "タイトルケース", + "fieldFormats.string.transformOptions.upper": "大文字", + "fieldFormats.string.transformOptions.url": "URL パラメーターデコード", + "fieldFormats.truncated_string.title": "切り詰めた文字列", + "fieldFormats.url.title": "Url", + "fieldFormats.url.types.audio": "音声", + "fieldFormats.url.types.img": "画像", + "fieldFormats.url.types.link": "リンク", + "flot.pie.unableToDrawLabelsInsideCanvasErrorMessage": "キャンバス内のラベルではパイを作成できません", + "flot.time.aprLabel": "4 月", + "flot.time.augLabel": "8 月", + "flot.time.decLabel": "12 月", + "flot.time.febLabel": "2 月", + "flot.time.friLabel": "金", + "flot.time.janLabel": "1月", + "flot.time.julLabel": "7月", + "flot.time.junLabel": "6 月", + "flot.time.marLabel": "3 月", + "flot.time.mayLabel": "5月", + "flot.time.monLabel": "月", + "flot.time.novLabel": "11月", + "flot.time.octLabel": "10 月", + "flot.time.satLabel": "土", + "flot.time.sepLabel": "9月", + "flot.time.sunLabel": "日", + "flot.time.thuLabel": "木", + "flot.time.tueLabel": "火", + "flot.time.wedLabel": "水", + "home.addData.addDataButtonLabel": "統合の追加", + "home.addData.sampleDataButtonLabel": "サンプルデータを試す", + "home.addData.sectionTitle": "統合を追加して開始する", + "home.addData.text": "データの操作を開始するには、多数の取り込みオプションのいずれかを使用します。アプリまたはサービスからデータを収集するか、ファイルをアップロードします。独自のデータを使用する準備ができていない場合は、サンプルデータセットを追加してください。", + "home.breadcrumbs.homeTitle": "ホーム", + "home.breadcrumbs.integrationsAppTitle": "統合", + "home.dataManagementDisableCollection": " 収集を停止するには、", + "home.dataManagementDisableCollectionLink": "ここで使用状況データを無効にします。", + "home.dataManagementDisclaimerPrivacy": "使用状況データがどのように製品とサービスの管理と改善につながるのかに関する詳細については ", + "home.dataManagementDisclaimerPrivacyLink": "プライバシーポリシーをご覧ください。", + "home.dataManagementEnableCollection": " 収集を開始するには、", + "home.dataManagementEnableCollectionLink": "ここで使用状況データを有効にします。", + "home.exploreButtonLabel": "独りで閲覧", + "home.exploreYourDataDescription": "すべてのステップを終えたら、データ閲覧準備の完了です。", + "home.header.title": "ようこそホーム", + "home.letsStartDescription": "任意のソースからクラスターにデータを追加して、リアルタイムでデータを分析して可視化します。当社のソリューションを使用すれば、どこからでも検索を追加し、エコシステムを監視して、セキュリティの脅威から保護することができます。", + "home.letsStartTitle": "統合を追加して開始する", + "home.loadTutorials.requestFailedErrorMessage": "リクエスト失敗、ステータスコード:{status}", + "home.loadTutorials.unableToLoadErrorMessage": "チュートリアルが読み込めません。", + "home.manageData.devToolsButtonLabel": "開発ツール", + "home.manageData.sectionTitle": "管理", + "home.manageData.stackManagementButtonLabel": "スタック管理", + "home.pageTitle": "ホーム", + "home.recentlyAccessed.recentlyViewedTitle": "最近閲覧", + "home.sampleData.customIntegrationsDescription": "これらの「ワンクリック」データセットを使用して、Kibanaでデータを探索します。", + "home.sampleData.customIntegrationsTitle": "サンプルデータ", + "home.sampleData.ecommerceSpec.ordersTitle": "[e コマース] 注文", + "home.sampleData.ecommerceSpec.promotionTrackingTitle": "[e コマース] プロモーショントラッキング", + "home.sampleData.ecommerceSpec.revenueDashboardDescription": "サンプルの e コマースの注文と収益を分析します", + "home.sampleData.ecommerceSpec.revenueDashboardTitle": "[e コマース] 収益ダッシュボード", + "home.sampleData.ecommerceSpec.soldProductsPerDayTitle": "[e コマース] 1 日の販売製品", + "home.sampleData.ecommerceSpecDescription": "e コマースの注文をトラッキングするサンプルデータ、ビジュアライゼーション、ダッシュボードです。", + "home.sampleData.ecommerceSpecTitle": "サンプル e コマース注文", + "home.sampleData.flightsSpec.airportConnectionsTitle": "[フライト] 空港乗り継ぎ(空港にカーソルを合わせてください)", + "home.sampleData.flightsSpec.delayBucketsTitle": "[フライト] 遅延バケット", + "home.sampleData.flightsSpec.delaysAndCancellationsTitle": "[フライト] 遅延・欠航", + "home.sampleData.flightsSpec.departuresCountMapTitle": "[フライト] 出発カウントマップ", + "home.sampleData.flightsSpec.destinationWeatherTitle": "[フライト] 目的地の天候", + "home.sampleData.flightsSpec.flightLogTitle": "[フライト] 飛行記録", + "home.sampleData.flightsSpec.globalFlightDashboardDescription": "ES-Air、Logstash Airways、Kibana Airlines、JetBeats のサンプル飛行データを分析します", + "home.sampleData.flightsSpec.globalFlightDashboardTitle": "[フライト] グローバルフライトダッシュボード", + "home.sampleData.flightsSpecDescription": "飛行ルートを監視するサンプルデータ、ビジュアライゼーション、ダッシュボードです。", + "home.sampleData.flightsSpecTitle": "サンプル飛行データ", + "home.sampleData.logsSpec.bytesDistributionTitle": "[Logs]バイト分布", + "home.sampleData.logsSpec.discoverTitle": "[Logs]訪問", + "home.sampleData.logsSpec.goalsTitle": "[ログ] 目標", + "home.sampleData.logsSpec.heatmapTitle": "[Logs] 一意の目的地ヒートマップ", + "home.sampleData.logsSpec.hostVisitsBytesTableTitle": "[ログ] ホスト、訪問数、バイト表", + "home.sampleData.logsSpec.responseCodesOverTimeTitle": "[ログ] 一定期間の応答コードと注釈", + "home.sampleData.logsSpec.sourceAndDestinationSankeyChartTitle": "[Logs] コンピューターOSと目的値サンキーダイアグラム", + "home.sampleData.logsSpec.visitorsMapTitle": "[ログ] ビジターマップ", + "home.sampleData.logsSpec.webTrafficDescription": "Elastic Web サイトのサンプル Webトラフィックログデータを分析します", + "home.sampleData.logsSpec.webTrafficTitle": "[ログ] Web トラフィック", + "home.sampleData.logsSpecDescription": "Web ログを監視するサンプルデータ、ビジュアライゼーション、ダッシュボードです。", + "home.sampleData.logsSpecTitle": "サンプル Web ログ", + "home.sampleDataSet.installedLabel": "{name} がインストールされました", + "home.sampleDataSet.unableToInstallErrorMessage": "サンプルデータセット「{name}」をインストールできません", + "home.sampleDataSet.unableToLoadListErrorMessage": "サンプルデータセットのリストを読み込めません", + "home.sampleDataSet.unableToUninstallErrorMessage": "サンプルデータセット「{name}」をアンインストールできません", + "home.sampleDataSet.uninstalledLabel": "{name} がアンインストールされました", + "home.sampleDataSetCard.addButtonAriaLabel": "{datasetName} を追加", + "home.sampleDataSetCard.addButtonLabel": "データの追加", + "home.sampleDataSetCard.addingButtonAriaLabel": "{datasetName} を追加", + "home.sampleDataSetCard.addingButtonLabel": "追加中", + "home.sampleDataSetCard.dashboardLinkLabel": "ダッシュボード", + "home.sampleDataSetCard.default.addButtonAriaLabel": "{datasetName} を追加", + "home.sampleDataSetCard.default.addButtonLabel": "データの追加", + "home.sampleDataSetCard.default.unableToVerifyErrorMessage": "データセットステータスを確認できません、エラー:{statusMsg}", + "home.sampleDataSetCard.removeButtonAriaLabel": "{datasetName} を削除", + "home.sampleDataSetCard.removeButtonLabel": "削除", + "home.sampleDataSetCard.removingButtonAriaLabel": "{datasetName} を削除中", + "home.sampleDataSetCard.removingButtonLabel": "削除中", + "home.sampleDataSetCard.viewDataButtonAriaLabel": "{datasetName} を表示", + "home.sampleDataSetCard.viewDataButtonLabel": "データを表示", + "home.solutionsSection.sectionTitle": "ソリューションを選択", + "home.tryButtonLabel": "統合の追加", + "home.tutorial.addDataToKibanaDescription": "{integrationsLink}を追加するほかに、サンプルデータを試したり、独自のデータをアップロードしたりできます。", + "home.tutorial.addDataToKibanaDescription.integrations": "統合", + "home.tutorial.addDataToKibanaTitle": "データを追加するその他の方法", + "home.tutorial.backToDirectory": "ディレクトリに戻る", + "home.tutorial.card.sampleDataDescription": "これらの「ワンクリック」データセットで Kibana の探索を始めましょう。", + "home.tutorial.card.sampleDataTitle": "サンプルデータ", + "home.tutorial.elasticCloudButtonLabel": "Elastic Cloud", + "home.tutorial.instruction_variant.fleet": "FleetのElastic APM", + "home.tutorial.instructionSet.checkStatusButtonLabel": "ステータスを確認", + "home.tutorial.instructionSet.customizeLabel": "コードスニペットのカスタマイズ", + "home.tutorial.instructionSet.noDataLabel": "データが見つかりません", + "home.tutorial.instructionSet.statusCheckTitle": "ステータス確認", + "home.tutorial.instructionSet.successLabel": "成功", + "home.tutorial.introduction.betaLabel": "ベータ", + "home.tutorial.introduction.imageAltDescription": "プライマリダッシュボードのスクリーンショット。", + "home.tutorial.introduction.viewButtonLabel": "エクスポートされたフィールドを表示", + "home.tutorial.noTutorialLabel": "チュートリアル {tutorialId} が見つかりません", + "home.tutorial.savedObject.addedLabel": "{savedObjectsLength} 件の保存されたオブジェクトが追加されました", + "home.tutorial.savedObject.confirmButtonLabel": "上書きを確定", + "home.tutorial.savedObject.defaultButtonLabel": "Kibana オブジェクトを読み込む", + "home.tutorial.savedObject.installLabel": "インデックスパターン、ビジュアライゼーション、事前定義済みのダッシュボードをインポートします。", + "home.tutorial.savedObject.installStatusLabel": "{savedObjectsLength} オブジェクトの {overwriteErrorsLength} がすでに存在します。インポートして既存のオブジェクトを上書きするには、「上書きを確定」をクリックしてください。オブジェクトへの変更はすべて失われます。", + "home.tutorial.savedObject.loadTitle": "Kibana オブジェクトを読み込む", + "home.tutorial.savedObject.requestFailedErrorMessage": "リクエスト失敗、エラー:{message}", + "home.tutorial.savedObject.unableToAddErrorMessage": "{savedObjectsLength} 件中 {errorsLength} 件の kibana オブジェクトが追加できません。エラー:{errorMessage}", + "home.tutorial.selectionLegend": "デプロイタイプ", + "home.tutorial.selfManagedButtonLabel": "自己管理", + "home.tutorial.tabs.sampleDataTitle": "サンプルデータ", + "home.tutorial.unexpectedStatusCheckStateErrorDescription": "予期せぬステータス確認ステータス {statusCheckState}", + "home.tutorial.unhandledInstructionTypeErrorDescription": "予期せぬ指示タイプ {visibleInstructions}", + "home.tutorialDirectory.featureCatalogueDescription": "一般的なアプリやサービスからデータを取り込みます。", + "home.tutorialDirectory.featureCatalogueTitle": "データの追加", + "home.tutorials.activemqLogs.artifacts.dashboards.linkLabel": "ActiveMQ 監査イベント", + "home.tutorials.activemqLogs.longDescription": "Filebeat で ActiveMQ ログを収集します。[詳細]({learnMoreLink})", + "home.tutorials.activemqLogs.nameTitle": "ActiveMQログ", + "home.tutorials.activemqLogs.shortDescription": "Filebeatを使用してActiveMQからログを収集して解析します。", + "home.tutorials.activemqMetrics.artifacts.application.label": "Discover", + "home.tutorials.activemqMetrics.longDescription": "Metricbeat モジュール「activemq」は、ActiveMQ インスタンスからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.activemqMetrics.nameTitle": "ActiveMQメトリック", + "home.tutorials.activemqMetrics.shortDescription": "Metricbeatを使用してActiveMQからメトリックを収集します。", + "home.tutorials.aerospikeMetrics.artifacts.application.label": "Discover", + "home.tutorials.aerospikeMetrics.longDescription": "Metricbeat モジュール「aerospike」は、Aerospike からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.aerospikeMetrics.nameTitle": "Aerospikeメトリック", + "home.tutorials.aerospikeMetrics.shortDescription": "Aerospikeを使用してuWSGIサーバーからメトリックを収集します。", + "home.tutorials.apacheLogs.artifacts.dashboards.linkLabel": "Apache ログダッシュボード", + "home.tutorials.apacheLogs.longDescription": "apache Filebeat モジュールが、Apache 2 HTTP サーバーにより作成されたアクセスとエラーのログをパースします。[詳細]({learnMoreLink})。", + "home.tutorials.apacheLogs.nameTitle": "Apache HTTPサーバーログ", + "home.tutorials.apacheLogs.shortDescription": "Filebeatを使用してApache HTTPサーバーからログを収集して解析します。", + "home.tutorials.apacheMetrics.artifacts.dashboards.linkLabel": "Apache メトリックダッシュボード", + "home.tutorials.apacheMetrics.longDescription": "Metricbeat モジュール「apache」は、Apache 2 HTTP サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.apacheMetrics.nameTitle": "Apache HTTPサーバーメトリック", + "home.tutorials.apacheMetrics.shortDescription": "Metricbeatを使用してApache HTTPサーバーからメトリックを収集します。", + "home.tutorials.auditbeat.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.auditbeat.longDescription": "Auditbeat を使用してホストから監査データを収集します。これらにはプロセス、ユーザー、ログイン、ソケット情報、ファイルアクセス、その他が含まれます。[詳細]({learnMoreLink})。", + "home.tutorials.auditbeat.nameTitle": "Auditbeatイベント", + "home.tutorials.auditbeat.shortDescription": "Auditbeatを使用してサーバーからイベントを収集します。", + "home.tutorials.auditdLogs.artifacts.dashboards.linkLabel": "監査イベント", + "home.tutorials.auditdLogs.longDescription": "モジュールは監査デーモン(「auditd」)からログを収集して解析します。[詳細]({learnMoreLink})。", + "home.tutorials.auditdLogs.nameTitle": "Auditdログ", + "home.tutorials.auditdLogs.shortDescription": "Filebeatを使用してLinux監査デーモンからログを収集して解析します。", + "home.tutorials.awsLogs.artifacts.dashboards.linkLabel": "AWS S3 サーバーアクセスログダッシュボード", + "home.tutorials.awsLogs.longDescription": "SQS 通知設定されている S3 バケットに AWS ログをエクスポートすることで、AWS ログを収集します。[詳細]({learnMoreLink})。", + "home.tutorials.awsLogs.nameTitle": "AWS S3ベースのログ", + "home.tutorials.awsLogs.shortDescription": "Filebeatを使用してAWS S3バケットからログを収集して解析します。", + "home.tutorials.awsMetrics.artifacts.dashboards.linkLabel": "AWS メトリックダッシュボード", + "home.tutorials.awsMetrics.longDescription": "Metricbeat モジュール「aws」は、AWS API と Cloudwatch からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.awsMetrics.nameTitle": "AWSメトリック", + "home.tutorials.awsMetrics.shortDescription": "Metricbeatを使用してAWS API と Cloudwatch からの EC2 インスタンスメトリックを収集します。", + "home.tutorials.azureLogs.artifacts.dashboards.linkLabel": "Apacheログダッシュボード", + "home.tutorials.azureLogs.longDescription": "「azure」Filebeatモジュールは、Azureアクティビティと監査関連ログを収集します。[詳細]({learnMoreLink})。", + "home.tutorials.azureLogs.nameTitle": "Azureログ", + "home.tutorials.azureLogs.shortDescription": "Filebeatを使用してAzureからログを収集して解析します。", + "home.tutorials.azureMetrics.artifacts.dashboards.linkLabel": "Apacheメトリックダッシュボード", + "home.tutorials.azureMetrics.longDescription": "Metricbeat モジュール「azure」は、Azure から監視メトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.azureMetrics.nameTitle": "Azureメトリック", + "home.tutorials.azureMetrics.shortDescription": "Metricbeatを使用してAzureからメトリックを収集します。", + "home.tutorials.barracudaLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.barracudaLogs.longDescription": "これは、Syslog またはファイルで Barracuda Web Application Firewall ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.barracudaLogs.nameTitle": "Barracudaログ", + "home.tutorials.barracudaLogs.shortDescription": "Filebeatを使用してBarracuda Webアプリケーションファイアウォールからログを収集して解析します。", + "home.tutorials.bluecoatLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.bluecoatLogs.longDescription": "これは、Syslog またはファイルで Blue Coat Director ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.bluecoatLogs.nameTitle": "Blue Coatログ", + "home.tutorials.bluecoatLogs.shortDescription": "Filebeatを使用してBlue Coat Directorからログを収集して解析します。", + "home.tutorials.cefLogs.artifacts.dashboards.linkLabel": "CEF ネットワーク概要ダッシュボード", + "home.tutorials.cefLogs.longDescription": "これは Syslog で Common Event Format(CEF)データを受信するためのモジュールです。Syslog プロトコルでメッセージが受信されると、Syslog 入力がヘッダーを解析し、タイムスタンプ値を設定します。次に、プロセッサーが適用され、CEF エンコードデータを解析します。デコードされたデータは「cef」オブジェクトフィールドに書き込まれます。CEF データを入力できるすべての Elastic Common Schema(ECS)フィールドが入力されます。[詳細]({learnMoreLink})。", + "home.tutorials.cefLogs.nameTitle": "CEFログ", + "home.tutorials.cefLogs.shortDescription": "Filebeatを使用してCommon Event Format (CEF)からログを収集して解析します。", + "home.tutorials.cephMetrics.artifacts.application.label": "Discover", + "home.tutorials.cephMetrics.longDescription": "Metricbeat モジュール「ceph」は、Cephからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.cephMetrics.nameTitle": "Cephメトリック", + "home.tutorials.cephMetrics.shortDescription": "Metricbeatを使用してCephサーバーからメトリックを収集します。", + "home.tutorials.checkpointLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.checkpointLogs.longDescription": "これは Check Point ファイアウォールログ用のモジュールです。Syslog 形式の Log Exporter からのログをサポートします。[詳細]({learnMoreLink})。", + "home.tutorials.checkpointLogs.nameTitle": "Check Pointログ", + "home.tutorials.checkpointLogs.shortDescription": "Filebeatを使用してCheck Pointファイアウォールからログを収集して解析します。", + "home.tutorials.ciscoLogs.artifacts.dashboards.linkLabel": "ASA ファイアウォールダッシュボード", + "home.tutorials.ciscoLogs.longDescription": "これは Cisco ネットワークデバイスのログ用のモジュールです(ASA、FTD、IOS、Nexus)。Syslog のログまたはファイルから読み取られたログを受信するための次のファイルセットが含まれます。[詳細]({learnMoreLink})。", + "home.tutorials.ciscoLogs.nameTitle": "Ciscoログ", + "home.tutorials.ciscoLogs.shortDescription": "Filebeatを使用してCiscoネットワークデバイスからログを収集して解析します。", + "home.tutorials.cloudwatchLogs.longDescription": "Functionbeat を AWS Lambda 関数として実行するようデプロイし、Cloudwatch ログを収集します。[詳細({learnMoreLink})。", + "home.tutorials.cloudwatchLogs.nameTitle": "AWS Cloudwatchログ", + "home.tutorials.cloudwatchLogs.shortDescription": "Functionbeatを使用してAWS Cloudwatchからログを収集して解析します。", + "home.tutorials.cockroachdbMetrics.artifacts.dashboards.linkLabel": "CockroachDB メトリックダッシュボード", + "home.tutorials.cockroachdbMetrics.longDescription": "Metricbeat モジュール「cockroachdb」は、CockroachDB からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.cockroachdbMetrics.nameTitle": "CockroachDB Metrics", + "home.tutorials.cockroachdbMetrics.shortDescription": "Metricbeatを使用してCockroachDBサーバーからメトリックを収集します。", + "home.tutorials.common.auditbeat.cloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.auditbeat.premCloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.auditbeat.premInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.auditbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.auditbeatCloudInstructions.config.debTitle": "構成を編集する", + "home.tutorials.common.auditbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.auditbeatCloudInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.auditbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.auditbeatCloudInstructions.config.rpmTitle": "構成を編集する", + "home.tutorials.common.auditbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.auditbeatCloudInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.auditbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.auditbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.auditbeatInstructions.config.debTitle": "構成を編集する", + "home.tutorials.common.auditbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.auditbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.auditbeatInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.auditbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.auditbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.auditbeatInstructions.config.rpmTitle": "構成を編集する", + "home.tutorials.common.auditbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.auditbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.auditbeatInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.auditbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", + "home.tutorials.common.auditbeatInstructions.install.debTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", + "home.tutorials.common.auditbeatInstructions.install.debTitle": "Auditbeat のダウンロードとインストール", + "home.tutorials.common.auditbeatInstructions.install.osxTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", + "home.tutorials.common.auditbeatInstructions.install.osxTitle": "Auditbeat のダウンロードとインストール", + "home.tutorials.common.auditbeatInstructions.install.rpmTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", + "home.tutorials.common.auditbeatInstructions.install.rpmTextPre": "Auditbeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", + "home.tutorials.common.auditbeatInstructions.install.rpmTitle": "Auditbeat のダウンロードとインストール", + "home.tutorials.common.auditbeatInstructions.install.windowsTextPost": "{auditbeatPath} ファイルの {propertyName} を Elasticsearch のインストールに設定します。", + "home.tutorials.common.auditbeatInstructions.install.windowsTextPre": "Auditbeatは初めてですか?[クイックスタート]({guideLinkUrl})を参照してください。\n 1.[ダウンロード]({auditbeatLinkUrl})ページからAuditbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName}」ディレクトリの名前を「Auditbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Auditbeat を Windows サービスとしてインストールします。", + "home.tutorials.common.auditbeatInstructions.install.windowsTitle": "Auditbeat のダウンロードとインストール", + "home.tutorials.common.auditbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.auditbeatInstructions.start.debTitle": "Auditbeat を起動", + "home.tutorials.common.auditbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.auditbeatInstructions.start.osxTitle": "Auditbeat を起動", + "home.tutorials.common.auditbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.auditbeatInstructions.start.rpmTitle": "Auditbeat を起動", + "home.tutorials.common.auditbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.auditbeatInstructions.start.windowsTitle": "Auditbeat を起動", + "home.tutorials.common.auditbeatStatusCheck.buttonLabel": "データを確認してください", + "home.tutorials.common.auditbeatStatusCheck.errorText": "まだデータを受信していません", + "home.tutorials.common.auditbeatStatusCheck.successText": "データを受信しました", + "home.tutorials.common.auditbeatStatusCheck.text": "Auditbeat からデータを受け取ったことを確認してください。", + "home.tutorials.common.auditbeatStatusCheck.title": "ステータス", + "home.tutorials.common.cloudInstructions.passwordAndResetLink": "{passwordTemplate}が「Elastic」ユーザーのパスワードです。\\{#config.cloud.profileUrl\\}\n パスワードを忘れた場合[Elastic Cloudでリセット](\\{config.cloud.baseUrl\\}\\{config.cloud.profileUrl\\})。\n \\{/config.cloud.profileUrl\\}", + "home.tutorials.common.filebeat.cloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.filebeat.premCloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.filebeat.premInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.filebeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.filebeatCloudInstructions.config.debTitle": "構成を編集する", + "home.tutorials.common.filebeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.filebeatCloudInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.filebeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.filebeatCloudInstructions.config.rpmTitle": "構成を編集する", + "home.tutorials.common.filebeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.filebeatCloudInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.filebeatEnableInstructions.debTextPost": "「/etc/filebeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", + "home.tutorials.common.filebeatEnableInstructions.debTitle": "{moduleName} モジュールを有効にし構成します", + "home.tutorials.common.filebeatEnableInstructions.osxTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", + "home.tutorials.common.filebeatEnableInstructions.osxTextPre": "インストールディレクトリから次のファイルを実行します:", + "home.tutorials.common.filebeatEnableInstructions.osxTitle": "{moduleName} モジュールを有効にし構成します", + "home.tutorials.common.filebeatEnableInstructions.rpmTextPost": "「/etc/filebeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", + "home.tutorials.common.filebeatEnableInstructions.rpmTitle": "{moduleName} モジュールを有効にし構成します", + "home.tutorials.common.filebeatEnableInstructions.windowsTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", + "home.tutorials.common.filebeatEnableInstructions.windowsTextPre": "「{path}」フォルダから次のファイルを実行します:", + "home.tutorials.common.filebeatEnableInstructions.windowsTitle": "{moduleName} モジュールを有効にし構成します", + "home.tutorials.common.filebeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.filebeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.filebeatInstructions.config.debTitle": "構成を編集する", + "home.tutorials.common.filebeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.filebeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.filebeatInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.filebeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.filebeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.filebeatInstructions.config.rpmTitle": "構成を編集する", + "home.tutorials.common.filebeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.filebeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.filebeatInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.filebeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", + "home.tutorials.common.filebeatInstructions.install.debTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", + "home.tutorials.common.filebeatInstructions.install.debTitle": "Filebeat のダウンロードとインストール", + "home.tutorials.common.filebeatInstructions.install.osxTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", + "home.tutorials.common.filebeatInstructions.install.osxTitle": "Filebeat のダウンロードとインストール", + "home.tutorials.common.filebeatInstructions.install.rpmTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({linkUrl})をご覧ください。", + "home.tutorials.common.filebeatInstructions.install.rpmTextPre": "Filebeatは初めてですか?[クイックスタート]({linkUrl})を参照してください。", + "home.tutorials.common.filebeatInstructions.install.rpmTitle": "Filebeat のダウンロードとインストール", + "home.tutorials.common.filebeatInstructions.install.windowsTextPost": "{filebeatPath} ファイルの {propertyName} を Elasticsearch のインストールに設定します。", + "home.tutorials.common.filebeatInstructions.install.windowsTextPre": "Filebeatは初めてですか?[クイックスタート]({guideLinkUrl})を参照してください。\n 1.[ダウンロード]({filebeatLinkUrl})ページからAuditbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName}」ディレクトリの名前を「Filebeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Filebeat を Windows サービスとしてインストールします。", + "home.tutorials.common.filebeatInstructions.install.windowsTitle": "Filebeat のダウンロードとインストール", + "home.tutorials.common.filebeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.filebeatInstructions.start.debTitle": "Filebeat を起動します", + "home.tutorials.common.filebeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.filebeatInstructions.start.osxTitle": "Filebeat を起動します", + "home.tutorials.common.filebeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.filebeatInstructions.start.rpmTitle": "Filebeat を起動します", + "home.tutorials.common.filebeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.filebeatInstructions.start.windowsTitle": "Filebeat を起動", + "home.tutorials.common.filebeatStatusCheck.buttonLabel": "データを確認してください", + "home.tutorials.common.filebeatStatusCheck.errorText": "モジュールからまだデータを受け取っていません", + "home.tutorials.common.filebeatStatusCheck.successText": "このモジュールからデータを受け取りました", + "home.tutorials.common.filebeatStatusCheck.text": "Filebeat の「{moduleName}」モジュールからデータを受け取ったことを確認してください。", + "home.tutorials.common.filebeatStatusCheck.title": "モジュールステータス", + "home.tutorials.common.functionbeat.cloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.functionbeat.premCloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.functionbeat.premInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.functionbeatAWSInstructions.textPost": "「<your-access-key>」と「<your-secret-access-key>」がアカウント資格情報、「us-east-1」がご希望の地域です。", + "home.tutorials.common.functionbeatAWSInstructions.textPre": "環境で AWS アカウント認証情報を設定します。", + "home.tutorials.common.functionbeatAWSInstructions.title": "AWS 認証情報の設定", + "home.tutorials.common.functionbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.functionbeatCloudInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.functionbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.functionbeatCloudInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.functionbeatEnableOnPremInstructions.defaultTextPost": "「<cloudwatch-log-group>」が投入するロググループの名前で、「<unique-bucket-name>」が Functionbeat デプロイのステージングに使用されるが有効な S3 バケット名です。", + "home.tutorials.common.functionbeatEnableOnPremInstructions.defaultTitle": "Cloudwatch ロググループの構成", + "home.tutorials.common.functionbeatEnableOnPremInstructionsOSXLinux.textPre": "「functionbeat.yml」ファイルで設定を変更します。", + "home.tutorials.common.functionbeatEnableOnPremInstructionsWindows.textPre": "{path} ファイルで設定を変更します。", + "home.tutorials.common.functionbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.functionbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.functionbeatInstructions.config.osxTitle": "Elastic クラスターの構成", + "home.tutorials.common.functionbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.functionbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.functionbeatInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.functionbeatInstructions.deploy.osxTextPre": "これにより Functionbeat が Lambda 関数としてインストールされます「setup」コマンドで Elasticsearch の構成を確認し、Kibana インデックスパターンを読み込みます。通常このコマンドを省いても大丈夫です。", + "home.tutorials.common.functionbeatInstructions.deploy.osxTitle": "Functionbeat を AWS Lambda にデプロイ", + "home.tutorials.common.functionbeatInstructions.deploy.windowsTextPre": "これにより Functionbeat が Lambda 関数としてインストールされます「setup」コマンドで Elasticsearch の構成を確認し、Kibana インデックスパターンを読み込みます。通常このコマンドを省いても大丈夫です。", + "home.tutorials.common.functionbeatInstructions.deploy.windowsTitle": "Functionbeat を AWS Lambda にデプロイ", + "home.tutorials.common.functionbeatInstructions.install.linuxTextPre": "Functionbeatは初めてですか?[クイックスタート]({link})を参照してください。", + "home.tutorials.common.functionbeatInstructions.install.linuxTitle": "Functionbeat のダウンロードとインストール", + "home.tutorials.common.functionbeatInstructions.install.osxTextPre": "Functionbeatは初めてですか?[クイックスタート]({link})を参照してください。", + "home.tutorials.common.functionbeatInstructions.install.osxTitle": "Functionbeat のダウンロードとインストール", + "home.tutorials.common.functionbeatInstructions.install.windowsTextPre": "Functionbeatは初めてですか?[クイックスタート]({functionbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからFunctionbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName} ディレクトリの名前を「Functionbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトから、Functionbeat ディレクトリに移動します:", + "home.tutorials.common.functionbeatInstructions.install.windowsTitle": "Functionbeat のダウンロードとインストール", + "home.tutorials.common.functionbeatStatusCheck.buttonLabel": "データを確認してください", + "home.tutorials.common.functionbeatStatusCheck.errorText": "Functionbeat からまだデータを受け取っていません", + "home.tutorials.common.functionbeatStatusCheck.successText": "Functionbeat からデータを受け取りました", + "home.tutorials.common.functionbeatStatusCheck.text": "Functionbeat からデータを受け取ったことを確認してください。", + "home.tutorials.common.functionbeatStatusCheck.title": "Functionbeat ステータス", + "home.tutorials.common.heartbeat.cloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.heartbeat.premCloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.heartbeat.premInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.heartbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.heartbeatCloudInstructions.config.debTitle": "構成を編集する", + "home.tutorials.common.heartbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.heartbeatCloudInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.heartbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.heartbeatCloudInstructions.config.rpmTitle": "構成を編集する", + "home.tutorials.common.heartbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.heartbeatCloudInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.heartbeatEnableCloudInstructions.debTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", + "home.tutorials.common.heartbeatEnableCloudInstructions.defaultTextPost": "Heartbeat の監視を構成する手順の詳細は、[Heartbeat 構成ドキュメント]({configureLink})をご覧ください。", + "home.tutorials.common.heartbeatEnableCloudInstructions.defaultTitle": "構成を変更 - 監視を追加", + "home.tutorials.common.heartbeatEnableCloudInstructions.osxTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", + "home.tutorials.common.heartbeatEnableCloudInstructions.rpmTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", + "home.tutorials.common.heartbeatEnableCloudInstructions.windowsTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", + "home.tutorials.common.heartbeatEnableOnPremInstructions.debTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", + "home.tutorials.common.heartbeatEnableOnPremInstructions.defaultTextPost": "{hostTemplate} は監視対象の URL です。Heartbeat の監視を構成する手順の詳細は、[Heartbeat 構成ドキュメント]({configureLink})をご覧ください。", + "home.tutorials.common.heartbeatEnableOnPremInstructions.defaultTitle": "構成を変更 - 監視を追加", + "home.tutorials.common.heartbeatEnableOnPremInstructions.osxTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", + "home.tutorials.common.heartbeatEnableOnPremInstructions.rpmTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", + "home.tutorials.common.heartbeatEnableOnPremInstructions.windowsTextPre": "「heartbeat.yml」ファイルの「heartbeat.monitors」設定を変更します。", + "home.tutorials.common.heartbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.heartbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.heartbeatInstructions.config.debTitle": "構成を編集する", + "home.tutorials.common.heartbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.heartbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.heartbeatInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.heartbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.heartbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.heartbeatInstructions.config.rpmTitle": "構成を編集する", + "home.tutorials.common.heartbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.heartbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.heartbeatInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.heartbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({link})をご覧ください。", + "home.tutorials.common.heartbeatInstructions.install.debTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", + "home.tutorials.common.heartbeatInstructions.install.debTitle": "Heartbeat のダウンロードとインストール", + "home.tutorials.common.heartbeatInstructions.install.osxTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", + "home.tutorials.common.heartbeatInstructions.install.osxTitle": "Heartbeat のダウンロードとインストール", + "home.tutorials.common.heartbeatInstructions.install.rpmTextPre": "Heartbeatは初めてですか?[クイックスタート]({link})を参照してください。", + "home.tutorials.common.heartbeatInstructions.install.rpmTitle": "Heartbeat のダウンロードとインストール", + "home.tutorials.common.heartbeatInstructions.install.windowsTextPre": "Heartbeatは初めてですか?[クイックスタート]({heartbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからHeartbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.「{directoryName} ディレクトリの名前を「Heartbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Heartbeat を Windows サービスとしてインストールします。", + "home.tutorials.common.heartbeatInstructions.install.windowsTitle": "Heartbeat のダウンロードとインストール", + "home.tutorials.common.heartbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", + "home.tutorials.common.heartbeatInstructions.start.debTitle": "Heartbeat を起動します", + "home.tutorials.common.heartbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", + "home.tutorials.common.heartbeatInstructions.start.osxTitle": "Heartbeat を起動します", + "home.tutorials.common.heartbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", + "home.tutorials.common.heartbeatInstructions.start.rpmTitle": "Heartbeat を起動します", + "home.tutorials.common.heartbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のインデックスパターンを読み込みます。", + "home.tutorials.common.heartbeatInstructions.start.windowsTitle": "Heartbeat を起動します", + "home.tutorials.common.heartbeatStatusCheck.buttonLabel": "データを確認してください", + "home.tutorials.common.heartbeatStatusCheck.errorText": "Heartbeat からまだデータを受け取っていません", + "home.tutorials.common.heartbeatStatusCheck.successText": "Heartbeat からデータを受け取りました", + "home.tutorials.common.heartbeatStatusCheck.text": "Heartbeat からデータを受け取ったことを確認してください。", + "home.tutorials.common.heartbeatStatusCheck.title": "Heartbeat のステータス", + "home.tutorials.common.logstashInstructions.install.java.osxTextPre": "[こちら]({link})のインストール手順に従ってください。", + "home.tutorials.common.logstashInstructions.install.java.osxTitle": "Java Runtime Environment のダウンロードとインストール", + "home.tutorials.common.logstashInstructions.install.java.windowsTextPre": "[こちら]({link})のインストール手順に従ってください。", + "home.tutorials.common.logstashInstructions.install.java.windowsTitle": "Java Runtime Environment のダウンロードとインストール", + "home.tutorials.common.logstashInstructions.install.logstash.osxTextPre": "Logstash は初めてですか? [入門ガイド]({link})をご覧ください。", + "home.tutorials.common.logstashInstructions.install.logstash.osxTitle": "Logstash のダウンロードとインストール", + "home.tutorials.common.logstashInstructions.install.logstash.windowsTextPre": "Logstash は初めてですか? [入門ガイド]({logstashLink})をご覧ください。\n 1. Logstash Windows zip ファイルを [ダウンロード]({elasticLink})します。\n 2.zip ファイルのコンテンツを展開します。", + "home.tutorials.common.logstashInstructions.install.logstash.windowsTitle": "Logstash のダウンロードとインストール", + "home.tutorials.common.metricbeat.cloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.metricbeat.premCloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.metricbeat.premInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.metricbeatCloudInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.metricbeatCloudInstructions.config.debTitle": "構成を編集する", + "home.tutorials.common.metricbeatCloudInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.metricbeatCloudInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.metricbeatCloudInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.metricbeatCloudInstructions.config.rpmTitle": "構成を編集する", + "home.tutorials.common.metricbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.metricbeatCloudInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.metricbeatEnableInstructions.debTextPost": "「/etc/metricbeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", + "home.tutorials.common.metricbeatEnableInstructions.debTitle": "{moduleName} モジュールを有効にし構成します", + "home.tutorials.common.metricbeatEnableInstructions.osxTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", + "home.tutorials.common.metricbeatEnableInstructions.osxTextPre": "インストールディレクトリから次のファイルを実行します:", + "home.tutorials.common.metricbeatEnableInstructions.osxTitle": "{moduleName} モジュールを有効にし構成します", + "home.tutorials.common.metricbeatEnableInstructions.rpmTextPost": "「/etc/metricbeat/modules.d/{moduleName}.yml」ファイルで設定を変更します。", + "home.tutorials.common.metricbeatEnableInstructions.rpmTitle": "{moduleName} モジュールを有効にし構成します", + "home.tutorials.common.metricbeatEnableInstructions.windowsTextPost": "「modules.d/{moduleName}.yml」」ファイルで設定を変更します。", + "home.tutorials.common.metricbeatEnableInstructions.windowsTextPre": "「{path}」フォルダから次のファイルを実行します:", + "home.tutorials.common.metricbeatEnableInstructions.windowsTitle": "{moduleName} モジュールを有効にし構成します", + "home.tutorials.common.metricbeatInstructions.config.debTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.metricbeatInstructions.config.debTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.metricbeatInstructions.config.debTitle": "構成を編集する", + "home.tutorials.common.metricbeatInstructions.config.osxTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.metricbeatInstructions.config.osxTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.metricbeatInstructions.config.osxTitle": "構成を編集する", + "home.tutorials.common.metricbeatInstructions.config.rpmTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.metricbeatInstructions.config.rpmTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.metricbeatInstructions.config.rpmTitle": "構成を編集する", + "home.tutorials.common.metricbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.metricbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.metricbeatInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.metricbeatInstructions.install.debTextPost": "32 ビットパッケージをお探しですか?[ダウンロードページ]({link})をご覧ください。", + "home.tutorials.common.metricbeatInstructions.install.debTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", + "home.tutorials.common.metricbeatInstructions.install.debTitle": "Metricbeat のダウンロードとインストール", + "home.tutorials.common.metricbeatInstructions.install.osxTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", + "home.tutorials.common.metricbeatInstructions.install.osxTitle": "Metricbeat のダウンロードとインストール", + "home.tutorials.common.metricbeatInstructions.install.rpmTextPre": "Metricbeatは初めてですか?[クイックスタート]({link})を参照してください。", + "home.tutorials.common.metricbeatInstructions.install.rpmTitle": "Metricbeat のダウンロードとインストール", + "home.tutorials.common.metricbeatInstructions.install.windowsTextPost": "{path} ファイルの「output.elasticsearch」を Elasticsearch のインストールに設定します。", + "home.tutorials.common.metricbeatInstructions.install.windowsTextPre": "Metricbeatは初めてですか?[クイックスタート]({metricbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからMetricbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.{directoryName}ディレクトリの名前を「Metricbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Metricbeat を Windows サービスとしてインストールします。", + "home.tutorials.common.metricbeatInstructions.install.windowsTitle": "Metricbeat のダウンロードとインストール", + "home.tutorials.common.metricbeatInstructions.start.debTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.metricbeatInstructions.start.debTitle": "Metricbeat を起動します", + "home.tutorials.common.metricbeatInstructions.start.osxTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.metricbeatInstructions.start.osxTitle": "Metricbeat を起動します", + "home.tutorials.common.metricbeatInstructions.start.rpmTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.metricbeatInstructions.start.rpmTitle": "Metricbeat を起動します", + "home.tutorials.common.metricbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.metricbeatInstructions.start.windowsTitle": "Metricbeat を起動します", + "home.tutorials.common.metricbeatStatusCheck.buttonLabel": "データを確認してください", + "home.tutorials.common.metricbeatStatusCheck.errorText": "モジュールからまだデータを受け取っていません", + "home.tutorials.common.metricbeatStatusCheck.successText": "このモジュールからデータを受け取りました", + "home.tutorials.common.metricbeatStatusCheck.text": "Metricbeat の「{moduleName}」モジュールからデータを受け取ったことを確認してください", + "home.tutorials.common.metricbeatStatusCheck.title": "モジュールステータス", + "home.tutorials.common.premCloudInstructions.option1.textPre": "[Elastic Cloud]({link})にアクセスします。アカウントをお持ちでない場合は新規登録してください。14 日間の無料トライアルがご利用いただけます。\n\nElastic Cloud コンソールにログインします\n\nElastic Cloud コンソールで次の手順に従ってクラスターを作成します。\n 1.[デプロイを作成]を選択して[デプロイ名]を指定します\n 2.必要に応じて他のデプロイオプションを変更します(デフォルトも使い始めるのに有効です)\n 3.「デプロイを作成」をクリックします\n 4.デプロイの作成が完了するまで待ちます\n 5.新規クラウド Kibana インスタンスにアクセスし、Kibana ホームの手順に従います。", + "home.tutorials.common.premCloudInstructions.option1.title": "オプション 1:Elastic Cloud でお試しください", + "home.tutorials.common.premCloudInstructions.option2.textPre": "この Kibana インスタンスをマネージド Elasticsearch インスタンスに対して実行している場合は、手動セットアップを行います。\n\n「Elasticsearch」エンドポイントを {urlTemplate} として保存し、クラスターの「パスワード」を {passwordTemplate} として保存します。", + "home.tutorials.common.premCloudInstructions.option2.title": "オプション 2:Kibana を Cloud インスタンスに接続", + "home.tutorials.common.winlogbeat.cloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.winlogbeat.premCloudInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.winlogbeat.premInstructions.gettingStarted.title": "はじめに", + "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.winlogbeatCloudInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.winlogbeatInstructions.config.windowsTextPost": "{passwordTemplate} が「Elastic」ユーザーのパスワード、{esUrlTemplate} が Elasticsearch の URL、{kibanaUrlTemplate} が Kibana の URL です。", + "home.tutorials.common.winlogbeatInstructions.config.windowsTextPre": "{path} を変更して Elastic Cloud への接続情報を設定します:", + "home.tutorials.common.winlogbeatInstructions.config.windowsTitle": "構成を編集する", + "home.tutorials.common.winlogbeatInstructions.install.windowsTextPost": "{path} ファイルの「output.elasticsearch」を Elasticsearch のインストールに設定します。", + "home.tutorials.common.winlogbeatInstructions.install.windowsTextPre": "Winlogbeatは初めてですか?[クイックスタート]({winlogbeatLink})を参照してください。\n 1.[ダウンロード]({elasticLink})ページからWinlogbeat Windows zipファイルをダウンロードします。\n 2.zipファイルのコンテンツを{folderPath}に解凍します。\n 3.{directoryName}ディレクトリの名前を「Winlogbeat」に変更します。\n 4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n 5.PowerShell プロンプトで次のコマンドを実行し、Winlogbeat を Windows サービスとしてインストールします。", + "home.tutorials.common.winlogbeatInstructions.install.windowsTitle": "Winlogbeat のダウンロードとインストール", + "home.tutorials.common.winlogbeatInstructions.start.windowsTextPre": "「setup」コマンドで Kibana のダッシュボードを読み込みます。ダッシュボードがすでにセットアップされている場合、このコマンドは省略します。", + "home.tutorials.common.winlogbeatInstructions.start.windowsTitle": "Winlogbeat を起動", + "home.tutorials.common.winlogbeatStatusCheck.buttonLabel": "データを確認してください", + "home.tutorials.common.winlogbeatStatusCheck.errorText": "まだデータを受信していません", + "home.tutorials.common.winlogbeatStatusCheck.successText": "データを受信しました", + "home.tutorials.common.winlogbeatStatusCheck.text": "Winlogbeat からデータを受け取ったことを確認してください。", + "home.tutorials.common.winlogbeatStatusCheck.title": "モジュールステータス", + "home.tutorials.consulMetrics.artifacts.dashboards.linkLabel": "Consul メトリックダッシュボード", + "home.tutorials.consulMetrics.longDescription": "Metricbeat モジュール「consul」は、Consul からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.consulMetrics.nameTitle": "Consulメトリック", + "home.tutorials.consulMetrics.shortDescription": "Metricbeatを使用してConsulサーバーからメトリックを収集します。", + "home.tutorials.corednsLogs.artifacts.dashboards.linkLabel": "[Filebeat CoreDNS] 概要", + "home.tutorials.corednsLogs.longDescription": "これは CoreDNS の Filebeatモジュールです。スタンドアロンの CoreDNS デプロイメントと Kubernetes での CoreDNS デプロイメントの両方をサポートします。[詳細]({learnMoreLink})。", + "home.tutorials.corednsLogs.nameTitle": "CoreDNSログ", + "home.tutorials.corednsLogs.shortDescription": "Filebeatを使用してCoreDNSサーバーからログを収集して解析します。", + "home.tutorials.corednsMetrics.artifacts.application.label": "Discover", + "home.tutorials.corednsMetrics.longDescription": "Metricbeat モジュール「coredns」は、CoreDNS からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.corednsMetrics.nameTitle": "CoreDNSメトリック", + "home.tutorials.corednsMetrics.shortDescription": "Metricbeatを使用してCoreDNSサーバーからメトリックを収集します。", + "home.tutorials.couchbaseMetrics.artifacts.application.label": "Discover", + "home.tutorials.couchbaseMetrics.longDescription": "Metricbeat モジュール「couchbase」は、Couchbase からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.couchbaseMetrics.nameTitle": "Couchbaseメトリック", + "home.tutorials.couchbaseMetrics.shortDescription": "Metricbeatを使用してCouchbaseデータベースからメトリックを収集します。", + "home.tutorials.couchdbMetrics.artifacts.dashboards.linkLabel": "CouchDB メトリックダッシュボード", + "home.tutorials.couchdbMetrics.longDescription": "Metricbeat モジュール「couchdb」は、CouchDB からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.couchdbMetrics.nameTitle": "CouchDB Metrics", + "home.tutorials.couchdbMetrics.shortDescription": "Metricbeatを使用してCouchDBサーバーからメトリックを収集します。", + "home.tutorials.crowdstrikeLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.crowdstrikeLogs.longDescription": "これは Falcon [SIEM コネクター](https://www.crowdstrike.com/blog/tech-center/integrate-with-your-siem)を使用したCrowdStrike Falcon のための Filebeatモジュールです。 このモジュールはこのデータを収集し、ECS に変換して、取り込み、SIEM に表示します。 デフォルトでは、Falcon SIEM コネクターは JSON 形式の Falcon Streaming API イベントデータを出力します。[詳細]({learnMoreLink})。", + "home.tutorials.crowdstrikeLogs.nameTitle": "CrowdStrikeログ", + "home.tutorials.crowdstrikeLogs.shortDescription": "FilebeatとFalcon SIEMコネクターを使用してCrowdStrike Falconからログを収集して解析します。", + "home.tutorials.cylanceLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.cylanceLogs.longDescription": "これは、Syslog またはファイルで CylancePROTECT ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.cylanceLogs.nameTitle": "CylancePROTECTログ", + "home.tutorials.cylanceLogs.shortDescription": "Filebeatを使用してCylancePROTECTからログを収集して解析します。", + "home.tutorials.dockerMetrics.artifacts.dashboards.linkLabel": "Docker メトリックダッシュボード", + "home.tutorials.dockerMetrics.longDescription": "Metricbeat モジュール「docker」 は、Docker サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.dockerMetrics.nameTitle": "Dockerメトリック", + "home.tutorials.dockerMetrics.shortDescription": "Metricbeatを使用してDockerコンテナーからメトリックを収集します。", + "home.tutorials.dropwizardMetrics.artifacts.application.label": "Discover", + "home.tutorials.dropwizardMetrics.longDescription": "Metricbeat モジュール「dropwizard」は、Dropwizard Java アプリケーション からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.dropwizardMetrics.nameTitle": "Dropwizardメトリック", + "home.tutorials.dropwizardMetrics.shortDescription": "Metricbeatを使用してDropwizard Javaアプリケーションからメトリックを収集します。", + "home.tutorials.elasticsearchLogs.artifacts.application.label": "Discover", + "home.tutorials.elasticsearchLogs.longDescription": "「elasticsearch」Filebeat モジュールが、Elasticsearch により作成されたログをパースします。[詳細({learnMoreLink})。", + "home.tutorials.elasticsearchLogs.nameTitle": "Elasticsearch ログ", + "home.tutorials.elasticsearchLogs.shortDescription": "Filebeatを使用してElasticsearchクラスターからログを収集して解析します。", + "home.tutorials.elasticsearchMetrics.artifacts.application.label": "Discover", + "home.tutorials.elasticsearchMetrics.longDescription": "Metricbeat モジュール「elasticsearch」は、Elasticsearch からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.elasticsearchMetrics.nameTitle": "Elasticsearchメトリック", + "home.tutorials.elasticsearchMetrics.shortDescription": "Metricbeatを使用してElasticsearchクラスターからメトリックを収集します。", + "home.tutorials.envoyproxyLogs.artifacts.dashboards.linkLabel": "Envoy Proxy 概要", + "home.tutorials.envoyproxyLogs.longDescription": "これは Envoy Proxy アクセスログ(https://www.envoyproxy.io/docs/envoy/v1.10.0/configuration/access_log)用の Filebeat モジュールです。Kubernetes でのスタンドアロンのデプロイメントと Envoy プロキシデプロイメントの両方をサポートします。[詳細]({learnMoreLink})。", + "home.tutorials.envoyproxyLogs.nameTitle": "Envoy Proxyログ", + "home.tutorials.envoyproxyLogs.shortDescription": "Filebeatを使用してEnvoy Proxyからログを収集して解析します。", + "home.tutorials.envoyproxyMetrics.longDescription": "Metricbeat モジュール「envoyproxy」は、Envoy Proxy からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.envoyproxyMetrics.nameTitle": "Envoy Proxyメトリック", + "home.tutorials.envoyproxyMetrics.shortDescription": "Metricbeatを使用してEnvoy Proxyからメトリックを収集します。", + "home.tutorials.etcdMetrics.artifacts.application.label": "Discover", + "home.tutorials.etcdMetrics.longDescription": "Metricbeat モジュール「etcd」は、Etcd からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.etcdMetrics.nameTitle": "Etcdメトリック", + "home.tutorials.etcdMetrics.shortDescription": "Metricbeatを使用してEtcdサーバーからメトリックを収集します。", + "home.tutorials.f5Logs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.f5Logs.longDescription": "これは、Syslog またはファイルで Big-IP Access Policy Manager ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.f5Logs.nameTitle": "F5ログ", + "home.tutorials.f5Logs.shortDescription": "Filebeatを使用してF5 Big-IP Access Policy Managerらログを収集して解析します。", + "home.tutorials.fortinetLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.fortinetLogs.longDescription": "これは Syslog 形式で送信された Fortinet FortiOS ログのためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.fortinetLogs.nameTitle": "Fortinetログ", + "home.tutorials.fortinetLogs.shortDescription": "Filebeatを使用してFortinet FortiOSからログを収集して解析します。", + "home.tutorials.gcpLogs.artifacts.dashboards.linkLabel": "監査ログダッシュボード", + "home.tutorials.gcpLogs.longDescription": "これは Google Cloud ログのモジュールです。Stackdriver から Google Pub/Sub トピックシンクにエクスポートされた監査、VPC フロー、ファイアウォールログの読み取りをサポートします。[詳細]({learnMoreLink})。", + "home.tutorials.gcpLogs.nameTitle": "Google Cloudログ", + "home.tutorials.gcpLogs.shortDescription": "Filebeatを使用してGoogle Cloud Platformからログを収集して解析します。", + "home.tutorials.gcpMetrics.artifacts.dashboards.linkLabel": "Google Cloudメトリックダッシュボード", + "home.tutorials.gcpMetrics.longDescription": "「gcp」Metricbeatモジュールは、Stackdriver Monitoring APIを使用して、Google Cloud Platformからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.gcpMetrics.nameTitle": "Google Cloudメトリック", + "home.tutorials.gcpMetrics.shortDescription": "Metricbeatを使用してGoogle Cloud Platformからメトリックを収集します。", + "home.tutorials.golangMetrics.artifacts.dashboards.linkLabel": "Golang メトリックダッシュボード", + "home.tutorials.golangMetrics.longDescription": "Metricbeat モジュール「{moduleName}」は、Golang アプリからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.golangMetrics.nameTitle": "Golangメトリック", + "home.tutorials.golangMetrics.shortDescription": "Metricbeatを使用してGolangアプリケーションからメトリックを収集します。", + "home.tutorials.gsuiteLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.gsuiteLogs.longDescription": "これは異なる GSuite 監査レポート API からデータを取り込むためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.gsuiteLogs.nameTitle": "GSuiteログ", + "home.tutorials.gsuiteLogs.shortDescription": "Filebeatを使用してGSuiteからアクティビティレポートを収集して解析します。", + "home.tutorials.haproxyLogs.artifacts.dashboards.linkLabel": "HAProxy 概要", + "home.tutorials.haproxyLogs.longDescription": "このモジュールは、(「haproxy」)プロセスからログを収集して解析します。[詳細]({learnMoreLink})。", + "home.tutorials.haproxyLogs.nameTitle": "HAProxyログ", + "home.tutorials.haproxyLogs.shortDescription": "Filebeatを使用してHAProxyサーバーからログを収集して解析します。", + "home.tutorials.haproxyMetrics.artifacts.application.label": "Discover", + "home.tutorials.haproxyMetrics.longDescription": "Metricbeat モジュール「haproxy」は、HAProxy アプリからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.haproxyMetrics.nameTitle": "HAProxyメトリック", + "home.tutorials.haproxyMetrics.shortDescription": "Metricbeatを使用してHAProxyサーバーからメトリックを収集します。", + "home.tutorials.ibmmqLogs.artifacts.dashboards.linkLabel": "IBM MQ イベント", + "home.tutorials.ibmmqLogs.longDescription": "Filebeat で IBM MQ ログを収集します。[詳細]({learnMoreLink})", + "home.tutorials.ibmmqLogs.nameTitle": "IBM MQログ", + "home.tutorials.ibmmqLogs.shortDescription": "Filebeatを使用してIBM MQからログを収集して解析します。", + "home.tutorials.ibmmqMetrics.artifacts.application.label": "Discover", + "home.tutorials.ibmmqMetrics.longDescription": "Metricbeat モジュール「ibmmq」は、IBM MQ インスタンスからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.ibmmqMetrics.nameTitle": "IBM MQメトリック", + "home.tutorials.ibmmqMetrics.shortDescription": "Metricbeatを使用してIBM MQからメトリックを収集します。", + "home.tutorials.icingaLogs.artifacts.dashboards.linkLabel": "Icinga Main ログ", + "home.tutorials.icingaLogs.longDescription": "このモジュールは [Icinga](https://www.icinga.com/products/icinga-2/)のメイン、デバッグ、スタータップログを解析します。[詳細]({learnMoreLink})。", + "home.tutorials.icingaLogs.nameTitle": "Icingaログ", + "home.tutorials.icingaLogs.shortDescription": "Filebeatを使用してIcingaからメイン、デバッグ、起動ログを収集して解析します。", + "home.tutorials.iisLogs.artifacts.dashboards.linkLabel": "IIS ログダッシュボード", + "home.tutorials.iisLogs.longDescription": "「iis」Filebeat モジュールが、Nginx HTTP サーバーにより作成されたアクセスとエラーのログをパースします。[詳細]({learnMoreLink})。", + "home.tutorials.iisLogs.nameTitle": "IISログ", + "home.tutorials.iisLogs.shortDescription": "Filebeatを使用してIIS HTTP サーバーで生成されたアクセスログとエラーログを収集して解析します。", + "home.tutorials.iisMetrics.artifacts.dashboards.linkLabel": "IISメトリックダッシュボード", + "home.tutorials.iisMetrics.longDescription": "「iis」Metricbeatモジュールは、IISサーバーおよび実行中のアプリケーションプールとWebサイトからメトリックを収集します。[詳細]({learnMoreLink})。", + "home.tutorials.iisMetrics.nameTitle": "IISメトリック", + "home.tutorials.iisMetrics.shortDescription": "Metricbeatを使用してIIS HTTPサーバーからメトリックを収集します。", + "home.tutorials.impervaLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.impervaLogs.longDescription": "これは、Syslog またはファイルで SecureSphere ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.impervaLogs.nameTitle": "Impervaログ", + "home.tutorials.impervaLogs.shortDescription": "Filebeatを使用してImperva SecureSphereからログを収集して解析します。", + "home.tutorials.infobloxLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.infobloxLogs.longDescription": "これは、Syslog またはファイルで Infoblox NIOS ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.infobloxLogs.nameTitle": "Infobloxログ", + "home.tutorials.infobloxLogs.shortDescription": "Filebeatを使用してInfoblox NIOSからログを収集して解析します。", + "home.tutorials.iptablesLogs.artifacts.dashboards.linkLabel": "Iptables 概要", + "home.tutorials.iptablesLogs.longDescription": "これは iptables と ip6tables ログ用のモジュールです。ネットワーク上で受信した syslog ログ経由や、ファイルからのログをパースします。また、ルールセット名、ルール番号、トラフィックに実行されたアクション(許可/拒否)を含む、Ubiquiti ファイアウォールにより追加された接頭辞も認識できます。[詳細]({learnMoreLink})。", + "home.tutorials.iptablesLogs.nameTitle": "Iptablesログ", + "home.tutorials.iptablesLogs.shortDescription": "Filebeatを使用してiptablesとip6tablesからログを収集して解析します。", + "home.tutorials.juniperLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.juniperLogs.longDescription": "これは、Syslog またはファイルで Juniper JUNOS ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.juniperLogs.nameTitle": "Juniper ログ", + "home.tutorials.juniperLogs.shortDescription": "Filebeatを使用してJuniper JUNOSからログを収集して解析します。", + "home.tutorials.kafkaLogs.artifacts.dashboards.linkLabel": "Kafka ログダッシュボード", + "home.tutorials.kafkaLogs.longDescription": "「kafka」Filebeat モジュールは、Kafka が作成したログをパースします。[詳細]({learnMoreLink})。", + "home.tutorials.kafkaLogs.nameTitle": "Kafkaログ", + "home.tutorials.kafkaLogs.shortDescription": "Filebeatを使用してKafkaサーバーからログを収集して解析します。", + "home.tutorials.kafkaMetrics.artifacts.application.label": "Discover", + "home.tutorials.kafkaMetrics.longDescription": "Metricbeat モジュール「kafka」は、Kafka からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.kafkaMetrics.nameTitle": "Kafkaメトリック", + "home.tutorials.kafkaMetrics.shortDescription": "Metricbeatを使用してKafkaサーバーからメトリックを収集します。", + "home.tutorials.kibanaLogs.artifacts.application.label": "Discover", + "home.tutorials.kibanaLogs.longDescription": "これは Kibana モジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.kibanaLogs.nameTitle": "Kibana ログ", + "home.tutorials.kibanaLogs.shortDescription": "Filebeatを使用してKibanaからログを収集して解析します。", + "home.tutorials.kibanaMetrics.artifacts.application.label": "Discover", + "home.tutorials.kibanaMetrics.longDescription": "Metricbeat モジュール「kibana」は、Kibana からメトリックを取得します。 [詳細]({learnMoreLink})。", + "home.tutorials.kibanaMetrics.nameTitle": "Kibanaメトリック", + "home.tutorials.kibanaMetrics.shortDescription": "Metricbeatを使用してKibanaからメトリックを収集します。", + "home.tutorials.kubernetesMetrics.artifacts.dashboards.linkLabel": "Kubernetes メトリックダッシュボード", + "home.tutorials.kubernetesMetrics.longDescription": "Metricbeat モジュール「kubernetes」は、Kubernetes API からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.kubernetesMetrics.nameTitle": "Kubernetesメトリック", + "home.tutorials.kubernetesMetrics.shortDescription": "Metricbeatを使用してKubernetesインストールからメトリックを収集します。", + "home.tutorials.logstashLogs.artifacts.dashboards.linkLabel": "Logstash ログ", + "home.tutorials.logstashLogs.longDescription": "このモジュールは Logstash 標準ログと低速ログを解析します。プレーンテキスト形式と JSON 形式がサポートされます。[詳細]({learnMoreLink})。", + "home.tutorials.logstashLogs.nameTitle": "Logstash ログ", + "home.tutorials.logstashLogs.shortDescription": "Filebeatを使用してLogstashからメインログと低下ログを収集して解析します。", + "home.tutorials.logstashMetrics.artifacts.application.label": "Discover", + "home.tutorials.logstashMetrics.longDescription": "Metricbeat モジュール「{moduleName}」は、Logstash サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.logstashMetrics.nameTitle": "Logstashメトリック", + "home.tutorials.logstashMetrics.shortDescription": "Metricbeatを使用してLogstashサーバーからメトリックを収集します。", + "home.tutorials.memcachedMetrics.artifacts.application.label": "Discover", + "home.tutorials.memcachedMetrics.longDescription": "Metricbeat モジュール「memcached」は、Memcached からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.memcachedMetrics.nameTitle": "Memcachedメトリック", + "home.tutorials.memcachedMetrics.shortDescription": "Metricbeatを使用してMemcachedサーバーからメトリックを収集します。", + "home.tutorials.microsoftLogs.artifacts.dashboards.linkLabel": "Microsoft ATP 概要", + "home.tutorials.microsoftLogs.longDescription": "Elastic Security で使用する Microsoft Defender ATP アラートを収集します。[詳細]({learnMoreLink})。", + "home.tutorials.microsoftLogs.nameTitle": "Microsoft Defender ATPログ", + "home.tutorials.microsoftLogs.shortDescription": "Filebeatを使用してMicrosoft Defender ATPからアラートを収集して解析します。", + "home.tutorials.mispLogs.artifacts.dashboards.linkLabel": "MISP 概要", + "home.tutorials.mispLogs.longDescription": "これは MISP プラットフォーム(https://www.circl.lu/doc/misp/)から脅威インテリジェンス情報を読み取るための Filebeatモジュールです。MISP REST API インターフェイスにアクセスするために httpjson 入力を使用します。[詳細]({learnMoreLink})。", + "home.tutorials.mispLogs.nameTitle": "MISP脅威インテリジェンスログ", + "home.tutorials.mispLogs.shortDescription": "Filebeatを使用してMISP脅威インテリジェンスからログを収集して解析します。", + "home.tutorials.mongodbLogs.artifacts.dashboards.linkLabel": "MongoDB概要", + "home.tutorials.mongodbLogs.longDescription": "このモジュールは、[MongoDB](https://www.mongodb.com/)で作成されたログを収集し、解析します。[詳細]({learnMoreLink})。", + "home.tutorials.mongodbLogs.nameTitle": "MongoDBログ", + "home.tutorials.mongodbLogs.shortDescription": "Filebeatを使用してMongoDBサーバーからログを収集して解析します。", + "home.tutorials.mongodbMetrics.artifacts.dashboards.linkLabel": "MongoDB メトリックダッシュボード", + "home.tutorials.mongodbMetrics.longDescription": "Metricbeat モジュール「mongodb」は、MongoDB サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.mongodbMetrics.nameTitle": "MongoDBメトリック", + "home.tutorials.mongodbMetrics.shortDescription": "Metricbeatを使用してMongoDBサーバーからメトリックを収集します。", + "home.tutorials.mssqlLogs.artifacts.application.label": "Discover", + "home.tutorials.mssqlLogs.longDescription": "このモジュールは MSSQL により作成されたエラーログを解析します。[詳細]({learnMoreLink})。", + "home.tutorials.mssqlLogs.nameTitle": "Microsoft SQL Serverログ", + "home.tutorials.mssqlLogs.shortDescription": "Filebeatを使用してMicrosoft SQL Serverインスタンスからログを収集して解析します。", + "home.tutorials.mssqlMetrics.artifacts.dashboards.linkLabel": "Microsoft SQL Server メトリックダッシュボード", + "home.tutorials.mssqlMetrics.longDescription": "Metricbeat モジュール「mssql」は、Microsoft SQL Server インスタンスからの監視、ログ、パフォーマンスメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.mssqlMetrics.nameTitle": "Microsoft SQL Serverメトリック", + "home.tutorials.mssqlMetrics.shortDescription": "Filebeatを使用してMicrosoft SQL Serverインスタンスからメトリックを収集します。", + "home.tutorials.muninMetrics.artifacts.application.label": "Discover", + "home.tutorials.muninMetrics.longDescription": "Metricbeat モジュール「munin」は、Munin からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.muninMetrics.nameTitle": "Muninメトリック", + "home.tutorials.muninMetrics.shortDescription": "Metricbeatを使用してMuninサーバーからメトリックを収集します。", + "home.tutorials.mysqlLogs.artifacts.dashboards.linkLabel": "MySQL ログダッシュボード", + "home.tutorials.mysqlLogs.longDescription": "「mysql」Filebeat モジュールは、MySQL が作成したエラーとスローログをパースします。[詳細]({learnMoreLink})。", + "home.tutorials.mysqlLogs.nameTitle": "MySQLログ", + "home.tutorials.mysqlLogs.shortDescription": "Filebeatを使用してMySQLサーバーからログを収集して解析します。", + "home.tutorials.mysqlMetrics.artifacts.dashboards.linkLabel": "MySQL メトリックダッシュボード", + "home.tutorials.mysqlMetrics.longDescription": "Metricbeat モジュール「mysql」は、MySQL サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.mysqlMetrics.nameTitle": "MySQLメトリック", + "home.tutorials.mysqlMetrics.shortDescription": "Metricbeatを使用してMySQLサーバーからメトリックを収集します。", + "home.tutorials.natsLogs.artifacts.dashboards.linkLabel": "NATSログダッシュボード", + "home.tutorials.natsLogs.longDescription": "「nats」Filebeat モジュールが、Nats により作成されたログをパースします。[詳細]({learnMoreLink})。", + "home.tutorials.natsLogs.nameTitle": "NATSログ", + "home.tutorials.natsLogs.shortDescription": "Filebeatを使用してNATSサーバーからログを収集して解析します。", + "home.tutorials.natsMetrics.artifacts.dashboards.linkLabel": "NATSメトリックダッシュボード", + "home.tutorials.natsMetrics.longDescription": "Metricbeat モジュール「nats」は、Nats からメトリックを取得します。[詳細] {learnMoreLink})。", + "home.tutorials.natsMetrics.nameTitle": "NATSメトリック", + "home.tutorials.natsMetrics.shortDescription": "Metricbeatを使用してNATSサーバーからメトリックを収集します。", + "home.tutorials.netflowLogs.artifacts.dashboards.linkLabel": "Netflow 概要", + "home.tutorials.netflowLogs.longDescription": "これは UDP で NetFlow および IPFIX フローレコードを受信するモジュールです。この入力は、NetFlow バージョン 1、5、6、7、8、9、IPFIX をサポートします。NetFlow バージョン 9 以外では、フィールドが自動的に NetFlow v9 にマッピングされます。[詳細]({learnMoreLink})。", + "home.tutorials.netflowLogs.nameTitle": "NetFlow / IPFIXレコード", + "home.tutorials.netflowLogs.shortDescription": "Filebeatを使用してNetFlowおよびIPFIXフローからレコードを収集します。", + "home.tutorials.netscoutLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.netscoutLogs.nameTitle": "Arbor Peakflowログ", + "home.tutorials.netscoutLogs.shortDescription": "Filebeatを使用してNetscout Arbor Peakflow SPからログを収集して解析します。", + "home.tutorials.nginxLogs.artifacts.dashboards.linkLabel": "Nginx ログダッシュボード", + "home.tutorials.nginxLogs.longDescription": "「nginx」Filebeat モジュールは、Nginx HTTP サーバーが作成したアクセスとエラーのログをパースします。[詳細]({learnMoreLink})。", + "home.tutorials.nginxLogs.nameTitle": "Nginxログ", + "home.tutorials.nginxLogs.shortDescription": "Filebeatを使用してNginx HTTPサーバーからログを収集して解析します。", + "home.tutorials.nginxMetrics.artifacts.dashboards.linkLabel": "Nginx メトリックダッシュボード", + "home.tutorials.nginxMetrics.longDescription": "Metricbeat モジュール「nginx」は、Nginx サーバーからメトリックを取得します。このモジュールは {statusModuleLink} で生成したウェブページからサーバーステータスデータを収集しますが、これは Nginx で有効にする必要があります。[詳細]({learnMoreLink})。", + "home.tutorials.nginxMetrics.nameTitle": "Nginxメトリック", + "home.tutorials.nginxMetrics.shortDescription": "Metricbeatを使用してNginx HTTPサーバーからメトリックを収集します。", + "home.tutorials.o365Logs.artifacts.dashboards.linkLabel": "O365 監査ダッシュボード", + "home.tutorials.o365Logs.longDescription": "これは Office 365 API エンドポイントのいずれか経由で受信された Office 365 ログのモジュールです。現在、ユーザー、管理者、システム、ポリシーアクションのほか、Office 365 Management Activity API によって公開された Office 365 および Azure AD アクティビティログからのイベントがサポートされています。[詳細]({learnMoreLink})。", + "home.tutorials.o365Logs.nameTitle": "Office 365ログ", + "home.tutorials.o365Logs.shortDescription": "Filebeatを使用してOffice 365からログを収集して解析します。", + "home.tutorials.oktaLogs.artifacts.dashboards.linkLabel": "Okta 概要", + "home.tutorials.oktaLogs.longDescription": "Okta モジュールは[Okta API](https://developer.okta.com/docs/reference/)からイベントを収集します。 特に、これは[Okta システムログ API](https://developer.okta.com/docs/reference/api/system-log/)からの読み取りをサポートします。 [詳細]({learnMoreLink})。", + "home.tutorials.oktaLogs.nameTitle": "Oktaログ", + "home.tutorials.oktaLogs.shortDescription": "Filebeatを使用してOkta APIからログを収集して解析します。", + "home.tutorials.openmetricsMetrics.longDescription": "Metricbeat モジュール「openmetrics」は、OpenMetrics の形式でメトリックを提供するエンドポイントからメトリックをフェッチします。[詳細]({learnMoreLink})。", + "home.tutorials.openmetricsMetrics.nameTitle": "OpenMetricsメトリック", + "home.tutorials.openmetricsMetrics.shortDescription": "Metricbeatを使用してOpenMetrics形式でメトリックを提供するエンドポイントからメトリックを取得します。", + "home.tutorials.oracleMetrics.artifacts.application.label": "Discover", + "home.tutorials.oracleMetrics.longDescription": "「{moduleName}」Metricbeatモジュールは、Oracleサーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.oracleMetrics.nameTitle": "Oracleメトリック", + "home.tutorials.oracleMetrics.shortDescription": "Metricbeatを使用してOracleサーバーからメトリックを収集します。", + "home.tutorials.osqueryLogs.artifacts.dashboards.linkLabel": "Osquery コンプライアンスパック", + "home.tutorials.osqueryLogs.longDescription": "このモジュールは JSON 形式で [osqueryd](https://osquery.readthedocs.io/en/latest/introduction/using-osqueryd/)によって作成された結果ログを収集およびデコードします。osqueryd を設定するには、ご使用のオペレーティングシステムの osquery インストール手順に従い、「filesystem」ロギングドラバー(デフォルト)を構成します。 UTC タイムスタンプが有効であることを確認します。 [詳細]({learnMoreLink})。", + "home.tutorials.osqueryLogs.nameTitle": "Osqueryログ", + "home.tutorials.osqueryLogs.shortDescription": "Filebeatを使用してOsqueryからログを収集して解析します。", + "home.tutorials.panwLogs.artifacts.dashboards.linkLabel": "PANW ネットワークフロー", + "home.tutorials.panwLogs.longDescription": "このモジュールは、Syslog から受信したログまたはファイルから読み取られたログを監視する Palo Alto Networks PAN-OS ファイアウォール監視ログのモジュールです。現在、トラフィックおよび脅威タイプのメッセージがサポートされます。 [詳細]({learnMoreLink})。", + "home.tutorials.panwLogs.nameTitle": "Palo Alto Networks PAN-OSログ", + "home.tutorials.panwLogs.shortDescription": "Filebeatを使用してPalo Alto Networks PAN-OSから脅威およびトラフィックログを収集して解析します。", + "home.tutorials.phpFpmMetrics.longDescription": "Metricbeat モジュール「php_fpm」は、PHP-FPM サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.phpFpmMetrics.nameTitle": "PHP-FPMメトリック", + "home.tutorials.phpFpmMetrics.shortDescription": "Metricbeatを使用してPHP-FPMからメトリックを収集します。", + "home.tutorials.postgresqlLogs.artifacts.dashboards.linkLabel": "PostgreSQL ログダッシュボード", + "home.tutorials.postgresqlLogs.longDescription": "「postgresql」Filebeat モジュールが、PostgreSQL により作成されたエラーとスローログをパースします。[詳細]({learnMoreLink})。", + "home.tutorials.postgresqlLogs.nameTitle": "PostgreSQLログ", + "home.tutorials.postgresqlLogs.shortDescription": "Filebeatを使用してPostgreSQLサーバーからログを収集して解析します。", + "home.tutorials.postgresqlMetrics.longDescription": "Metricbeat モジュール「postgresql」は、PostgreSQL サーバーからメトリックを取得します。 [詳細]({learnMoreLink})。", + "home.tutorials.postgresqlMetrics.nameTitle": "PostgreSQLメトリック", + "home.tutorials.postgresqlMetrics.shortDescription": "Metricbeatを使用してPostgreSQLサーバーからメトリックを収集します。", + "home.tutorials.prometheusMetrics.artifacts.application.label": "Discover", + "home.tutorials.prometheusMetrics.longDescription": "Metricbeat モジュール「{moduleName}」は、Prometheus エンドポイントからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.prometheusMetrics.nameTitle": "Prometheusメトリック", + "home.tutorials.prometheusMetrics.shortDescription": "Metricbeatを使用してPrometheusエクスポーターからメトリックを収集します。", + "home.tutorials.rabbitmqLogs.artifacts.application.label": "Discover", + "home.tutorials.rabbitmqLogs.longDescription": "これは[RabbitMQ ログファイル](https://www.rabbitmq.com/logging.html)を解析するモジュールです。 [詳細]({learnMoreLink})。", + "home.tutorials.rabbitmqLogs.nameTitle": "RabbitMQログ", + "home.tutorials.rabbitmqLogs.shortDescription": "Filebeatを使用してRabbitMQサーバーからログを収集して解析します。", + "home.tutorials.rabbitmqMetrics.artifacts.dashboards.linkLabel": "RabbitMQ メトリックダッシュボード", + "home.tutorials.rabbitmqMetrics.longDescription": "Metricbeat モジュール「rabbitmq」は、RabbitMQ サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.rabbitmqMetrics.nameTitle": "RabbitMQメトリック", + "home.tutorials.rabbitmqMetrics.shortDescription": "Metricbeatを使用してRabbitMQサーバーからメトリックを収集します。", + "home.tutorials.radwareLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.radwareLogs.longDescription": "これは、Syslog またはファイルで Radware DefensePro ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.radwareLogs.nameTitle": "Radware DefenseProログ", + "home.tutorials.radwareLogs.shortDescription": "Filebeatを使用してRadware DefenseProからログを収集して解析します。", + "home.tutorials.redisenterpriseMetrics.artifacts.application.label": "Discover", + "home.tutorials.redisenterpriseMetrics.longDescription": "Metricbeat モジュール「redisenterprise」は Redis Enterprise Server メトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.redisenterpriseMetrics.nameTitle": "Redis Enterpriseメトリック", + "home.tutorials.redisenterpriseMetrics.shortDescription": "Metricbeatを使用してRedis Enterpriseサーバーからメトリックを収集します。", + "home.tutorials.redisLogs.artifacts.dashboards.linkLabel": "Redis ログダッシュボード", + "home.tutorials.redisLogs.longDescription": "「redis」Filebeat モジュールは、Redis が作成したエラーとスローログをパースします。Redis がエラーログを作成するには、Redis 構成ファイルの「logfile」オプションが「redis-server.log」に設定されていることを確認してください。スローログは「SLOWLOG」コマンドで Redis から直接的に読み込まれます。Redis でスローログを記録するには、「slowlog-log-slower-than」オプションが設定されていることを確認してください。「slowlog」ファイルセットは実験的なものであることに注意してください。[詳細]({learnMoreLink})。", + "home.tutorials.redisLogs.nameTitle": "Redisログ", + "home.tutorials.redisLogs.shortDescription": "Filebeatを使用してRedisサーバーからログを収集して解析します。", + "home.tutorials.redisMetrics.artifacts.dashboards.linkLabel": "Redis メトリックダッシュボード", + "home.tutorials.redisMetrics.longDescription": "Metricbeat モジュール「redis」は、Redis サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.redisMetrics.nameTitle": "Redisメトリック", + "home.tutorials.redisMetrics.shortDescription": "Metricbeatを使用してRedisサーバーからメトリックを収集します。", + "home.tutorials.santaLogs.artifacts.dashboards.linkLabel": "Santa 概要", + "home.tutorials.santaLogs.longDescription": "このモジュールは、プロセス実行を監視し、バイナリをブラックリスト/ホワイトリストに登録できる macOS 向けのセキュリティツールである [Google Santa](https://github.com/google/santa)からログを収集して解析します。[詳細]({learnMoreLink})。", + "home.tutorials.santaLogs.nameTitle": "Google Santaログ", + "home.tutorials.santaLogs.shortDescription": "Filebeatを使用してGoogle Santaシステムからログを収集して解析します。", + "home.tutorials.sonicwallLogs.longDescription": "これは、Syslog またはファイルで Sonicwall-FW ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.sonicwallLogs.nameTitle": "Sonicwall FWログ", + "home.tutorials.sonicwallLogs.shortDescription": "Filebeatを使用してSonicwall FWからログを収集して解析します。", + "home.tutorials.sophosLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.sophosLogs.longDescription": "これは Sophos 製品用モジュールであり、Syslog 形式で送信された XG SFOS ログが現在サポートされています。[詳細]({learnMoreLink})。", + "home.tutorials.sophosLogs.nameTitle": "Sophosログ", + "home.tutorials.sophosLogs.shortDescription": "Filebeatを使用してSophos XG SFOSからログを収集して解析します。", + "home.tutorials.squidLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.squidLogs.longDescription": "これは、Syslog またはファイルで Squid ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.squidLogs.nameTitle": "Squidログ", + "home.tutorials.squidLogs.shortDescription": "Filebeatを使用してSquidサーバーからログを収集して解析します。", + "home.tutorials.stanMetrics.artifacts.dashboards.linkLabel": "Stan メトリックダッシュボード", + "home.tutorials.stanMetrics.longDescription": "Metricbeat モジュール「stan」は、STAN からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.stanMetrics.nameTitle": "STANメトリック", + "home.tutorials.stanMetrics.shortDescription": "Metricbeatを使用してSTANサーバーからメトリックを収集します。", + "home.tutorials.statsdMetrics.longDescription": "Metricbeat モジュール「statsd」は、statsd からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.statsdMetrics.nameTitle": "statsdメトリック", + "home.tutorials.statsdMetrics.shortDescription": "Metricbeatを使用してStatsdサーバーからメトリックを収集します。", + "home.tutorials.suricataLogs.artifacts.dashboards.linkLabel": "Suricata イベント概要", + "home.tutorials.suricataLogs.longDescription": "このモジュールは Suricata IDS/IPS/NSM ログ用です。[Suricata Eve JSON 形式](https://suricata.readthedocs.io/en/latest/output/eve/eve-json-format.html)のログを解析します。[詳細]({learnMoreLink})。", + "home.tutorials.suricataLogs.nameTitle": "Suricataログ", + "home.tutorials.suricataLogs.shortDescription": "Filebeatを使用してSuricata IDS/IPS/NSMからログを収集して解析します。", + "home.tutorials.systemLogs.artifacts.dashboards.linkLabel": "システム Syslog ダッシュボード", + "home.tutorials.systemLogs.longDescription": "このモジュールは、一般的な Unix/Linux ベースのディストリビューションのシステムログサービスが作成したログを収集し解析します。[詳細]({learnMoreLink})。", + "home.tutorials.systemLogs.nameTitle": "システムログ", + "home.tutorials.systemLogs.shortDescription": "一般的な Unix/Linux ベースのディストリビューションのシステムログを収集します。", + "home.tutorials.systemMetrics.artifacts.dashboards.linkLabel": "システムメトリックダッシュボード", + "home.tutorials.systemMetrics.longDescription": "Metricbeat モジュール「system」は、ホストから CPU、メモリー、ネットワーク、ディスクの統計を収集します。システム全体の統計とプロセスやファイルシステムごとの統計を収集します。[詳細]({learnMoreLink})。", + "home.tutorials.systemMetrics.nameTitle": "システムメトリック", + "home.tutorials.systemMetrics.shortDescription": "Metricbeatを使用してシステムホストからCPU、メモリ、ネットワーク、ディスクメトリックを収集します。", + "home.tutorials.tomcatLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.tomcatLogs.longDescription": "これは、Syslog またはファイルで Apache Tomcat ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.tomcatLogs.nameTitle": "Tomcatログ", + "home.tutorials.tomcatLogs.shortDescription": "Filebeatを使用してApache Tomcatサーバーからログを収集して解析します。", + "home.tutorials.traefikLogs.artifacts.dashboards.linkLabel": "Traefik アクセスログ", + "home.tutorials.traefikLogs.longDescription": "このモジュールは[Træfik](https://traefik.io/)により作成されたアクセスログを解析します。[詳細]({learnMoreLink})。", + "home.tutorials.traefikLogs.nameTitle": "Traefikログ", + "home.tutorials.traefikLogs.shortDescription": "Filebeatを使用してTraefikからログを収集して解析します。", + "home.tutorials.traefikMetrics.longDescription": "Metricbeat モジュール「traefik」は、Traefik からメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.traefikMetrics.nameTitle": "Traefikメトリック", + "home.tutorials.traefikMetrics.shortDescription": "Metricbeatを使用してTraefikからメトリックを収集します。", + "home.tutorials.uptimeMonitors.artifacts.dashboards.linkLabel": "Uptime アプリ", + "home.tutorials.uptimeMonitors.longDescription": "アクティブなプロービングでサービスの稼働状況を監視します。 Heartbeat は URL のリストに基づいて質問します。稼働していますか? [詳細]({learnMoreLink})。", + "home.tutorials.uptimeMonitors.nameTitle": "稼働状況監視", + "home.tutorials.uptimeMonitors.shortDescription": "Heartbeatでサービスの可用性を監視します。", + "home.tutorials.uwsgiMetrics.artifacts.dashboards.linkLabel": "uWSGI メトリックダッシュボード", + "home.tutorials.uwsgiMetrics.longDescription": "Metricbeat モジュール「uwsgi」は、uWSGI サーバーからメトリックを取得します。[詳細]({learnMoreLink})。", + "home.tutorials.uwsgiMetrics.nameTitle": "uWSGIメトリック", + "home.tutorials.uwsgiMetrics.shortDescription": "Metricbeatを使用してuWSGIサーバーからメトリックを収集します。", + "home.tutorials.vsphereMetrics.artifacts.application.label": "Discover", + "home.tutorials.vsphereMetrics.longDescription": "「vsphere」Metricbeat モジュールは、vSphere クラスターからメトリックを取得します。 [詳細]({learnMoreLink})。", + "home.tutorials.vsphereMetrics.nameTitle": "vSphereメトリック", + "home.tutorials.vsphereMetrics.shortDescription": "Metricbeatを使用してvSphereからメトリックを収集します。", + "home.tutorials.windowsEventLogs.artifacts.application.label": "SIEM アプリ", + "home.tutorials.windowsEventLogs.longDescription": "Winlogbeat を使用して Windows イベントログからログを収集します。[詳細]({learnMoreLink})。", + "home.tutorials.windowsEventLogs.nameTitle": "Windowsイベントログ", + "home.tutorials.windowsEventLogs.shortDescription": "WinLogBeatを使用してWindowsイベントログからログを収集して解析します。", + "home.tutorials.windowsMetrics.artifacts.application.label": "Discover", + "home.tutorials.windowsMetrics.longDescription": "「windows」Metricbeat モジュールは、Windows からメトリックを取得します。 [詳細]({learnMoreLink})。", + "home.tutorials.windowsMetrics.nameTitle": "Windowsメトリック", + "home.tutorials.windowsMetrics.shortDescription": "Metricbeatを使用してWindowsからメトリックを収集します。", + "home.tutorials.zeekLogs.artifacts.dashboards.linkLabel": "Zeek 概要", + "home.tutorials.zeekLogs.longDescription": "これは Zeek(旧称 Bro)のモジュールです。[Zeek JSON 形式](https://www.zeek.org/manual/release/logs/index.html)のログを解析します。 [詳細]({learnMoreLink})。", + "home.tutorials.zeekLogs.nameTitle": "Zeekログ", + "home.tutorials.zeekLogs.shortDescription": "Filebeatを使用してZeekネットワークセキュリティからログを収集して解析します。", + "home.tutorials.zookeeperMetrics.artifacts.application.label": "Discover", + "home.tutorials.zookeeperMetrics.longDescription": "「{moduleName}」Metricbeat モジュールは、Zookeeper サーバーからメトリックを取得します。 [詳細]({learnMoreLink})。", + "home.tutorials.zookeeperMetrics.nameTitle": "Zookeeperメトリック", + "home.tutorials.zookeeperMetrics.shortDescription": "Zookeeperを使用してuWSGIサーバーからメトリックを収集します。", + "home.tutorials.zscalerLogs.artifacts.dashboards.linkLabel": "セキュリティアプリ", + "home.tutorials.zscalerLogs.longDescription": "これは、Syslog またはファイルで Zscaler NSS ログを受信するためのモジュールです。[詳細]({learnMoreLink})。", + "home.tutorials.zscalerLogs.nameTitle": "Zscaler ログ", + "home.tutorials.zscalerLogs.shortDescription": "Filebeatを使用してZscaler NSSからログを収集して解析します。", + "home.welcomeTitle": "Elasticへようこそ", + "indexPatternEditor.aliasLabel": "エイリアス", + "indexPatternEditor.createIndex.noMatch": "名前は1つ以上のデータストリーム、インデックス、またはインデックスエイリアスと一致する必要があります。", + "indexPatternEditor.createIndexPattern.emptyState.checkDataButton": "新規データを確認", + "indexPatternEditor.createIndexPattern.emptyState.createAnywayTxt": "{link}もできます。", + "indexPatternEditor.createIndexPattern.emptyState.haveData": "すでにデータがある場合", + "indexPatternEditor.createIndexPattern.emptyState.integrationCardDescription": "さまざまなソースからデータを追加します。", + "indexPatternEditor.createIndexPattern.emptyState.integrationCardTitle": "統合の追加", + "indexPatternEditor.createIndexPattern.emptyState.learnMore": "詳細について", + "indexPatternEditor.createIndexPattern.emptyState.noDataTitle": "Kibanaを試しますか?まずデータが必要です。", + "indexPatternEditor.createIndexPattern.emptyState.readDocs": "ドキュメンテーションを表示", + "indexPatternEditor.createIndexPattern.emptyState.sampleDataCardDescription": "データセットとKibanaダッシュボードを読み込みます。", + "indexPatternEditor.createIndexPattern.emptyState.sampleDataCardTitle": "サンプルデータの追加", + "indexPatternEditor.createIndexPattern.emptyState.uploadCardDescription": "CSV、NDJSON、またはログファイルをインポートします。", + "indexPatternEditor.createIndexPattern.emptyState.uploadCardTitle": "ファイルをアップロード", + "indexPatternEditor.createIndexPattern.stepTime.noTimeFieldOptionLabel": "--- 時間フィルターを使用しない ---", + "indexPatternEditor.dataStreamLabel": "データストリーム", + "indexPatternEditor.editor.emptyPrompt.flyoutCloseButtonLabel": "閉じる", + "indexPatternEditor.editor.flyoutCloseButtonLabel": "閉じる", + "indexPatternEditor.editor.flyoutSaveButtonLabel": "インデックスパターンを作成", + "indexPatternEditor.editor.form.advancedSettings.hideButtonLabel": "高度な SIEM 設定の非表示化", + "indexPatternEditor.editor.form.advancedSettings.showButtonLabel": "高度なSIEM設定の表示", + "indexPatternEditor.editor.form.allowHiddenLabel": "非表示のインデックスとシステムインデックスを許可", + "indexPatternEditor.editor.form.customIdHelp": "Kibanaは各インデックスパターンの一意のIDを提供します。独自のIDを作成することもできます。", + "indexPatternEditor.editor.form.customIdLabel": "カスタムインデックスパターンID", + "indexPatternEditor.editor.form.noTimeFieldsLabel": "一致するデータストリーム、インデックス、またはインデックスエイリアスにはタイムスタンプフィールドがありません。", + "indexPatternEditor.editor.form.runtimeType.placeholderLabel": "タイムスタンプフィールドを選択", + "indexPatternEditor.editor.form.timeFieldHelp": "グローバル時間フィルターで使用するためのタイムスタンプフィールドを選択してください。", + "indexPatternEditor.editor.form.timeFieldLabel": "タイムスタンプフィールド", + "indexPatternEditor.editor.form.timestampFieldHelp": "グローバル時間フィルターで使用するためのタイムスタンプフィールドを選択してください。", + "indexPatternEditor.editor.form.timestampSelectAriaLabel": "タイムスタンプフィールド", + "indexPatternEditor.editor.form.titleLabel": "名前", + "indexPatternEditor.editor.form.TypeLabel": "インデックスパターンタイプ", + "indexPatternEditor.editor.form.typeSelectAriaLabel": "タイプフィールド", + "indexPatternEditor.emptyIndexPatternPrompt.documentation": "ドキュメンテーションを表示", + "indexPatternEditor.emptyIndexPatternPrompt.learnMore": "詳細について", + "indexPatternEditor.emptyIndexPatternPrompt.youHaveData": "Elasticsearchにデータがあります。", + "indexPatternEditor.form.allowHiddenAriaLabel": "非表示のインデックスとシステムインデックスを許可", + "indexPatternEditor.form.customIndexPatternIdLabel": "カスタムインデックスパターンID", + "indexPatternEditor.form.titleAriaLabel": "タイトルフィールド", + "indexPatternEditor.frozenLabel": "凍結", + "indexPatternEditor.indexLabel": "インデックス", + "indexPatternEditor.loadingHeader": "一致するインデックスを検索中…", + "indexPatternEditor.pagingLabel": "ページごとの行数:{perPage}", + "indexPatternEditor.requireTimestampOption.ValidationErrorMessage": "タイムスタンプフィールドを選択します。", + "indexPatternEditor.rollup.uncaughtError": "ロールアップインデックスパターンエラー:{error}", + "indexPatternEditor.rollupIndexPattern.warning.title": "ベータ機能", + "indexPatternEditor.rollupLabel": "ロールアップ", + "indexPatternEditor.saved": "Saved '{indexPatternTitle}'", + "indexPatternEditor.status.noSystemIndicesLabel": "データストリーム、インデックス、またはインデックスエイリアスがインデックスパターンと一致しません。", + "indexPatternEditor.status.noSystemIndicesWithPromptLabel": "データストリーム、インデックス、またはインデックスエイリアスがインデックスパターンと一致しません。", + "indexPatternEditor.status.notMatchLabel.notMatchDetail": "入力したインデックスパターンはデータストリーム、インデックス、またはインデックスエイリアスと一致しません。{strongIndices}と一致できます。", + "indexPatternEditor.status.notMatchLabel.notMatchNoIndicesDetail": "入力したインデックスパターンはデータストリーム、インデックス、またはインデックスエイリアスと一致しません。", + "indexPatternEditor.title": "インデックスパターンを作成", + "indexPatternEditor.typeSelect.betaLabel": "ベータ", + "indexPatternEditor.typeSelect.rollup": "ロールアップ", + "indexPatternEditor.typeSelect.rollupDescription": "要約データに制限された集約を実行します。", + "indexPatternEditor.typeSelect.rollupTitle": "ロールアップインデックスパターン", + "indexPatternEditor.typeSelect.standard": "スタンダード", + "indexPatternEditor.typeSelect.standardDescription": "すべてのデータに完全アグリゲーションを実行", + "indexPatternEditor.typeSelect.standardTitle": "標準インデックスパターン", + "indexPatternEditor.validations.titleHelpText": "複数の文字の一致にアスタリスク(*)を使用します。ペースと / ? , \" < > | 文字は使用できません。", + "indexPatternEditor.validations.titleIsRequiredErrorMessage": "名前が必要です。", + "indexPatternFieldEditor.cancelField.confirmationModal.cancelButtonLabel": "キャンセル", + "indexPatternFieldEditor.cancelField.confirmationModal.description": "フィールドの変更は破棄されます。続行しますか?", + "indexPatternFieldEditor.cancelField.confirmationModal.title": "変更を破棄", + "indexPatternFieldEditor.color.actions": "アクション", + "indexPatternFieldEditor.color.addColorButton": "色を追加", + "indexPatternFieldEditor.color.backgroundLabel": "背景色", + "indexPatternFieldEditor.color.deleteAria": "削除", + "indexPatternFieldEditor.color.deleteTitle": "色のフォーマットを削除", + "indexPatternFieldEditor.color.exampleLabel": "例", + "indexPatternFieldEditor.color.patternLabel": "パターン(正規表現)", + "indexPatternFieldEditor.color.rangeLabel": "範囲(min:max)", + "indexPatternFieldEditor.color.textColorLabel": "文字の色", + "indexPatternFieldEditor.createField.flyoutAriaLabel": "フィールドを作成", + "indexPatternFieldEditor.date.documentationLabel": "ドキュメント", + "indexPatternFieldEditor.date.momentLabel": "Moment.jsのフォーマットパターン(デフォルト:{defaultPattern})", + "indexPatternFieldEditor.defaultErrorMessage": "このフォーマット構成の使用を試みた際にエラーが発生しました:{message}", + "indexPatternFieldEditor.defaultFormatDropDown": "- デフォルト -", + "indexPatternFieldEditor.defaultFormatHeader": "フォーマット(デフォルト:{defaultFormat})", + "indexPatternFieldEditor.deleteField.savedHeader": "「{fieldName}」が保存されました", + "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.cancelButtonLabel": "キャンセル", + "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.removeButtonLabel": "フィールドの削除", + "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.removeMultipleButtonLabel": "フィールドの削除", + "indexPatternFieldEditor.deleteRuntimeField.confirmationModal.saveButtonLabel": "変更を保存", + "indexPatternFieldEditor.deleteRuntimeField.confirmModal.deleteMultipleTitle": "{count}個のフィールドを削除", + "indexPatternFieldEditor.deleteRuntimeField.confirmModal.deleteSingleTitle": "フィールド'{name}'を削除", + "indexPatternFieldEditor.deleteRuntimeField.confirmModal.multipleDeletionDescription": "これらのランタイムフィールドを削除しようとしています。", + "indexPatternFieldEditor.deleteRuntimeField.confirmModal.typeConfirm": "REMOVEと入力すると確認します", + "indexPatternFieldEditor.deleteRuntimeField.confirmModal.warningChangingFields": "名前または型を変更すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", + "indexPatternFieldEditor.deleteRuntimeField.confirmModal.warningRemovingFields": "フィールドを削除すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", + "indexPatternFieldEditor.duration.decimalPlacesLabel": "小数部分の桁数", + "indexPatternFieldEditor.duration.includeSpace": "サフィックスと値の間にスペースを入れる", + "indexPatternFieldEditor.duration.inputFormatLabel": "インプット形式", + "indexPatternFieldEditor.duration.outputFormatLabel": "アウトプット形式", + "indexPatternFieldEditor.duration.showSuffixLabel": "接尾辞を表示", + "indexPatternFieldEditor.duration.showSuffixLabel.short": "短縮サフィックスを使用", + "indexPatternFieldEditor.durationErrorMessage": "小数部分の桁数は0から20までの間で指定する必要があります", + "indexPatternFieldEditor.editField.flyoutAriaLabel": "{fieldName} フィールドの編集", + "indexPatternFieldEditor.editor.flyoutCancelButtonLabel": "キャンセル", + "indexPatternFieldEditor.editor.flyoutDefaultTitle": "フィールドを作成", + "indexPatternFieldEditor.editor.flyoutEditFieldSubtitle": "インデックスパターン:{patternName}", + "indexPatternFieldEditor.editor.flyoutEditFieldTitle": "「{fieldName}」フィールドの編集", + "indexPatternFieldEditor.editor.flyoutSaveButtonLabel": "保存", + "indexPatternFieldEditor.editor.form.advancedSettings.hideButtonLabel": "高度な SIEM 設定の非表示化", + "indexPatternFieldEditor.editor.form.advancedSettings.showButtonLabel": "高度なSIEM設定の表示", + "indexPatternFieldEditor.editor.form.changeWarning": "名前または型を変更すると、このフィールドに依存する検索およびビジュアライゼーションが破損する可能性があります。", + "indexPatternFieldEditor.editor.form.customLabelDescription": "Discover、Maps、Visualizeでフィールド名の代わりに表示するラベルを作成します。長いフィールド名を短くする際に役立ちます。 クエリとフィルターは元のフィールド名を使用します。", + "indexPatternFieldEditor.editor.form.customLabelLabel": "カスタムラベル", + "indexPatternFieldEditor.editor.form.customLabelTitle": "カスタムラベルを設定", + "indexPatternFieldEditor.editor.form.defineFieldLabel": "スクリプトを定義", + "indexPatternFieldEditor.editor.form.fieldShadowingCalloutDescription": "このフィールドはマッピングされたフィールドの名前を共有します。このフィールドの値は検索結果に返されます。", + "indexPatternFieldEditor.editor.form.fieldShadowingCalloutTitle": "フィールドシャドーイング", + "indexPatternFieldEditor.editor.form.formatDescription": "値を表示する任意の形式を設定します。形式を変更すると値に影響し、Discoverでのハイライトができない可能性があります。", + "indexPatternFieldEditor.editor.form.formatTitle": "フォーマットの設定", + "indexPatternFieldEditor.editor.form.nameAriaLabel": "名前フィールド", + "indexPatternFieldEditor.editor.form.nameLabel": "名前", + "indexPatternFieldEditor.editor.form.popularityDescription": "ポピュラリティを調整し、フィールドリストでフィールドを上下に表示させます。 デフォルトでは、Discoverは選択の多いものから選択の少ないものの順に表示します。", + "indexPatternFieldEditor.editor.form.popularityLabel": "利用頻度", + "indexPatternFieldEditor.editor.form.popularityTitle": "ポピュラリティ", + "indexPatternFieldEditor.editor.form.runtimeType.placeholderLabel": "タイプを選択", + "indexPatternFieldEditor.editor.form.runtimeTypeLabel": "型", + "indexPatternFieldEditor.editor.form.script.learnMoreLinkText": "スクリプト構文の詳細を参照してください。", + "indexPatternFieldEditor.editor.form.scriptEditor.compileErrorMessage": "Painlessスクリプトのコンパイルエラー", + "indexPatternFieldEditor.editor.form.scriptEditorAriaLabel": "スクリプトエディター", + "indexPatternFieldEditor.editor.form.source.scriptFieldHelpText": "スクリプトがないランタイムフィールドは、{source}から値を取得します。フィールドが_sourceに存在しない場合は、検索リクエストは値を返しません。{learnMoreLink}", + "indexPatternFieldEditor.editor.form.typeSelectAriaLabel": "タイプ選択", + "indexPatternFieldEditor.editor.form.validations.customLabelIsRequiredErrorMessage": "フィールドにラベルを付けます。", + "indexPatternFieldEditor.editor.form.validations.nameIsRequiredErrorMessage": "名前が必要です。", + "indexPatternFieldEditor.editor.form.validations.popularityGreaterThan0ErrorMessage": "ポピュラリティはゼロ以上でなければなりません。", + "indexPatternFieldEditor.editor.form.validations.popularityIsRequiredErrorMessage": "フィールドにポピュラリティを割り当てます。", + "indexPatternFieldEditor.editor.form.validations.scriptIsRequiredErrorMessage": "フィールド値を設定するには、スクリプトが必要です。", + "indexPatternFieldEditor.editor.form.valueDescription": "{source}の同じ名前のフィールドから取得するのではなく、フィールドの値を設定します。", + "indexPatternFieldEditor.editor.form.valueTitle": "値を設定", + "indexPatternFieldEditor.editor.runtimeFieldsEditor.existRuntimeFieldNamesValidationErrorMessage": "この名前のフィールドはすでに存在します。", + "indexPatternFieldEditor.fieldPreview.documentIdField.label": "ドキュメントID", + "indexPatternFieldEditor.fieldPreview.documentIdField.loadDocumentsFromCluster": "クラスターからドキュメントを読み込む", + "indexPatternFieldEditor.fieldPreview.documentNav.nextArialabel": "次のドキュメント", + "indexPatternFieldEditor.fieldPreview.documentNav.previousArialabel": "前のドキュメント", + "indexPatternFieldEditor.fieldPreview.emptyPromptDescription": "既存のフィールドの名前を入力するか、スクリプトを定義して、計算された出力のプレビューを表示します。", + "indexPatternFieldEditor.fieldPreview.emptyPromptTitle": "プレビュー", + "indexPatternFieldEditor.fieldPreview.error.documentNotFoundDescription": "ドキュメントIDが見つかりません", + "indexPatternFieldEditor.fieldPreview.errorCallout.title": "プレビューエラー", + "indexPatternFieldEditor.fieldPreview.errorTitle": "フィールドプレビューを読み込めませんでした", + "indexPatternFieldEditor.fieldPreview.filterFieldsPlaceholder": "フィールドのフィルタリング", + "indexPatternFieldEditor.fieldPreview.pinFieldButtonLabel": "フィールドを固定", + "indexPatternFieldEditor.fieldPreview.searchResult.emptyPrompt.clearSearchButtonLabel": "検索のクリア", + "indexPatternFieldEditor.fieldPreview.searchResult.emptyPromptTitle": "このインデックスパターンには一致するフィールドがありません", + "indexPatternFieldEditor.fieldPreview.showLessFieldsButtonLabel": "簡易表示", + "indexPatternFieldEditor.fieldPreview.showMoreFieldsButtonLabel": "詳細表示", + "indexPatternFieldEditor.fieldPreview.subTitle": "開始:{from}", + "indexPatternFieldEditor.fieldPreview.subTitle.customData": "カスタムデータ", + "indexPatternFieldEditor.fieldPreview.title": "プレビュー", + "indexPatternFieldEditor.fieldPreview.updatingPreviewLabel": "更新中...", + "indexPatternFieldEditor.fieldPreview.viewImageButtonLabel": "画像を表示", + "indexPatternFieldEditor.formatHeader": "フォーマット", + "indexPatternFieldEditor.histogram.histogramAsNumberLabel": "アグリゲーションされた数値形式", + "indexPatternFieldEditor.histogram.numeralLabel": "数値形式パターン(任意)", + "indexPatternFieldEditor.histogram.subFormat.bytes": "バイト", + "indexPatternFieldEditor.histogram.subFormat.number": "数字", + "indexPatternFieldEditor.histogram.subFormat.percent": "割合(%)", + "indexPatternFieldEditor.noSuchFieldName": "フィールド名'{fieldName}'はインデックスパターンで見つかりません", + "indexPatternFieldEditor.number.documentationLabel": "ドキュメント", + "indexPatternFieldEditor.number.numeralLabel": "Numeral.js のフォーマットパターン (デフォルト: {defaultPattern})", + "indexPatternFieldEditor.samples.inputHeader": "インプット", + "indexPatternFieldEditor.samples.outputHeader": "アウトプット", + "indexPatternFieldEditor.samplesHeader": "サンプル", + "indexPatternFieldEditor.save.deleteErrorTitle": "フィールド削除を保存できませんでした", + "indexPatternFieldEditor.save.errorTitle": "フィールド変更を保存できませんでした", + "indexPatternFieldEditor.saveRuntimeField.confirmationModal.cancelButtonLabel": "キャンセル", + "indexPatternFieldEditor.saveRuntimeField.confirmModal.title": "変更を'{name}'に保存", + "indexPatternFieldEditor.saveRuntimeField.confirmModal.typeConfirm": "続行するにはCHANGEと入力します", + "indexPatternFieldEditor.staticLookup.actions": "アクション", + "indexPatternFieldEditor.staticLookup.addEntryButton": "エントリーを追加", + "indexPatternFieldEditor.staticLookup.deleteAria": "削除", + "indexPatternFieldEditor.staticLookup.deleteTitle": "エントリーの削除", + "indexPatternFieldEditor.staticLookup.keyLabel": "キー", + "indexPatternFieldEditor.staticLookup.leaveBlankPlaceholder": "値をそのままにするには空欄にします", + "indexPatternFieldEditor.staticLookup.unknownKeyLabel": "不明なキーの値", + "indexPatternFieldEditor.staticLookup.valueLabel": "値", + "indexPatternFieldEditor.string.transformLabel": "変換", + "indexPatternFieldEditor.truncate.lengthLabel": "フィールドの長さ", + "indexPatternFieldEditor.url.heightLabel": "高さ", + "indexPatternFieldEditor.url.labelTemplateHelpText": "ラベルテンプレートのヘルプ", + "indexPatternFieldEditor.url.labelTemplateLabel": "ラベルテンプレート", + "indexPatternFieldEditor.url.offLabel": "オフ", + "indexPatternFieldEditor.url.onLabel": "オン", + "indexPatternFieldEditor.url.openTabLabel": "新規タブで開く", + "indexPatternFieldEditor.url.template.helpLinkText": "URLテンプレートのヘルプ", + "indexPatternFieldEditor.url.typeLabel": "型", + "indexPatternFieldEditor.url.urlTemplateLabel": "URLテンプレート", + "indexPatternFieldEditor.url.widthLabel": "幅", + "indexPatternManagement.actions.cancelButton": "キャンセル", + "indexPatternManagement.actions.createButton": "フィールドを作成", + "indexPatternManagement.actions.deleteButton": "削除", + "indexPatternManagement.actions.saveButton": "フィールドを保存", + "indexPatternManagement.createHeader": "スクリプトフィールドを作成", + "indexPatternManagement.customLabel": "カスタムラベル", + "indexPatternManagement.defaultFormatDropDown": "- デフォルト -", + "indexPatternManagement.defaultFormatHeader": "フォーマット(デフォルト:{defaultFormat})", + "indexPatternManagement.deleteField.cancelButton": "キャンセル", + "indexPatternManagement.deleteField.deleteButton": "削除", + "indexPatternManagement.deleteField.deletedHeader": "「{fieldName}」が削除されました", + "indexPatternManagement.deleteField.savedHeader": "「{fieldName}」が保存されました", + "indexPatternManagement.deleteFieldHeader": "フィールド「{fieldName}」を削除", + "indexPatternManagement.deleteFieldLabel": "削除されたフィールドは復元できません。{separator}続行してよろしいですか?", + "indexPatternManagement.disabledCallOutHeader": "スクリプティングが無効です", + "indexPatternManagement.disabledCallOutLabel": "Elasticsearchでのすべてのインラインスクリプティングが無効になっています。Kibanaでスクリプトフィールドを使用するには、インラインスクリプティングを有効にする必要があります。", + "indexPatternManagement.editHeader": "{fieldName}を編集", + "indexPatternManagement.editIndexPattern.deleteButton": "削除", + "indexPatternManagement.editIndexPattern.deprecation": "スクリプトフィールドは廃止予定です。代わりに{runtimeDocs}を使用してください。", + "indexPatternManagement.editIndexPattern.fields.addFieldButtonLabel": "フィールドの追加", + "indexPatternManagement.editIndexPattern.fields.allLangsDropDown": "すべての言語", + "indexPatternManagement.editIndexPattern.fields.allTypesDropDown": "すべてのフィールドタイプ", + "indexPatternManagement.editIndexPattern.fields.filterAria": "フィールドタイプをフィルター", + "indexPatternManagement.editIndexPattern.fields.filterPlaceholder": "検索", + "indexPatternManagement.editIndexPattern.fields.searchAria": "検索フィールド", + "indexPatternManagement.editIndexPattern.fields.table.additionalInfoAriaLabel": "追加フィールド情報", + "indexPatternManagement.editIndexPattern.fields.table.aggregatableDescription": "これらのフィールドはビジュアライゼーションの集約に使用できます", + "indexPatternManagement.editIndexPattern.fields.table.aggregatableLabel": "集約可能", + "indexPatternManagement.editIndexPattern.fields.table.customLabelTooltip": "フィールドのカスタムラベル。", + "indexPatternManagement.editIndexPattern.fields.table.deleteDescription": "削除", + "indexPatternManagement.editIndexPattern.fields.table.deleteLabel": "削除", + "indexPatternManagement.editIndexPattern.fields.table.editDescription": "編集", + "indexPatternManagement.editIndexPattern.fields.table.editLabel": "編集", + "indexPatternManagement.editIndexPattern.fields.table.excludedDescription": "取得の際に_sourceから除外されるフィールドです", + "indexPatternManagement.editIndexPattern.fields.table.excludedLabel": "除外", + "indexPatternManagement.editIndexPattern.fields.table.formatHeader": "フォーマット", + "indexPatternManagement.editIndexPattern.fields.table.isAggregatableAria": "は集約可能です", + "indexPatternManagement.editIndexPattern.fields.table.isExcludedAria": "は除外されています", + "indexPatternManagement.editIndexPattern.fields.table.isSearchableAria": "は検索可能です", + "indexPatternManagement.editIndexPattern.fields.table.multiTypeAria": "複数タイプのフィールド", + "indexPatternManagement.editIndexPattern.fields.table.multiTypeTooltip": "このフィールドのタイプはインデックスごとに変わります。多くの分析機能には使用できません。", + "indexPatternManagement.editIndexPattern.fields.table.nameHeader": "名前", + "indexPatternManagement.editIndexPattern.fields.table.primaryTimeAriaLabel": "プライマリ時間フィールド", + "indexPatternManagement.editIndexPattern.fields.table.primaryTimeTooltip": "このフィールドはイベントの発生時刻を表します。", + "indexPatternManagement.editIndexPattern.fields.table.runtimeIconTipTitle": "ランタイムフィールド", + "indexPatternManagement.editIndexPattern.fields.table.searchableDescription": "これらのフィールドはフィルターバーで使用できます", + "indexPatternManagement.editIndexPattern.fields.table.searchableHeader": "検索可能", + "indexPatternManagement.editIndexPattern.fields.table.typeHeader": "型", + "indexPatternManagement.editIndexPattern.list.DateHistogramDelaySummary": "遅延:{delay},", + "indexPatternManagement.editIndexPattern.list.dateHistogramSummary": "{aggName} (間隔:{interval}, {delay} {time_zone})", + "indexPatternManagement.editIndexPattern.list.defaultIndexPatternListName": "デフォルト", + "indexPatternManagement.editIndexPattern.list.histogramSummary": "{aggName} (間隔:{interval})", + "indexPatternManagement.editIndexPattern.list.rollupIndexPatternListName": "ロールアップ", + "indexPatternManagement.editIndexPattern.mappingConflictHeader": "マッピングの矛盾", + "indexPatternManagement.editIndexPattern.scripted.addFieldButton": "スクリプトフィールドを追加", + "indexPatternManagement.editIndexPattern.scripted.deleteField.cancelButton": "キャンセル", + "indexPatternManagement.editIndexPattern.scripted.deleteField.deleteButton": "削除", + "indexPatternManagement.editIndexPattern.scripted.deleteFieldLabel": "スクリプトフィールド「{fieldName}」を削除しますか?", + "indexPatternManagement.editIndexPattern.scripted.deprecationLangHeader": "廃止された言語が使用されています", + "indexPatternManagement.editIndexPattern.scripted.deprecationLangLabel.deprecationLangDetail": "次の廃止された言語が使用されています。{deprecatedLangsInUse}これらの言語は、KibanaとElasticsearchの次のメジャーバージョンでサポートされなくなります。問題を避けるため、スクリプトフィールドを{link}に変換してください。", + "indexPatternManagement.editIndexPattern.scripted.deprecationLangLabel.painlessDescription": "Painless", + "indexPatternManagement.editIndexPattern.scripted.newFieldPlaceholder": "新規スクリプトフィールド", + "indexPatternManagement.editIndexPattern.scripted.table.deleteDescription": "このフィールドを削除します", + "indexPatternManagement.editIndexPattern.scripted.table.deleteHeader": "削除", + "indexPatternManagement.editIndexPattern.scripted.table.editDescription": "このフィールドを編集します", + "indexPatternManagement.editIndexPattern.scripted.table.editHeader": "編集", + "indexPatternManagement.editIndexPattern.scripted.table.formatDescription": "フィールドに使用されているフォーマットです", + "indexPatternManagement.editIndexPattern.scripted.table.formatHeader": "フォーマット", + "indexPatternManagement.editIndexPattern.scripted.table.langDescription": "フィールドに使用されている言語です", + "indexPatternManagement.editIndexPattern.scripted.table.langHeader": "言語", + "indexPatternManagement.editIndexPattern.scripted.table.nameDescription": "フィールドの名前です", + "indexPatternManagement.editIndexPattern.scripted.table.nameHeader": "名前", + "indexPatternManagement.editIndexPattern.scripted.table.scriptDescription": "フィールドのスクリプトです", + "indexPatternManagement.editIndexPattern.scripted.table.scriptHeader": "スクリプト", + "indexPatternManagement.editIndexPattern.scriptedLabel": "スクリプトフィールドはビジュアライゼーションで使用され、ドキュメントに表示できます。ただし、検索することはできません。", + "indexPatternManagement.editIndexPattern.source.addButtonLabel": "追加", + "indexPatternManagement.editIndexPattern.source.deleteFilter.cancelButtonLabel": "キャンセル", + "indexPatternManagement.editIndexPattern.source.deleteFilter.deleteButtonLabel": "削除", + "indexPatternManagement.editIndexPattern.source.deleteSourceFilterLabel": "フィールドフィルター「{value}」を削除しますか?", + "indexPatternManagement.editIndexPattern.source.noteLabel": "下の表で、マルチフィールドが一致として誤って表示されます。これらのフィルターは、オリジナルのソースドキュメントのフィールドのみに適用されるため、一致するマルチフィールドはフィルタリングされません。", + "indexPatternManagement.editIndexPattern.source.table.cancelAria": "キャンセル", + "indexPatternManagement.editIndexPattern.source.table.deleteAria": "削除", + "indexPatternManagement.editIndexPattern.source.table.editAria": "編集", + "indexPatternManagement.editIndexPattern.source.table.filterDescription": "フィルター名", + "indexPatternManagement.editIndexPattern.source.table.filterHeader": "フィルター", + "indexPatternManagement.editIndexPattern.source.table.matchesDescription": "フィールドに使用されている言語です", + "indexPatternManagement.editIndexPattern.source.table.matchesHeader": "一致", + "indexPatternManagement.editIndexPattern.source.table.notMatchedLabel": "ソースフィルターが既知のフィールドと一致しません。", + "indexPatternManagement.editIndexPattern.source.table.saveAria": "保存", + "indexPatternManagement.editIndexPattern.sourceLabel": "フィールドフィルターは、ドキュメントの取得時に 1 つまたは複数のフィールドを除外するのに使用される場合もあります。これは Discover アプリでのドキュメントの表示中、またはダッシュボードアプリの保存された検索の結果を表示する表で起こります。ドキュメントに大きなフィールドや重要ではないフィールドが含まれている場合、この程度の低いレベルでフィルターにより除外すると良いかもしれません。", + "indexPatternManagement.editIndexPattern.sourcePlaceholder": "フィールドフィルター、ワイルドカード使用可(例:「user*」と入力して「user」で始まるフィールドをフィルタリング)", + "indexPatternManagement.editIndexPattern.tabs.fieldsHeader": "フィールド", + "indexPatternManagement.editIndexPattern.tabs.scriptedHeader": "スクリプトフィールド", + "indexPatternManagement.editIndexPattern.tabs.sourceHeader": "フィールドフィルター", + "indexPatternManagement.editIndexPattern.timeFilterHeader": "時刻フィールド:「{timeFieldName}」", + "indexPatternManagement.editIndexPattern.timeFilterLabel.mappingAPILink": "フィールドマッピング", + "indexPatternManagement.editIndexPattern.timeFilterLabel.timeFilterDetail": "{indexPatternTitle}でフィールドを表示して編集します。型や検索可否などのフィールド属性はElasticsearchで{mappingAPILink}に基づきます。", + "indexPatternManagement.fieldTypeConflict": "フィールドタイプの矛盾", + "indexPatternManagement.formatHeader": "フォーマット", + "indexPatternManagement.formatLabel": "書式設定は値の表示方法を制御します。この設定を変更すると、Discoverでのフィールド値とハイライトにも影響する場合があります。", + "indexPatternManagement.header.runtimeLink": "ランタイムフィールド", + "indexPatternManagement.indexNameLabel": "インデックス名", + "indexPatternManagement.indexPatterns.badge.readOnly.text": "読み取り専用", + "indexPatternManagement.indexPatterns.createFieldBreadcrumb": "フィールドを作成", + "indexPatternManagement.labelHelpText": "このフィールドが Discover、Maps、Visualize に表示されるときに使用するカスタムラベルを設定します。現在、クエリとフィルターはカスタムラベルをサポートせず、元のフィールド名が使用されます。", + "indexPatternManagement.languageLabel": "言語", + "indexPatternManagement.mappingConflictLabel.mappingConflictDetail": "{mappingConflict} {fieldName}というフィールドはすでに存在します。スクリプトフィールドに同じ名前を付けると、同時に両方のフィールドにクエリが実行できなくなります。", + "indexPatternManagement.mappingConflictLabel.mappingConflictLabel": "マッピングの矛盾:", + "indexPatternManagement.multiTypeLabelDesc": "このフィールドのタイプはインデックスごとに変わります。多くの分析機能には使用できません。タイプごとのインデックスは次のとおりです。", + "indexPatternManagement.nameErrorMessage": "名前が必要です", + "indexPatternManagement.nameLabel": "名前", + "indexPatternManagement.namePlaceholder": "新規スクリプトフィールド", + "indexPatternManagement.popularityLabel": "利用頻度", + "indexPatternManagement.script.accessWithLabel": "{code} でフィールドにアクセスします。", + "indexPatternManagement.script.getHelpLabel": "構文のヒントを得たり、スクリプトの結果をプレビューしたりできます。", + "indexPatternManagement.scriptedFieldsDeprecatedBody": "柔軟性とPainlessスクリプトサポートを強化するには、{runtimeDocs}を使用してください。", + "indexPatternManagement.scriptedFieldsDeprecatedTitle": "スクリプトフィールドは廃止予定です。", + "indexPatternManagement.scriptingLanguages.errorFetchingToastDescription": "Elasticsearchから利用可能なスクリプト言語の取得中にエラーが発生しました", + "indexPatternManagement.scriptInvalidErrorMessage": "スクリプトが無効です。詳細については、スクリプトプレビューを表示してください", + "indexPatternManagement.scriptLabel": "スクリプト", + "indexPatternManagement.scriptLabelAriaLabel": "スクリプトエディター", + "indexPatternManagement.scriptRequiredErrorMessage": "スクリプトが必要です", + "indexPatternManagement.syntax.default.formatLabel": "doc['some_field'].value", + "indexPatternManagement.syntax.defaultLabel.defaultDetail": "デフォルトで、KibanaのスクリプトフィールドはElasticsearchでの使用を目的に特別に開発されたシンプルでセキュアなスクリプト言語の{painless}を使用します。ドキュメントの値にアクセスするには次のフォーマットを使用します。", + "indexPatternManagement.syntax.defaultLabel.painlessLink": "Painless", + "indexPatternManagement.syntax.kibanaLabel": "現在、Kibanaでは、作成するPainlessスクリプトに特別な制限が1つ設定されています。Named関数を含めることができません。", + "indexPatternManagement.syntax.lucene.commonLabel.commonDetail": "Kibanaの旧バージョンからのアップグレードですか?おなじみの{lucene}は引き続きご利用いただけます。Lucene式はJavaScriptと非常に似ていますが、基本的な計算、ビット処理、比較オペレーション用に開発されたものです。", + "indexPatternManagement.syntax.lucene.commonLabel.luceneLink": "Lucene表現", + "indexPatternManagement.syntax.lucene.limits.fieldsLabel": "格納されたフィールドは利用できません", + "indexPatternManagement.syntax.lucene.limits.sparseLabel": "フィールドがまばらな(ドキュメントの一部にしか値がない)場合、値がないドキュメントには 0 の値が入力されます", + "indexPatternManagement.syntax.lucene.limits.typesLabel": "数字、ブール、日付、geo_pointフィールドのみアクセスできます", + "indexPatternManagement.syntax.lucene.limitsLabel": "Lucene表現には次のいくつかの制限があります。", + "indexPatternManagement.syntax.lucene.operations.arithmeticLabel": "算術演算子:{operators}", + "indexPatternManagement.syntax.lucene.operations.bitwiseLabel": "ビット処理演算子:{operators}", + "indexPatternManagement.syntax.lucene.operations.booleanLabel": "ブール演算子(三項演算子を含む):{operators}", + "indexPatternManagement.syntax.lucene.operations.comparisonLabel": "比較演算子:{operators}", + "indexPatternManagement.syntax.lucene.operations.distanceLabel": "距離関数:{operators}", + "indexPatternManagement.syntax.lucene.operations.mathLabel": "一般的な関数:{operators}", + "indexPatternManagement.syntax.lucene.operations.miscellaneousLabel": "その他関数:{operators}", + "indexPatternManagement.syntax.lucene.operations.trigLabel": "三角ライブラリ関数:{operators}", + "indexPatternManagement.syntax.lucene.operationsLabel": "Lucene表現で利用可能なオペレーションは次のとおりです。", + "indexPatternManagement.syntax.painlessLabel.javaAPIsLink": "ネイティブJava API", + "indexPatternManagement.syntax.painlessLabel.painlessDetail": "Painlessは非常に強力かつ使いやすい言語です。多くの{javaAPIs}にアクセスすることができます。{syntax}について読めば、すぐに習得することができます!", + "indexPatternManagement.syntax.painlessLabel.syntaxLink": "構文", + "indexPatternManagement.syntaxHeader": "構文", + "indexPatternManagement.testScript.errorMessage": "スクリプト内にエラーがあります", + "indexPatternManagement.testScript.fieldsLabel": "追加フィールド", + "indexPatternManagement.testScript.fieldsPlaceholder": "選択してください...", + "indexPatternManagement.testScript.instructions": "スクリプトを実行すると、最初の検索結果10件をプレビューできます。追加フィールドを選択して結果に含み、コンテキストをさらに加えたり、特定の文書上でフィルターにクエリを追加したりすることもできます。", + "indexPatternManagement.testScript.resultsLabel": "最初の10件", + "indexPatternManagement.testScript.resultsTitle": "結果を表示", + "indexPatternManagement.testScript.submitButtonLabel": "スクリプトを実行", + "indexPatternManagement.typeLabel": "型", + "indexPatternManagement.warningCallOutLabel.callOutDetail": "この機能を使う前に、{scripFields}と{scriptsInAggregation}についてよく理解するようにしてください。計算値の表示と集約にスクリプトフィールドが使用できます。そのため非常に遅い場合があり、適切に行わないとKibanaが使用できなくなる可能性もあります。", + "indexPatternManagement.warningCallOutLabel.runtimeLink": "ランタイムフィールド", + "indexPatternManagement.warningCallOutLabel.scripFieldsLink": "スクリプトフィールド", + "indexPatternManagement.warningCallOutLabel.scriptsInAggregationLink": "集約におけるスクリプト", + "indexPatternManagement.warningHeader": "廃止警告:", + "indexPatternManagement.warningLabel.painlessLinkLabel": "Painless", + "indexPatternManagement.warningLabel.warningDetail": "{language}は廃止され、KibanaとElasticsearchの次のメジャーバージョンではサポートされなくなります。新規スクリプトフィールドには{painlessLink}を使うことをお勧めします。", + "inputControl.control.noIndexPatternTooltip": "index-pattern id が見つかりませんでした:{indexPatternId}.", + "inputControl.control.notInitializedTooltip": "コントロールが初期化されていません", + "inputControl.control.noValuesDisableTooltip": "「{indexPatternName}」インデックスパターンでいずれのドキュメントにも存在しない「{fieldName}」フィールドがフィルターの対象になっています。異なるフィールドを選択するか、このフィールドに値が入力されているドキュメントをインデックスしてください。", + "inputControl.editor.controlEditor.controlLabel": "コントロールラベル", + "inputControl.editor.controlEditor.moveControlDownAriaLabel": "コントロールを下に移動", + "inputControl.editor.controlEditor.moveControlUpAriaLabel": "コントロールを上に移動", + "inputControl.editor.controlEditor.removeControlAriaLabel": "コントロールを削除", + "inputControl.editor.controlsTab.addButtonLabel": "追加", + "inputControl.editor.controlsTab.select.addControlAriaLabel": "コントロールを追加", + "inputControl.editor.controlsTab.select.controlTypeAriaLabel": "コントロールタイプを選択してください", + "inputControl.editor.controlsTab.select.listDropDownOptionLabel": "オプションリスト", + "inputControl.editor.controlsTab.select.rangeDropDownOptionLabel": "範囲スライダー", + "inputControl.editor.fieldSelect.fieldLabel": "フィールド", + "inputControl.editor.fieldSelect.selectFieldPlaceholder": "フィールドを選択してください...", + "inputControl.editor.indexPatternSelect.patternLabel": "インデックスパターン", + "inputControl.editor.indexPatternSelect.patternPlaceholder": "インデックスパターンを選択してください...", + "inputControl.editor.listControl.dynamicOptions.stringFieldDescription": "「文字列」フィールドでのみ利用可能", + "inputControl.editor.listControl.dynamicOptions.updateDescription": "ユーザーインプットに対する更新オプション", + "inputControl.editor.listControl.dynamicOptionsLabel": "ダイナミックオプション", + "inputControl.editor.listControl.multiselectDescription": "複数選択を許可", + "inputControl.editor.listControl.multiselectLabel": "複数選択", + "inputControl.editor.listControl.parentDescription": "オプションは親コントロールの値がベースになっています。親が設定されていない場合は無効です。", + "inputControl.editor.listControl.parentLabel": "親コントロール", + "inputControl.editor.listControl.sizeDescription": "オプション数", + "inputControl.editor.listControl.sizeLabel": "サイズ", + "inputControl.editor.optionsTab.pinFiltersLabel": "すべてのアプリケーションのフィルターをピン付け", + "inputControl.editor.optionsTab.updateFilterLabel": "変更するごとに Kibana フィルターを更新", + "inputControl.editor.optionsTab.useTimeFilterLabel": "時間フィルターを使用", + "inputControl.editor.rangeControl.decimalPlacesLabel": "小数部分の桁数", + "inputControl.editor.rangeControl.stepSizeLabel": "ステップサイズ", + "inputControl.function.help": "インプットコントロールビジュアライゼーション", + "inputControl.listControl.disableTooltip": "「{label}」が設定されるまで無効です。", + "inputControl.listControl.unableToFetchTooltip": "用語を取得できません、エラー:{errorMessage}", + "inputControl.rangeControl.unableToFetchTooltip": "範囲(最低値と最高値)を取得できません、エラー: {errorMessage}", + "inputControl.register.controlsDescription": "ドロップダウンメニューと範囲スライダーをダッシュボードに追加します。", + "inputControl.register.controlsTitle": "コントロール", + "inputControl.register.tabs.controlsTitle": "コントロール", + "inputControl.register.tabs.optionsTitle": "オプション", + "inputControl.vis.inputControlVis.applyChangesButtonLabel": "変更を適用", + "inputControl.vis.inputControlVis.cancelChangesButtonLabel": "変更をキャンセル", + "inputControl.vis.inputControlVis.clearFormButtonLabel": "用語を消去", + "inputControl.vis.listControl.partialResultsWarningMessage": "リクエストに長くかかり過ぎているため、用語リストが不完全な可能性があります。完全な結果を得るには、kibana.yml の自動完了設定を調整してください。", + "inputControl.vis.listControl.selectPlaceholder": "選択してください...", + "inputControl.vis.listControl.selectTextPlaceholder": "選択してください...", + "inspector.closeButton": "インスペクターを閉じる", + "inspector.reqTimestampDescription": "リクエストの開始が記録された時刻です", + "inspector.reqTimestampKey": "リクエストのタイムスタンプ", + "inspector.requests.copyToClipboardLabel": "クリップボードにコピー", + "inspector.requests.descriptionRowIconAriaLabel": "説明", + "inspector.requests.failedLabel": " (失敗)", + "inspector.requests.noRequestsLoggedDescription.elementHasNotLoggedAnyRequestsText": "エレメントが(まだ)リクエストを記録していません。", + "inspector.requests.noRequestsLoggedDescription.whatDoesItUsuallyMeanText": "これは通常、データを取得する必要がないか、エレメントがまだデータの取得を開始していないことを意味します。", + "inspector.requests.noRequestsLoggedTitle": "リクエストが記録されていません", + "inspector.requests.openInConsoleLabel": "コンソールで開く", + "inspector.requests.requestFailedTooltipTitle": "リクエストに失敗しました", + "inspector.requests.requestInProgressAriaLabel": "リクエストが進行中", + "inspector.requests.requestsDescriptionTooltip": "データを収集したリクエストを表示します", + "inspector.requests.requestsTitle": "リクエスト", + "inspector.requests.requestSucceededTooltipTitle": "リクエスト成功", + "inspector.requests.requestTabLabel": "リクエスト", + "inspector.requests.requestTimeLabel": "{requestTime}ms", + "inspector.requests.requestTooltipDescription": "リクエストの合計所要時間です。", + "inspector.requests.requestWasMadeDescription.requestHadFailureText": "、{failedCount} 件に失敗がありました", + "inspector.requests.responseTabLabel": "応答", + "inspector.requests.searchSessionId": "セッション ID を検索:{searchSessionId}", + "inspector.requests.statisticsTabLabel": "統計", + "inspector.title": "インスペクター", + "inspector.view": "{viewName} を表示", + "kbnConfig.deprecations.conflictSetting.manualStepOneMessage": "\"{fullNewPath}\"には、構成ファイル、CLIフラグ、または環境変数(Dockerのみ)の正しい値が指定されていることを確認してください。", + "kbnConfig.deprecations.conflictSetting.manualStepTwoMessage": "構成から\"{fullOldPath}\"を削除します。", + "kbnConfig.deprecations.conflictSettingMessage": "\"{fullOldPath}\"設定は\"{fullNewPath}\"で置換されました。ただし、いずれのキーも存在します。\"{fullOldPath}\"を無視しています", + "kbnConfig.deprecations.deprecatedSetting.manualStepOneMessage": "{removeBy}にアップグレードする前に、Kibana構成ファイル、CLIフラグ、または環境変数(Dockerのみ)から\"{fullPath}\"を削除します。", + "kbnConfig.deprecations.deprecatedSettingMessage": "\"{fullPath}\"の構成は廃止予定であり、{removeBy}削除されます。", + "kbnConfig.deprecations.deprecatedSettingTitle": "\"{deprecationPath}\"設定は廃止予定です", + "kbnConfig.deprecations.replacedSetting.manualStepOneMessage": "\"{fullOldPath}\"をKibana構成ファイル、CLIフラグ、または環境変数(Dockerのみ)の\"{fullNewPath}\"で置換します。", + "kbnConfig.deprecations.replacedSettingMessage": "\"{fullOldPath}\"設定は\"{fullNewPath}\"で置換されました", + "kbnConfig.deprecations.unusedSetting.manualStepOneMessage": "Kibana構成ファイル、CLIフラグ、または環境変数(Dockerのみ)から\"{fullPath}\"を削除します。", + "kbnConfig.deprecations.unusedSettingMessage": "\"{fullPath}\"を構成する必要はありません。", + "kibana_legacy.notify.toaster.errorStatusMessage": "エラー {errStatus} {errStatusText}: {errMessage}", + "kibana_legacy.notify.toaster.unavailableServerErrorMessage": "HTTP リクエストで接続に失敗しました。Kibana サーバーが実行されていて、ご使用のブラウザの接続が正常に動作していることを確認するか、システム管理者にお問い合わせください。", + "kibana_utils.history.savedObjectIsMissingNotificationMessage": "保存されたオブジェクトがありません", + "kibana_utils.stateManagement.stateHash.unableToRestoreUrlErrorMessage": "URL を完全に復元できません。共有機能を使用していることを確認してください。", + "kibana_utils.stateManagement.stateHash.unableToStoreHistoryInSessionErrorMessage": "セッションがいっぱいで安全に削除できるアイテムが見つからないため、Kibana は履歴アイテムを保存できません。\n\nこれは大抵新規タブに移動することで解決されますが、より大きな問題が原因である可能性もあります。このメッセージが定期的に表示される場合は、{gitHubIssuesUrl} で問題を報告してください。", + "kibana_utils.stateManagement.url.restoreUrlErrorTitle": "URLからの状態の復元エラー", + "kibana_utils.stateManagement.url.saveStateInUrlErrorTitle": "URLでの状態の保存エラー", + "kibana-react.dualRangeControl.maxInputAriaLabel": "範囲最大", + "kibana-react.dualRangeControl.minInputAriaLabel": "範囲最小", + "kibana-react.dualRangeControl.mustSetBothErrorMessage": "下と上の値の両方を設定する必要があります", + "kibana-react.dualRangeControl.outsideOfRangeErrorMessage": "値は {min} と {max} の間でなければなりません", + "kibana-react.dualRangeControl.upperValidErrorMessage": "上の値は下の値以上でなければなりません", + "kibana-react.exitFullScreenButton.exitFullScreenModeButtonAriaLabel": "全画面モードを終了", + "kibana-react.exitFullScreenButton.exitFullScreenModeButtonText": "全画面を終了", + "kibana-react.exitFullScreenButton.fullScreenModeDescription": "ESC キーで全画面モードを終了します。", + "kibana-react.kbnOverviewPageHeader.devToolsButtonLabel": "開発ツール", + "kibana-react.kbnOverviewPageHeader.stackManagementButtonLabel": "管理", + "kibana-react.kibanaCodeEditor.ariaLabel": "コードエディター", + "kibana-react.kibanaCodeEditor.enterKeyLabel": "Enter", + "kibana-react.kibanaCodeEditor.escapeKeyLabel": "Esc", + "kibana-react.kibanaCodeEditor.startEditing": "編集を開始するには{key}を押してください。", + "kibana-react.kibanaCodeEditor.startEditingReadOnly": "コードの操作を開始するには{key}を押してください。", + "kibana-react.kibanaCodeEditor.stopEditing": "編集を停止するには{key}を押してください。", + "kibana-react.kibanaCodeEditor.stopEditingReadOnly": "コードの操作を停止するには{key}を押してください。", + "kibana-react.mountPointPortal.errorMessage": "ポータルコンテンツのレンダリングエラー", + "kibana-react.noDataPage.cantDecide": "どれを使用すべきかわからない場合{link}", + "kibana-react.noDataPage.cantDecide.link": "詳細については、ドキュメントをご確認ください。", + "kibana-react.noDataPage.elasticAgentCard.description": "Elasticエージェントを使用すると、シンプルで統一された方法でコンピューターからデータを収集するできます。", + "kibana-react.noDataPage.elasticAgentCard.noPermission.description": "この統合はまだ有効ではありません。管理者にはオンにするために必要なアクセス権があります。", + "kibana-react.noDataPage.elasticAgentCard.noPermission.title": "管理者にお問い合わせください", + "kibana-react.noDataPage.elasticAgentCard.title": "Elasticエージェントの追加", + "kibana-react.noDataPage.intro": "データを追加して開始するか、{solution}については{link}をご覧ください。", + "kibana-react.noDataPage.intro.link": "詳細", + "kibana-react.noDataPage.noDataCard.description": "データを収集せずに続行", + "kibana-react.noDataPage.noDataPage.recommended": "推奨", + "kibana-react.noDataPage.welcomeTitle": "Elastic {solution}へようこそ。", + "kibana-react.pageFooter.changeDefaultRouteSuccessToast": "ランディングページが更新されました", + "kibana-react.pageFooter.changeHomeRouteLink": "ログイン時に別のページを表示", + "kibana-react.pageFooter.makeDefaultRouteLink": "これをランディングページにする", + "kibana-react.solutionNav.collapsibleLabel": "サイドナビゲーションを折りたたむ", + "kibana-react.solutionNav.mobileTitleText": "{solutionName}メニュー", + "kibana-react.solutionNav.openLabel": "サイドナビゲーションを開く", + "kibana-react.splitPanel.adjustPanelSizeAriaLabel": "左右のキーを押してパネルサイズを調整します", + "kibana-react.tableListView.listing.createNewItemButtonLabel": "Create {entityName}", + "kibana-react.tableListView.listing.deleteButtonMessage": "{itemCount} 件の {entityName} を削除", + "kibana-react.tableListView.listing.deleteConfirmModalDescription": "削除された {entityNamePlural} は復元できません。", + "kibana-react.tableListView.listing.deleteSelectedConfirmModal.title": "{itemCount} 件の {entityName} を削除", + "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.cancelButtonLabel": "キャンセル", + "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.confirmButtonLabel": "削除", + "kibana-react.tableListView.listing.deleteSelectedItemsConfirmModal.confirmButtonLabelDeleting": "削除中", + "kibana-react.tableListView.listing.fetchErrorDescription": "{entityName}リストを取得できませんでした。{message}", + "kibana-react.tableListView.listing.fetchErrorTitle": "リストを取得できませんでした", + "kibana-react.tableListView.listing.listingLimitExceeded.advancedSettingsLinkText": "高度な設定", + "kibana-react.tableListView.listing.listingLimitExceededDescription": "{totalItems} 件の {entityNamePlural} がありますが、{listingLimitText} の設定により {listingLimitValue} 件までしか下の表に表示できません。{advancedSettingsLink} の下でこの設定を変更できます。", + "kibana-react.tableListView.listing.listingLimitExceededTitle": "リスティング制限超過", + "kibana-react.tableListView.listing.noAvailableItemsMessage": "利用可能な {entityNamePlural} がありません。", + "kibana-react.tableListView.listing.noMatchedItemsMessage": "検索条件に一致する {entityNamePlural} がありません。", + "kibana-react.tableListView.listing.table.actionTitle": "アクション", + "kibana-react.tableListView.listing.table.editActionDescription": "編集", + "kibana-react.tableListView.listing.table.editActionName": "編集", + "kibana-react.tableListView.listing.unableToDeleteDangerMessage": "{entityName} を削除できません", + "kibanaOverview.addData.sampleDataButtonLabel": "サンプルデータを試す", + "kibanaOverview.addData.sectionTitle": "データを取り込む", + "kibanaOverview.apps.title": "これらのアプリを検索", + "kibanaOverview.breadcrumbs.title": "分析", + "kibanaOverview.header.title": "分析", + "kibanaOverview.kibana.solution.description": "強力な分析ツールやアプリケーションスイートを使用して、データを探索、可視化、分析できます。", + "kibanaOverview.kibana.solution.title": "分析", + "kibanaOverview.manageData.sectionTitle": "データを管理", + "kibanaOverview.more.title": "Elasticではさまざまなことが可能です", + "kibanaOverview.news.title": "新機能", + "kibanaOverview.noDataConfig.description": "ElasticエージェントまたはBeatsを使用して、データを収集し、分析ソリューションを構築します。", + "kibanaOverview.noDataConfig.solutionName": "分析", + "kibanaOverview.noDataConfig.title": "統合の追加", + "lists.exceptions.doesNotExistOperatorLabel": "存在しない", + "lists.exceptions.existsOperatorLabel": "存在する", + "lists.exceptions.isInListOperatorLabel": "リストにある", + "lists.exceptions.isNotInListOperatorLabel": "リストにない", + "lists.exceptions.isNotOneOfOperatorLabel": "is not one of", + "lists.exceptions.isNotOperatorLabel": "is not", + "lists.exceptions.isOneOfOperatorLabel": "is one of", + "lists.exceptions.isOperatorLabel": "is", + "management.breadcrumb": "スタック管理", + "management.landing.header": "Stack Management {version}へようこそ", + "management.landing.subhead": "インデックス、インデックスパターン、保存されたオブジェクト、Kibanaの設定、その他を管理します。", + "management.landing.text": "アプリの一覧は左側のメニューにあります。", + "management.nav.label": "管理", + "management.sections.dataTip": "クラスターデータとバックアップを管理します", + "management.sections.dataTitle": "データ", + "management.sections.ingestTip": "データを変換し、クラスターに読み込む方法を管理します", + "management.sections.ingestTitle": "投入", + "management.sections.insightsAndAlertingTip": "データの変化を検出する方法を管理します", + "management.sections.insightsAndAlertingTitle": "アラートとインサイト", + "management.sections.kibanaTip": "Kibanaをカスタマイズし、保存されたオブジェクトを管理します", + "management.sections.kibanaTitle": "Kibana", + "management.sections.section.tip": "機能とデータへのアクセスを制御します", + "management.sections.section.title": "セキュリティ", + "management.sections.stackTip": "ライセンスを管理し、スタックをアップグレードします", + "management.sections.stackTitle": "スタック", + "management.stackManagement.managementDescription": "Elastic Stack の管理を行うセンターコンソールです。", + "management.stackManagement.managementLabel": "スタック管理", + "management.stackManagement.title": "スタック管理", + "monaco.painlessLanguage.autocomplete.docKeywordDescription": "doc['field_name'] 構文を使用して、スクリプトからフィールド値にアクセスします", + "monaco.painlessLanguage.autocomplete.emitKeywordDescription": "戻らずに値を発行します。", + "monaco.painlessLanguage.autocomplete.fieldValueDescription": "フィールド「{fieldName}」の値を取得します", + "monaco.painlessLanguage.autocomplete.paramsKeywordDescription": "スクリプトに渡された変数にアクセスします。", + "newsfeed.emptyPrompt.noNewsText": "Kibana インスタンスがインターネットにアクセスできない場合、管理者にこの機能を無効にするように依頼してください。そうでない場合は、ニュースを取り込み続けます。", + "newsfeed.emptyPrompt.noNewsTitle": "ニュースがない場合", + "newsfeed.flyoutList.closeButtonLabel": "閉じる", + "newsfeed.flyoutList.versionTextLabel": "{version}", + "newsfeed.flyoutList.whatsNewTitle": "Elastic の新機能", + "newsfeed.headerButton.readAriaLabel": "ニュースフィードメニュー - すべての項目が既読です", + "newsfeed.headerButton.unreadAriaLabel": "ニュースフィードメニュー - 未読の項目があります", + "newsfeed.loadingPrompt.gettingNewsText": "最新ニュースを取得しています...", + "presentationUtil.dashboardPicker.searchDashboardPlaceholder": "ダッシュボードを検索...", + "presentationUtil.labs.components.browserSwitchHelp": "このブラウザーでラボを有効にします。ブラウザーを閉じた後も永続します。", + "presentationUtil.labs.components.browserSwitchName": "ブラウザー", + "presentationUtil.labs.components.calloutHelp": "変更を適用するには更新します", + "presentationUtil.labs.components.closeButtonLabel": "閉じる", + "presentationUtil.labs.components.descriptionMessage": "開発中の機能や実験的な機能を試します。", + "presentationUtil.labs.components.disabledStatusMessage": "デフォルト: {status}", + "presentationUtil.labs.components.enabledStatusMessage": "デフォルト: {status}", + "presentationUtil.labs.components.kibanaSwitchHelp": "すべてのKibanaユーザーでこのラボを有効にします。", + "presentationUtil.labs.components.kibanaSwitchName": "Kibana", + "presentationUtil.labs.components.labFlagsLabel": "ラボフラグ", + "presentationUtil.labs.components.noProjectsinSolutionMessage": "現在{solutionName}にはラボがありません。", + "presentationUtil.labs.components.noProjectsMessage": "現在ラボはありません。", + "presentationUtil.labs.components.overrideFlagsLabel": "上書き", + "presentationUtil.labs.components.overridenIconTipLabel": "デフォルトの上書き", + "presentationUtil.labs.components.resetToDefaultLabel": "デフォルトにリセット", + "presentationUtil.labs.components.sessionSwitchHelp": "このブラウザーセッションのラボを有効にします。ブラウザーを閉じるとリセットされます。", + "presentationUtil.labs.components.sessionSwitchName": "セッション", + "presentationUtil.labs.components.titleLabel": "ラボ", + "presentationUtil.labs.enableDeferBelowFoldProjectDescription": "「区切り」の下のすべてのパネル(ウィンドウ下部の下にある非表示の領域)はすぐに読み込まれません。ビューポートを入力するときにのみ読み込まれます", + "presentationUtil.labs.enableDeferBelowFoldProjectName": "「区切り」の下のパネルの読み込みを延期", + "presentationUtil.saveModalDashboard.addToDashboardLabel": "ダッシュボードに追加", + "presentationUtil.saveModalDashboard.dashboardInfoTooltip": "Visualizeライブラリに追加された項目はすべてのダッシュボードで使用できます。ライブラリ項目の編集は、使用されるすべての場所に表示されます。", + "presentationUtil.saveModalDashboard.existingDashboardOptionLabel": "既存", + "presentationUtil.saveModalDashboard.libraryOptionLabel": "ライブラリに追加", + "presentationUtil.saveModalDashboard.newDashboardOptionLabel": "新規", + "presentationUtil.saveModalDashboard.noDashboardOptionLabel": "なし", + "presentationUtil.saveModalDashboard.saveAndGoToDashboardLabel": "保存してダッシュボードを開く", + "presentationUtil.saveModalDashboard.saveLabel": "保存", + "presentationUtil.saveModalDashboard.saveToLibraryLabel": "保存してライブラリに追加", + "presentationUtil.solutionToolbar.editorMenuButtonLabel": "すべてのエディター", + "presentationUtil.solutionToolbar.libraryButtonLabel": "ライブラリから追加", + "presentationUtil.solutionToolbar.quickButton.ariaButtonLabel": "新しい{createType}を作成", + "presentationUtil.solutionToolbar.quickButton.legendLabel": "クイック作成", + "savedObjects.advancedSettings.listingLimitText": "一覧ページ用に取得するオブジェクトの数です", + "savedObjects.advancedSettings.listingLimitTitle": "オブジェクト取得制限", + "savedObjects.advancedSettings.perPageText": "読み込みダイアログで表示されるページごとのオブジェクトの数です", + "savedObjects.advancedSettings.perPageTitle": "ページごとのオブジェクト数", + "savedObjects.confirmModal.cancelButtonLabel": "キャンセル", + "savedObjects.confirmModal.overwriteButtonLabel": "上書き", + "savedObjects.confirmModal.overwriteConfirmationMessage": "{title} を上書きしてよろしいですか?", + "savedObjects.confirmModal.overwriteTitle": "{name} を上書きしますか?", + "savedObjects.confirmModal.saveDuplicateButtonLabel": "{name} を保存", + "savedObjects.confirmModal.saveDuplicateConfirmationMessage": "「{title}」というタイトルの {name} がすでに存在します。保存しますか?", + "savedObjects.finder.filterButtonLabel": "タイプ", + "savedObjects.finder.searchPlaceholder": "検索…", + "savedObjects.finder.sortAsc": "昇順", + "savedObjects.finder.sortAuto": "ベストマッチ", + "savedObjects.finder.sortButtonLabel": "並べ替え", + "savedObjects.finder.sortDesc": "降順", + "savedObjects.overwriteRejectedDescription": "上書き確認が拒否されました", + "savedObjects.saveDuplicateRejectedDescription": "重複ファイルの保存確認が拒否されました", + "savedObjects.saveModal.cancelButtonLabel": "キャンセル", + "savedObjects.saveModal.descriptionLabel": "説明", + "savedObjects.saveModal.duplicateTitleDescription": "「{title}」を保存すると、タイトルが重複します。", + "savedObjects.saveModal.duplicateTitleLabel": "この{objectType}はすでに存在します", + "savedObjects.saveModal.saveAsNewLabel": "新しい {objectType} として保存", + "savedObjects.saveModal.saveButtonLabel": "保存", + "savedObjects.saveModal.saveTitle": "{objectType} を保存", + "savedObjects.saveModal.titleLabel": "タイトル", + "savedObjects.saveModalOrigin.addToOriginLabel": "追加", + "savedObjects.saveModalOrigin.originAfterSavingSwitchLabel": "保存後に{originVerb}から{origin}", + "savedObjects.saveModalOrigin.returnToOriginLabel": "戻る", + "savedObjects.saveModalOrigin.saveAndReturnLabel": "保存して戻る", + "savedObjectsManagement.breadcrumb.index": "保存されたオブジェクト", + "savedObjectsManagement.copyToSpace.actionDescription": "1つ以上のスペースでこの保存されたオブジェクトのコピーを作成します", + "savedObjectsManagement.copyToSpace.actionTitle": "スペースにコピー", + "savedObjectsManagement.deleteConfirm.modalDeleteButtonLabel": "削除", + "savedObjectsManagement.deleteConfirm.modalDescription": "このアクションはオブジェクトをKibanaから永久に削除します。", + "savedObjectsManagement.deleteConfirm.modalTitle": "「{title}」を削除しますか?", + "savedObjectsManagement.deleteSavedObjectsConfirmModalDescription": "この操作は次の保存されたオブジェクトを削除します:", + "savedObjectsManagement.importSummary.createdCountHeader": "{createdCount}件の新規項目", + "savedObjectsManagement.importSummary.createdOutcomeLabel": "作成済み", + "savedObjectsManagement.importSummary.errorCountHeader": "{errorCount}件のエラー", + "savedObjectsManagement.importSummary.errorOutcomeLabel": "{errorMessage}", + "savedObjectsManagement.importSummary.overwrittenCountHeader": "{overwrittenCount} overwritten", + "savedObjectsManagement.importSummary.overwrittenOutcomeLabel": "上書き", + "savedObjectsManagement.importSummary.warnings.defaultButtonLabel": "Go", + "savedObjectsManagement.managementSectionLabel": "保存されたオブジェクト", + "savedObjectsManagement.objects.savedObjectsDescription": "保存された検索、ビジュアライゼーション、ダッシュボードのインポート、エクスポート、管理を行います。", + "savedObjectsManagement.objects.savedObjectsTitle": "保存されたオブジェクト", + "savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.title": "一部のオブジェクトを削除できません", + "savedObjectsManagement.objectsTable.deleteConfirmModal.sharedObjectsCallout.content": "共有オブジェクトは属しているすべてのスペースから削除されます。", + "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.cancelButtonLabel": "キャンセル", + "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.idColumnName": "Id", + "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.titleColumnName": "タイトル", + "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.typeColumnName": "型", + "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModalTitle": "保存されたオブジェクトの削除", + "savedObjectsManagement.objectsTable.export.successNotification": "ファイルはバックグラウンドでダウンロード中です", + "savedObjectsManagement.objectsTable.export.successWithExcludedObjectsNotification": "ファイルはバックグラウンドでダウンロード中です。一部のオブジェクトはエクスポートから除外されました。除外されたオブジェクトの一覧は、エクスポートされたファイルの最後の行をご覧ください。", + "savedObjectsManagement.objectsTable.export.successWithMissingRefsNotification": "ファイルはバックグラウンドでダウンロード中です。一部の関連オブジェクトが見つかりませんでした。足りないオブジェクトの一覧は、エクスポートされたファイルの最後の行をご覧ください。", + "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.cancelButtonLabel": "キャンセル", + "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.exportAllButtonLabel": "すべてエクスポート", + "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.exportOptionsLabel": "オプション", + "savedObjectsManagement.objectsTable.exportObjectsConfirmModal.includeReferencesDeepLabel": "関連オブジェクトを含める", + "savedObjectsManagement.objectsTable.exportObjectsConfirmModalDescription": "エクスポートするタイプを選択してください", + "savedObjectsManagement.objectsTable.flyout.errorCalloutTitle": "申し訳ございません、エラーが発生しました", + "savedObjectsManagement.objectsTable.flyout.import.cancelButtonLabel": "キャンセル", + "savedObjectsManagement.objectsTable.flyout.import.confirmButtonLabel": "インポート", + "savedObjectsManagement.objectsTable.flyout.importFileErrorMessage": "エラーのためファイルを処理できませんでした:「{error}」", + "savedObjectsManagement.objectsTable.flyout.importPromptText": "インポート", + "savedObjectsManagement.objectsTable.flyout.importSavedObjectTitle": "保存されたオブジェクトのインポート", + "savedObjectsManagement.objectsTable.flyout.importSuccessful.confirmAllChangesButtonLabel": "すべての変更を確定", + "savedObjectsManagement.objectsTable.flyout.importSuccessful.confirmButtonLabel": "完了", + "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsCalloutLinkText": "新規インデックスパターンを作成", + "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsDescription": "次の保存されたオブジェクトは、存在しないインデックスパターンを使用しています。関連付け直す別のインデックスパターンを選択してください。必要に応じて、{indexPatternLink}できます。", + "savedObjectsManagement.objectsTable.flyout.indexPatternConflictsTitle": "インデックスパターンの矛盾", + "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnCountDescription": "影響されるオブジェクトの数です", + "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnCountName": "カウント", + "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnIdDescription": "インデックスパターンのIDです", + "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnIdName": "ID", + "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnNewIndexPatternName": "新規インデックスパターン", + "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsDescription": "影響されるオブジェクトのサンプル", + "savedObjectsManagement.objectsTable.flyout.renderConflicts.columnSampleOfAffectedObjectsName": "影響されるオブジェクトのサンプル", + "savedObjectsManagement.objectsTable.flyout.selectFileToImportFormRowLabel": "インポートするファイルを選択してください", + "savedObjectsManagement.objectsTable.header.importButtonLabel": "インポート", + "savedObjectsManagement.objectsTable.header.refreshButtonLabel": "更新", + "savedObjectsManagement.objectsTable.header.savedObjectsTitle": "保存されたオブジェクト", + "savedObjectsManagement.objectsTable.howToDeleteSavedObjectsDescription": "保存されたオブジェクトを管理して共有します。オブジェクトの基本データを編集するには、関連付けられたアプリケーションに移動します。", + "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.disabledText": "オブジェクトが以前にコピーまたはインポートされたかどうかを確認します。", + "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.disabledTitle": "既存のオブジェクトを確認", + "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.enabledText": "このオプションを使用すると、オブジェクトの1つ以上のコピーを作成します。", + "savedObjectsManagement.objectsTable.importModeControl.createNewCopies.enabledTitle": "ランダムIDで新しいオブジェクトを作成", + "savedObjectsManagement.objectsTable.importModeControl.importOptionsTitle": "インポートオプション", + "savedObjectsManagement.objectsTable.importModeControl.overwrite.disabledLabel": "競合時にアクションを要求", + "savedObjectsManagement.objectsTable.importModeControl.overwrite.enabledLabel": "自動的に競合を上書き", + "savedObjectsManagement.objectsTable.importSummary.unsupportedTypeError": "サポートされていないオブジェクトタイプ", + "savedObjectsManagement.objectsTable.overwriteModal.body.ambiguousConflict": "「{title}」は複数の既存のオブジェクトと競合します。上書きしますか?", + "savedObjectsManagement.objectsTable.overwriteModal.body.conflict": "「{title}」は既存のオブジェクトと競合します。上書きしますか?", + "savedObjectsManagement.objectsTable.overwriteModal.cancelButtonText": "スキップ", + "savedObjectsManagement.objectsTable.overwriteModal.overwriteButtonText": "上書き", + "savedObjectsManagement.objectsTable.overwriteModal.selectControlLabel": "オブジェクトID", + "savedObjectsManagement.objectsTable.overwriteModal.title": "{type}を上書きしますか?", + "savedObjectsManagement.objectsTable.relationships.columnActions.inspectActionDescription": "この保存されたオブジェクトを確認してください", + "savedObjectsManagement.objectsTable.relationships.columnActions.inspectActionName": "検査", + "savedObjectsManagement.objectsTable.relationships.columnActionsName": "アクション", + "savedObjectsManagement.objectsTable.relationships.columnErrorDescription": "関係でエラーが発生しました", + "savedObjectsManagement.objectsTable.relationships.columnErrorName": "エラー", + "savedObjectsManagement.objectsTable.relationships.columnIdDescription": "保存されたオブジェクトのID", + "savedObjectsManagement.objectsTable.relationships.columnIdName": "Id", + "savedObjectsManagement.objectsTable.relationships.columnRelationship.childAsValue": "子", + "savedObjectsManagement.objectsTable.relationships.columnRelationship.parentAsValue": "親", + "savedObjectsManagement.objectsTable.relationships.columnRelationshipName": "直接関係", + "savedObjectsManagement.objectsTable.relationships.columnTitleDescription": "保存されたオブジェクトのタイトルです", + "savedObjectsManagement.objectsTable.relationships.columnTitleName": "タイトル", + "savedObjectsManagement.objectsTable.relationships.columnTypeDescription": "保存されたオブジェクトのタイプです", + "savedObjectsManagement.objectsTable.relationships.columnTypeName": "型", + "savedObjectsManagement.objectsTable.relationships.invalidRelationShip": "この保存されたオブジェクトには無効な関係がいくつかあります。", + "savedObjectsManagement.objectsTable.relationships.relationshipsTitle": "{title}に関連する保存済みオブジェクトはこちらです。この{type}を削除すると、親オブジェクトに影響しますが、子オブジェクトには影響しません。", + "savedObjectsManagement.objectsTable.relationships.renderErrorMessage": "エラー", + "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.childAsValue.view": "子", + "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.name": "直接関係", + "savedObjectsManagement.objectsTable.relationships.search.filters.relationship.parentAsValue.view": "親", + "savedObjectsManagement.objectsTable.relationships.search.filters.type.name": "型", + "savedObjectsManagement.objectsTable.searchBar.unableToParseQueryErrorMessage": "クエリをパースできません", + "savedObjectsManagement.objectsTable.table.columnActions.inspectActionDescription": "この保存されたオブジェクトを確認してください", + "savedObjectsManagement.objectsTable.table.columnActions.inspectActionName": "検査", + "savedObjectsManagement.objectsTable.table.columnActions.viewRelationshipsActionDescription": "この保存されたオブジェクトと他の保存されたオブジェクトとの関係性を表示します", + "savedObjectsManagement.objectsTable.table.columnActions.viewRelationshipsActionName": "関係", + "savedObjectsManagement.objectsTable.table.columnActionsName": "アクション", + "savedObjectsManagement.objectsTable.table.columnTitleDescription": "保存されたオブジェクトのタイトルです", + "savedObjectsManagement.objectsTable.table.columnTitleName": "タイトル", + "savedObjectsManagement.objectsTable.table.columnTypeDescription": "保存されたオブジェクトのタイプです", + "savedObjectsManagement.objectsTable.table.columnTypeName": "型", + "savedObjectsManagement.objectsTable.table.deleteButtonLabel": "削除", + "savedObjectsManagement.objectsTable.table.deleteButtonTitle": "保存されたオブジェクトを削除できません", + "savedObjectsManagement.objectsTable.table.exportButtonLabel": "エクスポート", + "savedObjectsManagement.objectsTable.table.exportPopoverButtonLabel": "エクスポート", + "savedObjectsManagement.objectsTable.table.typeFilterName": "型", + "savedObjectsManagement.objectsTable.unableFindSavedObjectNotificationMessage": "保存されたオブジェクトが見つかりません", + "savedObjectsManagement.objectsTable.unableFindSavedObjectsNotificationMessage": "保存されたオブジェクトが見つかりません", + "savedObjectsManagement.objectView.unableFindSavedObjectNotificationMessage": "保存されたオブジェクトが見つかりません", + "savedObjectsManagement.shareToSpace.actionDescription": "この保存されたオブジェクトを1つ以上のスペースと共有します。", + "savedObjectsManagement.shareToSpace.actionTitle": "スペースと共有", + "savedObjectsManagement.shareToSpace.columnDescription": "このオブジェクトが現在共有されている他のスペース", + "savedObjectsManagement.shareToSpace.columnTitle": "共有されているスペース", + "savedObjectsManagement.view.fieldDoesNotExistErrorMessage": "このオブジェクトに関連付けられたフィールドは、現在このインデックスパターンに存在しません。", + "savedObjectsManagement.view.indexPatternDoesNotExistErrorMessage": "このオブジェクトに関連付けられたインデックスパターンは現在存在しません。", + "savedObjectsManagement.view.savedObjectProblemErrorMessage": "この保存されたオブジェクトに問題があります", + "savedObjectsManagement.view.savedSearchDoesNotExistErrorMessage": "このオブジェクトに関連付けられた保存された検索は現在存在しません。", + "savedObjectsManagement.view.viewItemButtonLabel": "{title}を表示", + "share.advancedSettings.csv.quoteValuesText": "csvエクスポートに値を引用するかどうかです", + "share.advancedSettings.csv.quoteValuesTitle": "CSVの値を引用", + "share.advancedSettings.csv.separatorText": "エクスポートされた値をこの文字列で区切ります", + "share.advancedSettings.csv.separatorTitle": "CSVセパレーター", + "share.contextMenu.embedCodeLabel": "埋め込みコード", + "share.contextMenu.embedCodePanelTitle": "埋め込みコード", + "share.contextMenu.permalinkPanelTitle": "パーマリンク", + "share.contextMenu.permalinksLabel": "パーマリンク", + "share.contextMenuTitle": "この {objectType} を共有", + "share.urlGenerators.error.createUrlFnProvided": "このジェネレーターは非推奨とマークされています。createUrl fn を付けないでください。", + "share.urlGenerators.error.migrationFnGivenNotDeprecated": "移行機能を提供する場合、このジェネレーターに非推奨マークを付ける必要があります", + "share.urlGenerators.error.noCreateUrlFnProvided": "このジェネレーターには非推奨のマークがありません。createUrl fn を付けてください。", + "share.urlGenerators.error.noMigrationFnProvided": "アクセスリンクジェネレーターに非推奨マークが付いている場合、移行機能を提供する必要があります。", + "share.urlGenerators.errors.noGeneratorWithId": "{id} という ID のジェネレーターはありません", + "share.urlPanel.canNotShareAsSavedObjectHelpText": "{objectType} が保存されるまで保存されたオブジェクトを共有することはできません。", + "share.urlPanel.copyIframeCodeButtonLabel": "iFrame コードをコピー", + "share.urlPanel.copyLinkButtonLabel": "リンクをコピー", + "share.urlPanel.generateLinkAsLabel": "名前を付けてリンクを生成", + "share.urlPanel.publicUrlHelpText": "公開URLを使用して、他のユーザーと共有します。ログインプロンプトをなくして、ワンステップの匿名アクセスを可能にします。", + "share.urlPanel.publicUrlLabel": "公開URL", + "share.urlPanel.savedObjectDescription": "この URL を共有することで、他のユーザーがこの {objectType} の最も最近保存されたバージョンを読み込めるようになります。", + "share.urlPanel.savedObjectLabel": "保存されたオブジェクト", + "share.urlPanel.shortUrlHelpText": "互換性が最も高くなるよう、短いスナップショット URL を共有することをお勧めします。Internet Explorer は URL の長さに制限があり、一部の wiki やマークアップパーサーは長い完全なスナップショット URL に対応していませんが、短い URL は正常に動作するはずです。", + "share.urlPanel.shortUrlLabel": "短い URL", + "share.urlPanel.snapshotDescription": "スナップショット URL には、{objectType} の現在の状態がエンコードされています。保存された {objectType} への編集内容はこの URL には反映されません。", + "share.urlPanel.snapshotLabel": "スナップショット", + "share.urlPanel.unableCreateShortUrlErrorMessage": "短い URL を作成できません。エラー:{errorMessage}", + "share.urlPanel.urlGroupTitle": "URL", + "share.urlService.redirect.components.Error.title": "リダイレクトエラー", + "share.urlService.redirect.components.Spinner.label": "リダイレクト中...", + "share.urlService.redirect.RedirectManager.invalidParamParams": "ロケーターパラメーターを解析できませんでした。ロケーターパラメーターはJSONとしてシリアル化し、「p」URL検索パラメーターで設定する必要があります。", + "share.urlService.redirect.RedirectManager.locatorNotFound": "ロケーター[ID = {id}]が存在しません。", + "share.urlService.redirect.RedirectManager.missingParamLocator": "ロケーターIDが指定されていません。URLで「l」検索パラメーターを指定します。これは既存のロケーターIDにしてください。", + "share.urlService.redirect.RedirectManager.missingParamParams": "ロケーターパラメーターが指定されていません。URLで「p」検索パラメーターを指定します。これはロケーターパラメーターのJSONシリアル化オブジェクトにしてください。", + "share.urlService.redirect.RedirectManager.missingParamVersion": "ロケーターパラメーターバージョンが指定されていません。URLで「v」検索パラメーターを指定します。これはロケーターパラメーターが生成されたときのKibanaのリリースバージョンです。", + "telemetry.callout.appliesSettingTitle": "この設定に加えた変更は {allOfKibanaText} に適用され、自動的に保存されます。", + "telemetry.callout.appliesSettingTitle.allOfKibanaText": "Kibana のすべて", + "telemetry.callout.clusterStatisticsDescription": "これは収集される基本的なクラスター統計の例です。インデックス、シャード、ノードの数が含まれます。監視がオンになっているかどうかなどのハイレベルの使用統計も含まれます。", + "telemetry.callout.clusterStatisticsTitle": "クラスター統計", + "telemetry.callout.errorLoadingClusterStatisticsDescription": "クラスター統計の取得中に予期せぬエラーが発生しました。Elasticsearch、Kibana、またはネットワークのエラーが原因の可能性があります。Kibana を確認し、ページを再読み込みして再試行してください。", + "telemetry.callout.errorLoadingClusterStatisticsTitle": "クラスター統計の読み込みエラー", + "telemetry.callout.errorUnprivilegedUserDescription": "暗号化されていないクラスター統計を表示するアクセス権がありません。", + "telemetry.callout.errorUnprivilegedUserTitle": "クラスター統計の表示エラー", + "telemetry.clusterData": "クラスターデータ", + "telemetry.optInErrorToastText": "使用状況統計設定の設定中にエラーが発生しました。", + "telemetry.optInErrorToastTitle": "エラー", + "telemetry.optInNoticeSeenErrorTitle": "エラー", + "telemetry.optInNoticeSeenErrorToastText": "通知の消去中にエラーが発生しました", + "telemetry.optInSuccessOff": "使用状況データ収集がオフです。", + "telemetry.optInSuccessOn": "使用状況データ収集がオンです。", + "telemetry.provideUsageDataAriaName": "使用状況データを提供", + "telemetry.provideUsageDataTitle": "使用状況データを提供", + "telemetry.readOurUsageDataPrivacyStatementLinkText": "プライバシーポリシー", + "telemetry.securityData": "セキュリティデータ", + "telemetry.telemetryBannerDescription": "Elastic Stackの改善にご協力ください使用状況データの収集は現在無効です。使用状況データの収集を有効にすると、製品とサービスを管理して改善することができます。詳細については、{privacyStatementLink}をご覧ください。", + "telemetry.telemetryConfigAndLinkDescription": "使用状況データの収集を有効にすると、製品とサービスを管理して改善することができます。詳細については、{privacyStatementLink}をご覧ください。", + "telemetry.telemetryOptedInDisableUsage": "ここで使用状況データを無効にする", + "telemetry.telemetryOptedInDismissMessage": "閉じる", + "telemetry.telemetryOptedInNoticeDescription": "使用状況データがどのように製品とサービスの管理と改善につながるのかに関する詳細については、{privacyStatementLink}をご覧ください。収集を停止するには、{disableLink}。", + "telemetry.telemetryOptedInNoticeTitle": "Elastic Stack の改善にご協力ください", + "telemetry.telemetryOptedInPrivacyStatement": "プライバシーポリシー", + "telemetry.usageDataTitle": "使用データ", + "telemetry.welcomeBanner.disableButtonLabel": "無効にする", + "telemetry.welcomeBanner.enableButtonLabel": "有効にする", + "telemetry.welcomeBanner.telemetryConfigDetailsDescription.telemetryPrivacyStatementLinkText": "プライバシーポリシー", + "telemetry.welcomeBanner.title": "Elastic Stack の改善にご協力ください", + "timelion.emptyExpressionErrorMessage": "Timelion エラー:式が入力されていません", + "timelion.expressionSuggestions.argument.description.acceptsText": "受け入れ", + "timelion.expressionSuggestions.func.description.chainableHelpText": "連鎖可能", + "timelion.expressionSuggestions.func.description.dataSourceHelpText": "データソース", + "timelion.fitFunctions.carry.downSampleErrorMessage": "ダウンサンプルには「carry」フィットメソドを使用せず、「scale」または「average」を使用してください", + "timelion.function.help": "Timelion のビジュアライゼーションです。", + "timelion.help.functions.absHelpText": "数列リストの各値の絶対値を返します", + "timelion.help.functions.aggregate.args.functionHelpText": "{functions} の 1 つ", + "timelion.help.functions.aggregateHelpText": "数列のすべての点の処理結果に基づく線を作成します。利用可能な関数:{functions}", + "timelion.help.functions.bars.args.stackHelpText": "バーがスタックした場合はデフォルトで true にする", + "timelion.help.functions.bars.args.widthHelpText": "バーの幅(ピクセル)", + "timelion.help.functions.barsHelpText": "seriesList をバーとして表示", + "timelion.help.functions.color.args.colorHelpText": "16 進数としての数列の色です。例:#c6c6c6 はかわいいライトグレーを示します。複数の色を指定し、複数数列がある場合、グラデーションになります。例:「#00B1CC:#00FF94:#FF3A39:#CC1A6F」", + "timelion.help.functions.colorHelpText": "数列の色を変更します", + "timelion.help.functions.common.args.fitHelpText": "ターゲットの期間と間隔に数列を合わせるためのアルゴリズムです。使用可能:{fitFunctions}", + "timelion.help.functions.common.args.offsetHelpText": "日付表現による数列の取得をオフセットします。例:1 か月前からイベントを作成する -1M は現在のように表示されます。「timerange」によって、チャートの全体的な時間範囲に関連した数列をオフセットします。例:「timerange:-2」は過去に対する全体的なチャート時間範囲の 2 倍をオフセットします。", + "timelion.help.functions.condition.args.elseHelpText": "比較が false の場合に点が設定される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", + "timelion.help.functions.condition.args.ifHelpText": "点が比較される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", + "timelion.help.functions.condition.args.operator.suggestions.eqHelpText": "equal", + "timelion.help.functions.condition.args.operator.suggestions.gteHelpText": "超過", + "timelion.help.functions.condition.args.operator.suggestions.gtHelpText": "より大きい", + "timelion.help.functions.condition.args.operator.suggestions.lteHelpText": "未満", + "timelion.help.functions.condition.args.operator.suggestions.ltHelpText": "より小さい", + "timelion.help.functions.condition.args.operator.suggestions.neHelpText": "not equal", + "timelion.help.functions.condition.args.operatorHelpText": "比較に使用する比較演算子、有効な演算子は eq(=)、ne(≠), lt(&lt;), lte(≦), gt(>), gte(≧)", + "timelion.help.functions.condition.args.thenHelpText": "比較が true の場合に点が設定される値です。ここで seriesList を引き渡した場合、初めの数列が使用されます。", + "timelion.help.functions.conditionHelpText": "演算子を使って各点を数字、または別の数列の同じ点と比較し、true の場合値を結果の値に設定し、オプションとして else が使用されます。", + "timelion.help.functions.cusum.args.baseHelpText": "開始の数字です。基本的に、数列の初めにこの数字が追加されます", + "timelion.help.functions.cusumHelpText": "ベースから始め、数列の累積和を返します。", + "timelion.help.functions.derivativeHelpText": "一定期間の値の変化をプロットします。", + "timelion.help.functions.divide.args.divisorHelpText": "割る数字または数列です。複数数列を含む seriesList はラベルに適用されます。", + "timelion.help.functions.divideHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に割けます。", + "timelion.help.functions.es.args.indexHelpText": "クエリを実行するインデックスで、ワイルドカードが使えます。「metrics」、「split」、「timefield」引数のスクリプトフィールドのフィールド名のインデックスパターン名とフィールド名の入力候補を提供します。", + "timelion.help.functions.es.args.intervalHelpText": "**これは使用しないでください**。fit 関数のデバッグは楽しいですが、間隔ピッカーを使用すべきです。", + "timelion.help.functions.es.args.kibanaHelpText": "Kibana ダッシュボードでフィルターを適用します。Kibana ダッシュボードの使用時にのみ適用されます。", + "timelion.help.functions.es.args.metricHelpText": "Elasticsearch メトリック集約:avg、sum、min、max、percentiles、または基数、後ろにフィールドを付けます。例:「sum:bytes」、「percentiles:bytes:95,99,99.9」、「count」", + "timelion.help.functions.es.args.qHelpText": "Lucene クエリ文字列の構文のクエリ", + "timelion.help.functions.es.args.splitHelpText": "分割する Elasticsearch フィールドと制限です。例:「{hostnameSplitArg}」は上位 10 のホスト名を取得します", + "timelion.help.functions.es.args.timefieldHelpText": "X 軸にフィールドタイプ「date」を使用", + "timelion.help.functions.esHelpText": "Elasticsearch インスタンスからデータを取得します", + "timelion.help.functions.firstHelpText": "これは単純に input seriesList を返す内部機能です。この機能は使わないでください", + "timelion.help.functions.fit.args.modeHelpText": "数列をターゲットに合わせるためのアルゴリズムです。次のいずれかです。{fitFunctions}", + "timelion.help.functions.fitHelpText": "定義された fit 関数を使用して空値を入力します", + "timelion.help.functions.graphite.args.metricHelpText": "取得する Graphite メトリック、例:{metricExample}", + "timelion.help.functions.graphiteHelpText": "[実験的] Graphite からデータを取得します。Kibana の高度な設定で Graphite サーバーを構成します", + "timelion.help.functions.hide.args.hideHelpText": "数列の表示と非表示を切り替えます", + "timelion.help.functions.hideHelpText": "デフォルトで数列を非表示にします", + "timelion.help.functions.holt.args.alphaHelpText": "\n 0 から 1 の平滑化加重です。\n アルファを上げると新しい数列がオリジナルにさらに近くなります。\n 下げると数列がスムーズになります", + "timelion.help.functions.holt.args.betaHelpText": "\n 0 から 1 の傾向加重です。\n ベータを上げると線の上下の動きが長くなります。\n 下げると新しい傾向をより早く反映するようになります", + "timelion.help.functions.holt.args.gammaHelpText": "\n 0 から 1 のシーズン加重です。データが波のようになっていますか?\n この数字を上げると、最近のシーズンの重要性が高まり、波形の動きを速くします。\n 下げると新しいシーズンの重要性が下がり、過去がより重要視されます。\n ", + "timelion.help.functions.holt.args.sampleHelpText": "\n シーズン数列の「予測」を開始する前にサンプリングするシーズンの数です。\n (gamma でのみ有効、デフォルト:all)", + "timelion.help.functions.holt.args.seasonHelpText": "シーズンの長さです、例:パターンが毎週繰り返される場合は 1w。(gamma でのみ有効)", + "timelion.help.functions.holtHelpText": "\n 数列の始めをサンプリングし、\n いくつかのオプションパラメーターを使用して何が起こるか予測します。基本的に、この機能は未来を予測するのではなく、\n 過去のデータに基づき現在何が起きているべきかを予測します。\n この情報は異常検知に役立ちます。null には予測値が入力されます。", + "timelion.help.functions.label.args.labelHelpText": "数列の凡例値です。文字列で $1、$2 などを使用して、正規表現の捕捉グループに合わせることができます。", + "timelion.help.functions.label.args.regexHelpText": "捕捉グループをサポートする正規表現です", + "timelion.help.functions.labelHelpText": "数列のラベルを変更します。%s で既存のラベルを参照します", + "timelion.help.functions.legend.args.columnsHelpText": "凡例を分ける列の数です", + "timelion.help.functions.legend.args.position.suggestions.falseHelpText": "凡例を無効にします", + "timelion.help.functions.legend.args.position.suggestions.neHelpText": "北東の角に凡例を配置します", + "timelion.help.functions.legend.args.position.suggestions.nwHelpText": "北西の角に凡例を配置します", + "timelion.help.functions.legend.args.position.suggestions.seHelpText": "南東の角に凡例を配置します", + "timelion.help.functions.legend.args.position.suggestions.swHelpText": "南西の角に凡例を配置します", + "timelion.help.functions.legend.args.positionHelpText": "凡例を配置する角:nw、ne、se、または sw。false で凡例を無効にすることもできます", + "timelion.help.functions.legend.args.showTimeHelpText": "グラフにカーソルを合わせた時、凡例の時間値を表示します。デフォルト:true", + "timelion.help.functions.legend.args.timeFormatHelpText": "moment.js フォーマットパターンです。デフォルト:{defaultTimeFormat}", + "timelion.help.functions.legendHelpText": "プロットの凡例の位置とスタイルを設定します", + "timelion.help.functions.lines.args.fillHelpText": "0 と 10 の間の数字です。エリアチャートの作成に使用します。", + "timelion.help.functions.lines.args.showHelpText": "線の表示と非表示を切り替えます", + "timelion.help.functions.lines.args.stackHelpText": "線をスタックします。よく誤解を招きます。この機能を使用する際は塗りつぶしを使うようにしましょう。", + "timelion.help.functions.lines.args.stepsHelpText": "線をステップとして表示します。つまり、点の間に中間値を挿入しません。", + "timelion.help.functions.lines.args.widthHelpText": "線の太さです", + "timelion.help.functions.linesHelpText": "seriesList を線として表示します", + "timelion.help.functions.log.args.baseHelpText": "対数のベースを設定します、デフォルトは 10 です", + "timelion.help.functions.logHelpText": "数列リストの各値の対数値を返します(デフォルトのベース:10)", + "timelion.help.functions.max.args.valueHelpText": "点を既存の値と引き渡された値のどちらか高い方に設定します。seriesList を引き渡す場合、数列がちょうど 1 つでなければなりません。", + "timelion.help.functions.maxHelpText": "インプット seriesList の各数列のそれぞれの配置の seriesList の 1 つまたは複数の数列の最高値です", + "timelion.help.functions.min.args.valueHelpText": "点を既存の値と引き渡された値のどちらか低い方に設定します。seriesList を引き渡す場合、数列がちょうど 1 つでなければなりません。", + "timelion.help.functions.minHelpText": "インプット seriesList の各数列のそれぞれの配置の seriesList の 1 つまたは複数の数列の最低値です", + "timelion.help.functions.movingaverage.args.positionHelpText": "結果時間に相対的な平均点の位置です。次のいずれかです。{validPositions}", + "timelion.help.functions.movingaverage.args.windowHelpText": "平均を出す点の数、または日付計算式(例:1d、1M)です。日付計算式が指定された場合、この機能は現在選択された間隔でできるだけ近づけます。日付計算式が間隔で均等に分けられない場合、結果に異常が出る場合があります。", + "timelion.help.functions.movingaverageHelpText": "特定期間の移動平均を計算します。ばらばらの数列を滑らかにするのに有効です。", + "timelion.help.functions.movingstd.args.positionHelpText": "結果時間に相対的な期間スライスの配置です。オプションは {positions} です。デフォルト:{defaultPosition}", + "timelion.help.functions.movingstd.args.windowHelpText": "標準偏差を計算する点の数です。", + "timelion.help.functions.movingstdHelpText": "特定期間の移動標準偏差を計算します。ネイティブ two-pass アルゴリズムを使用します。非常に長い数列や、非常に大きな数字を含む数列では、四捨五入による誤差がより明らかになる可能性があります。", + "timelion.help.functions.multiply.args.multiplierHelpText": "掛ける数字または数列です。複数数列を含む seriesList はラベルに適用されます。", + "timelion.help.functions.multiplyHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に掛けます。", + "timelion.help.functions.notAllowedGraphiteUrl": "この Graphite URL は kibana.yml ファイルで構成されていません。\n 「timelion.graphiteUrls」で kibana.yml ファイルの Graphite サーバーリストを構成し、\n Kibana の高度な設定でいずれかを選択してください", + "timelion.help.functions.points.args.fillColorHelpText": "点を塗りつぶす色です。", + "timelion.help.functions.points.args.fillHelpText": "塗りつぶしの透明度を表す 0 から 10 までの数字です", + "timelion.help.functions.points.args.radiusHelpText": "点のサイズです", + "timelion.help.functions.points.args.showHelpText": "点の表示・非表示です", + "timelion.help.functions.points.args.symbolHelpText": "点のシンボルです。次のいずれかです。{validSymbols}", + "timelion.help.functions.points.args.weightHelpText": "点の周りの太さです", + "timelion.help.functions.pointsHelpText": "数列を点として表示します", + "timelion.help.functions.precision.args.precisionHelpText": "各値を切り捨てる桁数です", + "timelion.help.functions.precisionHelpText": "値の小数点以下を切り捨てる桁数です", + "timelion.help.functions.props.args.globalHelpText": "各数列に対し、seriesList にプロップを設定します", + "timelion.help.functions.propsHelpText": "数列に任意のプロパティを設定するため、自己責任で行ってください。例:{example}。", + "timelion.help.functions.quandl.args.codeHelpText": "プロットする Quandl コードです。これらは quandl.com に掲載されています。", + "timelion.help.functions.quandl.args.positionHelpText": "Quandl ソースによっては、複数数列を返すものがあります。どれを使用しますか?1 ベースインデックス", + "timelion.help.functions.quandlHelpText": "\n [実験的]\n Quandl コードで quandl.com からデータを取得します。Kibana で {quandlKeyField} を空き API キーに設定\n 高度な設定API は、キーなしでは非常に低いレート制限があります。", + "timelion.help.functions.range.args.maxHelpText": "新しい最高値です", + "timelion.help.functions.range.args.minHelpText": "新しい最低値です", + "timelion.help.functions.rangeHelpText": "同じシェイプを維持しつつ数列の最高値と最低値を変更します", + "timelion.help.functions.scaleInterval.args.intervalHelpText": "新しい間隔の日付計算表記です。例:1 秒 = 1s。1m、5m、1M、1w、1y など。", + "timelion.help.functions.scaleIntervalHelpText": "変更すると、値(通常合計またはカウント)が新しい間隔にスケーリングされます。例:毎秒のレート", + "timelion.help.functions.static.args.labelHelpText": "数列のラベルを簡単に設定する方法です。.label()関数を使用することもできます。", + "timelion.help.functions.static.args.valueHelpText": "表示する単一の値です。複数の値が渡された場合、指定された時間範囲に均等に挿入されます。", + "timelion.help.functions.staticHelpText": "チャートに 1 つの値を挿入します", + "timelion.help.functions.subtract.args.termHelpText": "インプットから引く数字または数列です。複数数列を含む seriesList はラベルに適用されます。", + "timelion.help.functions.subtractHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置から引きます。", + "timelion.help.functions.sum.args.termHelpText": "インプット数列に足す数字または数列です。複数数列を含む seriesList はラベルに適用されます。", + "timelion.help.functions.sumHelpText": "seriesList の 1 つまたは複数の数列の値をインプット seriesList の各数列のそれぞれの配置に足します。", + "timelion.help.functions.title.args.titleHelpText": "プロットのタイトルです。", + "timelion.help.functions.titleHelpText": "プロットの上部にタイトルを追加します。複数の seriesList がコールされた場合、最後のコールが使用されます。", + "timelion.help.functions.trend.args.endHelpText": "始めまたは終わりからの計算を修了する場所です。たとえば、-10 の場合終わりから 10 点目で計算が終了し、+15 の場合始めから 15 点目で終了します。デフォルト:0", + "timelion.help.functions.trend.args.modeHelpText": "傾向線の生成に使用するアルゴリズムです。次のいずれかです。{validRegressions}", + "timelion.help.functions.trend.args.startHelpText": "始めまたは終わりからの計算を開始する場所です。たとえば、-10 の場合終わりから 10 点目から計算を開始し、+15 の場合始めから 15 点目から開始します。デフォルト:0", + "timelion.help.functions.trendHelpText": "指定された回帰アルゴリズムで傾向線を描きます", + "timelion.help.functions.trim.args.endHelpText": "数列の終わりから切り取るバケットです。デフォルト:1", + "timelion.help.functions.trim.args.startHelpText": "数列の始めから切り取るバケットです。デフォルト:1", + "timelion.help.functions.trimHelpText": "「部分的バケットの問題」に合わせて、数列の始めか終わりの N 個のバケットを無効化するように設定します。", + "timelion.help.functions.worldbank.args.codeHelpText": "Worldbank API パスです。これは通常ドメインの後ろからクエリ文字列までのすべてです。例:{apiPathExample}。", + "timelion.help.functions.worldbankHelpText": "\n [実験的]\n 数列へのパスを使用して {worldbankUrl} からデータを取得します。\n Worldbank は主に年間データを提供し、現在の年のデータがないことがよくあります。\n 最近の期間範囲のデータが取得できない場合は、{offsetQuery} をお試しください。", + "timelion.help.functions.worldbankIndicators.args.countryHelpText": "Worldbank の国 ID です。通常は国の 2 文字のコートです", + "timelion.help.functions.worldbankIndicators.args.indicatorHelpText": "使用するインジケーターコードです。{worldbankUrl} で調べる必要があります。多くが分かりづらいものです。例:{indicatorExample} は人口です", + "timelion.help.functions.worldbankIndicatorsHelpText": "\n [実験的]\n 国名とインジケーターを使って {worldbankUrl} からデータを取得します。Worldbank は\n 主に年間データを提供し、現在の年のデータがないことがよくあります。最近の期間範囲のデータが取得できない場合は、{offsetQuery} をお試しください。\n 時間範囲", + "timelion.help.functions.yaxis.args.colorHelpText": "軸ラベルの色です", + "timelion.help.functions.yaxis.args.labelHelpText": "軸のラベルです", + "timelion.help.functions.yaxis.args.maxHelpText": "最高値", + "timelion.help.functions.yaxis.args.minHelpText": "最低値", + "timelion.help.functions.yaxis.args.positionHelpText": "左から右", + "timelion.help.functions.yaxis.args.tickDecimalsHelpText": "y 軸とティックラベルの小数点以下の桁数です。", + "timelion.help.functions.yaxis.args.unitsHelpText": "Y 軸のラベルのフォーマットに使用する機能です。次のいずれかです。{formatters}", + "timelion.help.functions.yaxis.args.yaxisHelpText": "この数列をプロットする数字の Y 軸です。例:2 本目の Y 軸は .yaxis(2)になります。", + "timelion.help.functions.yaxisHelpText": "さまざまな Y 軸のオプションを構成します。おそらく最も重要なのは、N 本目(例:2 本目)の Y 軸を追加する機能です。", + "timelion.noFunctionErrorMessage": "そのような関数はありません:{name}", + "timelion.panels.timechart.unknownIntervalErrorMessage": "不明な間隔", + "timelion.requestHandlerErrorTitle": "Timelion リクエストエラー", + "timelion.serverSideErrors.argumentsOverflowErrorMessage": "{functionName} に引き渡された引数が多すぎます", + "timelion.serverSideErrors.bucketsOverflowErrorMessage": "最大バケットを超えました:{bucketCount}/{maxBuckets} が許可されています。より広い間隔または短い期間を選択してください", + "timelion.serverSideErrors.colorFunction.colorNotProvidedErrorMessage": "色が指定されていません", + "timelion.serverSideErrors.conditionFunction.unknownOperatorErrorMessage": "不明な演算子", + "timelion.serverSideErrors.conditionFunction.wrongArgTypeErrorMessage": "数字または seriesList でなければなりません", + "timelion.serverSideErrors.errorInCell": " セル #{number}: {message}", + "timelion.serverSideErrors.esFunction.indexNotFoundErrorMessage": "Elasticsearch インデックス {index} が見つかりません", + "timelion.serverSideErrors.holtFunction.missingParamsErrorMessage": "シーズンの長さとサンプルサイズ >= 2 を指定する必要があります", + "timelion.serverSideErrors.holtFunction.notEnoughPointsErrorMessage": "二重指数平滑化を使用するには最低 2 つの点が必要です", + "timelion.serverSideErrors.movingaverageFunction.notValidPositionErrorMessage": "有効な配置:{validPositions}", + "timelion.serverSideErrors.movingstdFunction.notValidPositionErrorMessage": "有効な配置:{validPositions}", + "timelion.serverSideErrors.pointsFunction.notValidSymbolErrorMessage": "有効なシンボル:{validSymbols}", + "timelion.serverSideErrors.quandlFunction.unsupportedIntervalErrorMessage": "quandl()でサポートされていない間隔:{interval}. quandl()でサポートされている間隔:{intervals}", + "timelion.serverSideErrors.sheetParseErrorMessage": "予想:文字 {column} で {expectedDescription}", + "timelion.serverSideErrors.unknownArgumentErrorMessage": "{functionName} への不明な引数:{argumentName}", + "timelion.serverSideErrors.unknownArgumentTypeErrorMessage": "引数タイプがサポートされていません:{argument}", + "timelion.serverSideErrors.worldbankFunction.noDataErrorMessage": "Worldbank へのリクエストは成功しましたが、{code} のデータがありませんでした", + "timelion.serverSideErrors.wrongFunctionArgumentTypeErrorMessage": "{functionName}({argumentName})は {requiredTypes} の内の 1 つでなければなりません。{actualType} を入手", + "timelion.serverSideErrors.yaxisFunction.notSupportedUnitTypeErrorMessage": "{units} はサポートされているユニットタイプではありません。", + "timelion.serverSideErrors.yaxisFunction.notValidCurrencyFormatErrorMessage": "通貨は 3 文字のコードでなければなりません", + "timelion.timelionDescription": "グラフに時系列データを表示します。", + "timelion.uiSettings.defaultIndexDescription": "{esParam} で検索するデフォルトの Elasticsearch インデックスです", + "timelion.uiSettings.defaultIndexLabel": "デフォルトのインデックス", + "timelion.uiSettings.experimentalLabel": "実験的", + "timelion.uiSettings.graphiteURLDescription": "{experimentalLabel} Graphite ホストの <a href=\"https://www.hostedgraphite.com/UID/ACCESS_KEY/graphite\" target=\"_blank\" rel=\"noopener\">URL</a>", + "timelion.uiSettings.graphiteURLLabel": "Graphite URL", + "timelion.uiSettings.legacyChartsLibraryDeprication": "この設定はサポートが終了し、Kibana 8.0 ではサポートされません。", + "timelion.uiSettings.legacyChartsLibraryDescription": "VisualizeでTimelionグラフのレガシーグラフライブラリを有効にします", + "timelion.uiSettings.legacyChartsLibraryLabel": "Timelionレガシーグラフライブラリ", + "timelion.uiSettings.maximumBucketsDescription": "1つのデータソースが返せるバケットの最大数です", + "timelion.uiSettings.maximumBucketsLabel": "バケットの最大数", + "timelion.uiSettings.minimumIntervalDescription": "「auto」を使用時に計算される最小の間隔です", + "timelion.uiSettings.minimumIntervalLabel": "最低間隔", + "timelion.uiSettings.quandlKeyDescription": "{experimentalLabel} www.quandl.com からの API キーです", + "timelion.uiSettings.quandlKeyLabel": "Quandl キー", + "timelion.uiSettings.targetBucketsDescription": "自動間隔の使用時に目標となるバケット数です。", + "timelion.uiSettings.targetBucketsLabel": "目標バケット数", + "timelion.uiSettings.timeFieldDescription": "{esParam} の使用時にタイムスタンプを含むデフォルトのフィールドです", + "timelion.uiSettings.timeFieldLabel": "時間フィールド", + "timelion.vis.expressionLabel": "Timelion 式", + "timelion.vis.interval.auto": "自動", + "timelion.vis.interval.day": "1日", + "timelion.vis.interval.hour": "1時間", + "timelion.vis.interval.minute": "1分", + "timelion.vis.interval.month": "1か月", + "timelion.vis.interval.second": "1秒", + "timelion.vis.interval.week": "1週間", + "timelion.vis.interval.year": "1年", + "timelion.vis.intervalLabel": "間隔", + "timelion.vis.invalidIntervalErrorMessage": "無効な間隔フォーマット。", + "timelion.vis.selectIntervalHelpText": "オプションを選択するかカスタム値を作成します。例:30s、20m、24h、2d、1w、1M", + "timelion.vis.selectIntervalPlaceholder": "間隔を選択", + "uiActions.actionPanel.more": "詳細", + "uiActions.actionPanel.title": "オプション", + "uiActions.errors.incompatibleAction": "操作に互換性がありません", + "uiActions.triggers.rowClickkDescription": "テーブル行をクリック", + "uiActions.triggers.rowClickTitle": "テーブル行クリック", + "usageCollection.stats.notReadyMessage": "まだ統計が準備できていません。しばらくたってから再試行してください。", + "visDefaultEditor.advancedToggle.advancedLinkLabel": "高度な設定", + "visDefaultEditor.agg.disableAggButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを無効にする", + "visDefaultEditor.agg.enableAggButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを有効にする", + "visDefaultEditor.agg.errorsAriaLabel": "{schemaTitle} {aggTitle} アグリゲーションにエラーがあります", + "visDefaultEditor.agg.modifyPriorityButtonTooltip": "ドラッグして {schemaTitle} {aggTitle} の優先度を変更する", + "visDefaultEditor.agg.removeDimensionButtonTooltip": "{schemaTitle} {aggTitle} アグリゲーションを削除する", + "visDefaultEditor.agg.toggleEditorButtonAriaLabel": "{schema} エディターを切り替える", + "visDefaultEditor.aggAdd.addButtonLabel": "追加", + "visDefaultEditor.aggAdd.addGroupButtonLabel": "{groupNameLabel}を追加", + "visDefaultEditor.aggAdd.addSubGroupButtonLabel": "サブ {groupNameLabel} を追加", + "visDefaultEditor.aggAdd.bucketLabel": "バケット", + "visDefaultEditor.aggAdd.maxBuckets": "最大{groupNameLabel}数に達しました", + "visDefaultEditor.aggAdd.metricLabel": "メトリック", + "visDefaultEditor.aggParams.errors.aggWrongRunOrderErrorMessage": "「{schema}」集約は他のバケットの前に実行する必要があります!", + "visDefaultEditor.aggSelect.aggregationLabel": "集約", + "visDefaultEditor.aggSelect.helpLinkLabel": "{aggTitle}のヘルプ", + "visDefaultEditor.aggSelect.noCompatibleAggsDescription": "インデックスパターン{indexPatternTitle}には集約可能なフィールドが含まれていません。", + "visDefaultEditor.aggSelect.selectAggPlaceholder": "集約を選択してください", + "visDefaultEditor.aggSelect.subAggregationLabel": "サブ集約", + "visDefaultEditor.buckets.mustHaveBucketErrorMessage": "「日付ヒストグラム」または「ヒストグラム」集約のバケットを追加します。", + "visDefaultEditor.controls.aggNotValidLabel": "- 無効な集約 -", + "visDefaultEditor.controls.aggregateWith.noAggsErrorTooltip": "選択されたフィールドには互換性のある集約がありません。", + "visDefaultEditor.controls.aggregateWithLabel": "集約:", + "visDefaultEditor.controls.aggregateWithTooltip": "複数ヒットまたは複数値のフィールドを 1 つのメトリックにまとめる方法を選択します。", + "visDefaultEditor.controls.changePrecisionLabel": "マップズームの精度を変更", + "visDefaultEditor.controls.columnsLabel": "列", + "visDefaultEditor.controls.customMetricLabel": "カスタムメトリック", + "visDefaultEditor.controls.dateRanges.acceptedDateFormatsLinkText": "許容可能な日付形式", + "visDefaultEditor.controls.dateRanges.addRangeButtonLabel": "範囲を追加", + "visDefaultEditor.controls.dateRanges.errorMessage": "各範囲は1つ以上の有効な日付にしてください。", + "visDefaultEditor.controls.dateRanges.fromColumnLabel": "開始:", + "visDefaultEditor.controls.dateRanges.removeRangeButtonAriaLabel": "{from}から{to}の範囲を削除", + "visDefaultEditor.controls.dateRanges.toColumnLabel": "終了:", + "visDefaultEditor.controls.definiteMetricLabel": "メトリック:{metric}", + "visDefaultEditor.controls.dotSizeRatioHelpText": "最小の点から最大の点までの半径の比率を変更します。", + "visDefaultEditor.controls.dotSizeRatioLabel": "点サイズ率", + "visDefaultEditor.controls.dropPartialBucketsLabel": "不完全なバケットをドロップ", + "visDefaultEditor.controls.dropPartialBucketsTooltip": "時間範囲外にわたるバケットを削除してヒストグラムが不完全なバケットで開始・終了しないようにします。", + "visDefaultEditor.controls.extendedBounds.errorMessage": "最低値は最大値以下でなければなりません。", + "visDefaultEditor.controls.extendedBounds.maxLabel": "最高", + "visDefaultEditor.controls.extendedBounds.minLabel": "最低", + "visDefaultEditor.controls.extendedBoundsLabel": "拡張された境界", + "visDefaultEditor.controls.extendedBoundsTooltip": "最低値と最高値は結果を絞るのではなく、結果セットのバウンドを拡張します。", + "visDefaultEditor.controls.field.fieldIsNotExists": "このオブジェクトに関連付けられたフィールド\"{fieldParameter}\"は、インデックスパターンに存在しません。別のフィールドを使用してください。", + "visDefaultEditor.controls.field.fieldLabel": "フィールド", + "visDefaultEditor.controls.field.invalidFieldForAggregation": "このアグリゲーションで使用するには、インデックスパターン\"{indexPatternTitle}\"の保存されたフィールド\"{fieldParameter}\"が無効です。新しいフィールドを選択してください。", + "visDefaultEditor.controls.field.noCompatibleFieldsDescription": "インデックスパターン` {indexPatternTitle} に次の互換性のあるフィールドタイプが 1 つも含まれていません:{fieldTypes}", + "visDefaultEditor.controls.field.selectFieldPlaceholder": "フィールドの選択", + "visDefaultEditor.controls.filters.addFilterButtonLabel": "フィルターを追加します", + "visDefaultEditor.controls.filters.definiteFilterLabel": "{index} ラベルでフィルタリング", + "visDefaultEditor.controls.filters.filterLabel": "{index} でフィルタリング", + "visDefaultEditor.controls.filters.labelPlaceholder": "ラベル", + "visDefaultEditor.controls.filters.removeFilterButtonAriaLabel": "このフィルターを削除", + "visDefaultEditor.controls.filters.toggleFilterButtonAriaLabel": "フィルターラベルを切り替える", + "visDefaultEditor.controls.includeExclude.addUnitButtonLabel": "値を追加", + "visDefaultEditor.controls.ipRanges.addRangeButtonLabel": "範囲を追加", + "visDefaultEditor.controls.ipRanges.cidrMaskAriaLabel": "CIDR マスク:{mask}", + "visDefaultEditor.controls.ipRanges.cidrMasksButtonLabel": "CIDR マスク", + "visDefaultEditor.controls.ipRanges.fromToButtonLabel": "開始/終了", + "visDefaultEditor.controls.ipRanges.ipRangeFromAriaLabel": "IP 範囲の開始値:{value}", + "visDefaultEditor.controls.ipRanges.ipRangeToAriaLabel": "IP 範囲の終了値:{value}", + "visDefaultEditor.controls.ipRanges.removeCidrMaskButtonAriaLabel": "{mask} の CIDR マスクの値を削除", + "visDefaultEditor.controls.ipRanges.removeEmptyCidrMaskButtonAriaLabel": "CIDR マスクのデフォルトの値を削除", + "visDefaultEditor.controls.ipRanges.removeRangeAriaLabel": "{from}から{to}の範囲を削除", + "visDefaultEditor.controls.ipRangesAriaLabel": "IP 範囲", + "visDefaultEditor.controls.jsonInputLabel": "JSON インプット", + "visDefaultEditor.controls.jsonInputTooltip": "ここに追加された JSON 形式のプロパティは、すべてこのセクションの Elasticsearch 集約定義に融合されます。用語集約における「shard_size」がその例です。", + "visDefaultEditor.controls.maxBars.autoPlaceholder": "自動", + "visDefaultEditor.controls.maxBars.maxBarsHelpText": "間隔は、使用可能なデータに基づいて、自動的に選択されます。棒の最大数は、詳細設定の{histogramMaxBars}以下でなければなりません。", + "visDefaultEditor.controls.maxBars.maxBarsLabel": "棒の最大数", + "visDefaultEditor.controls.metricLabel": "メトリック", + "visDefaultEditor.controls.metrics.bucketTitle": "バケット", + "visDefaultEditor.controls.metrics.metricTitle": "メトリック", + "visDefaultEditor.controls.numberInterval.autoInteralIsUsed": "自動間隔が使用されます", + "visDefaultEditor.controls.numberInterval.minimumIntervalLabel": "最低間隔", + "visDefaultEditor.controls.numberInterval.minimumIntervalTooltip": "入力された値により高度な設定の {histogramMaxBars} で指定されたよりも多くのバケットが作成される場合、間隔は自動的にスケーリングされます。", + "visDefaultEditor.controls.numberInterval.selectIntervalPlaceholder": "間隔を入力", + "visDefaultEditor.controls.numberList.addUnitButtonLabel": "{unitName} を追加", + "visDefaultEditor.controls.numberList.duplicateValueErrorMessage": "重複値。", + "visDefaultEditor.controls.numberList.enterValuePlaceholder": "値を入力", + "visDefaultEditor.controls.numberList.invalidAscOrderErrorMessage": "値は昇順になっていません。", + "visDefaultEditor.controls.numberList.invalidRangeErrorMessage": "値は {min} から {max} の範囲でなければなりません。", + "visDefaultEditor.controls.numberList.removeUnitButtonAriaLabel": "{value} のランク値を削除", + "visDefaultEditor.controls.onlyRequestDataAroundMapExtentLabel": "マップ範囲のデータのみリクエストしてください", + "visDefaultEditor.controls.onlyRequestDataAroundMapExtentTooltip": "geo_bounding_box フィルター集約を適用して、襟付きのマップビューボックスにサブジェクトエリアを絞ります", + "visDefaultEditor.controls.orderAgg.alphabeticalLabel": "アルファベット順", + "visDefaultEditor.controls.orderAgg.orderByLabel": "並び順", + "visDefaultEditor.controls.orderLabel": "順序", + "visDefaultEditor.controls.otherBucket.groupValuesLabel": "他の値を別のバケットにまとめる", + "visDefaultEditor.controls.otherBucket.groupValuesTooltip": "トップ N 以外の値はこのバケットにまとめられます。欠測値があるドキュメントを含めるには、「欠測値を表示」を有効にしてください。", + "visDefaultEditor.controls.otherBucket.showMissingValuesLabel": "欠測値を表示", + "visDefaultEditor.controls.otherBucket.showMissingValuesTooltip": "「文字列」タイプのフィールドにのみ使用できます。有効にすると、欠測値があるドキュメントが検索に含まれます。バケットがトップ N の場合、チャートに表示されます。トップ N ではなく、「他の値を別のバケットにまとえる」が有効な場合、Elasticsearch は欠測値を「他」のバケットに追加します。", + "visDefaultEditor.controls.percentileRanks.percentUnitNameText": "パーセント", + "visDefaultEditor.controls.percentileRanks.valuesLabel": "値", + "visDefaultEditor.controls.percentileRanks.valueUnitNameText": "値", + "visDefaultEditor.controls.percentiles.percentsLabel": "パーセント", + "visDefaultEditor.controls.placeMarkersOffGridLabel": "グリッド外にマーカーを配置(ジオセントロイドを使用)", + "visDefaultEditor.controls.precisionLabel": "精度", + "visDefaultEditor.controls.ranges.addRangeButtonLabel": "範囲を追加", + "visDefaultEditor.controls.ranges.fromLabel": "開始:", + "visDefaultEditor.controls.ranges.greaterThanOrEqualPrepend": "≥", + "visDefaultEditor.controls.ranges.greaterThanOrEqualTooltip": "よりも大きいまたは等しい", + "visDefaultEditor.controls.ranges.lessThanPrepend": "<", + "visDefaultEditor.controls.ranges.lessThanTooltip": "より小さい", + "visDefaultEditor.controls.ranges.removeRangeButtonAriaLabel": "{from}から{to}の範囲を削除", + "visDefaultEditor.controls.ranges.toLabel": "終了:", + "visDefaultEditor.controls.rowsLabel": "行", + "visDefaultEditor.controls.scaleMetricsLabel": "メトリック値のスケーリング(非推奨)", + "visDefaultEditor.controls.scaleMetricsTooltip": "これを有効にすると、手動最低間隔を選択し、広い間隔が使用された場合、カウントと合計メトリックが手動で選択された間隔にスケーリングされます。", + "visDefaultEditor.controls.showEmptyBucketsLabel": "空のバケットを表示", + "visDefaultEditor.controls.showEmptyBucketsTooltip": "結果のあるバケットだけでなくすべてのバケットを表示します", + "visDefaultEditor.controls.sizeLabel": "サイズ", + "visDefaultEditor.controls.sizeTooltip": "トップ K のヒットをリクエスト。複数ヒットは「集約基準」でまとめられます。", + "visDefaultEditor.controls.sortOnLabel": "並べ替えオン", + "visDefaultEditor.controls.splitByLegend": "行または列でチャートを分割します。", + "visDefaultEditor.controls.timeInterval.createsTooLargeBucketsTooltip": "この間隔は、選択された時間範囲に表示するには大きすぎるバケットが作成されるため、にスケーリングされています。", + "visDefaultEditor.controls.timeInterval.createsTooManyBucketsTooltip": "この間隔は選択された時間範囲に表示しきれない数のバケットが作成されるため、にスケーリングされています。", + "visDefaultEditor.controls.timeInterval.invalidFormatErrorMessage": "無効な間隔フォーマット。", + "visDefaultEditor.controls.timeInterval.minimumIntervalLabel": "最低間隔", + "visDefaultEditor.controls.timeInterval.scaledHelpText": "現在 {bucketDescription} にスケーリングされています", + "visDefaultEditor.controls.timeInterval.selectIntervalPlaceholder": "間隔を選択", + "visDefaultEditor.controls.timeInterval.selectOptionHelpText": "オプションを選択するかカスタム値を作成します。例:30s、20m、24h、2d、1w、1M", + "visDefaultEditor.controls.useAutoInterval": "自動間隔を使用", + "visDefaultEditor.editorConfig.dateHistogram.customInterval.helpText": "構成間隔の倍数でなければなりません:{interval}", + "visDefaultEditor.editorConfig.histogram.interval.helpText": "構成間隔の倍数でなければなりません:{interval}", + "visDefaultEditor.metrics.wrongLastBucketTypeErrorMessage": "「{type}」メトリック集約を使用する場合、最後のバケット集約は「Date Histogram」または「Histogram」でなければなりません。", + "visDefaultEditor.options.colorRanges.errorText": "各範囲は前の範囲よりも大きくなければなりません。", + "visDefaultEditor.options.colorSchema.colorSchemaLabel": "配色", + "visDefaultEditor.options.colorSchema.howToChangeColorsDescription": "それぞれの色は凡例で変更できます。", + "visDefaultEditor.options.colorSchema.resetColorsButtonLabel": "色をリセット", + "visDefaultEditor.options.colorSchema.reverseColorSchemaLabel": "図表を反転", + "visDefaultEditor.options.longLegends.maxLegendLinesLabel": "最大凡例行", + "visDefaultEditor.options.longLegends.truncateLegendTextLabel": "凡例テキストを切り捨てる", + "visDefaultEditor.options.percentageMode.documentationLabel": "Numeral.jsドキュメント", + "visDefaultEditor.options.percentageMode.numeralLabel": "形式パターン", + "visDefaultEditor.options.percentageMode.percentageModeLabel": "百分率モード", + "visDefaultEditor.options.rangeErrorMessage": "値は{min}と{max}の間でなければなりません", + "visDefaultEditor.options.vislibBasicOptions.legendPositionLabel": "凡例位置", + "visDefaultEditor.options.vislibBasicOptions.showTooltipLabel": "ツールヒントを表示", + "visDefaultEditor.palettePicker.label": "カラーパレット", + "visDefaultEditor.sidebar.autoApplyChangesLabelOff": "自動適用がオフです", + "visDefaultEditor.sidebar.autoApplyChangesLabelOn": "自動適用がオンです", + "visDefaultEditor.sidebar.autoApplyChangesOff": "オフ", + "visDefaultEditor.sidebar.autoApplyChangesOffLabel": "自動適用がオフです", + "visDefaultEditor.sidebar.autoApplyChangesOn": "オン", + "visDefaultEditor.sidebar.autoApplyChangesOnLabel": "自動適用がオンです", + "visDefaultEditor.sidebar.autoApplyChangesTooltip": "変更されるごとにビジュアライゼーションを自動的に更新します。", + "visDefaultEditor.sidebar.collapseButtonAriaLabel": "サイドバーを切り替える", + "visDefaultEditor.sidebar.discardChangesButtonLabel": "破棄", + "visDefaultEditor.sidebar.errorButtonTooltip": "ハイライトされたフィールドのエラーを解決する必要があります。", + "visDefaultEditor.sidebar.indexPatternAriaLabel": "インデックスパターン:{title}", + "visDefaultEditor.sidebar.savedSearch.goToDiscoverButtonText": "Discover にこの検索を表示", + "visDefaultEditor.sidebar.savedSearch.linkButtonAriaLabel": "保存された検索へのリンク。クリックして詳細を確認するかリンクを解除します。", + "visDefaultEditor.sidebar.savedSearch.popoverHelpText": "保存したこの検索に今後加える修正は、ビジュアライゼーションに反映されます。自動更新を無効にするには、リンクを削除します。", + "visDefaultEditor.sidebar.savedSearch.popoverTitle": "保存された検索にリンクされています", + "visDefaultEditor.sidebar.savedSearch.titleAriaLabel": "保存された検索:{title}", + "visDefaultEditor.sidebar.savedSearch.unlinkSavedSearchButtonText": "保存された検索へのリンクを削除", + "visDefaultEditor.sidebar.tabs.dataLabel": "データ", + "visDefaultEditor.sidebar.tabs.optionsLabel": "オプション", + "visDefaultEditor.sidebar.updateChartButtonLabel": "更新", + "visDefaultEditor.sidebar.updateInfoTooltip": "CTRL + Enterは更新のショートカットです。", + "visTypeMarkdown.function.font.help": "フォント設定です。", + "visTypeMarkdown.function.help": "マークダウンビジュアライゼーション", + "visTypeMarkdown.function.markdown.help": "レンダリングするマークダウン", + "visTypeMarkdown.function.openLinksInNewTab.help": "新規タブでリンクを開きます", + "visTypeMarkdown.markdownDescription": "テキストと画像をダッシュボードに追加します。", + "visTypeMarkdown.markdownTitleInWizard": "テキスト", + "visTypeMarkdown.params.fontSizeLabel": "ポイント単位のベースフォントサイズです。", + "visTypeMarkdown.params.helpLinkLabel": "ヘルプ", + "visTypeMarkdown.params.openLinksLabel": "新規タブでリンクを開く", + "visTypeMarkdown.tabs.dataText": "データ", + "visTypeMarkdown.tabs.optionsText": "オプション", + "visTypeMetric.colorModes.backgroundOptionLabel": "背景", + "visTypeMetric.colorModes.labelsOptionLabel": "ラベル", + "visTypeMetric.colorModes.noneOptionLabel": "なし", + "visTypeMetric.metricDescription": "計算結果を単独の数字として表示します。", + "visTypeMetric.metricTitle": "メトリック", + "visTypeMetric.params.color.useForLabel": "使用する色", + "visTypeMetric.params.rangesTitle": "範囲", + "visTypeMetric.params.settingsTitle": "設定", + "visTypeMetric.params.showTitleLabel": "タイトルを表示", + "visTypeMetric.params.style.fontSizeLabel": "ポイント単位のメトリックフォントサイズ", + "visTypeMetric.params.style.styleTitle": "スタイル", + "visTypeMetric.schemas.metricTitle": "メトリック", + "visTypeMetric.schemas.splitGroupTitle": "グループを分割", + "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.deprecation": "Visualizeの円グラフのレガシーグラフライブラリは廃止予定であり、将来のバージョンではサポートされません。", + "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.description": "Visualizeで円グラフのレガシーグラフライブラリを有効にします。", + "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.name": "円グラフのレガシーグラフライブラリ", + "visTypePie.controls.truncateLabel": "切り捨て", + "visTypePie.controls.truncateTooltip": "グラフ外に配置されたラベルの文字数。", + "visTypePie.editors.pie.addLegendLabel": "凡例を表示", + "visTypePie.editors.pie.decimalSliderLabel": "割合の最大小数点桁数", + "visTypePie.editors.pie.distinctColorsLabel": "スライスごとに異なる色を使用", + "visTypePie.editors.pie.donutLabel": "ドーナッツ", + "visTypePie.editors.pie.labelPositionLabel": "ラベル位置", + "visTypePie.editors.pie.labelsSettingsTitle": "ラベル設定", + "visTypePie.editors.pie.nestedLegendLabel": "ネスト凡例", + "visTypePie.editors.pie.pieSettingsTitle": "パイ設定", + "visTypePie.editors.pie.showLabelsLabel": "ラベルを表示", + "visTypePie.editors.pie.showTopLevelOnlyLabel": "トップレベルのみ表示", + "visTypePie.editors.pie.showValuesLabel": "値を表示", + "visTypePie.editors.pie.valueFormatsLabel": "値", + "visTypePie.function.adimension.buckets": "スライス", + "visTypePie.function.args.addLegendHelpText": "グラフ凡例を表示", + "visTypePie.function.args.addTooltipHelpText": "スライスにカーソルを置いたときにツールチップを表示", + "visTypePie.function.args.bucketsHelpText": "バケットディメンション構成", + "visTypePie.function.args.distinctColorsHelpText": "スライスごとに異なる色をマッピングします。同じ値のスライスは同じ色になります", + "visTypePie.function.args.isDonutHelpText": "円グラフをドーナツグラフとして表示します", + "visTypePie.function.args.labelsHelpText": "円グラフラベル構成", + "visTypePie.function.args.legendPositionHelpText": "グラフの上、下、左、右に凡例を配置", + "visTypePie.function.args.maxLegendLinesHelpText": "凡例項目ごとの行数を定義します", + "visTypePie.function.args.metricHelpText": "メトリックディメンション構成", + "visTypePie.function.args.nestedLegendHelpText": "詳細凡例を表示", + "visTypePie.function.args.paletteHelpText": "グラフパレット名を定義します", + "visTypePie.function.args.splitColumnHelpText": "列ディメンション構成で分割", + "visTypePie.function.args.splitRowHelpText": "行ディメンション構成で分割", + "visTypePie.function.args.truncateLegendHelpText": "凡例項目が切り捨てられるかどうかを定義します", + "visTypePie.function.dimension.metric": "スライスサイズ", + "visTypePie.function.dimension.splitcolumn": "列分割", + "visTypePie.function.dimension.splitrow": "行分割", + "visTypePie.function.pieLabels.help": "円グラフラベルオブジェクトを生成します", + "visTypePie.function.pieLabels.lastLevel.help": "最上位のラベルのみを表示", + "visTypePie.function.pieLabels.percentDecimals.help": "割合として値に表示される10進数を定義します", + "visTypePie.function.pieLabels.position.help": "ラベル位置を定義します", + "visTypePie.function.pieLabels.show.help": "円グラフのラベルを表示します", + "visTypePie.function.pieLabels.truncate.help": "スライス値が表示される文字数を定義します", + "visTypePie.function.pieLabels.values.help": "スライス内の値を定義します", + "visTypePie.function.pieLabels.valuesFormat.help": "値の形式を定義します", + "visTypePie.functions.help": "パイビジュアライゼーション", + "visTypePie.labelPositions.insideOrOutsideText": "内部または外部", + "visTypePie.labelPositions.insideText": "内部", + "visTypePie.legend.filterForValueButtonAriaLabel": "値でフィルター", + "visTypePie.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", + "visTypePie.legend.filterOutValueButtonAriaLabel": "値を除外", + "visTypePie.legendPositions.bottomText": "一番下", + "visTypePie.legendPositions.leftText": "左", + "visTypePie.legendPositions.rightText": "右", + "visTypePie.legendPositions.topText": "トップ", + "visTypePie.negativeValuesFound": "円/ドーナツグラフは負の値では表示できません。", + "visTypePie.noResultsFoundTitle": "結果が見つかりませんでした", + "visTypePie.pie.metricTitle": "スライスサイズ", + "visTypePie.pie.pieDescription": "全体に対する比率でデータを比較します。", + "visTypePie.pie.pieTitle": "円", + "visTypePie.pie.segmentTitle": "スライスの分割", + "visTypePie.pie.splitTitle": "チャートを分割", + "visTypePie.valuesFormats.percent": "割合を表示", + "visTypePie.valuesFormats.value": "値を表示", + "visTypeTable.defaultAriaLabel": "データ表ビジュアライゼーション", + "visTypeTable.function.adimension.buckets": "バケット", + "visTypeTable.function.args.bucketsHelpText": "バケットディメンション構成", + "visTypeTable.function.args.metricsHelpText": "メトリックディメンション構成", + "visTypeTable.function.args.percentageColHelpText": "割合を表示する列の名前", + "visTypeTable.function.args.perPageHelpText": "表ページの行数はページネーションで使用されます", + "visTypeTable.function.args.rowHelpText": "行値は分割表モードで使用されます。「true」に設定すると、行で分割します", + "visTypeTable.function.args.showToolbarHelpText": "「true」に設定すると、グリッドツールバーと[エクスポート]ボタンを表示します", + "visTypeTable.function.args.showTotalHelpText": "「true」に設定すると、合計行を表示します", + "visTypeTable.function.args.splitColumnHelpText": "列ディメンション構成で分割", + "visTypeTable.function.args.splitRowHelpText": "行ディメンション構成で分割", + "visTypeTable.function.args.titleHelpText": "ビジュアライゼーションタイトル。タイトルはデフォルトファイル名としてCSVエクスポートで使用されます", + "visTypeTable.function.args.totalFuncHelpText": "合計行の集計関数を指定します。使用可能なオプション:", + "visTypeTable.function.dimension.metrics": "メトリック", + "visTypeTable.function.dimension.splitColumn": "列で分割", + "visTypeTable.function.dimension.splitRow": "行で分割", + "visTypeTable.function.help": "表ビジュアライゼーション", + "visTypeTable.params.autoFitRow": "行をコンテンツに自動的に合わせる", + "visTypeTable.params.defaultPercentageCol": "非表示", + "visTypeTable.params.PercentageColLabel": "パーセンテージ列", + "visTypeTable.params.percentageTableColumnName": "{title} パーセント", + "visTypeTable.params.perPageLabel": "ページごとの最大行数", + "visTypeTable.params.showMetricsLabel": "すべてのバケット/レベルのメトリックを表示", + "visTypeTable.params.showPartialRowsLabel": "部分的な行を表示", + "visTypeTable.params.showPartialRowsTip": "部分データのある行を表示。表示されていなくてもすべてのバケット/レベルのメトリックが計算されます。", + "visTypeTable.params.showToolbarLabel": "ツールバーを表示", + "visTypeTable.params.showTotalLabel": "合計を表示", + "visTypeTable.params.totalFunctionLabel": "合計機能", + "visTypeTable.sort.ascLabel": "昇順で並べ替え", + "visTypeTable.sort.descLabel": "降順で並べ替え", + "visTypeTable.tableCellFilter.filterForValueAriaLabel": "値のフィルター:{cellContent}", + "visTypeTable.tableCellFilter.filterForValueText": "値でフィルター", + "visTypeTable.tableCellFilter.filterOutValueAriaLabel": "値の除外:{cellContent}", + "visTypeTable.tableCellFilter.filterOutValueText": "値を除外", + "visTypeTable.tableVisDescription": "行と列にデータを表示します。", + "visTypeTable.tableVisEditorConfig.schemas.bucketTitle": "行を分割", + "visTypeTable.tableVisEditorConfig.schemas.metricTitle": "メトリック", + "visTypeTable.tableVisEditorConfig.schemas.splitTitle": "テーブルを分割", + "visTypeTable.tableVisTitle": "データテーブル", + "visTypeTable.totalAggregations.averageText": "平均", + "visTypeTable.totalAggregations.countText": "カウント", + "visTypeTable.totalAggregations.maxText": "最高", + "visTypeTable.totalAggregations.minText": "最低", + "visTypeTable.totalAggregations.sumText": "合計", + "visTypeTable.vis.controls.exportButtonAriaLabel": "{dataGridAriaLabel} を CSV としてエクスポート", + "visTypeTable.vis.controls.exportButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", + "visTypeTable.vis.controls.exportButtonLabel": "エクスポート", + "visTypeTable.vis.controls.formattedCSVButtonLabel": "フォーマット済み", + "visTypeTable.vis.controls.rawCSVButtonLabel": "未加工", + "visTypeTagCloud.orientations.multipleText": "複数", + "visTypeTagCloud.orientations.rightAngledText": "直角", + "visTypeTagCloud.orientations.singleText": "単一", + "visTypeTagCloud.scales.linearText": "線形", + "visTypeTagCloud.scales.logText": "ログ", + "visTypeTagCloud.scales.squareRootText": "平方根", + "visTypeTagCloud.vis.schemas.metricTitle": "タグサイズ", + "visTypeTagCloud.vis.schemas.segmentTitle": "タグ", + "visTypeTagCloud.vis.tagCloudDescription": "単語の頻度とフォントサイズを表示します。", + "visTypeTagCloud.vis.tagCloudTitle": "タグクラウド", + "visTypeTagCloud.visParams.fontSizeLabel": "フォントサイズ範囲(ピクセル)", + "visTypeTagCloud.visParams.orientationsLabel": "方向", + "visTypeTagCloud.visParams.showLabelToggleLabel": "ラベルを表示", + "visTypeTagCloud.visParams.textScaleLabel": "テキストスケール", + "visTypeTimeseries.addDeleteButtons.addButtonDefaultTooltip": "追加", + "visTypeTimeseries.addDeleteButtons.cloneButtonDefaultTooltip": "クローンを作成", + "visTypeTimeseries.addDeleteButtons.deleteButtonDefaultTooltip": "削除", + "visTypeTimeseries.addDeleteButtons.reEnableTooltip": "再度有効にする", + "visTypeTimeseries.addDeleteButtons.temporarilyDisableTooltip": "一時的に無効にする", + "visTypeTimeseries.advancedSettings.maxBucketsText": "TSVBヒストグラム密度に影響します。「histogram:maxBars」よりも大きく設定する必要があります。", + "visTypeTimeseries.advancedSettings.maxBucketsTitle": "TSVBバケット制限", + "visTypeTimeseries.agg.aggIsNotSupportedDescription": "{modelType} 集約はサポートされなくなりました。", + "visTypeTimeseries.agg.aggIsUnsupportedForPanelConfigDescription": "{modelType}アグリゲーションは既存のパネル構成ではサポートされません。", + "visTypeTimeseries.aggRow.addMetricButtonTooltip": "メトリックを追加", + "visTypeTimeseries.aggRow.deleteMetricButtonTooltip": "メトリックを削除", + "visTypeTimeseries.aggSelect.aggGroups.metricAggLabel": "メトリック集約", + "visTypeTimeseries.aggSelect.aggGroups.parentPipelineAggLabel": "親パイプライン集約", + "visTypeTimeseries.aggSelect.aggGroups.siblingPipelineAggLabel": "シブリングパイプライン集約", + "visTypeTimeseries.aggSelect.aggGroups.specialAggLabel": "特殊集約", + "visTypeTimeseries.aggSelect.selectAggPlaceholder": "集約を選択", + "visTypeTimeseries.aggUtils.averageLabel": "平均", + "visTypeTimeseries.aggUtils.bucketScriptLabel": "バケットスクリプト", + "visTypeTimeseries.aggUtils.cardinalityLabel": "基数", + "visTypeTimeseries.aggUtils.countLabel": "カウント", + "visTypeTimeseries.aggUtils.cumulativeSumLabel": "累積和", + "visTypeTimeseries.aggUtils.derivativeLabel": "派生", + "visTypeTimeseries.aggUtils.deviationLabel": "標準偏差", + "visTypeTimeseries.aggUtils.filterRatioLabel": "フィルターレート", + "visTypeTimeseries.aggUtils.mathLabel": "数学処理", + "visTypeTimeseries.aggUtils.maxLabel": "最高", + "visTypeTimeseries.aggUtils.minLabel": "最低", + "visTypeTimeseries.aggUtils.movingAverageLabel": "移動平均", + "visTypeTimeseries.aggUtils.overallAverageLabel": "全体平均", + "visTypeTimeseries.aggUtils.overallMaxLabel": "全体最高", + "visTypeTimeseries.aggUtils.overallMinLabel": "全体最低", + "visTypeTimeseries.aggUtils.overallStdDeviationLabel": "全体標準偏差", + "visTypeTimeseries.aggUtils.overallSumLabel": "全体合計", + "visTypeTimeseries.aggUtils.overallSumOfSquaresLabel": "全体平方和", + "visTypeTimeseries.aggUtils.overallVarianceLabel": "全体の相異", + "visTypeTimeseries.aggUtils.percentileLabel": "パーセンタイル", + "visTypeTimeseries.aggUtils.percentileRankLabel": "パーセンタイルランク", + "visTypeTimeseries.aggUtils.positiveOnlyLabel": "プラスのみ", + "visTypeTimeseries.aggUtils.positiveRateLabel": "カウンターレート", + "visTypeTimeseries.aggUtils.serialDifferenceLabel": "連続差", + "visTypeTimeseries.aggUtils.seriesAggLabel": "数列集約", + "visTypeTimeseries.aggUtils.staticValueLabel": "不動値", + "visTypeTimeseries.aggUtils.sumLabel": "合計", + "visTypeTimeseries.aggUtils.sumOfSquaresLabel": "平方和", + "visTypeTimeseries.aggUtils.topHitLabel": "トップヒット", + "visTypeTimeseries.aggUtils.valueCountLabel": "値カウント", + "visTypeTimeseries.aggUtils.varianceLabel": "相異", + "visTypeTimeseries.annotationsEditor.addDataSourceButtonLabel": "データソースを追加", + "visTypeTimeseries.annotationsEditor.dataSourcesLabel": "データソース", + "visTypeTimeseries.annotationsEditor.fieldsLabel": "フィールド(必須 - コンマ区切りのパス)", + "visTypeTimeseries.annotationsEditor.howToCreateAnnotationDataSourceDescription": "下のボタンをクリックして注釈データソースを作成します。", + "visTypeTimeseries.annotationsEditor.iconLabel": "アイコン(必須)", + "visTypeTimeseries.annotationsEditor.ignoreGlobalFiltersLabel": "グローバルフィルターを無視しますか?", + "visTypeTimeseries.annotationsEditor.ignorePanelFiltersLabel": "パネルフィルターを無視しますか?", + "visTypeTimeseries.annotationsEditor.queryStringLabel": "クエリ文字列", + "visTypeTimeseries.annotationsEditor.rowTemplateHelpText": "eg.{rowTemplateExample}", + "visTypeTimeseries.annotationsEditor.rowTemplateLabel": "行テンプレート (必須)", + "visTypeTimeseries.annotationsEditor.timeFieldLabel": "時間フィールド (必須)", + "visTypeTimeseries.axisLabelOptions.axisLabel": "{unitValue} {unitString}単位", + "visTypeTimeseries.calculateLabel.bucketScriptsLabel": "バケットスクリプト", + "visTypeTimeseries.calculateLabel.countLabel": "カウント", + "visTypeTimeseries.calculateLabel.filterRatioLabel": "フィルターレート", + "visTypeTimeseries.calculateLabel.mathLabel": "数学処理", + "visTypeTimeseries.calculateLabel.metricTypeOfMetricFieldRankLabel": "{metricTypeLabel} of {metricField}", + "visTypeTimeseries.calculateLabel.metricTypeOfTargetLabel": "{targetLabel}の{metricTypeLabel}", + "visTypeTimeseries.calculateLabel.metricTypeOfTargetWithAdditionalLabel": "{targetLabel} ({additionalLabel})の{metricTypeLabel}", + "visTypeTimeseries.calculateLabel.positiveRateLabel": "{field} のカウンターレート", + "visTypeTimeseries.calculateLabel.seriesAggLabel": "数列アグリゲーション({metricFunction})", + "visTypeTimeseries.calculateLabel.staticValueLabel": "{metricValue} の静的値", + "visTypeTimeseries.calculateLabel.unknownLabel": "不明", + "visTypeTimeseries.calculation.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.calculation.painlessScriptDescription": "変数は {params}オブジェクトのキーです(例:{paramsName})。バケット間隔(ミリ秒単位)にアクセスするには {paramsInterval} を使用します。", + "visTypeTimeseries.calculation.painlessScriptLabel": "Painless スクリプト", + "visTypeTimeseries.calculation.variablesLabel": "変数", + "visTypeTimeseries.colorPicker.clearIconLabel": "クリア", + "visTypeTimeseries.colorPicker.notAccessibleAriaLabel": "カラーピッカー、アクセス不可", + "visTypeTimeseries.colorPicker.notAccessibleWithValueAriaLabel": "カラーピッカー({value})、アクセス不可", + "visTypeTimeseries.colorRules.adjustChartSizeAriaLabel": "上下の矢印を押してチャートサイズを調整します", + "visTypeTimeseries.colorRules.defaultPrimaryNameLabel": "背景", + "visTypeTimeseries.colorRules.defaultSecondaryNameLabel": "テキスト", + "visTypeTimeseries.colorRules.emptyLabel": "空", + "visTypeTimeseries.colorRules.greaterThanLabel": "> greater than", + "visTypeTimeseries.colorRules.greaterThanOrEqualLabel": ">= greater than or equal", + "visTypeTimeseries.colorRules.ifMetricIsLabel": "メトリックが", + "visTypeTimeseries.colorRules.lessThanLabel": "< less than", + "visTypeTimeseries.colorRules.lessThanOrEqualLabel": "<= less than or equal", + "visTypeTimeseries.colorRules.setPrimaryColorLabel": "{primaryName} を設定", + "visTypeTimeseries.colorRules.setSecondaryColorLabel": "{secondaryName} を設定", + "visTypeTimeseries.colorRules.valueAriaLabel": "値", + "visTypeTimeseries.cumulativeSum.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.cumulativeSum.metricLabel": "メトリック", + "visTypeTimeseries.dataFormatPicker.bytesLabel": "バイト", + "visTypeTimeseries.dataFormatPicker.customLabel": "カスタム", + "visTypeTimeseries.dataFormatPicker.decimalPlacesLabel": "小数部分の桁数", + "visTypeTimeseries.dataFormatPicker.defaultLabel": "デフォルト", + "visTypeTimeseries.dataFormatPicker.defaultLabelDescription": "カンマの書式を適用します", + "visTypeTimeseries.dataFormatPicker.durationLabel": "期間", + "visTypeTimeseries.dataFormatPicker.formatPatternHelpText": "ドキュメント", + "visTypeTimeseries.dataFormatPicker.formatPatternLabel": "Numeral.js のフォーマットパターン(デフォルト:{defaultPattern})", + "visTypeTimeseries.dataFormatPicker.fromLabel": "開始:", + "visTypeTimeseries.dataFormatPicker.numberLabel": "数字", + "visTypeTimeseries.dataFormatPicker.percentLabel": "パーセント", + "visTypeTimeseries.dataFormatPicker.toLabel": "終了:", + "visTypeTimeseries.defaultDataFormatterLabel": "データフォーマッター", + "visTypeTimeseries.derivative.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.derivative.metricLabel": "メトリック", + "visTypeTimeseries.derivative.unitsLabel": "単位(1s、1m など)", + "visTypeTimeseries.durationOptions.daysLabel": "日", + "visTypeTimeseries.durationOptions.hoursLabel": "時間", + "visTypeTimeseries.durationOptions.humanize": "人間に読解可能", + "visTypeTimeseries.durationOptions.microsecondsLabel": "マイクロ秒", + "visTypeTimeseries.durationOptions.millisecondsLabel": "ミリ秒", + "visTypeTimeseries.durationOptions.minutesLabel": "分", + "visTypeTimeseries.durationOptions.monthsLabel": "か月", + "visTypeTimeseries.durationOptions.nanosecondsLabel": "ナノ秒", + "visTypeTimeseries.durationOptions.picosecondsLabel": "ピコ秒", + "visTypeTimeseries.durationOptions.secondsLabel": "秒", + "visTypeTimeseries.durationOptions.weeksLabel": "週間", + "visTypeTimeseries.durationOptions.yearsLabel": "年", + "visTypeTimeseries.emptyTextValue": "(空)", + "visTypeTimeseries.error.requestForPanelFailedErrorMessage": "このパネルのリクエストに失敗しました", + "visTypeTimeseries.errors.fieldNotFound": "フィールド\"{field}\"が見つかりません", + "visTypeTimeseries.errors.maxBucketsExceededErrorMessage": "クエリが取得を試みたデータが多すぎます。通常、時間範囲を狭くするか、使用される間隔を変更すると、問題が解決します。", + "visTypeTimeseries.externalUrlErrorModal.bodyMessage": "{kibanaConfigFileName}で{externalUrlPolicy}を構成し、{url}へのアクセスを許可します。", + "visTypeTimeseries.externalUrlErrorModal.closeButtonLabel": "閉じる", + "visTypeTimeseries.externalUrlErrorModal.headerTitle": "この外部URLへのアクセスはまだ有効ではありません", + "visTypeTimeseries.fetchFields.loadIndexPatternFieldsErrorMessage": "index_pattern フィールドを読み込めません", + "visTypeTimeseries.fieldSelect.fieldIsNotValid": "\"{fieldParameter}\"フィールドは無効であり、現在のインデックスで使用できません。新しいフィールドを選択してください。", + "visTypeTimeseries.fieldSelect.selectFieldPlaceholder": "フィールドを選択してください...", + "visTypeTimeseries.filterRatio.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.filterRatio.denominatorLabel": "分母", + "visTypeTimeseries.filterRatio.fieldLabel": "フィールド", + "visTypeTimeseries.filterRatio.metricAggregationLabel": "メトリック集約", + "visTypeTimeseries.filterRatio.numeratorLabel": "分子", + "visTypeTimeseries.function.help": "TSVB ビジュアライゼーション", + "visTypeTimeseries.gauge.dataTab.dataButtonLabel": "データ", + "visTypeTimeseries.gauge.dataTab.metricsButtonLabel": "メトリック", + "visTypeTimeseries.gauge.editor.addSeriesTooltip": "数列を追加", + "visTypeTimeseries.gauge.editor.cloneSeriesTooltip": "数列のクローンを作成", + "visTypeTimeseries.gauge.editor.deleteSeriesTooltip": "数列を削除", + "visTypeTimeseries.gauge.editor.labelPlaceholder": "ラベル", + "visTypeTimeseries.gauge.editor.toggleEditorAriaLabel": "数列エディターを切り替える", + "visTypeTimeseries.gauge.optionsTab.backgroundColorLabel": "背景色:", + "visTypeTimeseries.gauge.optionsTab.colorRulesLabel": "カラールール", + "visTypeTimeseries.gauge.optionsTab.dataLabel": "データ", + "visTypeTimeseries.gauge.optionsTab.gaugeLineWidthLabel": "ゲージ線の幅", + "visTypeTimeseries.gauge.optionsTab.gaugeMaxLabel": "ゲージ最大値(自動は未入力)", + "visTypeTimeseries.gauge.optionsTab.gaugeStyleLabel": "ゲージスタイル", + "visTypeTimeseries.gauge.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", + "visTypeTimeseries.gauge.optionsTab.innerColorLabel": "内側の色:", + "visTypeTimeseries.gauge.optionsTab.innerLineWidthLabel": "内側の線の幅", + "visTypeTimeseries.gauge.optionsTab.optionsButtonLabel": "オプション", + "visTypeTimeseries.gauge.optionsTab.panelFilterLabel": "パネルフィルター", + "visTypeTimeseries.gauge.optionsTab.panelOptionsButtonLabel": "パネルオプション", + "visTypeTimeseries.gauge.optionsTab.styleLabel": "スタイル", + "visTypeTimeseries.gauge.styleOptions.circleLabel": "円", + "visTypeTimeseries.gauge.styleOptions.halfCircleLabel": "半円", + "visTypeTimeseries.getInterval.daysLabel": "日", + "visTypeTimeseries.getInterval.hoursLabel": "時間", + "visTypeTimeseries.getInterval.minutesLabel": "分", + "visTypeTimeseries.getInterval.monthsLabel": "か月", + "visTypeTimeseries.getInterval.secondsLabel": "秒", + "visTypeTimeseries.getInterval.weeksLabel": "週間", + "visTypeTimeseries.getInterval.yearsLabel": "年", + "visTypeTimeseries.handleErrorResponse.unexpectedError": "予期しないエラー", + "visTypeTimeseries.iconSelect.asteriskLabel": "アスタリスク", + "visTypeTimeseries.iconSelect.bellLabel": "ベル", + "visTypeTimeseries.iconSelect.boltLabel": "ボルト", + "visTypeTimeseries.iconSelect.bombLabel": "ボム", + "visTypeTimeseries.iconSelect.bugLabel": "バグ", + "visTypeTimeseries.iconSelect.commentLabel": "コメント", + "visTypeTimeseries.iconSelect.exclamationCircleLabel": "マル感嘆符", + "visTypeTimeseries.iconSelect.exclamationTriangleLabel": "注意三角マーク", + "visTypeTimeseries.iconSelect.fireLabel": "炎", + "visTypeTimeseries.iconSelect.flagLabel": "旗", + "visTypeTimeseries.iconSelect.heartLabel": "ハート", + "visTypeTimeseries.iconSelect.mapMarkerLabel": "マップマーカー", + "visTypeTimeseries.iconSelect.mapPinLabel": "マップピン", + "visTypeTimeseries.iconSelect.starLabel": "星", + "visTypeTimeseries.iconSelect.tagLabel": "タグ", + "visTypeTimeseries.indexPattern.detailLevel": "詳細レベル", + "visTypeTimeseries.indexPattern.detailLevelAriaLabel": "詳細レベル", + "visTypeTimeseries.indexPattern.detailLevelHelpText": "時間範囲に基づき自動およびgte間隔を制御します。デフォルトの間隔は詳細設定の{histogramTargetBars}と{histogramMaxBars}の影響を受けます。", + "visTypeTimeseries.indexPattern.dropLastBucketLabel": "最後のバケットをドロップしますか?", + "visTypeTimeseries.indexPattern.finest": "最も細かい", + "visTypeTimeseries.indexPattern.intervalHelpText": "例:auto、1m、1d、7d、1y、>=1m", + "visTypeTimeseries.indexPattern.intervalLabel": "間隔", + "visTypeTimeseries.indexPattern.timeFieldLabel": "時間フィールド", + "visTypeTimeseries.indexPattern.timeRange.entireTimeRange": "時間範囲全体", + "visTypeTimeseries.indexPattern.timeRange.error": "現在のインデックスタイプでは\"{mode}\"を使用できません。", + "visTypeTimeseries.indexPattern.timeRange.hint": "この設定は、一致するドキュメントに使用される期間をコントロールします。「時間範囲全体」は、タイムピッカーで選択されたすべてのドキュメントと照会します。「最終値」は、期間の終了時から指定期間のドキュメントのみと照会します。", + "visTypeTimeseries.indexPattern.timeRange.label": "データ期間モード", + "visTypeTimeseries.indexPattern.timeRange.lastValue": "最終値", + "visTypeTimeseries.indexPattern.timeRange.selectTimeRange": "選択してください", + "visTypeTimeseries.indexPattern.сoarse": "粗い", + "visTypeTimeseries.indexPatternSelect.label": "インデックスパターン", + "visTypeTimeseries.indexPatternSelect.switchModePopover.areaLabel": "インデックスパターン選択モードを構成", + "visTypeTimeseries.indexPatternSelect.switchModePopover.title": "インデックスパターン選択モード", + "visTypeTimeseries.indexPatternSelect.switchModePopover.useKibanaIndices": "Kibanaインデックスパターンのみを使用", + "visTypeTimeseries.kbnVisTypes.metricsDescription": "時系列データの高度な分析を実行します。", + "visTypeTimeseries.kbnVisTypes.metricsTitle": "TSVB", + "visTypeTimeseries.lastValueModeIndicator.lastBucketDate": "バケット:{lastBucketDate}", + "visTypeTimeseries.lastValueModeIndicator.lastValue": "最終値", + "visTypeTimeseries.lastValueModeIndicator.lastValueModeBadgeAriaLabel": "最後の値の詳細を表示", + "visTypeTimeseries.lastValueModeIndicator.panelInterval": "間隔:{formattedPanelInterval}", + "visTypeTimeseries.lastValueModePopover.gearButton": "最終値のインジケーター表示オプションを変更", + "visTypeTimeseries.lastValueModePopover.switch": "最終値モードを使用するときにラベルを表示", + "visTypeTimeseries.lastValueModePopover.title": "最終値オプション", + "visTypeTimeseries.markdown.alignOptions.bottomLabel": "一番下", + "visTypeTimeseries.markdown.alignOptions.middleLabel": "真ん中", + "visTypeTimeseries.markdown.alignOptions.topLabel": "一番上", + "visTypeTimeseries.markdown.dataTab.dataButtonLabel": "データ", + "visTypeTimeseries.markdown.dataTab.metricsButtonLabel": "メトリック", + "visTypeTimeseries.markdown.editor.addSeriesTooltip": "数列を追加", + "visTypeTimeseries.markdown.editor.cloneSeriesTooltip": "数列のクローンを作成", + "visTypeTimeseries.markdown.editor.deleteSeriesTooltip": "数列を削除", + "visTypeTimeseries.markdown.editor.labelPlaceholder": "ラベル", + "visTypeTimeseries.markdown.editor.toggleEditorAriaLabel": "数列エディターを切り替える", + "visTypeTimeseries.markdown.editor.variableNamePlaceholder": "変数名", + "visTypeTimeseries.markdown.optionsTab.backgroundColorLabel": "背景色:", + "visTypeTimeseries.markdown.optionsTab.customCSSLabel": "カスタム CSS(Less をサポート)", + "visTypeTimeseries.markdown.optionsTab.dataLabel": "データ", + "visTypeTimeseries.markdown.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", + "visTypeTimeseries.markdown.optionsTab.openLinksInNewTab": "新規タブでリンクを開きますか?", + "visTypeTimeseries.markdown.optionsTab.optionsButtonLabel": "オプション", + "visTypeTimeseries.markdown.optionsTab.panelFilterLabel": "パネルフィルター", + "visTypeTimeseries.markdown.optionsTab.panelOptionsButtonLabel": "パネルオプション", + "visTypeTimeseries.markdown.optionsTab.showScrollbarsLabel": "スクロールバーを表示しますか?", + "visTypeTimeseries.markdown.optionsTab.styleLabel": "スタイル", + "visTypeTimeseries.markdown.optionsTab.verticalAlignmentLabel": "縦の配列:", + "visTypeTimeseries.markdownEditor.howToAccessEntireTreeDescription": "{all} という特殊な変数もあり、ツリー全体へのアクセスに使用できます。これは group by からデータのリストを作成する際に便利です:", + "visTypeTimeseries.markdownEditor.howToUseVariablesInMarkdownDescription": "次の変数は Markdown で Handlebar(mustache)構文を使用して使用できます。利用可能な表現は {handlebarLink} をご覧ください。", + "visTypeTimeseries.markdownEditor.howUseVariablesInMarkdownDescription.documentationLinkText": "ドキュメンテーションはここをクリックしてください", + "visTypeTimeseries.markdownEditor.nameLabel": "名前", + "visTypeTimeseries.markdownEditor.noVariablesAvailableDescription": "選択されたデータメトリックに利用可能な変数はありません。", + "visTypeTimeseries.markdownEditor.valueLabel": "値", + "visTypeTimeseries.math.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.math.expressionDescription.tinyMathLinkText": "TinyMath", + "visTypeTimeseries.math.expressionLabel": "表現", + "visTypeTimeseries.math.variablesLabel": "変数", + "visTypeTimeseries.metric.dataTab.dataButtonLabel": "データ", + "visTypeTimeseries.metric.dataTab.metricsButtonLabel": "メトリック", + "visTypeTimeseries.metric.editor.addSeriesTooltip": "数列を追加", + "visTypeTimeseries.metric.editor.cloneSeriesTooltip": "数列のクローンを作成", + "visTypeTimeseries.metric.editor.deleteSeriesTooltip": "数列を削除", + "visTypeTimeseries.metric.editor.labelPlaceholder": "ラベル", + "visTypeTimeseries.metric.editor.toggleEditorAriaLabel": "数列エディターを切り替える", + "visTypeTimeseries.metric.optionsTab.colorRulesLabel": "カラールール", + "visTypeTimeseries.metric.optionsTab.dataLabel": "データ", + "visTypeTimeseries.metric.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", + "visTypeTimeseries.metric.optionsTab.optionsButtonLabel": "オプション", + "visTypeTimeseries.metric.optionsTab.panelFilterLabel": "パネルフィルター", + "visTypeTimeseries.metric.optionsTab.panelOptionsButtonLabel": "パネルオプション", + "visTypeTimeseries.metricMissingErrorMessage": "メトリックに {field} がありません", + "visTypeTimeseries.metricSelect.selectMetricPlaceholder": "メトリックを選択してください…", + "visTypeTimeseries.missingPanelConfigDescription": "「{modelType}」にパネル構成が欠けています", + "visTypeTimeseries.movingAverage.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.movingAverage.alpha": "アルファ", + "visTypeTimeseries.movingAverage.beta": "ベータ", + "visTypeTimeseries.movingAverage.gamma": "ガンマ", + "visTypeTimeseries.movingAverage.metricLabel": "メトリック", + "visTypeTimeseries.movingAverage.model.selectPlaceholder": "選択してください", + "visTypeTimeseries.movingAverage.modelLabel": "モデル", + "visTypeTimeseries.movingAverage.modelOptions.exponentiallyWeightedLabel": "指数加重", + "visTypeTimeseries.movingAverage.modelOptions.holtLinearLabel": "Holt-Linear", + "visTypeTimeseries.movingAverage.modelOptions.holtWintersLabel": "Holt-Winters", + "visTypeTimeseries.movingAverage.modelOptions.linearLabel": "線形", + "visTypeTimeseries.movingAverage.modelOptions.simpleLabel": "シンプル", + "visTypeTimeseries.movingAverage.multiplicative": "マルチキャプティブ", + "visTypeTimeseries.movingAverage.multiplicative.selectPlaceholder": "選択してください", + "visTypeTimeseries.movingAverage.multiplicativeOptions.false": "False", + "visTypeTimeseries.movingAverage.multiplicativeOptions.true": "True", + "visTypeTimeseries.movingAverage.period": "期間", + "visTypeTimeseries.movingAverage.windowSizeHint": "ウィンドウは、必ず、期間のサイズの 2 倍以上でなければなりません", + "visTypeTimeseries.movingAverage.windowSizeLabel": "ウィンドウサイズ", + "visTypeTimeseries.noButtonLabel": "いいえ", + "visTypeTimeseries.percentile.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.percentile.fieldLabel": "フィールド", + "visTypeTimeseries.percentile.fillToLabel": "次の基準に合わせる:", + "visTypeTimeseries.percentile.modeLabel": "モード:", + "visTypeTimeseries.percentile.modeOptions.bandLabel": "帯", + "visTypeTimeseries.percentile.modeOptions.lineLabel": "折れ線", + "visTypeTimeseries.percentile.percentile": "パーセンタイル", + "visTypeTimeseries.percentile.percentileAriaLabel": "パーセンタイル", + "visTypeTimeseries.percentile.percents": "パーセント", + "visTypeTimeseries.percentile.shadeLabel": "シェイド(0 から 1):", + "visTypeTimeseries.percentileHdr.numberOfSignificantValueDigits": "大きい値の桁数(HDR ヒストグラム)", + "visTypeTimeseries.percentileHdr.numberOfSignificantValueDigits.hint": "HDR ヒストグラム(ハイダイナミックレンジヒストグラム)は、レイテンシ測定のパーセンタイルランクを計算するときに役立つ別の実装方法です。メモリ消費量が多いというトレードオフがある t-digest 実装よりも高速になります。大きい値の桁数パラメーターは、大きい桁数のヒストグラムで値の解像度を指定します。", + "visTypeTimeseries.percentileRank.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.percentileRank.fieldLabel": "フィールド", + "visTypeTimeseries.percentileRank.values": "値", + "visTypeTimeseries.positiveOnly.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.positiveOnly.metricLabel": "メトリック", + "visTypeTimeseries.positiveRate.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.positiveRate.helpText": "このアグリゲーションは、{link}にのみ適用してください。これは、最大値、微分、正の値のみを適用するショートカットです。", + "visTypeTimeseries.positiveRate.helpTextLink": "単調に数値を増加しています", + "visTypeTimeseries.positiveRate.unitSelectPlaceholder": "スケールを選択...", + "visTypeTimeseries.positiveRate.unitsLabel": "スケール", + "visTypeTimeseries.postiveRate.fieldLabel": "フィールド", + "visTypeTimeseries.replaceVars.errors.markdownErrorDescription": "Markdown、既知の変数、ビルトイン Handlebars 表現のみが使用されていることを確認してください。", + "visTypeTimeseries.replaceVars.errors.markdownErrorTitle": "Markdown の処理中にエラーが発生", + "visTypeTimeseries.replaceVars.errors.unknownVarDescription": "{badVar} は不明な変数です", + "visTypeTimeseries.replaceVars.errors.unknownVarTitle": "Markdown の処理中にエラーが発生", + "visTypeTimeseries.searchStrategyUndefinedErrorMessage": "検索ストラテジが定義されていませんでした", + "visTypeTimeseries.serialDiff.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.serialDiff.lagLabel": "ラグ", + "visTypeTimeseries.serialDiff.metricLabel": "メトリック", + "visTypeTimeseries.series.missingAggregationKeyErrorMessage": "返答から集約キーが欠けています。このリクエストのパーミッションを確認してください。", + "visTypeTimeseries.series.shouldOneSeriesPerRequestErrorMessage": "1 つのリクエストに複数の数列を含めることはできません。", + "visTypeTimeseries.seriesAgg.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.seriesAgg.functionLabel": "関数", + "visTypeTimeseries.seriesAgg.functionOptions.avgLabel": "平均", + "visTypeTimeseries.seriesAgg.functionOptions.countLabel": "系列数", + "visTypeTimeseries.seriesAgg.functionOptions.cumulativeSumLabel": "累積和", + "visTypeTimeseries.seriesAgg.functionOptions.maxLabel": "最高", + "visTypeTimeseries.seriesAgg.functionOptions.minLabel": "最低", + "visTypeTimeseries.seriesAgg.functionOptions.overallAvgLabel": "全体平均", + "visTypeTimeseries.seriesAgg.functionOptions.overallMaxLabel": "全体最高", + "visTypeTimeseries.seriesAgg.functionOptions.overallMinLabel": "全体最低", + "visTypeTimeseries.seriesAgg.functionOptions.overallSumLabel": "全体合計", + "visTypeTimeseries.seriesAgg.functionOptions.sumLabel": "合計", + "visTypeTimeseries.seriesAgg.seriesAggIsNotCompatibleLabel": "数列集約は表の可視化に対応していません。", + "visTypeTimeseries.seriesConfig.filterLabel": "フィルター", + "visTypeTimeseries.seriesConfig.ignoreGlobalFilterDisabledTooltip": "グローバルフィルターはパネルオプションで無視されるため、これは無効です。", + "visTypeTimeseries.seriesConfig.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", + "visTypeTimeseries.seriesConfig.missingSeriesComponentDescription": "パネルタイプ {panelType} の数列コンポーネントが欠けています", + "visTypeTimeseries.seriesConfig.offsetSeriesTimeLabel": "数列の時間を(1m, 1h, 1w, 1d)でオフセット", + "visTypeTimeseries.seriesConfig.templateHelpText": "eg. {templateExample}", + "visTypeTimeseries.seriesConfig.templateLabel": "テンプレート", + "visTypeTimeseries.sort.dragToSortAriaLabel": "ドラッグして並べ替えます", + "visTypeTimeseries.sort.dragToSortTooltip": "ドラッグして並べ替えます", + "visTypeTimeseries.splits.everything.groupByLabel": "グループ分けの条件", + "visTypeTimeseries.splits.filter.groupByLabel": "グループ分けの条件", + "visTypeTimeseries.splits.filter.queryStringLabel": "クエリ文字列", + "visTypeTimeseries.splits.filterItems.labelAriaLabel": "ラベル", + "visTypeTimeseries.splits.filterItems.labelPlaceholder": "ラベル", + "visTypeTimeseries.splits.filters.groupByLabel": "グループ分けの条件", + "visTypeTimeseries.splits.groupBySelect.modeOptions.everythingLabel": "すべて", + "visTypeTimeseries.splits.groupBySelect.modeOptions.filterLabel": "フィルター", + "visTypeTimeseries.splits.groupBySelect.modeOptions.filtersLabel": "フィルター", + "visTypeTimeseries.splits.groupBySelect.modeOptions.termsLabel": "用語", + "visTypeTimeseries.splits.terms.byLabel": "グループ基準", + "visTypeTimeseries.splits.terms.defaultCountLabel": "ドキュメントカウント(デフォルト)", + "visTypeTimeseries.splits.terms.directionLabel": "方向", + "visTypeTimeseries.splits.terms.dirOptions.ascendingLabel": "昇順", + "visTypeTimeseries.splits.terms.dirOptions.descendingLabel": "降順", + "visTypeTimeseries.splits.terms.excludeLabel": "除外", + "visTypeTimeseries.splits.terms.groupByLabel": "グループ分けの条件", + "visTypeTimeseries.splits.terms.includeLabel": "含める", + "visTypeTimeseries.splits.terms.orderByLabel": "並び順", + "visTypeTimeseries.splits.terms.sizePlaceholder": "サイズ", + "visTypeTimeseries.splits.terms.termsLabel": "用語", + "visTypeTimeseries.splits.terms.topLabel": "一番上", + "visTypeTimeseries.static.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.static.staticValuesLabel": "固定値", + "visTypeTimeseries.stdAgg.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.stdAgg.fieldLabel": "フィールド", + "visTypeTimeseries.stdDeviation.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.stdDeviation.fieldLabel": "フィールド", + "visTypeTimeseries.stdDeviation.modeLabel": "モード", + "visTypeTimeseries.stdDeviation.modeOptions.boundsBandLabel": "境界バンド", + "visTypeTimeseries.stdDeviation.modeOptions.lowerBoundLabel": "下の境界", + "visTypeTimeseries.stdDeviation.modeOptions.rawLabel": "未加工", + "visTypeTimeseries.stdDeviation.modeOptions.upperBoundLabel": "上の境界", + "visTypeTimeseries.stdDeviation.sigmaLabel": "シグマ", + "visTypeTimeseries.stdSibling.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.stdSibling.metricLabel": "メトリック", + "visTypeTimeseries.stdSibling.modeLabel": "モード", + "visTypeTimeseries.stdSibling.modeOptions.boundsBandLabel": "境界バンド", + "visTypeTimeseries.stdSibling.modeOptions.lowerBoundLabel": "下の境界", + "visTypeTimeseries.stdSibling.modeOptions.rawLabel": "未加工", + "visTypeTimeseries.stdSibling.modeOptions.upperBoundLabel": "上の境界", + "visTypeTimeseries.stdSibling.sigmaLabel": "シグマ", + "visTypeTimeseries.table.addSeriesTooltip": "数列を追加", + "visTypeTimeseries.table.aggregateFunctionLabel": "集約関数", + "visTypeTimeseries.table.avgLabel": "平均", + "visTypeTimeseries.table.cloneSeriesTooltip": "数列のクローンを作成", + "visTypeTimeseries.table.colorRulesLabel": "カラールール", + "visTypeTimeseries.table.columnNotSortableTooltip": "この列は並べ替えできません", + "visTypeTimeseries.table.cumulativeSumLabel": "累積和", + "visTypeTimeseries.table.dataTab.columnLabel": "列ラベル", + "visTypeTimeseries.table.dataTab.columnsButtonLabel": "列", + "visTypeTimeseries.table.dataTab.defineFieldDescription": "表の可視化は、用語集約でグループ分けの基準となるフィールドを定義する必要があります。", + "visTypeTimeseries.table.dataTab.groupByFieldLabel": "フィールドでグループ分け", + "visTypeTimeseries.table.dataTab.rowsLabel": "行", + "visTypeTimeseries.table.deleteSeriesTooltip": "数列を削除", + "visTypeTimeseries.table.fieldLabel": "フィールド", + "visTypeTimeseries.table.filterLabel": "フィルター", + "visTypeTimeseries.table.labelAriaLabel": "ラベル", + "visTypeTimeseries.table.labelPlaceholder": "ラベル", + "visTypeTimeseries.table.maxLabel": "最高", + "visTypeTimeseries.table.minLabel": "最低", + "visTypeTimeseries.table.noResultsAvailableMessage": "結果がありません。", + "visTypeTimeseries.table.noResultsAvailableWithDescriptionMessage": "結果がありません。このビジュアライゼーションは、フィールドでグループを選択する必要があります。", + "visTypeTimeseries.table.optionsTab.dataLabel": "データ", + "visTypeTimeseries.table.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", + "visTypeTimeseries.table.optionsTab.itemUrlHelpText": "これは mustache テンプレートをサポートしています。{key} が用語に設定されています。", + "visTypeTimeseries.table.optionsTab.itemUrlLabel": "アイテム URL", + "visTypeTimeseries.table.optionsTab.panelFilterLabel": "パネルフィルター", + "visTypeTimeseries.table.optionsTab.panelOptionsButtonLabel": "パネルオプション", + "visTypeTimeseries.table.overallAvgLabel": "全体平均", + "visTypeTimeseries.table.overallMaxLabel": "全体最高", + "visTypeTimeseries.table.overallMinLabel": "全体最低", + "visTypeTimeseries.table.overallSumLabel": "全体合計", + "visTypeTimeseries.table.showTrendArrowsLabel": "傾向矢印を表示しますか?", + "visTypeTimeseries.table.sumLabel": "合計", + "visTypeTimeseries.table.tab.metricsLabel": "メトリック", + "visTypeTimeseries.table.tab.optionsLabel": "オプション", + "visTypeTimeseries.table.templateHelpText": "eg.{templateExample}", + "visTypeTimeseries.table.templateLabel": "テンプレート", + "visTypeTimeseries.table.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", + "visTypeTimeseries.timeSeries.addSeriesTooltip": "数列を追加", + "visTypeTimeseries.timeseries.annotationsTab.annotationsButtonLabel": "注釈", + "visTypeTimeseries.timeSeries.axisMaxLabel": "軸最大値", + "visTypeTimeseries.timeSeries.axisMinLabel": "軸最小値", + "visTypeTimeseries.timeSeries.axisPositionLabel": "軸の配置", + "visTypeTimeseries.timeSeries.barLabel": "バー", + "visTypeTimeseries.timeSeries.chartBar.chartTypeLabel": "チャートタイプ", + "visTypeTimeseries.timeSeries.chartBar.fillLabel": "塗りつぶし(0 から 1)", + "visTypeTimeseries.timeSeries.chartBar.lineWidthLabel": "線の幅", + "visTypeTimeseries.timeSeries.chartBar.stackedLabel": "スタック", + "visTypeTimeseries.timeSeries.chartLine.chartTypeLabel": "チャートタイプ", + "visTypeTimeseries.timeSeries.chartLine.fillLabel": "塗りつぶし(0 から 1)", + "visTypeTimeseries.timeSeries.chartLine.lineWidthLabel": "線の幅", + "visTypeTimeseries.timeSeries.chartLine.pointSizeLabel": "点のサイズ", + "visTypeTimeseries.timeSeries.chartLine.stackedLabel": "スタック", + "visTypeTimeseries.timeSeries.chartLine.stepsLabel": "ステップ", + "visTypeTimeseries.timeSeries.cloneSeriesTooltip": "数列のクローンを作成", + "visTypeTimeseries.timeseries.dataTab.dataButtonLabel": "データ", + "visTypeTimeseries.timeSeries.deleteSeriesTooltip": "数列を削除", + "visTypeTimeseries.timeSeries.gradientLabel": "グラデーション", + "visTypeTimeseries.timeSeries.hideInLegendLabel": "凡例で非表示", + "visTypeTimeseries.timeSeries.labelPlaceholder": "ラベル", + "visTypeTimeseries.timeSeries.leftLabel": "左", + "visTypeTimeseries.timeseries.legendPositionOptions.bottomLabel": "一番下", + "visTypeTimeseries.timeseries.legendPositionOptions.leftLabel": "左", + "visTypeTimeseries.timeseries.legendPositionOptions.rightLabel": "右", + "visTypeTimeseries.timeSeries.lineLabel": "折れ線", + "visTypeTimeseries.timeSeries.noneLabel": "なし", + "visTypeTimeseries.timeSeries.offsetSeriesTimeLabel": "数列の時間を(1m, 1h, 1w, 1d)でオフセット", + "visTypeTimeseries.timeseries.optionsTab.axisMaxLabel": "軸最大値", + "visTypeTimeseries.timeseries.optionsTab.axisMinLabel": "軸最小値", + "visTypeTimeseries.timeseries.optionsTab.axisPositionLabel": "軸の配置", + "visTypeTimeseries.timeseries.optionsTab.axisScaleLabel": "軸のスケール", + "visTypeTimeseries.timeseries.optionsTab.backgroundColorLabel": "背景色:", + "visTypeTimeseries.timeseries.optionsTab.dataLabel": "データ", + "visTypeTimeseries.timeseries.optionsTab.displayGridLabel": "グリッドを表示", + "visTypeTimeseries.timeseries.optionsTab.ignoreDaylightTimeLabel": "夏時間を無視しますか?", + "visTypeTimeseries.timeseries.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", + "visTypeTimeseries.timeseries.optionsTab.legendPositionLabel": "凡例位置", + "visTypeTimeseries.timeseries.optionsTab.maxLinesLabel": "最大凡例行", + "visTypeTimeseries.timeseries.optionsTab.panelFilterLabel": "パネルフィルター", + "visTypeTimeseries.timeseries.optionsTab.panelOptionsButtonLabel": "パネルオプション", + "visTypeTimeseries.timeseries.optionsTab.showLegendLabel": "凡例を表示しますか?", + "visTypeTimeseries.timeseries.optionsTab.styleLabel": "スタイル", + "visTypeTimeseries.timeseries.optionsTab.tooltipMode": "ツールチップ", + "visTypeTimeseries.timeseries.optionsTab.truncateLegendLabel": "凡例を切り捨てますか?", + "visTypeTimeseries.timeSeries.percentLabel": "パーセント", + "visTypeTimeseries.timeseries.positionOptions.leftLabel": "左", + "visTypeTimeseries.timeseries.positionOptions.rightLabel": "右", + "visTypeTimeseries.timeSeries.rainbowLabel": "虹", + "visTypeTimeseries.timeSeries.rightLabel": "右", + "visTypeTimeseries.timeseries.scaleOptions.logLabel": "ログ", + "visTypeTimeseries.timeseries.scaleOptions.normalLabel": "標準", + "visTypeTimeseries.timeSeries.separateAxisLabel": "軸を分けますか?", + "visTypeTimeseries.timeSeries.splitColorThemeLabel": "カラーテーマを分割", + "visTypeTimeseries.timeSeries.stackedLabel": "スタック", + "visTypeTimeseries.timeSeries.stackedWithinSeriesLabel": "数列内でスタック", + "visTypeTimeseries.timeSeries.tab.metricsLabel": "メトリック", + "visTypeTimeseries.timeSeries.tab.optionsLabel": "オプション", + "visTypeTimeseries.timeSeries.templateHelpText": "eg.{templateExample}", + "visTypeTimeseries.timeSeries.templateLabel": "テンプレート", + "visTypeTimeseries.timeSeries.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", + "visTypeTimeseries.timeseries.tooltipOptions.showAll": "すべての値を表示", + "visTypeTimeseries.timeseries.tooltipOptions.showFocused": "フォーカスされた値を表示", + "visTypeTimeseries.topHit.aggregateWith.selectPlaceholder": "選択してください...", + "visTypeTimeseries.topHit.aggregateWithLabel": "集約:", + "visTypeTimeseries.topHit.aggregationLabel": "アグリゲーション", + "visTypeTimeseries.topHit.aggWithOptions.averageLabel": "平均", + "visTypeTimeseries.topHit.aggWithOptions.concatenate": "連結", + "visTypeTimeseries.topHit.aggWithOptions.maxLabel": "最高", + "visTypeTimeseries.topHit.aggWithOptions.minLabel": "最低", + "visTypeTimeseries.topHit.aggWithOptions.sumLabel": "合計", + "visTypeTimeseries.topHit.fieldLabel": "フィールド", + "visTypeTimeseries.topHit.order.selectPlaceholder": "選択してください...", + "visTypeTimeseries.topHit.orderByLabel": "並び順", + "visTypeTimeseries.topHit.orderLabel": "順序", + "visTypeTimeseries.topHit.orderOptions.ascLabel": "昇順", + "visTypeTimeseries.topHit.orderOptions.descLabel": "降順", + "visTypeTimeseries.topHit.sizeLabel": "サイズ", + "visTypeTimeseries.topN.addSeriesTooltip": "数列を追加", + "visTypeTimeseries.topN.cloneSeriesTooltip": "数列のクローンを作成", + "visTypeTimeseries.topN.dataTab.dataButtonLabel": "データ", + "visTypeTimeseries.topN.deleteSeriesTooltip": "数列を削除", + "visTypeTimeseries.topN.labelPlaceholder": "ラベル", + "visTypeTimeseries.topN.optionsTab.backgroundColorLabel": "背景色:", + "visTypeTimeseries.topN.optionsTab.colorRulesLabel": "カラールール", + "visTypeTimeseries.topN.optionsTab.dataLabel": "データ", + "visTypeTimeseries.topN.optionsTab.ignoreGlobalFilterLabel": "グローバルフィルターを無視しますか?", + "visTypeTimeseries.topN.optionsTab.itemUrlDescription": "これは mustache テンプレートをサポートしています。{key} が用語に設定されています。", + "visTypeTimeseries.topN.optionsTab.itemUrlLabel": "アイテム URL", + "visTypeTimeseries.topN.optionsTab.panelFilterLabel": "パネルフィルター", + "visTypeTimeseries.topN.optionsTab.panelOptionsButtonLabel": "パネルオプション", + "visTypeTimeseries.topN.optionsTab.styleLabel": "スタイル", + "visTypeTimeseries.topN.tab.metricsLabel": "メトリック", + "visTypeTimeseries.topN.tab.optionsLabel": "オプション", + "visTypeTimeseries.topN.toggleSeriesEditorAriaLabel": "数列エディターを切り替える", + "visTypeTimeseries.units.auto": "自動", + "visTypeTimeseries.units.perDay": "日単位", + "visTypeTimeseries.units.perHour": "時間単位", + "visTypeTimeseries.units.perMillisecond": "ミリ秒単位", + "visTypeTimeseries.units.perMinute": "分単位", + "visTypeTimeseries.units.perSecond": "秒単位", + "visTypeTimeseries.unsupportedSplit.splitIsUnsupportedDescription": "{modelType} での分割はサポートされていません。", + "visTypeTimeseries.vars.variableNameAriaLabel": "変数名", + "visTypeTimeseries.vars.variableNamePlaceholder": "変数名", + "visTypeTimeseries.visEditorVisualization.applyChangesLabel": "変更を適用", + "visTypeTimeseries.visEditorVisualization.autoApplyLabel": "自動適用", + "visTypeTimeseries.visEditorVisualization.changesHaveNotBeenAppliedMessage": "ビジュアライゼーションへの変更が適用されました。", + "visTypeTimeseries.visEditorVisualization.changesSuccessfullyAppliedMessage": "最新の変更が適用されました。", + "visTypeTimeseries.visEditorVisualization.changesWillBeAutomaticallyAppliedMessage": "変更が自動的に適用されます。", + "visTypeTimeseries.visPicker.gaugeLabel": "ゲージ", + "visTypeTimeseries.visPicker.metricLabel": "メトリック", + "visTypeTimeseries.visPicker.tableLabel": "表", + "visTypeTimeseries.visPicker.timeSeriesLabel": "時系列", + "visTypeTimeseries.visPicker.topNLabel": "トップ N", + "visTypeTimeseries.wrongAggregationErrorMessage": "アグリゲーション{metricType}は{timeRangeMode}モードでサポートされていません", + "visTypeTimeseries.yesButtonLabel": "はい", + "visTypeVega.editor.formatError": "仕様のフォーマット中にエラーが発生", + "visTypeVega.editor.reformatAsHJSONButtonLabel": "HJSON に変換", + "visTypeVega.editor.reformatAsJSONButtonLabel": "JSON に変換しコメントを削除", + "visTypeVega.editor.vegaDocumentationLinkText": "Vega ドキュメント", + "visTypeVega.editor.vegaEditorOptionsButtonAriaLabel": "Vega エディターオプション", + "visTypeVega.editor.vegaHelpButtonAriaLabel": "Vega ヘルプ", + "visTypeVega.editor.vegaHelpLinkText": "Kibana Vega ヘルプ", + "visTypeVega.editor.vegaLiteDocumentationLinkText": "Vega-Lite ドキュメンテーション", + "visTypeVega.emsFileParser.emsFileNameDoesNotExistErrorMessage": "{emsfile} {emsfileName} が存在しません", + "visTypeVega.emsFileParser.missingNameOfFileErrorMessage": "{dataUrlParamValue} の {dataUrlParam} には {nameParam} パラメーター(ファイル名)が必要です", + "visTypeVega.esQueryParser.autointervalValueTypeErrorMessage": "{autointerval} は文字 {trueValue} または数字である必要があります", + "visTypeVega.esQueryParser.dataUrlMustNotHaveLegacyAndBodyQueryValuesAtTheSameTimeErrorMessage": "{dataUrlParam} はレガシー {legacyContext} と {bodyQueryConfigName} の値を同時に含めることができません。", + "visTypeVega.esQueryParser.dataUrlMustNotHaveLegacyContextTogetherWithContextOrTimefieldErrorMessage": "{dataUrlParam} は {legacyContext} と同時に {context} または {timefield} を含めることができません", + "visTypeVega.esQueryParser.legacyContextCanBeTrueErrorMessage": "レガシー {legacyContext} は {trueValue}(時間範囲ピッカーを無視)、または時間フィールドの名前のどちらかです。例:{timestampParam}", + "visTypeVega.esQueryParser.legacyUrlShouldChangeToWarningMessage": "レガシー {urlParam}: {legacyUrl} を {result} に変更する必要があります", + "visTypeVega.esQueryParser.shiftMustValueTypeErrorMessage": "{shiftParam} は数値でなければなりません", + "visTypeVega.esQueryParser.timefilterValueErrorMessage": "{timefilter} のプロパティは {trueValue}、{minValue}、または {maxValue} に設定する必要があります", + "visTypeVega.esQueryParser.unknownUnitValueErrorMessage": "不明な {unitParamName} 値。次のいずれかでなければなりません。[{unitParamValues}]", + "visTypeVega.esQueryParser.unnamedRequest": "無題のリクエスト#{index}", + "visTypeVega.esQueryParser.urlBodyValueTypeErrorMessage": "{configName} はオブジェクトでなければなりません", + "visTypeVega.esQueryParser.urlContextAndUrlTimefieldMustNotBeUsedErrorMessage": "{urlContext} と {timefield} は {queryParam} が設定されている場合使用できません", + "visTypeVega.function.help": "Vega ビジュアライゼーション", + "visTypeVega.inspector.dataSetsLabel": "データセット", + "visTypeVega.inspector.dataViewer.dataSetAriaLabel": "データセット", + "visTypeVega.inspector.dataViewer.gridAriaLabel": "{name}データグリッド", + "visTypeVega.inspector.signalValuesLabel": "単一の値", + "visTypeVega.inspector.signalViewer.gridAriaLabel": "単一の値のデータグリッド", + "visTypeVega.inspector.specLabel": "仕様", + "visTypeVega.inspector.specViewer.copyToClipboardLabel": "クリップボードにコピー", + "visTypeVega.inspector.vegaAdapter.signal": "信号", + "visTypeVega.inspector.vegaAdapter.value": "値", + "visTypeVega.inspector.vegaDebugLabel": "Vegaデバッグ", + "visTypeVega.mapView.experimentalMapLayerInfo": "マップレイヤーはまだ実験段階であり、オフィシャルGA機能のサポートSLAが適用されません。フィードバックがある場合は、{githubLink}で問題を報告してください。", + "visTypeVega.mapView.mapStyleNotFoundWarningMessage": "{mapStyleParam} が見つかりませんでした", + "visTypeVega.mapView.minZoomAndMaxZoomHaveBeenSwappedWarningMessage": "{minZoomPropertyName} と {maxZoomPropertyName} が交換されました", + "visTypeVega.mapView.resettingPropertyToMaxValueWarningMessage": "{name} を {max} にリセットしています", + "visTypeVega.mapView.resettingPropertyToMinValueWarningMessage": "{name} を {min} にリセットしています", + "visTypeVega.type.vegaDescription": "Vega を使用して、新しいタイプのビジュアライゼーションを作成します。", + "visTypeVega.type.vegaNote": "Vega 構文の知識が必要です。", + "visTypeVega.type.vegaTitleInWizard": "カスタムビジュアライゼーション", + "visTypeVega.urlParser.dataUrlRequiresUrlParameterInFormErrorMessage": "{dataUrlParam} には「{formLink}」の形で {urlParam} パラメーターが必要です", + "visTypeVega.urlParser.urlShouldHaveQuerySubObjectWarningMessage": "{urlObject} を使用するには {subObjectName} サブオブジェクトが必要です", + "visTypeVega.vegaParser.autoSizeDoesNotAllowFalse": "{autoSizeParam}が有効です。無効にするには、{autoSizeParam}を{noneParam}に設定してください", + "visTypeVega.vegaParser.baseView.externalUrlsAreNotEnabledErrorMessage": "外部 URL が無効です。{enableExternalUrls}を{kibanaConfigFileName}に追加", + "visTypeVega.vegaParser.baseView.externalUrlServiceErrorMessage": "外部URL [{uri}]はExternalUrlサービスによって拒否されました。{kibanaConfigFileName}の\"{externalUrlPolicy}\"設定を使用して外部URLポリシーを構成できます。", + "visTypeVega.vegaParser.baseView.functionIsNotDefinedForGraphErrorMessage": "このグラフには {funcName} が定義されていません", + "visTypeVega.vegaParser.baseView.indexNotFoundErrorMessage": "インデックス {index} が見つかりません", + "visTypeVega.vegaParser.baseView.timeValuesTypeErrorMessage": "時間フィルターの設定エラー:両方の時間の値は相対的または絶対的な日付である必要があります。 {start}、{end}", + "visTypeVega.vegaParser.baseView.unableToFindDefaultIndexErrorMessage": "デフォルトのインデックスが見つかりません", + "visTypeVega.vegaParser.centerOnMarkConfigValueTypeErrorMessage": "{configName} は {trueValue}、{falseValue}、または数字でなければなりません", + "visTypeVega.vegaParser.dataExceedsSomeParamsUseTimesLimitErrorMessage": "データには {urlParam}、{valuesParam}、 {sourceParam} の内複数を含めることができません", + "visTypeVega.vegaParser.hostConfigIsDeprecatedWarningMessage": "{deprecatedConfigName} は廃止されました。代わりに {newConfigName} を使用します。", + "visTypeVega.vegaParser.hostConfigValueTypeErrorMessage": "{configName} が含まれている場合、オブジェクトでなければなりません", + "visTypeVega.vegaParser.inputSpecDoesNotSpecifySchemaErrorMessage": "仕様に基づき、{schemaParam}フィールドには、\nVega({vegaSchemaUrl}を参照)または\nVega-Lite({vegaLiteSchemaUrl}を参照)の有効なURLを入力する必要があります。\nURLは識別子にすぎません。Kibanaやご使用のブラウザーがこのURLにアクセスすることはありません。", + "visTypeVega.vegaParser.invalidVegaSpecErrorMessage": "無効な Vega 仕様", + "visTypeVega.vegaParser.kibanaConfigValueTypeErrorMessage": "{configName} が含まれている場合、オブジェクトでなければなりません", + "visTypeVega.vegaParser.maxBoundsValueTypeWarningMessage": "{maxBoundsConfigName} は 4 つの数字の配列でなければなりません", + "visTypeVega.vegaParser.notSupportedUrlTypeErrorMessage": "{urlObject} はサポートされていません", + "visTypeVega.vegaParser.notValidLibraryVersionForInputSpecWarningMessage": "インプット仕様に {schemaLibrary} {schemaVersion} が使用されていますが、現在のバージョンの {schemaLibrary} は {libraryVersion} です。", + "visTypeVega.vegaParser.notValidSchemaForInputSpec": "JSON \"$schema\"のURLが正しくありません。URLを修正し、[更新]をクリックします。", + "visTypeVega.vegaParser.paddingConfigValueTypeErrorMessage": "{configName} は数字でなければなりません", + "visTypeVega.vegaParser.someKibanaConfigurationIsNoValidWarningMessage": "{configName} は有効ではありません", + "visTypeVega.vegaParser.someKibanaParamValueTypeWarningMessage": "{configName} はブール値でなければなりません", + "visTypeVega.vegaParser.textTruncateConfigValueTypeErrorMessage": "{configName} はブール値でなければなりません", + "visTypeVega.vegaParser.unexpectedValueForPositionConfigurationErrorMessage": "{configurationName} 構成に予期せぬ値が使用されています", + "visTypeVega.vegaParser.unrecognizedControlsLocationValueErrorMessage": "認識されていない {controlsLocationParam} 値。[{locToDirMap}] のいずれかが想定されます。", + "visTypeVega.vegaParser.unrecognizedDirValueErrorMessage": "認識されていない {dirParam} 値。[{expectedValues}] のいずれかが想定されます。", + "visTypeVega.vegaParser.VLCompilerShouldHaveGeneratedSingleProtectionObjectErrorMessage": "内部エラー:Vega-Lite コンパイラーがシングルプロジェクションオブジェクトを生成したはずです", + "visTypeVega.vegaParser.widthAndHeightParamsAreIgnored": "{autoSizeParam}が有効であるため、{widthParam}および{heightParam}パラメーターは無視されます。無効にする{autoSizeParam}: {noneParam}を設定", + "visTypeVega.vegaParser.widthAndHeightParamsAreRequired": "{autoSizeParam}が{noneParam}に設定されているときには、カットまたは繰り返された{vegaLiteParam}仕様を使用している間に何も表示されません。修正するには、{autoSizeParam}を削除するか、{vegaParam}を使用してください。", + "visTypeVega.visualization.renderErrorTitle": "Vega エラー", + "visTypeVega.visualization.unableToRenderWithoutDataWarningMessage": "データなしにはレンダリングできません", + "visTypeVislib.advancedSettings.visualization.heatmap.maxBucketsText": "1つのデータソースが返せるバケットの最大数です。値が大きいとブラウザのレンダリング速度が下がる可能性があります。", + "visTypeVislib.advancedSettings.visualization.heatmap.maxBucketsTitle": "ヒートマップの最大バケット数", + "visTypeVislib.aggResponse.allDocsTitle": "すべてのドキュメント", + "visTypeVislib.controls.gaugeOptions.alignmentLabel": "アラインメント", + "visTypeVislib.controls.gaugeOptions.autoExtendRangeLabel": "範囲を自動拡張", + "visTypeVislib.controls.gaugeOptions.extendRangeTooltip": "範囲をデータの最高値に広げます。", + "visTypeVislib.controls.gaugeOptions.gaugeTypeLabel": "ゲージタイプ", + "visTypeVislib.controls.gaugeOptions.labelsTitle": "ラベル", + "visTypeVislib.controls.gaugeOptions.rangesTitle": "範囲", + "visTypeVislib.controls.gaugeOptions.showLabelsLabel": "ラベルを表示", + "visTypeVislib.controls.gaugeOptions.showLegendLabel": "凡例を表示", + "visTypeVislib.controls.gaugeOptions.showOutline": "アウトラインを表示", + "visTypeVislib.controls.gaugeOptions.showScaleLabel": "縮尺を表示", + "visTypeVislib.controls.gaugeOptions.styleTitle": "スタイル", + "visTypeVislib.controls.gaugeOptions.subTextLabel": "サブラベル", + "visTypeVislib.controls.heatmapOptions.colorLabel": "色", + "visTypeVislib.controls.heatmapOptions.colorScaleLabel": "カラースケール", + "visTypeVislib.controls.heatmapOptions.colorsNumberLabel": "色の数", + "visTypeVislib.controls.heatmapOptions.labelsTitle": "ラベル", + "visTypeVislib.controls.heatmapOptions.overwriteAutomaticColorLabel": "自動カラーを上書きする", + "visTypeVislib.controls.heatmapOptions.rotateLabel": "回転", + "visTypeVislib.controls.heatmapOptions.scaleToDataBoundsLabel": "データバウンドに合わせる", + "visTypeVislib.controls.heatmapOptions.showLabelsTitle": "ラベルを表示", + "visTypeVislib.controls.heatmapOptions.useCustomRangesLabel": "カスタム範囲を使用", + "visTypeVislib.editors.heatmap.basicSettingsTitle": "基本設定", + "visTypeVislib.editors.heatmap.heatmapSettingsTitle": "ヒートマップ設定", + "visTypeVislib.editors.heatmap.highlightLabel": "ハイライト範囲", + "visTypeVislib.editors.heatmap.highlightLabelTooltip": "チャートのカーソルを当てた部分と凡例の対応するラベルをハイライトします。", + "visTypeVislib.functions.pie.help": "パイビジュアライゼーション", + "visTypeVislib.functions.vislib.help": "Vislib ビジュアライゼーション", + "visTypeVislib.gauge.alignmentAutomaticTitle": "自動", + "visTypeVislib.gauge.alignmentHorizontalTitle": "横", + "visTypeVislib.gauge.alignmentVerticalTitle": "縦", + "visTypeVislib.gauge.gaugeDescription": "メトリックのステータスを示します。", + "visTypeVislib.gauge.gaugeTitle": "ゲージ", + "visTypeVislib.gauge.gaugeTypes.arcText": "弧形", + "visTypeVislib.gauge.gaugeTypes.circleText": "円", + "visTypeVislib.gauge.groupTitle": "グループを分割", + "visTypeVislib.gauge.metricTitle": "メトリック", + "visTypeVislib.goal.goalDescription": "メトリックがどのように目標まで進むのかを追跡します。", + "visTypeVislib.goal.goalTitle": "ゴール", + "visTypeVislib.goal.groupTitle": "グループを分割", + "visTypeVislib.goal.metricTitle": "メトリック", + "visTypeVislib.heatmap.groupTitle": "Y 軸", + "visTypeVislib.heatmap.heatmapDescription": "マトリックスのセルのデータを網掛けにします。", + "visTypeVislib.heatmap.heatmapTitle": "ヒートマップ", + "visTypeVislib.heatmap.metricTitle": "値", + "visTypeVislib.heatmap.segmentTitle": "X 軸", + "visTypeVislib.heatmap.splitTitle": "チャートを分割", + "visTypeVislib.vislib.errors.noResultsFoundTitle": "結果が見つかりませんでした", + "visTypeVislib.vislib.heatmap.maxBucketsText": "定義された数列が多すぎます({nr})。構成されている最大値は {max} です。", + "visTypeVislib.vislib.legend.filterForValueButtonAriaLabel": "値 {legendDataLabel} でフィルタリング", + "visTypeVislib.vislib.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", + "visTypeVislib.vislib.legend.filterOutValueButtonAriaLabel": "値 {legendDataLabel} を除外", + "visTypeVislib.vislib.legend.loadingLabel": "読み込み中…", + "visTypeVislib.vislib.legend.toggleLegendButtonAriaLabel": "凡例を切り替える", + "visTypeVislib.vislib.legend.toggleLegendButtonTitle": "凡例を切り替える", + "visTypeVislib.vislib.legend.toggleOptionsButtonAriaLabel": "{legendDataLabel}、トグルオプション", + "visTypeVislib.vislib.tooltip.fieldLabel": "フィールド", + "visTypeVislib.vislib.tooltip.valueLabel": "値", + "visTypeXy.aggResponse.allDocsTitle": "すべてのドキュメント", + "visTypeXy.area.areaDescription": "軸と線の間のデータを強調します。", + "visTypeXy.area.areaTitle": "エリア", + "visTypeXy.area.groupTitle": "系列を分割", + "visTypeXy.area.metricsTitle": "Y 軸", + "visTypeXy.area.radiusTitle": "点のサイズ", + "visTypeXy.area.segmentTitle": "X 軸", + "visTypeXy.area.splitTitle": "チャートを分割", + "visTypeXy.area.tabs.metricsAxesTitle": "メトリックと軸", + "visTypeXy.area.tabs.panelSettingsTitle": "パネル設定", + "visTypeXy.axisModes.normalText": "標準", + "visTypeXy.axisModes.percentageText": "割合(%)", + "visTypeXy.axisModes.silhouetteText": "シルエット", + "visTypeXy.axisModes.wiggleText": "振動", + "visTypeXy.categoryAxis.rotate.angledText": "傾斜", + "visTypeXy.categoryAxis.rotate.horizontalText": "横", + "visTypeXy.categoryAxis.rotate.verticalText": "縦", + "visTypeXy.chartModes.normalText": "標準", + "visTypeXy.chartModes.stackedText": "スタック", + "visTypeXy.chartTypes.areaText": "エリア", + "visTypeXy.chartTypes.barText": "バー", + "visTypeXy.chartTypes.lineText": "折れ線", + "visTypeXy.controls.pointSeries.categoryAxis.alignLabel": "配置", + "visTypeXy.controls.pointSeries.categoryAxis.filterLabelsLabel": "フィルターラベル", + "visTypeXy.controls.pointSeries.categoryAxis.labelsTitle": "ラベル", + "visTypeXy.controls.pointSeries.categoryAxis.positionLabel": "位置", + "visTypeXy.controls.pointSeries.categoryAxis.showLabel": "軸線とラベルを表示", + "visTypeXy.controls.pointSeries.categoryAxis.showLabelsLabel": "ラベルを表示", + "visTypeXy.controls.pointSeries.categoryAxis.xAxisTitle": "X 軸", + "visTypeXy.controls.pointSeries.gridAxis.dontShowLabel": "非表示", + "visTypeXy.controls.pointSeries.gridAxis.gridText": "グリッド", + "visTypeXy.controls.pointSeries.gridAxis.xAxisLinesLabel": "X 軸線を表示", + "visTypeXy.controls.pointSeries.gridAxis.yAxisLinesLabel": "Y 軸線を表示", + "visTypeXy.controls.pointSeries.series.chartTypeLabel": "チャートタイプ", + "visTypeXy.controls.pointSeries.series.circlesRadius": "点のサイズ", + "visTypeXy.controls.pointSeries.series.lineModeLabel": "線のモード", + "visTypeXy.controls.pointSeries.series.lineWidthLabel": "線の幅", + "visTypeXy.controls.pointSeries.series.metricsTitle": "メトリック", + "visTypeXy.controls.pointSeries.series.modeLabel": "モード", + "visTypeXy.controls.pointSeries.series.newAxisLabel": "新規軸…", + "visTypeXy.controls.pointSeries.series.showDotsLabel": "点を表示", + "visTypeXy.controls.pointSeries.series.showLineLabel": "線を表示", + "visTypeXy.controls.pointSeries.series.valueAxisLabel": "値軸", + "visTypeXy.controls.pointSeries.seriesAccordionAriaLabel": "{agg} オプションを切り替える", + "visTypeXy.controls.pointSeries.valueAxes.addButtonTooltip": "Y 軸を追加します", + "visTypeXy.controls.pointSeries.valueAxes.customExtentsLabel": "カスタム範囲", + "visTypeXy.controls.pointSeries.valueAxes.maxLabel": "最高", + "visTypeXy.controls.pointSeries.valueAxes.minErrorMessage": "最低値は最高値よりも低く設定する必要があります。", + "visTypeXy.controls.pointSeries.valueAxes.minLabel": "最低", + "visTypeXy.controls.pointSeries.valueAxes.minNeededScaleText": "ログスケールが選択されている場合、最低値は 0 よりも大きいものである必要があります。", + "visTypeXy.controls.pointSeries.valueAxes.modeLabel": "モード", + "visTypeXy.controls.pointSeries.valueAxes.positionLabel": "位置", + "visTypeXy.controls.pointSeries.valueAxes.removeButtonTooltip": "Y 軸を削除します", + "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBounds.boundsMargin": "境界マージン", + "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBounds.minNeededBoundsMargin": "境界マージンは 0 以上でなければなりません。", + "visTypeXy.controls.pointSeries.valueAxes.scaleToDataBoundsLabel": "データバウンドに合わせる", + "visTypeXy.controls.pointSeries.valueAxes.scaleTypeLabel": "スケールタイプ", + "visTypeXy.controls.pointSeries.valueAxes.setAxisExtentsLabel": "軸範囲を設定", + "visTypeXy.controls.pointSeries.valueAxes.showLabel": "軸線とラベルを表示", + "visTypeXy.controls.pointSeries.valueAxes.titleLabel": "タイトル", + "visTypeXy.controls.pointSeries.valueAxes.toggleCustomExtendsAriaLabel": "カスタム範囲を切り替える", + "visTypeXy.controls.pointSeries.valueAxes.toggleOptionsAriaLabel": "{axisName} オプションを切り替える", + "visTypeXy.controls.pointSeries.valueAxes.yAxisTitle": "Y 軸", + "visTypeXy.controls.truncateLabel": "切り捨て", + "visTypeXy.editors.elasticChartsOptions.detailedTooltip.label": "詳細ツールチップを表示", + "visTypeXy.editors.elasticChartsOptions.detailedTooltip.tooltip": "単一の値を表示するためのレガシー詳細ツールチップを有効にします。無効にすると、新しい概要のツールチップに複数の値が表示されます。", + "visTypeXy.editors.elasticChartsOptions.fillOpacity": "塗りつぶしの透明度", + "visTypeXy.editors.elasticChartsOptions.missingValuesLabel": "欠測値を埋める", + "visTypeXy.editors.pointSeries.currentTimeMarkerLabel": "現在時刻マーカー", + "visTypeXy.editors.pointSeries.orderBucketsBySumLabel": "バケットを合計で並べ替え", + "visTypeXy.editors.pointSeries.settingsTitle": "設定", + "visTypeXy.editors.pointSeries.showLabels": "チャートに値を表示", + "visTypeXy.editors.pointSeries.thresholdLine.colorLabel": "線の色", + "visTypeXy.editors.pointSeries.thresholdLine.showLabel": "しきい線を表示", + "visTypeXy.editors.pointSeries.thresholdLine.styleLabel": "ラインスタイル", + "visTypeXy.editors.pointSeries.thresholdLine.valueLabel": "しきい値", + "visTypeXy.editors.pointSeries.thresholdLine.widthLabel": "線の幅", + "visTypeXy.editors.pointSeries.thresholdLineSettingsTitle": "しきい線", + "visTypeXy.fittingFunctionsTitle.carry": "最後(ギャップを最後の値で埋める)", + "visTypeXy.fittingFunctionsTitle.linear": "線形(ギャップを線で埋める)", + "visTypeXy.fittingFunctionsTitle.lookahead": "次(ギャップを次の値で埋める)", + "visTypeXy.fittingFunctionsTitle.none": "非表示(ギャップを埋めない)", + "visTypeXy.fittingFunctionsTitle.zero": "ゼロ(ギャップをゼロで埋める)", + "visTypeXy.function.adimension.bucket": "バケット", + "visTypeXy.function.adimension.dotSize": "点のサイズ", + "visTypeXy.function.args.addLegend.help": "グラフ凡例を表示", + "visTypeXy.function.args.addTimeMarker.help": "時刻マーカーを表示", + "visTypeXy.function.args.addTooltip.help": "カーソルを置いたときにツールチップを表示", + "visTypeXy.function.args.args.chartType.help": "グラフの種類。折れ線、エリア、ヒストグラムを選択できます", + "visTypeXy.function.args.args.maxLegendLines.help": "凡例項目の最大行数を定義します", + "visTypeXy.function.args.categoryAxes.help": "カテゴリ軸構成", + "visTypeXy.function.args.detailedTooltip.help": "詳細ツールチップを表示", + "visTypeXy.function.args.fillOpacity.help": "エリアグラフの塗りつぶしの透明度を定義します", + "visTypeXy.function.args.fittingFunction.help": "適合関数の名前", + "visTypeXy.function.args.gridCategoryLines.help": "グラフにグリッドカテゴリ線を表示", + "visTypeXy.function.args.gridValueAxis.help": "グリッドを表示する値軸の名前", + "visTypeXy.function.args.isVislibVis.help": "古いvislib可視化を示すフラグ。色を含む後方互換性のために使用されます", + "visTypeXy.function.args.labels.help": "グラフラベル構成", + "visTypeXy.function.args.legendPosition.help": "グラフの上、下、左、右に凡例を配置", + "visTypeXy.function.args.orderBucketsBySum.help": "バケットを合計で並べ替え", + "visTypeXy.function.args.palette.help": "グラフパレット名を定義します", + "visTypeXy.function.args.radiusRatio.help": "点サイズ率", + "visTypeXy.function.args.seriesDimension.help": "系列ディメンション構成", + "visTypeXy.function.args.seriesParams.help": "系列パラメーター構成", + "visTypeXy.function.args.splitColumnDimension.help": "列ディメンション構成で分割", + "visTypeXy.function.args.splitRowDimension.help": "行ディメンション構成で分割", + "visTypeXy.function.args.thresholdLine.help": "しきい値線構成", + "visTypeXy.function.args.times.help": "時刻マーカー構成", + "visTypeXy.function.args.truncateLegend.help": "凡例項目が切り捨てられるかどうかを定義します", + "visTypeXy.function.args.valueAxes.help": "値軸構成", + "visTypeXy.function.args.widthDimension.help": "幅ディメンション構成", + "visTypeXy.function.args.xDimension.help": "X軸ディメンション構成", + "visTypeXy.function.args.yDimension.help": "Y軸ディメンション構成", + "visTypeXy.function.args.zDimension.help": "Z軸ディメンション構成", + "visTypeXy.function.categoryAxis.help": "カテゴリ軸オブジェクトを生成します", + "visTypeXy.function.categoryAxis.id.help": "カテゴリ軸のID", + "visTypeXy.function.categoryAxis.labels.help": "軸ラベル構成", + "visTypeXy.function.categoryAxis.position.help": "カテゴリ軸の位置", + "visTypeXy.function.categoryAxis.scale.help": "スケール構成", + "visTypeXy.function.categoryAxis.show.help": "カテゴリ軸を表示", + "visTypeXy.function.categoryAxis.title.help": "カテゴリ軸のタイトル", + "visTypeXy.function.categoryAxis.type.help": "カテゴリ軸の種類。カテゴリまたは値を選択できます", + "visTypeXy.function.dimension.metric": "メトリック", + "visTypeXy.function.dimension.splitcolumn": "列分割", + "visTypeXy.function.dimension.splitrow": "行分割", + "visTypeXy.function.label.color.help": "ラベルの色", + "visTypeXy.function.label.filter.help": "軸の重なるラベルと重複を非表示にします", + "visTypeXy.function.label.help": "ラベルオブジェクトを生成します", + "visTypeXy.function.label.overwriteColor.help": "色を上書き", + "visTypeXy.function.label.rotate.help": "角度を回転", + "visTypeXy.function.label.show.help": "ラベルを表示", + "visTypeXy.function.label.truncate.help": "切り捨てる前の記号の数", + "visTypeXy.function.scale.boundsMargin.help": "境界のマージン", + "visTypeXy.function.scale.defaultYExtents.help": "データ境界にスケールできるフラグ", + "visTypeXy.function.scale.help": "スケールオブジェクトを生成します", + "visTypeXy.function.scale.max.help": "最高値", + "visTypeXy.function.scale.min.help": "最低値", + "visTypeXy.function.scale.mode.help": "スケールモード。標準、割合、小刻み、シルエットを選択できます", + "visTypeXy.function.scale.setYExtents.help": "独自の範囲を設定できるフラグ", + "visTypeXy.function.scale.type.help": "スケールタイプ。線形、対数、平方根を選択できます", + "visTypeXy.function.seriesParam.circlesRadius.help": "円のサイズ(半径)を定義します", + "visTypeXy.function.seriesParam.drawLinesBetweenPoints.help": "点の間に線を描画", + "visTypeXy.function.seriesparam.help": "系列パラメーターオブジェクトを生成します", + "visTypeXy.function.seriesParam.id.help": "系列パラメーターのID", + "visTypeXy.function.seriesParam.interpolate.help": "補間モード。線形、カーディナル、階段状を選択できます", + "visTypeXy.function.seriesParam.label.help": "系列パラメーターの名前", + "visTypeXy.function.seriesParam.lineWidth.help": "線の幅", + "visTypeXy.function.seriesParam.mode.help": "グラフモード。積み上げまたは割合を選択できます", + "visTypeXy.function.seriesParam.show.help": "パラメーターを表示", + "visTypeXy.function.seriesParam.showCircles.help": "円を表示", + "visTypeXy.function.seriesParam.type.help": "グラフの種類。折れ線、エリア、ヒストグラムを選択できます", + "visTypeXy.function.seriesParam.valueAxis.help": "値軸の名前", + "visTypeXy.function.thresholdLine.color.help": "しきい線の色", + "visTypeXy.function.thresholdLine.help": "しきい値線オブジェクトを生成します", + "visTypeXy.function.thresholdLine.show.help": "しきい線を表示", + "visTypeXy.function.thresholdLine.style.help": "しきい線のスタイル。実線、点線、一点鎖線を選択できます", + "visTypeXy.function.thresholdLine.value.help": "しきい値", + "visTypeXy.function.thresholdLine.width.help": "しきい値線の幅", + "visTypeXy.function.timeMarker.class.help": "CSSクラス名", + "visTypeXy.function.timeMarker.color.help": "時刻マーカーの色", + "visTypeXy.function.timemarker.help": "時刻マーカーオブジェクトを生成します", + "visTypeXy.function.timeMarker.opacity.help": "時刻マーカーの透明度", + "visTypeXy.function.timeMarker.time.help": "正確な時刻", + "visTypeXy.function.timeMarker.width.help": "時刻マーカーの幅", + "visTypeXy.function.valueAxis.axisParams.help": "値軸パラメーター", + "visTypeXy.function.valueaxis.help": "値軸オブジェクトを生成します", + "visTypeXy.function.valueAxis.name.help": "値軸の名前", + "visTypeXy.functions.help": "XYビジュアライゼーション", + "visTypeXy.histogram.groupTitle": "系列を分割", + "visTypeXy.histogram.histogramDescription": "軸の縦棒にデータを表示します。", + "visTypeXy.histogram.histogramTitle": "縦棒", + "visTypeXy.histogram.metricTitle": "Y 軸", + "visTypeXy.histogram.radiusTitle": "点のサイズ", + "visTypeXy.histogram.segmentTitle": "X 軸", + "visTypeXy.histogram.splitTitle": "チャートを分割", + "visTypeXy.horizontalBar.groupTitle": "系列を分割", + "visTypeXy.horizontalBar.horizontalBarDescription": "軸の横棒にデータを表示します。", + "visTypeXy.horizontalBar.horizontalBarTitle": "横棒", + "visTypeXy.horizontalBar.metricTitle": "Y 軸", + "visTypeXy.horizontalBar.radiusTitle": "点のサイズ", + "visTypeXy.horizontalBar.segmentTitle": "X 軸", + "visTypeXy.horizontalBar.splitTitle": "チャートを分割", + "visTypeXy.interpolationModes.smoothedText": "スムーズ", + "visTypeXy.interpolationModes.steppedText": "ステップ", + "visTypeXy.interpolationModes.straightText": "直線", + "visTypeXy.legend.filterForValueButtonAriaLabel": "値でフィルター", + "visTypeXy.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", + "visTypeXy.legend.filterOutValueButtonAriaLabel": "値を除外", + "visTypeXy.legendPositions.bottomText": "一番下", + "visTypeXy.legendPositions.leftText": "左", + "visTypeXy.legendPositions.rightText": "右", + "visTypeXy.legendPositions.topText": "トップ", + "visTypeXy.line.groupTitle": "系列を分割", + "visTypeXy.line.lineDescription": "データを系列点として表示します。", + "visTypeXy.line.lineTitle": "折れ線", + "visTypeXy.line.metricTitle": "Y 軸", + "visTypeXy.line.radiusTitle": "点のサイズ", + "visTypeXy.line.segmentTitle": "X 軸", + "visTypeXy.line.splitTitle": "チャートを分割", + "visTypeXy.scaleTypes.linearText": "線形", + "visTypeXy.scaleTypes.logText": "ログ", + "visTypeXy.scaleTypes.squareRootText": "平方根", + "visTypeXy.thresholdLine.style.dashedText": "鎖線", + "visTypeXy.thresholdLine.style.dotdashedText": "点線", + "visTypeXy.thresholdLine.style.fullText": "完全", + "visualizations.advancedSettings.visualizeEnableLabsText": "ユーザーが実験的なビジュアライゼーションを作成、表示、編集できるようになります。無効の場合、\n ユーザーは本番準備が整ったビジュアライゼーションのみを利用できます。", + "visualizations.advancedSettings.visualizeEnableLabsTitle": "実験的なビジュアライゼーションを有効にする", + "visualizations.disabledLabVisualizationLink": "ドキュメンテーションを表示", + "visualizations.disabledLabVisualizationMessage": "ラボビジュアライゼーションを表示するには、高度な設定でラボモードをオンにしてください。", + "visualizations.disabledLabVisualizationTitle": "{title} はラボビジュアライゼーションです。", + "visualizations.displayName": "ビジュアライゼーション", + "visualizations.embeddable.inspectorTitle": "インスペクター", + "visualizations.embeddable.legacyURLConflict.errorMessage": "このビジュアライゼーションにはレガシーエイリアスと同じURLがあります。このエラーを解決するには、エイリアスを無効にしてください:{json}", + "visualizations.embeddable.placeholderTitle": "プレースホルダータイトル", + "visualizations.function.range.from.help": "範囲の開始", + "visualizations.function.range.help": "範囲オブジェクトを生成します", + "visualizations.function.range.to.help": "範囲の終了", + "visualizations.function.visDimension.accessor.help": "使用するデータセット内の列(列インデックスまたは列名)", + "visualizations.function.visDimension.error.accessor": "入力された列名またはインデックスが無効です", + "visualizations.function.visDimension.format.help": "フォーマット", + "visualizations.function.visDimension.formatParams.help": "フォーマットパラメーター", + "visualizations.function.visDimension.help": "visConfig ディメンションオブジェクトを生成します", + "visualizations.function.xyDimension.aggType.help": "集約タイプ", + "visualizations.function.xydimension.help": "XYディメンションオブジェクトを生成します", + "visualizations.function.xyDimension.label.help": "ラベル", + "visualizations.function.xyDimension.params.help": "パラメーター", + "visualizations.function.xyDimension.visDimension.help": "ディメンションオブジェクト構成", + "visualizations.initializeWithoutIndexPatternErrorMessage": "インデックスパターンなしで集約を初期化しようとしています", + "visualizations.newVisWizard.aggBasedGroupDescription": "クラシック Visualize ライブラリを使用して、アグリゲーションに基づいてグラフを作成します。", + "visualizations.newVisWizard.aggBasedGroupTitle": "アグリゲーションに基づく", + "visualizations.newVisWizard.chooseSourceTitle": "ソースの選択", + "visualizations.newVisWizard.experimentalTitle": "実験的", + "visualizations.newVisWizard.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。", + "visualizations.newVisWizard.exploreOptionLinkText": "探索オプション", + "visualizations.newVisWizard.filterVisTypeAriaLabel": "ビジュアライゼーションのタイプでフィルタリング", + "visualizations.newVisWizard.goBackLink": "別のビジュアライゼーションを選択", + "visualizations.newVisWizard.helpTextAriaLabel": "タイプを選択してビジュアライゼーションの作成を始めましょう。ESC を押してこのモーダルを閉じます。Tab キーを押して次に進みます。", + "visualizations.newVisWizard.learnMoreText": "詳細について", + "visualizations.newVisWizard.newVisTypeTitle": "新規 {visTypeName}", + "visualizations.newVisWizard.readDocumentationLink": "ドキュメンテーションを表示", + "visualizations.newVisWizard.searchSelection.notFoundLabel": "一致インデックスまたは保存した検索が見つかりません。", + "visualizations.newVisWizard.searchSelection.savedObjectType.search": "保存検索", + "visualizations.newVisWizard.title": "新規ビジュアライゼーション", + "visualizations.newVisWizard.toolsGroupTitle": "ツール", + "visualizations.noResultsFoundTitle": "結果が見つかりませんでした", + "visualizations.savedObjectName": "ビジュアライゼーション", + "visualizations.savingVisualizationFailed.errorMsg": "ビジュアライゼーションの保存が失敗しました", + "visualizations.visualizationTypeInvalidMessage": "無効なビジュアライゼーションタイプ \"{visType}\"", + "visualize.badge.readOnly.text": "読み取り専用", + "visualize.badge.readOnly.tooltip": "ビジュアライゼーションをライブラリに保存できません", + "visualize.byValue_pageHeading": "{originatingApp}アプリに埋め込まれた{chartType}タイプのビジュアライゼーション", + "visualize.confirmModal.confirmTextDescription": "変更を保存せずにVisualizeエディターから移動しますか?", + "visualize.confirmModal.title": "保存されていない変更", + "visualize.createVisualization.failedToLoadErrorMessage": "ビジュアライゼーションを読み込めませんでした", + "visualize.createVisualization.noIndexPatternOrSavedSearchIdErrorMessage": "indexPatternまたはsavedSearchIdが必要です", + "visualize.createVisualization.noVisTypeErrorMessage": "有効なビジュアライゼーションタイプを指定してください", + "visualize.editor.createBreadcrumb": "作成", + "visualize.editor.defaultEditBreadcrumbText": "ビジュアライゼーションを編集", + "visualize.experimentalVisInfoText": "このビジュアライゼーションはまだ実験段階であり、オフィシャルGA機能のサポートSLAが適用されません。フィードバックがある場合は、{githubLink}で問題を報告してください。", + "visualize.helpMenu.appName": "Visualizeライブラリ", + "visualize.legacyUrlConflict.objectNoun": "{visName}ビジュアライゼーション", + "visualize.linkedToSearch.unlinkSuccessNotificationText": "保存された検索「{searchTitle}」からリンクが解除されました", + "visualize.listing.betaTitle": "ベータ", + "visualize.listing.betaTooltip": "このビジュアライゼーションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャルGA機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャルGA機能のSLAが適用されません", + "visualize.listing.breadcrumb": "Visualizeライブラリ", + "visualize.listing.createNew.createButtonLabel": "新規ビジュアライゼーションを追加", + "visualize.listing.createNew.description": "データに基づき異なるビジュアライゼーションを作成できます。", + "visualize.listing.createNew.title": "最初のビジュアライゼーションの作成", + "visualize.listing.experimentalTitle": "実験的", + "visualize.listing.experimentalTooltip": "このビジュアライゼーションは今後のリリースで変更または削除される可能性があり、SLA のサポート対象になりません。", + "visualize.listing.table.descriptionColumnName": "説明", + "visualize.listing.table.entityName": "ビジュアライゼーション", + "visualize.listing.table.entityNamePlural": "ビジュアライゼーション", + "visualize.listing.table.listTitle": "Visualizeライブラリ", + "visualize.listing.table.titleColumnName": "タイトル", + "visualize.listing.table.typeColumnName": "型", + "visualize.listingPageTitle": "Visualizeライブラリ", + "visualize.noMatchRoute.bannerText": "Visualizeアプリケーションはこのルートを認識できません。{route}", + "visualize.noMatchRoute.bannerTitleText": "ページが見つかりません", + "visualize.pageHeading": "{chartName} {chartType}ビジュアライゼーション", + "visualize.reporting.defaultReportTitle": "ビジュアライゼーション[{date}]", + "visualize.topNavMenu.cancelAndReturnButtonTooltip": "完了する前に変更を破棄", + "visualize.topNavMenu.cancelButtonAriaLabel": "変更を保存せずに最後に使用していたアプリに戻る", + "visualize.topNavMenu.cancelButtonLabel": "キャンセル", + "visualize.topNavMenu.openInspectorButtonAriaLabel": "ビジュアライゼーションのインスペクターを開く", + "visualize.topNavMenu.openInspectorButtonLabel": "検査", + "visualize.topNavMenu.openInspectorDisabledButtonTooltip": "このビジュアライゼーションはインスペクターをサポートしていません。", + "visualize.topNavMenu.saveAndReturnVisualizationButtonAriaLabel": "可視化の編集が完了し、前回使用していたアプリに戻ります", + "visualize.topNavMenu.saveAndReturnVisualizationButtonLabel": "保存して戻る", + "visualize.topNavMenu.saveAndReturnVisualizationDisabledButtonTooltip": "完了する前に変更を適用または破棄", + "visualize.topNavMenu.saveVisualization.failureNotificationText": "「{visTitle}」の保存中にエラーが発生しました", + "visualize.topNavMenu.saveVisualization.successNotificationText": "保存された'{visTitle}'", + "visualize.topNavMenu.saveVisualizationAsButtonLabel": "名前を付けて保存", + "visualize.topNavMenu.saveVisualizationButtonAriaLabel": "ビジュアライゼーションを保存", + "visualize.topNavMenu.saveVisualizationButtonLabel": "保存", + "visualize.topNavMenu.saveVisualizationDisabledButtonTooltip": "保存する前に変更を適用または破棄", + "visualize.topNavMenu.saveVisualizationObjectType": "ビジュアライゼーション", + "visualize.topNavMenu.saveVisualizationToLibraryButtonLabel": "ライブラリに保存", + "visualize.topNavMenu.shareVisualizationButtonAriaLabel": "ビジュアライゼーションを共有", + "visualize.topNavMenu.shareVisualizationButtonLabel": "共有", + "visualize.topNavMenu.updatePanel": "{originatingAppName}でパネルを更新", + "visualize.visualizationLoadingFailedErrorMessage": "ビジュアライゼーションを読み込めませんでした", + "visualize.visualizeDescription": "ビジュアライゼーションを作成してElasticsearchインデックスに保存されたデータをアグリゲーションします。", + "visualize.visualizeListingBreadcrumbsTitle": "Visualizeライブラリ", + "visualize.visualizeListingDashboardAppName": "ダッシュボードアプリケーション", + "visualize.visualizeListingDashboardFlowDescription": "ダッシュボードを作成しますか?{dashboardApp}から直接ビジュアライゼーションを作成して追加します。", + "visualize.visualizeListingDeleteErrorTitle": "ビジュアライゼーションの削除中にエラーが発生", + "xpack.actions.actionTypeRegistry.get.missingActionTypeErrorMessage": "アクションタイプ「{id}」は登録されていません。", + "xpack.actions.actionTypeRegistry.register.duplicateActionTypeErrorMessage": "アクションタイプ「{id}」はすでに登録されています。", + "xpack.actions.alertHistoryEsIndexConnector.name": "アラート履歴Elasticsearchインデックス", + "xpack.actions.appName": "アクション", + "xpack.actions.builtin.case.swimlaneTitle": "スイムレーン", + "xpack.actions.builtin.cases.jiraTitle": "Jira", + "xpack.actions.builtin.cases.resilientTitle": "IBM Resilient", + "xpack.actions.builtin.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", + "xpack.actions.builtin.email.customViewInKibanaMessage": "このメッセージは Kibana によって送信されました。[{kibanaFooterLinkText}]({link})。", + "xpack.actions.builtin.email.errorSendingErrorMessage": "エラー送信メールアドレス", + "xpack.actions.builtin.email.kibanaFooterLinkText": "Kibana を開く", + "xpack.actions.builtin.email.sentByKibanaMessage": "このメッセージは Kibana によって送信されました。", + "xpack.actions.builtin.emailTitle": "メール", + "xpack.actions.builtin.esIndex.errorIndexingErrorMessage": "エラーインデックス作成ドキュメント", + "xpack.actions.builtin.esIndexTitle": "インデックス", + "xpack.actions.builtin.jira.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", + "xpack.actions.builtin.pagerduty.invalidTimestampErrorMessage": "タイムスタンプ\"{timestamp}\"の解析エラー", + "xpack.actions.builtin.pagerduty.missingDedupkeyErrorMessage": "eventActionが「{eventAction}」のときにはDedupKeyが必要です", + "xpack.actions.builtin.pagerduty.pagerdutyConfigurationError": "pagerduty アクションの設定エラー:{message}", + "xpack.actions.builtin.pagerduty.postingErrorMessage": "pagerduty イベントの投稿エラー", + "xpack.actions.builtin.pagerduty.postingRetryErrorMessage": "pagerduty イベントの投稿エラー:http status {status}、後ほど再試行", + "xpack.actions.builtin.pagerduty.postingUnexpectedErrorMessage": "pagerduty イベントの投稿エラー:予期せぬステータス {status}", + "xpack.actions.builtin.pagerduty.timestampParsingFailedErrorMessage": "タイムスタンプの解析エラー \"{timestamp}\":{message}", + "xpack.actions.builtin.pagerdutyTitle": "PagerDuty", + "xpack.actions.builtin.serverLog.errorLoggingErrorMessage": "メッセージのロギングエラー", + "xpack.actions.builtin.serverLogTitle": "サーバーログ", + "xpack.actions.builtin.serviceNowITOMTitle": "ServiceNow ITOM", + "xpack.actions.builtin.serviceNowITSMTitle": "ServiceNow ITSM", + "xpack.actions.builtin.serviceNowSIRTitle": "ServiceNow SecOps", + "xpack.actions.builtin.serviceNowTitle": "ServiceNow", + "xpack.actions.builtin.slack.errorPostingErrorMessage": "slack メッセージの投稿エラー", + "xpack.actions.builtin.slack.errorPostingRetryDateErrorMessage": "slack メッセージの投稿エラー、 {retryString} で再試行", + "xpack.actions.builtin.slack.errorPostingRetryLaterErrorMessage": "slack メッセージの投稿エラー、後ほど再試行", + "xpack.actions.builtin.slack.slackConfigurationError": "slack アクションの設定エラー:{message}", + "xpack.actions.builtin.slack.slackConfigurationErrorNoHostname": "slack アクションの構成エラー:Web フック URL からホスト名をパースできません", + "xpack.actions.builtin.slack.unexpectedHttpResponseErrorMessage": "slack からの予期せぬ http 応答:{httpStatus} {httpStatusText}", + "xpack.actions.builtin.slack.unexpectedNullResponseErrorMessage": "Slack から予期せぬ null 応答", + "xpack.actions.builtin.slackTitle": "Slack", + "xpack.actions.builtin.swimlane.configuration.apiAllowedHostsError": "コネクターアクションの構成エラー:{message}", + "xpack.actions.builtin.swimlaneTitle": "スイムレーン", + "xpack.actions.builtin.teams.errorPostingRetryDateErrorMessage": "Microsoft Teams メッセージの投稿エラーです。{retryString} に再試行します", + "xpack.actions.builtin.teams.errorPostingRetryLaterErrorMessage": "Microsoft Teams メッセージの投稿エラーです。しばらくたってから再試行します", + "xpack.actions.builtin.teams.invalidResponseErrorMessage": "Microsoft Teams への投稿エラーです。無効な応答です", + "xpack.actions.builtin.teams.teamsConfigurationError": "Teams アクションの設定エラー:{message}", + "xpack.actions.builtin.teams.teamsConfigurationErrorNoHostname": "Teams アクションの構成エラー:Web フック URL からホスト名をパースできません", + "xpack.actions.builtin.teams.unreachableErrorMessage": "Microsoft Teams への投稿エラーです。予期しないエラーです", + "xpack.actions.builtin.teamsTitle": "Microsoft Teams", + "xpack.actions.builtin.webhook.invalidResponseErrorMessage": "Webフックの呼び出しエラー、無効な応答", + "xpack.actions.builtin.webhook.invalidResponseRetryDateErrorMessage": "Webフックの呼び出しエラー、{retryString} に再試行", + "xpack.actions.builtin.webhook.invalidResponseRetryLaterErrorMessage": "Webフックの呼び出しエラー、後ほど再試行", + "xpack.actions.builtin.webhook.invalidUsernamePassword": "ユーザーとパスワードの両方を指定する必要があります", + "xpack.actions.builtin.webhook.requestFailedErrorMessage": "Webフックの呼び出しエラー。要求が失敗しました", + "xpack.actions.builtin.webhook.unreachableErrorMessage": "webhookの呼び出しエラー、予期せぬエラー", + "xpack.actions.builtin.webhook.webhookConfigurationError": "Web フックアクションの構成中にエラーが発生:{message}", + "xpack.actions.builtin.webhook.webhookConfigurationErrorNoHostname": "Webフックアクションの構成エラーです。URLを解析できません。{err}", + "xpack.actions.builtin.webhookTitle": "Web フック", + "xpack.actions.disabledActionTypeError": "アクションタイプ \"{actionType}\" は、Kibana 構成 xpack.actions.enabledActionTypes では有効化されません", + "xpack.actions.featureRegistry.actionsFeatureName": "アクションとコネクター", + "xpack.actions.savedObjects.goToConnectorsButtonText": "コネクターに移動", + "xpack.actions.serverSideErrors.expirerdLicenseErrorMessage": "{licenseType} ライセンスの期限が切れたのでアクションタイプ {actionTypeId} は無効です。", + "xpack.actions.serverSideErrors.invalidLicenseErrorMessage": "{licenseType} ライセンスでサポートされないのでアクションタイプ {actionTypeId} は無効です。ライセンスをアップグレードしてください。", + "xpack.actions.serverSideErrors.predefinedActionDeleteDisabled": "あらかじめ構成されたアクション{id}は削除できません。", + "xpack.actions.serverSideErrors.predefinedActionUpdateDisabled": "あらかじめ構成されたアクション{id}は更新できません。", + "xpack.actions.serverSideErrors.unavailableLicenseErrorMessage": "現時点でライセンス情報を入手できないため、アクションタイプ {actionTypeId} は無効です。", + "xpack.actions.serverSideErrors.unavailableLicenseInformationErrorMessage": "グラフを利用できません。現在ライセンス情報が利用できません。", + "xpack.actions.urlAllowedHostsConfigurationError": "ターゲット{field}「{value}」はKibana構成xpack.actions.allowedHostsに追加されていません", + "xpack.alerting.alertNavigationRegistry.get.missingNavigationError": "「{consumer}」内のアラートタイプ「{alertType}」のナビゲーションは登録されていません。", + "xpack.alerting.alertNavigationRegistry.register.duplicateDefaultError": "「{consumer}」内のデフォルトナビゲーションはすでに登録されています。", + "xpack.alerting.alertNavigationRegistry.register.duplicateNavigationError": "「{consumer}」内のアラートタイプ「{alertType}」のナビゲーションは既に登録されています。", + "xpack.alerting.api.error.disabledApiKeys": "アラートは API キーに依存しますがキーが無効になっているようです", + "xpack.alerting.appName": "アラート", + "xpack.alerting.builtinActionGroups.recovered": "回復済み", + "xpack.alerting.injectActionParams.email.kibanaFooterLinkText": "Kibanaでルールを表示", + "xpack.alerting.rulesClient.invalidDate": "パラメーター{field}の無効な日付:「{dateValue}」", + "xpack.alerting.rulesClient.validateActions.invalidGroups": "無効なアクショングループ:{groups}", + "xpack.alerting.rulesClient.validateActions.misconfiguredConnector": "無効なコネクター:{groups}", + "xpack.alerting.ruleTypeRegistry.get.missingAlertTypeError": "ルールタイプ「{id}」は登録されていません。", + "xpack.alerting.ruleTypeRegistry.register.customRecoveryActionGroupUsageError": "ルールタイプ[id=\"{id}\"]を登録できません。アクショングループ [{actionGroup}] は、復元とアクティブなアクショングループの両方として使用できません。", + "xpack.alerting.ruleTypeRegistry.register.duplicateAlertTypeError": "ルールタイプ\"{id}\"はすでに登録されています。", + "xpack.alerting.ruleTypeRegistry.register.invalidDefaultTimeoutAlertTypeError": "ルールタイプ\"{id}\"のデフォルト間隔が無効です:{errorMessage}。", + "xpack.alerting.ruleTypeRegistry.register.invalidMinimumTimeoutAlertTypeError": "ルールタイプ\"{id}\"の最低間隔が無効です:{errorMessage}。", + "xpack.alerting.ruleTypeRegistry.register.invalidTimeoutAlertTypeError": "ルールタイプ\"{id}\"のタイムアウトが無効です:{errorMessage}。", + "xpack.alerting.savedObjects.goToRulesButtonText": "ルールに移動", + "xpack.alerting.serverSideErrors.expirerdLicenseErrorMessage": "{licenseType} ライセンスの期限が切れたのでアラートタイプ {alertTypeId} は無効です。", + "xpack.alerting.serverSideErrors.invalidLicenseErrorMessage": "アラート{alertTypeId}は無効です。{licenseType}ライセンスが必要です。アップグレードオプションを表示するには、[ライセンス管理]に移動してください。", + "xpack.alerting.serverSideErrors.unavailableLicenseErrorMessage": "現時点でライセンス情報を入手できないため、アラートタイプ {alertTypeId} は無効です。", + "xpack.alerting.serverSideErrors.unavailableLicenseInformationErrorMessage": "アラートを利用できません。現在ライセンス情報が利用できません。", + "xpack.apm.a.thresholdMet": "しきい値一致", + "xpack.apm.addDataButtonLabel": "データの追加", + "xpack.apm.agentConfig.allOptionLabel": "すべて", + "xpack.apm.agentConfig.apiRequestSize.description": "チャンクエンコーディング(HTTPストリーミング)を経由してAPM ServerインテークAPIに送信されるリクエスト本文の最大合計圧縮サイズ。\nわずかなオーバーシュートの可能性があることに注意してください。\n\n使用できるバイト単位は、「b」、「kb」、「mb」です。「1kb」は「1024b」と等価です。", + "xpack.apm.agentConfig.apiRequestSize.label": "API リクエストサイズ", + "xpack.apm.agentConfig.apiRequestTime.description": "APM Server への HTTP リクエストを開いておく最大時間。\n\n注:この値は、APM Server の「read_timeout」設定よりも低くする必要があります。", + "xpack.apm.agentConfig.apiRequestTime.label": "API リクエスト時間", + "xpack.apm.agentConfig.captureBody.description": "HTTPリクエストのトランザクションの場合、エージェントはオプションとしてリクエスト本文(POST変数など)をキャプチャすることができます。\nメッセージブローカーからメッセージを受信すると開始するトランザクションでは、エージェントがテキストメッセージの本文を取り込むことができます。", + "xpack.apm.agentConfig.captureBody.label": "本文をキャプチャ", + "xpack.apm.agentConfig.captureHeaders.description": "「true」に設定すると、メッセージングフレームワーク(Kafkaなど)を使用するときに、エージェントはHTTP要求と応答ヘッダー(Cookieを含む)、およびメッセージヘッダー/プロパティを取り込みます。\n\n注:これを「false」に設定すると、ネットワーク帯域幅、ディスク容量、およびオブジェクト割り当てが減少します。", + "xpack.apm.agentConfig.captureHeaders.label": "ヘッダーのキャプチャ", + "xpack.apm.agentConfig.chooseService.editButton": "編集", + "xpack.apm.agentConfig.chooseService.service.environment.label": "環境", + "xpack.apm.agentConfig.chooseService.service.name.label": "サービス名", + "xpack.apm.agentConfig.circuitBreakerEnabled.description": "Circuit Breakerを有効にすべきかどうかを指定するブール値。 有効にすると、エージェントは定期的にストレス監視をポーリングして、システム/プロセス/JVMのストレス状態を検出します。監視のいずれかがストレスの兆候を検出した場合、`recording`構成オプションの設定が「false」であるかのようにエージェントは一時停止し、リソース消費を最小限に抑えられます。一時停止した場合、エージェントはストレス状態が緩和されたかどうかを検出するために同じ監視のポーリングを継続します。すべての監視でシステム/プロセス/JVMにストレスがないことが認められると、エージェントは再開して完全に機能します。", + "xpack.apm.agentConfig.circuitBreakerEnabled.label": "Cirtcuit Breaker が有効", + "xpack.apm.agentConfig.configTable.appliedTooltipMessage": "1 つ以上のエージェントにより適用されました", + "xpack.apm.agentConfig.configTable.configTable.failurePromptText": "エージェントの構成一覧を取得できませんでした。ユーザーに十分なパーミッションがない可能性があります。", + "xpack.apm.agentConfig.configTable.createConfigButtonLabel": "構成の作成", + "xpack.apm.agentConfig.configTable.emptyPromptTitle": "構成が見つかりません。", + "xpack.apm.agentConfig.configTable.environmentColumnLabel": "サービス環境", + "xpack.apm.agentConfig.configTable.lastUpdatedColumnLabel": "最終更新", + "xpack.apm.agentConfig.configTable.notAppliedTooltipMessage": "まだエージェントにより適用されていません", + "xpack.apm.agentConfig.configTable.serviceNameColumnLabel": "サービス名", + "xpack.apm.agentConfig.configurationsPanelTitle": "構成", + "xpack.apm.agentConfig.configurationsPanelTitle.noPermissionTooltipLabel": "ユーザーロールには、エージェント構成を作成する権限がありません", + "xpack.apm.agentConfig.createConfigButtonLabel": "構成の作成", + "xpack.apm.agentConfig.createConfigTitle": "構成の作成", + "xpack.apm.agentConfig.deleteModal.cancel": "キャンセル", + "xpack.apm.agentConfig.deleteModal.confirm": "削除", + "xpack.apm.agentConfig.deleteModal.text": "サービス「{serviceName}」と環境「{environment}」の構成を削除しようとしています。", + "xpack.apm.agentConfig.deleteModal.title": "構成を削除", + "xpack.apm.agentConfig.deleteSection.deleteConfigFailedText": "「{serviceName}」の構成を削除中に問題が発生しました。エラー:「{errorMessage}」", + "xpack.apm.agentConfig.deleteSection.deleteConfigFailedTitle": "構成を削除できませんでした", + "xpack.apm.agentConfig.deleteSection.deleteConfigSucceededText": "「{serviceName}」の構成が正常に削除されました。エージェントに反映されるまでに少し時間がかかります。", + "xpack.apm.agentConfig.deleteSection.deleteConfigSucceededTitle": "構成が削除されました", + "xpack.apm.agentConfig.editConfigTitle": "構成の編集", + "xpack.apm.agentConfig.enableLogCorrelation.description": "エージェントがSLF4JのMDCと融合してトレースログ相関を有効にすべきかどうかを指定するブール値。「true」に設定した場合、エージェントは現在アクティブなスパンとトランザクションの「trace.id」と「transaction.id」をMDCに設定します。Javaエージェントバージョン1.16.0以降では、エージェントは、エラーメッセージが記録される前に、取り込まれたエラーの「error.id」もMDCに追加します。注:実行時にこの設定を有効にできますが、再起動しないと無効にはできません。", + "xpack.apm.agentConfig.enableLogCorrelation.label": "ログ相関を有効にする", + "xpack.apm.agentConfig.logLevel.description": "エージェントのログ記録レベルを設定します", + "xpack.apm.agentConfig.logLevel.label": "ログレベル", + "xpack.apm.agentConfig.newConfig.description": "APMアプリ内からエージェント構成を微調整してください。変更はAPMエージェントに自動的に伝達されるので、再デプロイする必要はありません。", + "xpack.apm.agentConfig.profilingInferredSpansEnabled.description": "「true」に設定すると、エージェントは、別名統計プロファイラーと呼ばれるサンプリングプロファイラーであるasync-profilerに基づいてメソッド実行用のスパンを作成します。サンプリングプロファイラーのしくみの性質上、推定スパンの期間は厳密ではなく見込みのみです。「profiling_inferred_spans_sampling_interval」では、正確度とオーバーヘッドの間のトレードオフを微調整できます。推定スパンは、プロファイルセッションの終了後に作成されます。つまり、通常のスパンと推定スパンの間にはUIに表示されるタイミングに遅延があります。注:この機能はWindowsで使用できません。", + "xpack.apm.agentConfig.profilingInferredSpansEnabled.label": "プロファイル推定スパンが有効です", + "xpack.apm.agentConfig.profilingInferredSpansExcludedClasses.description": "プロファイラー推定スパンを作成する必要がないクラスを除外します。このオプションは、0文字以上に一致するワイルドカード「*」をサポートします。デフォルトでは、照合時に大文字と小文字の区別はありません。要素の前に「(?-i)」を付けると、照合時に大文字と小文字が区別されます。", + "xpack.apm.agentConfig.profilingInferredSpansExcludedClasses.label": "プロファイル推定スパンでクラスを除外しました", + "xpack.apm.agentConfig.profilingInferredSpansIncludedClasses.description": "設定した場合、エージェントは、このリストに一致するメソッドの推定スパンのみを作成します。値を設定すると、わずかに負荷が低減することがあり、対象となるクラスのスパンのみを作成することによって煩雑になるのを防止できます。このオプションは、0文字以上に一致するワイルドカード「*」をサポートします。例:「org.example.myapp.*」デフォルトでは、照合時に大文字と小文字の区別はありません。要素の前に「(?-i)」を付けると、照合時に大文字と小文字が区別されます。", + "xpack.apm.agentConfig.profilingInferredSpansIncludedClasses.label": "プロファイル推定スパンでクラスを包含しました", + "xpack.apm.agentConfig.profilingInferredSpansMinDuration.description": "推定スパンの最小期間。最小期間もサンプリング間隔によって暗黙的に設定されることに注意してください。ただし、サンプリング間隔を大きくすると、推定スパンの期間の精度も低下します。", + "xpack.apm.agentConfig.profilingInferredSpansMinDuration.label": "プロファイル推定スパン最小期間", + "xpack.apm.agentConfig.profilingInferredSpansSamplingInterval.description": "プロファイルセッション内でスタックトレースを収集する頻度。低い値に設定するほど継続時間の精度が上がります。その代わり、オーバーヘッドが増し、潜在的に無関係なオペレーションのスパンが増えるという犠牲が伴います。プロファイル推定スパンの最小期間は、この設定値と同じです。", + "xpack.apm.agentConfig.profilingInferredSpansSamplingInterval.label": "プロファイル推定サンプリング間隔", + "xpack.apm.agentConfig.range.errorText": "{rangeType, select,\n between {{min}と{max}の間でなければなりません}\n gt {値は{min}よりも大きい値でなければなりません}\n lt {{max}よりも低く設定する必要があります}\n other {整数でなければなりません}\n }", + "xpack.apm.agentConfig.recording.description": "記録中の場合、エージェントは着信HTTPリクエストを計測し、エラーを追跡し、メトリックを収集して送信します。記録なしに設定すると、エージェントはnoopとして動作し、更新された更新のポーリングを除き、データの収集や APM Server との通信を行いません。これは可逆スイッチなので、記録なしに設定されていてもエージェントスレッドは強制終了されませんが、この状態ではほとんどアイドル状態なのでオーバーヘッドは無視できます。この設定を使用すると、Elastic APMが有効か無効かを動的に制御できます。", + "xpack.apm.agentConfig.recording.label": "記録中", + "xpack.apm.agentConfig.sanitizeFiledNames.description": "場合によっては、サニタイズが必要です。つまり、Elastic APM に送信される機密データを削除する必要があります。この構成では、サニタイズされるフィールド名のワイルドカードパターンのリストを使用できます。これらは HTTP ヘッダー(Cookie を含む)と「application/x-www-form-urlencoded」データ(POST フォームフィールド)に適用されます。クエリ文字列と取り込まれた要求本文(「application/json」データなど)はサニタイズされません。", + "xpack.apm.agentConfig.sanitizeFiledNames.label": "フィールド名のサニタイズ", + "xpack.apm.agentConfig.saveConfig.failed.text": "「{serviceName}」の構成の保存中に問題が発生しました。エラー:「{errorMessage}」", + "xpack.apm.agentConfig.saveConfig.failed.title": "構成を保存できませんでした", + "xpack.apm.agentConfig.saveConfig.succeeded.text": "「{serviceName}」の構成を保存しました。エージェントに反映されるまでに少し時間がかかります。", + "xpack.apm.agentConfig.saveConfig.succeeded.title": "構成が保存されました", + "xpack.apm.agentConfig.saveConfigurationButtonLabel": "次のステップ", + "xpack.apm.agentConfig.serverTimeout.description": "APM Server への要求で構成されたタイムアウトより時間がかかる場合、\n要求がキャンセルされ、イベント(例外またはトランザクション)が破棄されます。\n0に設定するとタイムアウトが無効になります。\n\n警告:タイムアウトが無効か高い値に設定されている場合、APM Serverがタイムアウトになると、アプリでメモリの問題が発生する可能性があります。", + "xpack.apm.agentConfig.serverTimeout.label": "サーバータイムアウト", + "xpack.apm.agentConfig.servicePage.alreadyConfiguredOption": "すでに構成済み", + "xpack.apm.agentConfig.servicePage.cancelButton": "キャンセル", + "xpack.apm.agentConfig.servicePage.environment.description": "構成ごとに 1 つの環境のみがサポートされます。", + "xpack.apm.agentConfig.servicePage.environment.fieldLabel": "サービス環境", + "xpack.apm.agentConfig.servicePage.environment.title": "環境", + "xpack.apm.agentConfig.servicePage.service.description": "構成するサービスを選択してください。", + "xpack.apm.agentConfig.servicePage.service.fieldLabel": "サービス名", + "xpack.apm.agentConfig.servicePage.service.title": "サービス", + "xpack.apm.agentConfig.settingsPage.discardChangesButton": "変更を破棄", + "xpack.apm.agentConfig.settingsPage.notFound.message": "リクエストされた構成が存在しません", + "xpack.apm.agentConfig.settingsPage.notFound.title": "申し訳ございません、エラーが発生しました", + "xpack.apm.agentConfig.settingsPage.saveButton": "構成を保存", + "xpack.apm.agentConfig.spanFramesMinDuration.description": "デフォルト設定では、APM エージェントは記録されたすべてのスパンでスタックトレースを収集します。\nこれはコード内でスパンの原因になる厳密な場所を見つけるうえで非常に役立ちますが、このスタックトレースを収集するとオーバーヘッドが生じます。\nこのオプションを負の値(「-1ms」など)に設定すると、すべてのスパンのスタックトレースが収集されます。正の値(たとえば、「5 ms」)に設定すると、スタックトレース収集を、指定値(たとえば、5ミリ秒)以上の期間にわたるスパンに制限されます。\n\nスパンのスタックトレース収集を完全に無効にするには、値を「0ms」に設定します。", + "xpack.apm.agentConfig.spanFramesMinDuration.label": "スパンフレーム最小期間", + "xpack.apm.agentConfig.stackTraceLimit.description": "0 に設定するとスタックトレース収集が無効になります。収集するフレームの最大数として正の整数値が使用されます。-1 に設定すると、すべてのフレームが収集されます。", + "xpack.apm.agentConfig.stackTraceLimit.label": "スタックトレース制限", + "xpack.apm.agentConfig.stressMonitorCpuDurationThreshold.description": "システムに現在ストレスがかかっているか、それとも以前に検出したストレスが緩和されたかを判断するために必要な最小時間。この時期のすべての測定は、関連しきい値と比較してストレス状態の変化を検出できるように一貫性が必要です。「1m」以上にする必要があります。", + "xpack.apm.agentConfig.stressMonitorCpuDurationThreshold.label": "ストレス監視 CPU 期間しきい値", + "xpack.apm.agentConfig.stressMonitorGcReliefThreshold.description": "ヒープにストレスがかからない時期を特定するためにGC監視で使用するしきい値。「stress_monitor_gc_stress_threshold」を超えた場合、エージェントはそれをヒープストレス状態と見なします。ストレス状態が収まったことを確認するには、すべてのヒーププールで占有メモリの割合がこのしきい値よりも低いことを確認します。GC監視は、直近のGCの後で測定したメモリ消費のみに依存します。", + "xpack.apm.agentConfig.stressMonitorGcReliefThreshold.label": "ストレス監視システム GC 緩和しきい値", + "xpack.apm.agentConfig.stressMonitorGcStressThreshold.description": "ヒープストレスを特定するためにGC監視で使用するしきい値。すべてのヒーププールに同じしきい値が使用され、いずれかの使用率がその値を超える場合、エージェントはそれをヒープストレスと見なします。GC監視は、直近のGCの後で測定したメモリ消費のみに依存します。", + "xpack.apm.agentConfig.stressMonitorGcStressThreshold.label": "ストレス監視システム GC ストレスしきい値", + "xpack.apm.agentConfig.stressMonitorSystemCpuReliefThreshold.description": "システムにCPUストレスがかかっていないことを判断するためにシステムCPU監視で使用するしきい値。監視機能でCPUストレスを検出した場合にCPUストレスが緩和されたと判断するには、測定されたシステムCPUが「stress_monitor_cpu_duration_threshold」と同じ長さ以上の期間にわたってこのしきい値を下回る必要があります。", + "xpack.apm.agentConfig.stressMonitorSystemCpuReliefThreshold.label": "ストレス監視システム CPU 緩和しきい値", + "xpack.apm.agentConfig.stressMonitorSystemCpuStressThreshold.description": "システムCPU監視でシステムCPUストレスの検出に使用するしきい値。システムCPUが少なくとも「stress_monitor_cpu_duration_threshold」と同じ長さ以上の期間にわたってこのしきい値を超えると、監視機能はこれをストレス状態と見なします。", + "xpack.apm.agentConfig.stressMonitorSystemCpuStressThreshold.label": "ストレス監視システム CPU ストレスしきい値", + "xpack.apm.agentConfig.transactionIgnoreUrl.description": "特定の URL への要求が命令されないように制限するために使用します。この構成では、無視される URL パスのワイルドカードパターンのカンマ区切りのリストを使用できます。受信 HTTP 要求が検出されると、要求パスが、リストの各要素に対してテストされます。たとえば、このリストに「/home/index」を追加すると、一致して、「http://localhost/home/index」と「http://whatever.com/home/index?value1=123」から命令が削除されます。", + "xpack.apm.agentConfig.transactionIgnoreUrl.label": "URL に基づくトランザクションを無視", + "xpack.apm.agentConfig.transactionMaxSpans.description": "トランザクションごとに記録される範囲を制限します。", + "xpack.apm.agentConfig.transactionMaxSpans.label": "トランザクションの最大範囲", + "xpack.apm.agentConfig.transactionSampleRate.description": "デフォルトでは、エージェントはすべてのトランザクション(たとえば、サービスへのリクエストなど)をサンプリングします。オーバーヘッドやストレージ要件を減らすには、サンプルレートの値を0.0〜1.0に設定します。全体的な時間とサンプリングされないトランザクションの結果は記録されますが、コンテキスト情報、ラベル、スパンは記録されません。", + "xpack.apm.agentConfig.transactionSampleRate.label": "トランザクションのサンプルレート", + "xpack.apm.agentConfig.unsavedSetting.tooltip": "未保存", + "xpack.apm.agentMetrics.java.gcRate": "GC レート", + "xpack.apm.agentMetrics.java.gcRateChartTitle": "1 分ごとのガベージコレクション", + "xpack.apm.agentMetrics.java.gcTime": "GC 時間", + "xpack.apm.agentMetrics.java.gcTimeChartTitle": "1 分ごとのごみ収集の時間", + "xpack.apm.agentMetrics.java.heapMemoryChartTitle": "ヒープ領域", + "xpack.apm.agentMetrics.java.heapMemorySeriesCommitted": "平均実行割当", + "xpack.apm.agentMetrics.java.heapMemorySeriesMax": "平均制限", + "xpack.apm.agentMetrics.java.heapMemorySeriesUsed": "平均使用", + "xpack.apm.agentMetrics.java.nonHeapMemoryChartTitle": "ヒープ領域以外", + "xpack.apm.agentMetrics.java.nonHeapMemorySeriesCommitted": "平均実行割当", + "xpack.apm.agentMetrics.java.nonHeapMemorySeriesUsed": "平均使用", + "xpack.apm.agentMetrics.java.threadCount": "平均カウント", + "xpack.apm.agentMetrics.java.threadCountChartTitle": "スレッド数", + "xpack.apm.agentMetrics.java.threadCountMax": "最高カウント", + "xpack.apm.aggregatedTransactions.fallback.badge": "サンプリングされたトランザクションに基づく", + "xpack.apm.aggregatedTransactions.fallback.tooltip": "メトリックイベントが現在の時間範囲にないか、メトリックイベントドキュメントにないフィールドに基づいてフィルターが適用されたため、このページはトランザクションイベントデータを使用しています。", + "xpack.apm.alertAnnotationButtonAriaLabel": "アラート詳細を表示", + "xpack.apm.alertAnnotationCriticalTitle": "重大アラート", + "xpack.apm.alertAnnotationNoSeverityTitle": "アラート", + "xpack.apm.alertAnnotationTooltipExperimentalText": "実験的", + "xpack.apm.alertAnnotationTooltipMoreDetailsText": "ここをクリックして詳細を参照してください。", + "xpack.apm.alertAnnotationWarningTitle": "警告アラート", + "xpack.apm.alerting.fields.allOption": "すべて", + "xpack.apm.alerting.fields.environment": "環境", + "xpack.apm.alerting.fields.service": "サービス", + "xpack.apm.alerting.fields.type": "型", + "xpack.apm.alerts.action_variables.environment": "アラートが作成されるトランザクションタイプ", + "xpack.apm.alerts.action_variables.intervalSize": "アラート条件が満たされた期間の長さと単位", + "xpack.apm.alerts.action_variables.serviceName": "アラートが作成されるサービス", + "xpack.apm.alerts.action_variables.threshold": "この値を超えるすべてのトリガーによりアラートが実行されます", + "xpack.apm.alerts.action_variables.transactionType": "アラートが作成されるトランザクションタイプ", + "xpack.apm.alerts.action_variables.triggerValue": "しきい値に達し、アラートをトリガーした値", + "xpack.apm.alerts.anomalySeverity.criticalLabel": "致命的", + "xpack.apm.alerts.anomalySeverity.majorLabel": "メジャー", + "xpack.apm.alerts.anomalySeverity.minor": "マイナー", + "xpack.apm.alerts.anomalySeverity.scoreDetailsDescription": "スコア {value} {value, select, critical {} other {以上}}", + "xpack.apm.alerts.anomalySeverity.warningLabel": "警告", + "xpack.apm.alertTypes.errorCount.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- しきい値\\{\\{context.threshold\\}\\}エラー\n- トリガーされた値:過去\\{\\{context.interval\\}\\}に\\{\\{context.triggerValue\\}\\}件のエラー", + "xpack.apm.alertTypes.errorCount.description": "サービスのエラー数が定義されたしきい値を超過したときにアラートを発行します。", + "xpack.apm.alertTypes.errorCount.reason": "エラー数が{serviceName}の{threshold}を超えています(現在の値は{measured})", + "xpack.apm.alertTypes.transactionDuration.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- レイテンシしきい値:\\{\\{context.threshold\\}\\}ミリ秒\n- 観察されたレイテンシ:直前の\\{\\{context.interval\\}\\}に\\{\\{context.triggerValue\\}\\}", + "xpack.apm.alertTypes.transactionDuration.description": "サービスの特定のトランザクションタイプのレイテンシが定義されたしきい値を超えたときにアラートを発行します。", + "xpack.apm.alertTypes.transactionDuration.reason": "レイテンシが{serviceName}の{threshold}を超えています(現在の値は{measured})", + "xpack.apm.alertTypes.transactionDurationAnomaly.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- 重要度しきい値:\\{\\{context.threshold\\}\\}%\n- 重要度値:\\{\\{context.triggerValue\\}\\}\n", + "xpack.apm.alertTypes.transactionDurationAnomaly.description": "サービスのレイテンシが異常であるときにアラートを表示します。", + "xpack.apm.alertTypes.transactionDurationAnomaly.reason": "{serviceName}の{severityLevel}異常が検知されました(スコアは{measured})", + "xpack.apm.alertTypes.transactionErrorRate.defaultActionMessage": "次の条件のため、\\{\\{alertName\\}\\}アラートが実行されています。\n\n- サービス名:\\{\\{context.serviceName\\}\\}\n- タイプ:\\{\\{context.transactionType\\}\\}\n- 環境:\\{\\{context.environment\\}\\}\n- しきい値:\\{\\{context.threshold\\}\\}%\n- トリガーされた値:過去\\{\\{context.interval\\}\\}にエラーの\\{\\{context.triggerValue\\}\\}%", + "xpack.apm.alertTypes.transactionErrorRate.description": "サービスのトランザクションエラー率が定義されたしきい値を超過したときにアラートを発行します。", + "xpack.apm.alertTypes.transactionErrorRate.reason": "トランザクションエラー率が{serviceName}の{threshold}を超えています(現在の値は{measured})", + "xpack.apm.analyzeDataButton.label": "データを分析", + "xpack.apm.analyzeDataButton.tooltip": "実験 - データの分析では、任意のディメンションの結果データを選択してフィルタリングし、パフォーマンスの問題の原因または影響を調査することができます", + "xpack.apm.analyzeDataButtonLabel": "データを分析", + "xpack.apm.analyzeDataButtonLabel.message": "実験 - データの分析では、任意のディメンションの結果データを選択してフィルタリングし、パフォーマンスの問題の原因または影響を調査することができます。", + "xpack.apm.anomaly_detection.error.invalid_license": "異常検知を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。このライセンスがあれば、機械学習を活用して、サービスを監視できます。", + "xpack.apm.anomaly_detection.error.missing_read_privileges": "異常検知ジョブを表示するには、機械学習およびAPMの「読み取り」権限が必要です", + "xpack.apm.anomaly_detection.error.missing_write_privileges": "異常検知ジョブを作成するには、機械学習およびAPMの「書き込み」権限が必要です", + "xpack.apm.anomaly_detection.error.not_available": "機械学習を利用できません", + "xpack.apm.anomaly_detection.error.not_available_in_space": "選択したスペースでは、機械学習を利用できません", + "xpack.apm.anomalyDetection.createJobs.failed.text": "APMサービス環境用に[{environments}]1つ以上の異常検知ジョブを作成しているときに問題が発生しました。エラー:「{errorMessage}」", + "xpack.apm.anomalyDetection.createJobs.failed.title": "異常検知ジョブを作成できませんでした", + "xpack.apm.anomalyDetection.createJobs.succeeded.text": "APMサービス環境[{environments}]の異常検知ジョブが正常に作成されました。機械学習がトラフィック異常値の分析を開始するには、少し時間がかかります。", + "xpack.apm.anomalyDetection.createJobs.succeeded.title": "異常検知ジョブが作成されました", + "xpack.apm.anomalyDetectionSetup.linkLabel": "異常検知", + "xpack.apm.anomalyDetectionSetup.notEnabledForEnvironmentText": "「{currentEnvironment}」環境では、まだ異常検知が有効ではありません。クリックすると、セットアップを続行します。", + "xpack.apm.anomalyDetectionSetup.notEnabledText": "異常検知はまだ有効ではありません。クリックすると、セットアップを続行します。", + "xpack.apm.api.fleet.cloud_apm_package_policy.requiredRoleOnCloud": "スーパーユーザーロールが付与されたElastic Cloudユーザーのみが操作できます。", + "xpack.apm.api.fleet.fleetSecurityRequired": "FleetおよびSecurityプラグインが必要です", + "xpack.apm.apmDescription": "アプリケーション内から自動的に詳細なパフォーマンスメトリックやエラーを集めます。", + "xpack.apm.apmSchema.index": "APMサーバースキーマ - インデックス", + "xpack.apm.apmSettings.index": "APM 設定 - インデックス", + "xpack.apm.backendDetail.dependenciesTableColumnBackend": "サービス", + "xpack.apm.backendDetail.dependenciesTableTitle": "アップストリームサービス", + "xpack.apm.backendDetailFailedTransactionRateChartTitle": "失敗したトランザクション率", + "xpack.apm.backendDetailLatencyChartTitle": "レイテンシ", + "xpack.apm.backendDetailThroughputChartTitle": "スループット", + "xpack.apm.backendErrorRateChart.chartTitle": "失敗したトランザクション率", + "xpack.apm.backendErrorRateChart.previousPeriodLabel": "前の期間", + "xpack.apm.backendInventory.dependencyTableColumn": "依存関係", + "xpack.apm.backendLatencyChart.chartTitle": "レイテンシ", + "xpack.apm.backendLatencyChart.previousPeriodLabel": "前の期間", + "xpack.apm.backendThroughputChart.chartTitle": "スループット", + "xpack.apm.backendThroughputChart.previousPeriodLabel": "前の期間", + "xpack.apm.chart.annotation.version": "バージョン", + "xpack.apm.chart.cpuSeries.processAverageLabel": "プロセス平均", + "xpack.apm.chart.cpuSeries.processMaxLabel": "プロセス最大", + "xpack.apm.chart.cpuSeries.systemAverageLabel": "システム平均", + "xpack.apm.chart.cpuSeries.systemMaxLabel": "システム最大", + "xpack.apm.chart.error": "データの取得時にエラーが発生しました。再試行してください", + "xpack.apm.chart.memorySeries.systemAverageLabel": "平均", + "xpack.apm.chart.memorySeries.systemMaxLabel": "最高", + "xpack.apm.clearFilters": "フィルターを消去", + "xpack.apm.compositeSpanCallsLabel": "、{count}件の呼び出し、平均{duration}", + "xpack.apm.compositeSpanDurationLabel": "平均時間", + "xpack.apm.correlations.cancelButtonTitle": "キャンセル", + "xpack.apm.correlations.ccsWarningCalloutBody": "相関関係分析のデータを完全に取得できませんでした。この機能は{version}以降でのみサポートされています。", + "xpack.apm.correlations.ccsWarningCalloutTitle": "クラスター横断検索の互換性", + "xpack.apm.correlations.correlationsTable.errorMessage": "取得できませんでした", + "xpack.apm.correlations.correlationsTable.excludeDescription": "値を除外", + "xpack.apm.correlations.correlationsTable.excludeLabel": "除外", + "xpack.apm.correlations.correlationsTable.filterDescription": "値でフィルタリング", + "xpack.apm.correlations.correlationsTable.filterLabel": "フィルター", + "xpack.apm.correlations.correlationsTable.loadingText": "読み込み中", + "xpack.apm.correlations.correlationsTable.noDataText": "データなし", + "xpack.apm.correlations.failedTransactions.correlationsTable.failurePercentageDescription": "失敗したトランザクションでこの用語が表示される時間の割合。", + "xpack.apm.correlations.failedTransactions.correlationsTable.failurePercentageLabel": "失敗%", + "xpack.apm.correlations.failedTransactions.correlationsTable.fieldNameLabel": "フィールド名", + "xpack.apm.correlations.failedTransactions.correlationsTable.fieldValueLabel": "フィールド値", + "xpack.apm.correlations.failedTransactions.correlationsTable.impactLabel": "インパクト", + "xpack.apm.correlations.failedTransactions.correlationsTable.pValueDescription": "成功したトランザクションの普及率が与えられているときの、失敗したトランザクションのフィールド名と値について少なくともこの量を取得する確率。", + "xpack.apm.correlations.failedTransactions.correlationsTable.pValueLabel": "p値", + "xpack.apm.correlations.failedTransactions.correlationsTable.scoreLabel": "スコア", + "xpack.apm.correlations.failedTransactions.correlationsTable.successPercentageDescription": "成功したトランザクションでこの用語が表示される時間の割合。", + "xpack.apm.correlations.failedTransactions.correlationsTable.successPercentageLabel": "成功%", + "xpack.apm.correlations.failedTransactions.errorTitle": "失敗したトランザクションで相関関係の実行中にエラーが発生しました", + "xpack.apm.correlations.failedTransactions.helpPopover.basicExplanation": "相関関係では、トランザクションの失敗と成功を区別するうえで最も影響度が大きい属性を見つけることができます。{field}値が{value}のときには、トランザクションが失敗であると見なされます。", + "xpack.apm.correlations.failedTransactions.helpPopover.performanceExplanation": "この分析は多数の属性に対して統計検索を実行します。広い時間範囲やトランザクションスループットが高いサービスでは、時間がかかる場合があります。パフォーマンスを改善するには、時間範囲を絞り込みます。", + "xpack.apm.correlations.failedTransactions.helpPopover.tableExplanation": "表はスコア別に並べ替えられます。これは高、中、低影響度にマッピングされます。影響度が高い属性は、失敗したトランザクションの原因である可能性が高くなります。", + "xpack.apm.correlations.failedTransactions.helpPopover.title": "失敗したトランザクションの相関関係", + "xpack.apm.correlations.failedTransactions.highImpactText": "高", + "xpack.apm.correlations.failedTransactions.lowImpactText": "低", + "xpack.apm.correlations.failedTransactions.mediumImpactText": "中", + "xpack.apm.correlations.failedTransactions.panelTitle": "失敗したトランザクションの遅延分布", + "xpack.apm.correlations.failedTransactions.tableTitle": "相関関係", + "xpack.apm.correlations.fieldContextPopover.addFilterAriaLabel": "{fieldName}のフィルター:\"{value}\"", + "xpack.apm.correlations.fieldContextPopover.calculatedFromSampleDescription": "{sampleSize}ドキュメントのサンプルから計算済み", + "xpack.apm.correlations.fieldContextPopover.descriptionTooltipContent": "上位10フィールド値を表示", + "xpack.apm.correlations.fieldContextPopover.fieldTopValuesLabel": "上位10の値", + "xpack.apm.correlations.fieldContextPopover.removeFilterAriaLabel": "{fieldName}の除外:\"{value}\"", + "xpack.apm.correlations.fieldContextPopover.topFieldValuesAriaLabel": "上位10フィールド値を表示", + "xpack.apm.correlations.latencyCorrelations.advancedStatisticsLabel": "詳細統計情報", + "xpack.apm.correlations.latencyCorrelations.advancedStatisticsTooltipContent": "相関関係結果の詳細統計情報を有効にします。", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.actionsLabel": "フィルター", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.correlationColumnDescription": "属性の相関関係スコア[0-1]。スコアが大きいほど、属性の遅延が大きくなります。", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.correlationLabel": "相関関係", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.excludeDescription": "値を除外", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.excludeLabel": "除外", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.fieldNameLabel": "フィールド名", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.fieldValueLabel": "フィールド値", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.filterDescription": "値でフィルタリング", + "xpack.apm.correlations.latencyCorrelations.correlationsTable.filterLabel": "フィルター", + "xpack.apm.correlations.latencyCorrelations.errorTitle": "相関関係の取得中にエラーが発生しました", + "xpack.apm.correlations.latencyCorrelations.panelTitle": "レイテンシ分布", + "xpack.apm.correlations.latencyCorrelations.tableTitle": "相関関係", + "xpack.apm.correlations.latencyPopoverBasicExplanation": "相関関係により、トランザクション応答時間の増加や遅延の原因となっている属性を検出できます。", + "xpack.apm.correlations.latencyPopoverChartExplanation": "遅延分布グラフは、トランザクショングループのトランザクションの全体的な遅延を可視化します。表の属性にカーソルを置くと、遅延の分布がグラフに追加されます。", + "xpack.apm.correlations.latencyPopoverFilterExplanation": "フィルターを追加または削除して、APMアプリでクエリに影響を及ぼすこともできます。", + "xpack.apm.correlations.latencyPopoverPerformanceExplanation": "この分析は多数の属性に対して統計検索を実行します。広い時間範囲やトランザクションスループットが高いサービスでは、時間がかかる場合があります。パフォーマンスを改善するには、時間範囲を絞り込みます。", + "xpack.apm.correlations.latencyPopoverTableExplanation": "この表は0~1の相関係数で並べ替えられます。相関値が高い属性は、遅延が長いトランザクションの原因である可能性が高くなります。", + "xpack.apm.correlations.latencyPopoverTitle": "遅延の相関関係", + "xpack.apm.correlations.noCorrelationsTextLine1": "重要な影響がある場合にのみ、相関関係が特定されます。", + "xpack.apm.correlations.noCorrelationsTextLine2": "別の時間範囲を選択するか、追加されたフィルターを削除してみてください。", + "xpack.apm.correlations.noCorrelationsTitle": "有意な相関関係がありません", + "xpack.apm.correlations.progressAriaLabel": "進捗", + "xpack.apm.correlations.progressTitle": "進捗状況: {progress}%", + "xpack.apm.correlations.refreshButtonTitle": "更新", + "xpack.apm.csm.breakdownFilter.browser": "ブラウザー", + "xpack.apm.csm.breakdownFilter.device": "デバイス", + "xpack.apm.csm.breakdownFilter.location": "場所", + "xpack.apm.csm.breakDownFilter.noBreakdown": "内訳なし", + "xpack.apm.csm.breakdownFilter.os": "OS", + "xpack.apm.csm.pageViews.analyze": "分析", + "xpack.apm.customLink.buttom.create": "カスタムリンクを作成", + "xpack.apm.customLink.buttom.create.title": "作成", + "xpack.apm.customLink.buttom.manage": "カスタムリンクを管理", + "xpack.apm.customLink.empty": "カスタムリンクが見つかりません。独自のカスタムリンク、たとえば特定のダッシュボードまたは外部リンクへのリンクをセットアップします。", + "xpack.apm.dependencies.kueryBarPlaceholder": "依存関係メトリックを検索(例:span.destination.service.resource:elasticsearch)", + "xpack.apm.dependenciesTable.columnErrorRate": "失敗したトランザクション率", + "xpack.apm.dependenciesTable.columnImpact": "インパクト", + "xpack.apm.dependenciesTable.columnLatency": "レイテンシ(平均)", + "xpack.apm.dependenciesTable.columnThroughput": "スループット", + "xpack.apm.dependenciesTable.notFoundLabel": "依存関係が見つかりません", + "xpack.apm.dependenciesTable.serviceMapLinkText": "サービスマップを表示", + "xpack.apm.deprecations.legacyModeTitle": "APMサーバーはレガシーモードで実行されています", + "xpack.apm.deprecations.message": "APMサーバーバイナリの直接実行はレガシーオプションと見なされ、7.16以降で廃止される予定です。Elasticエージェントで管理されたAPMサーバーに切り替えてください。詳細はドキュメンテーションをご覧ください。", + "xpack.apm.deprecations.steps.apm": "Observability/APMに移動", + "xpack.apm.deprecations.steps.schema": "[スキーマ]タブを選択します", + "xpack.apm.deprecations.steps.settings": "[設定]をクリックします", + "xpack.apm.deprecations.steps.switch": "[データストリームに切り替える]をクリックします。手順が案内されます。", + "xpack.apm.emptyMessage.noDataFoundDescription": "別の時間範囲を試すか検索フィルターをリセットしてください。", + "xpack.apm.emptyMessage.noDataFoundLabel": "データが見つかりません。", + "xpack.apm.emptyState.loadingMessage": "読み込み中…", + "xpack.apm.environmentsSelectCustomOptionText": "新しい環境として\\{searchValue\\}を追加", + "xpack.apm.environmentsSelectPlaceholder": "環境を選択", + "xpack.apm.error.prompt.body": "詳細はブラウザの開発者コンソールをご確認ください。", + "xpack.apm.error.prompt.title": "申し訳ございませんが、エラーが発生しました :(", + "xpack.apm.errorCountAlert.name": "エラー数しきい値", + "xpack.apm.errorCountAlertTrigger.errors": " エラー", + "xpack.apm.errorGroup.chart.ocurrences": "発生", + "xpack.apm.errorGroup.chart.ocurrences.previousPeriodLabel": "前の期間", + "xpack.apm.errorGroupDetails.culpritLabel": "原因", + "xpack.apm.errorGroupDetails.errorGroupTitle": "エラーグループ {errorGroupId}", + "xpack.apm.errorGroupDetails.errorOccurrenceTitle": "エラーのオカレンス", + "xpack.apm.errorGroupDetails.exceptionMessageLabel": "例外メッセージ", + "xpack.apm.errorGroupDetails.logMessageLabel": "ログメッセージ", + "xpack.apm.errorGroupDetails.occurrencesChartLabel": "オカレンス", + "xpack.apm.errorGroupDetails.relatedTransactionSample": "関連トランザクションサンプル", + "xpack.apm.errorGroupDetails.unhandledLabel": "未対応", + "xpack.apm.errorRate": "失敗したトランザクション率", + "xpack.apm.errorRate.chart.errorRate": "失敗したトランザクション率(平均)", + "xpack.apm.errorRate.chart.errorRate.previousPeriodLabel": "前の期間", + "xpack.apm.errorsTable.errorMessageAndCulpritColumnLabel": "エラーメッセージと原因", + "xpack.apm.errorsTable.groupIdColumnDescription": "スタックトレースのハッシュ。動的パラメータのため、エラーメッセージが異なる場合でも、類似したエラーをグループ化します。", + "xpack.apm.errorsTable.groupIdColumnLabel": "グループ ID", + "xpack.apm.errorsTable.latestOccurrenceColumnLabel": "最近のオカレンス", + "xpack.apm.errorsTable.noErrorsLabel": "エラーが見つかりません", + "xpack.apm.errorsTable.occurrencesColumnLabel": "オカレンス", + "xpack.apm.errorsTable.typeColumnLabel": "型", + "xpack.apm.errorsTable.unhandledLabel": "未対応", + "xpack.apm.exactTransactionRateLabel": "{value} tpm", + "xpack.apm.failedTransactionsCorrelations.licenseCheckText": "失敗したトランザクションの相関関係機能を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。このライセンスがあると、失敗したトランザクションの原因となっている属性を検出できます。", + "xpack.apm.failure_badge.tooltip": "event.outcome = 失敗", + "xpack.apm.featureRegistry.apmFeatureName": "APMおよびユーザーエクスペリエンス", + "xpack.apm.feedbackMenu.appName": "APM", + "xpack.apm.fetcher.error.status": "エラー", + "xpack.apm.fetcher.error.title": "リソースの取得中にエラーが発生しました", + "xpack.apm.fetcher.error.url": "URL", + "xpack.apm.filter.environment.allLabel": "すべて", + "xpack.apm.filter.environment.label": "環境", + "xpack.apm.filter.environment.notDefinedLabel": "未定義", + "xpack.apm.filter.environment.selectEnvironmentLabel": "環境を選択", + "xpack.apm.fleet_integration.settings.advancedOptionsLavel": "高度なオプション", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousAllowAgentHelpText": "匿名アクセスの許可されたエージェント名。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousAllowAgentLabel": "許可されたエージェント", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousAllowServiceHelpText": "匿名アクセスの許可されたサービス名。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousAllowServiceLabel": "許可されたサービス", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousEnabledDescription": "指定したエージェントまたはサービスの匿名アクセスのみを許可します。主な目的は、Real User Monitoringなどの信頼できないエージェントの制限付きアクセスを許可することです。匿名認証が有効になると、許可されたエージェントと一致するエージェントと、許可されたサービス構成と一致するサービスのみが許可されます。デフォルト値の詳細については、以下を参照してください。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousEnabledHelpText": "APMエージェントを選択するには、APMサーバーへの匿名アクセスを有効にします。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousEnabledTitle": "匿名エージェントアクセス", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousRateLimitEventLimitHelpText": "1秒間のクライアントIPごとのイベントの最大数。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousRateLimitEventLimitLabel": "イベントレート制限(イベント制限)", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousRateLimitIpLimitHelpText": "固有のレート制限が維持される一意のクライアントIPの数。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousRateLimitIpLimitLabel": "レート制限(IP制限)", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyAuthenticationHelpText": "APMサーバーとAPMエージェントの間のAPIキー認証を有効にします。", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyAuthenticationPlaceholder": "エージェント認証のAPIキー", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyLimitDescription": "APMエージェントとサーバーの間の認証で使用される、1分間あたりの固有のAPIキーの数を制限します。", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyLimitHelpText": "セキュリティポリシー遵守目的で使用できます。", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyLimitLabel": "キー数", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyLimitTitle": "エージェント認証のAPIキーの最大数", + "xpack.apm.fleet_integration.settings.agentAuthorization.secretTokenLabel": "シークレットトークン", + "xpack.apm.fleet_integration.settings.agentAuthorization.settings.title": "エージェント認可", + "xpack.apm.fleet_integration.settings.apm.capturePersonalDataDescription": "IPやユーザーエージェントなどの個人データを取り込みます", + "xpack.apm.fleet_integration.settings.apm.capturePersonalDataTitle": "個人データを取り込む", + "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentDescription": "サービス環境が定義されていないイベントで記録するデフォルトのサービス環境。", + "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentLabel": "デフォルトのサービス環境", + "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentTitle": "サービス構成", + "xpack.apm.fleet_integration.settings.apm.expvarEnabledDescription": "/debug/varsの下に公開されます", + "xpack.apm.fleet_integration.settings.apm.expvarEnabledTitle": "APM Server Golang expvarサポートを有効にする", + "xpack.apm.fleet_integration.settings.apm.hostDescription": "この統合の使用方法を識別できるように、名前と説明を選択してください。", + "xpack.apm.fleet_integration.settings.apm.hostLabel": "ホスト", + "xpack.apm.fleet_integration.settings.apm.hostTitle": "サーバー構成", + "xpack.apm.fleet_integration.settings.apm.idleTimeoutLabel": "基本接続が終了するまでのアイドル時間", + "xpack.apm.fleet_integration.settings.apm.maxConnectionsHelpText": "無制限は0", + "xpack.apm.fleet_integration.settings.apm.maxConnectionsLabel": "許可された同時接続数", + "xpack.apm.fleet_integration.settings.apm.maxEventBytesLabel": "イベントごとの最大サイズ(バイト)", + "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesDescription": "リクエストヘッダーサイズおよびタイミング構成の上限を設定します。", + "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesLabel": "リクエストヘッダーの最大サイズ(バイト)", + "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesTitle": "上限", + "xpack.apm.fleet_integration.settings.apm.readTimeoutLabel": "リクエスト全体を読み取る最大期間", + "xpack.apm.fleet_integration.settings.apm.responseHeadersDescription": "リクエストヘッダーサイズおよびタイミング構成の上限を設定します。", + "xpack.apm.fleet_integration.settings.apm.responseHeadersHelpText": "セキュリティポリシー遵守目的で使用できます。", + "xpack.apm.fleet_integration.settings.apm.responseHeadersLabel": "HTTP応答に追加されたカスタムHTTPヘッダー", + "xpack.apm.fleet_integration.settings.apm.responseHeadersTitle": "カスタムヘッダー", + "xpack.apm.fleet_integration.settings.apm.settings.subtitle": "APM統合の設定", + "xpack.apm.fleet_integration.settings.apm.settings.title": "一般", + "xpack.apm.fleet_integration.settings.apm.shutdownTimeoutLabel": "シャットダウン時にリリースを解放する前の最大時間", + "xpack.apm.fleet_integration.settings.apm.urlLabel": "URL", + "xpack.apm.fleet_integration.settings.apm.writeTimeoutLabel": "応答を書き込む最大時間", + "xpack.apm.fleet_integration.settings.apmAgent.description": "{title}アプリケーションの計測を構成します。", + "xpack.apm.fleet_integration.settings.disabledLabel": "無効", + "xpack.apm.fleet_integration.settings.enabledLabel": "有効", + "xpack.apm.fleet_integration.settings.optionalLabel": "オプション", + "xpack.apm.fleet_integration.settings.requiredFieldLabel": "必須フィールド", + "xpack.apm.fleet_integration.settings.requiredLabel": "必須", + "xpack.apm.fleet_integration.settings.rum.enableRumDescription": "リアルユーザー監視(RUM)を有効にする", + "xpack.apm.fleet_integration.settings.rum.enableRumTitle": "RUMを有効にする", + "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderDescription": "エージェントの認証を構成", + "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderHelpText": "「Content-Type」、「Content-Encoding」、「Accept」のほかにAccess-Control-Allow-Headersがサポートされています。", + "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderLabel": "Access-Control-Allow-Headers", + "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderTitle": "カスタムヘッダー", + "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsHelpText": "ユーザーエージェントが送信する許可された元のヘッダー。", + "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsLabel": "元の元のヘッダー", + "xpack.apm.fleet_integration.settings.rum.rumExcludeFromGroupingHelpText": "スタックトレースフレームの「file_name」をこの正規表現と照合することで、エラーグループ計算からスタックトレースフレームを除外します。", + "xpack.apm.fleet_integration.settings.rum.rumExcludeFromGroupingLabel": "グループから除外", + "xpack.apm.fleet_integration.settings.rum.rumLibraryPatternHelpText": "スタックトレースフレームのfile_nameおよびabs_pathをこのregexpと照合し、ライブラリフレームを特定します。", + "xpack.apm.fleet_integration.settings.rum.rumLibraryPatternLabel": "ライブラリフレームパターン", + "xpack.apm.fleet_integration.settings.rum.rumResponseHeadersHelpText": "セキュリティポリシー遵守などの目的でRUM応答に追加されます。", + "xpack.apm.fleet_integration.settings.rum.rumResponseHeadersLabel": "カスタムHTTP応答ヘッダー", + "xpack.apm.fleet_integration.settings.rum.settings.subtitle": "RUM JSエージェントの構成を管理します。", + "xpack.apm.fleet_integration.settings.rum.settings.title": "リアルユーザー監視", + "xpack.apm.fleet_integration.settings.selectOrCreateOptions": "オプションを選択または作成", + "xpack.apm.fleet_integration.settings.tls.settings.subtitle": "TLS構成の設定。", + "xpack.apm.fleet_integration.settings.tls.settings.title": "TLS設定", + "xpack.apm.fleet_integration.settings.tls.tlsCertificateLabel": "サーバー証明書へのファイルパス。", + "xpack.apm.fleet_integration.settings.tls.tlsCertificateTitle": "TLS証明書", + "xpack.apm.fleet_integration.settings.tls.tlsCipherSuitesHelpText": "TLS 1.3では構成できません。", + "xpack.apm.fleet_integration.settings.tls.tlsCipherSuitesLabel": "TLS接続の暗号化スイート", + "xpack.apm.fleet_integration.settings.tls.tlsCurveTypesLabel": "ECDHEに基づく暗号化スイートの曲線タイプ", + "xpack.apm.fleet_integration.settings.tls.tlsEnabledTitle": "TLS を有効にする", + "xpack.apm.fleet_integration.settings.tls.tlsKeyLabel": "サーバー証明書鍵へのファイルパス", + "xpack.apm.fleet_integration.settings.tls.tlsSupportedProtocolsLabel": "サポートされているプロトコルバージョン", + "xpack.apm.fleetIntegration.assets.description": "APMでアプリケーショントレースとサービスマップを表示", + "xpack.apm.fleetIntegration.assets.name": "サービス", + "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentButtonText": "APMエージェントのインストール", + "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentDescription": "エージェントの起動後、ホストでAPMエージェントをインストールし、アプリケーションとサービスからデータを収集できます。", + "xpack.apm.fleetIntegration.enrollmentFlyout.installApmAgentTitle": "APMエージェントのインストール", + "xpack.apm.formatters.hoursTimeUnitLabel": "h", + "xpack.apm.formatters.microsTimeUnitLabel": "μs", + "xpack.apm.formatters.millisTimeUnitLabel": "ms", + "xpack.apm.formatters.minutesTimeUnitLabel": "分", + "xpack.apm.formatters.secondsTimeUnitLabel": "s", + "xpack.apm.header.badge.readOnly.text": "読み取り専用", + "xpack.apm.header.badge.readOnly.tooltip": "を保存できませんでした", + "xpack.apm.helpMenu.upgradeAssistantLink": "アップグレードアシスタント", + "xpack.apm.helpPopover.ariaLabel": "ヘルプ", + "xpack.apm.home.alertsMenu.alerts": "アラートとルール", + "xpack.apm.home.alertsMenu.createAnomalyAlert": "異常ルールを作成", + "xpack.apm.home.alertsMenu.createThresholdAlert": "しきい値ルールを作成", + "xpack.apm.home.alertsMenu.errorCount": "エラー数", + "xpack.apm.home.alertsMenu.transactionDuration": "レイテンシ", + "xpack.apm.home.alertsMenu.transactionErrorRate": "失敗したトランザクション率", + "xpack.apm.home.alertsMenu.viewActiveAlerts": "ルールの管理", + "xpack.apm.home.serviceLogsTabLabel": "ログ", + "xpack.apm.home.serviceMapTabLabel": "サービスマップ", + "xpack.apm.inspectButtonText": "検査", + "xpack.apm.instancesLatencyDistributionChartLegend": "インスタンス", + "xpack.apm.instancesLatencyDistributionChartLegend.previousPeriod": "前の期間", + "xpack.apm.instancesLatencyDistributionChartTitle": "インスタンスのレイテンシ分布", + "xpack.apm.instancesLatencyDistributionChartTooltipClickToFilterDescription": "クリックすると、インスタンスでフィルタリングします", + "xpack.apm.instancesLatencyDistributionChartTooltipLatencyLabel": "レイテンシ", + "xpack.apm.instancesLatencyDistributionChartTooltipThroughputLabel": "スループット", + "xpack.apm.invalidLicense.licenseManagementLink": "ライセンスを更新", + "xpack.apm.invalidLicense.message": "現在ご使用のライセンスが期限切れか有効でなくなったため、APM UI を利用できません。", + "xpack.apm.invalidLicense.title": "無効なライセンス", + "xpack.apm.jvmsTable.cpuColumnLabel": "CPU 平均", + "xpack.apm.jvmsTable.explainServiceNodeNameMissing": "これらのメトリックが所属する JVM を特定できませんでした。7.5 よりも古い APM Server を実行していることが原因である可能性が高いです。この問題は APM Server 7.5 以降にアップグレードすることで解決されます。", + "xpack.apm.jvmsTable.heapMemoryColumnLabel": "ヒープ領域の平均", + "xpack.apm.jvmsTable.hostName": "ホスト名", + "xpack.apm.jvmsTable.nameColumnLabel": "名前", + "xpack.apm.jvmsTable.nameExplanation": "JVM 名はデフォルトでコンピューター ID(該当する場合)またはホスト名ですが、エージェントの「'service_node_name」で手動で構成することもできます。", + "xpack.apm.jvmsTable.noJvmsLabel": "JVM が見つかりませんでした", + "xpack.apm.jvmsTable.nonHeapMemoryColumnLabel": "非ヒープ領域の平均", + "xpack.apm.jvmsTable.threadCountColumnLabel": "最大スレッド数", + "xpack.apm.keyValueFilterList.actionFilterLabel": "値でフィルタリング", + "xpack.apm.latencyCorrelations.licenseCheckText": "遅延の相関関係を使用するには、Elastic Platinumライセンスのサブスクリプションが必要です。使用すると、パフォーマンスの低下に関連しているフィールドを検出できます。", + "xpack.apm.license.betaBadge": "ベータ", + "xpack.apm.license.betaTooltipMessage": "現在、この機能はベータです。不具合を見つけた場合やご意見がある場合、サポートに問い合わせるか、またはディスカッションフォーラムにご報告ください。", + "xpack.apm.license.button": "トライアルを開始", + "xpack.apm.license.title": "無料の 30 日トライアルを開始", + "xpack.apm.localFilters.titles.browser": "ブラウザー", + "xpack.apm.localFilters.titles.device": "デバイス", + "xpack.apm.localFilters.titles.location": "場所", + "xpack.apm.localFilters.titles.os": "OS", + "xpack.apm.localFilters.titles.serviceName": "サービス名", + "xpack.apm.localFilters.titles.transactionUrl": "URL", + "xpack.apm.localFiltersTitle": "フィルター", + "xpack.apm.managedTable.errorMessage": "取得できませんでした", + "xpack.apm.managedTable.loadingDescription": "読み込み中…", + "xpack.apm.metrics.transactionChart.machineLearningLabel": "機械学習:", + "xpack.apm.metrics.transactionChart.machineLearningTooltip": "ストリームには、平均レイテンシの想定境界が表示されます。赤色の垂直の注釈は、異常スコアが75以上の異常値を示します。", + "xpack.apm.metrics.transactionChart.machineLearningTooltip.withKuery": "フィルタリングで検索バーを使用しているときには、機械学習結果が表示されません", + "xpack.apm.metrics.transactionChart.viewJob": "ジョブを表示", + "xpack.apm.navigation.dependenciesTitle": "依存関係", + "xpack.apm.navigation.serviceMapTitle": "サービスマップ", + "xpack.apm.navigation.servicesTitle": "サービス", + "xpack.apm.navigation.tracesTitle": "トレース", + "xpack.apm.noDataConfig.solutionName": "オブザーバビリティ", + "xpack.apm.notAvailableLabel": "N/A", + "xpack.apm.profiling.collapseSimilarFrames": "類似した項目を折りたたむ", + "xpack.apm.profiling.highlightFrames": "検索", + "xpack.apm.profiling.table.name": "名前", + "xpack.apm.profiling.table.value": "自己", + "xpack.apm.propertiesTable.agentFeature.noDataAvailableLabel": "利用可能なデータがありません", + "xpack.apm.propertiesTable.agentFeature.noResultFound": "\"{value}\"に対する結果が見つかりませんでした。", + "xpack.apm.propertiesTable.tabs.exceptionStacktraceLabel": "例外のスタックトレース", + "xpack.apm.propertiesTable.tabs.logs.serviceName": "サービス名", + "xpack.apm.propertiesTable.tabs.logsLabel": "ログ", + "xpack.apm.propertiesTable.tabs.logStacktraceLabel": "スタックトレース", + "xpack.apm.propertiesTable.tabs.metadataLabel": "メタデータ", + "xpack.apm.propertiesTable.tabs.timelineLabel": "Timeline", + "xpack.apm.rum.coreVitals.dataUndefined": "N/A", + "xpack.apm.rum.coreVitals.fcp": "初回コンテンツの描画", + "xpack.apm.rum.coreVitals.fcpTooltip": "初回コンテンツの描画(FCP)は初期のレンダリングに集中し、ページの読み込みが開始してから、ページのコンテンツのいずれかの部分が画面に表示されるときまでの時間を測定します。", + "xpack.apm.rum.coreVitals.tbt": "合計ブロック時間", + "xpack.apm.rum.coreVitals.tbtTooltip": "合計ブロック時間(TBT)は、初回コンテンツの描画からトランザクションが完了したときまでに発生する、各長いタスクのブロック時間(50 ミリ秒超)の合計です。", + "xpack.apm.rum.dashboard.backend": "バックエンド", + "xpack.apm.rum.dashboard.dataMissing": "N/A", + "xpack.apm.rum.dashboard.frontend": "フロントエンド", + "xpack.apm.rum.dashboard.impactfulMetrics.highTrafficPages": "高トラフィックページ", + "xpack.apm.rum.dashboard.impactfulMetrics.jsErrors": "JavaScript エラー", + "xpack.apm.rum.dashboard.overall.label": "全体", + "xpack.apm.rum.dashboard.pageLoad.label": "ページの読み込み", + "xpack.apm.rum.dashboard.pageLoadDistribution.label": "ページ読み込み分布", + "xpack.apm.rum.dashboard.pageLoadDuration.label": "ページ読み込み時間", + "xpack.apm.rum.dashboard.pageLoadTime.label": "ページ読み込み時間(秒)", + "xpack.apm.rum.dashboard.pageLoadTimes.label": "ページ読み込み時間", + "xpack.apm.rum.dashboard.pagesLoaded.label": "ページが読み込まれました", + "xpack.apm.rum.dashboard.pageViews": "合計ページビュー", + "xpack.apm.rum.dashboard.resetZoom.label": "ズームをリセット", + "xpack.apm.rum.dashboard.tooltips.backEnd": "バックエンド時間は、最初の 1 バイトを受信するまでの時間(TTFB)です。これは、要求が実行された後、最初の応答パケットが受信された時点です。", + "xpack.apm.rum.dashboard.tooltips.frontEnd": "フロントエンド時間は、合計ページ読み込み時間からバックエンド時間を減算した時間です。", + "xpack.apm.rum.dashboard.tooltips.totalPageLoad": "合計はすべてのページ読み込み時間です。", + "xpack.apm.rum.dashboard.totalPageLoad": "合計", + "xpack.apm.rum.filterGroup.breakdown": "内訳", + "xpack.apm.rum.filterGroup.coreWebVitals": "コアWebバイタル", + "xpack.apm.rum.filterGroup.seconds": "秒", + "xpack.apm.rum.filterGroup.selectBreakdown": "内訳を選択", + "xpack.apm.rum.filters.filterByUrl": "IDでフィルタリング", + "xpack.apm.rum.filters.searchResults": "{total}件の検索結果", + "xpack.apm.rum.filters.select": "選択してください", + "xpack.apm.rum.filters.topPages": "上位のページ", + "xpack.apm.rum.filters.url": "Url", + "xpack.apm.rum.filters.url.loadingResults": "結果を読み込み中", + "xpack.apm.rum.filters.url.noResults": "結果がありません", + "xpack.apm.rum.jsErrors.errorMessage": "エラーメッセージ", + "xpack.apm.rum.jsErrors.errorRate": "エラー率", + "xpack.apm.rum.jsErrors.impactedPageLoads": "影響を受けるページ読み込み数", + "xpack.apm.rum.jsErrors.totalErrors": "合計エラー数", + "xpack.apm.rum.jsErrorsTable.errorMessage": "取得できませんでした", + "xpack.apm.rum.uxMetrics.longestLongTasks": "最長タスク時間", + "xpack.apm.rum.uxMetrics.longestLongTasksTooltip": "最も長いタスクの時間。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", + "xpack.apm.rum.uxMetrics.noOfLongTasks": "時間がかかるタスク数", + "xpack.apm.rum.uxMetrics.noOfLongTasksTooltip": "長いタスクの数。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", + "xpack.apm.rum.uxMetrics.sumLongTasks": "時間がかかるタスクの合計時間", + "xpack.apm.rum.uxMetrics.sumLongTasksTooltip": "長いタスクの合計時間。長いタスクは、UI スレッドを長時間(50 ミリ秒以上)独占し、他の重要なタスク(フレームレートや入力レイテンシ)の実行を妨害するユーザーアクティビティまたはブラウザータスクとして定義されます。", + "xpack.apm.rum.visitorBreakdown": "アクセスユーザー内訳", + "xpack.apm.rum.visitorBreakdown.browser": "ブラウザー", + "xpack.apm.rum.visitorBreakdown.operatingSystem": "オペレーティングシステム", + "xpack.apm.rum.visitorBreakdownMap.avgPageLoadDuration": "平均ページ読み込み時間", + "xpack.apm.rum.visitorBreakdownMap.pageLoadDurationByRegion": "地域別ページ読み込み時間(平均)", + "xpack.apm.searchInput.filter": "フィルター...", + "xpack.apm.selectPlaceholder": "オプションを選択:", + "xpack.apm.serviceDependencies.breakdownChartTitle": "依存関係にかかった時間", + "xpack.apm.serviceDetails.dependenciesTabLabel": "依存関係", + "xpack.apm.serviceDetails.errorsTabLabel": "エラー", + "xpack.apm.serviceDetails.metrics.cpuUsageChartTitle": "CPU 使用状況", + "xpack.apm.serviceDetails.metrics.errorOccurrencesChart.title": "エラーのオカレンス", + "xpack.apm.serviceDetails.metrics.errorsList.title": "エラー", + "xpack.apm.serviceDetails.metrics.memoryUsageChartTitle": "システムメモリー使用状況", + "xpack.apm.serviceDetails.metricsTabLabel": "メトリック", + "xpack.apm.serviceDetails.nodesTabLabel": "JVM", + "xpack.apm.serviceDetails.overviewTabLabel": "概要", + "xpack.apm.serviceDetails.profilingTabExperimentalDescription": "プロファイリングは実験的機能であり、内部利用専用です。", + "xpack.apm.serviceDetails.profilingTabExperimentalLabel": "実験的", + "xpack.apm.serviceDetails.profilingTabLabel": "プロファイリング", + "xpack.apm.serviceDetails.transactionsTabLabel": "トランザクション", + "xpack.apm.serviceHealthStatus.critical": "重大", + "xpack.apm.serviceHealthStatus.healthy": "正常", + "xpack.apm.serviceHealthStatus.unknown": "不明", + "xpack.apm.serviceHealthStatus.warning": "警告", + "xpack.apm.serviceIcons.cloud": "クラウド", + "xpack.apm.serviceIcons.container": "コンテナー", + "xpack.apm.serviceIcons.service": "サービス", + "xpack.apm.serviceIcons.serviceDetails.cloud.availabilityZoneLabel": "{zones, plural, =other {可用性ゾーン}} ", + "xpack.apm.serviceIcons.serviceDetails.cloud.machineTypesLabel": "{machineTypes, plural, =other {コンピュータータイプ}} ", + "xpack.apm.serviceIcons.serviceDetails.cloud.projectIdLabel": "プロジェクト ID", + "xpack.apm.serviceIcons.serviceDetails.cloud.providerLabel": "クラウドプロバイダー", + "xpack.apm.serviceIcons.serviceDetails.container.containerizedLabel": "コンテナー化", + "xpack.apm.serviceIcons.serviceDetails.container.noLabel": "いいえ", + "xpack.apm.serviceIcons.serviceDetails.container.orchestrationLabel": "オーケストレーション", + "xpack.apm.serviceIcons.serviceDetails.container.osLabel": "OS", + "xpack.apm.serviceIcons.serviceDetails.container.totalNumberInstancesLabel": "インスタンスの合計数", + "xpack.apm.serviceIcons.serviceDetails.container.yesLabel": "はい", + "xpack.apm.serviceIcons.serviceDetails.service.agentLabel": "エージェント名・バージョン", + "xpack.apm.serviceIcons.serviceDetails.service.frameworkLabel": "フレームワーク名", + "xpack.apm.serviceIcons.serviceDetails.service.runtimeLabel": "ランタイム名・バージョン", + "xpack.apm.serviceIcons.serviceDetails.service.versionLabel": "サービスバージョン", + "xpack.apm.serviceInventory.mlNudgeMessageTitle": "異常検知を有効にして、正常性ステータスインジケーターをサービスに追加します", + "xpack.apm.serviceInventory.toastText": "現在 Elastic Stack 7.0+ を実行中で、以前のバージョン 6.x からの互換性のないデータを検知しました。このデータを APM で表示するには、移行が必要です。詳細 ", + "xpack.apm.serviceInventory.toastTitle": "選択された時間範囲内にレガシーデータが検知されました。", + "xpack.apm.serviceInventory.upgradeAssistantLinkText": "アップグレードアシスタント", + "xpack.apm.serviceLogs.noInfrastructureMessage": "表示するログメッセージがありません。", + "xpack.apm.serviceMap.anomalyDetectionPopoverDisabled": "APM 設定で異常検知を有効にすると、サービス正常性インジケーターが表示されます。", + "xpack.apm.serviceMap.anomalyDetectionPopoverLink": "異常を表示", + "xpack.apm.serviceMap.anomalyDetectionPopoverNoData": "選択した時間範囲で、異常スコアを検出できませんでした。異常エクスプローラーで詳細を確認してください。", + "xpack.apm.serviceMap.anomalyDetectionPopoverScoreMetric": "スコア(最大)", + "xpack.apm.serviceMap.anomalyDetectionPopoverTitle": "異常検知", + "xpack.apm.serviceMap.anomalyDetectionPopoverTooltip": "サービス正常性インジケーターは、機械学習の異常検知に基づいています。", + "xpack.apm.serviceMap.avgCpuUsagePopoverStat": "CPU使用状況(平均)", + "xpack.apm.serviceMap.avgMemoryUsagePopoverStat": "メモリー使用状況(平均)", + "xpack.apm.serviceMap.avgReqPerMinutePopoverMetric": "スループット(平均)", + "xpack.apm.serviceMap.avgTransDurationPopoverStat": "レイテンシ(平均)", + "xpack.apm.serviceMap.center": "中央", + "xpack.apm.serviceMap.dependencyDetailsButtonText": "依存関係詳細", + "xpack.apm.serviceMap.download": "ダウンロード", + "xpack.apm.serviceMap.emptyBanner.docsLink": "詳細はドキュメントをご覧ください", + "xpack.apm.serviceMap.emptyBanner.message": "接続されているサービスや外部リクエストを検出できる場合、システムはそれらをマップします。最新版の APM エージェントが動作していることを確認してください。", + "xpack.apm.serviceMap.emptyBanner.title": "単一のサービスしかないようです。", + "xpack.apm.serviceMap.errorRatePopoverStat": "失敗したトランザクション率(平均)", + "xpack.apm.serviceMap.focusMapButtonText": "焦点マップ", + "xpack.apm.serviceMap.invalidLicenseMessage": "サービスマップを利用するには、Elastic Platinum ライセンスが必要です。これにより、APM データとともにアプリケーションスタックすべてを可視化することができるようになります。", + "xpack.apm.serviceMap.noServicesPromptDescription": "現在選択されている時間範囲と環境内では、マッピングするサービスが見つかりません。別の範囲を試すか、選択した環境を確認してください。サービスがない場合は、セットアップ手順に従って開始してください。", + "xpack.apm.serviceMap.noServicesPromptTitle": "サービスが利用できません", + "xpack.apm.serviceMap.popover.noDataText": "選択した環境のデータがありません。別の環境に切り替えてください。", + "xpack.apm.serviceMap.resourceCountLabel": "{count}個のリソース", + "xpack.apm.serviceMap.serviceDetailsButtonText": "サービス詳細", + "xpack.apm.serviceMap.subtypePopoverStat": "サブタイプ", + "xpack.apm.serviceMap.timeoutPrompt.docsLink": "APM 設定の詳細については、ドキュメントを参照してください", + "xpack.apm.serviceMap.timeoutPromptDescription": "サービスマップのデータの取得中にタイムアウトしました。時間範囲を狭めて範囲を制限するか、小さい値で構成設定「{configName}」を使用してください。", + "xpack.apm.serviceMap.timeoutPromptTitle": "サービスマップタイムアウト", + "xpack.apm.serviceMap.typePopoverStat": "型", + "xpack.apm.serviceMap.viewFullMap": "サービスの全体マップを表示", + "xpack.apm.serviceMap.zoomIn": "ズームイン", + "xpack.apm.serviceMap.zoomOut": "ズームアウト", + "xpack.apm.serviceNamesSelectCustomOptionText": "新しいサービス名として\\{searchValue\\}を追加", + "xpack.apm.serviceNamesSelectPlaceholder": "サービス名を選択", + "xpack.apm.serviceNodeMetrics.containerId": "コンテナー ID", + "xpack.apm.serviceNodeMetrics.host": "ホスト", + "xpack.apm.serviceNodeMetrics.serviceName": "サービス名", + "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningDocumentationLink": "APM Server のドキュメンテーション", + "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningText": "これらのメトリックが所属する JVM を特定できませんでした。7.5 よりも古い APM Server を実行していることが原因である可能性が高いです。この問題は APM Server 7.5 以降にアップグレードすることで解決されます。アップグレードに関する詳細は、{link} をご覧ください。代わりに Kibana クエリバーを使ってホスト名、コンテナー ID、またはその他フィールドでフィルタリングすることもできます。", + "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningTitle": "JVM を特定できませんでした", + "xpack.apm.serviceNodeNameMissing": "(空)", + "xpack.apm.serviceOveriew.errorsTableOccurrences": "{occurrencesCount} occ.", + "xpack.apm.serviceOverview.dependenciesTableColumn": "依存関係", + "xpack.apm.serviceOverview.dependenciesTableTabLink": "依存関係を表示", + "xpack.apm.serviceOverview.dependenciesTableTitle": "依存関係", + "xpack.apm.serviceOverview.errorsTable.errorMessage": "取得できませんでした", + "xpack.apm.serviceOverview.errorsTable.loading": "読み込み中...", + "xpack.apm.serviceOverview.errorsTable.noResults": "エラーが見つかりません", + "xpack.apm.serviceOverview.errorsTableColumnLastSeen": "前回の認識", + "xpack.apm.serviceOverview.errorsTableColumnName": "名前", + "xpack.apm.serviceOverview.errorsTableColumnOccurrences": "オカレンス", + "xpack.apm.serviceOverview.errorsTableLinkText": "エラーを表示", + "xpack.apm.serviceOverview.errorsTableTitle": "エラー", + "xpack.apm.serviceOverview.instancesTable.actionMenus.container.subtitle": "このコンテナーのログとインデックスを表示し、さらに詳細を確認できます。", + "xpack.apm.serviceOverview.instancesTable.actionMenus.container.title": "コンテナーの詳細", + "xpack.apm.serviceOverview.instancesTable.actionMenus.containerLogs": "コンテナーログ", + "xpack.apm.serviceOverview.instancesTable.actionMenus.containerMetrics": "コンテナーメトリック", + "xpack.apm.serviceOverview.instancesTable.actionMenus.filterByInstance": "インスタンスで概要をフィルタリング", + "xpack.apm.serviceOverview.instancesTable.actionMenus.metrics": "メトリック", + "xpack.apm.serviceOverview.instancesTable.actionMenus.pod.subtitle": "このポッドのログとメトリックを表示し、さらに詳細を確認できます。", + "xpack.apm.serviceOverview.instancesTable.actionMenus.pod.title": "ポッドの詳細", + "xpack.apm.serviceOverview.instancesTable.actionMenus.podLogs": "ポッドログ", + "xpack.apm.serviceOverview.instancesTable.actionMenus.podMetrics": "ポッドメトリック", + "xpack.apm.serviceOverview.instancesTable.errorMessage": "取得できませんでした", + "xpack.apm.serviceOverview.instancesTableColumnCpuUsage": "CPU使用状況(平均)", + "xpack.apm.serviceOverview.instancesTableColumnErrorRate": "失敗したトランザクション率", + "xpack.apm.serviceOverview.instancesTableColumnMemoryUsage": "メモリー使用状況(平均)", + "xpack.apm.serviceOverview.instancesTableColumnNodeName": "ノード名", + "xpack.apm.serviceOverview.instancesTableColumnThroughput": "スループット", + "xpack.apm.serviceOverview.instancesTableTitle": "インスタンス", + "xpack.apm.serviceOverview.instanceTable.details.cloudTitle": "クラウド", + "xpack.apm.serviceOverview.instanceTable.details.containerTitle": "コンテナー", + "xpack.apm.serviceOverview.instanceTable.details.serviceTitle": "サービス", + "xpack.apm.serviceOverview.latencyChartTitle": "レイテンシ", + "xpack.apm.serviceOverview.latencyChartTitle.prepend": "メトリック", + "xpack.apm.serviceOverview.latencyChartTitle.previousPeriodLabel": "前の期間", + "xpack.apm.serviceOverview.latencyColumnAvgLabel": "レイテンシ(平均)", + "xpack.apm.serviceOverview.latencyColumnDefaultLabel": "レイテンシ", + "xpack.apm.serviceOverview.latencyColumnP95Label": "レイテンシ(95 番目)", + "xpack.apm.serviceOverview.latencyColumnP99Label": "レイテンシ(99 番目)", + "xpack.apm.serviceOverview.loadingText": "読み込み中…", + "xpack.apm.serviceOverview.mlNudgeMessage.content": "APM の異常検知統合で、異常なトランザクションを特定し、アップストリームおよびダウンストリームサービスの正常性を確認します。わずか数分で開始できます。", + "xpack.apm.serviceOverview.mlNudgeMessage.dismissButton": "閉じる", + "xpack.apm.serviceOverview.mlNudgeMessage.learnMoreButton": "使ってみる", + "xpack.apm.serviceOverview.noResultsText": "インスタンスが見つかりません", + "xpack.apm.serviceOverview.throughtputChart.previousPeriodLabel": "前の期間", + "xpack.apm.serviceOverview.throughtputChartTitle": "スループット", + "xpack.apm.serviceOverview.tpmHelp": "スループットは1分あたりのトランザクション数(tpm)で測定されます", + "xpack.apm.serviceOverview.transactionsTableColumnErrorRate": "失敗したトランザクション率", + "xpack.apm.serviceOverview.transactionsTableColumnImpact": "インパクト", + "xpack.apm.serviceOverview.transactionsTableColumnName": "名前", + "xpack.apm.serviceOverview.transactionsTableColumnThroughput": "スループット", + "xpack.apm.serviceProfiling.valueTypeLabel.allocObjects": "Alloc. objects", + "xpack.apm.serviceProfiling.valueTypeLabel.allocSpace": "Alloc. space", + "xpack.apm.serviceProfiling.valueTypeLabel.cpuTime": "On-CPU", + "xpack.apm.serviceProfiling.valueTypeLabel.inuseObjects": "使用中のオブジェクト", + "xpack.apm.serviceProfiling.valueTypeLabel.inuseSpace": "使用中のスペース", + "xpack.apm.serviceProfiling.valueTypeLabel.samples": "サンプル", + "xpack.apm.serviceProfiling.valueTypeLabel.unknown": "その他", + "xpack.apm.serviceProfiling.valueTypeLabel.wallTime": "Wall", + "xpack.apm.servicesTable.environmentColumnLabel": "環境", + "xpack.apm.servicesTable.healthColumnLabel": "ヘルス", + "xpack.apm.servicesTable.latencyAvgColumnLabel": "レイテンシ(平均)", + "xpack.apm.servicesTable.metricsExplanationLabel": "これらのメトリックは何か。", + "xpack.apm.servicesTable.nameColumnLabel": "名前", + "xpack.apm.servicesTable.notFoundLabel": "サービスが見つかりません", + "xpack.apm.servicesTable.throughputColumnLabel": "スループット", + "xpack.apm.servicesTable.tooltip.metricsExplanation": "サービスメトリックは、トランザクションタイプ「要求」、「ページ読み込み」、または上位の使用可能なトランザクションタイプのいずれかで集計されます。", + "xpack.apm.servicesTable.transactionColumnLabel": "トランザクションタイプ", + "xpack.apm.servicesTable.transactionErrorRate": "失敗したトランザクション率", + "xpack.apm.settings.agentConfig": "エージェントの編集", + "xpack.apm.settings.agentConfig.createConfigButton.tooltip": "エージェント構成を作成する権限がありません", + "xpack.apm.settings.agentConfig.descriptionText": "APMアプリ内からエージェント構成を微調整してください。変更はAPMエージェントに自動的に伝達されるので、再デプロイする必要はありません。", + "xpack.apm.settings.anomaly_detection.legacy_jobs.body": "以前の統合のレガシー機械学習ジョブが見つかりました。これは、APMアプリでは使用されていません。", + "xpack.apm.settings.anomaly_detection.legacy_jobs.button": "ジョブの確認", + "xpack.apm.settings.anomaly_detection.legacy_jobs.title": "レガシーMLジョブはAPMアプリで使用されていません。", + "xpack.apm.settings.anomalyDetection": "異常検知", + "xpack.apm.settings.anomalyDetection.addEnvironments.cancelButtonText": "キャンセル", + "xpack.apm.settings.anomalyDetection.addEnvironments.createJobsButtonText": "ジョブの作成", + "xpack.apm.settings.anomalyDetection.addEnvironments.descriptionText": "異常検知を有効にするサービス環境を選択してください。異常は選択した環境内のすべてのサービスとトランザクションタイプで表面化します。", + "xpack.apm.settings.anomalyDetection.addEnvironments.selectorLabel": "環境", + "xpack.apm.settings.anomalyDetection.addEnvironments.selectorPlaceholder": "環境を選択または追加", + "xpack.apm.settings.anomalyDetection.addEnvironments.titleText": "環境を選択", + "xpack.apm.settings.anomalyDetection.jobList.actionColumnLabel": "アクション", + "xpack.apm.settings.anomalyDetection.jobList.addEnvironments": "MLジョブを作成", + "xpack.apm.settings.anomalyDetection.jobList.emptyListText": "異常検知ジョブがありません。", + "xpack.apm.settings.anomalyDetection.jobList.environmentColumnLabel": "環境", + "xpack.apm.settings.anomalyDetection.jobList.environments": "環境", + "xpack.apm.settings.anomalyDetection.jobList.failedFetchText": "異常検知ジョブを取得できません。", + "xpack.apm.settings.anomalyDetection.jobList.mlDescriptionText": "異常検知を新しい環境に追加するには、機械学習ジョブを作成します。既存の機械学習ジョブは、{mlJobsLink}で管理できます。", + "xpack.apm.settings.anomalyDetection.jobList.mlDescriptionText.mlJobsLinkText": "機械学習", + "xpack.apm.settings.anomalyDetection.jobList.mlJobLinkText": "MLでジョブを表示", + "xpack.apm.settings.apmIndices.applyButton": "変更を適用", + "xpack.apm.settings.apmIndices.applyChanges.failed.text": "インデックスの適用時に何か問題が発生しました。エラー:{errorMessage}", + "xpack.apm.settings.apmIndices.applyChanges.failed.title": "インデックスが適用できませんでした。", + "xpack.apm.settings.apmIndices.applyChanges.succeeded.text": "インデックスの変更の適用に成功しました。これらの変更は、APM UIで直ちに反映されます。", + "xpack.apm.settings.apmIndices.applyChanges.succeeded.title": "適用されるインデックス", + "xpack.apm.settings.apmIndices.cancelButton": "キャンセル", + "xpack.apm.settings.apmIndices.description": "APM UI は、APM インデックスをクエリするためにインデックスパターンを使用しています。APM Server がイベントを書き込むインデックス名をカスタマイズした場合、APM UI が機能するにはこれらパターンをアップデートする必要がある場合があります。ここの設定は、 kibana.yml で設定されたものよりも優先します。", + "xpack.apm.settings.apmIndices.errorIndicesLabel": "エラーインデックス", + "xpack.apm.settings.apmIndices.helpText": "上書き {configurationName}: {defaultValue}", + "xpack.apm.settings.apmIndices.metricsIndicesLabel": "メトリックインデックス", + "xpack.apm.settings.apmIndices.noPermissionTooltipLabel": "ユーザーロールには、APMインデックスを変更する権限がありません", + "xpack.apm.settings.apmIndices.onboardingIndicesLabel": "オンボーディングインデックス", + "xpack.apm.settings.apmIndices.sourcemapIndicesLabel": "ソースマップインデックス", + "xpack.apm.settings.apmIndices.spanIndicesLabel": "スパンインデックス", + "xpack.apm.settings.apmIndices.title": "インデックス", + "xpack.apm.settings.apmIndices.transactionIndicesLabel": "トランザクションインデックス", + "xpack.apm.settings.createApmPackagePolicy.errorToast.title": "クラウドエージェントポリシーでAPMパッケージポリシーを作成できません", + "xpack.apm.settings.customizeApp": "アプリをカスタマイズ", + "xpack.apm.settings.customizeUI.customLink": "カスタムリンク", + "xpack.apm.settings.customizeUI.customLink.create.failed": "リンクを保存できませんでした!", + "xpack.apm.settings.customizeUI.customLink.create.failed.message": "リンクを保存するときに問題が発生しました。エラー:「{errorMessage}」", + "xpack.apm.settings.customizeUI.customLink.create.successed": "リンクを保存しました。", + "xpack.apm.settings.customizeUI.customLink.createCustomLink": "カスタムリンクを作成", + "xpack.apm.settings.customizeUI.customLink.default.label": "Elastic.co", + "xpack.apm.settings.customizeUI.customLink.default.url": "https://www.elastic.co", + "xpack.apm.settings.customizeUI.customLink.delete": "削除", + "xpack.apm.settings.customizeUI.customLink.delete.failed": "カスタムリンクを削除できませんでした", + "xpack.apm.settings.customizeUI.customLink.delete.successed": "カスタムリンクを削除しました。", + "xpack.apm.settings.customizeUI.customLink.emptyPromptText": "変更しましょう。サービスごとのトランザクションの詳細でアクションコンテキストメニューにカスタムリンクを追加できます。自社のサポートポータルへの役立つリンクを作成するか、新しい不具合レポートを発行します。詳細はドキュメントをご覧ください。", + "xpack.apm.settings.customizeUI.customLink.emptyPromptTitle": "リンクが見つかりません。", + "xpack.apm.settings.customizeUI.customLink.flyout.action.title": "リンク", + "xpack.apm.settings.customizeUI.customLink.flyout.close": "閉じる", + "xpack.apm.settings.customizeUI.customLink.flyout.filters.addAnotherFilter": "別のフィルターを追加", + "xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption": "フィールドを選択してください...", + "xpack.apm.settings.customizeUI.customLink.flyOut.filters.defaultOption.value": "値", + "xpack.apm.settings.customizeUI.customLink.flyout.filters.prepend": "フィールド", + "xpack.apm.settings.customizeUI.customLink.flyout.filters.subtitle": "フィルターオプションを使用すると、特定のサービスについてのみ表示されるようにスコープを設定できます。", + "xpack.apm.settings.customizeUI.customLink.flyout.filters.title": "フィルター", + "xpack.apm.settings.customizeUI.customLink.flyout.label": "リンクは APM アプリ全体にわたるトランザクション詳細のコンテキストで利用できるようになります。作成できるリンクの数は無制限です。トランザクションメタデータのいずれかを使用することで、動的変数を参照して URL を入力できます。さらなる詳細および例がドキュメンテーションに記載されています", + "xpack.apm.settings.customizeUI.customLink.flyout.label.doc": "ドキュメンテーション", + "xpack.apm.settings.customizeUI.customLink.flyout.link.label": "ラベル", + "xpack.apm.settings.customizeUI.customLink.flyout.link.label.helpText": "これはアクションコンテキストメニューに表示されるラベルです。できるだけ短くしてください。", + "xpack.apm.settings.customizeUI.customLink.flyout.link.label.placeholder": "例:サポートチケット", + "xpack.apm.settings.customizeUI.customLink.flyout.link.url": "URL", + "xpack.apm.settings.customizeUI.customLink.flyout.link.url.doc": "詳細はドキュメントをご覧ください。", + "xpack.apm.settings.customizeUI.customLink.flyout.link.url.helpText": "URL にフィールド名変数(例:{sample})を追加すると値を適用できます。", + "xpack.apm.settings.customizeUI.customLink.flyout.link.url.placeholder": "例:https://www.elastic.co/", + "xpack.apm.settings.customizeUI.customLink.flyout.required": "必須", + "xpack.apm.settings.customizeUI.customLink.flyout.save": "保存", + "xpack.apm.settings.customizeUI.customLink.flyout.title": "リンクを作成", + "xpack.apm.settings.customizeUI.customLink.info": "これらのリンクは、トランザクション詳細などによって、アプリの選択した領域にあるアクションコンテキストメニューに表示されます。", + "xpack.apm.settings.customizeUI.customLink.license.text": "カスタムリンクを作成するには、Elastic Gold 以上のライセンスが必要です。適切なライセンスがあれば、カスタムリンクを作成してサービスを分析する際にワークフローを改良できます。", + "xpack.apm.settings.customizeUI.customLink.linkPreview.descrition": "上記のフィルターに基づき、サンプルトランザクションドキュメントの値でリンクをテストしてください。", + "xpack.apm.settings.customizeUI.customLink.noPermissionTooltipLabel": "ユーザーロールには、カスタムリンクを作成する権限がありません", + "xpack.apm.settings.customizeUI.customLink.preview.contextVariable.invalid": "無効な変数が定義されているため、サンプルトランザクションドキュメントが見つかりませんでした。", + "xpack.apm.settings.customizeUI.customLink.preview.contextVariable.noMatch": "{variables} に一致する値がサンプルトランザクションドキュメント内にありませんでした。", + "xpack.apm.settings.customizeUI.customLink.preview.transaction.notFound": "定義されたフィルターに基づき、一致するトランザクションドキュメントが見つかりませんでした。", + "xpack.apm.settings.customizeUI.customLink.previewSectionTitle": "プレビュー", + "xpack.apm.settings.customizeUI.customLink.searchInput.filter": "名前と URL でリンクをフィルタリング...", + "xpack.apm.settings.customizeUI.customLink.table.editButtonDescription": "このカスタムリンクを編集", + "xpack.apm.settings.customizeUI.customLink.table.editButtonLabel": "編集", + "xpack.apm.settings.customizeUI.customLink.table.lastUpdated": "最終更新", + "xpack.apm.settings.customizeUI.customLink.table.name": "名前", + "xpack.apm.settings.customizeUI.customLink.table.noResultFound": "\"{value}\"に対する結果が見つかりませんでした。", + "xpack.apm.settings.customizeUI.customLink.table.url": "URL", + "xpack.apm.settings.indices": "インデックス", + "xpack.apm.settings.schema": "スキーマ", + "xpack.apm.settings.schema.confirm.apmServerSettingsCloudLinkText": "クラウドでAPMサーバー設定に移動", + "xpack.apm.settings.schema.confirm.cancelText": "キャンセル", + "xpack.apm.settings.schema.confirm.checkboxLabel": "Elasticエージェントに切り替えることを確認する", + "xpack.apm.settings.schema.confirm.irreversibleWarning.message": "移行中には一時的にAPMデータ収集に影響する可能性があります。移行プロセスは数分で完了します。", + "xpack.apm.settings.schema.confirm.irreversibleWarning.title": "Elasticエージェントへの切り替えは元に戻せません", + "xpack.apm.settings.schema.confirm.switchButtonText": "Elasticエージェントに切り替える", + "xpack.apm.settings.schema.confirm.title": "選択内容を確認してください", + "xpack.apm.settings.schema.confirm.unsupportedConfigs.descriptionText": "互換性のあるカスタムapm-server.ymlユーザー設定がFleetサーバー設定に移動されます。削除する前に互換性のない設定について通知されます。", + "xpack.apm.settings.schema.confirm.unsupportedConfigs.title": "次のapm-server.ymlユーザー設定は互換性がないため削除されます", + "xpack.apm.settings.schema.descriptionText": "APMサーバーバイナリからElastic エージェントに切り替えるためのシンプルかつシームレスなプロセスが導入されました。このアクションは{irreversibleEmphasis}。また、Fleetへのアクセス権が付与された{superuserEmphasis}のみが実行できます。{elasticAgentDocLink}の詳細。", + "xpack.apm.settings.schema.descriptionText.elasticAgentDocLinkText": "Elasticエージェント", + "xpack.apm.settings.schema.descriptionText.irreversibleEmphasisText": "元に戻せません", + "xpack.apm.settings.schema.descriptionText.superuserEmphasisText": "スーパーユーザー", + "xpack.apm.settings.schema.disabledReason": "Elasticエージェントへの切り替えを使用できません: {reasons}", + "xpack.apm.settings.schema.disabledReason.cloudApmMigrationEnabled": "クラウド移行が有効ではありません", + "xpack.apm.settings.schema.disabledReason.hasCloudAgentPolicy": "クラウドエージェントポリシーが存在しません", + "xpack.apm.settings.schema.disabledReason.hasRequiredRole": "ユーザーにはスーパーユーザーロールがありません", + "xpack.apm.settings.schema.migrate.classicIndices.currentSetup": "現在の設定", + "xpack.apm.settings.schema.migrate.classicIndices.description": "現在APMサーバーバイナリを使用しています。このレガシーオプションは7.16以降で廃止予定であり、バージョン8.0以降ではElasticエージェントの管理されたAPMサーバーで置換されています。", + "xpack.apm.settings.schema.migrate.classicIndices.title": "APMサーバーバイナリ", + "xpack.apm.settings.schema.migrate.dataStreams.buttonText": "Elasticエージェントに切り替える", + "xpack.apm.settings.schema.migrate.dataStreams.description": "バージョン8.0以降では、ElasticエージェントがAPMサーバーを管理する必要があります。Elasticは当社がホスティングするElasticsearch Service、ECEで実行するか、セルフマネージドで実行することができます。Elastic APM統合を追加して、APMデータの取り込みを続けます。", + "xpack.apm.settings.schema.migrate.dataStreams.title": "Elasticエージェント", + "xpack.apm.settings.schema.migrationInProgressPanelDescription": "古いAPMサーバーインスタンスのシャットダウン中に新しいAPMサーバーを含めるFleetサーバーインスタンスを作成しています。数分以内にデータがもう一度アプリに取り込まれます。", + "xpack.apm.settings.schema.migrationInProgressPanelTitle": "Elasticエージェントに切り替えています...", + "xpack.apm.settings.schema.success.description": "APM統合が設定されました。現在導入されているエージェントからデータを受信できます。統合に適用されたポリシーは自由に確認できます。", + "xpack.apm.settings.schema.success.returnText": "あるいは、{serviceInventoryLink}に戻ることができます。", + "xpack.apm.settings.schema.success.returnText.serviceInventoryLink": "サービスインベントリ", + "xpack.apm.settings.schema.success.title": "Elasticエージェントが正常に設定されました。", + "xpack.apm.settings.schema.success.viewIntegrationInFleet.buttonText": "FleetでAPM統合を表示", + "xpack.apm.settings.schema.upgradeAvailable.title": "APM統合アップグレードが利用可能です。", + "xpack.apm.settings.schema.upgradeAvailable.upgradePackagePolicyLink": "APM統合をアップグレード", + "xpack.apm.settings.title": "設定", + "xpack.apm.settings.unsupportedConfigs.errorToast.title": "APMサーバー設定を取り込めません", + "xpack.apm.settings.upgradeAvailable.description": "APM統合は設定されていますが、パッケージポリシーを使用して、新しいバージョンのAPM統合をアップグレードできます。設定を最大限活用するには、{upgradePackagePolicyLink}してください。", + "xpack.apm.settingsLinkLabel": "設定", + "xpack.apm.setupInstructionsButtonLabel": "セットアップの手順", + "xpack.apm.stacktraceTab.causedByFramesToogleButtonLabel": "作成元", + "xpack.apm.stacktraceTab.localVariablesToogleButtonLabel": "ローカル変数", + "xpack.apm.stacktraceTab.noStacktraceAvailableLabel": "利用可能なスタックトレースがありません。", + "xpack.apm.timeComparison.label": "比較", + "xpack.apm.timeComparison.select.dayBefore": "前の日", + "xpack.apm.timeComparison.select.weekBefore": "前の週", + "xpack.apm.toggleHeight.showLessButtonLabel": "表示する行数を減らす", + "xpack.apm.toggleHeight.showMoreButtonLabel": "表示する行数を増やす", + "xpack.apm.tracesTable.avgResponseTimeColumnLabel": "レイテンシ(平均)", + "xpack.apm.tracesTable.impactColumnDescription": "ご利用のサービスで最も頻繁に使用されていて、最も遅いエンドポイントです。レイテンシとスループットを乗算した結果です", + "xpack.apm.tracesTable.impactColumnLabel": "インパクト", + "xpack.apm.tracesTable.nameColumnLabel": "名前", + "xpack.apm.tracesTable.notFoundLabel": "このクエリのトレースが見つかりません", + "xpack.apm.tracesTable.originatingServiceColumnLabel": "発生元サービス", + "xpack.apm.tracesTable.tracesPerMinuteColumnLabel": "1 分あたりのトレース", + "xpack.apm.transactionActionMenu.actionsButtonLabel": "調査", + "xpack.apm.transactionActionMenu.container.subtitle": "このコンテナーのログとインデックスを表示し、さらに詳細を確認できます。", + "xpack.apm.transactionActionMenu.container.title": "コンテナーの詳細", + "xpack.apm.transactionActionMenu.customLink.section": "カスタムリンク", + "xpack.apm.transactionActionMenu.customLink.showAll": "すべて表示", + "xpack.apm.transactionActionMenu.customLink.showFewer": "簡易表示", + "xpack.apm.transactionActionMenu.customLink.subtitle": "リンクは新しいウィンドウで開きます。", + "xpack.apm.transactionActionMenu.host.subtitle": "ホストログとメトリックを表示し、さらに詳細を確認できます。", + "xpack.apm.transactionActionMenu.host.title": "ホストの詳細", + "xpack.apm.transactionActionMenu.pod.subtitle": "このポッドのログとメトリックを表示し、さらに詳細を確認できます。", + "xpack.apm.transactionActionMenu.pod.title": "ポッドの詳細", + "xpack.apm.transactionActionMenu.showContainerLogsLinkLabel": "コンテナーログ", + "xpack.apm.transactionActionMenu.showContainerMetricsLinkLabel": "コンテナーメトリック", + "xpack.apm.transactionActionMenu.showHostLogsLinkLabel": "ホストログ", + "xpack.apm.transactionActionMenu.showHostMetricsLinkLabel": "ホストメトリック", + "xpack.apm.transactionActionMenu.showPodLogsLinkLabel": "ポッドログ", + "xpack.apm.transactionActionMenu.showPodMetricsLinkLabel": "ポッドメトリック", + "xpack.apm.transactionActionMenu.showTraceLogsLinkLabel": "トレースログ", + "xpack.apm.transactionActionMenu.status.subtitle": "ステータスを表示し、さらに詳細を確認できます。", + "xpack.apm.transactionActionMenu.status.title": "ステータスの詳細", + "xpack.apm.transactionActionMenu.trace.subtitle": "トレースログを表示し、さらに詳細を確認できます。", + "xpack.apm.transactionActionMenu.trace.title": "トレースの詳細", + "xpack.apm.transactionActionMenu.viewInUptime": "ステータス", + "xpack.apm.transactionActionMenu.viewSampleDocumentLinkLabel": "サンプルドキュメントを表示", + "xpack.apm.transactionBreakdown.chartTitle": "スパンタイプ別時間", + "xpack.apm.transactionDetails.clearSelectionAriaLabel": "選択した項目をクリア", + "xpack.apm.transactionDetails.distribution.failedTransactionsLatencyDistributionErrorTitle": "失敗したトランザクション遅延分布の取得中にエラーが発生しました。", + "xpack.apm.transactionDetails.distribution.latencyDistributionErrorTitle": "全体の遅延分布の取得中にエラーが発生しました。", + "xpack.apm.transactionDetails.distribution.panelTitle": "レイテンシ分布", + "xpack.apm.transactionDetails.distribution.selectionText": "選択:{formattedSelection}", + "xpack.apm.transactionDetails.emptySelectionText": "クリックおよびドラッグして範囲を選択", + "xpack.apm.transactionDetails.noTraceParentButtonTooltip": "トレースの親が見つかりませんでした", + "xpack.apm.transactionDetails.percentOfTraceLabelExplanation": "{parentType, select, transaction {トランザクション} trace {トレース} }の割合が100%を超えています。これは、この{childType, select, span {スパン} transaction {トランザクション} }がルートトランザクションよりも時間がかかるためです。", + "xpack.apm.transactionDetails.requestMethodLabel": "リクエストメソッド", + "xpack.apm.transactionDetails.resultLabel": "結果", + "xpack.apm.transactionDetails.serviceLabel": "サービス", + "xpack.apm.transactionDetails.servicesTitle": "サービス", + "xpack.apm.transactionDetails.spanFlyout.backendLabel": "バックエンド", + "xpack.apm.transactionDetails.spanFlyout.compositeExampleWarning": "これは連続した類似したスパンのグループのサンプルドキュメントです", + "xpack.apm.transactionDetails.spanFlyout.databaseStatementTitle": "データベースステートメント", + "xpack.apm.transactionDetails.spanFlyout.nameLabel": "名前", + "xpack.apm.transactionDetails.spanFlyout.spanAction": "アクション", + "xpack.apm.transactionDetails.spanFlyout.spanDetailsTitle": "スパン詳細", + "xpack.apm.transactionDetails.spanFlyout.spanSubtype": "サブタイプ", + "xpack.apm.transactionDetails.spanFlyout.spanType": "型", + "xpack.apm.transactionDetails.spanFlyout.spanType.navigationTimingLabel": "ナビゲーションタイミング", + "xpack.apm.transactionDetails.spanFlyout.stackTraceTabLabel": "スタックトレース", + "xpack.apm.transactionDetails.spanFlyout.viewSpanInDiscoverButtonLabel": "Discover でスパンを表示", + "xpack.apm.transactionDetails.spanTypeLegendTitle": "型", + "xpack.apm.transactionDetails.statusCode": "ステータスコード", + "xpack.apm.transactionDetails.syncBadgeAsync": "非同期", + "xpack.apm.transactionDetails.syncBadgeBlocking": "ブロック", + "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaDescription": "失敗したトランザクションの相関関係はGAではありません。不具合が発生したら報告してください。", + "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaLabel": "ベータ", + "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaTitle": "失敗したトランザクションの相関関係", + "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsChartAllTransactions": "すべてのトランザクション", + "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsLabel": "失敗したトランザクションの相関関係", + "xpack.apm.transactionDetails.tabs.latencyCorrelationsChartAllTransactions": "すべてのトランザクション", + "xpack.apm.transactionDetails.tabs.latencyCorrelationsChartDescription": "{allTransactions}と{focusTransaction}の{br}重複する帯を使用した遅延(x)とトランザクション(y)の両対数プロット。", + "xpack.apm.transactionDetails.tabs.latencyLabel": "遅延の相関関係", + "xpack.apm.transactionDetails.tabs.traceSamplesLabel": "トレースのサンプル", + "xpack.apm.transactionDetails.tabs.transactionDistributionChartAllTransactions": "すべてのトランザクション", + "xpack.apm.transactionDetails.traceNotFound": "選択されたトレースが見つかりません", + "xpack.apm.transactionDetails.traceSampleTitle": "トレースのサンプル", + "xpack.apm.transactionDetails.transactionLabel": "トランザクション", + "xpack.apm.transactionDetails.transFlyout.callout.agentDroppedSpansMessage": "このトランザクションを報告した APM エージェントが、構成に基づき {dropped} 個以上のスパンをドロップしました。", + "xpack.apm.transactionDetails.transFlyout.callout.learnMoreAboutDroppedSpansLinkText": "ドロップされたスパンの詳細。", + "xpack.apm.transactionDetails.transFlyout.transactionDetailsTitle": "トランザクションの詳細", + "xpack.apm.transactionDetails.userAgentAndVersionLabel": "ユーザーエージェントとバージョン", + "xpack.apm.transactionDetails.viewFullTraceButtonLabel": "完全なトレースを表示", + "xpack.apm.transactionDetails.viewingFullTraceButtonTooltip": "現在完全なトレースが表示されています", + "xpack.apm.transactionDistribution.chart.allTransactionsLabel": "すべてのトランザクション", + "xpack.apm.transactionDistribution.chart.currentTransactionMarkerLabel": "現在のサンプル", + "xpack.apm.transactionDistribution.chart.latencyLabel": "レイテンシ", + "xpack.apm.transactionDistribution.chart.numberOfTransactionsLabel": "トランザクション", + "xpack.apm.transactionDurationAlert.aggregationType.95th": "95 パーセンタイル", + "xpack.apm.transactionDurationAlert.aggregationType.99th": "99 パーセンタイル", + "xpack.apm.transactionDurationAlert.aggregationType.avg": "平均", + "xpack.apm.transactionDurationAlert.name": "レイテンシしきい値", + "xpack.apm.transactionDurationAlertTrigger.ms": "ms", + "xpack.apm.transactionDurationAlertTrigger.when": "タイミング", + "xpack.apm.transactionDurationAnomalyAlert.name": "レイテンシ異常値", + "xpack.apm.transactionDurationAnomalyAlertTrigger.anomalySeverity": "異常と重要度があります", + "xpack.apm.transactionDurationLabel": "期間", + "xpack.apm.transactionErrorRateAlert.name": "失敗したトランザクション率しきい値", + "xpack.apm.transactionErrorRateAlertTrigger.isAbove": "より大きい", + "xpack.apm.transactionRateLabel": "{displayedValue} tpm", + "xpack.apm.transactions.latency.chart.95thPercentileLabel": "95 パーセンタイル", + "xpack.apm.transactions.latency.chart.99thPercentileLabel": "99 パーセンタイル", + "xpack.apm.transactions.latency.chart.averageLabel": "平均", + "xpack.apm.transactionsTable.cardinalityWarning.body": "一意のトランザクション名の数が構成された値{bucketSize}を超えています。エージェントを再構成し、類似したトランザクションをグループ化するか、{codeBlock}の値を増やしてください。", + "xpack.apm.transactionsTable.cardinalityWarning.docsLink": "詳細はドキュメントをご覧ください", + "xpack.apm.transactionsTable.cardinalityWarning.title": "このビューには、報告されたトランザクションのサブセットが表示されます。", + "xpack.apm.transactionsTable.errorMessage": "取得できませんでした", + "xpack.apm.transactionsTable.linkText": "トランザクションを表示", + "xpack.apm.transactionsTable.loading": "読み込み中...", + "xpack.apm.transactionsTable.noResults": "トランザクショングループが見つかりません", + "xpack.apm.transactionsTable.title": "トランザクション", + "xpack.apm.transactionTypesSelectCustomOptionText": "新しいトランザクションタイプとして\\{searchValue\\}を追加", + "xpack.apm.transactionTypesSelectPlaceholder": "トランザクションタイプを選択", + "xpack.apm.tutorial.agent_config.choosePolicy.helper": "選択したポリシー構成を下のスニペットに追加します。", + "xpack.apm.tutorial.agent_config.choosePolicyLabel": "ポリシーを選択", + "xpack.apm.tutorial.agent_config.defaultStandaloneConfig": "デフォルトのダッシュボード構成", + "xpack.apm.tutorial.agent_config.fleetPoliciesLabel": "Fleetポリシー", + "xpack.apm.tutorial.agent_config.getStartedWithFleet": "Fleetの基本", + "xpack.apm.tutorial.agent_config.manageFleetPolicies": "Fleetポリシーの管理", + "xpack.apm.tutorial.apmAgents.statusCheck.btnLabel": "エージェントステータスを確認", + "xpack.apm.tutorial.apmAgents.statusCheck.errorMessage": "エージェントからまだデータを受け取っていません", + "xpack.apm.tutorial.apmAgents.statusCheck.successMessage": "1 つまたは複数のエージェントからデータを受け取りました", + "xpack.apm.tutorial.apmAgents.statusCheck.text": "アプリケーションが実行されていてエージェントがデータを送信していることを確認してください。", + "xpack.apm.tutorial.apmAgents.statusCheck.title": "エージェントステータス", + "xpack.apm.tutorial.apmAgents.title": "APM エージェント", + "xpack.apm.tutorial.apmServer.callOut.message": "ご使用の APM Server を 7.0 以上に更新してあることを確認してください。 Kibana の管理セクションにある移行アシスタントで 6.x データを移行することもできます。", + "xpack.apm.tutorial.apmServer.callOut.title": "重要:7.0 以上に更新中", + "xpack.apm.tutorial.apmServer.fleet.apmIntegration.button": "APM統合", + "xpack.apm.tutorial.apmServer.fleet.manageApmIntegration.button": "FleetでAPM統合を管理", + "xpack.apm.tutorial.apmServer.fleet.message": "APMA統合は、APMデータ用にElasticsearchテンプレートとインジェストパイプラインをインストールします。", + "xpack.apm.tutorial.apmServer.fleet.title": "Elastic APMがFleetで提供されました。", + "xpack.apm.tutorial.apmServer.statusCheck.btnLabel": "APM Server ステータスを確認", + "xpack.apm.tutorial.apmServer.statusCheck.errorMessage": "APM Server が検出されました。7.0 以上に更新され、動作中であることを確認してください。", + "xpack.apm.tutorial.apmServer.statusCheck.successMessage": "APM Server が正しくセットアップされました", + "xpack.apm.tutorial.apmServer.statusCheck.text": "APM エージェントの導入を開始する前に、APM Server が動作していることを確認してください。", + "xpack.apm.tutorial.apmServer.statusCheck.title": "APM Server ステータス", + "xpack.apm.tutorial.apmServer.title": "APM Server", + "xpack.apm.tutorial.djangoClient.configure.commands.addAgentComment": "インストールされたアプリにエージェントを追加します", + "xpack.apm.tutorial.djangoClient.configure.commands.addTracingMiddlewareComment": "パフォーマンスメトリックを送信するには、追跡ミドルウェアを追加します。", + "xpack.apm.tutorial.djangoClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース", + "xpack.apm.tutorial.djangoClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "xpack.apm.tutorial.djangoClient.configure.commands.setRequiredServiceNameComment": "任意のサービス名を設定します。使用できる文字:", + "xpack.apm.tutorial.djangoClient.configure.commands.setServiceEnvironmentComment": "サービス環境を設定します", + "xpack.apm.tutorial.djangoClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", + "xpack.apm.tutorial.djangoClient.configure.textPost": "高度な用途に関しては [ドキュメンテーション]({documentationLink})をご覧ください。", + "xpack.apm.tutorial.djangoClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。", + "xpack.apm.tutorial.djangoClient.configure.title": "エージェントの構成", + "xpack.apm.tutorial.djangoClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。", + "xpack.apm.tutorial.djangoClient.install.title": "APM エージェントのインストール", + "xpack.apm.tutorial.dotNetClient.configureAgent.textPost": "エージェントに「IConfiguration」インスタンスが渡されていない場合、(例:非 ASP.NET Core アプリケーションの場合)、エージェントを環境変数で構成することもできます。\n 高度な用途に関しては [ドキュメンテーション]({documentationLink})をご覧ください。", + "xpack.apm.tutorial.dotNetClient.configureAgent.title": "appsettings.json ファイルの例:", + "xpack.apm.tutorial.dotNetClient.configureApplication.textPost": "「IConfiguration」インスタンスを渡すのは任意であり、これにより、エージェントはこの「IConfiguration」インスタンス(例:「appsettings.json」ファイル)から構成を読み込みます。", + "xpack.apm.tutorial.dotNetClient.configureApplication.textPre": "「Elastic.Apm.NetCoreAll」パッケージの ASP.NET Core の場合、「Startup.cs」ファイル内の「Configure」メソドの「UseElasticApm」メソドを呼び出します。", + "xpack.apm.tutorial.dotNetClient.configureApplication.title": "エージェントをアプリケーションに追加", + "xpack.apm.tutorial.dotNetClient.download.textPre": "[NuGet]({allNuGetPackagesLink})から .NET アプリケーションにエージェントパッケージを追加してください。用途の異なる複数の NuGet パッケージがあります。\n\nEntity Framework Core の ASP.NET Core アプリケーションの場合は、[Elastic.Apm.NetCoreAll]({netCoreAllApmPackageLink})パッケージをダウンロードしてください。このパッケージは、自動的にすべてのエージェントコンポーネントをアプリケーションに追加します。\n\n 依存性を最低限に抑えたい場合、ASP.NET Coreの監視のみに[Elastic.Apm.AspNetCore]({aspNetCorePackageLink})パッケージ、またはEntity Framework Coreの監視のみに[Elastic.Apm.EfCore]({efCorePackageLink})パッケージを使用することができます。\n\n 手動インストルメンテーションのみにパブリック Agent API を使用する場合は、[Elastic.Apm]({elasticApmPackageLink})パッケージを使用してください。", + "xpack.apm.tutorial.dotNetClient.download.title": "APM エージェントのダウンロード", + "xpack.apm.tutorial.downloadServer.title": "APM Server をダウンロードして展開します", + "xpack.apm.tutorial.downloadServerRpm": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink})をご覧ください。", + "xpack.apm.tutorial.downloadServerTitle": "32 ビットパッケージをお探しですか?[ダウンロードページ]({downloadPageLink})をご覧ください。", + "xpack.apm.tutorial.editConfig.textPre": "Elastic Stack の X-Pack セキュアバージョンをご使用の場合、「apm-server.yml」構成ファイルで認証情報を指定する必要があります。", + "xpack.apm.tutorial.editConfig.title": "構成を編集する", + "xpack.apm.tutorial.elasticCloud.textPre": "APMサーバーを有効にするには、[the Elastic Cloud console](https://cloud.elastic.co/deployments/{deploymentId}/edit)に移動して、[容量の追加]をクリックしてデプロイ編集ページでAPMとFleetを有効にし、[保存]をクリックします。有効になったら、このページを更新してください。", + "xpack.apm.tutorial.elasticCloudInstructions.title": "APM エージェント", + "xpack.apm.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_、スペース", + "xpack.apm.tutorial.flaskClient.configure.commands.configureElasticApmComment": "またはアプリケーションの設定で ELASTIC_APM を使用するよう構成します。", + "xpack.apm.tutorial.flaskClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します", + "xpack.apm.tutorial.flaskClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "xpack.apm.tutorial.flaskClient.configure.commands.setRequiredServiceNameComment": "任意のサービス名を設定します。使用できる文字:", + "xpack.apm.tutorial.flaskClient.configure.commands.setServiceEnvironmentComment": "サービス環境を設定します", + "xpack.apm.tutorial.flaskClient.configure.commands.useIfApmServerRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", + "xpack.apm.tutorial.flaskClient.configure.textPost": "高度な用途に関しては [ドキュメンテーション]({documentationLink})をご覧ください。", + "xpack.apm.tutorial.flaskClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは「SERVICE_NAME」に基づいてプログラムで作成されます。", + "xpack.apm.tutorial.flaskClient.configure.title": "エージェントの構成", + "xpack.apm.tutorial.flaskClient.install.textPre": "Python 用の APM エージェントを依存関係としてインストールします。", + "xpack.apm.tutorial.flaskClient.install.title": "APM エージェントのインストール", + "xpack.apm.tutorial.fleet.title": "Fleet", + "xpack.apm.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "環境変数を使用して初期化します:", + "xpack.apm.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "xpack.apm.tutorial.goClient.configure.commands.setServiceEnvironment": "サービス環境を設定します", + "xpack.apm.tutorial.goClient.configure.commands.setServiceNameComment": "サービス名を設定します。使用できる文字は # a-z、A-Z、0-9、-、_、スペースです。", + "xpack.apm.tutorial.goClient.configure.commands.usedExecutableNameComment": "ELASTIC_APM_SERVICE_NAME が指定されていない場合、実行ファイルの名前が使用されます。", + "xpack.apm.tutorial.goClient.configure.commands.useIfApmRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", + "xpack.apm.tutorial.goClient.configure.textPost": "高度な構成に関しては [ドキュメンテーション]({documentationLink})をご覧ください。", + "xpack.apm.tutorial.goClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APM サービスは実行ファイル名または「ELASTIC_APM_SERVICE_NAME」環境変数に基づいてプログラムで作成されます。", + "xpack.apm.tutorial.goClient.configure.title": "エージェントの構成", + "xpack.apm.tutorial.goClient.install.textPre": "Go の APM エージェントパッケージをインストールします。", + "xpack.apm.tutorial.goClient.install.title": "APM エージェントのインストール", + "xpack.apm.tutorial.goClient.instrument.textPost": "Go のソースコードのインストルメンテーションの詳細ガイドは、[ドキュメンテーション]({documentationLink})をご覧ください。", + "xpack.apm.tutorial.goClient.instrument.textPre": "提供されたインストルメンテーションモジュールの 1 つ、またはトレーサー API を直接使用して、Go アプリケーションにインストルメンテーションを設定します。", + "xpack.apm.tutorial.goClient.instrument.title": "アプリケーションのインストルメンテーション", + "xpack.apm.tutorial.introduction": "Elastic APMを使用してアプリケーションからパフォーマンスメトリックを収集します。", + "xpack.apm.tutorial.javaClient.download.textPre": "[Maven Central]({mavenCentralLink})からエージェントをダウンロードします。アプリケーションにエージェントを依存関係として「追加しない」でください。", + "xpack.apm.tutorial.javaClient.download.title": "APM エージェントのダウンロード", + "xpack.apm.tutorial.javaClient.startApplication.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。", + "xpack.apm.tutorial.javaClient.startApplication.textPre": "「-javaagent」フラグを追加し、システムプロパティを使用してエージェントを構成します。\n\n * 任意のサービス名を設定します(使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)\n * カスタム APM Server URL(デフォルト:{customApmServerUrl})を設定します\n * APM Server シークレットトークンを設定します\n * サービス環境を設定します\n * アプリケーションのベースパッケージを設定します", + "xpack.apm.tutorial.javaClient.startApplication.title": "javaagent フラグでアプリケーションを起動", + "xpack.apm.tutorial.jsClient.enableRealUserMonitoring.textPre": "デフォルトでは、APM Server を実行すると RUM サポートは無効になります。RUM サポートを有効にする手順については、[ドキュメンテーション]({documentationLink})をご覧ください。", + "xpack.apm.tutorial.jsClient.enableRealUserMonitoring.title": "APM Server のリアルユーザー監視サポートを有効にする", + "xpack.apm.tutorial.jsClient.installDependency.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "xpack.apm.tutorial.jsClient.installDependency.commands.setRequiredServiceNameComment": "任意のサービス名を設定します(使用可能な文字は a-z、A-Z、0-9、-、_、スペースです)", + "xpack.apm.tutorial.jsClient.installDependency.commands.setServiceEnvironmentComment": "サービス環境を設定します", + "xpack.apm.tutorial.jsClient.installDependency.commands.setServiceVersionComment": "サービスバージョンを設定します(ソースマップ機能に必要)", + "xpack.apm.tutorial.jsClient.installDependency.textPost": "React や Angular などのフレームワーク統合には、カスタム依存関係があります。詳細は [統合ドキュメント]({docLink})をご覧ください。", + "xpack.apm.tutorial.jsClient.installDependency.textPre": "「npm install @elastic/apm-rum --save」でエージェントをアプリケーションへの依存関係としてインストールできます。\n\nその後で以下のようにアプリケーションでエージェントを初期化して構成できます。", + "xpack.apm.tutorial.jsClient.installDependency.title": "エージェントを依存関係としてセットアップ", + "xpack.apm.tutorial.jsClient.scriptTags.textPre": "または、スクリプトタグを使用してエージェントのセットアップと構成ができます。` を追加<script>` tag to the HTML page and use the `elasticApm` global object to load and initialize the agent. Don't forget to download the latest version of the RUM Agent from [GitHub]({GitHubLink}) or [UNPKG]({UnpkgLink}), and host the file on your Server/CDN before deploying to production.", + "xpack.apm.tutorial.jsClient.scriptTags.title": "スクリプトタグを付けてエージェントをセットアップ", + "xpack.apm.tutorial.nodeClient.configure.commands.addThisToTheFileTopComment": "アプリに読み込んだファイルのトップにこれを追加します", + "xpack.apm.tutorial.nodeClient.configure.commands.allowedCharactersComment": "使用できる文字は a-z、A-Z、0-9、-、_、スペースです", + "xpack.apm.tutorial.nodeClient.configure.commands.setCustomApmServerUrlComment": "カスタム APM Server URL(デフォルト:{defaultApmServerUrl})を設定します", + "xpack.apm.tutorial.nodeClient.configure.commands.setCustomServiceEnvironmentComment": "サービス環境を設定します", + "xpack.apm.tutorial.nodeClient.configure.commands.setRequiredServiceNameComment": "package.json からサービス名を上書きします", + "xpack.apm.tutorial.nodeClient.configure.commands.useIfApmRequiresTokenComment": "APM Server でシークレットトークンが必要な場合に使います", + "xpack.apm.tutorial.nodeClient.configure.textPost": "[Babel/ES モジュール]({babelEsModulesLink})との使用を含む高度な用途に関しては、 [ドキュメンテーション]({documentationLink})をご覧ください。", + "xpack.apm.tutorial.nodeClient.configure.textPre": "エージェントとは、アプリケーションプロセス内で実行されるライブラリです。APMサービスは「serviceName」に基づいてプログラムで作成されます。このエージェントはさまざまなフレームワークをサポートしていますが、カスタムスタックで使用することもできます。", + "xpack.apm.tutorial.nodeClient.configure.title": "エージェントの構成", + "xpack.apm.tutorial.nodeClient.install.textPre": "Node.js 用の APM エージェントをアプリケーションに依存関係としてインストール。", + "xpack.apm.tutorial.nodeClient.install.title": "APM エージェントのインストール", + "xpack.apm.tutorial.phpClient.configure.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。\n\n", + "xpack.apm.tutorial.phpClient.configureAgent.textPre": "APM はアプリの起動時に自動的に起動します。「php.ini」ファイルを使用してエージェントを構成:", + "xpack.apm.tutorial.phpClient.configureAgent.title": "エージェントの構成", + "xpack.apm.tutorial.phpClient.download.textPre": "[GitHub releases]({githubReleasesLink})からプラットフォームに対応するパッケージをダウンロードします。", + "xpack.apm.tutorial.phpClient.download.title": "APM エージェントのダウンロード", + "xpack.apm.tutorial.phpClient.installPackage.textPost": "他のサポートされているプラットフォームでのインストールコマンドおよび高度なインストールについては、[documentation]({documentationLink})を参照してください。", + "xpack.apm.tutorial.phpClient.installPackage.textPre": "Alpine LinuxでAPKパッケージを使用する例:", + "xpack.apm.tutorial.phpClient.installPackage.title": "ダウンロードしたパッケージをインストールする", + "xpack.apm.tutorial.rackClient.configure.commands.optionalComment": "オプション、デフォルトで config/elastic_apm.yml になります", + "xpack.apm.tutorial.rackClient.configure.commands.requiredComment": "必須", + "xpack.apm.tutorial.rackClient.configure.textPre": "Rack または対応フレームワーク(Sinatra など)の場合は、アプリのミドルウェアを含めてエージェントを起動してください。", + "xpack.apm.tutorial.rackClient.configure.title": "エージェントの構成", + "xpack.apm.tutorial.rackClient.createConfig.commands.defaultsToTheNameOfRackAppClassComment": "デフォルトで Rack アプリのクラスになります。", + "xpack.apm.tutorial.rackClient.createConfig.commands.setCustomApmServerComment": "カスタム APM Server URL を設定します(デフォルト: {defaultServerUrl})", + "xpack.apm.tutorial.rackClient.createConfig.commands.setServiceEnvironment": "サービス環境を設定します", + "xpack.apm.tutorial.rackClient.createConfig.commands.setServiceNameComment": "サービス名を設定します。使用できる文字は、a-z、A-Z、0-9、-、_、スペースです。", + "xpack.apm.tutorial.rackClient.createConfig.commands.useIfApmServerRequiresTokenComment": "APM Server でトークンが必要な場合に使います", + "xpack.apm.tutorial.rackClient.createConfig.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。\n\n", + "xpack.apm.tutorial.rackClient.createConfig.textPre": "構成ファイル {configFile} を作成します:", + "xpack.apm.tutorial.rackClient.createConfig.title": "構成ファイルの作成", + "xpack.apm.tutorial.rackClient.install.textPre": "Gemfile にエージェントを追加します。", + "xpack.apm.tutorial.rackClient.install.title": "APM エージェントのインストール", + "xpack.apm.tutorial.railsClient.configure.textPost": "構成オプションと高度な用途に関しては、[ドキュメンテーション]({documentationLink})をご覧ください。\n\n", + "xpack.apm.tutorial.railsClient.configure.textPre": "APM はアプリの起動時に自動的に起動します。構成ファイル {configFile} を作成してエージェントを構成します", + "xpack.apm.tutorial.railsClient.configure.title": "エージェントの構成", + "xpack.apm.tutorial.railsClient.install.textPre": "Gemfile にエージェントを追加します。", + "xpack.apm.tutorial.railsClient.install.title": "APM エージェントのインストール", + "xpack.apm.tutorial.specProvider.artifacts.application.label": "APM を起動", + "xpack.apm.tutorial.specProvider.artifacts.dashboards.linkLabel": "APM ダッシュボード", + "xpack.apm.tutorial.specProvider.longDescription": "アプリケーションパフォーマンスモニタリング(APM)は、アプリケーション内から詳細なパフォーマンスメトリックやエラーを収集します。何千ものアプリケーションのパフォーマンスをリアルタイムで監視できます。[詳細]({learnMoreLink})。", + "xpack.apm.tutorial.specProvider.name": "APM", + "xpack.apm.tutorial.specProvider.savedObjectsInstallMsg": "APM UI の機能には APM インデックスパターンが必要なものがあります。", + "xpack.apm.tutorial.startServer.textPre": "サーバーは、Elasticsearch アプリケーションのパフォーマンスメトリックを処理し保存します。", + "xpack.apm.tutorial.startServer.title": "APM Server の起動", + "xpack.apm.tutorial.windowsServerInstructions.textPost": "注:システムでスクリプトの実行が無効な場合、スクリプトを実行するために現在のセッションの実行ポリシーの設定が必要となります。例:{command}。", + "xpack.apm.tutorial.windowsServerInstructions.textPre": "1.[ダウンロードページ]({downloadPageLink})から APM Server Windows zip ファイルをダウンロードします。\n2.zip ファイルの内容を {zipFileExtractFolder} に抽出します。\n3.「{apmServerDirectory} ディレクトリの名前を「APM-Server」に変更します。\n4.管理者としてPowerShellプロンプトを開きます(PowerShellアイコンを右クリックして「管理者として実行」を選択します)。Windows XPをご使用の場合、PowerShellのダウンロードとインストールが必要な場合があります。\n5.PowerShell プロンプトで次のコマンドを実行し、APM Server を Windows サービスとしてインストールします。", + "xpack.apm.unitLabel": "単位を選択", + "xpack.apm.urlFilter.wildcard": "ワイルドカード*{wildcard}*を使用", + "xpack.apm.ux.breadcrumbs.dashboard": "ダッシュボード", + "xpack.apm.ux.breadcrumbs.root": "ユーザーエクスペリエンス", + "xpack.apm.ux.jsErrors.percent": "{pageLoadPercent} %", + "xpack.apm.ux.localFilters.titles.webApplication": "Webアプリケーション", + "xpack.apm.ux.median": "中間", + "xpack.apm.ux.metrics": "メトリック", + "xpack.apm.ux.overview.agent.description": "APMエージェントを使用して、APMデータを収集します。多数の一般的な言語では、エージェントを使用することで処理が簡単になっています。", + "xpack.apm.ux.overview.agent.title": "APM統合を追加", + "xpack.apm.ux.overview.beatsCard.description": "APMエージェントでRUMを有効にして、ユーザーエクスペリエンスデータを収集します。", + "xpack.apm.ux.overview.beatsCard.title": "APM統合を追加", + "xpack.apm.ux.overview.heading": "ダッシュボード", + "xpack.apm.ux.overview.solutionName": "オブザーバビリティ", + "xpack.apm.ux.percentile.50thMedian": "50 番目(中央値)", + "xpack.apm.ux.percentile.75th": "75番目", + "xpack.apm.ux.percentile.90th": "90番目", + "xpack.apm.ux.percentile.95th": "95番目", + "xpack.apm.ux.percentile.99th": "99番目", + "xpack.apm.ux.percentile.label": "パーセンタイル", + "xpack.apm.ux.percentiles.label": "{value} パーセンタイル", + "xpack.apm.ux.title": "ダッシュボード", + "xpack.apm.ux.visitorBreakdown.noData": "データがありません。", + "xpack.apm.views.dependencies.title": "依存関係", + "xpack.apm.views.dependenciesInventory.title": "依存関係", + "xpack.apm.views.errors.title": "エラー", + "xpack.apm.views.listSettings.title": "設定", + "xpack.apm.views.logs.title": "ログ", + "xpack.apm.views.metrics.title": "メトリック", + "xpack.apm.views.nodes.title": "JVM", + "xpack.apm.views.overview.title": "概要", + "xpack.apm.views.serviceInventory.title": "サービス", + "xpack.apm.views.serviceMap.title": "サービスマップ", + "xpack.apm.views.serviceProfiling.title": "プロファイリング", + "xpack.apm.views.settings.agentConfiguration.title": "エージェントの編集", + "xpack.apm.views.settings.anomalyDetection.title": "異常検知", + "xpack.apm.views.settings.createAgentConfiguration.title": "エージェント構成の作成", + "xpack.apm.views.settings.customizeUI.title": "アプリをカスタマイズ", + "xpack.apm.views.settings.editAgentConfiguration.title": "エージェント構成の編集", + "xpack.apm.views.settings.indices.title": "インデックス", + "xpack.apm.views.settings.schema.title": "スキーマ", + "xpack.apm.views.traceOverview.title": "トレース", + "xpack.apm.views.transactions.title": "トランザクション", + "xpack.apm.waterfall.errorCount": "{errorCount, plural, one {関連するエラーを表示} other {View # 件の関連するエラーを表示}}", + "xpack.apm.waterfall.exceedsMax": "このトレースの項目数は表示されている範囲を超えています", "xpack.banners.settings.backgroundColor.description": "バナーの背景色。{subscriptionLink}", "xpack.banners.settings.backgroundColor.title": "バナー背景色", "xpack.banners.settings.placement.description": "Elasticヘッダーの上に、このスペースの上部のバナーを表示します。{subscriptionLink}", @@ -7305,6 +6584,8 @@ "xpack.canvas.elements.shapeHelpText": "カスタマイズ可能な図形です", "xpack.canvas.elements.tableDisplayName": "データテーブル", "xpack.canvas.elements.tableHelpText": "データを表形式で表示する、スクロール可能なグリッドです", + "xpack.canvas.elements.tagCloudDisplayName": "タグクラウド", + "xpack.canvas.elements.tagCloudHelpText": "タグクラウドのビジュアライゼーションです。", "xpack.canvas.elements.timeFilterDisplayName": "時間フィルター", "xpack.canvas.elements.timeFilterHelpText": "期間を設定します", "xpack.canvas.elements.verticalBarChartDisplayName": "縦棒", @@ -7622,6 +6903,7 @@ "xpack.canvas.functions.timelion.args.query": "Timelion クエリ", "xpack.canvas.functions.timelion.args.timezone": "時間範囲のタイムゾーンです。{MOMENTJS_TIMEZONE_URL} をご覧ください。", "xpack.canvas.functions.timelion.args.to": "時間範囲の終わりの {ELASTICSEARCH} {DATEMATH} 文字列です。", + "xpack.canvas.functions.timelion.executionError": "Timelionクエリの実行中にエラーが発生しました。 構文を確認して再試行してください。", "xpack.canvas.functions.timelionHelpText": "多くのソースから単独または複数の時系列を抽出するために、Timelionを使用します。", "xpack.canvas.functions.timerange.args.fromHelpText": "時間範囲の開始", "xpack.canvas.functions.timerange.args.toHelpText": "時間範囲の終了", @@ -7882,6 +7164,9 @@ "xpack.canvas.uis.arguments.textareaTitle": "テキストエリア", "xpack.canvas.uis.arguments.toggleLabel": "true/false トグルスイッチ", "xpack.canvas.uis.arguments.toggleTitle": "切り替え", + "xpack.canvas.uis.arguments.visDimensionDefaultOptionName": "列を選択", + "xpack.canvas.uis.arguments.visDimensionLabel": "visConfig ディメンションオブジェクトを生成します", + "xpack.canvas.uis.arguments.visDimensionTitle": "列", "xpack.canvas.uis.dataSources.demoData.headingTitle": "このエレメントはデモデータを使用しています", "xpack.canvas.uis.dataSources.demoDataDescription": "デフォルトとしては、すべての{canvas}エレメントはデモデータソースに接続されています。独自データに接続するために、上記のデータソースを変更します。", "xpack.canvas.uis.dataSources.demoDataLabel": "デフォルト要素の入力に使用されるサンプルデータセット", @@ -8057,6 +7342,27 @@ "xpack.canvas.uis.views.table.args.showHeaderToggleSwitch": "ヘッダー行を表示", "xpack.canvas.uis.views.tableLabel": "表エレメントのスタイルを設定します", "xpack.canvas.uis.views.tableTitle": "表スタイル", + "xpack.canvas.uis.views.tagcloud.args.bucketDisplayName": "バケット", + "xpack.canvas.uis.views.tagcloud.args.bucketHelp": "バケットディメンション構成", + "xpack.canvas.uis.views.tagcloud.args.maxFontHeightDisplayName": "最大フォント高さ", + "xpack.canvas.uis.views.tagcloud.args.maxFontHeightHelp": "要素フォントの最大高さ", + "xpack.canvas.uis.views.tagcloud.args.metricDisplayName": "メトリック", + "xpack.canvas.uis.views.tagcloud.args.metricHelp": "メトリックディメンション構成", + "xpack.canvas.uis.views.tagcloud.args.minFontHeightDisplayName": "最小フォント高さ", + "xpack.canvas.uis.views.tagcloud.args.minFontHeightHelp": "要素フォントの最小高さ", + "xpack.canvas.uis.views.tagcloud.args.orientationDisplayName": "向き", + "xpack.canvas.uis.views.tagcloud.args.orientationHelp": "タグクラウド内の単語の方向です。", + "xpack.canvas.uis.views.tagcloud.args.orientationMultipleLabel": "複数", + "xpack.canvas.uis.views.tagcloud.args.orientationRightAngledLabel": "直角", + "xpack.canvas.uis.views.tagcloud.args.orientationSingleLabel": "単一", + "xpack.canvas.uis.views.tagcloud.args.scaleDisplayName": "スケール", + "xpack.canvas.uis.views.tagcloud.args.scaleHelp": "単語のフォントサイズを決定するスケールです", + "xpack.canvas.uis.views.tagcloud.args.scaleLinearLabel": "線形", + "xpack.canvas.uis.views.tagcloud.args.scaleLogLabel": "ログ", + "xpack.canvas.uis.views.tagcloud.args.scaleSquareRootLabel": "平方根", + "xpack.canvas.uis.views.tagcloud.args.showLabelDisplayName": "ラベルを表示", + "xpack.canvas.uis.views.tagcloud.args.showLabelHelp": "グラフのラベルを表示", + "xpack.canvas.uis.views.tagcloudTitle": "タグクラウド", "xpack.canvas.uis.views.timefilter.args.columnConfirmButtonLabel": "設定", "xpack.canvas.uis.views.timefilter.args.columnLabel": "選択された時間が適用される列です", "xpack.canvas.uis.views.timefilter.args.columnTitle": "列", @@ -8115,9 +7421,9 @@ "xpack.canvas.workpadConfig.pageSizeBadgeOnClickAriaLabel": "ページサイズを {sizeName} に設定", "xpack.canvas.workpadConfig.swapDimensionsAriaLabel": "ページの幅と高さを入れ替えます", "xpack.canvas.workpadConfig.swapDimensionsTooltip": "ページの幅と高さを入れ替える", - "xpack.canvas.workpadConfig.title": "ワークパッドの設定", "xpack.canvas.workpadConfig.USLetterButtonLabel": "US レター", "xpack.canvas.workpadConfig.widthLabel": "幅", + "xpack.canvas.workpadConflict.redirectLabel": "ワークパッド", "xpack.canvas.workpadCreate.createButtonLabel": "ワークパッドを作成", "xpack.canvas.workpadHeader.addElementModalCloseButtonLabel": "閉じる", "xpack.canvas.workpadHeader.fullscreenButtonAriaLabel": "全画面表示", @@ -8194,6 +7500,7 @@ "xpack.canvas.workpadHeaderViewMenu.zoomPrecentageValue": "リセット", "xpack.canvas.workpadHeaderViewMenu.zoomResetText": "{scalePercentage}%", "xpack.canvas.workpadImport.filePickerPlaceholder": "ワークパッド {JSON} ファイルをインポート", + "xpack.canvas.workpadResolve.redirectLabel": "ワークパッド", "xpack.canvas.workpadTable.cloneTooltip": "ワークパッドのクローンを作成します", "xpack.canvas.workpadTable.exportTooltip": "ワークパッドをエクスポート", "xpack.canvas.workpadTable.loadWorkpadArialLabel": "ワークパッド「{workpadName}」を読み込む", @@ -8367,6 +7674,8 @@ "xpack.cases.configureCases.caseClosureOptionsSubCases": "サブケースの自動終了はサポートされていません。", "xpack.cases.configureCases.caseClosureOptionsTitle": "ケースの終了", "xpack.cases.configureCases.commentMapping": "コメント", + "xpack.cases.configureCases.deprecatedTooltipContent": "このコネクターは廃止予定です。更新するか新しく作成してください。", + "xpack.cases.configureCases.deprecatedTooltipText": "廃止予定", "xpack.cases.configureCases.fieldMappingDesc": "データを{ thirdPartyName }にプッシュするときに、ケースフィールドを{ thirdPartyName }フィールドにマッピングします。フィールドマッピングでは、{ thirdPartyName } への接続を確立する必要があります。", "xpack.cases.configureCases.fieldMappingDescErr": "{ thirdPartyName }のマッピングを取得できませんでした。", "xpack.cases.configureCases.fieldMappingEditAppend": "末尾に追加", @@ -8414,6 +7723,8 @@ "xpack.cases.connectors.serviceNow.alertFieldEnabledText": "はい", "xpack.cases.connectors.serviceNow.alertFieldsTitle": "プッシュするObservablesを選択", "xpack.cases.connectors.serviceNow.categoryTitle": "カテゴリー", + "xpack.cases.connectors.serviceNow.deprecatedConnectorWarningDesc": "このコネクターを更新するか新しいコネクターを作成してください。", + "xpack.cases.connectors.serviceNow.deprecatedConnectorWarningTitle": "このコネクターは廃止予定です", "xpack.cases.connectors.serviceNow.destinationIPTitle": "デスティネーション IP", "xpack.cases.connectors.serviceNow.impactSelectFieldLabel": "インパクト", "xpack.cases.connectors.serviceNow.malwareHashTitle": "マルウェアハッシュ", @@ -8457,11 +7768,23 @@ "xpack.cases.header.editableTitle.editButtonAria": "クリックすると {title} を編集できます", "xpack.cases.header.editableTitle.save": "保存", "xpack.cases.markdownEditor.plugins.lens.addVisualizationModalTitle": "ビジュアライゼーションを追加", - "xpack.cases.markdownEditor.plugins.lens.betaDescription": "ケースLensプラグインはGAではありません。不具合が発生したら報告してください。", + "xpack.cases.markdownEditor.plugins.lens.betaDescription": "このモジュールはGAではありません。現時点ではコメントごとに1つのLensのみを挿入できます。不具合を報告して支援してください。", "xpack.cases.markdownEditor.plugins.lens.betaLabel": "ベータ", + "xpack.cases.markdownEditor.plugins.lens.closeButtonLabel": "閉じる", "xpack.cases.markdownEditor.plugins.lens.createVisualizationButtonLabel": "ビジュアライゼーションを作成", "xpack.cases.markdownEditor.plugins.lens.insertLensSavedObjectModal.searchSelection.notFoundLabel": "一致するLensが見つかりません。", "xpack.cases.markdownEditor.plugins.lens.insertLensSavedObjectModal.searchSelection.savedObjectType.lens": "レンズ", + "xpack.cases.markdownEditor.plugins.lens.openVisualizationButtonLabel": "ビジュアライゼーションを開く", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.filterButtonLabel": "タイプ", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.searchInputHelpText": "既存のテンプレートからLensを挿入するか、新しく作成します。このコメントでのみLensが作成されます。Visualize Libraryは変更されません。", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.searchInputLabel": "Lensを選択", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.searchInputPrependLabel": "テンプレート", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.searchPlaceholder": "検索…", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.sortAsc": "昇順", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.sortAuto": "ベストマッチ", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.sortButtonLabel": "並べ替え", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.sortDesc": "降順", + "xpack.cases.markdownEditor.plugins.lens.visualizationButtonLabel": "ビジュアライゼーション", "xpack.cases.markdownEditor.plugins.timeline.noParenthesesErrorMsg": "想定される左括弧", "xpack.cases.markdownEditor.preview": "プレビュー", "xpack.cases.pageTitle": "ケース", @@ -8605,6 +7928,10 @@ "xpack.crossClusterReplication.deleteAutoFollowPattern.confirmModal.deleteMultipleTitle": "{count} 個の自動フォローパターンを削除しますか?", "xpack.crossClusterReplication.deleteAutoFollowPattern.confirmModal.deleteSingleTitle": "自動フォローパターン「{name}」を削除しますか?", "xpack.crossClusterReplication.deleteAutoFollowPattern.confirmModal.multipleDeletionDescription": "これらの自動フォローパターンを削除しようとしています:", + "xpack.crossClusterReplication.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "xpack.crossClusterReplication.deprecations.enabled.manualStepTwoMessage": "「xpack.ccr.enabled」設定を「xpack.ccr.ui.enabled」に変更します。", + "xpack.crossClusterReplication.deprecations.enabledMessage": "ユーザーがクラスター横断レプリケーションUIにアクセスすることを禁止するには、「xpack.ccr.enabled」ではなく、「xpack.ccr.ui.enabled」設定を使用します。", + "xpack.crossClusterReplication.deprecations.enabledTitle": "「xpack.ccr.enabled」設定は廃止予定です", "xpack.crossClusterReplication.editAutoFollowPatternButtonLabel": "パターンを編集", "xpack.crossClusterReplication.editBreadcrumbTitle": "編集", "xpack.crossClusterReplication.followerIndex.addAction.successNotificationTitle": "フォロワーインデックス「{name}」が追加されました", @@ -8904,11 +8231,13 @@ "xpack.dataVisualizer.components.colorRangeLegend.redGreenColorRangeLabel": "赤 - 緑", "xpack.dataVisualizer.components.colorRangeLegend.sqrtScaleLabel": "Sqrt", "xpack.dataVisualizer.components.colorRangeLegend.yellowGreenBlueColorRangeLabel": "黄 - 緑 - 青", + "xpack.dataVisualizer.customIntegrationsDescription": "分析するため、CSV、TSV、JSON、他のログファイルからElasticsearchにアップロードします。", "xpack.dataVisualizer.dataGrid.collapseDetailsForAllAriaLabel": "すべてのフィールドの詳細を折りたたむ", "xpack.dataVisualizer.dataGrid.distinctValuesColumnName": "固有の値", "xpack.dataVisualizer.dataGrid.distributionsColumnName": "分布", "xpack.dataVisualizer.dataGrid.documentsCountColumnName": "ドキュメント(%)", "xpack.dataVisualizer.dataGrid.expandDetailsForAllAriaLabel": "すべてのフィールドの詳細を展開", + "xpack.dataVisualizer.dataGrid.field.addFilterAriaLabel": "{fieldName}のフィルター:\"{value}\"", "xpack.dataVisualizer.dataGrid.field.cardBoolean.valuesLabel": "値", "xpack.dataVisualizer.dataGrid.field.cardDate.earliestLabel": "最も古い", "xpack.dataVisualizer.dataGrid.field.cardDate.latestLabel": "最新", @@ -8921,6 +8250,7 @@ "xpack.dataVisualizer.dataGrid.field.metricDistributionChart.seriesName": "分布", "xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueBetweenLabel": "{percent}% のドキュメントに {minValFormatted} から {maxValFormatted} の間の値があります", "xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueEqualLabel": "{percent}% のドキュメントに {valFormatted} の値があります", + "xpack.dataVisualizer.dataGrid.field.removeFilterAriaLabel": "{fieldName}の除外:\"{value}\"", "xpack.dataVisualizer.dataGrid.field.topValues.calculatedFromSampleDescription": "1 つのシャードにつき {topValuesSamplerShardSize} のドキュメントのサンプルで計算されています", "xpack.dataVisualizer.dataGrid.field.topValuesLabel": "トップの値", "xpack.dataVisualizer.dataGrid.fieldExpandedRow.booleanContent.falseCountLabel": "false", @@ -8955,7 +8285,17 @@ "xpack.dataVisualizer.fieldStats.maxTitle": "最高", "xpack.dataVisualizer.fieldStats.medianTitle": "中間", "xpack.dataVisualizer.fieldStats.minTitle": "分", + "xpack.dataVisualizer.fieldTypeIcon.booleanTypeLabel": "ブール", + "xpack.dataVisualizer.fieldTypeIcon.dateTypeLabel": "日付", "xpack.dataVisualizer.fieldTypeIcon.fieldTypeTooltip": "{type} タイプ", + "xpack.dataVisualizer.fieldTypeIcon.geoPointTypeLabel": "地理ポイント", + "xpack.dataVisualizer.fieldTypeIcon.geoShapeTypeLabel": "地理情報図形", + "xpack.dataVisualizer.fieldTypeIcon.histogramTypeLabel": "ヒストグラム", + "xpack.dataVisualizer.fieldTypeIcon.ipTypeLabel": "IP", + "xpack.dataVisualizer.fieldTypeIcon.keywordTypeLabel": "キーワード", + "xpack.dataVisualizer.fieldTypeIcon.numberTypeLabel": "数字", + "xpack.dataVisualizer.fieldTypeIcon.textTypeLabel": "テキスト", + "xpack.dataVisualizer.fieldTypeIcon.unknownTypeLabel": "不明", "xpack.dataVisualizer.fieldTypeSelect": "フィールド型", "xpack.dataVisualizer.file.aboutPanel.analyzingDataTitle": "データを分析中", "xpack.dataVisualizer.file.aboutPanel.selectOrDragAndDropFileDescription": "ファイルを選択するかドラッグ & ドロップしてください", @@ -9102,6 +8442,7 @@ "xpack.dataVisualizer.index.fullTimeRangeSelector.errorSettingTimeRangeNotification": "時間範囲の設定中にエラーが発生しました。", "xpack.dataVisualizer.index.fullTimeRangeSelector.useFullDataButtonLabel": "完全な {indexPatternTitle} データを使用", "xpack.dataVisualizer.index.indexPatternNotBasedOnTimeSeriesNotificationDescription": "異常検知は時間ベースのインデックスでのみ実行されます", + "xpack.dataVisualizer.index.indexPatternNotBasedOnTimeSeriesNotificationTitle": "インデックスパターン {indexPatternTitle} は時系列に基づくものではありません", "xpack.dataVisualizer.index.lensChart.averageOfLabel": "{fieldName}の平均", "xpack.dataVisualizer.index.lensChart.chartTitle": "{fieldName}のLens", "xpack.dataVisualizer.index.lensChart.countLabel": "カウント", @@ -9112,6 +8453,7 @@ "xpack.dataVisualizer.removeCombinedFieldsLabel": "結合されたフィールドを削除", "xpack.dataVisualizer.searchPanel.allFieldsLabel": "すべてのフィールド", "xpack.dataVisualizer.searchPanel.allOptionLabel": "すべて検索", + "xpack.dataVisualizer.searchPanel.invalidSyntax": "無効な構文", "xpack.dataVisualizer.searchPanel.numberFieldsLabel": "数値フィールド", "xpack.dataVisualizer.searchPanel.ofFieldsTotal": "合計 {totalCount}", "xpack.dataVisualizer.searchPanel.queryBarPlaceholder": "小さいサンプルサイズを選択することで、クエリの実行時間を短縮しクラスターへの負荷を軽減できます。", @@ -9132,7 +8474,9 @@ "xpack.enterpriseSearch.actions.manageButtonLabel": "管理", "xpack.enterpriseSearch.actions.resetDefaultButtonLabel": "デフォルトにリセット", "xpack.enterpriseSearch.actions.saveButtonLabel": "保存", + "xpack.enterpriseSearch.actions.startButtonLabel": "開始", "xpack.enterpriseSearch.actions.updateButtonLabel": "更新", + "xpack.enterpriseSearch.actions.viewButtonLabel": "表示", "xpack.enterpriseSearch.actionsHeader": "アクション", "xpack.enterpriseSearch.appSearch.actions.restoreDefaultsButonLabel": "デフォルトを復元", "xpack.enterpriseSearch.appSearch.adminRoleTypeDescription": "アカウント設定の管理を除き、管理者はすべての操作を実行できます。", @@ -9144,7 +8488,7 @@ "xpack.enterpriseSearch.appSearch.crawler.addDomainFlyout.description": "複数のドメインをこのエンジンのWebクローラーに追加できます。ここで別のドメインを追加して、[管理]ページからエントリポイントとクロールルールを変更します。", "xpack.enterpriseSearch.appSearch.crawler.addDomainFlyout.openButtonLabel": "ドメインを追加", "xpack.enterpriseSearch.appSearch.crawler.addDomainFlyout.title": "新しいドメインを追加", - "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.contentVerificationFalureMessage": "[ネットワーク接続]チェックが失敗したため、コンテンツを検証できません。", + "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.contentVerificationFalureMessage": "[インデックス制限]チェックが失敗したため、コンテンツを検証できません。", "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.contentVerificationLabel": "コンテンツ検証", "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.entryPointLabel": "Webクローラーエントリポイントが{entryPointValue}として設定されました", "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.errorsTitle": "何か問題が発生しましたエラーを解決して、再試行してください。", @@ -9206,7 +8550,9 @@ "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.description": "URLがルールと一致するページを含めるか除外するためのクロールルールを作成します。ルールは連続で実行されます。各URLは最初の一致に従って評価されます。{link}", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.descriptionLinkText": "クロールルールの詳細", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.pathPatternTableHead": "パスパターン", + "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.pathPatternTooltip": "パスパターンはアスタリスク(*)を除くリテラル文字列です。アスタリスクはいずれかと一致するメタ文字です。", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.policyTableHead": "ポリシー", + "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.regexPathPatternTooltip": "パスパターンは、Ruby言語正規表現エンジンと互換性がある正規表現です。", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.ruleTableHead": "ルール", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.title": "クロールルール", "xpack.enterpriseSearch.appSearch.crawler.deduplicationPanel.allFieldsLabel": "すべてのフィールド", @@ -9292,6 +8638,22 @@ "xpack.enterpriseSearch.appSearch.credentials.title": "資格情報", "xpack.enterpriseSearch.appSearch.credentials.updateWarning": "既存の API キーはユーザー間で共有できます。このキーのアクセス権を変更すると、このキーにアクセスできるすべてのユーザーに影響します。", "xpack.enterpriseSearch.appSearch.credentials.updateWarningTitle": "十分ご注意ください!", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestions.allowButtonDescription": "このクエリの候補を有効にする", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestions.allowButtonLabel": "許可", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestionsPanel.allowQuerySuccessMessage": "このクエリの将来の候補が通知されます", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestionsPanel.description": "このクエリの候補は通知されません", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestionsPanel.queryColumnName": "クエリ", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestionsPanel.title": "無視されたクエリ", + "xpack.enterpriseSearch.appSearch.curations.settings.acceptNewSuggesstionsSwitchLabel": "新しい候補を自動的に承諾", + "xpack.enterpriseSearch.appSearch.curations.settings.analyticsDisabledCalloutDescription": "自動キュレーションでは、アカウントで分析を有効にする必要があります。", + "xpack.enterpriseSearch.appSearch.curations.settings.analyticsDisabledCalloutTitle": "分析が無効です", + "xpack.enterpriseSearch.appSearch.curations.settings.automaticCurationsDescription": "提案されたキュレーションはエンジンの分析を監視し、自動候補を表示して、最も関連度の高い結果を提供できるようにします。各提案されたキュレーションは、承諾、却下、修正できます。", + "xpack.enterpriseSearch.appSearch.curations.settings.automaticCurationsTitle": "自動キュレーション", + "xpack.enterpriseSearch.appSearch.curations.settings.enableautomaticCurationsSwitchLabel": "自動候補を有効にする", + "xpack.enterpriseSearch.appSearch.curations.settings.licenseUpgradeCTASubtitle": "{platinumLicenseName}ライセンスをアップグレードし、機械学習の能力を高めます。エンジンの分析を解析することで、App Searchは新規または更新されたキュレーションを提案できます。ユーザーが検索している正確な内容を見つけられるように簡単に支援できます。今すぐ無料トライアルを開始してください。", + "xpack.enterpriseSearch.appSearch.curations.settings.licenseUpgradeCTATitle": "自動キュレーションの導入", + "xpack.enterpriseSearch.appSearch.curations.settings.manageAnalyticsButtonLabel": "分析の管理", + "xpack.enterpriseSearch.appSearch.curations.settings.platinum": "プラチナ", "xpack.enterpriseSearch.appSearch.DEV_ROLE_TYPE_DESCRIPTION": "開発者はエンジンのすべての要素を管理できます。", "xpack.enterpriseSearch.appSearch.documentCreation.api.description": "{documentsApiLink}を使用すると、新しいドキュメントをエンジンに追加できるほか、ドキュメントの更新、IDによるドキュメントの取得、ドキュメントの削除が可能です。基本操作を説明するさまざまな{clientLibrariesLink}があります。", "xpack.enterpriseSearch.appSearch.documentCreation.api.example": "実行中のAPIを表示するには、コマンドラインまたはクライアントライブラリを使用して、次の要求の例で実験することができます。", @@ -9300,7 +8662,7 @@ "xpack.enterpriseSearch.appSearch.documentCreation.buttons.crawl": "Crawler を使用", "xpack.enterpriseSearch.appSearch.documentCreation.buttons.file": "JSON ファイルのアップロード", "xpack.enterpriseSearch.appSearch.documentCreation.buttons.text": "JSON の貼り付け", - "xpack.enterpriseSearch.appSearch.documentCreation.description": "ドキュメントをインデックスのためにエンジンに送信するには、4 つの方法があります。未加工の JSON を貼り付け、{jsonCode} ファイル {postCode} を {documentsApiLink} エンドポイントにアップロードするか、新しい Elastic Crawler(ベータ)をテストして、自動的に URL からドキュメントにインデックスすることができます。以下の選択肢をクリックします。", + "xpack.enterpriseSearch.appSearch.documentCreation.description": "ドキュメントをインデックスのためにエンジンに送信するには、4 つの方法があります。未加工の JSON を貼り付け、{jsonCode} ファイル {postCode} を {documentsApiLink} エンドポイントにアップロードするか、新しい Elastic Crawlerを使用して、自動的に URL からドキュメントにインデックスすることができます。以下の選択肢をクリックします。", "xpack.enterpriseSearch.appSearch.documentCreation.errorsTitle": "何か問題が発生しましたエラーを解決して、再試行してください。", "xpack.enterpriseSearch.appSearch.documentCreation.largeFile": "非常に大きいファイルをアップロードしています。ブラウザーがロックされたり、処理に非常に時間がかかったりする可能性があります。可能な場合は、データを複数の小さいファイルに分割してください。", "xpack.enterpriseSearch.appSearch.documentCreation.noFileFound": "ファイルが見つかりません。", @@ -9423,12 +8785,25 @@ "xpack.enterpriseSearch.appSearch.engine.apiLogs.title": "API ログ", "xpack.enterpriseSearch.appSearch.engine.apiLogs.userAgentTitle": "ユーザーエージェント", "xpack.enterpriseSearch.appSearch.engine.crawler.title": "Webクローラー", + "xpack.enterpriseSearch.appSearch.engine.curation.automatedLabel": "自動", + "xpack.enterpriseSearch.appSearch.engine.curation.convertToManualCurationButtonLabel": "手動キュレーションに変換", + "xpack.enterpriseSearch.appSearch.engine.curation.detail.historyButtonLabel": "履歴", + "xpack.enterpriseSearch.appSearch.engine.curation.detail.historyTableDescription": "自動キュレーションに対する最近の変更に関する詳細ログ。", + "xpack.enterpriseSearch.appSearch.engine.curation.detail.historyTableTitle": "自動キュレーションの変更", + "xpack.enterpriseSearch.appSearch.engine.curation.suggestedDocumentsCallout.description": "エンジンの分析に基づいて、レビュー可能な新しい提案されたドキュメント昇格があります。", + "xpack.enterpriseSearch.appSearch.engine.curation.suggestedDocumentsCallout.title": "このクエリの新しい提案されたドキュメント", + "xpack.enterpriseSearch.appSearch.engine.curations.actionsPopoverAriaLabel": "その他の提案アクション", + "xpack.enterpriseSearch.appSearch.engine.curations.activeQueryHelpText": "オーガニック検索結果を表示するクエリを選択", "xpack.enterpriseSearch.appSearch.engine.curations.activeQueryLabel": "アクティブなクエリ", "xpack.enterpriseSearch.appSearch.engine.curations.addQueryButtonLabel": "クエリを追加", "xpack.enterpriseSearch.appSearch.engine.curations.addResult.buttonLabel": "結果を手動で追加", "xpack.enterpriseSearch.appSearch.engine.curations.addResult.searchEmptyDescription": "一致するコンテンツが見つかりません。", "xpack.enterpriseSearch.appSearch.engine.curations.addResult.searchPlaceholder": "検索エンジンドキュメント", "xpack.enterpriseSearch.appSearch.engine.curations.addResult.title": "結果をキュレーションに追加", + "xpack.enterpriseSearch.appSearch.engine.curations.automatedCurationsHistoryPanel.queryColumnHeader": "クエリ", + "xpack.enterpriseSearch.appSearch.engine.curations.automatedCurationsHistoryPanel.tableDecription": "自動キュレーションに対する最近の変更に関する詳細ログ。", + "xpack.enterpriseSearch.appSearch.engine.curations.automatedCurationsHistoryPanel.tableTitle": "自動キュレーションの変更", + "xpack.enterpriseSearch.appSearch.engine.curations.convertToManualCurationConfirmation": "これを手動キュレーションに変換しますか?", "xpack.enterpriseSearch.appSearch.engine.curations.create.curationQueriesDescription": "キュレーションする1つ以上のクエリを追加します。後からその他のクエリを追加または削除できます。", "xpack.enterpriseSearch.appSearch.engine.curations.create.curationQueriesTitle": "キュレーションクエリ", "xpack.enterpriseSearch.appSearch.engine.curations.create.title": "キューレーションを作成", @@ -9440,27 +8815,73 @@ "xpack.enterpriseSearch.appSearch.engine.curations.empty.noCurationsTitle": "最初のキュレーションを作成", "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.emptyDescription": "上記のオーガニック結果の目アイコンをクリックしてドキュメントを非表示にするか、結果を手動で検索して非表示にします。", "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.emptyTitle": "まだドキュメントを非表示にしていません", - "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.removeAllButtonLabel": "すべて復元", - "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.title": "非表示のドキュメント", + "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.removeAllButtonLabel": "すべて非表示", + "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.title": "非表示の結果", "xpack.enterpriseSearch.appSearch.engine.curations.hideButtonLabel": "この結果を非表示にする", + "xpack.enterpriseSearch.appSearch.engine.curations.historyPageTabLabel": "履歴", "xpack.enterpriseSearch.appSearch.engine.curations.manage.title": "キュレーションを管理", "xpack.enterpriseSearch.appSearch.engine.curations.manageQueryButtonLabel": "クエリを管理", "xpack.enterpriseSearch.appSearch.engine.curations.manageQueryDescription": "このキュレーションのクエリを編集、追加、削除します。", "xpack.enterpriseSearch.appSearch.engine.curations.manageQueryTitle": "クエリを管理", + "xpack.enterpriseSearch.appSearch.engine.curations.newBadgeLabel": "新機能!", + "xpack.enterpriseSearch.appSearch.engine.curations.organicDocuments.description": "表示するオーガニック結果はありません。{manualDescription}", + "xpack.enterpriseSearch.appSearch.engine.curations.organicDocuments.manualDescription": "上記のアクティブなクエリを追加または変更します。", "xpack.enterpriseSearch.appSearch.engine.curations.organicDocuments.title": "\"{currentQuery}\"の上位のオーガニックドキュメント", "xpack.enterpriseSearch.appSearch.engine.curations.overview.title": "キュレーションされた結果", + "xpack.enterpriseSearch.appSearch.engine.curations.overviewPageTabLabel": "概要", "xpack.enterpriseSearch.appSearch.engine.curations.promoteButtonLabel": "この結果を昇格", + "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.automatedEmptyDescription": "昇格するドキュメントが特定されていません", "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.emptyDescription": "以下のオーガニック結果からドキュメントにスターを付けるか、手動で結果を検索して昇格します。", + "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.managedByAppSearchDescription": "このキュレーションはApp Searchで自動化されています", "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.removeAllButtonLabel": "すべて降格", - "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.title": "昇格されたドキュメント", + "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.title": "昇格された結果", "xpack.enterpriseSearch.appSearch.engine.curations.queryPlaceholder": "クエリを入力", + "xpack.enterpriseSearch.appSearch.engine.curations.rejectedCurationsHistoryPanel.queryColumnHeader": "クエリ", + "xpack.enterpriseSearch.appSearch.engine.curations.rejectedCurationsHistoryPanel.tableDescription": "以前に却下した候補を表示します。", + "xpack.enterpriseSearch.appSearch.engine.curations.rejectedCurationsHistoryPanel.tableTitle": "最近却下した候補", "xpack.enterpriseSearch.appSearch.engine.curations.restoreConfirmation": "変更を消去して、デフォルトの結果に戻りますか?", "xpack.enterpriseSearch.appSearch.engine.curations.resultActionsDescription": "スターをクリックして結果を昇格し、目をクリックして非表示にします。", + "xpack.enterpriseSearch.appSearch.engine.curations.settingsPageTabLabel": "設定", "xpack.enterpriseSearch.appSearch.engine.curations.showButtonLabel": "この結果を表示", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.acceptButtonLabel": "承諾", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsAcceptButtonLabel": "この候補を承諾", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsAutomateButtonLabel": "自動化 - このクエリの新しい候補を常に承諾", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsPopoverTitle": "候補の管理", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsRejectButtonLabel": "この候補を却下", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsTurnOffButtonLabel": "このクエリの候補を却下してオフにする", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.breadcrumbLabel": "候補:{query}", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.collapseButtonLabel": "オーガニック検索結果を折りたたむ", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.currentTitle": "現在", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.expandButtonLabel": "オーガニック検索結果を展開", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.noOrganicResultsDescription": "このクエリのオーガニック検索結果は返されませんでした", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.noOrganicResultsTitle": "成果がありません", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.noResultsMessage": "現在このクエリの昇格されたドキュメントはありません", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.notFoundError": "候補が見つかりませんでした。すでに適用されているか却下されている可能性があります。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.rejectButtonLabel": "却下", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.resultPanelDescription": "このキュレーションはApp Searchで自動化できます", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.resultPanelTitle": "昇格された結果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.successfullyAppliedMessage": "候補は正常に適用されました。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.successfullyAutomatedMessage": "候補は正常に適用され、今後のすべてのクエリ\"{query}\"の候補は自動的に適用されます。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.successfullyDisabledMessage": "候補は正常に却下され、クエリ\"{query}\"の候補は今後表示されません。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.successfullyRejectedMessage": "候補は正常に却下されました。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.suggestionTitle": "候補", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.title": "候補の管理", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsCallout.hideForNowLabel": "これを非表示", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsCallout.reviewSuggestionsButtonLabel": "候補のレビュー", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.column.lastUpdatedTableHeader": "最終更新", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.column.promotedDocumentsTableHeader": "昇格された結果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.column.queryTableHeader": "クエリ", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.description": "分析に基づいて、一部のドキュメントを昇格すると、次のクエリの結果を改善できます。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.overridesLabel": "上書き", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.title": "{totalSuggestions}件の候補", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.viewTooltip": "候補を表示", + "xpack.enterpriseSearch.appSearch.engine.curations.table.automatedLabel": "自動", "xpack.enterpriseSearch.appSearch.engine.curations.table.column.lastUpdated": "最終更新", "xpack.enterpriseSearch.appSearch.engine.curations.table.column.queries": "クエリ", "xpack.enterpriseSearch.appSearch.engine.curations.table.deleteTooltip": "キュレーションを削除", "xpack.enterpriseSearch.appSearch.engine.curations.table.editTooltip": "キュレーションを編集", + "xpack.enterpriseSearch.appSearch.engine.curations.table.newSuggestionLabel": "新しい候補", + "xpack.enterpriseSearch.appSearch.engine.curations.table.title": "アクティブなキュレーション", "xpack.enterpriseSearch.appSearch.engine.curations.title": "キュレーション", "xpack.enterpriseSearch.appSearch.engine.documents.empty.buttonLabel": "ドキュメントガイドを読む", "xpack.enterpriseSearch.appSearch.engine.metaEngineBadge": "メタエンジン", @@ -9635,6 +9056,8 @@ "xpack.enterpriseSearch.appSearch.engine.souceEngines.addSourceEnginesPlaceholder": "エンジンを選択", "xpack.enterpriseSearch.appSearch.engine.souceEngines.removeSourceEngineSuccessMessage": "エンジン'{engineName}'はこのメタエンジンから削除されました", "xpack.enterpriseSearch.appSearch.engine.souceEngines.title": "エンジンの管理", + "xpack.enterpriseSearch.appSearch.engine.suggestedCurationsCallout.description": "エンジンの分析に基づいて、レビュー可能な新しい提案されたキュレーションがあります。", + "xpack.enterpriseSearch.appSearch.engine.suggestedCurationsCallout.title": "レビューする新しい提案されたキュレーション", "xpack.enterpriseSearch.appSearch.engine.synonyms.createSuccessMessage": "同義語セットが作成されました", "xpack.enterpriseSearch.appSearch.engine.synonyms.createSynonymSetButtonLabel": "同義語セットを作成", "xpack.enterpriseSearch.appSearch.engine.synonyms.createSynonymSetTitle": "同義語セットを追加", @@ -9698,6 +9121,12 @@ "xpack.enterpriseSearch.appSearch.enginesOverview.table.column.language": "言語", "xpack.enterpriseSearch.appSearch.enginesOverview.table.column.name": "名前", "xpack.enterpriseSearch.appSearch.enginesOverview.title": "エンジン概要", + "xpack.enterpriseSearch.appSearch.integrations.apiDescription": "App Searchの堅牢なAPIを使用して、検索をアプリケーションに追加します。", + "xpack.enterpriseSearch.appSearch.integrations.apiName": "API", + "xpack.enterpriseSearch.appSearch.integrations.jsonDescription": "App Searchを使用して、JSONデータを検索します。", + "xpack.enterpriseSearch.appSearch.integrations.jsonName": "JSON", + "xpack.enterpriseSearch.appSearch.integrations.webCrawlerDescription": "App SearchのWebクローラーを使用して、検索をWebサイトに追加します。", + "xpack.enterpriseSearch.appSearch.integrations.webCrawlerName": "Webクローラー", "xpack.enterpriseSearch.appSearch.logRetention.callout.description.manageSettingsDetail": "分析とログを管理するには、{visitSettingsLink}してください。", "xpack.enterpriseSearch.appSearch.logRetention.callout.description.manageSettingsLinkText": "設定を表示", "xpack.enterpriseSearch.appSearch.logRetention.callout.disabledSinceTitle": "{logsTitle}は、{disabledDate}以降に無効にされました。", @@ -9711,6 +9140,8 @@ "xpack.enterpriseSearch.appSearch.logRetention.type.analytics.title.lowercase": "分析", "xpack.enterpriseSearch.appSearch.logRetention.type.api.title.capitalized": "API", "xpack.enterpriseSearch.appSearch.logRetention.type.api.title.lowercase": "API", + "xpack.enterpriseSearch.appSearch.logRetention.type.crawler.title.capitalized": "Webクローラー", + "xpack.enterpriseSearch.appSearch.logRetention.type.crawler.title.lowercase": "Webクローラー", "xpack.enterpriseSearch.appSearch.metaEngineCreation.form.documentationDescription": "基本操作については、{documentationLink}。", "xpack.enterpriseSearch.appSearch.metaEngineCreation.form.documentationLink": "ドキュメントを読む", "xpack.enterpriseSearch.appSearch.metaEngineCreation.form.engineName.allowedCharactersHelpText": "メタエンジン名には、小文字、数字、ハイフンのみを使用できます。", @@ -9730,11 +9161,12 @@ "xpack.enterpriseSearch.appSearch.multiInputRows.inputRowPlaceholder": "値を入力", "xpack.enterpriseSearch.appSearch.multiInputRows.removeValueButtonLabel": "値を削除", "xpack.enterpriseSearch.appSearch.ownerRoleTypeDescription": "所有者はすべての操作を実行できます。アカウントには複数の所有者がいる場合がありますが、一度に少なくとも1人以上の所有者が必要です。", - "xpack.enterpriseSearch.appSearch.productCardDescription": "強力な検索を設計し、Webサイトとアプリにデプロイします。", + "xpack.enterpriseSearch.appSearch.productCardDescription": "WebサイトとWeb/モバイルアプリの強力な検索エクスペリエンスを設計、デプロイ、管理します。", "xpack.enterpriseSearch.appSearch.productDescription": "ダッシュボード、分析、APIを活用し、高度なアプリケーション検索をシンプルにします。", "xpack.enterpriseSearch.appSearch.productName": "App Search", "xpack.enterpriseSearch.appSearch.result.documentDetailLink": "ドキュメントの詳細を表示", "xpack.enterpriseSearch.appSearch.result.hideAdditionalFields": "追加フィールドを非表示", + "xpack.enterpriseSearch.appSearch.result.resultPositionLabel": "#{resultPosition}", "xpack.enterpriseSearch.appSearch.result.title": "ドキュメント{id}", "xpack.enterpriseSearch.appSearch.roleMappingCreatedMessage": "ロールマッピングが作成されました", "xpack.enterpriseSearch.appSearch.roleMappingDeletedMessage": "ロールマッピングが削除されました", @@ -9745,6 +9177,7 @@ "xpack.enterpriseSearch.appSearch.sampleEngineCreationCta.title": "ティアを始めたばかりの場合", "xpack.enterpriseSearch.appSearch.settings.logRetention.analytics.label": "ログ分析イベント", "xpack.enterpriseSearch.appSearch.settings.logRetention.api.label": "ログAPIイベント", + "xpack.enterpriseSearch.appSearch.settings.logRetention.crawler.label": "Webクローラーログ", "xpack.enterpriseSearch.appSearch.settings.logRetention.description": "ログ保持はデプロイのILMポリシーで決定されます。", "xpack.enterpriseSearch.appSearch.settings.logRetention.learnMore": "エンタープライズ サーチのログ保持の詳細をご覧ください。", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.analytics.description": "書き込みを無効にすると、エンジンが分析イベントのログを停止します。既存のデータは保存時間フレームに従って削除されます。", @@ -9753,6 +9186,9 @@ "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.api.description": "書き込みを無効にすると、エンジンがAPIイベントのログを停止します。既存のデータは保存時間フレームに従って削除されます。", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.api.subheading": "API ログは現在 {minAgeDays} 日間保存されています。", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.api.title": "API 書き込みを無効にする", + "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.crawler.description": "書き込みを無効にすると、エンジンがWebクローラーイベントのログを停止します。既存のデータは保存時間フレームに従って削除されます。", + "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.crawler.subheading": "現在、Webクローラーログは{minAgeDays}日間保存されています。", + "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.crawler.title": "Webクローラーの書き込みを無効にする", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.disable": "無効にする", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.prompt": "確認する「{target}」を入力します。", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.recovery": "削除されたデータは復元できません。", @@ -9780,6 +9216,8 @@ "xpack.enterpriseSearch.appSearch.tokens.search.description": "エンドポイントのみの検索では、公開検索キーが使用されます。", "xpack.enterpriseSearch.appSearch.tokens.search.name": "公開検索キー", "xpack.enterpriseSearch.appSearch.tokens.update": "APIキー'{name}'が更新されました", + "xpack.enterpriseSearch.curations.settings.licenseUpgradeLink": "ライセンスアップグレードの詳細", + "xpack.enterpriseSearch.curations.settings.start30DayTrialButtonLabel": "30 日間のトライアルの開始", "xpack.enterpriseSearch.emailLabel": "メール", "xpack.enterpriseSearch.enterpriseSearch.setupGuide.description": "場所を問わず、何でも検索。組織を支える多忙なチームのために、パワフルでモダンな検索エクスペリエンスを簡単に導入できます。Webサイトやアプリ、ワークプレイスに事前調整済みの検索をすばやく追加しましょう。何でもシンプルに検索できます。", "xpack.enterpriseSearch.enterpriseSearch.setupGuide.notConfigured": "エンタープライズサーチはまだKibanaインスタンスで構成されていません。", @@ -9791,8 +9229,8 @@ "xpack.enterpriseSearch.errorConnectingState.setupGuideCta": "セットアップガイドを確認", "xpack.enterpriseSearch.errorConnectingState.title": "接続できません", "xpack.enterpriseSearch.errorConnectingState.troubleshootAuth": "ユーザー認証を確認してください。", - "xpack.enterpriseSearch.errorConnectingState.troubleshootAuthNative": "Elasticsearchネイティブ認証またはSSO/SAMLを使用して認証する必要があります。", - "xpack.enterpriseSearch.errorConnectingState.troubleshootAuthSAML": "SSO/SAMLを使用している場合は、エンタープライズ サーチでSAMLレルムも設定する必要があります。", + "xpack.enterpriseSearch.errorConnectingState.troubleshootAuthNative": "Elasticsearchネイティブ認証、SSO/SAML、またはOpenID Connectを使用して認証する必要があります。", + "xpack.enterpriseSearch.errorConnectingState.troubleshootAuthSAML": "SAMLやOpenID Connectなどの外部SSOプロバイダーを使用している場合は、エンタープライズ サーチでSAML/OIDCレルムを設定できる必要があります。", "xpack.enterpriseSearch.FeatureCatalogue.description": "厳選されたAPIとツールを使用して検索エクスペリエンスを作成します。", "xpack.enterpriseSearch.hiddenText": "非表示のテキスト", "xpack.enterpriseSearch.inlineEditableTable.newRowButtonLabel": "新しい行", @@ -9846,6 +9284,9 @@ "xpack.enterpriseSearch.roleMapping.invitationDescription": "このURLをユーザーと共有すると、ユーザーはエンタープライズサーチの招待を承諾したり、新しいパスワードを設定したりできます。", "xpack.enterpriseSearch.roleMapping.invitationLink": "エンタープライズサーチの招待リンク", "xpack.enterpriseSearch.roleMapping.invitationPendingLabel": "招待保留", + "xpack.enterpriseSearch.roleMapping.kibanaAccessWarningDescription": "「enterprise-search-user」ロールを付与することを検討してください。", + "xpack.enterpriseSearch.roleMapping.kibanaAccessWarningErrorMessage": "このElasticsearchユーザーはElasticsearchでエンタープライズ サーチロールが割り当てられていません。Kibanaへのアクセス権がない可能性があります。", + "xpack.enterpriseSearch.roleMapping.kibanaAccessWarningTitle": "Kibanaアクセスの警告", "xpack.enterpriseSearch.roleMapping.manageRoleMappingTitle": "ロールマッピングを管理", "xpack.enterpriseSearch.roleMapping.newInvitationLabel": "招待URL", "xpack.enterpriseSearch.roleMapping.newRoleMappingTitle": "ロールマッピングを追加", @@ -9931,8 +9372,17 @@ "xpack.enterpriseSearch.troubleshooting.differentEsClusters.title": "{productName}とKibanaは別のElasticsearchクラスターにあります", "xpack.enterpriseSearch.troubleshooting.standardAuth.description": "このプラグインは、{standardAuthLink}の{productName}を完全にはサポートしていません。{productName}で作成されたユーザーはKibanaアクセス権が必要です。Kibanaで作成されたユーザーは、ナビゲーションメニューに{productName}が表示されません。", "xpack.enterpriseSearch.troubleshooting.standardAuth.title": "標準認証の{productName}はサポートされていません", + "xpack.enterpriseSearch.units.allDaysLabel": "すべての日", "xpack.enterpriseSearch.units.daysLabel": "日", + "xpack.enterpriseSearch.units.daysOfWeekLabel.friday": "金曜日", + "xpack.enterpriseSearch.units.daysOfWeekLabel.monday": "月曜日", + "xpack.enterpriseSearch.units.daysOfWeekLabel.saturday": "土曜日", + "xpack.enterpriseSearch.units.daysOfWeekLabel.sunday": "日曜日", + "xpack.enterpriseSearch.units.daysOfWeekLabel.thursday": "木曜日", + "xpack.enterpriseSearch.units.daysOfWeekLabel.tuesday": "火曜日", + "xpack.enterpriseSearch.units.daysOfWeekLabel.wednesday": "水曜日", "xpack.enterpriseSearch.units.hoursLabel": "時間", + "xpack.enterpriseSearch.units.minutesLabel": "分", "xpack.enterpriseSearch.units.monthsLabel": "か月", "xpack.enterpriseSearch.units.weeksLabel": "週間", "xpack.enterpriseSearch.usernameLabel": "ユーザー名", @@ -9951,6 +9401,8 @@ "xpack.enterpriseSearch.workplaceSearch.and": "AND", "xpack.enterpriseSearch.workplaceSearch.baseUri.label": "ベースURL", "xpack.enterpriseSearch.workplaceSearch.baseUrl.label": "ベースURL", + "xpack.enterpriseSearch.workplaceSearch.betweenLabel": "の間", + "xpack.enterpriseSearch.workplaceSearch.blockLabel": "ブロック", "xpack.enterpriseSearch.workplaceSearch.clientId.label": "クライアントID", "xpack.enterpriseSearch.workplaceSearch.clientSecret.label": "クライアントシークレット", "xpack.enterpriseSearch.workplaceSearch.comfirmModal.title": "確認してください", @@ -9965,8 +9417,8 @@ "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.emptyTitle": "使用可能なソースがありません", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.newSourceDescription": "ソースを構成して接続するときには、コンテンツプラットフォームから同期された検索可能なコンテンツのある異なるエンティティを作成しています。使用可能ないずれかのソースコネクターを使用して、またはカスタムAPIソースを経由してソースを追加すると、柔軟性を高めることができます。", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.noSourcesTitle": "最初のコンテンツソースを構成して接続", - "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.orgSourceDescription": "保存されたコンテンツソースは組織全体で使用可能にするか、特定のユーザーグループに割り当てることができます。", - "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.orgSourcesTitle": "共有コンテンツソースを追加", + "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.orgSourceDescription": "組織コンテンツソースは組織全体で使用可能にするか、特定のユーザーグループに割り当てることができます。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.orgSourcesTitle": "組織コンテンツソースを追加", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.placeholder": "ソースのフィルタリング...", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.privateSourceDescription": "新しいソースを接続して、コンテンツとドキュメントを検索エクスペリエンスに追加します。", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.privateSourcesTitle": "新しいコンテンツソースを追加", @@ -9982,11 +9434,15 @@ "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.orgCanConnect.message": "{name}をWorkplace Searchに接続できます", "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.personalConnectLink.message": "ユーザーは個人ダッシュボードから{name}アカウントをリンクできます。", "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.privateDisabled.button": "非公開コンテンツソースの詳細。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.privateDisabled.link": "非公開ソース接続を有効にする", "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.privateDisabled.message": "必ずセキュリティ設定で{securityLink}してください。", "xpack.enterpriseSearch.workplaceSearch.contentSource.configCustom.button": "カスタムAPIソースの作成", + "xpack.enterpriseSearch.workplaceSearch.contentSource.configCustom.docs.link.description": "カスタムAPIソースの詳細については、{link}。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.configCustom.docs.link.text": "ドキュメントを読む", "xpack.enterpriseSearch.workplaceSearch.contentSource.configDocs.applicationPortal.button": "{name}アプリケーションポータル", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.alt.text": "接続の例", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.configure.button": "{name}の構成", + "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.step1.badge": "ワンタイムアクション", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.step1.heading": "手順1", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.step1.text": "自分またはチームが接続してコンテンツを同期するために使用する安全なOAuthアプリケーションをコンテンツソース経由で設定します。この手順を実行する必要があるのは、コンテンツソースごとに1回だけです。", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.step1.title": "OAuthアプリケーション{badge}の構成", @@ -10023,12 +9479,15 @@ "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.body1": "エンドポイントは要求を承認できます。", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.body2": "必ず次のAPIキーをコピーしてください。", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.displaySettings.text": "{link}を使用して、検索結果内でドキュメントが表示される方法をカスタマイズします。デフォルトでは、Workplace Searchは英字順でフィールドを使用します。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.docPermissions.link": "ドキュメントレベルのアクセス権", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.docPermissions.title": "ドキュメントレベルのアクセス権を設定", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.documentation.text": "カスタムAPIソースの詳細については、{link}。", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.heading": "{name}が作成されました", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.permissions.text": "{link}は個別またはグループの属性でコンテンツアクセスコンテンツを管理します。特定のドキュメントへのアクセスを許可または拒否。", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.return.button": "ソースに戻る", + "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.stylingResults.link": "表示設定", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.stylingResults.title": "スタイルの結果", + "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.visualWalkthrough.link": "ドキュメントを確認", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.visualWalkthrough.title": "表示の確認", "xpack.enterpriseSearch.workplaceSearch.contentSource.schema.addField.button": "フィールドの追加", "xpack.enterpriseSearch.workplaceSearch.contentSource.schema.empty.description": "一部のドキュメントにインデックスを作成すると、スキーマが作成されます。あらかじめスキーマフィールドを作成するには、以下をクリックします。", @@ -10047,7 +9506,20 @@ "xpack.enterpriseSearch.workplaceSearch.contentSource.schema.updated.message": "スキーマが更新されました。", "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.documentLevelPermissions.text": "ドキュメントレベルのアクセス権は、定義されたルールに基づいて、ユーザーコンテンツアクセスを管理します。個人またはグループの特定のドキュメントへのアクセスを許可または拒否します。", "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.documentLevelPermissions.title": "プラチナライセンスで提供されているドキュメントレベルのアクセス権", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.globalAccessPermissions.description": "接続しているサービスユーザーがアクセス可能なすべてのドキュメントは同期され、組織のユーザーまたはグループのユーザーが使用できるようになります。ドキュメントは直ちに検索で使用できます", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.globalAccessPermissions.title": "グローバルアクセス権限", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.private.description": "返された結果は自分に固有で関連性があります。このソースを接続しても、個人データは他の検索ユーザーに公開されません。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.private.title": "常に非公開", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.remote.description": "メッセージデータと他の情報は、Workplace Searchエクスペリエンスからリアルタイムで検索可能です。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.remote.title": "常に最新", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.searchable.description": "次の項目は検索可能です。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.searchable.title": "検索可能なコンテンツ", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.syncedItems.title": "同期された項目", "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.syncFrequency.text": "このソースは、(初回の同期の後){duration}ごとに{name}から新しいコンテンツを取得します。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.syncFrequency.time": "2時間", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.syncFrequency.title": "2時間ごとに同期", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.color.label": "色", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.createdBy.label": "作成者", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.displaySettings.description": "カスタムAPIソース検索結果の内容と表示をカスタマイズします。", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.displaySettings.title": "表示設定", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.displaySettingsEmpty.body": "表示設定を構成するには、一部のコンテンツを表示する必要があります。", @@ -10057,6 +9529,8 @@ "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.featuredResults.title": "強調された結果", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.go.button": "Go", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.lastUpdated.heading": "最終更新", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.mediaType.label": "メディアタイプ", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.optionalArea.text": "この領域は任意です", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.preview.title": "プレビュー", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.reset.button": "リセット", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.resultDetail.label": "結果詳細", @@ -10069,13 +9543,25 @@ "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.success.message": "表示設定は正常に更新されました。", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.title.heading": "タイトル", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.title.label": "タイトル", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.type.label": "型", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.unsaved.message": "表示設定は保存されていません。終了してよろしいですか?", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.updatedBy.label": "更新者", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.url.label": "URL", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.visibleFields.title": "表示フィールド", - "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementContentExtractionLabel": "すべてのテキストとコンテンツを同期", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.estimateSummaryLabel": "完了に{estimateDisplay}かかると推定されています。", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.frequencyItemLabel": "次の間隔で{label}を実行", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.lastRunLabel": "前回の実行", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.lastRunSummary": "この同期の{lastRunStrong}は{lastRunTime}でした。", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.nextStartLabel": "次回の実行", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.nextStartSummary": "{nextStartStrong}は{nextStartTime}に開始します。", + "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementContentExtractionLabel": "ファイルから全文を同期", "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementGlobalConfigLabel": "サムネイルを同期 - グローバル構成レベルでは無効", "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementSynchronizeLabel": "このソースを同期", "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementThumbnailsLabel": "サムネイルを同期", "xpack.enterpriseSearch.workplaceSearch.copyText": "コピー", + "xpack.enterpriseSearch.workplaceSearch.credentialItem.copied.tooltip": "コピー完了", + "xpack.enterpriseSearch.workplaceSearch.credentialItem.copy.tooltip": "クリップボードにコピー", + "xpack.enterpriseSearch.workplaceSearch.credentialItem.show.tooltip": "{credential}を表示します。", "xpack.enterpriseSearch.workplaceSearch.credentials.description": "クライアントで次の資格情報を使用して、認証サーバーからアクセストークンを要求します。", "xpack.enterpriseSearch.workplaceSearch.credentials.title": "資格情報", "xpack.enterpriseSearch.workplaceSearch.customize.header.description": "一般組織設定をパーソナライズします。", @@ -10085,24 +9571,29 @@ "xpack.enterpriseSearch.workplaceSearch.description.label": "説明", "xpack.enterpriseSearch.workplaceSearch.documentsHeader": "ドキュメント", "xpack.enterpriseSearch.workplaceSearch.editField.label": "フィールドの編集", + "xpack.enterpriseSearch.workplaceSearch.explorePlatinumFeatures.link": "プラチナ機能の詳細", "xpack.enterpriseSearch.workplaceSearch.field.label": "フィールド", "xpack.enterpriseSearch.workplaceSearch.groups.addGroup.heading": "グループを追加", + "xpack.enterpriseSearch.workplaceSearch.groups.addGroup.label": "グループ名", "xpack.enterpriseSearch.workplaceSearch.groups.addGroup.submit.action": "グループを追加", "xpack.enterpriseSearch.workplaceSearch.groups.addGroupForm.action": "グループを作成", "xpack.enterpriseSearch.workplaceSearch.groups.clearFilters.action": "フィルターを消去", - "xpack.enterpriseSearch.workplaceSearch.groups.contentSourceCountHeading": "{numSources}件の共有コンテンツソース", - "xpack.enterpriseSearch.workplaceSearch.groups.description": "共有コンテンツソースとユーザーをグループに割り当て、さまざまな内部チーム向けに関連する検索エクスペリエンスを作成します。", + "xpack.enterpriseSearch.workplaceSearch.groups.contentSourceCountHeading": "{numSources}件の組織コンテンツソース", + "xpack.enterpriseSearch.workplaceSearch.groups.description": "組織コンテンツソースとユーザーをグループに割り当て、さまざまな内部チーム向けに関連する検索エクスペリエンスを作成します。", "xpack.enterpriseSearch.workplaceSearch.groups.filterGroups.placeholder": "名前でグループをフィルター...", "xpack.enterpriseSearch.workplaceSearch.groups.filterSources.buttonText": "ソース", "xpack.enterpriseSearch.workplaceSearch.groups.groupDeleted": "グループ「{groupName}」が正常に削除されました。", "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerHeaderTitle": "{label}を管理", - "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceEmpty.body": "まだ共有コンテンツソースが追加されていない可能性があります。", + "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceEmpty.body": "まだ組織コンテンツソースが追加されていない可能性があります。", "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceEmpty.title": "おっと!", - "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerUpdateAddSourceButton": "共有ソースを追加", + "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceModal.deselectButton.text": "すべて選択解除", + "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceModal.selectButton.text": "すべて選択", + "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerUpdateAddSourceButton": "組織ソースを追加", "xpack.enterpriseSearch.workplaceSearch.groups.groupNotFound": "ID「{groupId}」のグループが見つかりません。", - "xpack.enterpriseSearch.workplaceSearch.groups.groupPrioritizationUpdated": "共有ソース優先度が正常に更新されました。", + "xpack.enterpriseSearch.workplaceSearch.groups.groupPrioritizationUpdated": "組織ソース優先度が正常に更新されました。", "xpack.enterpriseSearch.workplaceSearch.groups.groupRenamed": "このグループ名が正常に「{groupName}」に変更されました。", - "xpack.enterpriseSearch.workplaceSearch.groups.groupSourcesUpdated": "共有コンテンツソースが正常に更新されました。", + "xpack.enterpriseSearch.workplaceSearch.groups.groupSourcesUpdated": "組織コンテンツソースが正常に更新されました。", + "xpack.enterpriseSearch.workplaceSearch.groups.groupsTable.groupPagination.label": "グループ", "xpack.enterpriseSearch.workplaceSearch.groups.groupsTable.groupTableHeader": "グループ", "xpack.enterpriseSearch.workplaceSearch.groups.groupsTable.sourcesTableHeader": "コンテンツソース", "xpack.enterpriseSearch.workplaceSearch.groups.groupUpdatedText": "前回更新日時{updatedAt}。", @@ -10110,7 +9601,7 @@ "xpack.enterpriseSearch.workplaceSearch.groups.inviteUsers.action": "ユーザーを招待", "xpack.enterpriseSearch.workplaceSearch.groups.newGroup.action": "グループを管理", "xpack.enterpriseSearch.workplaceSearch.groups.newGroupSavedSuccess": "{groupName}が正常に作成されました", - "xpack.enterpriseSearch.workplaceSearch.groups.noSourcesMessage": "共有コンテンツソースがありません", + "xpack.enterpriseSearch.workplaceSearch.groups.noSourcesMessage": "組織コンテンツソースがありません", "xpack.enterpriseSearch.workplaceSearch.groups.noUsersMessage": "ユーザーがありません", "xpack.enterpriseSearch.workplaceSearch.groups.overview.confirmRemoveButtonText": "{name}を削除", "xpack.enterpriseSearch.workplaceSearch.groups.overview.confirmRemoveDescription": "グループはWorkplace Searchから削除されます。{name}を削除してよろしいですか?", @@ -10119,7 +9610,7 @@ "xpack.enterpriseSearch.workplaceSearch.groups.overview.groupSourcesDescription": "「{name}」グループのすべてのユーザーによって検索可能です。", "xpack.enterpriseSearch.workplaceSearch.groups.overview.groupSourcesTitle": "グループコンテンツソース", "xpack.enterpriseSearch.workplaceSearch.groups.overview.groupUsersDescription": "このグループに割り当てられたユーザーは、上記で定義されたソースのデータとコンテンツへのアクセスを取得します。ユーザーおよびロール領域ではこのグループのユーザー割り当てを管理できます。", - "xpack.enterpriseSearch.workplaceSearch.groups.overview.manageSourcesButtonText": "共有コンテンツソースを管理", + "xpack.enterpriseSearch.workplaceSearch.groups.overview.manageSourcesButtonText": "組織コンテンツソースの確認", "xpack.enterpriseSearch.workplaceSearch.groups.overview.manageUsersButtonText": "ユーザーとロールの管理", "xpack.enterpriseSearch.workplaceSearch.groups.overview.nameSectionDescription": "このグループの名前をカスタマイズします。", "xpack.enterpriseSearch.workplaceSearch.groups.overview.nameSectionTitle": "グループ名", @@ -10130,15 +9621,52 @@ "xpack.enterpriseSearch.workplaceSearch.groups.overview.usersSectionTitle": "グループユーザー", "xpack.enterpriseSearch.workplaceSearch.groups.searchResults.notFoound": "結果が見つかりませんでした。", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.headerDescription": "グループコンテンツソース全体で相対ドキュメント重要度を調整します。", - "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.headerTitle": "共有コンテンツソースの優先度", + "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.headerTitle": "組織コンテンツソースの優先度", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.priorityTableHeader": "関連性優先度", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.sourceTableHeader": "送信元", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateBody": "2つ以上のソースを{groupName}と共有し、ソース優先度をカスタマイズします。", - "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateButtonText": "共有コンテンツソースを追加", + "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateButtonText": "組織コンテンツソースの追加", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateTitle": "ソースはこのグループと共有されていません", - "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "共有コンテンツソース", + "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "組織コンテンツソース", "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalTitle": "{groupName}と共有するコンテンツソースを選択", + "xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription": "Workplace Searchを使用して、Boxに保存されたファイルとフォルダーを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.boxName": "Box", + "xpack.enterpriseSearch.workplaceSearch.integrations.confluenceCloudDescription": "Workplace Searchを使用して、Confluence Cloudの組織コンテンツを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.confluenceCloudName": "Confluence Cloud", + "xpack.enterpriseSearch.workplaceSearch.integrations.confluenceServerDescription": "Workplace Searchを使用して、Confluence Serverの組織コンテンツを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.confluenceServerName": "Confluence Server", + "xpack.enterpriseSearch.workplaceSearch.integrations.customApiSourceDescription": "Workplace Searchを使用して、独自の統合を構築し、項目を検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.customApiSourceName": "カスタムAPIソース", + "xpack.enterpriseSearch.workplaceSearch.integrations.dropboxDescription": "Workplace Searchを使用して、Dropboxに保存されたファイルとフォルダーを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.dropboxName": "Dropbox", + "xpack.enterpriseSearch.workplaceSearch.integrations.githubDescription": "Workplace Searchを使用して、GitHubのプロジェクトとリポジトリを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.githubEnterpriseServerDescription": "Workplace Searchを使用して、GitHub Enterprise Serverのプロジェクトとリポジトリを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.githubEnterpriseServerName": "GitHub Enterprise Server", + "xpack.enterpriseSearch.workplaceSearch.integrations.githubName": "GitHub", + "xpack.enterpriseSearch.workplaceSearch.integrations.gmailDescription": "Workplace Searchを使用して、Gmailで管理された電子メールを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.gmailName": "Gmail", + "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "Workplace Searchを使用して、Google Driveのドキュメントを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveName": "Google Drive", + "xpack.enterpriseSearch.workplaceSearch.integrations.jiraCloudDescription": "Workplace Searchを使用して、Jira Cloudのプロジェクトワークフローを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.jiraCloudName": "Jira Cloud", + "xpack.enterpriseSearch.workplaceSearch.integrations.jiraServerDescription": "Workplace Searchを使用して、Jira Serverのプロジェクトワークフローを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.jiraServerName": "Jira Server", + "xpack.enterpriseSearch.workplaceSearch.integrations.onedriveDescription": "Workplace Searchを使用して、OneDriveに保存されたファイルを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.onedriveName": "OneDrive", + "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceDescription": "Workplace Searchを使用して、Salesforceのコンテンツを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceName": "Salesforce", + "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceSandboxDescription": "Workplace Searchを使用して、Salesforce Sandboxのコンテンツを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceSandboxName": "Salesforce Sandbox", + "xpack.enterpriseSearch.workplaceSearch.integrations.servicenowDescription": "Workplace Searchを使用して、ServiceNowのコンテンツを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.servicenowName": "ServiceNow", + "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineDescription": "Workplace Searchを使用して、SharePointに保存されたファイルを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "SharePoint Online", + "xpack.enterpriseSearch.workplaceSearch.integrations.slackDescription": "Workplace Searchを使用して、Slackのメッセージを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.slackName": "Slack", + "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription": "Workplace Searchを使用して、Zendeskのチケットを検索します。", + "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName": "Zendesk", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "編集を続行", + "xpack.enterpriseSearch.workplaceSearch.label.label": "ラベル", "xpack.enterpriseSearch.workplaceSearch.name.label": "名前", "xpack.enterpriseSearch.workplaceSearch.nav.addSource": "ソースの追加", "xpack.enterpriseSearch.workplaceSearch.nav.content": "コンテンツ", @@ -10157,6 +9685,9 @@ "xpack.enterpriseSearch.workplaceSearch.nav.settingsOauth": "OAuthアプリケーション", "xpack.enterpriseSearch.workplaceSearch.nav.settingsSourcePrioritization": "コンテンツソースコネクター", "xpack.enterpriseSearch.workplaceSearch.nav.sources": "ソース", + "xpack.enterpriseSearch.workplaceSearch.nav.synchronization": "同期", + "xpack.enterpriseSearch.workplaceSearch.nav.synchronizationFrequency": "頻度", + "xpack.enterpriseSearch.workplaceSearch.nav.synchronizationObjectsAndAssets": "オブジェクトとアセット", "xpack.enterpriseSearch.workplaceSearch.nonPlatinumOauthDescription": "Workplace Search検索APIを安全に使用するために、OAuthアプリケーションを構成します。プラチナライセンスにアップグレードして、検索APIを有効にし、OAuthアプリケーションを作成します。", "xpack.enterpriseSearch.workplaceSearch.nonPlatinumOauthTitle": "カスタム検索アプリケーションのOAuthを構成", "xpack.enterpriseSearch.workplaceSearch.oauth.description": "組織のOAuthクライアントを作成します。", @@ -10171,8 +9702,10 @@ "xpack.enterpriseSearch.workplaceSearch.oauthAuthorize.writeScopeDescription": "データの変更", "xpack.enterpriseSearch.workplaceSearch.oauthPersisted.description": "組織のOAuthクライアント資格情報にアクセスし、OAuth設定を管理します。", "xpack.enterpriseSearch.workplaceSearch.ok.button": "OK", + "xpack.enterpriseSearch.workplaceSearch.onLabel": "日付", "xpack.enterpriseSearch.workplaceSearch.organizationStats.activeUsers": "アクティブなユーザー", "xpack.enterpriseSearch.workplaceSearch.organizationStats.invitations": "招待", + "xpack.enterpriseSearch.workplaceSearch.organizationStats.organizationalSources": "組織ソース", "xpack.enterpriseSearch.workplaceSearch.organizationStats.privateSources": "プライベートソース", "xpack.enterpriseSearch.workplaceSearch.organizationStats.title": "使用統計情報", "xpack.enterpriseSearch.workplaceSearch.orgNameOnboarding.buttonLabel": "組織名を指定", @@ -10181,11 +9714,14 @@ "xpack.enterpriseSearch.workplaceSearch.overviewHeader.title": "組織概要", "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingHeader.description": "次の手順を完了し、組織を設定してください。", "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingHeader.title": "Workplace Searchの基本", - "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingSourcesCard.description": "検索を開始するには、組織の共有ソースを追加してください。", - "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingSourcesCard.title": "共有ソース", + "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingSourcesCard.description": "検索を開始するには、組織の組織ソースを追加してください。", + "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingSourcesCard.title": "組織ソース", "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingUsersCard.description": "検索できるように、同僚をこの組織に招待します。", + "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingUsersCard.inviteFirstUsers.button": "ユーザーを招待", + "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingUsersCard.inviteMoreUsers.button": "その他のユーザーを招待", "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingUsersCard.title": "ユーザーと招待", "xpack.enterpriseSearch.workplaceSearch.overviewUsersCard.title": "検索できるように、同僚を招待しました。", + "xpack.enterpriseSearch.workplaceSearch.personalDashboard.readOnlyMode.warning": "現在、定期メンテナンス中のため、Workplace Searchは検索でのみ使用できます。詳細については、システム管理者に連絡してください。", "xpack.enterpriseSearch.workplaceSearch.personalDashboardSourceError": "ソースに接続できませんでした。ヘルプについては管理者に問い合わせてください。エラーメッセージ:{error}", "xpack.enterpriseSearch.workplaceSearch.platinumFeature": "プラチナ機能", "xpack.enterpriseSearch.workplaceSearch.privatePlatinumCallout.text": "非公開ソースにはプラチナライセンスが必要です。", @@ -10254,6 +9790,7 @@ "xpack.enterpriseSearch.workplaceSearch.settings.resetImageConfirmationText": "実行しますか?", "xpack.enterpriseSearch.workplaceSearch.settings.resetImageTitle": "デフォルトブランドにリセット", "xpack.enterpriseSearch.workplaceSearch.settings.resetLogoDescription": "ロゴをデフォルトのWorkplace Searchブランドにリセットしようとしています。", + "xpack.enterpriseSearch.workplaceSearch.setupGuide.button": "Workplace Searchの基本", "xpack.enterpriseSearch.workplaceSearch.setupGuide.description": "Google Drive、Salesforceなどのコンテンツプラットフォームを、パーソナライズされた検索エクスペリエンスに統合します。", "xpack.enterpriseSearch.workplaceSearch.setupGuide.imageAlt": "Workplace Searchの基本というガイドでは、Workplace Searchを起動して実行する方法について説明します。", "xpack.enterpriseSearch.workplaceSearch.setupGuide.notConfigured": "Workplace SearchはKibanaでは構成されていません。このページの手順に従ってください。", @@ -10267,16 +9804,22 @@ "xpack.enterpriseSearch.workplaceSearch.sources.additionalConfig.heading": "追加の構成が必要", "xpack.enterpriseSearch.workplaceSearch.sources.applicationLinkTitles.github": "GitHub開発者ポータル", "xpack.enterpriseSearch.workplaceSearch.sources.baseUrlTitles.github": "GitHub Enterprise URL", - "xpack.enterpriseSearch.workplaceSearch.sources.config.link": "コンテンツソースコネクター設定を編集", + "xpack.enterpriseSearch.workplaceSearch.sources.blockedEmptyStateDescription": "適切な時刻にのみ実行するには、ブロックされた時間帯を追加します。", + "xpack.enterpriseSearch.workplaceSearch.sources.blockedEmptyStateTitle": "ブロックされた時間帯はありません", + "xpack.enterpriseSearch.workplaceSearch.sources.blockedWindowsTitle": "ブロックされた時間帯", + "xpack.enterpriseSearch.workplaceSearch.sources.config.link": "コネクター設定の編集", "xpack.enterpriseSearch.workplaceSearch.sources.config.title": "コンテンツソース構成", "xpack.enterpriseSearch.workplaceSearch.sources.configuration.title": "構成", "xpack.enterpriseSearch.workplaceSearch.sources.contentLoading.text": "コンテンツを読み込んでいます...", "xpack.enterpriseSearch.workplaceSearch.sources.contentSummary.title": "コンテンツ概要", + "xpack.enterpriseSearch.workplaceSearch.sources.contentSummaryLoading.text": "概要詳細を読み込んでいます...", "xpack.enterpriseSearch.workplaceSearch.sources.contentType.header": "コンテンツタイプ", "xpack.enterpriseSearch.workplaceSearch.sources.created.label": "作成済み:", "xpack.enterpriseSearch.workplaceSearch.sources.customCallout.title": "カスタムソースの基本", "xpack.enterpriseSearch.workplaceSearch.sources.customSourceDocs.link": "ドキュメンテーション", "xpack.enterpriseSearch.workplaceSearch.sources.customSourceDocs.text": "コンテンツの追加の詳細については、{documentationLink}を参照してください", + "xpack.enterpriseSearch.workplaceSearch.sources.deletionSyncDescription": "コンテンツソースに存在しないドキュメントを削除します", + "xpack.enterpriseSearch.workplaceSearch.sources.deletionSyncLabel": "削除同期", "xpack.enterpriseSearch.workplaceSearch.sources.docPermissions.description": "ドキュメントレベルのアクセス権は、個別またはグループの属性でコンテンツアクセスコンテンツを管理します。特定のドキュメントへのアクセスを許可または拒否。", "xpack.enterpriseSearch.workplaceSearch.sources.documentation": "ドキュメント", "xpack.enterpriseSearch.workplaceSearch.sources.documentPermissions.text": "ドキュメントレベルのアクセス権を使用", @@ -10292,9 +9835,13 @@ "xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceConnected": "正常に{sourceName}を接続しました。", "xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceNameChanged": "名前が正常に{sourceName}に変更されました。", "xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceRemoved": "{sourceName}が正常に削除されました。", + "xpack.enterpriseSearch.workplaceSearch.sources.fullSyncDescription": "コンテンツソースからすべてのドキュメントを取得します", + "xpack.enterpriseSearch.workplaceSearch.sources.fullSyncLabel": "完全同期", "xpack.enterpriseSearch.workplaceSearch.sources.groupAccess.title": "グループアクセス", "xpack.enterpriseSearch.workplaceSearch.sources.helpText.custom": "カスタムAPIソースを作成するには、人間が読み取れるわかりやすい名前を入力します。この名前はさまざまな検索エクスペリエンスと管理インターフェースでそのまま表示されます。", "xpack.enterpriseSearch.workplaceSearch.sources.id.label": "ソース識別子", + "xpack.enterpriseSearch.workplaceSearch.sources.incrementalSyncDescription": "前回の同期ジョブ以降に発生したドキュメント/更新を取得します", + "xpack.enterpriseSearch.workplaceSearch.sources.incrementalSyncLabel": "差分同期", "xpack.enterpriseSearch.workplaceSearch.sources.items.header": "アイテム", "xpack.enterpriseSearch.workplaceSearch.sources.learnCustom.features.button": "プラチナ機能の詳細", "xpack.enterpriseSearch.workplaceSearch.sources.learnMore.link": "詳細", @@ -10302,6 +9849,7 @@ "xpack.enterpriseSearch.workplaceSearch.sources.learnMoreCustom.text": "カスタムソースについては、{learnMoreLink}。", "xpack.enterpriseSearch.workplaceSearch.sources.licenseCallout.description": "詳細については、検索エクスペリエンス管理者に問い合わせてください。", "xpack.enterpriseSearch.workplaceSearch.sources.licenseCallout.title": "非公開ソースは使用できません", + "xpack.enterpriseSearch.workplaceSearch.sources.nextSyncRunningMessage": "現在実行中のジョブが完了したらすぐに実行", "xpack.enterpriseSearch.workplaceSearch.sources.noContent.title": "コンテンツがありません", "xpack.enterpriseSearch.workplaceSearch.sources.noContentEmpty.message": "このソースにはコンテンツがありません", "xpack.enterpriseSearch.workplaceSearch.sources.noContentForValue.message": "'{contentFilterValue}'の結果がありません", @@ -10321,7 +9869,7 @@ "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.folders": "フォルダー", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.gSuiteFiles": "Google G Suiteドキュメント(ドキュメント、スプレッドシート、スライド)", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.incidents": "インシデント", - "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.issues": "問題", + "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.issues": "問題(コメントを含む)", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.items": "アイテム", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.leads": "リード", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.opportunities": "機会", @@ -10329,7 +9877,7 @@ "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.privateMessages": "自分がアクティブな参加者である非公開チャネルメッセージ", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.projects": "プロジェクト", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.publicMessages": "公開チャネルメッセージ", - "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.pullRequests": "プル要求", + "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.pullRequests": "プル要求(コメントを含む)", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.repositoryList": "リポジトリリスト", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.sites": "サイト", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.spaces": "スペース", @@ -10338,14 +9886,19 @@ "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.tickets": "チケット", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.users": "ユーザー", "xpack.enterpriseSearch.workplaceSearch.sources.org.description": "組織コンテンツソースは組織全体で使用可能にするか、特定のユーザーグループに割り当てることができます。", + "xpack.enterpriseSearch.workplaceSearch.sources.org.empty.description": "コンテンツソースが自分と共有されたら、ここに表示され、検索エクスペリエンスで使用できます。", + "xpack.enterpriseSearch.workplaceSearch.sources.org.empty.title": "コンテンツソースがありません", "xpack.enterpriseSearch.workplaceSearch.sources.org.link": "組織コンテンツソースを追加", "xpack.enterpriseSearch.workplaceSearch.sources.org.title": "組織ソース", + "xpack.enterpriseSearch.workplaceSearch.sources.permissionsSyncDescription": "前回の同期ジョブ以降のすべてのアクセス権の変更を取得します", + "xpack.enterpriseSearch.workplaceSearch.sources.permissionsSyncLabel": "アクセス権同期", "xpack.enterpriseSearch.workplaceSearch.sources.private.canCreate.description": "接続されたすべての非公開ソースのステータスを確認し、アカウントの非公開ソースを管理します。", "xpack.enterpriseSearch.workplaceSearch.sources.private.canCreate.title": "非公開コンテンツソースの管理", "xpack.enterpriseSearch.workplaceSearch.sources.private.empty.title": "非公開ソースがありません", "xpack.enterpriseSearch.workplaceSearch.sources.private.header.description": "非公開コンテンツソースは自分のみが使用できます。", "xpack.enterpriseSearch.workplaceSearch.sources.private.header.title": "自分の非公開コンテンツソース", "xpack.enterpriseSearch.workplaceSearch.sources.private.link": "非公開コンテンツソースを追加", + "xpack.enterpriseSearch.workplaceSearch.sources.private.privateOrg.header.title": "組織コンテンツソース", "xpack.enterpriseSearch.workplaceSearch.sources.private.vewOnly.description": "グループと共有するすべてのソースのステータスを確認します。", "xpack.enterpriseSearch.workplaceSearch.sources.private.vewOnly.title": "グループソースの確認", "xpack.enterpriseSearch.workplaceSearch.sources.ready.text": "検索できます", @@ -10356,10 +9909,14 @@ "xpack.enterpriseSearch.workplaceSearch.sources.settings.heading": "設定", "xpack.enterpriseSearch.workplaceSearch.sources.settings.title": "コンテンツソース名", "xpack.enterpriseSearch.workplaceSearch.sources.settingsModal.text": "ソースドキュメントはWorkplace Searchから削除されます。{lineBreak}{name}を削除しますか?", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceBlockedTimeWindowsLinkLabel": "ブロックされた時間帯", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceContent.searchBar.filter.placeholder": "コンテンツのフィルター...", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceContent.searchBar.search.placeholder": "コンテンツの検索...", "xpack.enterpriseSearch.workplaceSearch.sources.sourceContent.title": "ソースコンテンツ", "xpack.enterpriseSearch.workplaceSearch.sources.sourceDisabled.button": "プラチナライセンスの詳細", "xpack.enterpriseSearch.workplaceSearch.sources.sourceDisabled.description": "組織のライセンスレベルが変更されました。データは安全ですが、ドキュメントレベルのアクセス権はサポートされなくなり、このソースの検索は無効になっています。このソースを再有効化するには、プラチナライセンスにアップグレードしてください。", "xpack.enterpriseSearch.workplaceSearch.sources.sourceDisabled.title": "コンテンツソースが無効です", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceFrequencyDescription": "Workplace searchからこのコンテンツソースへのデータ同期の頻度を管理します。同期の間隔を短くして、データが最新の状態であることを保証します。同期の間隔を長くして、サードパーティのサーバーへの負荷を減らします。", "xpack.enterpriseSearch.workplaceSearch.sources.sourceName.label": "ソース名", "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.box": "Box", "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.confluence": "Confluence", @@ -10379,7 +9936,19 @@ "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.sharePoint": "SharePoint Online", "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.slack": "Slack", "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.zendesk": "Zendesk", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceObjectsAndAssetsDescription": "このコンテンツソースからWorkplace Searchに同期されるオブジェクトとアセットを決定するインデックスルールをカスタマイズします。", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceObjectsAndAssetsLabel": "検索結果に含めるオブジェクトと詳細", "xpack.enterpriseSearch.workplaceSearch.sources.sourceOverviewTitle": "ソース概要", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSyncConfirmMessage": "この要求を続行し、他のすべての同期を停止しますか?", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSyncConfirmTitle": "新しいコンテンツ同期を開始しますか?", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSyncFrequencyLinkLabel": "同期頻度", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSyncFrequencyTitle": "同期頻度", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationButtonLabel": "コンテンツの同期", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationDescription": "このコンテンツソースからWorkplace Searchへのデータの同期を有効または無効にします。", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationFrequencyTitle": "同期頻度", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationTitle": "同期", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationToggleDescription": "ソースコンテンツは自動的に同期状態が維持されます。", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationToggleLabel": "このソースを同期", "xpack.enterpriseSearch.workplaceSearch.sources.status.header": "ステータス", "xpack.enterpriseSearch.workplaceSearch.sources.status.heading": "すべて問題なし", "xpack.enterpriseSearch.workplaceSearch.sources.status.label": "ステータス:", @@ -10387,9 +9956,18 @@ "xpack.enterpriseSearch.workplaceSearch.sources.syncDiagnosticsButton": "診断データをダウンロード", "xpack.enterpriseSearch.workplaceSearch.sources.syncDiagnosticsDescription": "アクティブ同期プロセスのトラブルシューティングで関連する診断データを取得します。", "xpack.enterpriseSearch.workplaceSearch.sources.syncDiagnosticsTitle": "診断の同期", + "xpack.enterpriseSearch.workplaceSearch.sources.synchronizationCallout": "{syncFrequencyLink}または{blockTimeWindowsLink}を構成します。", + "xpack.enterpriseSearch.workplaceSearch.sources.synchronizationDisabledDescription": "同期制御を有効にするには、管理者に問い合わせてください。", + "xpack.enterpriseSearch.workplaceSearch.sources.synchronizationDisabledTitle": "ソース同期が無効です。", + "xpack.enterpriseSearch.workplaceSearch.sources.syncSettingsUpdatedMessage": "ソース同期設定が更新されました。", + "xpack.enterpriseSearch.workplaceSearch.sources.syncUnsavedChangesMessage": "変更は保存されていません。終了してよろしいですか?", "xpack.enterpriseSearch.workplaceSearch.sources.time.header": "時間", "xpack.enterpriseSearch.workplaceSearch.sources.totalDocuments.label": "合計ドキュメント数", "xpack.enterpriseSearch.workplaceSearch.sources.understandButton": "理解します", + "xpack.enterpriseSearch.workplaceSearch.sources.utcLabel": "現在のUTC時刻:{utcTime}", + "xpack.enterpriseSearch.workplaceSearch.sources.utcTitle": "すべての時刻はUTC表記です", + "xpack.enterpriseSearch.workplaceSearch.sourcesOnboardingCard.addFirstSources.button": "ソースの追加", + "xpack.enterpriseSearch.workplaceSearch.sourcesOnboardingCard.addMoreSources.button": "その他のソースを追加", "xpack.enterpriseSearch.workplaceSearch.sourcesView.modal.docPermissions.description": "ユーザーおよびグループマッピングが構成されるまでは、ドキュメントをWorkplace Searchから検索できません。{documentPermissionsLink}", "xpack.enterpriseSearch.workplaceSearch.sourcesView.modal.heading": "{addedSourceName}には追加の構成が必要です", "xpack.enterpriseSearch.workplaceSearch.sourcesView.modal.success": "{addedSourceName}は正常に接続されました。初期コンテンツ同期がすでに実行中です。ドキュメントレベルのアクセス権情報を同期することを選択したので、{externalIdentitiesLink}を使用してユーザーおよびグループマッピングを指定する必要があります。", @@ -10466,6 +10044,10 @@ "xpack.fileUpload.maxFileSizeUiSetting.name": "最大ファイルアップロードサイズ", "xpack.fileUpload.noFileNameError": "ファイル名が指定されていません", "xpack.fleet.addAgentButton": "エージェントの追加", + "xpack.fleet.addAgentHelpPopover.documentationLink": "Elasticエージェントの詳細。", + "xpack.fleet.addAgentHelpPopover.footActionButton": "OK", + "xpack.fleet.addAgentHelpPopover.popoverBody": "統合が正常に動作するために、{elasticAgent}をホストに追加し、データを収集して、Elastic Stackに送信してください。{learnMoreLink}", + "xpack.fleet.addAgentHelpPopover.title": "必ずエージェントをホストに追加してください", "xpack.fleet.agentBulkActions.clearSelection": "選択した項目をクリア", "xpack.fleet.agentBulkActions.reassignPolicy": "新しいポリシーに割り当てる", "xpack.fleet.agentBulkActions.selectAll": "すべてのページのすべての項目を選択", @@ -10512,8 +10094,9 @@ "xpack.fleet.agentEnrollment.copyRunInstructionsButton": "クリップボードにコピー", "xpack.fleet.agentEnrollment.downloadDescription": "FleetサーバーはElasticエージェントで実行されます。Elasticエージェントダウンロードページでは、Elasticエージェントバイナリと検証署名をダウンロードできます。", "xpack.fleet.agentEnrollment.downloadLink": "ダウンロードページに移動", - "xpack.fleet.agentEnrollment.downloadPolicyButton": "ダウンロードポリシー", - "xpack.fleet.agentEnrollment.downloadUseLinuxInstaller": "Linuxユーザー:(RPM/DEB)ではインストーラーを使用することをお勧めします。インストーラーではFleet内のエージェントをアップグレードできます。", + "xpack.fleet.agentEnrollment.downloadPolicyButton": "ポリシーのダウンロード", + "xpack.fleet.agentEnrollment.downloadPolicyButtonk8s": "マニフェストのダウンロード", + "xpack.fleet.agentEnrollment.downloadUseLinuxInstaller": "Linuxユーザー:Fleetでエージェントをアップグレードできるため、システムパッケージ(RPM/DEB)ではインストーラー(TAR)をお勧めします。", "xpack.fleet.agentEnrollment.enrollFleetTabLabel": "Fleetで登録", "xpack.fleet.agentEnrollment.enrollStandaloneTabLabel": "スタンドアロンで実行", "xpack.fleet.agentEnrollment.fleetSettingsLink": "Fleet設定", @@ -10522,18 +10105,20 @@ "xpack.fleet.agentEnrollment.managedDescription": "ElasticエージェントをFleetに登録して、自動的に更新をデプロイしたり、一元的にエージェントを管理したりします。", "xpack.fleet.agentEnrollment.missingFleetHostCalloutText": "Fleetにエージェントを登録するには、FleetサーバーホストのURLが必要です。Fleet設定でこの情報を追加できます。詳細は{link}をご覧ください。", "xpack.fleet.agentEnrollment.missingFleetHostCalloutTitle": "FleetサーバーホストのURLが見つかりません", - "xpack.fleet.agentEnrollment.missingFleetHostGuideLink": "Fleetユーザーガイド", + "xpack.fleet.agentEnrollment.missingFleetHostGuideLink": "FleetおよびElasticエージェントガイド", "xpack.fleet.agentEnrollment.setUpAgentsLink": "Elasticエージェントの集中管理を設定", "xpack.fleet.agentEnrollment.standaloneDescription": "Elasticエージェントをスタンドアロンで実行して、エージェントがインストールされているホストで、手動でエージェントを構成および更新します。", "xpack.fleet.agentEnrollment.stepCheckForDataDescription": "エージェントがデータの送信を開始します。{link}に移動して、データを表示してください。", "xpack.fleet.agentEnrollment.stepCheckForDataTitle": "データを確認", "xpack.fleet.agentEnrollment.stepChooseAgentPolicyTitle": "エージェントポリシーを選択", "xpack.fleet.agentEnrollment.stepConfigureAgentDescription": "Elasticエージェントがインストールされているホストで、このポリシーを{fileName}にコピーします。Elasticsearch資格情報を使用するには、{fileName}の{outputSection}セクションで、{ESUsernameVariable}と{ESPasswordVariable}を変更します。", + "xpack.fleet.agentEnrollment.stepConfigureAgentDescriptionk8s": "Kubernetesクラスター内でKubernetesマニフェストをコピーしてダウンロードします。Daemonset環境変数で{ESUsernameVariable}と{ESPasswordVariable}を修正し、マニフェストを適用します。", "xpack.fleet.agentEnrollment.stepConfigureAgentTitle": "エージェントの構成", "xpack.fleet.agentEnrollment.stepConfigurePolicyAuthenticationTitle": "登録トークンを選択", "xpack.fleet.agentEnrollment.stepDownloadAgentTitle": "Elasticエージェントをホストにダウンロード", "xpack.fleet.agentEnrollment.stepEnrollAndRunAgentTitle": "Elasticエージェントを登録して実行", "xpack.fleet.agentEnrollment.stepRunAgentDescription": "エージェントのディレクトリから、このコマンドを実行し、Elasticエージェントを、インストール、登録、起動します。このコマンドを再利用すると、複数のホストでエージェントを設定できます。管理者権限が必要です。", + "xpack.fleet.agentEnrollment.stepRunAgentDescriptionk8s": "Kubernetesマニフェストがダウンロードされるディレクトリから適用コマンドを実行します。", "xpack.fleet.agentEnrollment.stepRunAgentTitle": "エージェントの起動", "xpack.fleet.agentEnrollment.stepViewDataTitle": "データを表示", "xpack.fleet.agentEnrollment.viewDataDescription": "エージェントが起動した後、Kibanaでデータを表示するには、統合のインストールされたアセットを使用します。{pleaseNote}:初期データを受信するまでに数分かかる場合があります。", @@ -10579,6 +10164,7 @@ "xpack.fleet.agentLogs.downloadLink": "ダウンロード", "xpack.fleet.agentLogs.logDisabledCallOutDescription": "エージェントのポリシーを更新{settingsLink}して、ログ収集を有効にします。", "xpack.fleet.agentLogs.logDisabledCallOutTitle": "ログ収集は無効です", + "xpack.fleet.agentLogs.logLevelEmpty": "ログが見つかりません", "xpack.fleet.agentLogs.logLevelSelectText": "ログレベル", "xpack.fleet.agentLogs.oldAgentWarningTitle": "ログの表示には、Elastic Agent 7.11以降が必要です。エージェントをアップグレードするには、[アクション]メニューに移動するか、新しいバージョンを{downloadLink}。", "xpack.fleet.agentLogs.openInLogsUiLinkText": "ログで開く", @@ -10594,8 +10180,12 @@ "xpack.fleet.agentPolicy.confirmModalConfirmButtonLabel": "変更を保存してデプロイ", "xpack.fleet.agentPolicy.confirmModalDescription": "このアクションは元に戻せません。続行していいですか?", "xpack.fleet.agentPolicy.confirmModalTitle": "変更を保存してデプロイ", + "xpack.fleet.agentPolicy.postInstallAddAgentModal": "{packageName}統合が追加されました", + "xpack.fleet.agentPolicy.postInstallAddAgentModalCancelButtonLabel": "後でElasticエージェントを追加", + "xpack.fleet.agentPolicy.postInstallAddAgentModalConfirmButtonLabel": "Elasticエージェントをホストに追加", + "xpack.fleet.agentPolicy.postInstallAddAgentModalDescription": "この統合を完了するために、{elasticAgent}をホストに追加し、データを収集して、Elastic Stackに送信してください", "xpack.fleet.agentPolicyActionMenu.buttonText": "アクション", - "xpack.fleet.agentPolicyActionMenu.copyPolicyActionText": "ポリシーをコピー", + "xpack.fleet.agentPolicyActionMenu.copyPolicyActionText": "ポリシーの複製", "xpack.fleet.agentPolicyActionMenu.enrollAgentActionText": "エージェントの追加", "xpack.fleet.agentPolicyActionMenu.viewPolicyText": "ポリシーを表示", "xpack.fleet.agentPolicyForm.advancedOptionsToggleLabel": "高度なオプション", @@ -10614,8 +10204,8 @@ "xpack.fleet.agentPolicyForm.nameSpaceFieldDescription.fleetUserGuideLabel": "詳細", "xpack.fleet.agentPolicyForm.namespaceFieldLabel": "デフォルト名前空間", "xpack.fleet.agentPolicyForm.systemMonitoringFieldLabel": "システム監視", - "xpack.fleet.agentPolicyForm.systemMonitoringText": "システムメトリックを収集", - "xpack.fleet.agentPolicyForm.systemMonitoringTooltipText": "このオプションを有効にすると、システムメトリックと情報を収集する統合でポリシーをブートストラップできます。", + "xpack.fleet.agentPolicyForm.systemMonitoringText": "システムログとメトリックの収集", + "xpack.fleet.agentPolicyForm.systemMonitoringTooltipText": "このオプションを有効にすると、システムログとメトリックを収集する統合でポリシーをブートストラップできます。", "xpack.fleet.agentPolicyForm.unenrollmentTimeoutDescription": "任意のタイムアウト(秒)。指定されている場合、この期間が経過した後、エージェントは自動的に登録解除されます。", "xpack.fleet.agentPolicyForm.unenrollmentTimeoutLabel": "登録解除タイムアウト", "xpack.fleet.agentPolicyForm.unenrollTimeoutMinValueErrorMessage": "タイムアウトは0よりも大きい値でなければなりません。", @@ -10657,8 +10247,8 @@ "xpack.fleet.appNavigation.agentsLinkText": "エージェント", "xpack.fleet.appNavigation.dataStreamsLinkText": "データストリーム", "xpack.fleet.appNavigation.enrollmentTokensText": "登録トークン", - "xpack.fleet.appNavigation.integrationsAllLinkText": "参照", - "xpack.fleet.appNavigation.integrationsInstalledLinkText": "管理", + "xpack.fleet.appNavigation.integrationsAllLinkText": "統合の参照", + "xpack.fleet.appNavigation.integrationsInstalledLinkText": "インストールされている統合", "xpack.fleet.appNavigation.policiesLinkText": "エージェントポリシー", "xpack.fleet.appNavigation.sendFeedbackButton": "フィードバックを送信", "xpack.fleet.appTitle": "Fleet", @@ -10666,25 +10256,26 @@ "xpack.fleet.assets.customLogs.name": "ログ", "xpack.fleet.breadcrumbs.addPackagePolicyPageTitle": "統合の追加", "xpack.fleet.breadcrumbs.agentsPageTitle": "エージェント", - "xpack.fleet.breadcrumbs.allIntegrationsPageTitle": "参照", + "xpack.fleet.breadcrumbs.allIntegrationsPageTitle": "統合の参照", "xpack.fleet.breadcrumbs.appTitle": "Fleet", "xpack.fleet.breadcrumbs.datastreamsPageTitle": "データストリーム", "xpack.fleet.breadcrumbs.editPackagePolicyPageTitle": "統合の編集", "xpack.fleet.breadcrumbs.enrollmentTokensPageTitle": "登録トークン", - "xpack.fleet.breadcrumbs.installedIntegrationsPageTitle": "管理", + "xpack.fleet.breadcrumbs.installedIntegrationsPageTitle": "インストールされている統合", "xpack.fleet.breadcrumbs.integrationsAppTitle": "統合", "xpack.fleet.breadcrumbs.policiesPageTitle": "エージェントポリシー", + "xpack.fleet.breadcrumbs.upgradePacagePolicyPageTitle": "統合のアップグレード ", "xpack.fleet.config.invalidPackageVersionError": "有効なサーバーまたはキーワード「latest」でなければなりません", "xpack.fleet.copyAgentPolicy.confirmModal.cancelButtonLabel": "キャンセル", - "xpack.fleet.copyAgentPolicy.confirmModal.confirmButtonLabel": "ポリシーをコピー", + "xpack.fleet.copyAgentPolicy.confirmModal.confirmButtonLabel": "ポリシーの複製", "xpack.fleet.copyAgentPolicy.confirmModal.copyPolicyPrompt": "新しいエージェントポリシーの名前と説明を選択してください。", - "xpack.fleet.copyAgentPolicy.confirmModal.copyPolicyTitle": "「{name}」エージェントポリシーをコピー", + "xpack.fleet.copyAgentPolicy.confirmModal.copyPolicyTitle": "'{name}'エージェントポリシーを複製", "xpack.fleet.copyAgentPolicy.confirmModal.defaultNewPolicyName": "{name}(コピー)", "xpack.fleet.copyAgentPolicy.confirmModal.newDescriptionLabel": "説明", "xpack.fleet.copyAgentPolicy.confirmModal.newNameLabel": "新しいポリシー名", - "xpack.fleet.copyAgentPolicy.failureNotificationTitle": "エージェントポリシー「{id}」のコピーエラー", - "xpack.fleet.copyAgentPolicy.fatalErrorNotificationTitle": "エージェントポリシーのコピーエラー", - "xpack.fleet.copyAgentPolicy.successNotificationTitle": "エージェントポリシーがコピーされました", + "xpack.fleet.copyAgentPolicy.failureNotificationTitle": "エージェントポリシー'{id}'の複製エラー", + "xpack.fleet.copyAgentPolicy.fatalErrorNotificationTitle": "エージェントポリシーの複製エラー", + "xpack.fleet.copyAgentPolicy.successNotificationTitle": "エージェントポリシーが複製されました", "xpack.fleet.createAgentPolicy.cancelButtonLabel": "キャンセル", "xpack.fleet.createAgentPolicy.errorNotificationTitle": "エージェントポリシーを作成できません", "xpack.fleet.createAgentPolicy.flyoutTitle": "エージェントポリシーを作成", @@ -10701,7 +10292,7 @@ "xpack.fleet.createPackagePolicy.pageDescriptionfromPolicy": "選択したエージェントポリシーの統合を構成します。", "xpack.fleet.createPackagePolicy.pageTitle": "統合の追加", "xpack.fleet.createPackagePolicy.pageTitleWithPackageName": "{packageName}統合の追加", - "xpack.fleet.createPackagePolicy.saveButton": "統合の保存", + "xpack.fleet.createPackagePolicy.saveButton": "保存して続行", "xpack.fleet.createPackagePolicy.stepConfigure.advancedOptionsToggleLinkText": "高度なオプション", "xpack.fleet.createPackagePolicy.stepConfigure.hideStreamsAriaLabel": "{type}入力を非表示", "xpack.fleet.createPackagePolicy.stepConfigure.inputSettingsDescription": "次の設定は以下のすべての入力に適用されます。", @@ -10710,6 +10301,9 @@ "xpack.fleet.createPackagePolicy.stepConfigure.integrationSettingsSectionDescription": "この統合の使用方法を識別できるように、名前と説明を選択してください。", "xpack.fleet.createPackagePolicy.stepConfigure.integrationSettingsSectionTitle": "統合設定", "xpack.fleet.createPackagePolicy.stepConfigure.noPolicyOptionsMessage": "構成するものがありません", + "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyDataRetentionLabel": "データ保持設定", + "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyDataRetentionLearnMoreLink": "詳細", + "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyDataRetentionText": "デフォルトでは、すべてのログとメトリックがホットティアに格納されます。この統合のデータ保持ポリシーの変更については、{learnMore}してください。", "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyDescriptionInputLabel": "説明", "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyNameInputLabel": "統合名", "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyNamespaceHelpLabel": "選択したエージェントポリシーから継承されたデフォルト名前空間を変更します。この設定により、統合のデータストリームの名前が変更されます。{learnMore}。", @@ -10724,9 +10318,11 @@ "xpack.fleet.createPackagePolicy.StepSelectPolicy.agentPolicyFormGroupTitle": "エージェントポリシー", "xpack.fleet.createPackagePolicy.StepSelectPolicy.agentPolicyLabel": "エージェントポリシー", "xpack.fleet.createPackagePolicy.StepSelectPolicy.agentPolicyPlaceholderText": "この統合を追加するエージェントポリシーを選択", + "xpack.fleet.createPackagePolicy.StepSelectPolicy.cannotAddLimitedIntegrationError": "この統合は、エージェントポリシーごとに1回だけ追加できます。", "xpack.fleet.createPackagePolicy.StepSelectPolicy.errorLoadingAgentPoliciesTitle": "エージェントポリシーの読み込みエラー", "xpack.fleet.createPackagePolicy.StepSelectPolicy.errorLoadingPackageTitle": "パッケージ情報の読み込みエラー", "xpack.fleet.createPackagePolicy.StepSelectPolicy.errorLoadingSelectedAgentPolicyTitle": "選択したエージェントポリシーの読み込みエラー", + "xpack.fleet.createPackagePolicy.StepSelectPolicy.noPolicySelectedError": "エージェントポリシーは必須です。", "xpack.fleet.dataStreamList.actionsColumnTitle": "アクション", "xpack.fleet.dataStreamList.datasetColumnTitle": "データセット", "xpack.fleet.dataStreamList.integrationColumnTitle": "統合", @@ -10782,12 +10378,16 @@ "xpack.fleet.editPackagePolicy.settingsTabName": "設定", "xpack.fleet.editPackagePolicy.updatedNotificationMessage": "Fleetは'{agentPolicyName}'ポリシーで使用されているすべてのエージェントに更新をデプロイします", "xpack.fleet.editPackagePolicy.updatedNotificationTitle": "正常に「{packagePolicyName}」を更新しました", + "xpack.fleet.editPackagePolicy.upgradeButton": "統合のアップグレード", "xpack.fleet.editPackagePolicy.upgradePageTitleWithPackageName": "{packageName}統合をアップグレード", "xpack.fleet.enrollemntAPIKeyList.emptyMessage": "登録トークンが見つかりません。", "xpack.fleet.enrollemntAPIKeyList.loadingTokensMessage": "登録トークンを読み込んでいます...", "xpack.fleet.enrollmentInstructions.descriptionText": "エージェントのディレクトリから、該当するコマンドを実行し、Elasticエージェントをインストール、登録、起動します。これらのコマンドを再利用すると、複数のホストでエージェントを設定できます。管理者権限が必要です。", "xpack.fleet.enrollmentInstructions.moreInstructionsLink": "Elastic エージェントドキュメント", "xpack.fleet.enrollmentInstructions.moreInstructionsText": "RPM/DEB デプロイの手順については、{link}を参照してください。", + "xpack.fleet.enrollmentInstructions.platformButtons.linux": "Linux / macOS", + "xpack.fleet.enrollmentInstructions.platformButtons.rpm": "RPM / DEB", + "xpack.fleet.enrollmentInstructions.platformButtons.windows": "Windows", "xpack.fleet.enrollmentInstructions.platformSelectAriaLabel": "プラットフォーム", "xpack.fleet.enrollmentInstructions.troubleshootingLink": "トラブルシューティングガイド", "xpack.fleet.enrollmentInstructions.troubleshootingText": "接続の問題が発生している場合は、{link}を参照してください。", @@ -10812,10 +10412,28 @@ "xpack.fleet.enrollmentTokensList.revokeTokenButtonLabel": "トークンを取り消す", "xpack.fleet.enrollmentTokensList.secretTitle": "シークレット", "xpack.fleet.enrollmentTokensList.showTokenButtonLabel": "トークンを表示", + "xpack.fleet.epm.addPackagePolicyButtonPrivilegesRequiredTooltip": "Elasticエージェント統合を追加するには、必要最小限の権限を設定する必要があります。管理者にお問い合わせください。", + "xpack.fleet.epm.addPackagePolicyButtonSecurityRequiredTooltip": "Elasticエージェント統合を追加するには、セキュリティを有効にし、必要最小限の権限を設定する必要があります。管理者にお問い合わせください。", "xpack.fleet.epm.addPackagePolicyButtonText": "{packageName}の追加", "xpack.fleet.epm.agentEnrollment.viewDataAssetsLabel": "アセットを表示", "xpack.fleet.epm.agentEnrollment.viewDataDescription.pleaseNoteLabel": "注記:", "xpack.fleet.epm.assetGroupTitle": "{assetType}アセット", + "xpack.fleet.epm.assetTitles.componentTemplates": "コンポーネントテンプレート", + "xpack.fleet.epm.assetTitles.dashboards": "ダッシュボード", + "xpack.fleet.epm.assetTitles.dataStreamILM": "データストリームILMポリシー", + "xpack.fleet.epm.assetTitles.ilmPolicies": "ILMポリシー", + "xpack.fleet.epm.assetTitles.indexPatterns": "インデックスパターン", + "xpack.fleet.epm.assetTitles.indexTemplates": "インデックステンプレート", + "xpack.fleet.epm.assetTitles.ingestPipelines": "インジェストパイプライン", + "xpack.fleet.epm.assetTitles.lens": "レンズ", + "xpack.fleet.epm.assetTitles.maps": "マップ", + "xpack.fleet.epm.assetTitles.mlModules": "機械学習モジュール", + "xpack.fleet.epm.assetTitles.savedSearches": "保存された検索", + "xpack.fleet.epm.assetTitles.securityRules": "セキュリティルール", + "xpack.fleet.epm.assetTitles.tag": "タグ", + "xpack.fleet.epm.assetTitles.transforms": "変換", + "xpack.fleet.epm.assetTitles.views": "ビュー", + "xpack.fleet.epm.assetTitles.visualizations": "ビジュアライゼーション", "xpack.fleet.epm.browseAllButtonText": "すべての統合を参照", "xpack.fleet.epm.categoryLabel": "カテゴリー", "xpack.fleet.epm.detailsTitle": "詳細", @@ -10823,6 +10441,12 @@ "xpack.fleet.epm.featuresLabel": "機能", "xpack.fleet.epm.install.packageInstallError": "{pkgName} {pkgVersion}のインストールエラー", "xpack.fleet.epm.install.packageUpdateError": "{pkgName} {pkgVersion}の更新エラー", + "xpack.fleet.epm.integrationPreference.beatsLabel": "Beatsのみ", + "xpack.fleet.epm.integrationPreference.elasticAgentLabel": "Elasticエージェントのみ", + "xpack.fleet.epm.integrationPreference.recommendedLabel": "推奨", + "xpack.fleet.epm.integrationPreference.recommendedTooltip": "公開されたときには、Elasticエージェント統合をお勧めします。", + "xpack.fleet.epm.integrationPreference.title": "{link}の統合が利用可能な場合は、以下が表示されます。", + "xpack.fleet.epm.integrationPreference.titleLink": "ElasticエージェントとBeats", "xpack.fleet.epm.licenseLabel": "ライセンス", "xpack.fleet.epm.loadingIntegrationErrorTitle": "統合詳細の読み込みエラー", "xpack.fleet.epm.noticeModalCloseBtn": "閉じる", @@ -10833,7 +10457,7 @@ "xpack.fleet.epm.packageDetails.integrationList.agentCount": "エージェント", "xpack.fleet.epm.packageDetails.integrationList.agentPolicy": "エージェントポリシー", "xpack.fleet.epm.packageDetails.integrationList.loadingPoliciesMessage": "統合ポリシーを読み込んでいます...", - "xpack.fleet.epm.packageDetails.integrationList.name": "統合", + "xpack.fleet.epm.packageDetails.integrationList.name": "統合ポリシー", "xpack.fleet.epm.packageDetails.integrationList.packageVersion": "v{version}", "xpack.fleet.epm.packageDetails.integrationList.updatedAt": "最終更新", "xpack.fleet.epm.packageDetails.integrationList.updatedBy": "最終更新者", @@ -10841,8 +10465,12 @@ "xpack.fleet.epm.packageDetailsNav.overviewLinkText": "概要", "xpack.fleet.epm.packageDetailsNav.packageAssetsLinkText": "アセット", "xpack.fleet.epm.packageDetailsNav.packageCustomLinkText": "高度な設定", - "xpack.fleet.epm.packageDetailsNav.packagePoliciesLinkText": "ポリシー", + "xpack.fleet.epm.packageDetailsNav.packagePoliciesLinkText": "統合ポリシー", "xpack.fleet.epm.packageDetailsNav.settingsLinkText": "設定", + "xpack.fleet.epm.packageDetailsSecurityRequiredCalloutDescription": "Fleetを完全に使用するには、ElasticsearchとKibanaセキュリティ機能を有効にする必要があります。セキュリティを有効にするには、{guideLink}に従ってください。", + "xpack.fleet.epm.packageDetailsSecurityRequiredCalloutDescriptionGuideLink": "このガイドの手順", + "xpack.fleet.epm.packageDetailsSecurityRequiredCalloutTitle": "Elasticエージェント統合を追加するには、セキュリティを有効にする必要があります", + "xpack.fleet.epm.pageSubtitle": "データの収集と分析を開始するには、統合を選択します。", "xpack.fleet.epm.releaseBadge.betaDescription": "この統合は本番環境用ではありません。", "xpack.fleet.epm.releaseBadge.betaLabel": "ベータ", "xpack.fleet.epm.releaseBadge.experimentalDescription": "この統合は、急に変更されたり、将来のリリースで削除されたりする可能性があります。", @@ -10854,13 +10482,23 @@ "xpack.fleet.epm.updateAvailableTooltip": "更新が利用可能です", "xpack.fleet.epm.usedByLabel": "エージェントポリシー", "xpack.fleet.epm.versionLabel": "バージョン", - "xpack.fleet.epmList.allPackagesFilterLinkText": "すべて", + "xpack.fleet.epmList.allPackagesFilterLinkText": "すべてのカテゴリ", + "xpack.fleet.epmList.allPackagesInstalledFilterLinkText": "すべてのインストール済み", + "xpack.fleet.epmList.availableCalloutBlogText": "発表ブログ投稿", + "xpack.fleet.epmList.availableCalloutIntroText": "統合とElasticエージェントの詳細については、{link}をお読みください。", + "xpack.fleet.epmList.availableCalloutTitle": "インストールされているElasticエージェント統合のみが表示されます。", "xpack.fleet.epmList.missingIntegrationPlaceholder": "検索用語と一致する統合が見つかりませんでした。別のキーワードを試すか、左側のカテゴリを使用して参照してください。", "xpack.fleet.epmList.noPackagesFoundPlaceholder": "パッケージが見つかりません", "xpack.fleet.epmList.searchPackagesPlaceholder": "統合を検索", "xpack.fleet.epmList.updatesAvailableFilterLinkText": "更新が可能です", "xpack.fleet.featureCatalogueDescription": "Elasticエージェントとの統合を追加して管理します", "xpack.fleet.featureCatalogueTitle": "Elasticエージェント統合を追加", + "xpack.fleet.featuredObsDesc": "アプリケーションから複雑なパフォーマンスの問題を監視、検出、診断します。", + "xpack.fleet.featuredObsTitle": "Elastic APM", + "xpack.fleet.featuredSearchDesc": "App Search Webクローラーを使用して、検索をWebサイトに追加します。", + "xpack.fleet.featuredSearchTitle": "Webサイトクローラー", + "xpack.fleet.featuredSecurityDesc": "脅威防御、検出、深いセキュリティデータの可視化を実現し、ホストを保護します。", + "xpack.fleet.featuredSecurityTitle": "Endpoint Security", "xpack.fleet.fleetServerSetup.addFleetServerHostButton": "ホストの追加", "xpack.fleet.fleetServerSetup.addFleetServerHostInputLabel": "Fleetサーバーホスト", "xpack.fleet.fleetServerSetup.addFleetServerHostInvalidUrlError": "無効なURL", @@ -10889,7 +10527,7 @@ "xpack.fleet.fleetServerSetup.saveServiceTokenDescription": "サービストークン情報を保存します。これは1回だけ表示されます。", "xpack.fleet.fleetServerSetup.selectAgentPolicyDescriptionText": "エージェントポリシーを使用すると、リモートでエージェントを構成および管理できます。Fleetサーバーを実行するために必要な構成を含む「デフォルトFleetサーバーポリシー」を使用することをお勧めします。", "xpack.fleet.fleetServerSetup.serviceTokenLabel": "サービストークン", - "xpack.fleet.fleetServerSetup.setupGuideLink": "Fleetユーザーガイド", + "xpack.fleet.fleetServerSetup.setupGuideLink": "FleetおよびElasticエージェントガイド", "xpack.fleet.fleetServerSetup.setupText": "Fleetにエージェントを登録する前に、Fleetサーバーが必要です。Fleetサーバーのセットアップについては、次の手順に従ってください。詳細については、{userGuideLink}を参照してください。", "xpack.fleet.fleetServerSetup.setupTitle": "Fleetサーバーを追加", "xpack.fleet.fleetServerSetup.stepDeploymentModeDescriptionText": "FleetはTransport Layer Security(TLS)を使用して、ElasticエージェントとElastic Stackの他のコンポーネントとの間の通信を暗号化します。デプロイモードを選択し、証明書を処理する方法を決定します。選択内容は後続のステップに表示されるFleetサーバーセットアップコマンドに影響します。", @@ -10918,13 +10556,20 @@ "xpack.fleet.homeIntegration.tutorialModule.noticeText": "{notePrefix}このモジュールの新しいバージョンは{availableAsIntegrationLink}です。統合と新しいElasticエージェントの詳細については、{blogPostLink}をお読みください。", "xpack.fleet.homeIntegration.tutorialModule.noticeText.blogPostLink": "発表ブログ投稿", "xpack.fleet.homeIntegration.tutorialModule.noticeText.integrationLink": "Elasticエージェント統合として提供", - "xpack.fleet.homeIntegration.tutorialModule.noticeText.notePrefix": "注:", + "xpack.fleet.homeIntegration.tutorialModule.noticeText.notePrefix": "注", "xpack.fleet.hostsInput.addRow": "行の追加", "xpack.fleet.initializationErrorMessageTitle": "Fleet を初期化できません", + "xpack.fleet.integration.settings.versionInfo.updatesAvailableBody": "バージョン{latestVersion}にアップグレードして最新の機能を入手", "xpack.fleet.integrations.customInputsLink": "カスタム入力", + "xpack.fleet.integrations.deploymentButton": "デプロイ詳細の表示", "xpack.fleet.integrations.discussForumLink": "ディスカッションフォーラム", "xpack.fleet.integrations.installPackage.installingPackageButtonLabel": "{title} アセットをインストールしています", "xpack.fleet.integrations.installPackage.installPackageButtonLabel": "{title}アセットをインストール", + "xpack.fleet.integrations.integrationSaved": "統合設定が保存されました", + "xpack.fleet.integrations.integrationSavedError": "統合設定の保存エラー", + "xpack.fleet.integrations.keepPoliciesUpToDateDisabledSuccess": "Fleetでは{title}の統合ポリシーが自動的に最新の状態に保たれません", + "xpack.fleet.integrations.keepPoliciesUpToDateEnabledSuccess": "Fleetでは{title}の統合ポリシーが自動的に最新の状態に保たれます", + "xpack.fleet.integrations.keepPoliciesUpToDateError": "{title}の統合設定の保存エラー", "xpack.fleet.integrations.packageInstallErrorDescription": "このパッケージのインストール中に問題が発生しました。しばらくたってから再試行してください。", "xpack.fleet.integrations.packageInstallErrorTitle": "{title}パッケージをインストールできませんでした", "xpack.fleet.integrations.packageInstallSuccessDescription": "正常に{title}をインストールしました", @@ -10933,6 +10578,8 @@ "xpack.fleet.integrations.packageUninstallErrorTitle": "{title}パッケージをアンインストールできませんでした", "xpack.fleet.integrations.packageUninstallSuccessDescription": "正常に{title}をアンインストールしました", "xpack.fleet.integrations.packageUninstallSuccessTitle": "{title}をアンインストールしました", + "xpack.fleet.integrations.packageUpdateSuccessDescription": "{title}の更新とポリシーのアップグレードが正常に実行されました", + "xpack.fleet.integrations.packageUpdateSuccessTitle": "{title}の更新とポリシーのアップグレード", "xpack.fleet.integrations.settings.confirmInstallModal.cancelButtonLabel": "キャンセル", "xpack.fleet.integrations.settings.confirmInstallModal.installButtonLabel": "{packageName}をインストール", "xpack.fleet.integrations.settings.confirmInstallModal.installCalloutTitle": "{numOfAssets}個のアセットがインストールされます", @@ -10944,6 +10591,12 @@ "xpack.fleet.integrations.settings.confirmUninstallModal.uninstallCallout.title": "{numOfAssets}個のアセットが削除されます", "xpack.fleet.integrations.settings.confirmUninstallModal.uninstallDescription": "この操作は元に戻すことができません。続行していいですか?", "xpack.fleet.integrations.settings.confirmUninstallModal.uninstallTitle": "{packageName}をアンインストール", + "xpack.fleet.integrations.settings.confirmUpdateModal.cancel": "キャンセル", + "xpack.fleet.integrations.settings.confirmUpdateModal.confirm": "{packageName}とポリシーのアップグレード", + "xpack.fleet.integrations.settings.confirmUpdateModal.conflictCallOut.title": "一部の統合ポリシーが競合しています", + "xpack.fleet.integrations.settings.confirmUpdateModal.updateTitle": "{packageName}とポリシーのアップグレード", + "xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateDescription": "有効にすると、Fleetで自動的に統合ポリシーをアップグレードおよびデプロイしようとします", + "xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateLabel": "自動的に統合ポリシーを最新の状態に保つ", "xpack.fleet.integrations.settings.packageInstallDescription": "この統合をインストールして、{title}データ向けに設計されたKibanaおよびElasticsearchアセットをセットアップします。", "xpack.fleet.integrations.settings.packageInstallTitle": "{title}をインストール", "xpack.fleet.integrations.settings.packageLatestVersionLink": "最新バージョン", @@ -10957,12 +10610,13 @@ "xpack.fleet.integrations.settings.packageVersionTitle": "{title}バージョン", "xpack.fleet.integrations.settings.versionInfo.installedVersion": "インストールされているバージョン", "xpack.fleet.integrations.settings.versionInfo.latestVersion": "最新バージョン", - "xpack.fleet.integrations.settings.versionInfo.updatesAvailable": "更新が利用可能です", + "xpack.fleet.integrations.settings.versionInfo.updatesAvailable": "新しいバージョンが利用可能です", "xpack.fleet.integrations.uninstallPackage.uninstallingPackageButtonLabel": "{title}をアンインストールしています", "xpack.fleet.integrations.uninstallPackage.uninstallPackageButtonLabel": "{title}をアンインストール", - "xpack.fleet.integrations.updatePackage.updatePackageButtonLabel": "最新バージョンに更新", + "xpack.fleet.integrations.updatePackage.updatePackageButtonLabel": "最新バージョンにアップグレード", + "xpack.fleet.integrations.updatePackage.upgradePoliciesCheckboxLabel": "統合ポリシーのアップグレード", "xpack.fleet.integrationsAppTitle": "統合", - "xpack.fleet.integrationsHeaderTitle": "Elasticエージェント統合", + "xpack.fleet.integrationsHeaderTitle": "統合", "xpack.fleet.invalidLicenseDescription": "現在のライセンスは期限切れです。登録されたビートエージェントは引き続き動作しますが、Elastic Fleet インターフェイスにアクセスするには有効なライセンスが必要です。", "xpack.fleet.invalidLicenseTitle": "ライセンスの期限切れ", "xpack.fleet.multiTextInput.addRow": "行の追加", @@ -10972,19 +10626,25 @@ "xpack.fleet.namespaceValidation.requiredErrorMessage": "名前空間は必須です", "xpack.fleet.namespaceValidation.tooLongErrorMessage": "名前空間は100バイト以下でなければなりません", "xpack.fleet.newEnrollmentKey.cancelButtonLabel": "キャンセル", + "xpack.fleet.newEnrollmentKey.helpText": "これを空にすると、トークンIDが使用されます。", "xpack.fleet.newEnrollmentKey.keyCreatedToasts": "登録トークンが作成されました", "xpack.fleet.newEnrollmentKey.modalTitle": "登録トークンを作成", - "xpack.fleet.newEnrollmentKey.nameLabel": "名前", + "xpack.fleet.newEnrollmentKey.nameLabel": "トークン名", + "xpack.fleet.newEnrollmentKey.placeholder": "トークン名を入力", "xpack.fleet.newEnrollmentKey.policyLabel": "ポリシー", "xpack.fleet.newEnrollmentKey.submitButton": "登録トークンを作成", "xpack.fleet.noAccess.accessDeniedDescription": "Elastic Fleet にアクセスする権限がありません。Elastic Fleet を使用するには、このアプリケーションの読み取り権または全権を含むユーザーロールが必要です。", "xpack.fleet.noAccess.accessDeniedTitle": "アクセスが拒否されました", "xpack.fleet.oldAppTitle": "Ingest Manager", - "xpack.fleet.overviewPageSubtitle": "ElasticElasticエージェントの集中管理", + "xpack.fleet.overviewPageSubtitle": "Elasticエージェントの集中管理。", "xpack.fleet.overviewPageTitle": "Fleet", + "xpack.fleet.packagePolicy.ineligibleForUpgradeError": "パッケージ{name}のパッケージポリシー{id}のパッケージバージョン{version}はインストールされているパッケージと同じで最新です。最新バージョンの{name}をインストールしてください。", "xpack.fleet.packagePolicy.packageNotFoundError": "ID {id}のパッケージポリシーには名前付きのパッケージがありません", + "xpack.fleet.packagePolicy.packageNotInstalledError": "パッケージ{name}がインストールされていません", "xpack.fleet.packagePolicy.policyNotFoundError": "ID {id}のパッケージポリシーが見つかりません", "xpack.fleet.packagePolicyField.yamlCodeEditor": "YAMLコードエディター", + "xpack.fleet.packagePolicyInvalidError": "パッケージポリシーが無効です:{errors}", + "xpack.fleet.packagePolicyValidation.boolValueError": "ブール値はtrueまたはfalseでなければなりません", "xpack.fleet.packagePolicyValidation.invalidArrayErrorMessage": "無効なフォーマット", "xpack.fleet.packagePolicyValidation.invalidYamlFormatErrorMessage": "YAML形式が無効です", "xpack.fleet.packagePolicyValidation.nameRequiredErrorMessage": "名前が必要です", @@ -10994,6 +10654,7 @@ "xpack.fleet.permissionDeniedErrorTitle": "パーミッションが拒否されました", "xpack.fleet.permissionsRequestErrorMessageDescription": "Fleet アクセス権の確認中に問題が発生しました", "xpack.fleet.permissionsRequestErrorMessageTitle": "アクセス権を確認できません", + "xpack.fleet.policyDetails.addAgentButton": "エージェントの追加", "xpack.fleet.policyDetails.addPackagePolicyButtonText": "統合の追加", "xpack.fleet.policyDetails.ErrorGettingFullAgentPolicy": "エージェントポリシーの読み込みエラー", "xpack.fleet.policyDetails.packagePoliciesTable.actionsColumnTitle": "アクション", @@ -11003,7 +10664,7 @@ "xpack.fleet.policyDetails.packagePoliciesTable.namespaceColumnTitle": "名前空間", "xpack.fleet.policyDetails.packagePoliciesTable.packageNameColumnTitle": "統合", "xpack.fleet.policyDetails.packagePoliciesTable.packageVersion": "v{version}", - "xpack.fleet.policyDetails.packagePoliciesTable.upgradeActionTitle": "パッケージポリシーをアップグレード", + "xpack.fleet.policyDetails.packagePoliciesTable.upgradeActionTitle": "統合ポリシーのアップグレード", "xpack.fleet.policyDetails.packagePoliciesTable.upgradeAvailable": "アップグレードが利用可能です", "xpack.fleet.policyDetails.packagePoliciesTable.upgradeButton": "アップグレード", "xpack.fleet.policyDetails.policyDetailsHostedPolicyTooltip": "このポリシーはFleet外で管理されます。このポリシーに関連するほとんどのアクションは使用できません。", @@ -11014,7 +10675,7 @@ "xpack.fleet.policyDetails.summary.integrations": "統合", "xpack.fleet.policyDetails.summary.lastUpdated": "最終更新日", "xpack.fleet.policyDetails.summary.revision": "リビジョン", - "xpack.fleet.policyDetails.summary.usedBy": "使用者", + "xpack.fleet.policyDetails.summary.usedBy": "エージェント", "xpack.fleet.policyDetails.unexceptedErrorTitle": "エージェントポリシーの読み込み中にエラーが発生しました", "xpack.fleet.policyDetails.viewAgentListTitle": "すべてのエージェントポリシーを表示", "xpack.fleet.policyDetails.yamlDownloadButtonLabel": "ダウンロードポリシー", @@ -11032,7 +10693,8 @@ "xpack.fleet.policyForm.unableToDeleteDefaultPolicyText": "デフォルトポリシーは削除できません", "xpack.fleet.preconfiguration.duplicatePackageError": "構成で重複するパッケージが指定されています。{duplicateList}", "xpack.fleet.preconfiguration.missingIDError": "{agentPolicyName}には「id」フィールドがありません。ポリシーのis_defaultまたはis_default_fleet_serverに設定されている場合をのぞき、「id」は必須です。", - "xpack.fleet.preconfiguration.packageMissingError": "{agentPolicyName}を追加できませんでした。{pkgName}がインストールされていません。{pkgName}を`{packagesConfigValue}`に追加するか、{packagePolicyName}から削除してください。", + "xpack.fleet.preconfiguration.packageMissingError": "[{agentPolicyName}]を追加できませんでした。[{pkgName}]がインストールされていません。[{pkgName}]を[{packagesConfigValue}]に追加するか、[{packagePolicyName}]から削除してください。", + "xpack.fleet.preconfiguration.packageRejectedError": "[{agentPolicyName}]を追加できませんでした。エラーのため、[{pkgName}]をインストールできませんでした:[{errorMessage}]", "xpack.fleet.preconfiguration.policyDeleted": "構成済みのポリシー{id}が削除されました。作成をスキップしています", "xpack.fleet.serverError.agentPolicyDoesNotExist": "エージェントポリシー{agentPolicyId}が存在しません", "xpack.fleet.serverError.enrollmentKeyDuplicate": "エージェントポリシーの{agentPolicyId}登録キー{providedKeyName}はすでに存在します", @@ -11040,10 +10702,12 @@ "xpack.fleet.serverError.unableToCreateEnrollmentKey": "登録APIキーを作成できません", "xpack.fleet.settings.additionalYamlConfig": "Elasticsearch出力構成(YAML)", "xpack.fleet.settings.deleteHostButton": "ホストの削除", + "xpack.fleet.settings.elasticHostDuplicateError": "重複するURL", "xpack.fleet.settings.elasticHostError": "無効なURL", "xpack.fleet.settings.elasticsearchUrlLabel": "Elasticsearchホスト", "xpack.fleet.settings.elasticsearchUrlsHelpTect": "エージェントがデータを送信するElasticsearch URLを指定します。Elasticsearchはデフォルトで9200番ポートを使用します。", "xpack.fleet.settings.fleetServerHostsDifferentPathOrProtocolError": "各URLのプロトコルとパスは同じでなければなりません", + "xpack.fleet.settings.fleetServerHostsDuplicateError": "重複するURL", "xpack.fleet.settings.fleetServerHostsEmptyError": "1つ以上のURLが必要です。", "xpack.fleet.settings.fleetServerHostsError": "無効なURL", "xpack.fleet.settings.flyoutTitle": "Fleet 設定", @@ -11053,7 +10717,7 @@ "xpack.fleet.settings.saveButtonLoadingLabel": "設定を適用しています...", "xpack.fleet.settings.sortHandle": "ホストハンドルの並べ替え", "xpack.fleet.settings.success.message": "設定が保存されました", - "xpack.fleet.settings.userGuideLink": "Fleetユーザーガイド", + "xpack.fleet.settings.userGuideLink": "FleetおよびElasticエージェントガイド", "xpack.fleet.settings.yamlCodeEditor": "YAMLコードエディター", "xpack.fleet.settingsConfirmModal.calloutTitle": "すべてのエージェントポリシーと登録されたエージェントが更新されます", "xpack.fleet.settingsConfirmModal.cancelButton": "キャンセル", @@ -11104,7 +10768,7 @@ "xpack.fleet.upgradeAgents.upgradeSingleDescription": "このアクションにより、「{hostName}」で実行中のエージェントがバージョン{version}にアップグレードされます。このアクションは元に戻せません。続行していいですか?", "xpack.fleet.upgradeAgents.upgradeSingleTitle": "エージェントを最新バージョンにアップグレード", "xpack.fleet.upgradePackagePolicy.pageDescriptionFromUpgrade": "この統合をアップグレードし、選択したエージェントポリシーに変更をデプロイします", - "xpack.fleet.upgradePackagePolicy.previousVersionFlyout.title": "'{name}'パッケージポリシー", + "xpack.fleet.upgradePackagePolicy.previousVersionFlyout.title": "'{name}'統合ポリシー", "xpack.fleet.upgradePackagePolicy.statusCallout.errorContent": "この統合には、バージョン{currentVersion}から{upgradeVersion}で競合するフィールドがあります。構成を確認して保存し、アップグレードを実行してください。{previousConfigurationLink}を参照して比較できます。", "xpack.fleet.upgradePackagePolicy.statusCallOut.errorTitle": "フィールド競合をレビュー", "xpack.fleet.upgradePackagePolicy.statusCallout.previousConfigurationLink": "前の構成", @@ -11210,6 +10874,7 @@ "xpack.graph.leaveWorkspace.confirmButtonLabel": "それでも移動", "xpack.graph.leaveWorkspace.confirmText": "今移動すると、保存されていない変更が失われます。", "xpack.graph.leaveWorkspace.modalTitle": "保存されていない変更", + "xpack.graph.legacyUrlConflict.objectNoun": "グラフ", "xpack.graph.listing.createNewGraph.combineDataViewFromKibanaAppDescription": "Elasticsearch インデックスのパターンと関係性を検出します。", "xpack.graph.listing.createNewGraph.createButtonLabel": "グラフを作成", "xpack.graph.listing.createNewGraph.newToKibanaDescription": "Kibana は初めてですか?{sampleDataInstallLink} で開始します。", @@ -11374,6 +11039,7 @@ "xpack.idxMgmt.breadcrumb.editTemplateLabel": "テンプレートを編集", "xpack.idxMgmt.breadcrumb.homeLabel": "インデックス管理", "xpack.idxMgmt.breadcrumb.templatesLabel": "テンプレート", + "xpack.idxMgmt.clearCacheIndicesAction.successMessage": "キャッシュ [{indexNames}] が削除されました", "xpack.idxMgmt.closeIndicesAction.successfullyClosedIndicesMessage": "[{indexNames}] がクローズされました", "xpack.idxMgmt.componentTemplate.breadcrumb.componentTemplatesLabel": "コンポーネントテンプレート", "xpack.idxMgmt.componentTemplate.breadcrumb.createComponentTemplateLabel": "コンポーネントテンプレートの作成", @@ -11553,6 +11219,10 @@ "xpack.idxMgmt.deleteTemplatesModal.proceedWithCautionCallOutTitle": "システムテンプレートを削除することで、Kibana に重大な障害が生じる可能性があります", "xpack.idxMgmt.deleteTemplatesModal.successDeleteSingleNotificationMessageText": "テンプレート「{templateName}」を削除しました", "xpack.idxMgmt.deleteTemplatesModal.systemTemplateLabel": "システムテンプレート", + "xpack.idxMgmt.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "xpack.idxMgmt.deprecations.enabled.manualStepTwoMessage": "「xpack.index_management.enabled」設定を「xpack.index_management.ui.enabled」に変更します。", + "xpack.idxMgmt.deprecations.enabledMessage": "ユーザーがインデックス管理UIにアクセスすることを禁止するには、「xpack.index_management.enabled」ではなく、「xpack.index_management.ui.enabled」設定を使用します。", + "xpack.idxMgmt.deprecations.enabledTitle": "「xpack.index_management.enabled」設定は廃止予定です。", "xpack.idxMgmt.detailPanel.manageContextMenuLabel": "管理", "xpack.idxMgmt.detailPanel.missingIndexMessage": "このインデックスは存在しません。実行中のジョブや別のシステムにより削除された可能性があります。", "xpack.idxMgmt.detailPanel.missingIndexTitle": "インデックスがありません", @@ -11682,7 +11352,7 @@ "xpack.idxMgmt.mappingsEditor.advancedSettings.hideButtonLabel": "高度な SIEM 設定の非表示化", "xpack.idxMgmt.mappingsEditor.advancedSettings.showButtonLabel": "高度なSIEM設定の表示", "xpack.idxMgmt.mappingsEditor.advancedTabLabel": "高度なオプション", - "xpack.idxMgmt.mappingsEditor.aliasType.aliasTargetFieldDescription": "エイリアスに指し示させたいフィールドを選択します。これにより、検索リクエストにおいてターゲットフィールドの代わりにエイリアスを使用したり、選択した他のAPIをフィールド機能と同様に使用できます。", + "xpack.idxMgmt.mappingsEditor.aliasType.aliasTargetFieldDescription": "エイリアスに指し示させたいフィールドを選択します。これにより、検索要求においてターゲットフィールドの代わりにエイリアスを使用し、フィールド機能など他のAPIを選択することができます。", "xpack.idxMgmt.mappingsEditor.aliasType.aliasTargetFieldTitle": "エイリアスのターゲット", "xpack.idxMgmt.mappingsEditor.aliasType.noFieldsAddedWarningMessage": "エイリアスを作成する前に、少なくともフィールドを1つ追加する必要があります。", "xpack.idxMgmt.mappingsEditor.aliasType.pathPlaceholderLabel": "フィールドの選択", @@ -12361,7 +12031,7 @@ "xpack.idxMgmt.templateValidation.templateNameRequiredError": "テンプレート名が必要です。", "xpack.idxMgmt.templateValidation.templateNameSpacesError": "テンプレート名にスペースは使用できません。", "xpack.idxMgmt.templateValidation.templateNameUnderscoreError": "テンプレート名はアンダーラインで始めることはできません。", - "xpack.idxMgmt.unfreezeIndicesAction.successfullyUnfrozeIndicesMessage": "[{indexNames}]の凍結が解除されました", + "xpack.idxMgmt.unfreezeIndicesAction.successfullyUnfrozeIndicesMessage": "[{indexNames}] の凍結が解除されました", "xpack.idxMgmt.updateIndexSettingsAction.settingsSuccessUpdateMessage": "インデックス {indexName} の設定が更新されました", "xpack.idxMgmt.validators.string.invalidJSONError": "無効な JSON フォーマット。", "xpack.indexLifecycleMgmt.addLifecyclePolicyActionButtonLabel": "ライフサイクルポリシーを追加", @@ -12383,7 +12053,17 @@ "xpack.indexLifecycleMgmt.confirmDelete.undoneWarning": "削除されたポリシーは復元できません。", "xpack.indexLifecycleMgmt.dataTier.noTiersAvailableUsingNodeAttributesDescription": "データを割り当てられません:使用可能なデータノードがありません。", "xpack.indexLifecycleMgmt.dataTier.willUseFallbackTierUsingNodeAttributesDescription": "利用可能な{phase}ノードがありませんデータは{fallbackTier}ティアに割り当てられます。", + "xpack.indexLifecycleMgmt.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "xpack.indexLifecycleMgmt.deprecations.enabled.manualStepTwoMessage": "「xpack.ilm.enabled」設定を「xpack.ilm.ui.enabled」に変更します。", + "xpack.indexLifecycleMgmt.deprecations.enabledMessage": "ユーザーがインデックスライフサイクルポリシーUIにアクセスすることを禁止するには、「xpack.ilm.enabled」ではなく、「xpack.ilm.ui.enabled」設定を使用します。", + "xpack.indexLifecycleMgmt.deprecations.enabledTitle": "「xpack.ilm.enabled」設定は廃止予定です。", "xpack.indexLifecycleMgmt.editPolicy.andDependenciesLink": " and {indexTemplatesLink}", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.bytesLabel": "バイト", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.gigabytesLabel": "ギガバイト", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.kilobytesLabel": "キロバイト", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.megabytesLabel": "メガバイト", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.petabytesLabel": "ペタバイト", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.terabytesLabel": "テラバイト", "xpack.indexLifecycleMgmt.editPolicy.cancelButton": "キャンセル", "xpack.indexLifecycleMgmt.editPolicy.cloudDataTierCallout.body": "Elastic Cloudデプロイを移行し、データティアを使用します。", "xpack.indexLifecycleMgmt.editPolicy.cloudDataTierCallout.linkToCloudDeploymentDescription": "クラウドデプロイを表示", @@ -12475,6 +12155,7 @@ "xpack.indexLifecycleMgmt.editPolicy.lifecyclePoliciesReloadButton": "再試行", "xpack.indexLifecycleMgmt.editPolicy.loadSnapshotRepositoriesErrorBody": "このフィールドを更新し、既存のスナップショットリポジトリの名前を入力します。", "xpack.indexLifecycleMgmt.editPolicy.loadSnapshotRepositoriesErrorTitle": "スナップショットリポジトリを読み込めません", + "xpack.indexLifecycleMgmt.editPolicy.maximumPrimaryShardSizeAriaLabel": "最大シャードサイズ単位", "xpack.indexLifecycleMgmt.editPolicy.minAgeSmallerThanColdPhaseError": "コールドフェーズ値({value})以上でなければなりません", "xpack.indexLifecycleMgmt.editPolicy.minAgeSmallerThanFrozenPhaseError": "フローズンフェーズ値({value})以上でなければなりません", "xpack.indexLifecycleMgmt.editPolicy.minAgeSmallerThanWarmPhaseError": "ウォームフェーズ値({value})以上でなければなりません", @@ -12533,9 +12214,18 @@ "xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotRepoRequiredError": "スナップショットリポジトリ名が必要です。", "xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotStorageFieldLabel": "検索可能スナップショットストレージ", "xpack.indexLifecycleMgmt.editPolicy.showPolicyJsonButton": "リクエストを表示", + "xpack.indexLifecycleMgmt.editPolicy.shrink.configureShardCountLabel": "シャード数を構成", + "xpack.indexLifecycleMgmt.editPolicy.shrink.configureShardSizeLabel": "シャードサイズを構成", "xpack.indexLifecycleMgmt.editPolicy.shrinkIndexExplanationText": "インデックス情報をプライマリシャードの少ない新規インデックスに縮小します。", "xpack.indexLifecycleMgmt.editPolicy.shrinkText": "縮小", "xpack.indexLifecycleMgmt.editPolicy.successfulSaveMessage": "ライフサイクルポリシー「{lifecycleName}」を{verb}", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.daysLabel": "日", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.hoursLabel": "時間", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.microsecondsLabel": "マイクロ秒", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.millisecondsLabel": "ミリ秒", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.minutesLabel": "分", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.nanosecondsLabel": "ナノ秒", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.secondsLabel": "秒", "xpack.indexLifecycleMgmt.editPolicy.updatedMessage": "更新しました", "xpack.indexLifecycleMgmt.editPolicy.validPolicyNameMessage": "ポリシー名の頭にアンダーラインを使用することはできず、カンマやスペースを含めることもできません。", "xpack.indexLifecycleMgmt.editPolicy.viewNodeDetailsButton": "選択した属性のノードを表示", @@ -12661,6 +12351,7 @@ "xpack.indexLifecycleMgmt.searchableSnapshot.disallowedCalloutBody": "このフェーズで検索可能なスナップショットを使用するには、ホットフェーズで検索可能なスナップショットを無効にする必要があります。", "xpack.indexLifecycleMgmt.searchableSnapshot.disallowedCalloutTitle": "検索可能スナップショットが無効です", "xpack.indexLifecycleMgmt.searchSnapshotlicenseCheckErrorMessage": "検索可能なスナップショットを使用するには、1 つ以上のエンタープライズレベルのライセンスが必要です。", + "xpack.indexLifecycleMgmt.shrink.enableShrinkLabel": "インデックスを縮小", "xpack.indexLifecycleMgmt.shrink.numberOfPrimaryShardsLabel": "プライマリシャードの数", "xpack.indexLifecycleMgmt.templateNotFoundMessage": "テンプレート{name}が見つかりません。", "xpack.indexLifecycleMgmt.timeline.coldPhaseSectionTitle": "コールドフェーズ", @@ -12739,6 +12430,24 @@ "xpack.infra.dataSearch.cancelButtonLabel": "リクエストのキャンセル", "xpack.infra.dataSearch.loadingErrorRetryButtonLabel": "再試行", "xpack.infra.dataSearch.shardFailureErrorMessage": "インデックス {indexName}:{errorMessage}", + "xpack.infra.deprecations.containerAdjustIndexing": "インデックスを調整し、\"{field}\"を使用してDockerコンテナーを特定", + "xpack.infra.deprecations.containerIdFieldName": "コンテナーID", + "xpack.infra.deprecations.containerIdFieldTitle": "ソース構成フィールド[コンテナーID]は廃止予定です。", + "xpack.infra.deprecations.deprecatedFieldConfigDescription": "「xpack.infra.sources.default.fields.{fieldKey}」の構成は廃止予定であり、8.0.0で削除されます。", + "xpack.infra.deprecations.deprecatedFieldConfigTitle": "\"{fieldKey}\"は廃止予定です。", + "xpack.infra.deprecations.hostAdjustIndexing": "インデックスを調整し、\"{field}\"を使用してホストを特定", + "xpack.infra.deprecations.hostnameFieldName": "ホスト名", + "xpack.infra.deprecations.hostnameFieldTitle": "ソース構成フィールド[ホスト名]は廃止予定です。", + "xpack.infra.deprecations.podAdjustIndexing": "インデックスを調整し、\"{field}\"を使用してKubernetesポッドを特定", + "xpack.infra.deprecations.podIdFieldName": "ポッド ID", + "xpack.infra.deprecations.podIdFieldTitle": "ソース構成フィールド[ポッドID]は廃止予定です。", + "xpack.infra.deprecations.removeConfigField": "「xpack.infra.sources.default.fields.{fieldKey}」をKibana構成から削除します。", + "xpack.infra.deprecations.tiebreakerAdjustIndexing": "インデックスを調整し、\"{field}\"をタイブレーカーとして使用します。", + "xpack.infra.deprecations.tiebreakerFieldName": "タイブレーカー", + "xpack.infra.deprecations.tiebreakerFieldTitle": "ソース構成フィールド[タイブレーカー]は廃止予定です。", + "xpack.infra.deprecations.timestampAdjustIndexing": "インデックスを調整し、\"{field}\"をタイムスタンプとして使用します。", + "xpack.infra.deprecations.timestampFieldName": "タイムスタンプ", + "xpack.infra.deprecations.timestampFieldTitle": "ソース構成フィールド[タイムスタンプ]は廃止予定です。", "xpack.infra.durationUnits.days.plural": "日", "xpack.infra.durationUnits.days.singular": "日", "xpack.infra.durationUnits.hours.plural": "時間", @@ -12894,7 +12603,7 @@ "xpack.infra.logs.alerting.threshold.everythingSeriesName": "ログエントリ", "xpack.infra.logs.alerting.threshold.fired": "実行", "xpack.infra.logs.alerting.threshold.groupByActionVariableDescription": "アラートのトリガーを実行するグループの名前", - "xpack.infra.logs.alerting.threshold.groupedRatioAlertReasonDescription": "{groupName}:ログエントリ率は{actualRatio}({translatedComparator} {expectedRatio})です。", + "xpack.infra.logs.alerting.threshold.groupedRatioAlertReasonDescription": "{groupName}のログエントリ率は{actualRatio}({translatedComparator} {expectedRatio})です。", "xpack.infra.logs.alerting.threshold.isRatioActionVariableDescription": "このアラートが比率で構成されていたかどうかを示します", "xpack.infra.logs.alerting.threshold.numeratorConditionsActionVariableDescription": "比率の分子が満たす必要がある条件", "xpack.infra.logs.alerting.threshold.ratioActionVariableDescription": "2つのセットの条件の比率値", @@ -13009,6 +12718,9 @@ "xpack.infra.logs.logEntryRate.setupDescription": "ログ異常を有効にするには、機械学習ジョブを設定してください", "xpack.infra.logs.logEntryRate.setupTitle": "ログ異常分析を設定", "xpack.infra.logs.logEntryRate.showAnalysisSetupButtonLabel": "ML設定", + "xpack.infra.logs.noDataConfig.beatsCard.description": "ElasticエージェントまたはBeatsを使用して、ログをElasticsearchに送信します。多数の一般的なシステムやアプリでは、統合により処理が簡単になりました。", + "xpack.infra.logs.noDataConfig.beatsCard.title": "ロギング統合を追加", + "xpack.infra.logs.noDataConfig.solutionName": "オブザーバビリティ", "xpack.infra.logs.pluginTitle": "ログ", "xpack.infra.logs.scrollableLogTextStreamView.loadingEntriesLabel": "エントリーを読み込み中", "xpack.infra.logs.search.nextButtonLabel": "次へ", @@ -13031,6 +12743,8 @@ "xpack.infra.logSourceConfiguration.childFormElementErrorMessage": "1つ以上のフォームフィールドが無効な状態です。", "xpack.infra.logSourceConfiguration.emptyColumnListErrorMessage": "列リストは未入力のままにできません。", "xpack.infra.logSourceConfiguration.emptyFieldErrorMessage": "フィールド'{fieldName}'は未入力のままにできません。", + "xpack.infra.logSourceConfiguration.indexPatternInformationCalloutDescription": "ログUIはKibanaインデックスパターンと統合し、使用されているインデックスを構成します。", + "xpack.infra.logSourceConfiguration.indexPatternInformationCalloutTitle": "新しい構成オプション", "xpack.infra.logSourceConfiguration.invalidMessageFieldTypeErrorMessage": "{messageField}フィールドはテキストフィールドでなければなりません。", "xpack.infra.logSourceConfiguration.logSourceConfigurationFormErrorsCalloutTitle": "一貫しないソース構成", "xpack.infra.logSourceConfiguration.missingMessageFieldErrorMessage": "インデックスパターンには{messageField}フィールドが必要です。", @@ -13191,6 +12905,7 @@ "xpack.infra.metrics.alertFlyout.aggregationText.rate": "レート", "xpack.infra.metrics.alertFlyout.aggregationText.sum": "合計", "xpack.infra.metrics.alertFlyout.alertDescription": "メトリックアグリゲーションがしきい値を超えたときにアラートを発行します。", + "xpack.infra.metrics.alertFlyout.alertOnGroupDisappear": "グループがデータのレポートを停止する場合にアラートで通知する", "xpack.infra.metrics.alertFlyout.alertOnNoData": "データがない場合に通知する", "xpack.infra.metrics.alertFlyout.anomalyFilterHelpText": "アラートトリガーの範囲を、特定のノードの影響を受ける異常に制限します。", "xpack.infra.metrics.alertFlyout.anomalyFilterHelpTextExample": "例:「my-node-1」または「my-node-*」", @@ -13200,7 +12915,7 @@ "xpack.infra.metrics.alertFlyout.anomalyJobs.networkOut": "外向きのネットワーク", "xpack.infra.metrics.alertFlyout.conditions": "条件", "xpack.infra.metrics.alertFlyout.createAlertPerHelpText": "すべての一意の値についてアラートを作成します。例:「host.id」または「cloud.region」。", - "xpack.infra.metrics.alertFlyout.createAlertPerText": "次の単位でアラートを作成(任意)", + "xpack.infra.metrics.alertFlyout.createAlertPerText": "アラートのグループ化条件(オプション)", "xpack.infra.metrics.alertFlyout.criticalThreshold": "アラート", "xpack.infra.metrics.alertFlyout.dropPartialBucketsHelpText": "これを有効にすると、{timeSize}{timeUnit}未満の場合は、評価データの最新のバケットを破棄します。", "xpack.infra.metrics.alertFlyout.error.aggregationRequired": "集約が必要です。", @@ -13225,6 +12940,7 @@ "xpack.infra.metrics.alertFlyout.filterByNodeLabel": "ノードでフィルタリング", "xpack.infra.metrics.alertFlyout.filterHelpText": "KQL式を使用して、アラートトリガーの範囲を制限します。", "xpack.infra.metrics.alertFlyout.filterLabel": "フィルター(任意)", + "xpack.infra.metrics.alertFlyout.groupDisappearHelpText": "以前に検出されたグループが結果を報告しなくなった場合は、これを有効にすると、アクションがトリガーされます。自動的に急速にノードを開始および停止することがある動的に拡張するインフラストラクチャーでは、これは推奨されません。", "xpack.infra.metrics.alertFlyout.noDataHelpText": "有効にすると、メトリックが想定された期間内にデータを報告しない場合、またはアラートがElasticsearchをクエリできない場合に、アクションをトリガーします", "xpack.infra.metrics.alertFlyout.ofExpression.helpTextDetail": "メトリックが見つからない場合は、{documentationLink}。", "xpack.infra.metrics.alertFlyout.ofExpression.popoverLinkLabel": "データの追加方法", @@ -13265,12 +12981,15 @@ "xpack.infra.metrics.alerting.threshold.errorAlertReason": "{metric}のデータのクエリを試行しているときに、Elasticsearchが失敗しました", "xpack.infra.metrics.alerting.threshold.errorState": "エラー", "xpack.infra.metrics.alerting.threshold.fired": "アラート", + "xpack.infra.metrics.alerting.threshold.firedAlertReason": "{metric}は{group}の{comparator} {threshold}のしきい値です(現在の値は{currentValue})", "xpack.infra.metrics.alerting.threshold.gtComparator": "より大きい", "xpack.infra.metrics.alerting.threshold.ltComparator": "より小さい", + "xpack.infra.metrics.alerting.threshold.noDataAlertReason": "{metric}は過去{interval}に{group}のデータを報告していません", "xpack.infra.metrics.alerting.threshold.noDataFormattedValue": "[データなし]", "xpack.infra.metrics.alerting.threshold.noDataState": "データなし", "xpack.infra.metrics.alerting.threshold.okState": "OK [回復済み]", "xpack.infra.metrics.alerting.threshold.outsideRangeComparator": "の間にない", + "xpack.infra.metrics.alerting.threshold.recoveredAlertReason": "{metric}は{group}の{comparator} {threshold}のしきい値です(現在の値は{currentValue})", "xpack.infra.metrics.alerting.threshold.thresholdRange": "{a}と{b}", "xpack.infra.metrics.alerting.threshold.warning": "警告", "xpack.infra.metrics.alerting.threshold.warningState": "警告", @@ -13293,6 +13012,9 @@ "xpack.infra.metrics.loadingNodeDataText": "データを読み込み中", "xpack.infra.metrics.metricsExplorerTitle": "メトリックエクスプローラー", "xpack.infra.metrics.missingTSVBModelError": "{nodeType}では{metricId}の TSVB モデルが存在しません", + "xpack.infra.metrics.noDataConfig.beatsCard.description": "Beatsを使用して、メトリックデータをElasticsearchに送信します。多数の一般的なシステムとアプリでは、モジュールによって処理が簡単になりました。", + "xpack.infra.metrics.noDataConfig.beatsCard.title": "メトリック統合の追加", + "xpack.infra.metrics.noDataConfig.solutionName": "オブザーバビリティ", "xpack.infra.metrics.nodeDetails.noProcesses": "プロセスが見つかりません", "xpack.infra.metrics.nodeDetails.noProcessesBody": "フィルターを変更してください。構成された {metricbeatDocsLink} 内のプロセスのみがここに表示されます。", "xpack.infra.metrics.nodeDetails.noProcessesBody.metricbeatDocsLinkText": "CPU またはメモリ別上位 N", @@ -13652,10 +13374,10 @@ "xpack.ingestPipelines.app.checkingPrivilegesErrorMessage": "サーバーからユーザー特権を取得中にエラーが発生。", "xpack.ingestPipelines.app.deniedPrivilegeDescription": "Ingest Pipelinesを使用するには、{privilegesCount, plural, one {このクラスター特権} other {これらのクラスター特権}}が必要です:{missingPrivileges}。", "xpack.ingestPipelines.app.deniedPrivilegeTitle": "クラスターの権限が必要です", - "xpack.ingestPipelines.appTitle": "Ingestノードパイプライン", + "xpack.ingestPipelines.appTitle": "インジェストパイプライン", "xpack.ingestPipelines.breadcrumb.createPipelineLabel": "パイプラインの作成", "xpack.ingestPipelines.breadcrumb.editPipelineLabel": "パイプラインの編集", - "xpack.ingestPipelines.breadcrumb.pipelinesLabel": "Ingestノードパイプライン", + "xpack.ingestPipelines.breadcrumb.pipelinesLabel": "インジェストパイプライン", "xpack.ingestPipelines.clone.loadingPipelinesDescription": "パイプラインを読み込んでいます…", "xpack.ingestPipelines.clone.loadSourcePipelineErrorTitle": "{name}を読み込めません。", "xpack.ingestPipelines.create.docsButtonLabel": "パイプラインドキュメントの作成", @@ -13690,7 +13412,7 @@ "xpack.ingestPipelines.form.unknownError": "不明なエラーが発生しました。", "xpack.ingestPipelines.form.versionFieldLabel": "バージョン(任意)", "xpack.ingestPipelines.form.versionToggleDescription": "バージョン番号を追加", - "xpack.ingestPipelines.list.listTitle": "Ingestノードパイプライン", + "xpack.ingestPipelines.list.listTitle": "インジェストパイプライン", "xpack.ingestPipelines.list.loadErrorTitle": "パイプラインを読み込めません", "xpack.ingestPipelines.list.loadingMessage": "パイプラインを読み込み中...", "xpack.ingestPipelines.list.loadPipelineReloadButton": "再試行", @@ -13707,7 +13429,7 @@ "xpack.ingestPipelines.list.pipelineDetails.processorsTitle": "プロセッサー", "xpack.ingestPipelines.list.pipelineDetails.versionTitle": "バージョン", "xpack.ingestPipelines.list.pipelinesDescription": "インデックス前にドキュメントを処理するためのパイプラインを定義します。", - "xpack.ingestPipelines.list.pipelinesDocsLinkText": "Ingestノードパイプラインドキュメント", + "xpack.ingestPipelines.list.pipelinesDocsLinkText": "インジェストパイプラインドキュメント", "xpack.ingestPipelines.list.table.actionColumnTitle": "アクション", "xpack.ingestPipelines.list.table.cloneActionDescription": "このパイプラインをクローン", "xpack.ingestPipelines.list.table.cloneActionLabel": "クローンを作成", @@ -14175,7 +13897,7 @@ "xpack.ingestPipelines.processors.description.kv": "キーと値のペアを含む文字列からフィールドを抽出します。", "xpack.ingestPipelines.processors.description.lowercase": "文字列を小文字に変換します。", "xpack.ingestPipelines.processors.description.networkDirection": "特定のソースIPアドレスのネットワーク方向を計算します。", - "xpack.ingestPipelines.processors.description.pipeline": "別のインジェストノードパイプラインを実行します。", + "xpack.ingestPipelines.processors.description.pipeline": "別のインジェストパイプラインを実行します。", "xpack.ingestPipelines.processors.description.registeredDomain": "登録されたドメイン(有効な最上位ドメイン)、サブドメイン、最上位ドメインを完全修飾ドメイン名から抽出します。", "xpack.ingestPipelines.processors.description.remove": "1つ以上のフィールドを削除します。", "xpack.ingestPipelines.processors.description.rename": "既存のフィールドの名前を変更します。", @@ -14257,6 +13979,825 @@ "xpack.ingestPipelines.testPipelineFlyout.outputTab.verboseSwitchLabel": "冗長出力を表示", "xpack.ingestPipelines.testPipelineFlyout.successNotificationText": "パイプラインが実行されました", "xpack.ingestPipelines.testPipelineFlyout.title": "パイプラインをテスト", + "xpack.lens.app.addToLibrary": "ライブラリに保存", + "xpack.lens.app.cancel": "キャンセル", + "xpack.lens.app.cancelButtonAriaLabel": "変更を保存せずに最後に使用していたアプリに戻る", + "xpack.lens.app.docLoadingError": "保存されたドキュメントの保存中にエラーが発生", + "xpack.lens.app.downloadButtonAriaLabel": "データを CSV ファイルとしてダウンロード", + "xpack.lens.app.downloadButtonFormulasWarning": "CSVには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", + "xpack.lens.app.downloadCSV": "CSV をダウンロード", + "xpack.lens.app.inspect": "検査", + "xpack.lens.app.inspectAriaLabel": "検査", + "xpack.lens.app.save": "保存", + "xpack.lens.app.saveAndReturn": "保存して戻る", + "xpack.lens.app.saveAndReturnButtonAriaLabel": "現在のLensビジュアライゼーションを保存し、前回使用していたアプリに戻る", + "xpack.lens.app.saveAs": "名前を付けて保存", + "xpack.lens.app.saveButtonAriaLabel": "現在のLensビジュアライゼーションを保存", + "xpack.lens.app.saveModalType": "レンズビジュアライゼーション", + "xpack.lens.app.saveVisualization.successNotificationText": "保存された'{visTitle}'", + "xpack.lens.app.unsavedFilename": "未保存", + "xpack.lens.app.unsavedWorkMessage": "作業内容を保存せずに、Lens から移動しますか?", + "xpack.lens.app.unsavedWorkTitle": "保存されていない変更", + "xpack.lens.app.updatePanel": "{originatingAppName}でパネルを更新", + "xpack.lens.app404": "404 Not Found", + "xpack.lens.appName": "レンズビジュアライゼーション", + "xpack.lens.breadcrumbsByValue": "ビジュアライゼーションを編集", + "xpack.lens.breadcrumbsCreate": "作成", + "xpack.lens.breadcrumbsTitle": "Visualizeライブラリ", + "xpack.lens.chartSwitch.dataLossDescription": "ビジュアライゼーションタイプを選択すると、互換性のない構成オプションと複数のレイヤーが削除されます(存在する場合)。", + "xpack.lens.chartSwitch.dataLossLabel": "警告", + "xpack.lens.chartSwitch.experimentalLabel": "実験的", + "xpack.lens.chartSwitch.noResults": "{term}の結果が見つかりませんでした。", + "xpack.lens.chartTitle.unsaved": "保存されていないビジュアライゼーション", + "xpack.lens.configPanel.addLayerButton": "レイヤーを追加", + "xpack.lens.configPanel.color.tooltip.auto": "カスタム色を指定しない場合、Lensは自動的に色を選択します。", + "xpack.lens.configPanel.color.tooltip.custom": "[自動]モードに戻すには、カスタム色をオフにしてください。", + "xpack.lens.configPanel.color.tooltip.disabled": "レイヤーに「内訳条件」が含まれている場合は、個別の系列をカスタム色にできません。", + "xpack.lens.configPanel.selectVisualization": "ビジュアライゼーションを選択してください", + "xpack.lens.configPanel.visualizationType": "ビジュアライゼーションタイプ", + "xpack.lens.configure.configurePanelTitle": "{groupLabel}", + "xpack.lens.configure.editConfig": "{label}構成の編集", + "xpack.lens.configure.emptyConfig": "フィールドを追加するか、ドラッグアンドドロップします", + "xpack.lens.configure.invalidBottomReferenceLineDimension": "この基準線は存在しないか有効ではない軸に割り当てられています。この基準線を別の使用可能な軸に移動するか、削除することができます。", + "xpack.lens.configure.invalidConfigTooltip": "無効な構成です。", + "xpack.lens.configure.invalidConfigTooltipClick": "詳細はクリックしてください。", + "xpack.lens.configure.invalidReferenceLineDimension": "この基準線は存在しない軸に割り当てられています。この基準線を別の使用可能な軸に移動するか、削除することができます。", + "xpack.lens.customBucketContainer.dragToReorder": "ドラッグして並べ替え", + "xpack.lens.dataPanelWrapper.switchDatasource": "データソースに切り替える", + "xpack.lens.datatable.addLayer": "ビジュアライゼーションレイヤーを追加", + "xpack.lens.datatable.breakdownColumns": "列", + "xpack.lens.datatable.breakdownColumns.description": "フィールドでメトリックを列に分割します。列数を少なくし、横スクロールを避けることをお勧めします。", + "xpack.lens.datatable.breakdownRows": "行", + "xpack.lens.datatable.breakdownRows.description": "フィールドで表の行を分割します。これは高カーディナリティ内訳にお勧めです。", + "xpack.lens.datatable.conjunctionSign": " & ", + "xpack.lens.datatable.expressionHelpLabel": "データベースレンダー", + "xpack.lens.datatable.groupLabel": "表形式の値と単一の値", + "xpack.lens.datatable.label": "表", + "xpack.lens.datatable.metrics": "メトリック", + "xpack.lens.datatable.suggestionLabel": "表として", + "xpack.lens.datatable.titleLabel": "タイトル", + "xpack.lens.datatable.visualizationName": "データベース", + "xpack.lens.datatable.visualizationOf": "テーブル {operations}", + "xpack.lens.datatypes.boolean": "ブール", + "xpack.lens.datatypes.date": "日付", + "xpack.lens.datatypes.geoPoint": "geo_point", + "xpack.lens.datatypes.geoShape": "geo_shape", + "xpack.lens.datatypes.histogram": "ヒストグラム", + "xpack.lens.datatypes.ipAddress": "IP", + "xpack.lens.datatypes.number": "数字", + "xpack.lens.datatypes.record": "レコード", + "xpack.lens.datatypes.string": "文字列", + "xpack.lens.deleteLayerAriaLabel": "レイヤー {index} を削除", + "xpack.lens.dimensionContainer.close": "閉じる", + "xpack.lens.dimensionContainer.closeConfiguration": "構成を閉じる", + "xpack.lens.discover.visualizeFieldLegend": "Visualize フィールド", + "xpack.lens.dragDrop.altOption": "Alt/Option", + "xpack.lens.dragDrop.announce.cancelled": "移動がキャンセルされました。{label}は初期位置に戻りました", + "xpack.lens.dragDrop.announce.cancelledItem": "移動がキャンセルされました。{label}は位置{position}の{groupLabel}グループに戻りました", + "xpack.lens.dragDrop.announce.dropped.duplicated": "位置{position}の{groupLabel}グループで{label}を複製しました", + "xpack.lens.dragDrop.announce.dropped.duplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}の{groupLabel}グループに追加しました", + "xpack.lens.dragDrop.announce.dropped.moveCompatible": "位置{position}の{groupLabel}グループに{label}を移動しました", + "xpack.lens.dragDrop.announce.dropped.moveIncompatible": "{label}を{nextLabel}に変換し、位置{position}の{groupLabel}グループに移動しました", + "xpack.lens.dragDrop.announce.dropped.reordered": "{groupLabel}グループの{label}を位置{prevPosition}から位置{position}に並べ替えました", + "xpack.lens.dragDrop.announce.dropped.replaceDuplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}の{groupLabel}グループで{dropLabel}を置き換えました", + "xpack.lens.dragDrop.announce.dropped.replaceIncompatible": "{label}を{nextLabel}に変換し、位置{position}の{groupLabel}グループで{dropLabel}を置き換えました", + "xpack.lens.dragDrop.announce.dropped.swapCompatible": "位置{dropPosition}で{label}を{dropGroupLabel}に移動し、位置{position}で{dropLabel}を {groupLabel}グループに移動しました", + "xpack.lens.dragDrop.announce.dropped.swapIncompatible": "位置{position}で{label}を{groupLabel}の{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループの{dropLabel}と入れ替えました", + "xpack.lens.dragDrop.announce.droppedDefault": "位置{position}の{dropGroupLabel}グループで{label}を追加しました", + "xpack.lens.dragDrop.announce.droppedNoPosition": "{label}を{dropLabel}に追加しました", + "xpack.lens.dragDrop.announce.duplicate.short": " AltキーまたはOptionを押し続けると複製します。", + "xpack.lens.dragDrop.announce.duplicated.replace": "位置{position}の{groupLabel}で{dropLabel}を{label}に置き換えました", + "xpack.lens.dragDrop.announce.duplicated.replaceDuplicateCompatible": "位置{position}の{groupLabel}で{dropLabel}を{label}のコピーに置き換えました", + "xpack.lens.dragDrop.announce.lifted": "{label}を上げました", + "xpack.lens.dragDrop.announce.selectedTarget.default": "位置{position}の{dropGroupLabel}グループに{label}を追加しました。スペースまたはEnterを押して追加します", + "xpack.lens.dragDrop.announce.selectedTarget.defaultNoPosition": "{label}を{dropLabel}に追加します。スペースまたはEnterを押して追加します", + "xpack.lens.dragDrop.announce.selectedTarget.duplicated": "位置{position}の{dropGroupLabel}グループに{label}を複製しました。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製します", + "xpack.lens.dragDrop.announce.selectedTarget.duplicatedInGroup": "位置{position}の{dropGroupLabel}グループに{label}を複製しました。スペースまたはEnterを押して複製します", + "xpack.lens.dragDrop.announce.selectedTarget.duplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}で{groupLabel}グループに移動します。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製します", + "xpack.lens.dragDrop.announce.selectedTarget.moveCompatibleMain": "位置{position}で{groupLabel}の{label}を{dropGroupLabel}グループの位置{dropPosition}にドラッグしています。スペースバーまたはEnterキーを押すと移動します。{duplicateCopy}{swapCopy}", + "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible": "{label}を{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループに移動します。スペースまたはEnterを押して移動します", + "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatibleMain": "位置{position}で{groupLabel}の{label}を{dropGroupLabel}グループの位置{dropPosition}にドラッグしています。スペースバーまたはEnterキーを押して、{label}を{nextLabel}に変換して移動します。{duplicateCopy}{swapCopy}", + "xpack.lens.dragDrop.announce.selectedTarget.noSelected": "対象が選択されていません。矢印キーを使用して対象を選択してください", + "xpack.lens.dragDrop.announce.selectedTarget.reordered": "{groupLabel}グループの{label}を位置{prevPosition}から位置{position}に並べ替えます。スペースまたはEnterを押して並べ替えます", + "xpack.lens.dragDrop.announce.selectedTarget.reorderedBack": "{label}は初期位置{prevPosition}に戻りました", + "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateCompatible": "位置{position}で{label}を複製し、{groupLabel}グループで{dropLabel}を置き換えます。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製して置換します", + "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateIncompatible": "{label}のコピーを{nextLabel}に変換し、位置{position}で{groupLabel}グループの{dropLabel}を置き換えます。AltまたはOptionを押しながらスペースバーまたはEnterキーを押すと、複製して置換します", + "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatibleMain": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}にドラッグしています。スペースバーまたはEnterキーを押して、{label}を{nextLabel}に変換して、{dropLabel}を置き換えます。{duplicateCopy}{swapCopy}", + "xpack.lens.dragDrop.announce.selectedTarget.replaceMain": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}にドラッグしています。スペースまたはEnterを押して、{dropLabel}を{label}で置き換えます。{duplicateCopy}{swapCopy}", + "xpack.lens.dragDrop.announce.selectedTarget.swapCompatible": "位置{position}の{groupLabel}の{label}を、位置{dropPosition}の{dropGroupLabel}グループの{dropLabel}と入れ替えます。Shiftキーを押しながらスペースバーまたはEnterキーを押すと、入れ替えます", + "xpack.lens.dragDrop.announce.selectedTarget.swapIncompatible": "位置{position}で{label}を{groupLabel}の{nextLabel}に変換し、位置{dropPosition}で{dropGroupLabel}グループの{dropLabel}と入れ替えます。Shiftキーを押しながらスペースバーまたはEnterキーを押すと、入れ替えます", + "xpack.lens.dragDrop.announce.swap.short": " Shiftキーを押すと入れ替えます。", + "xpack.lens.dragDrop.duplicate": "複製", + "xpack.lens.dragDrop.keyboardInstructions": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、左右の矢印キーを使用して、ドロップ対象間を移動します。もう一度スペースまたはEnterを押すと終了します。", + "xpack.lens.dragDrop.keyboardInstructionsReorder": "スペースまたはEnterを押してドラッグを開始します。ドラッグするときには、上下矢印キーを使用すると、グループの項目を並べ替えます。左右矢印キーを使用すると、グループの外側でドロップ対象を選択します。もう一度スペースまたはEnterを押すと終了します。", + "xpack.lens.dragDrop.shift": "Shift", + "xpack.lens.dragDrop.swap": "入れ替える", + "xpack.lens.dynamicColoring.customPalette.addColorStop": "色経由点を追加", + "xpack.lens.dynamicColoring.customPalette.deleteButtonAriaLabel": "削除", + "xpack.lens.dynamicColoring.customPalette.deleteButtonDisabled": "2つ以上の経由点が必要であるため、この色経由点を削除することはできません", + "xpack.lens.dynamicColoring.customPalette.deleteButtonLabel": "削除", + "xpack.lens.dynamicColoring.customPalette.sortReason": "新しい経由値{value}のため、色経由点が並べ替えられました", + "xpack.lens.dynamicColoring.customPalette.stopAriaLabel": "{index}を停止", + "xpack.lens.editorFrame.buildExpressionError": "グラフの準備中に予期しないエラーが発生しました", + "xpack.lens.editorFrame.colorIndicatorLabel": "このディメンションの色:{hex}", + "xpack.lens.editorFrame.dataFailure": "データの読み込み中にエラーが発生しました。", + "xpack.lens.editorFrame.emptyWorkspace": "開始するにはここにフィールドをドロップしてください", + "xpack.lens.editorFrame.emptyWorkspaceHeading": "Lensはビジュアライゼーションを作成するための新しいツールです", + "xpack.lens.editorFrame.emptyWorkspaceSimple": "ここにフィールドをドロップ", + "xpack.lens.editorFrame.expandRenderingErrorButton": "エラーの詳細を表示", + "xpack.lens.editorFrame.expressionFailure": "式でエラーが発生しました", + "xpack.lens.editorFrame.expressionFailureMessage": "リクエストエラー:{type}, {reason}", + "xpack.lens.editorFrame.expressionFailureMessageWithContext": "リクエストエラー:{type}、{context}の{reason}", + "xpack.lens.editorFrame.expressionMissingDatasource": "ビジュアライゼーションのデータソースが見つかりませんでした", + "xpack.lens.editorFrame.expressionMissingVisualizationType": "ビジュアライゼーションタイプが見つかりません。", + "xpack.lens.editorFrame.goToForums": "リクエストとフィードバック", + "xpack.lens.editorFrame.invisibleIndicatorLabel": "このディメンションは現在グラフに表示されません", + "xpack.lens.editorFrame.networkErrorMessage": "ネットワークエラーです。しばらくたってから再試行するか、管理者に連絡してください。", + "xpack.lens.editorFrame.noColorIndicatorLabel": "このディメンションには個別の色がありません", + "xpack.lens.editorFrame.paletteColorIndicatorLabel": "このディメンションはパレットを使用しています", + "xpack.lens.editorFrame.previewErrorLabel": "レンダリングのプレビューに失敗しました", + "xpack.lens.editorFrame.suggestionPanelTitle": "提案", + "xpack.lens.editorFrame.workspaceLabel": "ワークスペース", + "xpack.lens.embeddable.failure": "ビジュアライゼーションを表示できませんでした", + "xpack.lens.embeddable.fixErrors": "Lensエディターで編集し、エラーを修正", + "xpack.lens.embeddable.legacyURLConflict.shortMessage": "URLの競合が発生しました", + "xpack.lens.embeddable.moreErrors": "Lensエディターで編集すると、エラーの詳細が表示されます", + "xpack.lens.embeddableDisplayName": "レンズ", + "xpack.lens.fieldFormats.longSuffix.d": "日単位", + "xpack.lens.fieldFormats.longSuffix.h": "時間単位", + "xpack.lens.fieldFormats.longSuffix.m": "分単位", + "xpack.lens.fieldFormats.longSuffix.s": "秒単位", + "xpack.lens.fieldFormats.suffix.d": "/d", + "xpack.lens.fieldFormats.suffix.h": "/h", + "xpack.lens.fieldFormats.suffix.m": "/m", + "xpack.lens.fieldFormats.suffix.s": "/s", + "xpack.lens.fieldFormats.suffix.title": "接尾辞", + "xpack.lens.filterBy.removeLabel": "フィルターを削除", + "xpack.lens.fittingFunctionsDescription.carry": "ギャップを最後の値で埋める", + "xpack.lens.fittingFunctionsDescription.linear": "ギャップを線で埋める", + "xpack.lens.fittingFunctionsDescription.lookahead": "ギャップを次の値で埋める", + "xpack.lens.fittingFunctionsDescription.none": "ギャップを埋めない", + "xpack.lens.fittingFunctionsDescription.zero": "ギャップをゼロで埋める", + "xpack.lens.fittingFunctionsTitle.carry": "最後", + "xpack.lens.fittingFunctionsTitle.linear": "線形", + "xpack.lens.fittingFunctionsTitle.lookahead": "次へ", + "xpack.lens.fittingFunctionsTitle.none": "非表示", + "xpack.lens.fittingFunctionsTitle.zero": "ゼロ", + "xpack.lens.formula.base": "基数", + "xpack.lens.formula.decimals": "小数点以下", + "xpack.lens.formula.disableWordWrapLabel": "単語の折り返しを無効にする", + "xpack.lens.formula.editorHelpInlineHideLabel": "関数リファレンスを非表示", + "xpack.lens.formula.editorHelpInlineHideToolTip": "関数リファレンスを非表示", + "xpack.lens.formula.editorHelpInlineShowToolTip": "関数リファレンスを表示", + "xpack.lens.formula.editorHelpOverlayToolTip": "機能リファレンス", + "xpack.lens.formula.fullScreenEnterLabel": "拡張", + "xpack.lens.formula.fullScreenExitLabel": "縮小", + "xpack.lens.formula.kqlExtraArguments": "[kql]?:文字列、[lucene]?:文字列", + "xpack.lens.formula.left": "左", + "xpack.lens.formula.max": "最高", + "xpack.lens.formula.min": "分", + "xpack.lens.formula.number": "数字", + "xpack.lens.formula.optionalArgument": "任意。デフォルト値は{defaultValue}です", + "xpack.lens.formula.requiredArgument": "必須", + "xpack.lens.formula.right": "右", + "xpack.lens.formula.shiftExtraArguments": "[shift]?:文字列", + "xpack.lens.formula.string": "文字列", + "xpack.lens.formula.value": "値", + "xpack.lens.formulaCommonFormulaDocumentation": "最も一般的な式は2つの値を分割して割合を生成します。正確に表示するには、[値形式]を[割合]に設定します。", + "xpack.lens.formulaDocumentation.columnCalculationSection": "列計算", + "xpack.lens.formulaDocumentation.columnCalculationSectionDescription": "各行でこれらの関数が実行されますが、コンテキストとして列全体が提供されます。これはウィンドウ関数とも呼ばれます。", + "xpack.lens.formulaDocumentation.elasticsearchSection": "Elasticsearch", + "xpack.lens.formulaDocumentation.elasticsearchSectionDescription": "これらの関数は結果テーブルの各行の未加工ドキュメントで実行され、内訳ディメンションと一致するすべてのドキュメントを単一の値に集約します。", + "xpack.lens.formulaDocumentation.filterRatio": "フィルター比率", + "xpack.lens.formulaDocumentation.header": "式リファレンス", + "xpack.lens.formulaDocumentation.mathSection": "数学処理", + "xpack.lens.formulaDocumentation.mathSectionDescription": "これらの関数は、他の関数で計算された同じ行の単一の値を使用して、結果テーブルの各行で実行されます。", + "xpack.lens.formulaDocumentation.percentOfTotal": "合計の割合", + "xpack.lens.formulaDocumentation.weekOverWeek": "週単位", + "xpack.lens.formulaDocumentationHeading": "仕組み", + "xpack.lens.formulaEnableWordWrapLabel": "単語の折り返しを有効にする", + "xpack.lens.formulaExampleMarkdown": "例", + "xpack.lens.formulaFrequentlyUsedHeading": "一般的な式", + "xpack.lens.formulaPlaceholderText": "関数を演算と組み合わせて式を入力します。例:", + "xpack.lens.formulaSearchPlaceholder": "検索関数", + "xpack.lens.functions.counterRate.args.byHelpText": "カウンターレート計算を分割する列", + "xpack.lens.functions.counterRate.args.inputColumnIdHelpText": "カウンターレートを計算する列", + "xpack.lens.functions.counterRate.args.outputColumnIdHelpText": "結果のカウンターレートを格納する列", + "xpack.lens.functions.counterRate.args.outputColumnNameHelpText": "結果のカウンターレートを格納する列の名前", + "xpack.lens.functions.counterRate.help": "データテーブルの列のカウンターレートを計算します", + "xpack.lens.functions.lastValue.missingSortField": "このインデックスパターンには日付フィールドが含まれていません", + "xpack.lens.functions.mergeTables.help": "任意の数の Kibana 表を 1 つの表に結合し、インスペクターアダプター経由で公開するヘルパー", + "xpack.lens.functions.renameColumns.help": "データベースの列の名前の変更をアシストします", + "xpack.lens.functions.renameColumns.idMap.help": "キーが古い列 ID で値が対応する新しい列 ID となるように JSON エンコーディングされたオブジェクトです。他の列 ID はすべてのそのままです。", + "xpack.lens.functions.timeScale.dateColumnMissingMessage": "指定した dateColumnId {columnId} は存在しません。", + "xpack.lens.functions.timeScale.timeInfoMissingMessage": "日付ヒストグラム情報を取得できませんでした", + "xpack.lens.geoFieldWorkspace.dropMessage": "Mapsで開くにはここにフィールドをドロップします", + "xpack.lens.geoFieldWorkspace.dropZoneLabel": "Mapsで開くにはゾーンをドロップします", + "xpack.lens.heatmap.addLayer": "ビジュアライゼーションレイヤーを追加", + "xpack.lens.heatmap.cellValueLabel": "セル値", + "xpack.lens.heatmap.expressionHelpLabel": "ヒートマップレンダラー", + "xpack.lens.heatmap.groupLabel": "ヒートマップ", + "xpack.lens.heatmap.heatmapLabel": "ヒートマップ", + "xpack.lens.heatmap.horizontalAxisLabel": "横軸", + "xpack.lens.heatmap.titleLabel": "タイトル", + "xpack.lens.heatmap.verticalAxisLabel": "縦軸", + "xpack.lens.heatmap.visualizationName": "ヒートマップ", + "xpack.lens.heatmapChart.config.cellHeight.help": "グリッドセルの高さを指定します", + "xpack.lens.heatmapChart.config.cellWidth.help": "グリッドセルの幅を指定します", + "xpack.lens.heatmapChart.config.isCellLabelVisible.help": "セルラベルの表示・非表示を指定します。", + "xpack.lens.heatmapChart.config.isXAxisLabelVisible.help": "x軸のラベルを表示するかどうかを指定します。", + "xpack.lens.heatmapChart.config.isYAxisLabelVisible.help": "Y軸のラベルを表示するかどうかを指定します。", + "xpack.lens.heatmapChart.config.strokeColor.help": "グリッドストローク色を指定します", + "xpack.lens.heatmapChart.config.strokeWidth.help": "グリッドストローク幅を指定します", + "xpack.lens.heatmapChart.config.yAxisLabelColor.help": "Y軸ラベルの色を指定します。", + "xpack.lens.heatmapChart.config.yAxisLabelWidth.help": "Y軸ラベルの幅を指定します。", + "xpack.lens.heatmapChart.gridConfig.help": "ヒートマップレイアウトを構成します。", + "xpack.lens.heatmapChart.legend.help": "チャートの凡例を構成します。", + "xpack.lens.heatmapChart.legend.isVisible.help": "判例の表示・非表示を指定します。", + "xpack.lens.heatmapChart.legend.maxLines.help": "凡例項目ごとの行数を指定します。", + "xpack.lens.heatmapChart.legend.position.help": "凡例の配置を指定します。", + "xpack.lens.heatmapChart.legend.shouldTruncate.help": "凡例項目を切り捨てるかどうかを指定します。", + "xpack.lens.heatmapChart.legendVisibility.hide": "非表示", + "xpack.lens.heatmapChart.legendVisibility.show": "表示", + "xpack.lens.heatmapVisualization.arrayValuesWarningMessage": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", + "xpack.lens.heatmapVisualization.heatmapGroupLabel": "ヒートマップ", + "xpack.lens.heatmapVisualization.heatmapLabel": "ヒートマップ", + "xpack.lens.heatmapVisualization.missingXAccessorLongMessage": "横軸の構成がありません。", + "xpack.lens.heatmapVisualization.missingXAccessorShortMessage": "横軸がありません。", + "xpack.lens.indexPattern.advancedSettings": "高度なオプションを追加", + "xpack.lens.indexPattern.allFieldsLabel": "すべてのフィールド", + "xpack.lens.indexPattern.allFieldsLabelHelp": "使用可能なフィールドには、フィルターと一致する最初の 500 件のドキュメントのデータがあります。すべてのフィールドを表示するには、空のフィールドを展開します。一部のフィールドタイプは、完全なテキストおよびグラフィックフィールドを含む Lens では、ビジュアライゼーションできません。", + "xpack.lens.indexPattern.availableFieldsLabel": "利用可能なフィールド", + "xpack.lens.indexPattern.avg": "平均", + "xpack.lens.indexPattern.avg.description": "集約されたドキュメントから抽出された数値の平均値を計算する単一値メトリック集約", + "xpack.lens.indexPattern.avgOf": "{name} の平均", + "xpack.lens.indexPattern.bytesFormatLabel": "バイト(1024)", + "xpack.lens.indexPattern.calculations.dateHistogramErrorMessage": "{name} が動作するには、日付ヒストグラムが必要です。日付ヒストグラムを追加するか、別の関数を選択します。", + "xpack.lens.indexPattern.calculations.layerDataType": "このタイプのレイヤーでは{name}が無効です。", + "xpack.lens.indexPattern.cardinality": "ユニークカウント", + "xpack.lens.indexPattern.cardinality.signature": "フィールド:文字列", + "xpack.lens.indexPattern.cardinalityOf": "{name} のユニークカウント", + "xpack.lens.indexPattern.chooseField": "フィールドを選択", + "xpack.lens.indexPattern.chooseFieldLabel": "この関数を使用するには、フィールドを選択してください。", + "xpack.lens.indexPattern.chooseSubFunction": "サブ関数を選択", + "xpack.lens.indexPattern.columnFormatLabel": "値の形式", + "xpack.lens.indexPattern.columnLabel": "表示名", + "xpack.lens.indexPattern.count": "カウント", + "xpack.lens.indexPattern.counterRate": "カウンターレート", + "xpack.lens.indexPattern.counterRate.signature": "メトリック:数値", + "xpack.lens.indexPattern.CounterRateOf": "{name} のカウンターレート", + "xpack.lens.indexPattern.countOf": "レコード数", + "xpack.lens.indexPattern.cumulative_sum.signature": "メトリック:数値", + "xpack.lens.indexPattern.cumulativeSum": "累積和", + "xpack.lens.indexPattern.cumulativeSumOf": "{name}の累積和", + "xpack.lens.indexPattern.dateHistogram": "日付ヒストグラム", + "xpack.lens.indexPattern.dateHistogram.autoAdvancedExplanation": "間隔は次のロジックに従います。", + "xpack.lens.indexPattern.dateHistogram.autoBasicExplanation": "自動日付ヒストグラムは、間隔でデータフィールドをバケットに分割します。", + "xpack.lens.indexPattern.dateHistogram.autoBoundHeader": "対象間隔の測定", + "xpack.lens.indexPattern.dateHistogram.autoHelpText": "仕組み", + "xpack.lens.indexPattern.dateHistogram.autoInterval": "時間範囲のカスタマイズ", + "xpack.lens.indexPattern.dateHistogram.autoIntervalHeader": "使用される間隔", + "xpack.lens.indexPattern.dateHistogram.autoLongerExplanation": "間隔を選択するには、Lensは指定された時間範囲を{targetBarSetting}設定で除算します。Lensはデータに最適な間隔を計算します。たとえば、30分、1時間、12です。棒の最大数は{maxBarSetting}値で設定します。", + "xpack.lens.indexPattern.dateHistogram.days": "日", + "xpack.lens.indexPattern.dateHistogram.hours": "時間", + "xpack.lens.indexPattern.dateHistogram.milliseconds": "ミリ秒", + "xpack.lens.indexPattern.dateHistogram.minimumInterval": "最低間隔", + "xpack.lens.indexPattern.dateHistogram.minutes": "分", + "xpack.lens.indexPattern.dateHistogram.month": "月", + "xpack.lens.indexPattern.dateHistogram.moreThanYear": "1年を超える", + "xpack.lens.indexPattern.dateHistogram.restrictedInterval": "集約の制限により間隔は {intervalValue} に固定されています。", + "xpack.lens.indexPattern.dateHistogram.seconds": "秒", + "xpack.lens.indexPattern.dateHistogram.titleHelp": "自動日付ヒストグラムの仕組み", + "xpack.lens.indexPattern.dateHistogram.upTo": "最大", + "xpack.lens.indexPattern.dateHistogram.week": "週", + "xpack.lens.indexPattern.dateHistogram.year": "年", + "xpack.lens.indexPattern.decimalPlacesLabel": "小数点以下", + "xpack.lens.indexPattern.defaultFormatLabel": "デフォルト", + "xpack.lens.indexPattern.derivative": "差異", + "xpack.lens.indexPattern.derivativeOf": "{name} の差異", + "xpack.lens.indexPattern.differences.signature": "メトリック:数値", + "xpack.lens.indexPattern.editFieldLabel": "インデックスパターンフィールドを編集", + "xpack.lens.indexPattern.emptyDimensionButton": "空のディメンション", + "xpack.lens.indexPattern.emptyFieldsLabel": "空のフィールド", + "xpack.lens.indexPattern.emptyFieldsLabelHelp": "空のフィールドには、フィルターに基づく最初の 500 件のドキュメントの値が含まれていませんでした。", + "xpack.lens.indexPattern.existenceErrorAriaLabel": "存在の取り込みに失敗しました", + "xpack.lens.indexPattern.existenceErrorLabel": "フィールド情報を読み込めません", + "xpack.lens.indexPattern.existenceTimeoutAriaLabel": "存在の取り込みがタイムアウトしました", + "xpack.lens.indexPattern.existenceTimeoutLabel": "フィールド情報に時間がかかりすぎました", + "xpack.lens.indexPattern.fieldDistributionLabel": "分布", + "xpack.lens.indexPattern.fieldItem.visualizeGeoFieldLinkText": "Mapsで可視化", + "xpack.lens.indexPattern.fieldItemTooltip": "可視化するには、ドラッグアンドドロップします。", + "xpack.lens.indexPattern.fieldNoOperation": "フィールド{field}は演算なしで使用できません", + "xpack.lens.indexPattern.fieldNotFound": "フィールド {invalidField} が見つかりませんでした", + "xpack.lens.indexPattern.fieldPanelEmptyStringValue": "空の文字列", + "xpack.lens.indexPattern.fieldPlaceholder": "フィールド", + "xpack.lens.indexPattern.fieldStatsButtonAriaLabel": "プレビュー{fieldName}:{fieldType}", + "xpack.lens.indexPattern.fieldStatsButtonEmptyLabel": "このフィールドにはデータがありませんが、ドラッグアンドドロップで可視化できます。", + "xpack.lens.indexPattern.fieldStatsButtonLabel": "フィールドプレビューを表示するには、クリックします。可視化するには、ドラッグアンドドロップします。", + "xpack.lens.indexPattern.fieldStatsCountLabel": "カウント", + "xpack.lens.indexPattern.fieldStatsDisplayToggle": "次のどちらかを切り替えます:", + "xpack.lens.indexPattern.fieldStatsLimited": "範囲タイプフィールドの概要情報がありません。", + "xpack.lens.indexPattern.fieldStatsNoData": "このフィールドは空です。500件のサンプリングされたドキュメントに存在しません。このフィールドを構成に追加すると、空白のグラフが作成される場合があります。", + "xpack.lens.indexPattern.fieldTimeDistributionLabel": "時間分布", + "xpack.lens.indexPattern.fieldTopValuesLabel": "トップの値", + "xpack.lens.indexPattern.fieldWrongType": "フィールド{invalidField}の型が正しくありません", + "xpack.lens.indexPattern.filterBy.clickToEdit": "クリックして編集", + "xpack.lens.indexPattern.filterBy.emptyFilterQuery": "(空)", + "xpack.lens.indexPattern.filterBy.label": "フィルタリング条件", + "xpack.lens.indexPattern.filters": "フィルター", + "xpack.lens.indexPattern.filters.addaFilter": "フィルターを追加", + "xpack.lens.indexPattern.filters.clickToEdit": "クリックして編集", + "xpack.lens.indexPattern.filters.isInvalid": "このクエリは無効です", + "xpack.lens.indexPattern.filters.label.placeholder": "すべてのレコード", + "xpack.lens.indexPattern.filters.queryPlaceholderKql": "{example}", + "xpack.lens.indexPattern.filters.queryPlaceholderLucene": "{example}", + "xpack.lens.indexPattern.filters.removeFilter": "フィルターを削除", + "xpack.lens.indexPattern.formulaExpressionNotHandled": "式{operation}の演算には次のパラメーターがありません:{params}", + "xpack.lens.indexPattern.formulaExpressionParseError": "式{expression}を解析できません", + "xpack.lens.indexPattern.formulaExpressionWrongType": "式の演算{operation}のパラメーターの型が正しくありません:{params}", + "xpack.lens.indexPattern.formulaFieldNotRequired": "演算{operation}ではどのフィールドも引数として使用できません", + "xpack.lens.indexPattern.formulaFieldValue": "フィールド", + "xpack.lens.indexPattern.formulaLabel": "式", + "xpack.lens.indexPattern.formulaMathMissingArgument": "式{operation}の演算には{count}個の引数がありません:{params}", + "xpack.lens.indexPattern.formulaMetricValue": "メトリック", + "xpack.lens.indexPattern.formulaNoFieldForOperation": "フィールドなし", + "xpack.lens.indexPattern.formulaNoOperation": "演算なし", + "xpack.lens.indexPattern.formulaOperationDoubleQueryError": "kql=またはlucene=のいずれかのみを使用します。両方は使用できません", + "xpack.lens.indexPattern.formulaOperationDuplicateParams": "演算{operation}のパラメーターが複数回宣言されました:{params}", + "xpack.lens.indexPattern.formulaOperationQueryError": "{rawQuery}では{language}=''に単一引用符が必要です", + "xpack.lens.indexPattern.formulaOperationTooManyFirstArguments": "式の演算{operation}には{supported, plural, one {1つの} other {サポートされている}} {type}が必要です。検出:{text}", + "xpack.lens.indexPattern.formulaOperationValue": "演算", + "xpack.lens.indexPattern.formulaOperationwrongArgument": "式の演算{operation}は{type}パラメーターをサポートしていません。検出:{text}", + "xpack.lens.indexPattern.formulaOperationWrongFirstArgument": "{operation}の最初の引数は{type}名でなければなりません。{argument}が見つかりました", + "xpack.lens.indexPattern.formulaOperationWrongReturnedType": "演算{text}の戻り値型が式でサポートされていません。", + "xpack.lens.indexPattern.formulaParameterNotRequired": "演算{operation}ではどのパラメーターも使用できません", + "xpack.lens.indexPattern.formulaPartLabel": "{label}の一部", + "xpack.lens.indexPattern.formulaWarning": "現在適用されている式", + "xpack.lens.indexPattern.formulaWarningStaticValueText": "式を上書きするには、入力フィールドの値を変更します", + "xpack.lens.indexPattern.formulaWarningText": "式を上書きするには、クイック関数を選択します", + "xpack.lens.indexPattern.formulaWithTooManyArguments": "演算{operation}の引数が多すぎます", + "xpack.lens.indexPattern.functionsLabel": "関数を選択", + "xpack.lens.indexPattern.groupByDropdown": "グループ分けの条件", + "xpack.lens.indexPattern.incompleteOperation": "(未完了)", + "xpack.lens.indexPattern.intervals": "間隔", + "xpack.lens.indexPattern.invalidFieldLabel": "無効なフィールドです。インデックスパターンを確認するか、別のフィールドを選択してください。", + "xpack.lens.indexPattern.invalidInterval": "無効な間隔値", + "xpack.lens.indexPattern.invalidOperationLabel": "選択した関数はこのフィールドで動作しません。", + "xpack.lens.indexPattern.invalidReferenceConfiguration": "ディメンション\"{dimensionLabel}\"の構成が正しくありません", + "xpack.lens.indexPattern.invalidTimeShift": "無効な時間シフトです。正の整数の後に単位s、m、h、d、w、M、yのいずれかを入力します。例:3時間は3hです", + "xpack.lens.indexPattern.lastValue": "最終値", + "xpack.lens.indexPattern.lastValue.disabled": "この関数には、インデックスの日付フィールドが必要です", + "xpack.lens.indexPattern.lastValue.invalidTypeSortField": "フィールド {invalidField} は日付フィールドではないため、並べ替えで使用できません", + "xpack.lens.indexPattern.lastValue.signature": "フィールド:文字列", + "xpack.lens.indexPattern.lastValue.sortField": "日付フィールドで並べ替え", + "xpack.lens.indexPattern.lastValue.sortFieldNotFound": "フィールド {invalidField} が見つかりませんでした", + "xpack.lens.indexPattern.lastValue.sortFieldPlaceholder": "並べ替えフィールド", + "xpack.lens.indexPattern.lastValueOf": "{name} の最後の値", + "xpack.lens.indexPattern.layerErrorWrapper": "レイヤー{position}エラー:{wrappedMessage}", + "xpack.lens.indexPattern.max": "最高", + "xpack.lens.indexPattern.max.description": "集約されたドキュメントから抽出された数値の最大値を返す単一値メトリック集約。", + "xpack.lens.indexPattern.maxOf": "{name} の最高値", + "xpack.lens.indexPattern.median": "中央", + "xpack.lens.indexPattern.median.description": "集約されたドキュメントから抽出された中央値を計算する単一値メトリック集約。", + "xpack.lens.indexPattern.medianOf": "{name} の中央値", + "xpack.lens.indexPattern.metaFieldsLabel": "メタフィールド", + "xpack.lens.indexPattern.metric.signature": "フィールド:文字列", + "xpack.lens.indexPattern.min": "最低", + "xpack.lens.indexPattern.min.description": "集約されたドキュメントから抽出された数値の最小値を返す単一値メトリック集約。", + "xpack.lens.indexPattern.minOf": "{name} の最低値", + "xpack.lens.indexPattern.missingFieldLabel": "見つからないフィールド", + "xpack.lens.indexPattern.missingReferenceError": "\"{dimensionLabel}\"は完全に構成されていません", + "xpack.lens.indexPattern.moveToWorkspace": "{field}をワークスペースに追加", + "xpack.lens.indexPattern.moveToWorkspaceDisabled": "このフィールドは自動的にワークスペースに追加できません。構成パネルで直接使用することはできます。", + "xpack.lens.indexPattern.moving_average.signature": "メトリック:数値、[window]:数値", + "xpack.lens.indexPattern.movingAverage": "移動平均", + "xpack.lens.indexPattern.movingAverage.basicExplanation": "移動平均はデータ全体でウィンドウをスライドし、平均値を表示します。移動平均は日付ヒストグラムでのみサポートされています。", + "xpack.lens.indexPattern.movingAverage.helpText": "仕組み", + "xpack.lens.indexPattern.movingAverage.limitations": "最初の移動平均値は2番目の項目から開始します。", + "xpack.lens.indexPattern.movingAverage.longerExplanation": "移動平均を計算するには、Lensはウィンドウの平均値を使用し、ギャップのスキップポリシーを適用します。 見つからない値がある場合、バケットがスキップされます。次の値に対して計算が実行されます。", + "xpack.lens.indexPattern.movingAverage.tableExplanation": "たとえば、データ[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]がある場合、ウィンドウサイズ5でシンプルな移動平均を計算できます。", + "xpack.lens.indexPattern.movingAverage.titleHelp": "移動平均の仕組み", + "xpack.lens.indexPattern.movingAverage.window": "ウィンドウサイズ", + "xpack.lens.indexPattern.movingAverage.windowInitialPartial": "要求されたアイテム数に達するまで、ウィンドウは部分的です。 例:ウィンドウサイズ5。", + "xpack.lens.indexPattern.movingAverage.windowLimitations": "ウィンドウには現在の値が含まれません。", + "xpack.lens.indexPattern.movingAverageOf": "{name} の移動平均", + "xpack.lens.indexPattern.multipleDateHistogramsError": "\"{dimensionLabel}\"は唯一の日付ヒストグラムではありません。時間シフトを使用するときには、1つの日付ヒストグラムのみを使用していることを確認してください。", + "xpack.lens.indexPattern.numberFormatLabel": "数字", + "xpack.lens.indexPattern.ofDocumentsLabel": "ドキュメント", + "xpack.lens.indexPattern.otherDocsLabel": "その他", + "xpack.lens.indexPattern.overall_metric": "メトリック:数値", + "xpack.lens.indexPattern.overallAverageOf": "{name}の全体平均値", + "xpack.lens.indexPattern.overallMax": "全体最高", + "xpack.lens.indexPattern.overallMaxOf": "{name}の全体最大値", + "xpack.lens.indexPattern.overallMin": "全体最低", + "xpack.lens.indexPattern.overallMinOf": "{name}の全体最小値", + "xpack.lens.indexPattern.overallSum": "全体合計", + "xpack.lens.indexPattern.overallSumOf": "{name}の全体平方和", + "xpack.lens.indexPattern.percentageOfLabel": "{percentage}% の", + "xpack.lens.indexPattern.percentFormatLabel": "割合(%)", + "xpack.lens.indexPattern.percentile": "パーセンタイル", + "xpack.lens.indexPattern.percentile.errorMessage": "パーセンタイルは1~99の範囲の整数でなければなりません。", + "xpack.lens.indexPattern.percentile.percentileValue": "パーセンタイル", + "xpack.lens.indexPattern.percentile.signature": "フィールド:文字列、[percentile]:数値", + "xpack.lens.indexPattern.percentileOf": "{name}の{percentile, selectordinal, other {#}}パーセンタイル", + "xpack.lens.indexPattern.pinnedTopValuesLabel": "{field}のフィルター", + "xpack.lens.indexPattern.quickFunctionsLabel": "クイック機能", + "xpack.lens.indexPattern.range.isInvalid": "この範囲は無効です", + "xpack.lens.indexPattern.ranges.addRange": "範囲を追加", + "xpack.lens.indexPattern.ranges.customIntervalsToggle": "カスタム範囲を作成", + "xpack.lens.indexPattern.ranges.customRangeLabelPlaceholder": "カスタムラベル", + "xpack.lens.indexPattern.ranges.customRanges": "範囲", + "xpack.lens.indexPattern.ranges.customRangesRemoval": "カスタム範囲を削除", + "xpack.lens.indexPattern.ranges.decreaseButtonLabel": "粒度を下げる", + "xpack.lens.indexPattern.ranges.deleteRange": "範囲を削除", + "xpack.lens.indexPattern.ranges.granularity": "間隔粒度", + "xpack.lens.indexPattern.ranges.granularityHelpText": "仕組み", + "xpack.lens.indexPattern.ranges.granularityPopoverAdvancedExplanation": "間隔は10、5、または2ずつ増分します。たとえば、間隔を100または0.2にすることができます。", + "xpack.lens.indexPattern.ranges.granularityPopoverBasicExplanation": "間隔の粒度は、フィールドの最小値と最大値に基づいて、フィールドを均等な幅の間隔に分割します。", + "xpack.lens.indexPattern.ranges.granularityPopoverExplanation": "間隔のサイズは「nice」値です。スライダーの粒度を変更すると、「nice」間隔が同じときには、間隔が同じままです。最小粒度は1です。最大値は{setting}です。最大粒度を変更するには、[高度な設定]に移動します。", + "xpack.lens.indexPattern.ranges.granularityPopoverTitle": "粒度間隔の仕組み", + "xpack.lens.indexPattern.ranges.increaseButtonLabel": "粒度を上げる", + "xpack.lens.indexPattern.ranges.lessThanOrEqualAppend": "≤", + "xpack.lens.indexPattern.ranges.lessThanOrEqualTooltip": "以下", + "xpack.lens.indexPattern.ranges.lessThanPrepend": "<", + "xpack.lens.indexPattern.ranges.lessThanTooltip": "より小さい", + "xpack.lens.indexPattern.records": "記録", + "xpack.lens.indexPattern.referenceFunctionPlaceholder": "サブ関数", + "xpack.lens.indexPattern.removeColumnAriaLabel": "フィールドを追加するか、{groupLabel}までドラッグアンドドロップします", + "xpack.lens.indexPattern.removeColumnLabel": "「{groupLabel}」から構成を削除", + "xpack.lens.indexPattern.removeFieldLabel": "インデックスパターンを削除", + "xpack.lens.indexPattern.sortField.invalid": "無効なフィールドです。インデックスパターンを確認するか、別のフィールドを選択してください。", + "xpack.lens.indexPattern.staticValue.label": "基準線値", + "xpack.lens.indexPattern.staticValueError": "{value}の固定値が有効な数値ではありません", + "xpack.lens.indexPattern.staticValueLabel": "固定値", + "xpack.lens.indexPattern.staticValueLabelDefault": "固定値", + "xpack.lens.indexPattern.staticValueLabelWithValue": "固定値:{value}", + "xpack.lens.indexPattern.staticValueWarning": "現在適用されている固定値", + "xpack.lens.indexPattern.staticValueWarningText": "固定値を上書きするには、クイック関数を選択します", + "xpack.lens.indexpattern.suggestions.nestingChangeLabel": "各 {outerOperation} の {innerOperation}", + "xpack.lens.indexpattern.suggestions.overallLabel": "全体の {operation}", + "xpack.lens.indexpattern.suggestions.overTimeLabel": "一定時間", + "xpack.lens.indexPattern.sum": "合計", + "xpack.lens.indexPattern.sum.description": "集約されたドキュメントから抽出された数値を合計する単一値メトリック集約。", + "xpack.lens.indexPattern.sumOf": "{name} の合計", + "xpack.lens.indexPattern.terms": "トップの値", + "xpack.lens.indexPattern.terms.advancedSettings": "高度な設定", + "xpack.lens.indexPattern.terms.missingBucketDescription": "このフィールドなしでドキュメントを含める", + "xpack.lens.indexPattern.terms.missingLabel": "(欠落値)", + "xpack.lens.indexPattern.terms.orderAlphabetical": "アルファベット順", + "xpack.lens.indexPattern.terms.orderAscending": "昇順", + "xpack.lens.indexPattern.terms.orderBy": "ランク条件", + "xpack.lens.indexPattern.terms.orderByHelp": "上位の値がランク付けされる条件となるディメンションを指定します。", + "xpack.lens.indexPattern.terms.orderDescending": "降順", + "xpack.lens.indexPattern.terms.orderDirection": "ランク方向", + "xpack.lens.indexPattern.terms.otherBucketDescription": "他の値を「その他」としてグループ化", + "xpack.lens.indexPattern.terms.otherLabel": "その他", + "xpack.lens.indexPattern.terms.size": "値の数", + "xpack.lens.indexPattern.terms.sizeLimitMax": "値が最大値{max}を超えています。最大値が使用されます。", + "xpack.lens.indexPattern.terms.sizeLimitMin": "値が最小値{min}未満です。最小値が使用されます。", + "xpack.lens.indexPattern.termsOf": "{name} のトップの値", + "xpack.lens.indexPattern.termsWithMultipleShifts": "単一のレイヤーでは、メトリックを異なる時間シフトと動的な上位の値と組み合わせることができません。すべてのメトリックで同じ時間シフト値を使用するか、上位の値ではなくフィルターを使用します。", + "xpack.lens.indexPattern.termsWithMultipleShiftsFixActionLabel": "フィルターを使用", + "xpack.lens.indexPattern.timeScale.enableTimeScale": "単位で正規化", + "xpack.lens.indexPattern.timeScale.label": "単位で正規化", + "xpack.lens.indexPattern.timeScale.tooltip": "基本の日付間隔に関係なく、常に指定された時間単位のレートとして表示されるように値を正規化します。", + "xpack.lens.indexPattern.timeShift.12hours": "12時間前(12h)", + "xpack.lens.indexPattern.timeShift.3hours": "3時間前(3h)", + "xpack.lens.indexPattern.timeShift.3months": "3か月前(3M)", + "xpack.lens.indexPattern.timeShift.6hours": "6時間前(6h)", + "xpack.lens.indexPattern.timeShift.6months": "6か月前(6M)", + "xpack.lens.indexPattern.timeShift.day": "1日前(1d)", + "xpack.lens.indexPattern.timeShift.help": "時間シフトと単位を入力", + "xpack.lens.indexPattern.timeShift.hour": "1時間前(1h)", + "xpack.lens.indexPattern.timeShift.label": "時間シフト", + "xpack.lens.indexPattern.timeShift.month": "1か月前(1M)", + "xpack.lens.indexPattern.timeShift.noMultipleHelp": "時間シフトは日付ヒストグラム間隔の乗数でなければなりません。時間シフトまたは日付ヒストグラム間隔を調整", + "xpack.lens.indexPattern.timeShift.tooSmallHelp": "時間シフトは日付ヒストグラム間隔よりも大きくなければなりません。時間シフトを増やすか、日付ヒストグラムで間隔を小さくしてください", + "xpack.lens.indexPattern.timeShift.week": "1週間前(1w)", + "xpack.lens.indexPattern.timeShift.year": "1年前(1y)", + "xpack.lens.indexPattern.timeShiftMultipleWarning": "{label}は{columnTimeShift}の時間シフトを使用しています。これは{interval}の日付ヒストグラム間隔の乗数ではありません。不一致のデータを防止するには、時間シフトとして{interval}を使用します。", + "xpack.lens.indexPattern.timeShiftPlaceholder": "カスタム値を入力(例:8w)", + "xpack.lens.indexPattern.timeShiftSmallWarning": "{label}は{columnTimeShift}の時間シフトを使用しています。これは{interval}の日付ヒストグラム間隔よりも小さいです。不一致のデータを防止するには、時間シフトとして{interval}を使用します。", + "xpack.lens.indexPattern.uniqueLabel": "{label} [{num}]", + "xpack.lens.indexPattern.useAsTopLevelAgg": "最初にこのフィールドでグループ化", + "xpack.lens.indexPatterns.actionsPopoverLabel": "インデックスパターン設定", + "xpack.lens.indexPatterns.addFieldButton": "フィールドをインデックスパターンに追加", + "xpack.lens.indexPatterns.clearFiltersLabel": "名前とタイプフィルターを消去", + "xpack.lens.indexPatterns.fieldFiltersLabel": "タイプでフィルタリング", + "xpack.lens.indexPatterns.filterByNameLabel": "検索フィールド名", + "xpack.lens.indexPatterns.manageFieldButton": "インデックスパターンを管理", + "xpack.lens.indexPatterns.noAvailableDataLabel": "データを含むフィールドはありません。", + "xpack.lens.indexPatterns.noDataLabel": "フィールドがありません。", + "xpack.lens.indexPatterns.noEmptyDataLabel": "空のフィールドがありません。", + "xpack.lens.indexPatterns.noFields.extendTimeBullet": "時間範囲を拡張中", + "xpack.lens.indexPatterns.noFields.fieldTypeFilterBullet": "別のフィールドフィルターを使用", + "xpack.lens.indexPatterns.noFields.globalFiltersBullet": "グローバルフィルターを変更", + "xpack.lens.indexPatterns.noFields.tryText": "試行対象:", + "xpack.lens.indexPatterns.noFieldsLabel": "このインデックスパターンにはフィールドがありません。", + "xpack.lens.indexPatterns.noFilteredFieldsLabel": "選択したフィルターと一致するフィールドはありません。", + "xpack.lens.indexPatterns.noMetaDataLabel": "メタフィールドがありません。", + "xpack.lens.indexPatternSuggestion.removeLayerLabel": "{indexPatternTitle}のみを表示", + "xpack.lens.indexPatternSuggestion.removeLayerPositionLabel": "レイヤー{layerNumber}のみを表示", + "xpack.lens.labelInput.label": "ラベル", + "xpack.lens.layerPanel.layerVisualizationType": "レイヤービジュアライゼーションタイプ", + "xpack.lens.legacyUrlConflict.objectNoun": "レンズビジュアライゼーション", + "xpack.lens.lensSavedObjectLabel": "レンズビジュアライゼーション", + "xpack.lens.metric.addLayer": "ビジュアライゼーションレイヤーを追加", + "xpack.lens.metric.groupLabel": "表形式の値と単一の値", + "xpack.lens.metric.label": "メトリック", + "xpack.lens.pageTitle": "レンズ", + "xpack.lens.paletteHeatmapGradient.customize": "編集", + "xpack.lens.paletteHeatmapGradient.customizeLong": "パレットを編集", + "xpack.lens.paletteHeatmapGradient.label": "色", + "xpack.lens.palettePicker.label": "カラーパレット", + "xpack.lens.paletteTableGradient.customize": "編集", + "xpack.lens.paletteTableGradient.label": "色", + "xpack.lens.pie.addLayer": "ビジュアライゼーションレイヤーを追加", + "xpack.lens.pie.arrayValues": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", + "xpack.lens.pie.donutLabel": "ドーナッツ", + "xpack.lens.pie.expressionHelpLabel": "円表示", + "xpack.lens.pie.groupLabel": "比率", + "xpack.lens.pie.groupsizeLabel": "サイズ単位", + "xpack.lens.pie.pielabel": "円", + "xpack.lens.pie.pieWithNegativeWarningLabel": "{chartType}グラフは負の値では表示できません。", + "xpack.lens.pie.sliceGroupLabel": "スライス", + "xpack.lens.pie.suggestionLabel": "{chartName}として", + "xpack.lens.pie.treemapGroupLabel": "グループ分けの条件", + "xpack.lens.pie.treemaplabel": "ツリーマップ", + "xpack.lens.pie.treemapSuggestionLabel": "ツリーマップとして", + "xpack.lens.pie.visualizationName": "円", + "xpack.lens.pieChart.categoriesInLegendLabel": "ラベルを非表示", + "xpack.lens.pieChart.fitInsideOnlyLabel": "内部のみ", + "xpack.lens.pieChart.hiddenNumbersLabel": "グラフから非表示", + "xpack.lens.pieChart.labelPositionLabel": "位置", + "xpack.lens.pieChart.legendVisibility.auto": "自動", + "xpack.lens.pieChart.legendVisibility.hide": "非表示", + "xpack.lens.pieChart.legendVisibility.show": "表示", + "xpack.lens.pieChart.nestedLegendLabel": "ネスト済み", + "xpack.lens.pieChart.numberLabels": "値", + "xpack.lens.pieChart.percentDecimalsLabel": "割合の最大小数点桁数", + "xpack.lens.pieChart.showCategoriesLabel": "内部または外部", + "xpack.lens.pieChart.showFormatterValuesLabel": "値を表示", + "xpack.lens.pieChart.showPercentValuesLabel": "割合を表示", + "xpack.lens.pieChart.showTreemapCategoriesLabel": "ラベルを表示", + "xpack.lens.pieChart.valuesLabel": "ラベル", + "xpack.lens.referenceLineMarker.positionRequirementTooltip": "位置を変更するには、アイコンを選択するか、表示名を表示する必要があります", + "xpack.lens.referenceLineMarker.textVisibility": "表示名を表示", + "xpack.lens.resetLayerAriaLabel": "レイヤー {index} をリセット", + "xpack.lens.resetVisualizationAriaLabel": "ビジュアライゼーションをリセット", + "xpack.lens.searchTitle": "Lens:ビジュアライゼーションを作成", + "xpack.lens.section.configPanelLabel": "構成パネル", + "xpack.lens.section.dataPanelLabel": "データパネル", + "xpack.lens.section.workspaceLabel": "ビジュアライゼーションワークスペース", + "xpack.lens.shared.chartValueLabelVisibilityLabel": "ラベル", + "xpack.lens.shared.curveLabel": "視覚オプション", + "xpack.lens.shared.legend.filterForValueButtonAriaLabel": "値でフィルター", + "xpack.lens.shared.legend.filterOptionsLegend": "{legendDataLabel}、フィルターオプション", + "xpack.lens.shared.legend.filterOutValueButtonAriaLabel": "値を除外", + "xpack.lens.shared.legendAlignmentLabel": "アラインメント", + "xpack.lens.shared.legendInsideAlignmentLabel": "アラインメント", + "xpack.lens.shared.legendInsideColumnsLabel": "列の数", + "xpack.lens.shared.legendInsideLocationAlignmentLabel": "アラインメント", + "xpack.lens.shared.legendInsideTooltip": "凡例をビジュアライゼーション内に配置する必要があります", + "xpack.lens.shared.legendIsTruncated": "テキストを切り捨てる必要があります", + "xpack.lens.shared.legendLabel": "凡例", + "xpack.lens.shared.legendLocationBottomLeft": "左下", + "xpack.lens.shared.legendLocationBottomRight": "右下", + "xpack.lens.shared.legendLocationLabel": "場所", + "xpack.lens.shared.legendLocationTopLeft": "左上", + "xpack.lens.shared.legendLocationTopRight": "右上", + "xpack.lens.shared.legendPositionBottom": "一番下", + "xpack.lens.shared.legendPositionLeft": "左", + "xpack.lens.shared.legendPositionRight": "右", + "xpack.lens.shared.legendPositionTop": "トップ", + "xpack.lens.shared.legendVisibilityLabel": "表示", + "xpack.lens.shared.legendVisibleTooltip": "凡例を表示する必要があります", + "xpack.lens.shared.maxLinesLabel": "最大行", + "xpack.lens.shared.nestedLegendLabel": "ネスト済み", + "xpack.lens.shared.truncateLegend": "テキストを切り捨て", + "xpack.lens.shared.valueInLegendLabel": "値を表示", + "xpack.lens.sugegstion.refreshSuggestionLabel": "更新", + "xpack.lens.suggestion.refreshSuggestionTooltip": "選択したビジュアライゼーションに基づいて、候補を更新します。", + "xpack.lens.suggestions.currentVisLabel": "現在のビジュアライゼーション", + "xpack.lens.table.actionsLabel": "アクションを表示", + "xpack.lens.table.alignment.center": "中央", + "xpack.lens.table.alignment.label": "テキスト配置", + "xpack.lens.table.alignment.left": "左", + "xpack.lens.table.alignment.right": "右", + "xpack.lens.table.columnFilter.filterForValueText": "列のフィルター", + "xpack.lens.table.columnFilter.filterOutValueText": "列を除外", + "xpack.lens.table.columnVisibilityLabel": "列を非表示", + "xpack.lens.table.defaultAriaLabel": "データ表ビジュアライゼーション", + "xpack.lens.table.dynamicColoring.cell": "セル", + "xpack.lens.table.dynamicColoring.continuity.aboveLabel": "範囲の上", + "xpack.lens.table.dynamicColoring.continuity.allLabel": "範囲の上下", + "xpack.lens.table.dynamicColoring.continuity.belowLabel": "範囲の下", + "xpack.lens.table.dynamicColoring.continuity.label": "色の連続", + "xpack.lens.table.dynamicColoring.continuity.noneLabel": "範囲内", + "xpack.lens.table.dynamicColoring.customPalette.colorStopsHelpPercentage": "割合値は使用可能なデータ値の全範囲に対して相対的です。", + "xpack.lens.table.dynamicColoring.customPalette.colorStopsLabel": "色経由点", + "xpack.lens.table.dynamicColoring.customPalette.continuityHelp": "最初の色経由点の前、最後の色経由点の後に色が表示される方法を指定します。", + "xpack.lens.table.dynamicColoring.label": "値別の色", + "xpack.lens.table.dynamicColoring.none": "なし", + "xpack.lens.table.dynamicColoring.rangeType.label": "値型", + "xpack.lens.table.dynamicColoring.rangeType.number": "数字", + "xpack.lens.table.dynamicColoring.rangeType.percent": "割合(%)", + "xpack.lens.table.dynamicColoring.reverse.label": "色を反転", + "xpack.lens.table.dynamicColoring.text": "テキスト", + "xpack.lens.table.hide.hideLabel": "非表示", + "xpack.lens.table.palettePanelContainer.back": "戻る", + "xpack.lens.table.palettePanelTitle": "色の編集", + "xpack.lens.table.resize.reset": "幅のリセット", + "xpack.lens.table.sort.ascLabel": "昇順に並べ替える", + "xpack.lens.table.sort.descLabel": "降順に並べ替える", + "xpack.lens.table.summaryRow.average": "平均", + "xpack.lens.table.summaryRow.count": "値カウント", + "xpack.lens.table.summaryRow.customlabel": "概要ラベル", + "xpack.lens.table.summaryRow.label": "概要行", + "xpack.lens.table.summaryRow.maximum": "最高", + "xpack.lens.table.summaryRow.minimum": "最低", + "xpack.lens.table.summaryRow.none": "なし", + "xpack.lens.table.summaryRow.sum": "合計", + "xpack.lens.table.tableCellFilter.filterForValueAriaLabel": "値のフィルター:{cellContent}", + "xpack.lens.table.tableCellFilter.filterForValueText": "値でフィルター", + "xpack.lens.table.tableCellFilter.filterOutValueAriaLabel": "値の除外:{cellContent}", + "xpack.lens.table.tableCellFilter.filterOutValueText": "値を除外", + "xpack.lens.timeScale.removeLabel": "時間単位で正規化を削除", + "xpack.lens.timeShift.removeLabel": "時間シフトを削除", + "xpack.lens.visTypeAlias.description": "ドラッグアンドドロップエディターでビジュアライゼーションを作成します。いつでもビジュアライゼーションタイプを切り替えることができます。", + "xpack.lens.visTypeAlias.note": "ほとんどのユーザーに推奨されます。", + "xpack.lens.visTypeAlias.title": "レンズ", + "xpack.lens.visTypeAlias.type": "レンズ", + "xpack.lens.visualizeGeoFieldMessage": "Lensは{fieldType}フィールドを可視化できません", + "xpack.lens.xyChart.addDataLayerLabel": "ビジュアライゼーションレイヤーを追加", + "xpack.lens.xyChart.addLayer": "レイヤーを追加", + "xpack.lens.xyChart.addLayerTooltip": "複数のレイヤーを使用すると、ビジュアライゼーションタイプを組み合わせたり、別のインデックスパターンを可視化したりすることができます。", + "xpack.lens.xyChart.addReferenceLineLayerLabel": "基準レイヤーの追加", + "xpack.lens.xyChart.addReferenceLineLayerLabelDisabledHelp": "一部のデータを追加して、基準レイヤーを有効にする", + "xpack.lens.xyChart.axisExtent.custom": "カスタム", + "xpack.lens.xyChart.axisExtent.dataBounds": "データ境界", + "xpack.lens.xyChart.axisExtent.disabledDataBoundsMessage": "折れ線グラフのみをデータ境界に合わせることができます", + "xpack.lens.xyChart.axisExtent.full": "完全", + "xpack.lens.xyChart.axisExtent.label": "境界", + "xpack.lens.xyChart.axisNameLabel": "軸名", + "xpack.lens.xyChart.axisOrientation.angled": "傾斜", + "xpack.lens.xyChart.axisOrientation.horizontal": "横", + "xpack.lens.xyChart.axisOrientation.label": "向き", + "xpack.lens.xyChart.axisOrientation.vertical": "縦", + "xpack.lens.xyChart.axisSide.auto": "自動", + "xpack.lens.xyChart.axisSide.bottom": "一番下", + "xpack.lens.xyChart.axisSide.label": "軸側", + "xpack.lens.xyChart.axisSide.left": "左", + "xpack.lens.xyChart.axisSide.right": "右", + "xpack.lens.xyChart.axisSide.top": "トップ", + "xpack.lens.xyChart.axisTitlesSettings.help": "xおよびy軸のタイトルを表示", + "xpack.lens.xyChart.bottomAxisDisabledHelpText": "この設定は、下の軸が有効であるときにのみ適用されます。", + "xpack.lens.xyChart.bottomAxisLabel": "下の軸", + "xpack.lens.xyChart.boundaryError": "下界は上界よりも大きくなければなりません", + "xpack.lens.xyChart.chartTypeLabel": "チャートタイプ", + "xpack.lens.xyChart.chartTypeLegend": "チャートタイプ", + "xpack.lens.xyChart.curveStyleLabel": "曲線", + "xpack.lens.xyChart.curveType.help": "折れ線グラフで曲線タイプをレンダリングする方法を定義します", + "xpack.lens.xyChart.emptyXLabel": "(空)", + "xpack.lens.xyChart.extentMode.help": "範囲モード", + "xpack.lens.xyChart.fillOpacity.help": "エリアグラフの塗りつぶしの透明度を定義", + "xpack.lens.xyChart.fillOpacityLabel": "塗りつぶしの透明度", + "xpack.lens.xyChart.fittingFunction.help": "欠測値の処理方法を定義", + "xpack.lens.xyChart.floatingColumns.help": "凡例がグラフ内に表示されるときに列数を指定します。", + "xpack.lens.xyChart.Gridlines": "グリッド線", + "xpack.lens.xyChart.gridlinesSettings.help": "xおよびy軸のグリッド線を表示", + "xpack.lens.xyChart.help": "X/Y チャート", + "xpack.lens.xyChart.hideEndzones.help": "部分データの終了ゾーンマーカーを非表示", + "xpack.lens.xyChart.horizontalAlignment.help": "凡例がグラフ内に表示されるときに凡例の横の配置を指定します。", + "xpack.lens.xyChart.horizontalAxisLabel": "横軸", + "xpack.lens.xyChart.horizontalLeftAxisLabel": "横上軸", + "xpack.lens.xyChart.horizontalRightAxisLabel": "横下軸", + "xpack.lens.xyChart.inclusiveZero": "境界にはゼロを含める必要があります。", + "xpack.lens.xyChart.isInside.help": "凡例がグラフ内に表示されるかどうかを指定します", + "xpack.lens.xyChart.isVisible.help": "判例の表示・非表示を指定します。", + "xpack.lens.xyChart.labelsOrientation.help": "軸ラベルの回転を定義します", + "xpack.lens.xyChart.layerReferenceLineLabel": "基準線", + "xpack.lens.xyChart.leftAxisDisabledHelpText": "この設定は、左の軸が有効であるときにのみ適用されます。", + "xpack.lens.xyChart.leftAxisLabel": "左の軸", + "xpack.lens.xyChart.legend.help": "チャートの凡例を構成します。", + "xpack.lens.xyChart.legendLocation.inside": "内部", + "xpack.lens.xyChart.legendLocation.outside": "外側", + "xpack.lens.xyChart.legendVisibility.auto": "自動", + "xpack.lens.xyChart.legendVisibility.hide": "非表示", + "xpack.lens.xyChart.legendVisibility.show": "表示", + "xpack.lens.xyChart.lowerBoundLabel": "下界", + "xpack.lens.xyChart.markerPosition.above": "トップ", + "xpack.lens.xyChart.markerPosition.below": "一番下", + "xpack.lens.xyChart.markerPosition.left": "左", + "xpack.lens.xyChart.markerPosition.right": "右", + "xpack.lens.xyChart.maxLines.help": "凡例項目ごとの行数を指定します。", + "xpack.lens.xyChart.missingValuesLabel": "欠測値", + "xpack.lens.xyChart.missingValuesLabelHelpText": "デフォルトでは、Lensではデータのギャップが表示されません。ギャップを埋めるには、選択します。", + "xpack.lens.xyChart.nestUnderRoot": "データセット全体", + "xpack.lens.xyChart.overwriteAxisTitle": "軸タイトルを上書き", + "xpack.lens.xyChart.position.help": "凡例の配置を指定します。", + "xpack.lens.xyChart.referenceLine.alertIconLabel": "アラート", + "xpack.lens.xyChart.referenceLine.asteriskIconLabel": "アスタリスク", + "xpack.lens.xyChart.referenceLine.bellIconLabel": "ベル", + "xpack.lens.xyChart.referenceLine.boltIconLabel": "ボルト", + "xpack.lens.xyChart.referenceLine.bugIconLabel": "バグ", + "xpack.lens.xyChart.referenceLine.commentIconLabel": "コメント", + "xpack.lens.xyChart.referenceLine.flagIconLabel": "旗", + "xpack.lens.xyChart.referenceLine.noIconLabel": "なし", + "xpack.lens.xyChart.referenceLine.tagIconLabel": "タグ", + "xpack.lens.xyChart.referenceLineColor.label": "色", + "xpack.lens.xyChart.referenceLineFill.above": "上", + "xpack.lens.xyChart.referenceLineFill.after": "後", + "xpack.lens.xyChart.referenceLineFill.before": "前", + "xpack.lens.xyChart.referenceLineFill.below": "下", + "xpack.lens.xyChart.referenceLineFill.label": "塗りつぶし", + "xpack.lens.xyChart.referenceLineFill.none": "なし", + "xpack.lens.xyChart.referenceLineMarker.auto": "自動", + "xpack.lens.xyChart.referenceLineMarker.icon": "アイコン", + "xpack.lens.xyChart.referenceLineMarker.position": "装飾位置", + "xpack.lens.xyChart.referenceLineStyle.dashed": "鎖線", + "xpack.lens.xyChart.referenceLineStyle.dotted": "点線", + "xpack.lens.xyChart.referenceLineStyle.label": "ラインスタイル", + "xpack.lens.xyChart.referenceLineStyle.solid": "塗りつぶし", + "xpack.lens.xyChart.referenceLineThickness.label": "線の太さです", + "xpack.lens.xyChart.renderer.help": "X/Y チャートを再レンダリング", + "xpack.lens.xyChart.rightAxisDisabledHelpText": "この設定は、右の軸が有効であるときにのみ適用されます。", + "xpack.lens.xyChart.rightAxisLabel": "右の軸", + "xpack.lens.xyChart.seriesColor.auto": "自動", + "xpack.lens.xyChart.seriesColor.label": "系列色", + "xpack.lens.xyChart.shouldTruncate.help": "凡例項目が切り捨てられるかどうかを指定します", + "xpack.lens.xyChart.ShowAxisTitleLabel": "表示", + "xpack.lens.xyChart.showEnzones": "部分データマーカーを表示", + "xpack.lens.xyChart.showSingleSeries.help": "エントリが1件の凡例を表示するかどうかを指定します", + "xpack.lens.xyChart.splitSeries": "内訳の基準", + "xpack.lens.xyChart.tickLabels": "目盛ラベル", + "xpack.lens.xyChart.tickLabelsSettings.help": "xおよびy軸の目盛ラベルを表示", + "xpack.lens.xyChart.title.help": "軸のタイトル", + "xpack.lens.xyChart.topAxisDisabledHelpText": "この設定は、上の軸が有効であるときにのみ適用されます。", + "xpack.lens.xyChart.topAxisLabel": "上の軸", + "xpack.lens.xyChart.upperBoundLabel": "上界", + "xpack.lens.xyChart.valuesHistogramDisabledHelpText": "この設定はヒストグラムで変更できません。", + "xpack.lens.xyChart.valuesInLegend.help": "凡例に値を表示", + "xpack.lens.xyChart.valuesPercentageDisabledHelpText": "この設定は割合エリアグラフで変更できません。", + "xpack.lens.xyChart.valuesStackedDisabledHelpText": "この設定は積み上げ棒グラフまたは割合棒グラフで変更できません", + "xpack.lens.xyChart.verticalAlignment.help": "凡例がグラフ内に表示されるときに凡例の縦の配置を指定します。", + "xpack.lens.xyChart.verticalAxisLabel": "縦軸", + "xpack.lens.xyChart.verticalLeftAxisLabel": "縦左軸", + "xpack.lens.xyChart.verticalRightAxisLabel": "縦右軸", + "xpack.lens.xyChart.xAxisGridlines.help": "x 軸のグリッド線を表示するかどうかを指定します。", + "xpack.lens.xyChart.xAxisLabelsOrientation.help": "x軸のラベルの向きを指定します。", + "xpack.lens.xyChart.xAxisTickLabels.help": "x軸の目盛ラベルを表示するかどうかを指定します。", + "xpack.lens.xyChart.xAxisTitle.help": "x軸のタイトルを表示するかどうかを指定します。", + "xpack.lens.xyChart.xTitle.help": "x軸のタイトル", + "xpack.lens.xyChart.yLeftAxisgridlines.help": "左y軸のグリッド線を表示するかどうかを指定します。", + "xpack.lens.xyChart.yLeftAxisLabelsOrientation.help": "左y軸のラベルの向きを指定します。", + "xpack.lens.xyChart.yLeftAxisTickLabels.help": "左y軸の目盛ラベルを表示するかどうかを指定します。", + "xpack.lens.xyChart.yLeftAxisTitle.help": "左y軸のタイトルを表示するかどうかを指定します。", + "xpack.lens.xyChart.yLeftExtent.help": "Y左軸範囲", + "xpack.lens.xyChart.yLeftTitle.help": "左y軸のタイトル", + "xpack.lens.xyChart.yRightAxisgridlines.help": "右y軸のグリッド線を表示するかどうかを指定します。", + "xpack.lens.xyChart.yRightAxisLabelsOrientation.help": "右y軸のラベルの向きを指定します。", + "xpack.lens.xyChart.yRightAxisTickLabels.help": "右y軸の目盛ラベルを表示するかどうかを指定します。", + "xpack.lens.xyChart.yRightAxisTitle.help": "右y軸のタイトルを表示するかどうかを指定します。", + "xpack.lens.xyChart.yRightExtent.help": "Y右軸範囲", + "xpack.lens.xyChart.yRightTitle.help": "右 y 軸のタイトル", + "xpack.lens.xySuggestions.asPercentageTitle": "割合(%)", + "xpack.lens.xySuggestions.barChartTitle": "棒グラフ", + "xpack.lens.xySuggestions.dateSuggestion": "{xTitle}の上の {yTitle}", + "xpack.lens.xySuggestions.emptyAxisTitle": "(空)", + "xpack.lens.xySuggestions.flipTitle": "反転", + "xpack.lens.xySuggestions.lineChartTitle": "折れ線グラフ", + "xpack.lens.xySuggestions.nonDateSuggestion": "{yTitle}/{xTitle}", + "xpack.lens.xySuggestions.stackedChartTitle": "スタック", + "xpack.lens.xySuggestions.unstackedChartTitle": "スタックが解除されました", + "xpack.lens.xySuggestions.yAxixConjunctionSign": " & ", + "xpack.lens.xyVisualization.areaLabel": "エリア", + "xpack.lens.xyVisualization.arrayValues": "{label}には配列値が含まれます。可視化が想定通りに表示されない場合があります。", + "xpack.lens.xyVisualization.barGroupLabel": "棒", + "xpack.lens.xyVisualization.barHorizontalFullLabel": "横棒", + "xpack.lens.xyVisualization.barHorizontalLabel": "H.棒", + "xpack.lens.xyVisualization.barLabel": "縦棒", + "xpack.lens.xyVisualization.dataFailureSplitShort": "{axis} がありません。", + "xpack.lens.xyVisualization.dataFailureYShort": "{axis} がありません。", + "xpack.lens.xyVisualization.dataTypeFailureXLong": "{axis}のデータ型が一致しません。日付と数値間隔型を混合することはできません。", + "xpack.lens.xyVisualization.dataTypeFailureXOrdinalLong": "{axis}のデータ型が一致しません。別の関数を使用してください。", + "xpack.lens.xyVisualization.dataTypeFailureXShort": "{axis}のデータ型が正しくありません。", + "xpack.lens.xyVisualization.dataTypeFailureYLong": "{axis}のディメンション{label}のデータ型が正しくありません。数値が想定されていますが、{dataType}です", + "xpack.lens.xyVisualization.dataTypeFailureYShort": "{axis}のデータ型が正しくありません。", + "xpack.lens.xyVisualization.lineGroupLabel": "折れ線と面", + "xpack.lens.xyVisualization.lineLabel": "折れ線", + "xpack.lens.xyVisualization.mixedBarHorizontalLabel": "混在した横棒", + "xpack.lens.xyVisualization.mixedLabel": "ミックスされた XY", + "xpack.lens.xyVisualization.noDataLabel": "結果が見つかりませんでした", + "xpack.lens.xyVisualization.stackedAreaLabel": "面積み上げ", + "xpack.lens.xyVisualization.stackedBarHorizontalFullLabel": "積み上げ横棒", + "xpack.lens.xyVisualization.stackedBarHorizontalLabel": "H.積み上げ棒", + "xpack.lens.xyVisualization.stackedBarLabel": "積み上げ縦棒", + "xpack.lens.xyVisualization.stackedPercentageAreaLabel": "面割合", + "xpack.lens.xyVisualization.stackedPercentageBarHorizontalFullLabel": "横棒割合", + "xpack.lens.xyVisualization.stackedPercentageBarHorizontalLabel": "H.割合棒", + "xpack.lens.xyVisualization.stackedPercentageBarLabel": "縦棒割合", + "xpack.lens.xyVisualization.xyLabel": "XY", "xpack.licenseApiGuard.license.errorExpiredMessage": "{licenseType} ライセンスが期限切れのため {pluginName} を使用できません。", "xpack.licenseApiGuard.license.errorUnavailableMessage": "現在ライセンス情報が利用できないため {pluginName} を使用できません。", "xpack.licenseApiGuard.license.errorUnsupportedMessage": "ご使用の {licenseType} ライセンスは {pluginName} をサポートしていません。ライセンスをアップグレードしてください。", @@ -14266,6 +14807,10 @@ "xpack.licenseMgmt.app.deniedPermissionTitle": "クラスターの権限が必要です", "xpack.licenseMgmt.app.loadingPermissionsDescription": "パーミッションを確認中…", "xpack.licenseMgmt.dashboard.breadcrumb": "ライセンス管理", + "xpack.licenseMgmt.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "xpack.licenseMgmt.deprecations.enabled.manualStepTwoMessage": "「xpack.license_management.enabled」設定を「xpack.license_management.ui.enabled」に変更します。", + "xpack.licenseMgmt.deprecations.enabledMessage": "ユーザーがインデックス管理UIにアクセスすることを禁止するには、「xpack.license_management.enabled」ではなく、「xpack.license_management.ui.enabled」設定を使用します。", + "xpack.licenseMgmt.deprecations.enabledTitle": "「xpack.license_management.enabled」設定は廃止予定です。", "xpack.licenseMgmt.licenseDashboard.addLicense.updateLicenseButtonLabel": "ライセンスを更新", "xpack.licenseMgmt.licenseDashboard.addLicense.updateLicenseTitle": "ライセンスの更新", "xpack.licenseMgmt.licenseDashboard.addLicense.useAvailableLicenseDescription": "すでに新しいライセンスがある場合は、今すぐアップロードしてください。", @@ -14350,6 +14895,7 @@ "xpack.lists.exceptions.builder.operatorLabel": "演算子", "xpack.lists.exceptions.builder.valueLabel": "値", "xpack.lists.exceptions.orDescription": "OR", + "xpack.lists.services.items.fileUploadFromFileSystem": "ファイルは{fileName}のファイルシステムからアップロードされました", "xpack.logstash.addRoleAlert.grantAdditionalPrivilegesDescription": "Kibana の管理で、Kibana ユーザーに {role} ロールを割り当ててください。", "xpack.logstash.addRoleAlert.grantAdditionalPrivilegesTitle": "追加権限の授与。", "xpack.logstash.alertCallOut.howToSeeAdditionalPipelinesDescription": "追加パイプラインを表示させる方法", @@ -14459,7 +15005,7 @@ "xpack.maps.breadcrumbsCreate": "作成", "xpack.maps.breadcrumbsEditByValue": "マップを編集", "xpack.maps.choropleth.boundaries.elasticsearch": "Elasticsearch の点、線、多角形", - "xpack.maps.choropleth.boundaries.ems": "Elastic Maps Serviceの行政区画のベクターシェイプ", + "xpack.maps.choropleth.boundaries.ems": "Elastic Maps Serviceからの管理境界", "xpack.maps.choropleth.boundariesLabel": "境界ソース", "xpack.maps.choropleth.desc": "境界全体で統計を比較する影付き領域", "xpack.maps.choropleth.geofieldLabel": "地理空間フィールド", @@ -14519,8 +15065,12 @@ "xpack.maps.fileUploadWizard.uploadLabel": "ファイルをインポートしています", "xpack.maps.filterByMapExtentMenuItem.disableDisplayName": "マップ範囲でのフィルターを無効にする", "xpack.maps.filterByMapExtentMenuItem.enableDisplayName": "マップ範囲でのフィルターを有効にする", - "xpack.maps.filterEditor.applyGlobalQueryCheckboxLabel": "レイヤーデータにグローバルフィルターを適用", + "xpack.maps.filterEditor.applyForceRefreshLabel": "レイヤーデータにグローバル更新を適用", + "xpack.maps.filterEditor.applyForceRefreshTooltip": "有効にすると、自動更新が実行されるときと、[更新]をクリックしたときに、レイヤーでデータが再取り込みされます。", + "xpack.maps.filterEditor.applyGlobalFilterHelp": "有効にすると、結果がグローバル検索で絞り込まれます", + "xpack.maps.filterEditor.applyGlobalQueryCheckboxLabel": "グローバル検索をレイヤーデータに適用", "xpack.maps.filterEditor.applyGlobalTimeCheckboxLabel": "グローバル時刻をレイヤーデータに適用", + "xpack.maps.filterEditor.applyGlobalTimeHelp": "有効にすると、結果がグローバル時刻で絞り込まれます", "xpack.maps.fitToData.fitAriaLabel": "データバウンドに合わせる", "xpack.maps.fitToData.fitButtonLabel": "データバウンドに合わせる", "xpack.maps.geoGrid.resolutionLabel": "グリッド解像度", @@ -14544,8 +15094,8 @@ "xpack.maps.inspector.zoomLabel": "ズーム", "xpack.maps.kilometersAbbr": "km", "xpack.maps.layer.isUsingBoundsFilter": "表示されるマップ領域で絞り込まれた結果", - "xpack.maps.layer.isUsingSearchMsg": "クエリとフィルターで絞り込まれた結果", - "xpack.maps.layer.isUsingTimeFilter": "時刻フィルターにより絞られた結果", + "xpack.maps.layer.isUsingSearchMsg": "グローバル検索により絞られた結果", + "xpack.maps.layer.isUsingTimeFilter": "グローバル時刻により絞られた結果", "xpack.maps.layer.layerHiddenTooltip": "レイヤーが非表示になっています。", "xpack.maps.layer.loadWarningAriaLabel": "警告を読み込む", "xpack.maps.layer.zoomFeedbackTooltip": "レイヤーはズームレベル {minZoom} から {maxZoom} の間で表示されます。", @@ -14563,7 +15113,7 @@ "xpack.maps.layerControl.tocEntry.hideDetailsButtonTitle": "レイヤー詳細を非表示", "xpack.maps.layerControl.tocEntry.showDetailsButtonAriaLabel": "レイヤー詳細を表示", "xpack.maps.layerControl.tocEntry.showDetailsButtonTitle": "レイヤー詳細を表示", - "xpack.maps.layerPanel.filterEditor.addFilterButtonLabel": "フィルターを追加します", + "xpack.maps.layerPanel.filterEditor.addFilterButtonLabel": "フィルターを設定", "xpack.maps.layerPanel.filterEditor.editFilterButtonLabel": "フィルターを編集", "xpack.maps.layerPanel.filterEditor.emptyState.description": "フィルターを追加してレイヤーデータを絞ります。", "xpack.maps.layerPanel.filterEditor.queryBarSubmitButtonLabel": "フィルターを設定", @@ -14572,7 +15122,7 @@ "xpack.maps.layerPanel.footer.closeButtonLabel": "閉じる", "xpack.maps.layerPanel.footer.removeLayerButtonLabel": "レイヤーを削除", "xpack.maps.layerPanel.footer.saveAndCloseButtonLabel": "保存して閉じる", - "xpack.maps.layerPanel.join.applyGlobalQueryCheckboxLabel": "結合するグローバルフィルターを適用", + "xpack.maps.layerPanel.join.applyGlobalQueryCheckboxLabel": "グローバル検索を結合に適用", "xpack.maps.layerPanel.join.applyGlobalTimeCheckboxLabel": "結合するグローバル時刻を適用", "xpack.maps.layerPanel.join.deleteJoinAriaLabel": "ジョブの削除", "xpack.maps.layerPanel.join.deleteJoinTitle": "ジョブの削除", @@ -14614,7 +15164,9 @@ "xpack.maps.layerPanel.whereExpression.helpText": "右のソースを絞り込むには、クエリを使用します。", "xpack.maps.layerPanel.whereExpression.queryBarSubmitButtonLabel": "フィルターを設定", "xpack.maps.layers.newVectorLayerWizard.createIndexError": "名前{message}のインデックスを作成できませんでした", - "xpack.maps.layers.newVectorLayerWizard.createIndexErrorTitle": "インデックスパターンを作成できませんでした", + "xpack.maps.layers.newVectorLayerWizard.createIndexErrorTitle": "インデックスを作成できません", + "xpack.maps.layers.newVectorLayerWizard.indexPermissionsError": "データを作成し、\"{indexName}\"に書き込むには、「create」および「create_index」インデックス権限が必要です。", + "xpack.maps.layers.newVectorLayerWizard.indexPrivsErrorTitle": "インデックス権限がありません", "xpack.maps.layerSettings.attributionLegend": "属性", "xpack.maps.layerTocActions.cloneLayerTitle": "レイヤーおクローンを作成", "xpack.maps.layerTocActions.editLayerTooltip": "クラスタリング、結合、または時間フィルタリングなしで、ドキュメントレイヤーでのサポートされている機能を編集", @@ -14632,6 +15184,8 @@ "xpack.maps.legend.upto": "最大", "xpack.maps.loadMap.errorAttemptingToLoadSavedMap": "マップを読み込めません", "xpack.maps.map.initializeErrorTitle": "マップを初期化できません", + "xpack.maps.mapActions.addFeatureError": "機能をインデックスに追加できません。", + "xpack.maps.mapActions.removeFeatureError": "インデックスから機能を削除できません。", "xpack.maps.mapListing.descriptionFieldTitle": "説明", "xpack.maps.mapListing.entityName": "マップ", "xpack.maps.mapListing.entityNamePlural": "マップ", @@ -14720,7 +15274,7 @@ "xpack.maps.observability.uniqueCountMetricName": "ユニークカウント", "xpack.maps.sampleData.ecommerceSpec.mapsTitle": "[e コマース] 国別の注文", "xpack.maps.sampleData.flightaSpec.logsTitle": "[ログ ] 合計リクエスト数とバイト数", - "xpack.maps.sampleData.flightsSpec.mapsTitle": "[フライト] 出発地の時刻が遅延", + "xpack.maps.sampleData.flightsSpec.mapsTitle": "[フライト] 出発地の時間の遅延", "xpack.maps.sampleDataLinkLabel": "マップ", "xpack.maps.security.desc": "セキュリティレイヤー", "xpack.maps.security.disabledDesc": "セキュリティインデックスパターンが見つかりません。セキュリティを開始するには、[セキュリティ]>[概要]に移動します。", @@ -14731,7 +15285,15 @@ "xpack.maps.setViewControl.goToButtonLabel": "移動:", "xpack.maps.setViewControl.latitudeLabel": "緯度", "xpack.maps.setViewControl.longitudeLabel": "経度", + "xpack.maps.setViewControl.mgrsInvalid": "MGRSが無効です", + "xpack.maps.setViewControl.mgrsLabel": "MGRS", "xpack.maps.setViewControl.submitButtonLabel": "Go", + "xpack.maps.setViewControl.utmEastingLabel": "UTM Easting", + "xpack.maps.setViewControl.utmInvalidEasting": "UTM Eastingが無効です", + "xpack.maps.setViewControl.utmInvalidNorthing": "UTM Northingが無効です", + "xpack.maps.setViewControl.utmInvalidZone": "UTM Zoneが無効です", + "xpack.maps.setViewControl.utmNorthingLabel": "UTM Northing", + "xpack.maps.setViewControl.utmZoneLabel": "UTM Zone", "xpack.maps.setViewControl.zoomLabel": "ズーム", "xpack.maps.source.dataSourceLabel": "データソース", "xpack.maps.source.ems_xyzDescription": "{z}/{x}/{y} urlパターンを使用するラスター画像タイルマッピングサービス。", @@ -14808,6 +15370,8 @@ "xpack.maps.source.esSearch.geofieldLabel": "地理空間フィールド", "xpack.maps.source.esSearch.geoFieldLabel": "地理空間フィールド", "xpack.maps.source.esSearch.geoFieldTypeLabel": "地理空間フィールドタイプ", + "xpack.maps.source.esSearch.indexOverOneLengthEditError": "インデックスパターンは複数のインデックスを参照しています。インデックスパターンごとに1つのインデックスのみが許可されています。", + "xpack.maps.source.esSearch.indexZeroLengthEditError": "インデックスパターンがどのインデックスも参照していません。", "xpack.maps.source.esSearch.joinsDisabledReason": "クラスターでスケーリングするときに、結合はサポートされていません", "xpack.maps.source.esSearch.joinsDisabledReasonMvt": "mvtベクトルタイルでスケーリングするときに、結合はサポートされていません", "xpack.maps.source.esSearch.limitScalingLabel": "結果を{maxResultWindow}に限定", @@ -14970,6 +15534,7 @@ "xpack.maps.tooltip.filterOnPropertyTitle": "プロパティのフィルター", "xpack.maps.tooltip.geometryFilterForm.createFilterButtonLabel": "フィルターを作成", "xpack.maps.tooltip.geometryFilterForm.filterTooLargeMessage": "フィルターを作成できません。フィルターがURLに追加されました。この形状には頂点が多すぎるため、URLに合いません。", + "xpack.maps.tooltip.joinPropertyTooltipContent": "共有キー'{leftFieldName}'は{rightSources}と結合されます", "xpack.maps.tooltip.layerFilterLabel": "レイヤー別に結果をフィルタリング", "xpack.maps.tooltip.loadingMsg": "読み込み中", "xpack.maps.tooltip.pageNumerText": "{total}ページ中 {pageNumber}ページ", @@ -15003,12 +15568,12 @@ "xpack.maps.topNav.saveToMapsButtonLabel": "マップに保存", "xpack.maps.topNav.updatePanel": "{originatingAppName}でパネルを更新", "xpack.maps.totalHits.lowerBoundPrecisionExceeded": "合計一致数が値を超えるかどうかを判断できません。合計一致精度が値未満です。合計一致数:{totalHitsString}、値:{value}。_search.body.track_total_hitsが少なくとも値と同じであることを確認してください。", - "xpack.maps.tutorials.ems.downloadStepText": "1.Elastic Maps Serviceの [ランディングページ]({emsLandingPageUrl}/)に移動します。\n2.左のサイドバーで、行政上の境界を設定します。\n3.[Download GeoJSON]ボタンをクリックします。", + "xpack.maps.tutorials.ems.downloadStepText": "1.Elastic Maps Serviceにナビゲートします [着陸ページ]({emsLandingPageUrl})。\n2.左のサイドバーで、行政上の境界を設定します。\n3.[Download GeoJSON]ボタンをクリックします。", "xpack.maps.tutorials.ems.downloadStepTitle": "Elastic Maps Service境界のダウンロード", - "xpack.maps.tutorials.ems.longDescription": "[Elastic Maps Service (EMS)](https://www.elastic.co/elastic-maps-service)は、管理境界のタイルレイヤーとベクトル形状をホストします。Elasticsearch における EMS 行政上の境界のインデックス作成により、境界のプロパティフィールドの検索ができます。", - "xpack.maps.tutorials.ems.nameTitle": "ベクターシェイプ", - "xpack.maps.tutorials.ems.shortDescription": "Elastic Maps Service からの管理ベクターシェイプ。", - "xpack.maps.tutorials.ems.uploadStepText": "1.[マップ]({newMapUrl})を開きます。\n2.[Add layer]をクリックしてから[Upload GeoJSON]を選択します。\n3.GeoJSON ファイルをアップロードして[Import file]をクリックします。", + "xpack.maps.tutorials.ems.longDescription": "[Elastic Maps Service(EMS)](https://www.elastic.co/elastic-maps-service)は、行政区分のタイルレイヤーやベクターシェイプのホストになります。Elasticsearch における EMS 行政上の境界のインデックス作成により、境界のプロパティフィールドの検索ができます。", + "xpack.maps.tutorials.ems.nameTitle": "Elastic Maps Service", + "xpack.maps.tutorials.ems.shortDescription": "Elastic Maps Serviceを使用して管理境界をデータに追加します。", + "xpack.maps.tutorials.ems.uploadStepText": "1.[Maps]({newMapUrl})を開きます。\n2.[Add layer]をクリックしてから[Upload GeoJSON]を選択します。\n3.GeoJSON ファイルをアップロードして[Import file]をクリックします。", "xpack.maps.tutorials.ems.uploadStepTitle": "Elastic Maps Service境界のインデックス作成", "xpack.maps.validatedNumberInput.invalidClampErrorMessage": "{min} と {max} の間でなければなりません", "xpack.maps.validatedRange.rangeErrorMessage": "{min} と {max} の間でなければなりません", @@ -15072,9 +15637,10 @@ "xpack.ml.alertTypes.jobsHealthAlertingRule.alertContext.resultsDescription": "ルール実行の結果", "xpack.ml.alertTypes.jobsHealthAlertingRule.behindRealtimeCheckDescription": "ジョブはリアルタイムより遅れて実行されています", "xpack.ml.alertTypes.jobsHealthAlertingRule.behindRealtimeCheckName": "ジョブはリアルタイムより遅れて実行されています", + "xpack.ml.alertTypes.jobsHealthAlertingRule.betaBadgeTooltipContent": "異常検知ジョブ正常性アラートはベータ版の機能です。フィードバックをお待ちしています。", "xpack.ml.alertTypes.jobsHealthAlertingRule.datafeedCheckDescription": "ジョブの対応するデータフィードが開始していない場合にアラートで通知します", "xpack.ml.alertTypes.jobsHealthAlertingRule.datafeedCheckName": "データフィードが開始していません", - "xpack.ml.alertTypes.jobsHealthAlertingRule.defaultActionMessage": "異常検知ジョブヘルスチェック結果:\n\\{\\{context.message\\}\\}\n\\{\\{#context.results\\}\\}\n ジョブID:\\{\\{job_id\\}\\}\n \\{\\{#datafeed_id\\}\\}データフィードID: \\{\\{datafeed_id\\}\\}\n \\{\\{/datafeed_id\\}\\} \\{\\{#datafeed_state\\}\\}データフィード状態:\\{\\{datafeed_state\\}\\}\n \\{\\{/datafeed_state\\}\\} \\{\\{#memory_status\\}\\}メモリステータス:\\{\\{memory_status\\}\\}\n \\{\\{/memory_status\\}\\} \\{\\{#log_time\\}\\}メモリログ時間:\\{\\{log_time\\}\\}\n \\{\\{/log_time\\}\\} \\{\\{#failed_category_count\\}\\}失敗したカテゴリ件数:\\{\\{failed_category_count\\}\\}\n \\{\\{/failed_category_count\\}\\} \\{\\{#annotation\\}\\}注釈: \\{\\{annotation\\}\\}\n \\{\\{/annotation\\}\\} \\{\\{#missed_docs_count\\}\\}見つからないドキュメント数:\\{\\{missed_docs_count\\}\\}\n \\{\\{/missed_docs_count\\}\\} \\{\\{#end_timestamp\\}\\}見つからないドキュメントで最後に確定されたバケット:\\{\\{end_timestamp\\}\\}\n \\{\\{/end_timestamp\\}\\} \\{\\{#errors\\}\\}エラーメッセージ:\\{\\{message\\}\\} \\{\\{/errors\\}\\}\n\\{\\{/context.results\\}\\}\n", + "xpack.ml.alertTypes.jobsHealthAlertingRule.defaultActionMessage": "[\\{\\{rule.name\\}\\}] 異常検知ジョブヘルスチェック結果:\n\\{\\{context.message\\}\\}\n\\{\\{#context.results\\}\\}\n ジョブID:\\{\\{job_id\\}\\}\n \\{\\{#datafeed_id\\}\\}データフィードID: \\{\\{datafeed_id\\}\\}\n \\{\\{/datafeed_id\\}\\}\\{\\{#datafeed_state\\}\\}データフィード状態:\\{\\{datafeed_state\\}\\}\n \\{\\{/datafeed_state\\}\\}\\{\\{#memory_status\\}\\}メモリステータス:\\{\\{memory_status\\}\\}\n \\{\\{/memory_status\\}\\}\\{\\{#model_bytes\\}\\}モデルサイズ:\\{\\{model_bytes\\}\\}\n \\{\\{/model_bytes\\}\\}\\{\\{#model_bytes_memory_limit\\}\\}モデルメモリ上限:\\{\\{model_bytes_memory_limit\\}\\}\n \\{\\{/model_bytes_memory_limit\\}\\}\\{\\{#peak_model_bytes\\}\\}ピークモデルバイト:\\{\\{peak_model_bytes\\}\\}\n \\{\\{/peak_model_bytes\\}\\}\\{\\{#model_bytes_exceeded\\}\\}モデルが超過しました:\\{\\{model_bytes_exceeded\\}\\}\n \\{\\{/model_bytes_exceeded\\}\\}\\{\\{#log_time\\}\\}メモリログ時間:\\{\\{log_time\\}\\}\n \\{\\{/log_time\\}\\}\\{\\{#failed_category_count\\}\\}失敗したカテゴリ件数:\\{\\{failed_category_count\\}\\}\n \\{\\{/failed_category_count\\}\\}\\{\\{#annotation\\}\\}注釈: \\{\\{annotation\\}\\}\n \\{\\{/annotation\\}\\}\\{\\{#missed_docs_count\\}\\}見つからないドキュメント数:\\{\\{missed_docs_count\\}\\}\n \\{\\{/missed_docs_count\\}\\}\\{\\{#end_timestamp\\}\\}見つからないドキュメントで最後に確定されたバケット:\\{\\{end_timestamp\\}\\}\n \\{\\{/end_timestamp\\}\\}\\{\\{#errors\\}\\}エラーメッセージ:\\{\\{message\\}\\} \\{\\{/errors\\}\\}\n\\{\\{/context.results\\}\\}\n", "xpack.ml.alertTypes.jobsHealthAlertingRule.delayedDataCheckDescription": "データ遅延のためにジョブのデータがない場合にアラートで通知します。", "xpack.ml.alertTypes.jobsHealthAlertingRule.delayedDataCheckName": "データ遅延が発生しました", "xpack.ml.alertTypes.jobsHealthAlertingRule.description": "異常検知ジョブで運用の問題が発生しているときにアラートで通知します。きわめて重要なジョブの適切なアラートを有効にします。", @@ -15240,7 +15806,7 @@ "xpack.ml.calendarsEdit.calendarForm.jobsLabel": "ジョブ", "xpack.ml.calendarsEdit.calendarForm.saveButtonLabel": "保存", "xpack.ml.calendarsEdit.calendarForm.savingButtonLabel": "保存中…", - "xpack.ml.calendarsEdit.canNotCreateCalendarWithExistingIdErrorMessag": "ID [{formCalendarId}] はすでに存在するため、このIDでカレンダーを作成できません。", + "xpack.ml.calendarsEdit.canNotCreateCalendarWithExistingIdErrorMessag": "ID [{formCalendarId}] はすでに存在するため、この ID でカレンダーを作成できません。", "xpack.ml.calendarsEdit.errorWithCreatingCalendarErrorMessage": "カレンダー {calendarId} の作成中にエラーが発生しました", "xpack.ml.calendarsEdit.errorWithFetchingJobSummariesErrorMessage": "ジョブ概要の取得中にエラーが発生しました:{err}", "xpack.ml.calendarsEdit.errorWithLoadingCalendarFromDataErrorMessage": "データからカレンダーを読み込み中にエラーが発生しました。ページを更新してみてください。", @@ -15539,7 +16105,6 @@ "xpack.ml.dataframe.analytics.create.savedSearchLabel": "保存検索", "xpack.ml.dataframe.analytics.create.scatterplotMatrixLabel": "散布図マトリックス", "xpack.ml.dataframe.analytics.create.scatterplotMatrixLabelHelpText": "選択した含まれるフィールドのペアの間の関係を可視化します。", - "xpack.ml.dataFrame.analytics.create.searchSelection.CcsErrorCallOutBody": "保存された検索'{savedSearchTitle}'はインデックスパターン'{dataViewName}'を使用します。", "xpack.ml.dataFrame.analytics.create.searchSelection.CcsErrorCallOutTitle": "クラスター横断検索を使用するインデックスパターンはサポートされていません。", "xpack.ml.dataFrame.analytics.create.searchSelection.notFoundLabel": "一致インデックスまたは保存した検索が見つかりません。", "xpack.ml.dataFrame.analytics.create.searchSelection.savedObjectType.indexPattern": "インデックスパターン", @@ -15595,7 +16160,6 @@ "xpack.ml.dataframe.analytics.creation.createStepTitle": "作成", "xpack.ml.dataframe.analytics.creation.detailsStepTitle": "ジョブの詳細", "xpack.ml.dataframe.analytics.creation.validationStepTitle": "検証", - "xpack.ml.dataframe.analytics.creationPageSourceIndexTitle": "ソースインデックスパターン:{dataViewTitle}", "xpack.ml.dataframe.analytics.creationPageTitle": "ジョブを作成", "xpack.ml.dataframe.analytics.decisionPathFeatureBaselineTitle": "ベースライン", "xpack.ml.dataframe.analytics.decisionPathFeatureOtherTitle": "その他", @@ -15958,14 +16522,15 @@ "xpack.ml.formatters.metricChangeDescription.unusuallyLowDescription": "異常に低い", "xpack.ml.formatters.metricChangeDescription.unusualValuesDescription": "異常な値", "xpack.ml.fullTimeRangeSelector.errorSettingTimeRangeNotification": "時間範囲の設定中にエラーが発生しました。", - "xpack.ml.fullTimeRangeSelector.useFullDataButtonLabel": "完全な {dataViewTitle} データを使用", "xpack.ml.helpPopover.ariaLabel": "ヘルプ", "xpack.ml.importExport.exportButton": "ジョブのエクスポート", + "xpack.ml.importExport.exportFlyout.adDeselectAllButton": "すべて選択解除", "xpack.ml.importExport.exportFlyout.adJobsError": "異常検知ジョブを読み込めませんでした", "xpack.ml.importExport.exportFlyout.adSelectAllButton": "すべて選択", "xpack.ml.importExport.exportFlyout.adTab": "異常検知", "xpack.ml.importExport.exportFlyout.calendarsError": "カレンダーを読み込めませんでした", "xpack.ml.importExport.exportFlyout.closeButton": "閉じる", + "xpack.ml.importExport.exportFlyout.dfaDeselectAllButton": "すべて選択解除", "xpack.ml.importExport.exportFlyout.dfaJobsError": "データフレーム分析ジョブを読み込めませんでした", "xpack.ml.importExport.exportFlyout.dfaSelectAllButton": "すべて選択", "xpack.ml.importExport.exportFlyout.dfaTab": "分析", @@ -16030,6 +16595,12 @@ "xpack.ml.jobMessages.toggleInChartAriaLabel": "グラフで切り替え", "xpack.ml.jobMessages.toggleInChartTooltipText": "グラフで切り替え", "xpack.ml.jobsAwaitingNodeWarning.title": "機械学習ノードの待機中", + "xpack.ml.jobsAwaitingNodeWarningShared.isCloud": "Elastic Cloudデプロイは自動拡張し、機械学習能力を追加することができます。これには5~20分かかる場合があります。", + "xpack.ml.jobsAwaitingNodeWarningShared.isCloud.link": "{link}で進行状況を監視できます。", + "xpack.ml.jobsAwaitingNodeWarningShared.linkToCloud.learnMore": "詳細情報", + "xpack.ml.jobsAwaitingNodeWarningShared.linkToCloud.linkText": "Elastic Cloud管理コンソール", + "xpack.ml.jobsAwaitingNodeWarningShared.notCloud": "Elastic Cloudデプロイのみが自動拡張できます。機械学習ノードは追加する必要があります。{link}", + "xpack.ml.jobsAwaitingNodeWarningShared.title": "機械学習ノードの待機中", "xpack.ml.jobsBreadcrumbs.advancedConfigurationLabel": "高度な構成", "xpack.ml.jobsBreadcrumbs.categorizationLabel": "カテゴリー分け", "xpack.ml.jobsBreadcrumbs.multiMetricLabel": "マルチメトリック", @@ -16147,6 +16718,7 @@ "xpack.ml.jobsList.editJobFlyout.datafeed.readOnlyCalloutText": "データフィードの実行中にはデータフィード設定を編集できません。これらの設定を編集したい場合にはジョブを中止してください。", "xpack.ml.jobsList.editJobFlyout.datafeed.scrollSizeLabel": "スクロールサイズ", "xpack.ml.jobsList.editJobFlyout.datafeedTitle": "データフィード", + "xpack.ml.jobsList.editJobFlyout.detectors.title": "検知器説明を編集", "xpack.ml.jobsList.editJobFlyout.detectorsTitle": "検知器", "xpack.ml.jobsList.editJobFlyout.groupsAndJobsHasSameIdErrorMessage": "この ID のジョブがすでに存在します。グループとジョブは同じ ID を共有できません。", "xpack.ml.jobsList.editJobFlyout.jobDetails.dailyModelSnapshotRetentionAfterDaysLabel": "日次モデルスナップショット保存後日数", @@ -16237,7 +16809,10 @@ "xpack.ml.jobsList.managementActions.stopDatafeedDescription": "データフィードを停止します", "xpack.ml.jobsList.managementActions.stopDatafeedLabel": "データフィードを停止します", "xpack.ml.jobsList.memoryStatusLabel": "メモリー状態", - "xpack.ml.jobsList.missingSavedObjectWarning.linkToManagement.link": "スタック管理", + "xpack.ml.jobsList.missingSavedObjectWarning.description": "一部のジョブが見つからないか、保存されたオブジェクトが不完全です。", + "xpack.ml.jobsList.missingSavedObjectWarning.link": " {link}", + "xpack.ml.jobsList.missingSavedObjectWarning.linkToManagement.link": "ジョブを同期します。", + "xpack.ml.jobsList.missingSavedObjectWarning.noPermission": "管理者はスタック管理でジョブを同期できます。", "xpack.ml.jobsList.missingSavedObjectWarning.title": "MLジョブ同期は必須です", "xpack.ml.jobsList.multiJobActions.groupSelector.addButtonAriaLabel": "追加", "xpack.ml.jobsList.multiJobActions.groupSelector.addNewGroupPlaceholder": "新規グループを追加", @@ -16395,6 +16970,9 @@ "xpack.ml.models.jobValidation.messages.categorizationFiltersValidMessage": "カテゴリー分けフィルターチェックが合格しました。", "xpack.ml.models.jobValidation.messages.categorizerMissingPerPartitionFieldMessage": "パーティション単位の分類が有効であるときに、「mlcategory」を参照する検出器のパーティションフィールドを設定する必要があります。", "xpack.ml.models.jobValidation.messages.categorizerVaryingPerPartitionFieldNamesMessage": "パーティション単位の分類が有効であるときには、キーワード「mlcategory」の検出器に別のpartition_field_nameを設定できません。[{fields}]が見つかりました。", + "xpack.ml.models.jobValidation.messages.datafeedPreviewFailedMessage": "データフィードプレビューが失敗しました。これは、ジョブまたはデータフィード構成のエラーが原因である可能性があります。", + "xpack.ml.models.jobValidation.messages.datafeedPreviewNoDocumentsHeading": "データフィードのプレビュー", + "xpack.ml.models.jobValidation.messages.datafeedPreviewNoDocumentsMessage": "現在のジョブ構成でデータフィードプレビューを実行しても結果は得られません。インデックスにドキュメントがない場合は、この警告を無視できます。そうでない場合は、ジョブの構成が正しくなくなる可能性があります。", "xpack.ml.models.jobValidation.messages.detectorsDuplicatesMessage": "重複する検知器が検出されました。{functionParam}、{fieldNameParam}、{byFieldNameParam}、{overFieldNameParam}、{partitionFieldNameParam} の構成の組み合わせが同じ検知器は、同じジョブで使用できません。", "xpack.ml.models.jobValidation.messages.detectorsEmptyMessage": "重複する検知器は検出されませんでした。検知器を少なくとも 1 つ指定する必要があります。", "xpack.ml.models.jobValidation.messages.detectorsFunctionEmptyMessage": "検知器の関数が 1 つも入力されていません。", @@ -16524,6 +17102,26 @@ "xpack.ml.newJob.wizard.datafeedPreviewFlyout.noDetectors": "検知器が構成されていません", "xpack.ml.newJob.wizard.datafeedPreviewFlyout.showButton": "データフィードのプレビュー", "xpack.ml.newJob.wizard.datafeedPreviewFlyout.title": "データフィードのプレビュー", + "xpack.ml.newJob.wizard.datafeedStep.dataView.changeDataView.button": "インデックスパターンを変更", + "xpack.ml.newJob.wizard.datafeedStep.dataView.description": "現在このジョブで使用されているインデックスパターン。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step0.title": "インデックスパターンを変更", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step1.dataView": "インデックスパターン", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step1.noMatchingError": "一致インデックスまたは保存した検索が見つかりません。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step1.title": "ジョブの新しいインデックスパターンを選択", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step2.ApplyButton": "適用", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step2.backButton": "戻る", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step2.title": "{dv2}の{dv1}を変更しています", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step2.validatingText": "インデックスパターンとジョブの互換性を確認しています", + "xpack.ml.newJob.wizard.datafeedStep.dataView.title": "インデックスパターン", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.message": "データフィードのプレビューを試行するときに、このインデックスパターンでエラーが生成されました。このジョブで選択されたフィールドは{dataViewTitle}に存在しない可能性があります。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.reason": "理由:", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.title": "インデックスパターンが無効です", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.noDetectors.message": "検知器が構成されていません。このインデックスパターンはジョブに適用できます。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.noDetectors.title": "インデックスパターンが無効です", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.possiblyInvalid.message": "データフィードをプレビューするときには、このインデックスパターンで結果が得られません。{dataViewTitle}にドキュメントがない可能性があります。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.possiblyInvalid.title": "インデックスパターンが無効な可能性があります", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.valid.message": "このインデックスパターンをこのジョブに適用できます。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.valid.title": "インデックスパターンが無効です", "xpack.ml.newJob.wizard.datafeedStep.frequency.description": "検索の間隔。", "xpack.ml.newJob.wizard.datafeedStep.frequency.title": "頻度", "xpack.ml.newJob.wizard.datafeedStep.query.title": "Elasticsearch クエリ", @@ -16612,7 +17210,7 @@ "xpack.ml.newJob.wizard.jsonFlyout.autoSetJobCreatorTimeRange.error": "インデックスの開始時刻と終了時刻の取得中にエラーが発生しました", "xpack.ml.newJob.wizard.jsonFlyout.closeButton": "閉じる", "xpack.ml.newJob.wizard.jsonFlyout.datafeed.title": "データフィード構成 JSON", - "xpack.ml.newJob.wizard.jsonFlyout.indicesChange.calloutText": "ここではデータフィードで使用されているインデックスを変更できません。別のインデックスパターンまたは保存された検索を選択する場合は、ジョブ作成をやり直し、別のインデックスパターンを選択してください。", + "xpack.ml.newJob.wizard.jsonFlyout.indicesChange.calloutText": "データフィードで使用されているインデックスはここで変更できません。別のインデックスパターンまたは保存された検索を選択するには、ウィザードのステップ1に進み、[インデックスパターンを変更]オプションを選択します。", "xpack.ml.newJob.wizard.jsonFlyout.indicesChange.calloutTitle": "インデックスが変更されました", "xpack.ml.newJob.wizard.jsonFlyout.job.title": "ジョブ構成 JSON", "xpack.ml.newJob.wizard.jsonFlyout.saveButton": "保存", @@ -17207,8 +17805,6 @@ "xpack.ml.trainedModels.modelsList.deleteModelsButtonLabel": "削除", "xpack.ml.trainedModels.modelsList.disableSelectableMessage": "モデルにはパイプラインが関連付けられています", "xpack.ml.trainedModels.modelsList.expandedRow.analyticsConfigTitle": "分析構成", - "xpack.ml.trainedModels.modelsList.expandedRow.byPipelineTitle": "パイプライン別", - "xpack.ml.trainedModels.modelsList.expandedRow.byProcessorTitle": "プロセッサー別", "xpack.ml.trainedModels.modelsList.expandedRow.configTabLabel": "構成", "xpack.ml.trainedModels.modelsList.expandedRow.detailsTabLabel": "詳細", "xpack.ml.trainedModels.modelsList.expandedRow.detailsTitle": "詳細", @@ -17334,6 +17930,8 @@ "xpack.monitoring.alerts.elasticsearchVersionMismatch.label": "Elasticsearch バージョン不一致", "xpack.monitoring.alerts.elasticsearchVersionMismatch.shortAction": "すべてのノードのバージョンが同じことを確認してください。", "xpack.monitoring.alerts.elasticsearchVersionMismatch.ui.firingMessage": "このクラスターでは、複数のバージョンの Elasticsearch({versions})が実行されています。", + "xpack.monitoring.alerts.filterHelpText": "KQL式を使用して、アラートトリガーの範囲を制限します。", + "xpack.monitoring.alerts.filterLable": "フィルター", "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.clusterHealth": "このクラスターを実行しているKibanaのバージョン。", "xpack.monitoring.alerts.kibanaVersionMismatch.actionVariables.clusterName": "インスタンスが属しているクラスター。", "xpack.monitoring.alerts.kibanaVersionMismatch.description": "クラスターに複数のバージョンの Kibana があるときにアラートを発行します。", @@ -17343,6 +17941,7 @@ "xpack.monitoring.alerts.kibanaVersionMismatch.label": "Kibana バージョン不一致", "xpack.monitoring.alerts.kibanaVersionMismatch.shortAction": "すべてのインスタンスのバージョンが同じことを確認してください。", "xpack.monitoring.alerts.kibanaVersionMismatch.ui.firingMessage": "このクラスターでは、複数のバージョンの Kibana({versions})が実行されています。", + "xpack.monitoring.alerts.kqlSearchFieldPlaceholder": "監視データの検索", "xpack.monitoring.alerts.licenseExpiration.action": "ライセンスを更新してください。", "xpack.monitoring.alerts.licenseExpiration.actionVariables.clusterName": "ライセンスが属しているクラスター。", "xpack.monitoring.alerts.licenseExpiration.actionVariables.expiredDate": "ライセンスの有効期限。", @@ -17590,6 +18189,7 @@ "xpack.monitoring.cluster.listing.standaloneClusterCallOutText": "または、下の表のスタンドアロンクラスターをクリックしてください", "xpack.monitoring.cluster.listing.standaloneClusterCallOutTitle": "Elasticsearch クラスターに接続されていないインスタンスがあるようです。", "xpack.monitoring.cluster.listing.statusColumnTitle": "アラートステータス", + "xpack.monitoring.cluster.listing.tabTitle": "クラスター", "xpack.monitoring.cluster.listing.unknownHealthMessage": "不明", "xpack.monitoring.cluster.overview.apmPanel.agentServersTotalLinkLabel": "APM & Fleetサーバー:{apmsTotal}", "xpack.monitoring.cluster.overview.apmPanel.apmFleetTitle": "APM & Fleetサーバー", @@ -17664,7 +18264,6 @@ "xpack.monitoring.cluster.overview.logstashPanel.withPersistentQueuesLabel": "永続キューあり", "xpack.monitoring.cluster.overview.pageTitle": "クラスターの概要", "xpack.monitoring.cluster.overviewTitle": "概要", - "xpack.monitoring.cluster.listing.tabTitle": "クラスター", "xpack.monitoring.clusterStats.uuidNotFoundErrorMessage": "選択された時間範囲にクラスターが見つかりませんでした。UUID:{clusterUuid}", "xpack.monitoring.clusterStats.uuidNotSpecifiedErrorMessage": "{clusterUuid} が指定されていません", "xpack.monitoring.elasticsearch.ccr.ccrListingTable.alertsColumnTitle": "アラート", @@ -17676,7 +18275,6 @@ "xpack.monitoring.elasticsearch.ccr.ccrListingTable.syncLagOpsColumnTitle": "同期の遅延(オペレーション数)", "xpack.monitoring.elasticsearch.ccr.heading": "CCR", "xpack.monitoring.elasticsearch.ccr.pageTitle": "Elasticsearch - CCR", - "xpack.monitoring.elasticsearch.ccr.title": "Elasticsearch - CCR", "xpack.monitoring.elasticsearch.ccr.shard.instanceTitle": "インデックス{followerIndex} シャード:{shardId}", "xpack.monitoring.elasticsearch.ccr.shard.pageTitle": "Elasticsearch Ccrシャード - インデックス:{followerIndex} シャード:{shardId}", "xpack.monitoring.elasticsearch.ccr.shard.title": "Elasticsearch - CCR - シャード", @@ -17688,6 +18286,7 @@ "xpack.monitoring.elasticsearch.ccr.shardsTable.syncLagOpsColumn.followerLagTooltip": "フォロワーラグ:{syncLagOpsFollower}", "xpack.monitoring.elasticsearch.ccr.shardsTable.syncLagOpsColumn.leaderLagTooltip": "リーダーラグ:{syncLagOpsLeader}", "xpack.monitoring.elasticsearch.ccr.shardsTable.syncLagOpsColumnTitle": "同期の遅延(オペレーション数)", + "xpack.monitoring.elasticsearch.ccr.title": "Elasticsearch - CCR", "xpack.monitoring.elasticsearch.ccrShard.errorsTable.reasonColumnTitle": "理由", "xpack.monitoring.elasticsearch.ccrShard.errorsTable.typeColumnTitle": "型", "xpack.monitoring.elasticsearch.ccrShard.errorsTableTitle": "エラー", @@ -17706,6 +18305,9 @@ "xpack.monitoring.elasticsearch.clusterStatus.totalShardsLabel": "合計シャード数", "xpack.monitoring.elasticsearch.clusterStatus.unassignedShardsLabel": "未割り当てシャード", "xpack.monitoring.elasticsearch.healthStatusLabel": "ヘルス:{status}", + "xpack.monitoring.elasticsearch.index.advanced.title": "Elasticsearch - インデックス - {indexName} - 高度な設定", + "xpack.monitoring.elasticsearch.index.overview.pageTitle": "インデックス:{indexName}", + "xpack.monitoring.elasticsearch.index.overview.title": "Elasticsearch - インデックス - {indexName} - 概要", "xpack.monitoring.elasticsearch.indexDetailStatus.alerts": "アラート", "xpack.monitoring.elasticsearch.indexDetailStatus.documentsTitle": "ドキュメント", "xpack.monitoring.elasticsearch.indexDetailStatus.iconStatusLabel": "ヘルス:{elasticsearchStatusIcon}", @@ -17713,7 +18315,6 @@ "xpack.monitoring.elasticsearch.indexDetailStatus.totalShardsTitle": "合計シャード数", "xpack.monitoring.elasticsearch.indexDetailStatus.totalTitle": "合計", "xpack.monitoring.elasticsearch.indexDetailStatus.unassignedShardsTitle": "未割り当てシャード", - "xpack.monitoring.elasticsearch.index.advanced.title": "Elasticsearch - インデックス - {indexName} - 高度な設定", "xpack.monitoring.elasticsearch.indices.alertsColumnTitle": "アラート", "xpack.monitoring.elasticsearch.indices.dataTitle": "データ", "xpack.monitoring.elasticsearch.indices.documentCountTitle": "ドキュメントカウント", @@ -17722,8 +18323,6 @@ "xpack.monitoring.elasticsearch.indices.monitoringTablePlaceholder": "インデックスのフィルタリング…", "xpack.monitoring.elasticsearch.indices.nameTitle": "名前", "xpack.monitoring.elasticsearch.indices.noIndicesMatchYourSelectionDescription": "選択項目に一致するインデックスがありません。時間範囲を変更してみてください。", - "xpack.monitoring.elasticsearch.index.overview.pageTitle": "インデックス:{indexName}", - "xpack.monitoring.elasticsearch.index.overview.title": "Elasticsearch - インデックス - {indexName} - 概要", "xpack.monitoring.elasticsearch.indices.pageTitle": "デフォルトのインデックス", "xpack.monitoring.elasticsearch.indices.routeTitle": "Elasticsearch - インデックス", "xpack.monitoring.elasticsearch.indices.searchRateTitle": "検索レート", @@ -17742,7 +18341,8 @@ "xpack.monitoring.elasticsearch.mlJobListing.statusIconLabel": "ジョブ状態:{status}", "xpack.monitoring.elasticsearch.mlJobs.pageTitle": "Elasticsearch - 機械学習ジョブ", "xpack.monitoring.elasticsearch.mlJobs.routeTitle": "Elasticsearch - 機械学習ジョブ", - "xpack.monitoring.elasticsearch.node.advanced.title": "Elasticsearch - ノード - {nodeName} - 高度な設定", + "xpack.monitoring.elasticsearch.node.advanced.pageTitle": "Elasticsearchノード:{nodeName}", + "xpack.monitoring.elasticsearch.node.advanced.title": "Elasticsearch - ノード - {nodeName} - 詳細", "xpack.monitoring.elasticsearch.node.cells.tooltip.iconLabel": "このメトリックの詳細", "xpack.monitoring.elasticsearch.node.cells.tooltip.max": "最高値", "xpack.monitoring.elasticsearch.node.cells.tooltip.min": "最低値", @@ -17750,6 +18350,7 @@ "xpack.monitoring.elasticsearch.node.cells.tooltip.trending": "傾向", "xpack.monitoring.elasticsearch.node.cells.trendingDownText": "ダウン", "xpack.monitoring.elasticsearch.node.cells.trendingUpText": "アップ", + "xpack.monitoring.elasticsearch.node.heading": "Elasticsearchノード", "xpack.monitoring.elasticsearch.node.overview.pageTitle": "Elasticsearchノード:{node}", "xpack.monitoring.elasticsearch.node.overview.title": "Elasticsearch - ノード - {nodeName} - 概要", "xpack.monitoring.elasticsearch.node.statusIconLabel": "ステータス:{status}", @@ -17784,6 +18385,7 @@ "xpack.monitoring.elasticsearch.nodes.statusColumnTitle": "ステータス", "xpack.monitoring.elasticsearch.nodes.unknownNodeTypeLabel": "不明", "xpack.monitoring.elasticsearch.overview.pageTitle": "Elasticsearchの概要", + "xpack.monitoring.elasticsearch.overview.title": "Elasticsearch", "xpack.monitoring.elasticsearch.shardActivity.completedRecoveriesLabel": "完了済みの復元", "xpack.monitoring.elasticsearch.shardActivity.noActiveShardRecoveriesMessage.completedRecoveriesLinkText": "完了済みの復元", "xpack.monitoring.elasticsearch.shardActivity.noActiveShardRecoveriesMessage.completedRecoveriesLinkTextProblem": "このクラスターにはアクティブなシャードの復元がありません。", @@ -17837,9 +18439,10 @@ "xpack.monitoring.es.nodeType.masterNodeLabel": "マスターノード", "xpack.monitoring.es.nodeType.masterOnlyNodeLabel": "マスター専用ノード", "xpack.monitoring.es.nodeType.nodeLabel": "ノード", + "xpack.monitoring.esItemNavigation.advancedLinkText": "高度な設定", + "xpack.monitoring.esItemNavigation.overviewLinkText": "概要", "xpack.monitoring.esNavigation.ccrLinkText": "CCR", "xpack.monitoring.esNavigation.indicesLinkText": "インデックス", - "xpack.monitoring.esItemNavigation.advancedLinkText": "高度な設定", "xpack.monitoring.esNavigation.jobsLinkText": "機械学習ジョブ", "xpack.monitoring.esNavigation.nodesLinkText": "ノード", "xpack.monitoring.esNavigation.overviewLinkText": "概要", @@ -17887,6 +18490,7 @@ "xpack.monitoring.kibana.listing.responseTimeColumnTitle": "応答時間", "xpack.monitoring.kibana.listing.statusColumnTitle": "ステータス", "xpack.monitoring.kibana.overview.pageTitle": "Kibanaの概要", + "xpack.monitoring.kibana.overview.title": "Kibana", "xpack.monitoring.kibana.shardActivity.bytesTitle": "バイト", "xpack.monitoring.kibana.shardActivity.filesTitle": "ファイル", "xpack.monitoring.kibana.shardActivity.indexTitle": "インデックス", @@ -17974,6 +18578,7 @@ "xpack.monitoring.logstash.nodes.routeTitle": "Logstash - ノード", "xpack.monitoring.logstash.nodes.versionTitle": "バージョン", "xpack.monitoring.logstash.overview.pageTitle": "Logstashの概要", + "xpack.monitoring.logstash.overview.title": "Logstash", "xpack.monitoring.logstash.pipeline.detailDrawer.conditionalStatementDescription": "これはパイプラインのコンディションのステートメントです。", "xpack.monitoring.logstash.pipeline.detailDrawer.eventsEmittedLabel": "送信イベント", "xpack.monitoring.logstash.pipeline.detailDrawer.eventsEmittedRateLabel": "イベント送信レート", @@ -18362,6 +18967,11 @@ "xpack.monitoring.metrics.esIndex.searchRate.totalShardsDescription": "プライマリとレプリカシャードで実行されている検索リクエストの数です。1 つの検索を複数シャードに対して実行することができます!", "xpack.monitoring.metrics.esIndex.searchRate.totalShardsLabel": "合計シャード", "xpack.monitoring.metrics.esIndex.searchRateTitle": "検索レート", + "xpack.monitoring.metrics.esIndex.segmentCount.primariesDescription": "プライマリシャードのセグメント数です。", + "xpack.monitoring.metrics.esIndex.segmentCount.primariesLabel": "プライマリ", + "xpack.monitoring.metrics.esIndex.segmentCount.totalDescription": "プライマリとレプリカシャードのセグメント数です。", + "xpack.monitoring.metrics.esIndex.segmentCount.totalLabel": "合計", + "xpack.monitoring.metrics.esIndex.segmentCountTitle": "セグメントカウント", "xpack.monitoring.metrics.esIndex.throttleTime.indexingDescription": "プライマリとレプリカシャードのインデックスオペレーションのスロットリングの所要時間です。", "xpack.monitoring.metrics.esIndex.throttleTime.indexingLabel": "インデックス", "xpack.monitoring.metrics.esIndex.throttleTime.indexingPrimariesDescription": "プライマリシャードのインデックスオペレーションのスロットリングの所要時間です。", @@ -18583,6 +19193,8 @@ "xpack.monitoring.metrics.logstashInstance.systemLoad.last1MinuteLabel": "1m", "xpack.monitoring.metrics.logstashInstance.systemLoad.last5MinutesDescription": "過去 5 分間の平均負荷です。", "xpack.monitoring.metrics.logstashInstance.systemLoad.last5MinutesLabel": "5m", + "xpack.monitoring.no_data.heading": "監視データが見つかりません。", + "xpack.monitoring.no_data.internal_collection.heading": "監視データが見つかりません。", "xpack.monitoring.noData.blurbs.changesNeededDescription": "監視を実行するには、次の手順に従います", "xpack.monitoring.noData.blurbs.changesNeededTitle": "調整が必要です", "xpack.monitoring.noData.blurbs.cloudDeploymentDescription": "監視を構成します ", @@ -18592,12 +19204,14 @@ "xpack.monitoring.noData.blurbs.lookingForMonitoringDataTitle": "監視データを検索中です", "xpack.monitoring.noData.blurbs.monitoringIsOffDescription": "監視は、ハードウェアパフォーマンスと負荷の情報を提供します。", "xpack.monitoring.noData.blurbs.monitoringIsOffTitle": "監視は現在オフになっています", + "xpack.monitoring.noData.checker.clusterSettings": "本番クラスターでクラスター設定APIを確認しています", + "xpack.monitoring.noData.checker.nodesSettings": "本番クラスターでノード設定APIを確認しています", "xpack.monitoring.noData.checkerErrors.checkEsSettingsErrorMessage": "Elasticsearch の設定の確認中にエラーが発生しました。設定の確認には管理者権限が必要で、必要に応じて監視収集設定を有効にする必要があります。", "xpack.monitoring.noData.cloud.description": "監視は、ハードウェアパフォーマンスと負荷の情報を提供します。", "xpack.monitoring.noData.cloud.heading": "監視データが見つかりません。", "xpack.monitoring.noData.cloud.title": "監視データが利用できません", "xpack.monitoring.noData.collectionInterval.turnOnMonitoringButtonLabel": "Metricbeat で監視を設定", - "xpack.monitoring.noData.defaultLoadingMessage": "読み込み中、お待ちください", + "xpack.monitoring.noData.defaultLoadingMessage": "読み込み中です。お待ちください...", "xpack.monitoring.noData.explanations.collectionEnabled.monitoringTurnedOnDescription": "データがクラスターにある場合、ここに監視ダッシュボードが表示されます。これには数秒かかる場合があります。", "xpack.monitoring.noData.explanations.collectionEnabled.monitoringTurnedOnTitle": "成功!監視データを取得中です。", "xpack.monitoring.noData.explanations.collectionEnabled.stillWaitingLinkText": "まだ待っていますか?", @@ -18671,6 +19285,341 @@ "xpack.monitoring.updateLicenseButtonLabel": "ライセンスを更新", "xpack.monitoring.updateLicenseTitle": "ライセンスの更新", "xpack.monitoring.useAvailableLicenseDescription": "すでに新しいライセンスがある場合は、今すぐアップロードしてください。", + "xpack.observability..synthetics.addDataButtonLabel": "Syntheticsデータの追加", + "xpack.observability.alerts.manageRulesButtonLabel": "ルールの管理", + "xpack.observability.alerts.searchBarPlaceholder": "検索アラート(例:kibana.alert.evaluation.threshold > 75)", + "xpack.observability.alerts.workflowStatusFilter.acknowledgedButtonLabel": "認識", + "xpack.observability.alerts.workflowStatusFilter.closedButtonLabel": "終了", + "xpack.observability.alerts.workflowStatusFilter.openButtonLabel": "開く", + "xpack.observability.alertsDisclaimerLinkText": "フィードバック", + "xpack.observability.alertsDisclaimerText": "将来のリリースでは、この機能が変更されるか、完全に削除される可能性があります。当社は新しい機能の追加に努めているため、お客様の貴重な{feedback}をお寄せください。", + "xpack.observability.alertsDisclaimerTitle": "現在アラート履歴はオブザーバビリティの実験的機能です", + "xpack.observability.alertsFlyout.actualValueLabel": "実際の値", + "xpack.observability.alertsFlyout.durationLabel": "期間", + "xpack.observability.alertsFlyout.expectedValueLabel": "想定された値", + "xpack.observability.alertsFlyout.lastUpdatedLabel": "最終更新", + "xpack.observability.alertsFlyout.ruleTypeLabel": "ルールタイプ", + "xpack.observability.alertsFlyout.statusLabel": "ステータス", + "xpack.observability.alertsLinkTitle": "アラート", + "xpack.observability.alertsTable.actionsTextLabel": "アクション", + "xpack.observability.alertsTable.footerTextLabel": "アラート", + "xpack.observability.alertsTable.loadingTextLabel": "アラートを読み込んでいます", + "xpack.observability.alertsTable.moreActionsTextLabel": "さらにアクションを表示", + "xpack.observability.alertsTable.viewDetailsTextLabel": "詳細を表示", + "xpack.observability.alertsTable.viewInAppTextLabel": "アプリで表示", + "xpack.observability.alertsTGrid.durationColumnDescription": "期間", + "xpack.observability.alertsTGrid.lastUpdatedColumnDescription": "最終更新", + "xpack.observability.alertsTGrid.reasonColumnDescription": "理由", + "xpack.observability.alertsTGrid.statusActiveDescription": "アクティブ", + "xpack.observability.alertsTGrid.statusColumnDescription": "アラートステータス", + "xpack.observability.alertsTGrid.statusRecoveredDescription": "回復済み", + "xpack.observability.alertsTitle": "アラート", + "xpack.observability.apply.label": "適用", + "xpack.observability.breadcrumbs.alertsLinkText": "アラート", + "xpack.observability.breadcrumbs.landingLinkText": "はじめて使う", + "xpack.observability.breadcrumbs.observabilityLinkText": "オブザーバビリティ", + "xpack.observability.breadcrumbs.overviewLinkText": "概要", + "xpack.observability.cases.caseFeatureNoPermissionsMessage": "ケースを表示するには、Kibana スペースでケース機能の権限が必要です。詳細については、Kibana管理者に連絡してください。", + "xpack.observability.cases.caseFeatureNoPermissionsTitle": "Kibana機能権限が必要です", + "xpack.observability.cases.caseView.goToDocumentationButton": "ドキュメンテーションを表示", + "xpack.observability.emptySection.apps.alert.description": "503 エラーが累積していますか?サービスは応答していますか?CPUとRAMの使用量が跳ね上がっていますか?このような警告を、事後にではなく、発生と同時に把握しましょう。", + "xpack.observability.emptySection.apps.alert.link": "ルールを作成", + "xpack.observability.emptySection.apps.alert.title": "アラートが見つかりません。", + "xpack.observability.emptySection.apps.apm.description": "分散アーキテクチャ全体でトランザクションを追跡し、サービスの通信をマップ化して、簡単にパフォーマンスボトルネックを特定できます。", + "xpack.observability.emptySection.apps.apm.link": "エージェントのインストール", + "xpack.observability.emptySection.apps.apm.title": "APM", + "xpack.observability.emptySection.apps.logs.description": "任意のソースからログを一元化します。より迅速に対応できるように、検索、追跡、異常検知の自動化、傾向の可視化を行います。", + "xpack.observability.emptySection.apps.logs.link": "Filebeatをインストール", + "xpack.observability.emptySection.apps.logs.title": "ログ", + "xpack.observability.emptySection.apps.metrics.description": "インフラストラクチャ、アプリ、サービスからメトリックを分析します。傾向、予測動作を発見し、異常などに関するアラートを通知します。", + "xpack.observability.emptySection.apps.metrics.link": "Metricbeatのインストール", + "xpack.observability.emptySection.apps.metrics.title": "メトリック", + "xpack.observability.emptySection.apps.uptime.description": "サイトとサービスの可用性をアクティブに監視するアラートを受信し、問題をより迅速に解決して、ユーザーエクスペリエンスを最適化します。", + "xpack.observability.emptySection.apps.uptime.link": "Heartbeatのインストール", + "xpack.observability.emptySection.apps.uptime.title": "アップタイム", + "xpack.observability.emptySection.apps.ux.description": "パフォーマンスは分散です。Web アプリケーションにアクセスするすべてのユーザーの経験を計測し、全員にとっての経験を改善する方法を理解します。", + "xpack.observability.emptySection.apps.ux.link": "Rum エージェントをインストール", + "xpack.observability.emptySection.apps.ux.title": "ユーザーエクスペリエンス", + "xpack.observability.enableInspectEsQueriesExperimentDescription": "API応答でElasticsearchクエリを調査します。", + "xpack.observability.enableInspectEsQueriesExperimentName": "ESクエリを調査", + "xpack.observability.exp.breakDownFilter.noBreakdown": "内訳なし", + "xpack.observability.exp.breakDownFilter.unavailable": "モニター期間メトリックでは、ステップ名内訳を使用できません。ステップ期間メトリックを使用して、ステップ名で分解します。", + "xpack.observability.exp.breakDownFilter.warning": "内訳は一度に1つの系列にのみ適用できます。", + "xpack.observability.experimentalBadgeDescription": "この機能は実験的機能であり、将来のリリースでは変更されたり完全に削除されたりする場合があります。Elasticは最善の努力を講じてすべての問題の修正に努めますが、実験的機能には正式なGA機能のサポートSLAが適用されません。", + "xpack.observability.experimentalBadgeLabel": "実験的", + "xpack.observability.exploratoryView.noBrusing": "ブラシ選択によるズームは時系列グラフでのみ使用できます。", + "xpack.observability.expView.chartTypes.label": "チャートタイプ", + "xpack.observability.expView.columns.label": "{sourceField}の{percentileValue}パーセンタイル", + "xpack.observability.expView.columns.operation.label": "{sourceField}の{operationType}", + "xpack.observability.expView.dateRanger.endDate": "終了日", + "xpack.observability.expView.dateRanger.startDate": "開始日", + "xpack.observability.expView.fieldLabels.agentHost": "エージェントホスト", + "xpack.observability.expView.fieldLabels.backend": "バックエンド時刻", + "xpack.observability.expView.fieldLabels.browserFamily": "ブラウザーファミリー", + "xpack.observability.expView.fieldLabels.browserVersion": "ブラウザーバージョン", + "xpack.observability.expView.fieldLabels.carrierLocation": "キャリアの位置情報", + "xpack.observability.expView.fieldLabels.carrierName": "キャリア名", + "xpack.observability.expView.fieldLabels.chooseField": "ラベルフィールド", + "xpack.observability.expView.fieldLabels.cls": "累積レイアウト変更", + "xpack.observability.expView.fieldLabels.connectionType": "接続タイプ", + "xpack.observability.expView.fieldLabels.coreWebVitals": "コア Web バイタル", + "xpack.observability.expView.fieldLabels.cpuUsage": "CPU使用状況", + "xpack.observability.expView.fieldLabels.dcl": "DOMコンテンツが読み込まれました", + "xpack.observability.expView.fieldLabels.device": "デバイス", + "xpack.observability.expView.fieldLabels.deviceDistribution": "デバイス分布", + "xpack.observability.expView.fieldLabels.deviceModel": "デバイスモデル", + "xpack.observability.expView.fieldLabels.downPings": "Down Ping", + "xpack.observability.expView.fieldLabels.environment": "環境", + "xpack.observability.expView.fieldLabels.fcp": "初回コンテンツの描画", + "xpack.observability.expView.fieldLabels.fid": "初回入力遅延", + "xpack.observability.expView.fieldLabels.hostName": "ホスト名", + "xpack.observability.expView.fieldLabels.hostOS": "ホストOS", + "xpack.observability.expView.fieldLabels.kpi": "KPI", + "xpack.observability.expView.fieldLabels.kpiOverTime": "一定期間のKPI", + "xpack.observability.expView.fieldLabels.labels": "ラベル", + "xpack.observability.expView.fieldLabels.lcp": "最大コンテンツの描画", + "xpack.observability.expView.fieldLabels.location": "場所", + "xpack.observability.expView.fieldLabels.memoryUsage": "システムメモリー使用状況", + "xpack.observability.expView.fieldLabels.metric": "メトリック", + "xpack.observability.expView.fieldLabels.mobile.memoryUsage": "メモリー使用状況", + "xpack.observability.expView.fieldLabels.mobileApp": "モバイルアプリ", + "xpack.observability.expView.fieldLabels.mobileResponse": "モバイル応答", + "xpack.observability.expView.fieldLabels.monitorDurationLabel": "監視期間", + "xpack.observability.expView.fieldLabels.monitorId": "モニターID", + "xpack.observability.expView.fieldLabels.monitorName": "モニター名", + "xpack.observability.expView.fieldLabels.monitorStatus": "監視ステータス", + "xpack.observability.expView.fieldLabels.monitorType": "モニタータイプ", + "xpack.observability.expView.fieldLabels.numberOfDevices": "デバイス数", + "xpack.observability.expView.fieldLabels.obsLocation": "Observerの位置情報", + "xpack.observability.expView.fieldLabels.onload": "ドキュメント完了(読み込み時)", + "xpack.observability.expView.fieldLabels.os": "オペレーティングシステム", + "xpack.observability.expView.fieldLabels.osPlatform": "OSプラットフォーム", + "xpack.observability.expView.fieldLabels.pageLoadTime": "ページ読み込み時間", + "xpack.observability.expView.fieldLabels.pagesLoaded": "ページが読み込まれました", + "xpack.observability.expView.fieldLabels.pageViews": "ページビュー", + "xpack.observability.expView.fieldLabels.performanceDistribution": "パフォーマンス分布", + "xpack.observability.expView.fieldLabels.pings": "ピング", + "xpack.observability.expView.fieldLabels.port": "ポート", + "xpack.observability.expView.fieldLabels.requestMethod": "リクエストメソッド", + "xpack.observability.expView.fieldLabels.responseLatency": "レイテンシ", + "xpack.observability.expView.fieldLabels.serviceName": "サービス名", + "xpack.observability.expView.fieldLabels.serviceVersion": "サービスバージョン", + "xpack.observability.expView.fieldLabels.stepDurationLabel": "ステップ期間", + "xpack.observability.expView.fieldLabels.stepNameLabel": "ステップ名", + "xpack.observability.expView.fieldLabels.tags": "タグ", + "xpack.observability.expView.fieldLabels.tbt": "合計ブロック時間", + "xpack.observability.expView.fieldLabels.transactionPerMinute": "スループット", + "xpack.observability.expView.fieldLabels.upPings": "Up Ping", + "xpack.observability.expView.fieldLabels.url": "URL", + "xpack.observability.expView.fieldLabels.webApplication": "Webアプリケーション", + "xpack.observability.expView.filterValueButton.negate": "{value}ではない", + "xpack.observability.expView.heading.addToCase": "ケースに追加", + "xpack.observability.expView.heading.addToCase.notification": "ビジュアライゼーションが正常にケースに追加されました:{caseTitle}", + "xpack.observability.expView.heading.addToCase.notification.error": "選択したケースにビジュアライゼーションを追加できませんでした。", + "xpack.observability.expView.heading.addToCase.notification.viewCase": "ケースの表示", + "xpack.observability.expView.heading.label": "データの探索", + "xpack.observability.expView.heading.openInLens": "Lensで開く", + "xpack.observability.expView.heading.saveLensVisualization": "保存", + "xpack.observability.expView.lastUpdated.label": "前回更新日時:{updatedDate}", + "xpack.observability.expView.operationType.75thPercentile": "75パーセンタイル", + "xpack.observability.expView.operationType.90thPercentile": "90パーセンタイル", + "xpack.observability.expView.operationType.95thPercentile": "95パーセンタイル", + "xpack.observability.expView.operationType.99thPercentile": "99パーセンタイル", + "xpack.observability.expView.operationType.average": "平均", + "xpack.observability.expView.operationType.lastValue": "最終値", + "xpack.observability.expView.operationType.median": "中央", + "xpack.observability.expView.operationType.sum": "合計", + "xpack.observability.expView.reportType.selectDataType": "ビジュアライゼーションを作成するデータ型を選択します。", + "xpack.observability.expView.reportType.selectLabel": "レポートタイプを選択", + "xpack.observability.expView.seriesBuilder.accordion.label": "系列情報を切り替える", + "xpack.observability.expView.seriesBuilder.addSeries": "数列を追加", + "xpack.observability.expView.seriesBuilder.addSeries.limitation": "このレポートタイプには1つの系列のみを追加できます。", + "xpack.observability.expView.seriesBuilder.addSeries.selectReportType": "系列を追加する前にレポートタイプを選択してください。", + "xpack.observability.expView.seriesBuilder.apply": "変更を適用", + "xpack.observability.expView.seriesBuilder.breakdownBy": "内訳基準", + "xpack.observability.expView.seriesBuilder.creationContext": "表示開始", + "xpack.observability.expView.seriesBuilder.creationTime": "グラフが作成されました", + "xpack.observability.expView.seriesBuilder.date": "日付", + "xpack.observability.expView.seriesBuilder.emptyReportDefinition": "ビジュアライゼーションを作成するレポート定義を選択します。", + "xpack.observability.expView.seriesBuilder.emptyview": "表示する情報がありません。", + "xpack.observability.expView.seriesBuilder.labelField": "ラベルフィールドを選択", + "xpack.observability.expView.seriesBuilder.loadingView": "ビューを読み込んでいます...", + "xpack.observability.expView.seriesBuilder.operation": "演算", + "xpack.observability.expView.seriesBuilder.reportType": "レポートタイプ", + "xpack.observability.expView.seriesBuilder.selectFilters": "フィルター", + "xpack.observability.expView.seriesBuilder.selectReportType": "レポートタイプが選択されていません", + "xpack.observability.expView.seriesBuilder.selectReportType.empty": "レポートタイプを選択すると、ビジュアライゼーションを作成します。", + "xpack.observability.expView.seriesEditor.clearFilter": "フィルターを消去", + "xpack.observability.expView.seriesEditor.editChartSeriesLabel": "系列のグラフタイプを編集", + "xpack.observability.expView.seriesEditor.editName": "名前を編集", + "xpack.observability.expView.seriesEditor.noData": "利用可能なデータがありません", + "xpack.observability.expView.seriesEditor.notFound": "系列が見つかりません。系列を追加してください。", + "xpack.observability.expView.seriesEditor.removeReportMetric": "レポートメトリックの削除", + "xpack.observability.expView.seriesEditor.removeSeries": "系列の削除", + "xpack.observability.expView.seriesEditor.removeSeriesDisabled": "主系列は削除できません。これを削除する前に、以下のすべての系列を削除してください。", + "xpack.observability.expView.seriesEditor.selectReportMetric": "レポートメトリックを選択", + "xpack.observability.expView.seriesEditor.selectReportMetric.noFieldData": "フィールド{field}のデータがありません。", + "xpack.observability.expView.seriesEditor.seriesName": "系列名", + "xpack.observability.featureCatalogueDescription": "専用UIで、ログ、メトリック、アプリケーショントレース、システム可用性を連結します。", + "xpack.observability.featureCatalogueTitle": "オブザーバビリティ", + "xpack.observability.featureRegistry.linkObservabilityTitle": "ケース", + "xpack.observability.feedbackMenu.appName": "オブザーバビリティ", + "xpack.observability.fieldValueSelection.apply": "適用", + "xpack.observability.fieldValueSelection.apply.label": "{label}に選択したフィルターを適用", + "xpack.observability.fieldValueSelection.loading": "読み込み中", + "xpack.observability.fieldValueSelection.placeholder": "{label}をフィルタリング", + "xpack.observability.fieldValueSelection.placeholder.search": "{label}を検索", + "xpack.observability.filterButton.label": "{label}フィルターのフィルターグループを展開", + "xpack.observability.filters.expanded.labels.backTo": "ラベルに戻る", + "xpack.observability.filters.expanded.labels.fields": "ラベルフィールド", + "xpack.observability.filters.expanded.labels.label": "ラベル", + "xpack.observability.filters.expanded.noFilter": "フィルターが見つかりません。", + "xpack.observability.filters.expanded.search": "{label}を検索", + "xpack.observability.filters.filterByUrl": "IDでフィルタリング", + "xpack.observability.filters.label.wildcard": "{label}ワイルドカード", + "xpack.observability.filters.searchResults": "{total}件の検索結果", + "xpack.observability.filters.select": "選択してください", + "xpack.observability.filters.topPages": "上位のページ", + "xpack.observability.filters.url": "Url", + "xpack.observability.filters.url.loadingResults": "結果を読み込み中", + "xpack.observability.filters.url.noResults": "結果がありません", + "xpack.observability.fleet.button": "Fleetを試す", + "xpack.observability.fleet.text": "Elastic エージェントでは、シンプルかつ統合された方法で、ログ、メトリック、他の種類のデータの監視をホストに追加することができます。複数の Beats と他のエージェントをインストールする必要はありません。このため、インフラストラクチャ全体での構成のデプロイが簡単で高速になりました。", + "xpack.observability.fleet.title": "新しい Fleet をご覧になりましたか。", + "xpack.observability.formatters.hoursTimeUnitLabel": "h", + "xpack.observability.formatters.hoursTimeUnitLabelExtended": "時間", + "xpack.observability.formatters.microsTimeUnitLabel": "μs", + "xpack.observability.formatters.microsTimeUnitLabelExtended": "マイクロ秒", + "xpack.observability.formatters.millisTimeUnitLabel": "ms", + "xpack.observability.formatters.millisTimeUnitLabelExtended": "ミリ秒", + "xpack.observability.formatters.minutesTimeUnitLabel": "分", + "xpack.observability.formatters.minutesTimeUnitLabelExtended": "分", + "xpack.observability.formatters.secondsTimeUnitLabel": "s", + "xpack.observability.formatters.secondsTimeUnitLabelExtended": "秒", + "xpack.observability.home.addData": "統合の追加", + "xpack.observability.hoverActions.filterForValue": "値でフィルター", + "xpack.observability.hoverActions.filterForValueButtonLabel": "値でフィルター", + "xpack.observability.inspector.stats.hitsDescription": "クエリにより返されたドキュメントの数です。", + "xpack.observability.inspector.stats.hitsLabel": "ヒット数", + "xpack.observability.inspector.stats.hitsTotalDescription": "クエリに一致するドキュメントの数です。", + "xpack.observability.inspector.stats.hitsTotalLabel": "ヒット数(合計)", + "xpack.observability.inspector.stats.kibanaApiQueryParametersDescription": "Elasticsearch要求を開始したKibana API要求で使用されているクエリパラメーター。", + "xpack.observability.inspector.stats.kibanaApiQueryParametersLabel": "Kibana APIクエリパラメーター", + "xpack.observability.inspector.stats.kibanaApiRouteDescription": "Elasticsearch要求を開始したKibana API要求のルート。", + "xpack.observability.inspector.stats.kibanaApiRouteLabel": "Kibana APIルート", + "xpack.observability.inspector.stats.queryTimeDescription": "クエリの処理の所要時間です。リクエストの送信やブラウザーでのパースの時間は含まれません。", + "xpack.observability.inspector.stats.queryTimeLabel": "クエリ時間", + "xpack.observability.inspector.stats.queryTimeValue": "{queryTime}ms", + "xpack.observability.maxSuggestionsUiSettingDescription": "オートコンプリート選択ボックスに取得される候補の最大数。", + "xpack.observability.maxSuggestionsUiSettingName": "最大候補数", + "xpack.observability.mobile.addDataButtonLabel": "モバイルデータの追加", + "xpack.observability.navigation.newBadge": "新規", + "xpack.observability.news.readFullStory": "詳細なストーリーを読む", + "xpack.observability.news.title": "新機能", + "xpack.observability.noDataConfig.beatsCard.description": "BeatsとAPMエージェントを使用して、オブザーバビリティデータをElasticsearchに送信します。多数の一般的なシステム、アプリ、言語では、サポートによって処理が簡単になりました。", + "xpack.observability.noDataConfig.beatsCard.title": "統合の追加", + "xpack.observability.noDataConfig.solutionName": "オブザーバビリティ", + "xpack.observability.notAvailable": "N/A", + "xpack.observability.overview.alert.allTypes": "すべてのタイプ", + "xpack.observability.overview.alert.appLink": "アラートを管理", + "xpack.observability.overview.alerts.muted": "ミュート", + "xpack.observability.overview.alerts.title": "アラート", + "xpack.observability.overview.apm.appLink": "アプリで表示", + "xpack.observability.overview.apm.services": "サービス", + "xpack.observability.overview.apm.throughput": "スループット", + "xpack.observability.overview.apm.title": "APM", + "xpack.observability.overview.exploratoryView": "データを分析", + "xpack.observability.overview.exploratoryView.editSeriesColor": "系列の色を編集", + "xpack.observability.overview.exploratoryView.hideChart": "グラフを非表示", + "xpack.observability.overview.exploratoryView.lensDisabled": "Lensアプリを使用できません。調査ビューを使用するには、Lensを有効にしてください。", + "xpack.observability.overview.exploratoryView.missingDataType": "データ型が見つかりません", + "xpack.observability.overview.exploratoryView.missingReportDefinition": "{reportDefinition}が見つかりません", + "xpack.observability.overview.exploratoryView.missingReportMetric": "レポートメトリックが見つかりません", + "xpack.observability.overview.exploratoryView.mobileExperienceLabel": "モバイルエクスペリエンス", + "xpack.observability.overview.exploratoryView.noDataAvailable": "{dataType}データがありません。", + "xpack.observability.overview.exploratoryView.pickColor": "色を選択", + "xpack.observability.overview.exploratoryView.preview": "プレビュー", + "xpack.observability.overview.exploratoryView.refresh": "更新", + "xpack.observability.overview.exploratoryView.selectDataType": "データ型を選択", + "xpack.observability.overview.exploratoryView.selectDataTypeTooltip": "データ型は編集できません。", + "xpack.observability.overview.exploratoryView.showChart": "グラフを表示", + "xpack.observability.overview.exploratoryView.syntheticsLabel": "Synthetics監視", + "xpack.observability.overview.exploratoryView.uxLabel": "ユーザーエクスペリエンス(RUM)", + "xpack.observability.overview.loadingObservability": "オブザーバビリティを読み込んでいます", + "xpack.observability.overview.logs.appLink": "アプリで表示", + "xpack.observability.overview.logs.subtitle": "毎分のログレート", + "xpack.observability.overview.logs.title": "ログ", + "xpack.observability.overview.metrics.appLink": "アプリで表示", + "xpack.observability.overview.metrics.colunms.cpu": "CPU %", + "xpack.observability.overview.metrics.colunms.hostname": "ホスト名", + "xpack.observability.overview.metrics.colunms.load15": "読み込み15", + "xpack.observability.overview.metrics.colunms.uptime": "アップタイム", + "xpack.observability.overview.metrics.title": "メトリック", + "xpack.observability.overview.pageTitle": "概要", + "xpack.observability.overview.uptime.appLink": "アプリで表示", + "xpack.observability.overview.uptime.chart.down": "ダウン", + "xpack.observability.overview.uptime.chart.up": "アップ", + "xpack.observability.overview.uptime.down": "ダウン", + "xpack.observability.overview.uptime.monitors": "監視", + "xpack.observability.overview.uptime.title": "アップタイム", + "xpack.observability.overview.uptime.up": "アップ", + "xpack.observability.overview.ux.appLink": "アプリで表示", + "xpack.observability.overview.ux.title": "ユーザーエクスペリエンス", + "xpack.observability.overviewLinkTitle": "概要", + "xpack.observability.page_header.addMobileDataLink.label": "モバイルAPMデータの追加に関するチュートリアルに移動", + "xpack.observability.page_header.addUptimeDataLink.label": "Elastic Synthetics統合に移動して、アップタイムデータを追加", + "xpack.observability.page_header.addUXDataLink.label": "ユーザーエクスペリエンスAPMデータの追加に関するチュートリアルに移動", + "xpack.observability.pageLayout.sideNavTitle": "オブザーバビリティ", + "xpack.observability.resources.documentation": "ドキュメント", + "xpack.observability.resources.forum": "ディスカッションフォーラム", + "xpack.observability.resources.quick_start": "クイックスタートビデオ", + "xpack.observability.resources.title": "リソース", + "xpack.observability.resources.training": "無料のObservabilityコース", + "xpack.observability.search.url.close": "閉じる", + "xpack.observability.section.apps.apm.description": "分散アーキテクチャ全体でトランザクションを追跡し、サービスの通信をマップ化して、簡単にパフォーマンスボトルネックを特定できます。", + "xpack.observability.section.apps.apm.title": "APM", + "xpack.observability.section.apps.logs.description": "任意のソースからログを一元化します。より迅速に対応できるように、検索、追跡、異常検知の自動化、傾向の可視化を行います。", + "xpack.observability.section.apps.logs.title": "ログ", + "xpack.observability.section.apps.metrics.description": "インフラストラクチャ、アプリ、サービスからメトリックを分析します。傾向、予測動作を発見し、異常などに関するアラートを通知します。", + "xpack.observability.section.apps.metrics.title": "メトリック", + "xpack.observability.section.apps.uptime.description": "サイトとサービスの可用性をアクティブに監視するアラートを受信し、問題をより迅速に解決して、ユーザーエクスペリエンスを最適化します。", + "xpack.observability.section.apps.uptime.title": "アップタイム", + "xpack.observability.section.errorPanel": "データの取得時にエラーが発生しました。再試行してください", + "xpack.observability.seriesEditor.clone": "系列をコピー", + "xpack.observability.seriesEditor.edit": "系列を編集", + "xpack.observability.seriesEditor.hide": "系列を非表示", + "xpack.observability.seriesEditor.sampleDocuments": "新しいタブでサンプルドキュメントを表示", + "xpack.observability.transactionRateLabel": "{value} tpm", + "xpack.observability.urlFilter.wildcard": "ワイルドカード*{wildcard}*を使用", + "xpack.observability.ux.addDataButtonLabel": "UXデータを追加", + "xpack.observability.ux.coreVitals.average": "平均", + "xpack.observability.ux.coreVitals.averageMessage": " {bad}未満", + "xpack.observability.ux.coreVitals.cls": "累積レイアウト変更", + "xpack.observability.ux.coreVitals.cls.help": "累積レイアウト変更(CLS):視覚的な安定性を計測します。優れたユーザーエクスペリエンスを実現するには、ページのCLSを0.1未満に保ってください。", + "xpack.observability.ux.coreVitals.fid.help": "初回入力遅延(FID)は双方向性を計測します。優れたユーザーエクスペリエンスを実現するには、ページのFIDを100ミリ秒未満に保ってください。", + "xpack.observability.ux.coreVitals.fip": "初回入力遅延", + "xpack.observability.ux.coreVitals.good": "優れている", + "xpack.observability.ux.coreVitals.is": "is", + "xpack.observability.ux.coreVitals.lcp": "最大コンテンツの描画", + "xpack.observability.ux.coreVitals.lcp.help": "最大コンテンツの描画(LCP)は読み込みパフォーマンスを計測します。優れたユーザーエクスペリエンスを実現するには、ページの読み込みが開始した後、2.5秒以内にLCPが実行されるようにしてください。", + "xpack.observability.ux.coreVitals.legends.good": "優れている", + "xpack.observability.ux.coreVitals.legends.needsImprovement": "要改善", + "xpack.observability.ux.coreVitals.legends.poor": "悪い", + "xpack.observability.ux.coreVitals.less": "少ない", + "xpack.observability.ux.coreVitals.more": "多い", + "xpack.observability.ux.coreVitals.noData": "利用可能なデータがありません。", + "xpack.observability.ux.coreVitals.paletteLegend.rankPercentage": "{labelsInd} ({ranksInd}%)", + "xpack.observability.ux.coreVitals.poor": "悪い", + "xpack.observability.ux.coreVitals.takes": "取得", + "xpack.observability.ux.coreWebVitals": "コア Web バイタル", + "xpack.observability.ux.coreWebVitals.browser.support": "コア Web バイタルのブラウザーサポート", + "xpack.observability.ux.coreWebVitals.service": "サービス", + "xpack.observability.ux.dashboard.webCoreVitals.browser.help": "詳細", + "xpack.observability.ux.dashboard.webCoreVitals.help": "詳細", + "xpack.observability.ux.dashboard.webCoreVitals.helpAriaLabel": "ヘルプ", + "xpack.observability.ux.dashboard.webCoreVitals.traffic": "トラフィックの {trafficPerc} が表示されました", + "xpack.observability.ux.dashboard.webVitals.palette.tooltip": "{title} は {value}{averageMessage}より{moreOrLess}{isOrTakes}ため、{percentage} %のユーザーが{exp}を経験しています。", + "xpack.observability.ux.service.help": "最大トラフィックのRUMサービスが選択されています", "xpack.osquery.action_details.fetchError": "アクション詳細の取得中にエラーが発生しました", "xpack.osquery.action_policy_details.fetchError": "ポリシー詳細の取得中にエラーが発生しました", "xpack.osquery.action_results.errorSearchDescription": "アクション結果検索でエラーが発生しました", @@ -18682,6 +19631,8 @@ "xpack.osquery.actionResults.failSearchDescription": "アクション詳細を取得できませんでした", "xpack.osquery.actions.errorSearchDescription": "すべてのアクション検索でエラーが発生しました", "xpack.osquery.actions.failSearchDescription": "アクションを取得できませんでした", + "xpack.osquery.addPack.pageTitle": "パックの追加", + "xpack.osquery.addPack.viewPacksListTitle": "すべてのパックを表示", "xpack.osquery.addSavedQuery.form.cancelButtonLabel": "キャンセル", "xpack.osquery.addSavedQuery.form.saveQueryButtonLabel": "クエリを保存", "xpack.osquery.addSavedQuery.pageTitle": "保存されたクエリの追加", @@ -18708,14 +19659,33 @@ "xpack.osquery.all_actions.fetchError": "アクションの取得中にエラーが発生しました", "xpack.osquery.appNavigation.liveQueriesLinkText": "ライブクエリ", "xpack.osquery.appNavigation.manageIntegrationButton": "統合を管理", + "xpack.osquery.appNavigation.packsLinkText": "パック", "xpack.osquery.appNavigation.savedQueriesLinkText": "保存されたクエリ", "xpack.osquery.appNavigation.sendFeedbackButton": "フィードバックを送信", + "xpack.osquery.breadcrumbs.addpacksPageTitle": "追加", "xpack.osquery.breadcrumbs.appTitle": "Osquery", + "xpack.osquery.breadcrumbs.editpacksPageTitle": "編集", "xpack.osquery.breadcrumbs.liveQueriesPageTitle": "ライブクエリ", "xpack.osquery.breadcrumbs.newLiveQueryPageTitle": "新規", "xpack.osquery.breadcrumbs.newSavedQueryPageTitle": "新規", "xpack.osquery.breadcrumbs.overviewPageTitle": "概要", + "xpack.osquery.breadcrumbs.packsPageTitle": "パック", "xpack.osquery.breadcrumbs.savedQueriesPageTitle": "保存されたクエリ", + "xpack.osquery.configUploader.exampleConfigLinkLabel": "構成の例", + "xpack.osquery.configUploader.initialPromptTextLabel": "osquery構成ファイルを選択するか、ドラッグします", + "xpack.osquery.configUploader.unsupportedFileTypeText": "ファイルタイプ{fileType}はサポートされていません。{supportedFileTypes}構成ファイルをアップロードしてください", + "xpack.osquery.deletePack.confirmationModal.body": "このパックを削除しようとしています。実行しますか?", + "xpack.osquery.deletePack.confirmationModal.cancelButtonLabel": "キャンセル", + "xpack.osquery.deletePack.confirmationModal.confirmButtonLabel": "確認", + "xpack.osquery.deletePack.confirmationModal.title": "このパックを削除しますか?", + "xpack.osquery.deletePack.successToastMessageText": "正常にパックが削除されました。", + "xpack.osquery.deleteSavedQuery.confirmationModal.body": "このクエリを削除しようとしています。実行しますか?", + "xpack.osquery.deleteSavedQuery.confirmationModal.cancelButtonLabel": "キャンセル", + "xpack.osquery.deleteSavedQuery.confirmationModal.confirmButtonLabel": "確認", + "xpack.osquery.deleteSavedQuery.confirmationModal.title": "このクエリを削除しますか?", + "xpack.osquery.editPack.deletePackButtonLabel": "パックの削除", + "xpack.osquery.editPack.pageTitle": "{queryName}を編集", + "xpack.osquery.editPack.viewPackListTitle": "{queryName}詳細を表示", "xpack.osquery.editSavedQuery.deleteSavedQueryButtonLabel": "クエリを削除", "xpack.osquery.editSavedQuery.deleteSuccessToastMessageText": "保存されたクエリが正常に削除されました。", "xpack.osquery.editSavedQuery.form.cancelButtonLabel": "キャンセル", @@ -18723,14 +19693,26 @@ "xpack.osquery.editSavedQuery.pageTitle": "Edit \"{savedQueryId}\"", "xpack.osquery.editSavedQuery.successToastMessageText": "\"{savedQueryName}\"クエリが正常に更新されました", "xpack.osquery.editSavedQuery.viewSavedQueriesListTitle": "すべての保存されたクエリを表示", + "xpack.osquery.emptyState.addOsqueryManagerButton": "Osqueryマネージャーの追加", + "xpack.osquery.emptyState.pageDescription": "この統合を追加して、Elasticエージェントのクエリを実行してスケジュールします。", + "xpack.osquery.emptyState.pageTitle": "Osqueryマネージャーの追加", "xpack.osquery.features.liveQueriesSubFeatureName": "ライブクエリ", "xpack.osquery.features.osqueryFeatureName": "Osquery", + "xpack.osquery.features.packsSubFeatureName": "パック", "xpack.osquery.features.runSavedQueriesPrivilegeName": "保存されたクエリを実行", "xpack.osquery.features.savedQueriesSubFeatureName": "保存されたクエリ", + "xpack.osquery.fleetIntegration.osqueryConfig.accordionFieldLabel": "高度な設定", + "xpack.osquery.fleetIntegration.osqueryConfig.configFieldError": "無効なJSON", + "xpack.osquery.fleetIntegration.osqueryConfig.configFieldLabel": "Osquery構成", + "xpack.osquery.fleetIntegration.osqueryConfig.packConfigFilesErrorMessage": "パック構成ファイルはサポートされていません。これらのパックを削除する必要があります:{packNames}。", + "xpack.osquery.fleetIntegration.osqueryConfig.restrictedOptionsErrorMessage": "次のosqueryオプションはサポートされていないため、削除する必要があります:{restrictedFlags}。", + "xpack.osquery.fleetIntegration.packsButtonText": "パック", "xpack.osquery.fleetIntegration.runLiveQueriesButtonText": "ライブクエリを実行", "xpack.osquery.fleetIntegration.saveIntegrationCalloutTitle": "次のオプションにアクセスするには、統合を保存します", "xpack.osquery.liveQueriesHistory.newLiveQueryButtonLabel": "新しいライブクエリ", "xpack.osquery.liveQueriesHistory.pageTitle": "ライブクエリ履歴", + "xpack.osquery.liveQuery.permissionDeniedPromptBody": "クエリ結果を表示するには、ユーザーロールを更新して、{logs}インデックスに対する{read}権限を付与するように、管理者に依頼してください。", + "xpack.osquery.liveQuery.permissionDeniedPromptTitle": "パーミッションが拒否されました", "xpack.osquery.liveQuery.queryForm.largeQueryError": "クエリが大きすぎます(最大{maxLength}文字)", "xpack.osquery.liveQueryActionResults.summary.expiredLabelText": "期限切れ", "xpack.osquery.liveQueryActionResults.summary.failedLabelText": "失敗", @@ -18758,24 +19740,90 @@ "xpack.osquery.liveQueryForm.steps.queryStepHeading": "クエリを入力", "xpack.osquery.liveQueryForm.steps.resultsStepHeading": "結果を確認", "xpack.osquery.liveQueryResults.table.agentColumnTitle": "エージェント", + "xpack.osquery.liveQueryResults.table.fieldMappedLabel": "フィールドは以下にマッピングされています", "xpack.osquery.newLiveQuery.pageTitle": "新しいライブクエリ", "xpack.osquery.newLiveQuery.viewLiveQueriesHistoryTitle": "ライブクエリ履歴を表示", + "xpack.osquery.newPack.successToastMessageText": "\"{packName}\"パックが正常に作成されました", "xpack.osquery.newSavedQuery.successToastMessageText": "\"{savedQueryId}\"クエリが正常に保存されました", "xpack.osquery.osquery_integration.fetchError": "osquery統合の取得中にエラーが発生しました", "xpack.osquery.osquery_policies.fetchError": "osqueryポリシーの取得中にエラーが発生しました", "xpack.osquery.osquerySchemaLinkLabel": "Osqueryスキーマ", + "xpack.osquery.pack.form.agentPoliciesFieldLabel": "エージェントポリシー", + "xpack.osquery.pack.form.cancelButtonLabel": "キャンセル", + "xpack.osquery.pack.form.descriptionFieldLabel": "説明", + "xpack.osquery.pack.form.ecsMappingSection.description": "次のフィールドを使用して、このクエリの結果をECSフィールドにマッピングします。", + "xpack.osquery.pack.form.ecsMappingSection.title": "ECSマッピング", + "xpack.osquery.pack.form.nameFieldLabel": "名前", + "xpack.osquery.pack.form.nameFieldRequiredErrorMessage": "名前は必須フィールドです", + "xpack.osquery.pack.form.savePackButtonLabel": "パックの保存", + "xpack.osquery.pack.form.updatePackButtonLabel": "パックの更新", + "xpack.osquery.pack.queriesForm.addQueryButtonLabel": "クエリを追加", + "xpack.osquery.pack.queriesTable.actionsColumnTitle": "アクション", + "xpack.osquery.pack.queriesTable.deleteActionAriaLabel": "{queryName}を削除", + "xpack.osquery.pack.queriesTable.editActionAriaLabel": "{queryName}を編集", + "xpack.osquery.pack.queriesTable.idColumnTitle": "ID", + "xpack.osquery.pack.queriesTable.intervalColumnTitle": "間隔", + "xpack.osquery.pack.queriesTable.lastResultsColumnTitle": "前回の結果", + "xpack.osquery.pack.queriesTable.osqueryVersionAllLabel": "すべて", + "xpack.osquery.pack.queriesTable.platformColumnTitle": "プラットフォーム", + "xpack.osquery.pack.queriesTable.queryColumnTitle": "クエリ", + "xpack.osquery.pack.queriesTable.versionColumnTitle": "最低Osqueryバージョン", + "xpack.osquery.pack.queriesTable.viewDiscoverResultsActionAriaLabel": "Discoverに表示", + "xpack.osquery.pack.queriesTable.viewLensResultsActionAriaLabel": "Lensで表示", + "xpack.osquery.pack.queriesTable.viewLogsErrorsActionAriaLabel": "Logsで表示", + "xpack.osquery.pack.queriesTable.viewResultsColumnTitle": "結果を表示", + "xpack.osquery.pack.queryFlyoutForm.cancelButtonLabel": "キャンセル", + "xpack.osquery.pack.queryFlyoutForm.deleteECSMappingRowButtonAriaLabel": "ECSマッピング行を削除", + "xpack.osquery.pack.queryFlyoutForm.descriptionFieldLabel": "説明", + "xpack.osquery.pack.queryFlyoutForm.ecsFieldRequiredErrorMessage": "ECSフィールドは必須です。", + "xpack.osquery.pack.queryFlyoutForm.emptyIdError": "IDが必要です", + "xpack.osquery.pack.queryFlyoutForm.emptyQueryError": "クエリは必須フィールドです", + "xpack.osquery.pack.queryFlyoutForm.idFieldLabel": "ID", + "xpack.osquery.pack.queryFlyoutForm.intervalFieldLabel": "間隔", + "xpack.osquery.pack.queryFlyoutForm.invalidIdError": "文字は英数字、_、または-でなければなりません", + "xpack.osquery.pack.queryFlyoutForm.invalidIntervalField": "正の間隔値が必要です", + "xpack.osquery.pack.queryFlyoutForm.osqueryResultFieldRequiredErrorMessage": "Osquery結果は必須です。", + "xpack.osquery.pack.queryFlyoutForm.osqueryResultFieldValueMissingErrorMessage": "現在のクエリは{columnName}フィールドを返しません", + "xpack.osquery.pack.queryFlyoutForm.platformFieldLabel": "プラットフォーム", + "xpack.osquery.pack.queryFlyoutForm.platformLinusLabel": "macOS", + "xpack.osquery.pack.queryFlyoutForm.platformMacOSLabel": "Linux", + "xpack.osquery.pack.queryFlyoutForm.platformWindowsLabel": "Windows", + "xpack.osquery.pack.queryFlyoutForm.queryFieldLabel": "クエリ", + "xpack.osquery.pack.queryFlyoutForm.saveButtonLabel": "保存", + "xpack.osquery.pack.queryFlyoutForm.uniqueIdError": "IDは一意でなければなりません", + "xpack.osquery.pack.queryFlyoutForm.versionFieldLabel": "最低Osqueryバージョン", + "xpack.osquery.pack.table.activatedSuccessToastMessageText": "\"{packName}\"が正常にアクティブ化されました", + "xpack.osquery.pack.table.deactivatedSuccessToastMessageText": "\"{packName}\"が正常に非アクティブ化されました", + "xpack.osquery.packDetails.pageTitle": "{queryName}詳細", + "xpack.osquery.packDetails.viewAllPackListTitle": "すべてのパックを表示", + "xpack.osquery.packDetailsPage.editQueryButtonLabel": "編集", + "xpack.osquery.packDetailsPage.kpis.policiesLabelText": "ポリシー", + "xpack.osquery.packList.addPackButtonLabel": "パックの追加", + "xpack.osquery.packList.pageTitle": "パック", + "xpack.osquery.packs.table.activeColumnTitle": "アクティブ", + "xpack.osquery.packs.table.createdByColumnTitle": "作成者", + "xpack.osquery.packs.table.nameColumnTitle": "名前", + "xpack.osquery.packs.table.numberOfQueriesColumnTitle": "クエリ数", + "xpack.osquery.packs.table.policyColumnTitle": "ポリシー", "xpack.osquery.packUploader.examplePacksLinkLabel": "パックの例", "xpack.osquery.packUploader.initialPromptTextLabel": "osqueryパック構成ファイルを選択するか、ドラッグします", "xpack.osquery.packUploader.unsupportedFileTypeText": "ファイルタイプ{fileType}はサポートされていません。{supportedFileTypes}構成ファイルをアップロードしてください", "xpack.osquery.permissionDeniedErrorMessage": "このページへのアクセスが許可されていません。", "xpack.osquery.permissionDeniedErrorTitle": "パーミッションが拒否されました", + "xpack.osquery.queriesTable.osqueryVersionAllLabel": "すべて", "xpack.osquery.queryFlyoutForm.addFormTitle": "次のクエリを関連付ける", + "xpack.osquery.queryFlyoutForm.cancelButtonLabel": "キャンセル", "xpack.osquery.queryFlyoutForm.editFormTitle": "クエリの編集", + "xpack.osquery.queryFlyoutForm.saveButtonLabel": "保存", + "xpack.osquery.queryFlyoutForm.versionFieldOptionalLabel": "(オプション)", + "xpack.osquery.queryPlaygroundFlyout.title": "クエリのテスト", "xpack.osquery.results.errorSearchDescription": "すべての結果検索でエラーが発生しました", "xpack.osquery.results.failSearchDescription": "結果を取得できませんでした", "xpack.osquery.results.fetchError": "結果の取得中にエラーが発生しました", "xpack.osquery.savedQueries.dropdown.searchFieldLabel": "保存されたクエリから構築(任意)", "xpack.osquery.savedQueries.dropdown.searchFieldPlaceholder": "保存されたクエリの検索", + "xpack.osquery.savedQueries.form.packConfigSection.description": "次のリストのオプションは任意であり、クエリがパックに割り当てられるときにのみ適用されます。", + "xpack.osquery.savedQueries.form.packConfigSection.title": "パック構成", "xpack.osquery.savedQueries.table.actionsColumnTitle": "アクション", "xpack.osquery.savedQueries.table.createdByColumnTitle": "作成者", "xpack.osquery.savedQueries.table.descriptionColumnTitle": "説明", @@ -18786,6 +19834,9 @@ "xpack.osquery.savedQueryList.pageTitle": "保存されたクエリ", "xpack.osquery.savedQueryList.queriesTable.editActionAriaLabel": "{savedQueryName}を編集", "xpack.osquery.savedQueryList.queriesTable.runActionAriaLabel": "{savedQueryName}を実行", + "xpack.osquery.scheduledQueryErrorsTable.agentIdColumnTitle": "エージェントID", + "xpack.osquery.scheduledQueryErrorsTable.errorColumnTitle": "エラー", + "xpack.osquery.updatePack.successToastMessageText": "\"{packName}\"が正常に更新されました", "xpack.osquery.viewSavedQuery.pageTitle": "\"{savedQueryId}\" details", "xpack.painlessLab.apiReferenceButtonLabel": "API リファレンス", "xpack.painlessLab.context.defaultLabel": "スクリプト結果は文字列に変換されます", @@ -18799,8 +19850,6 @@ "xpack.painlessLab.contextScoreLabel": "スコア", "xpack.painlessLab.contextTabLabel": "コンテキスト", "xpack.painlessLab.displayName": "Painless Lab", - "xpack.painlessLab.displayNameBetaLabel": "ベータ", - "xpack.painlessLab.displayNameBetaTooltipText": "この機能は将来のリリースで大幅に変更される可能性があります", "xpack.painlessLab.documentFieldLabel": "サンプルドキュメント(JSON)", "xpack.painlessLab.documentFieldTooltipText": "スクリプトでこのドキュメントのフィールドにアクセスできます", "xpack.painlessLab.flyoutDocLink": "API ドキュメンテーション", @@ -18845,6 +19894,10 @@ "xpack.remoteClusters.connectedStatus.notConnectedToolTip": "シードノードが HTTP ポートではなくリモートクラスターのトランスポートポートで構成されていることを確認してください。", "xpack.remoteClusters.deleteRemoteCluster.noRemoteClusterErrorMessage": "その名前のリモートクラスターはありません。", "xpack.remoteClusters.deleteRemoteCluster.unknownRemoteClusterErrorMessage": "まだ ES から情報が返るのでクラスターを削除できません。", + "xpack.remoteClusters.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "xpack.remoteClusters.deprecations.enabled.manualStepTwoMessage": "「xpack.remote_clusters.enabled」設定を「xpack.remote_clusters.ui.enabled」に変更します。", + "xpack.remoteClusters.deprecations.enabledMessage": "ユーザーがリモートクラスターUIにアクセスすることを禁止するには、「xpack.remote_clusters.enabled」ではなく、「xpack.remote_clusters.ui.enabled」設定を使用します。", + "xpack.remoteClusters.deprecations.enabledTitle": "「xpack.remote_clusters.enabled」設定は廃止予定です", "xpack.remoteClusters.detailPanel.closeButtonLabel": "閉じる", "xpack.remoteClusters.detailPanel.connectedLabel": "接続", "xpack.remoteClusters.detailPanel.connectedNodesLabel": "接続済みのノード", @@ -18985,7 +20038,7 @@ "xpack.reporting.apiClient.unknownError": "レポートジョブ{job}が失敗しました。不明なエラーです。", "xpack.reporting.breadcrumb": "レポート", "xpack.reporting.browsers.chromium.errorDetected": "レポートでエラーが発生しました:{err}", - "xpack.reporting.browsers.chromium.pageErrorDetected": "ページでレポートエラーが発生しました:{err}", + "xpack.reporting.browsers.chromium.pageErrorDetected": "レポートのページで処理されていないエラーが発生し、無視されるます:{err}", "xpack.reporting.chromiumDriver.disallowedOutgoingUrl": "許可されていない送信URLを受信しました:「{interceptedUrl}」。要求が失敗しています。ブラウザーを終了しています。", "xpack.reporting.chromiumDriver.failedToCompleteRequest": "リクエストを完了できませんでした:{error}", "xpack.reporting.chromiumDriver.failedToCompleteRequestUsingHeaders": "ヘッダーを使用してリクエストを完了できませんでした:{error}", @@ -18996,12 +20049,36 @@ "xpack.reporting.dashboard.failedCsvDownloadTitle": "CSV のダウンロードに失敗", "xpack.reporting.deprecations.migrateIndexIlmPolicy.manualStepOneMessage": "インデックス設定APIを使用して、すべてのレポートインデックスを更新し、\"{reportingIlmPolicy}\"ポリシーを使用します。", "xpack.reporting.deprecations.migrateIndexIlmPolicyActionMessage": "新しいレポートインデックスは\"{reportingIlmPolicy}\"がプロビジョニングしたILMポリシーによって管理されます。レポートライフサイクルを管理するには、このポリシーを編集する必要があります。この変更は\"{indexPattern}\"というプレフィックスが付いたすべてのインデックスが対象です。", + "xpack.reporting.deprecations.migrateIndexIlmPolicyActionTitle": "カスタムILMポリシーで管理されたレポートインデックスが見つかりました。", + "xpack.reporting.deprecations.reportingRole.forbiddenErrorCorrectiveAction": "「manage_security」クラスター権限が割り当てられていることを確認してください。", + "xpack.reporting.deprecations.reportingRole.forbiddenErrorMessage": "この廃止予定を修正する十分な権限がありません。", + "xpack.reporting.deprecations.reportingRole.unknownErrorCorrectiveAction": "詳細については、Kibanaログを確認してください。", + "xpack.reporting.deprecations.reportingRole.unknownErrorMessage": "廃止予定チェックを実行できませんでした。詳細については、Kibanaログを確認してください。", + "xpack.reporting.deprecations.reportingRoleMappings.manualStepFour": "すべてのロールマッピングから\"reporting_user\"ロールを削除し、カスタムロールを追加します。影響を受けるロールマッピング:{roleMappings}。", + "xpack.reporting.deprecations.reportingRoleMappings.manualStepOne": "kibana.ymlで「xpack.reporting.roles.enabled: false」を設定します。", + "xpack.reporting.deprecations.reportingRoleMappings.manualStepThree": "レポートへのアクセス権を付与するには、Kibana権限のあるカスタムロールを作成します。", + "xpack.reporting.deprecations.reportingRoleMappings.manualStepTwo": "存在する場合は、kibana.ymlで「xpack.reporting.roles.allow」を削除します。", + "xpack.reporting.deprecations.reportingRoleMappingsMessage": "既存のロールはレポート権限の廃止予定のロールにマッピングされています", + "xpack.reporting.deprecations.reportingRoleMappingsTitle": "\"{reportingUserRoleName}\"ロールは廃止予定です。ロールマッピングを確認してください", + "xpack.reporting.deprecations.reportingRoles.description": "Kibanaアプリケーション権限を使用して、レポート権限を付与します。\"{fromPath}.roles.allow\"を使用したレポート権限の付与は廃止予定です。今後のリリースでは、\"{fromPath}.roles.enabled\"設定のデフォルトはfalseです。", + "xpack.reporting.deprecations.reportingRoles.manualStepOne": "kibana.ymlで「xpack.reporting.roles.enabled」をfalseに設定します。", + "xpack.reporting.deprecations.reportingRoles.manualStepOnePartOne": "存在する場合は、kibana.ymlで「xpack.reporting.roles.allow」をfalseに設定します。", + "xpack.reporting.deprecations.reportingRoles.manualStepThree": "新しいロールのいずれかを割り当てて、レポート権限をユーザーに付与します。「xpack.reporting.roles.allow」で指定されたレポートロールが割り当てられたユーザーにはレポート権限がなくなります。アプリケーション権限に基づくロールを割り当てる必要があります。", + "xpack.reporting.deprecations.reportingRoles.manualStepTwo": "**[管理]>[セキュリティ]>[ロール]**から、レポートのKibanaアプリケーション権限を付与する1つ以上のロールを作成します。", + "xpack.reporting.deprecations.reportingRoles.title": "\"{fromPath}.roles\"設定は廃止予定です", + "xpack.reporting.deprecations.reportingRoleUsers.manualStepFour": "すべてのユーザーから「reporting_user」ロールを削除し、カスタムロールを追加します。影響を受けるユーザー:{usersRoles}。", + "xpack.reporting.deprecations.reportingRoleUsers.manualStepOne": "kibana.ymlで「xpack.reporting.roles.enabled: false」を設定します。", + "xpack.reporting.deprecations.reportingRoleUsers.manualStepThree": "レポートへのアクセス権を付与するには、Kibana権限のあるカスタムロールを作成します。", + "xpack.reporting.deprecations.reportingRoleUsers.manualStepTwo": "存在する場合は、kibana.ymlで「xpack.reporting.roles.allow」を削除します。", + "xpack.reporting.deprecations.reportingRoleUsersMessage": "既存のユーザーには廃止予定の設定によって付与されたレポート権限があります。", + "xpack.reporting.deprecations.reportingRoleUsersTitle": "\"{reportingUserRoleName}\"ロールは廃止予定です。ユーザーロールを確認してください", "xpack.reporting.diagnostic.browserCrashed": "ブラウザーは起動中に異常終了しました", "xpack.reporting.diagnostic.browserErrored": "ブラウザープロセスは起動中にエラーが発生しました", "xpack.reporting.diagnostic.browserMissingDependency": "システム依存関係が不足しているため、ブラウザーを正常に起動できませんでした。{url}を参照してください", "xpack.reporting.diagnostic.browserMissingFonts": "ブラウザーはデフォルトフォントを検索できませんでした。この問題を修正するには、{url}を参照してください。", "xpack.reporting.diagnostic.noUsableSandbox": "Chromiumサンドボックスを使用できません。これは「xpack.reporting.capture.browser.chromium.disableSandbox」で無効にすることができます。この作業はご自身の責任で行ってください。{url}を参照してください", "xpack.reporting.diagnostic.screenshotFailureMessage": "Kibanaインストールのスクリーンショットを作成できませんでした。", + "xpack.reporting.errorHandler.unknownError": "不明なエラー", "xpack.reporting.exportTypes.common.failedToDecryptReportJobDataErrorMessage": "レポートジョブデータの解読に失敗しました。{encryptionKey}が設定されていることを確認してこのレポートを再生成してください。{err}", "xpack.reporting.exportTypes.common.missingJobHeadersErrorMessage": "ジョブヘッダーがありません", "xpack.reporting.exportTypes.csv.executeJob.dateFormateSetting": "Kibana の高度な設定「{dateFormatTimezone}」が「ブラウザー」に設定されています。あいまいさを避けるために日付は UTC 形式に変換されます。", @@ -19012,6 +20089,7 @@ "xpack.reporting.exportTypes.printablePdf.logoDescription": "Elastic 提供", "xpack.reporting.exportTypes.printablePdf.pagingDescription": "{pageCount} ページ中 {currentPage} ページ目", "xpack.reporting.jobsQuery.deleteError": "レポートを削除できません:{error}", + "xpack.reporting.jobsQuery.infoError.unauthorizedErrorMessage": "{jobType}情報を表示する権限がありません", "xpack.reporting.jobStatusDetail.attemptXofY": "{attempts}/{max_attempts}回試行します。", "xpack.reporting.jobStatusDetail.deprecatedText": "これは廃止予定のエクスポートタイプです。将来のバージョンのKibanaとの互換性のためには、このレポートの自動化を再作成する必要があります。", "xpack.reporting.jobStatusDetail.errorText": "エラー詳細についてはレポート情報を参照してください。", @@ -19096,6 +20174,11 @@ "xpack.reporting.panelContent.saveWorkDescription": "レポートの生成前に変更内容を保存してください。", "xpack.reporting.panelContent.successfullyQueuedReportNotificationDescription": "{path}で進捗状況を追跡", "xpack.reporting.panelContent.successfullyQueuedReportNotificationTitle": "{objectType} のレポートキュー", + "xpack.reporting.panelContent.unsavedStateAndExceedsMaxLengthDescription": "このURLはコピーできません。", + "xpack.reporting.panelContent.unsavedStateAndExceedsMaxLengthTitle": "URLが長すぎます", + "xpack.reporting.panelContent.unsavedStateAndExceedsMaxLengthTrySaveDescription": "このURLはコピーできません。作業内容を保存してください。", + "xpack.reporting.panelContent.unsavedStateErrorText": "このURLをコピーする前に作業内容を保存してください。", + "xpack.reporting.panelContent.unsavedStateErrorTitle": "保存されていない作業内容", "xpack.reporting.pdfFooterImageDescription": "PDFのフッターに使用するカスタム画像です", "xpack.reporting.pdfFooterImageLabel": "PDFフッター画像", "xpack.reporting.publicNotifier.csvContainsFormulas.formulaReportMessage": "レポートには、スプレッドシートアプリケーションで式と解釈される可能性のある文字が含まれています。", @@ -19118,10 +20201,14 @@ "xpack.reporting.registerFeature.reportingDescription": "Discover、可視化、ダッシュボードから生成されたレポートを管理します。", "xpack.reporting.registerFeature.reportingTitle": "レポート", "xpack.reporting.screencapture.browserWasClosed": "ブラウザーは予期せず終了しました。詳細については、サーバーログを確認してください。", + "xpack.reporting.screencapture.couldntFinishRendering": "{count} 件のビジュアライゼーションのレンダリングが完了するのを待つ間にエラーが発生しました。{error}", + "xpack.reporting.screencapture.couldntLoadKibana": "Kibana URLを開こうとするときにエラーが発生しました:{error}", "xpack.reporting.screencapture.injectCss": "Kibana CSS をレポート用に更新しようとしたときにエラーが発生しました。{error}", "xpack.reporting.screencapture.injectingCss": "カスタム css の投入中", "xpack.reporting.screencapture.logWaitingForElements": "要素または項目のカウント属性を待ち、または見つからないため中断", "xpack.reporting.screencapture.noElements": "ビジュアライゼーションパネルのページを読み取る間にエラーが発生しました:パネルが見つかりませんでした。", + "xpack.reporting.screencapture.readVisualizationsError": "ビジュアライゼーションパネル情報のページを読み取ろうとしたときにエラーが発生しました:{error}", + "xpack.reporting.screencapture.renderErrorsFound": "{count}件のエラーメッセージが見つかりました。詳細については、レポートオブジェクトを参照してください。", "xpack.reporting.screencapture.renderIsComplete": "レンダリングが完了しました", "xpack.reporting.screencapture.screenshotsTaken": "撮影したスクリーンショット:{numScreenhots}", "xpack.reporting.screencapture.takingScreenshots": "スクリーンショットの撮影中", @@ -19269,6 +20356,10 @@ "xpack.rollupJobs.deleteAction.errorTitle": "ロールアップジョブの削除中にエラーが発生", "xpack.rollupJobs.deleteAction.successMultipleNotificationTitle": "{count} 件のロールアップジョブが削除されました", "xpack.rollupJobs.deleteAction.successSingleNotificationTitle": "ロールアップジョブ「{jobId}」が削除されました", + "xpack.rollupJobs.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "xpack.rollupJobs.deprecations.enabled.manualStepTwoMessage": "「xpack.rollup.enabled」設定を「xpack.rollup.ui.enabled」に変更します。", + "xpack.rollupJobs.deprecations.enabledMessage": "ユーザーがロールアップジョブUIにアクセスすることを禁止するには、「xpack.rollup.enabled」ではなく、「xpack.rollup.ui.enabled」設定を使用します。", + "xpack.rollupJobs.deprecations.enabledTitle": "「xpack.rollup.enabled」設定は廃止予定です", "xpack.rollupJobs.detailPanel.jobActionMenu.buttonLabel": "管理", "xpack.rollupJobs.detailPanel.loadingLabel": "ロールアップジョブを読み込み中...", "xpack.rollupJobs.detailPanel.notFoundLabel": "ロールアップジョブが見つかりません", @@ -19511,10 +20602,29 @@ "xpack.security.conflictingSessionError": "申し訳ありません。すでに有効なKibanaセッションがあります。新しいセッションを開始する場合は、先に既存のセッションからログアウトしてください。", "xpack.security.copyTokenField.copyButton": "クリップボードにコピー", "xpack.security.copyTokenField.tokenLabel": "トークン", + "xpack.security.deprecations.authcProviders.manualSteps1": "kibana.ymlから「xpack.security.authc.providers」設定を削除します。", + "xpack.security.deprecations.authcProviders.manualSteps2": "新しいオブジェクト形式を使用して、認証プロバイダーを追加します。", + "xpack.security.deprecations.authcProvidersMessage": "配列のプロバイダータイプではなく、新しいオブジェクト形式を使用します。", + "xpack.security.deprecations.authcProvidersTitle": "「xpack.security.authc.providers」の配列形式は廃止予定です", + "xpack.security.deprecations.basicAndTokenProviders.manualSteps1": "kibana.ymlの「xpack.security.authc.providers」から\"{basicProvider}\"を削除します。", + "xpack.security.deprecations.basicAndTokenProvidersMessage": "これらのプロバイダーのいずれかのみを使用します。両方のプロバイダーが設定されているときには、\"{tokenProvider}\"プロバイダーのみがKibanaで使用されます。", + "xpack.security.deprecations.basicAndTokenProvidersTitle": "「xpack.security.authc.providers」で\"{basicProvider}\"および\"{tokenProvider}\"プロバイダーの両方を使用しても効果はありません", + "xpack.security.deprecations.kibanaUser.deprecationMessage": "すべてのスペースですべてのKibana機能へのアクセス権を付与するには、\"{adminRoleName}\"ロールを使用します。", + "xpack.security.deprecations.kibanaUser.deprecationTitle": "\"{userRoleName}\"ロールは廃止予定です", + "xpack.security.deprecations.kibanaUser.forbiddenErrorCorrectiveAction": "「manage_security」クラスター権限が割り当てられていることを確認してください。", + "xpack.security.deprecations.kibanaUser.forbiddenErrorMessage": "この廃止予定を修正する十分な権限がありません。", + "xpack.security.deprecations.kibanaUser.roleMappingsDeprecationCorrectiveAction": "すべてのロールマッピングから\"{userRoleName}\"ロールを削除し、\"{adminRoleName}\"ロールを追加します。影響を受けるロールマッピング:{roleMappings}。", + "xpack.security.deprecations.kibanaUser.unknownErrorCorrectiveAction": "詳細については、Kibanaログを確認してください。", + "xpack.security.deprecations.kibanaUser.unknownErrorMessage": "廃止予定チェックを実行できませんでした。詳細については、Kibanaログを確認してください。", + "xpack.security.deprecations.kibanaUser.usersDeprecationCorrectiveAction": "すべてのユーザーから\"{userRoleName}\"ロールを削除し、\"{adminRoleName}\"ロールを追加します。影響を受けるユーザー:{users}。", + "xpack.security.deprecations.maxRedirectURLSize.manualSteps1": "kibana.ymlから「xpack.security.authc.providers.saml.<provider-name>.maxRedirectURLSize」を削除します。", + "xpack.security.deprecations.maxRedirectURLSizeMessage": "この設定は使用されません。", + "xpack.security.deprecations.maxRedirectURLSizeTitle": "\"xpack.security.authc.providers.saml.<provider-name>.maxRedirectURLSize\" has no effect", "xpack.security.formFlyout.cancelButton": "キャンセル", "xpack.security.loggedOut.login": "ログイン", "xpack.security.loggedOut.title": "ログアウト完了", "xpack.security.loggedOutAppTitle": "ログアウト", + "xpack.security.login.authenticationErrorDescription": "予期しない認証エラーが発生しました。もう一度ログインしてください。", "xpack.security.login.basicLoginForm.logInButtonLabel": "ログイン", "xpack.security.login.basicLoginForm.passwordFormRowLabel": "パスワード", "xpack.security.login.basicLoginForm.unknownErrorMessage": "ログインできませんでした。再試行してください。", @@ -19835,7 +20945,6 @@ "xpack.security.management.roleMappings.rolesColumnName": "ロール", "xpack.security.management.roleMappingsTitle": "ロールマッピング", "xpack.security.management.roles.actionsColumnName": "アクション", - "xpack.security.management.roles.cloneRoleActionName": "{roleName} を複製", "xpack.security.management.roles.confirmDelete.cancelButtonLabel": "キャンセル", "xpack.security.management.roles.confirmDelete.deleteButtonLabel": "削除", "xpack.security.management.roles.confirmDelete.removingRolesDescription": "これらのロールを削除しようとしています:", @@ -19846,7 +20955,6 @@ "xpack.security.management.roles.deleteSelectedRolesButtonLabel": "ロール {numSelected} {numSelected, plural, one { } other {}} を削除しました", "xpack.security.management.roles.deletingRolesWarningMessage": "この操作は元に戻すことができません。", "xpack.security.management.roles.deniedPermissionTitle": "ロールを管理するにはパーミッションが必要です", - "xpack.security.management.roles.editRoleActionName": "{roleName} を編集", "xpack.security.management.roles.fetchingRolesErrorMessage": "ロールの取得中にエラーが発生:{message}", "xpack.security.management.roles.nameColumnName": "ロール", "xpack.security.management.roles.noIndexPatternsPermission": "利用可能なインデックスパターンのリストへのアクセス権が必要です。", @@ -19981,6 +21089,10 @@ "xpack.security.overwrittenSession.continueAsUserText": "{username} として続行", "xpack.security.overwrittenSession.title": "以前別のユーザー名でログインしました。", "xpack.security.overwrittenSessionAppTitle": "上書きされたセッション", + "xpack.security.privilegeDeprecationsService.error.retrievingRoles.message": "権限廃止予定のロールの取得エラー:{message}", + "xpack.security.privilegeDeprecationsService.error.title": "権限廃止予定サービスのエラー", + "xpack.security.privilegeDeprecationsService.error.unauthorized.message": "ロールの廃止予定を修正するには、「manage_security」クラスター権限が必要です。", + "xpack.security.privilegeDeprecationsService.manualSteps.message": "「manage_security」クラスター権限が割り当てられたユーザーは、このチェックを実行する必要があります。", "xpack.security.registerFeature.securitySettingsDescription": "アクセスできるユーザーと、ユーザーが実行できるタスクを制御します。", "xpack.security.registerFeature.securitySettingsTitle": "アクセス権の管理", "xpack.security.resetSession.description": "前のページに戻るか、別のユーザーでログインします。", @@ -20004,6 +21116,7 @@ "xpack.security.users.breadcrumb": "ユーザー", "xpack.security.users.editUserPage.createBreadcrumb": "作成", "xpack.securitySolution.accessibility.tooltipWithKeyboardShortcut.pressTooltipLabel": "プレス", + "xpack.securitySolution.actionsContextMenu.label": "開く", "xpack.securitySolution.add_filter_to_global_search_bar.filterForValueHoverAction": "値でフィルター", "xpack.securitySolution.add_filter_to_global_search_bar.filterOutValueHoverAction": "値を除外", "xpack.securitySolution.administration.list.beta": "ベータ", @@ -20020,8 +21133,13 @@ "xpack.securitySolution.alertDetails.noIndicatorEnrichmentsDescription": "指標一致ルールに適合する脅威インテリジェンス指標が見つかりませんでした。", "xpack.securitySolution.alertDetails.noInvestigationEnrichmentsDescription": "デフォルトで過去30日間に検索した脅威インテリジェンスソースから使用可能な追加情報がフィールド値にはないことがわかりました。", "xpack.securitySolution.alertDetails.noInvestigationEnrichmentsTitle": "Threat Intel Enrichmentが見つかりません", + "xpack.securitySolution.alertDetails.noRiskDataDescription": "このアラートのホストリスクデータが見つかりません", "xpack.securitySolution.alertDetails.overview": "概要", "xpack.securitySolution.alertDetails.overview.documentSummary": "ドキュメント概要", + "xpack.securitySolution.alertDetails.overview.enrichedDataTitle": "強化されたデータ", + "xpack.securitySolution.alertDetails.overview.hostDataTooltipContent": "リスク分類は、ホストで使用可能なときにのみ表示されます。環境内で{hostsRiskScoreDocumentationLink}が有効であることを確認してください。", + "xpack.securitySolution.alertDetails.overview.hostRiskDataTitle": "ホストリスクデータ", + "xpack.securitySolution.alertDetails.overview.hostsRiskScoreLink": "ホストリスクスコア", "xpack.securitySolution.alertDetails.overview.investigationGuide": "調査ガイド", "xpack.securitySolution.alertDetails.refresh": "更新", "xpack.securitySolution.alertDetails.summary.readLess": "表示を減らす", @@ -20063,6 +21181,29 @@ "xpack.securitySolution.anomaliesTable.table.anomaliesDescription": "異常", "xpack.securitySolution.anomaliesTable.table.anomaliesTooltip": "異常表はSIEMグローバルKQL検索でフィルタリングできません。", "xpack.securitySolution.anomaliesTable.table.showingDescription": "表示中", + "xpack.securitySolution.artifactCard.comments.label.hide": "コメントを非表示({count})", + "xpack.securitySolution.artifactCard.comments.label.show": "コメントを表示({count})", + "xpack.securitySolution.artifactCard.conditions.and": "AND", + "xpack.securitySolution.artifactCard.conditions.existsOperator": "存在する", + "xpack.securitySolution.artifactCard.conditions.linux": "Linux", + "xpack.securitySolution.artifactCard.conditions.listOperator": "に含まれる", + "xpack.securitySolution.artifactCard.conditions.macos": "Mac", + "xpack.securitySolution.artifactCard.conditions.matchAnyOperator": "はいずれか", + "xpack.securitySolution.artifactCard.conditions.matchOperator": "IS", + "xpack.securitySolution.artifactCard.conditions.nestedOperator": "がある", + "xpack.securitySolution.artifactCard.conditions.os": "OS", + "xpack.securitySolution.artifactCard.conditions.wildcardOperator": "一致", + "xpack.securitySolution.artifactCard.conditions.windows": "Windows", + "xpack.securitySolution.artifactCard.created": "作成済み", + "xpack.securitySolution.artifactCard.createdBy": "作成者", + "xpack.securitySolution.artifactCard.globalEffectScope": "グローバルに適用", + "xpack.securitySolution.artifactCard.lastUpdated": "最終更新", + "xpack.securitySolution.artifactCard.lastUpdatedBy": "更新者", + "xpack.securitySolution.artifactCardGrid.assignmentColumn": "割り当て", + "xpack.securitySolution.artifactCardGrid.DescriptionColumn": "説明", + "xpack.securitySolution.artifactCardGrid.nameColumn": "名前", + "xpack.securitySolution.artifactExpandableCard.collpase": "縮小", + "xpack.securitySolution.artifactExpandableCard.expand": "拡張", "xpack.securitySolution.auditd.abortedAuditStartupDescription": "中断された監査のスタートアップ", "xpack.securitySolution.auditd.accessErrorDescription": "アクセスエラー", "xpack.securitySolution.auditd.accessPermissionDescription": "アクセス権限", @@ -20203,46 +21344,9 @@ "xpack.securitySolution.beatFields.errorSearchDescription": "Beatフィールドの取得でエラーが発生しました", "xpack.securitySolution.beatFields.failSearchDescription": "Beat フィールドで検索を実行できませんでした", "xpack.securitySolution.callouts.dismissButton": "閉じる", - "xpack.securitySolution.cases.allCases.actions": "アクション", - "xpack.securitySolution.cases.allCases.comments": "コメント", - "xpack.securitySolution.cases.badge.readOnly.text": "読み取り専用", - "xpack.securitySolution.cases.badge.readOnly.tooltip": "ケースを作成または編集できません", - "xpack.securitySolution.cases.caseFeatureNoPermissionsMessage": "ケースを表示するには、Kibana スペースでケース機能の権限が必要です。詳細については、Kibana管理者に連絡してください。", - "xpack.securitySolution.cases.caseFeatureNoPermissionsTitle": "Kibana機能権限が必要です", "xpack.securitySolution.cases.caseTable.caseDetailsLinkAria": "クリックすると、タイトル{detailName}のケースを表示します", - "xpack.securitySolution.cases.caseTable.openCases": "ケースを開く", - "xpack.securitySolution.cases.caseView.backLabel": "ケースに戻る", "xpack.securitySolution.cases.caseView.breadcrumb": "作成", - "xpack.securitySolution.cases.caseView.cancel": "キャンセル", - "xpack.securitySolution.cases.caseView.caseName": "ケース名", - "xpack.securitySolution.cases.caseView.closeCase": "ケースを閉じる", - "xpack.securitySolution.cases.caseView.closedOn": "終了日", - "xpack.securitySolution.cases.caseView.connectors": "外部インシデント管理システム", - "xpack.securitySolution.cases.caseView.create": "新規ケースを作成", - "xpack.securitySolution.cases.caseView.createCase": "ケースを作成", - "xpack.securitySolution.cases.caseView.description": "説明", - "xpack.securitySolution.cases.caseView.description.save": "保存", - "xpack.securitySolution.cases.caseView.edit": "編集", - "xpack.securitySolution.cases.caseView.editConnector": "外部インシデント管理システムを変更", - "xpack.securitySolution.cases.caseView.goToDocumentationButton": "ドキュメンテーションを表示", - "xpack.securitySolution.cases.caseView.name": "名前", - "xpack.securitySolution.cases.caseView.noReportersAvailable": "利用可能なレポートがありません。", - "xpack.securitySolution.cases.caseView.noTags": "現在、このケースにタグは割り当てられていません。", - "xpack.securitySolution.cases.caseView.openCase": "ケースを開く", - "xpack.securitySolution.cases.caseView.openedOn": "開始日", - "xpack.securitySolution.cases.caseView.optional": "オプション", - "xpack.securitySolution.cases.caseView.particpantsLabel": "参加者", - "xpack.securitySolution.cases.caseView.reporterLabel": "報告者", "xpack.securitySolution.cases.caseView.sendAlertToTimelineTooltip": "タイムラインで調査", - "xpack.securitySolution.cases.caseView.tags": "タグ", - "xpack.securitySolution.cases.caseView.to": "に", - "xpack.securitySolution.cases.caseView.unknown": "不明", - "xpack.securitySolution.cases.configureCases.headerTitle": "ケースを構成", - "xpack.securitySolution.cases.confirmDeleteCase.deleteCase": "ケースを削除", - "xpack.securitySolution.cases.confirmDeleteCase.deleteCases": "ケースを削除", - "xpack.securitySolution.cases.createCase.descriptionFieldRequiredError": "説明が必要です。", - "xpack.securitySolution.cases.createCase.titleFieldRequiredError": "タイトルが必要です。", - "xpack.securitySolution.cases.dismissErrorsPushServiceCallOutTitle": "閉じる", "xpack.securitySolution.cases.pageTitle": "ケース", "xpack.securitySolution.certificate.fingerprint.clientCertLabel": "クライアント証明書", "xpack.securitySolution.certificate.fingerprint.serverCertLabel": "サーバー証明書", @@ -20254,9 +21358,6 @@ "xpack.securitySolution.clipboard.copy": "コピー", "xpack.securitySolution.clipboard.copy.to.the.clipboard": "クリップボードにコピー", "xpack.securitySolution.clipboard.to.the.clipboard": "クリップボードに", - "xpack.securitySolution.common.alertAddedToCase": "ケースに追加しました", - "xpack.securitySolution.common.alertLabel": "アラート", - "xpack.securitySolution.common.allCases.table.selectableMessageCollections": "ケースとサブケースを選択することはできません", "xpack.securitySolution.components.embeddables.embeddedMap.clientLayerLabel": "クライアントポイント", "xpack.securitySolution.components.embeddables.embeddedMap.destinationLayerLabel": "デスティネーションポイント", "xpack.securitySolution.components.embeddables.embeddedMap.embeddableHeaderHelp": "マップ構成ヘルプ", @@ -20345,6 +21446,7 @@ "xpack.securitySolution.containers.detectionEngine.tagFetchFailDescription": "タグを取得できませんでした", "xpack.securitySolution.containers.errors.stopJobFailureTitle": "ジョブ停止エラー", "xpack.securitySolution.containers.transforms.errorCreatingTransformsLabel": "変換を作成できませんでした", + "xpack.securitySolution.contextMenuItemByRouter.viewDetails": "詳細を表示", "xpack.securitySolution.customizeEventRenderers.customizeEventRenderersDescription": "イベントレンダラーは、イベントで最も関連性が高い詳細情報を自動的に表示し、ストーリーを明らかにします", "xpack.securitySolution.customizeEventRenderers.customizeEventRenderersTitle": "イベントレンダラーのカスタマイズ", "xpack.securitySolution.customizeEventRenderers.disableAllRenderersButtonLabel": "すべて無効にする", @@ -20433,6 +21535,7 @@ "xpack.securitySolution.detectionEngine.components.allRules.refreshPromptConfirm": "続行", "xpack.securitySolution.detectionEngine.components.allRules.refreshPromptTitle": "応答してください。", "xpack.securitySolution.detectionEngine.components.importRuleModal.cancelTitle": "キャンセル", + "xpack.securitySolution.detectionEngine.components.importRuleModal.importFailedDetailedTitle": "{message}", "xpack.securitySolution.detectionEngine.components.importRuleModal.importRuleTitle": "ルールのインポート", "xpack.securitySolution.detectionEngine.components.importRuleModal.initialPromptTextDescription": "有効なrules_export.ndjsonファイルを選択するか、ドラッグしてドロップします", "xpack.securitySolution.detectionEngine.components.importRuleModal.overwriteDescription": "競合するルールIDで既存の検出を上書き", @@ -20582,10 +21685,14 @@ "xpack.securitySolution.detectionEngine.eqlValidation.title": "EQL確認エラー", "xpack.securitySolution.detectionEngine.goToDocumentationButton": "ドキュメンテーションを表示", "xpack.securitySolution.detectionEngine.lastSignalTitle": "前回のアラート", - "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.cannotEditAlerts": "これらの権限がない場合は、アラートを開いたり閉じたりできません。", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.cannotEditAlerts": "これらの権限がないと、アラートのステータスを表示または変更できません。", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.cannotEditLists": "これらの権限がない場合は、値リストを作成したり編集したりできません。", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.cannotEditRules": "その権限がない場合、検出エンジンルールを作製したり編集したりできません。", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.essenceDescription": "この機能のすべてにアクセスするには、次の権限が必要です。サポートについては、管理者にお問い合わせください。", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.featurePrivilegesTitle": "Kibana機能権限がありません。", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.indexPrivilegesTitle": "Elasticsearchインデックス権限がありません。", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.messageDetail": "{essence} {indexPrivileges} {featurePrivileges}関連ドキュメント:{docs}", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.missingFeaturePrivileges": "{index}機能の{privileges}権限が不足しています。{explanation}", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.missingIndexPrivileges": "{index}インデックスの{privileges}権限が不足しています。{explanation}", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageTitle": "権限が不十分です", "xpack.securitySolution.detectionEngine.mitreAttack.addSubtechniqueTitle": "サブ手法を追加", @@ -21189,6 +22296,8 @@ "xpack.securitySolution.detectionEngine.noApiIntegrationKeyCallOutMsg": "Kibanaを起動するごとに保存されたオブジェクトの新しい暗号化キーを作成します。永続キーがないと、Kibanaの再起動後にルールを削除または修正することができません。永続キーを設定するには、kibana.ymlファイルに32文字以上のテキスト値を付けてxpack.encryptedSavedObjects.encryptionKey設定を追加してください。", "xpack.securitySolution.detectionEngine.noApiIntegrationKeyCallOutTitle": "API統合キーが必要です", "xpack.securitySolution.detectionEngine.noIndexTitle": "検出エンジンを設定しましょう", + "xpack.securitySolution.detectionEngine.noPermissionsMessage": "アラートを表示するには、権限を更新する必要があります。詳細については、Kibana管理者に連絡してください。", + "xpack.securitySolution.detectionEngine.noPermissionsTitle": "権限が必要です", "xpack.securitySolution.detectionEngine.pageTitle": "検出エンジン", "xpack.securitySolution.detectionEngine.panelSubtitleShowing": "表示中", "xpack.securitySolution.detectionEngine.queryPreview.queryGraphCountLabel": "カウント", @@ -21210,6 +22319,7 @@ "xpack.securitySolution.detectionEngine.ruleDescription.mlJobStoppedDescription": "停止", "xpack.securitySolution.detectionEngine.ruleDescription.thresholdResultsAggregatedByDescription": "結果集約条件", "xpack.securitySolution.detectionEngine.ruleDescription.thresholdResultsAllDescription": "すべての結果", + "xpack.securitySolution.detectionEngine.ruleDetails.activateRuleLabel": "有効化", "xpack.securitySolution.detectionEngine.ruleDetails.backToRulesButton": "ルール", "xpack.securitySolution.detectionEngine.ruleDetails.deletedRule": "削除されたルール", "xpack.securitySolution.detectionEngine.ruleDetails.errorCalloutTitle": "ルール失敗", @@ -21263,11 +22373,14 @@ "xpack.securitySolution.detectionEngine.rules.allRules.clearSelectionTitle": "選択した項目をクリア", "xpack.securitySolution.detectionEngine.rules.allRules.columns.activateTitle": "有効化", "xpack.securitySolution.detectionEngine.rules.allRules.columns.gap": "最後のギャップ(該当する場合)", + "xpack.securitySolution.detectionEngine.rules.allRules.columns.gapTooltip": "ルール実行の最新のギャップの期間。ルールルックバックを調整するか、ギャップの軽減については{seeDocs}してください。", "xpack.securitySolution.detectionEngine.rules.allRules.columns.indexingTimes": "インデックス時間(ミリ秒)", + "xpack.securitySolution.detectionEngine.rules.allRules.columns.indexingTimesTooltip": "前回のルール実行中にアラートのインデックスにかかった合計時間", "xpack.securitySolution.detectionEngine.rules.allRules.columns.lastResponseTitle": "前回の応答", "xpack.securitySolution.detectionEngine.rules.allRules.columns.lastRunTitle": "前回の実行", "xpack.securitySolution.detectionEngine.rules.allRules.columns.lastUpdateTitle": "最終更新", "xpack.securitySolution.detectionEngine.rules.allRules.columns.queryTimes": "クエリ時間(ミリ秒)", + "xpack.securitySolution.detectionEngine.rules.allRules.columns.queryTimesTooltip": "前回のルール実行中にソースインデックスのクエリにかかった合計時間", "xpack.securitySolution.detectionEngine.rules.allRules.columns.riskScoreTitle": "リスクスコア", "xpack.securitySolution.detectionEngine.rules.allRules.columns.ruleTitle": "ルール", "xpack.securitySolution.detectionEngine.rules.allRules.columns.severityTitle": "深刻度", @@ -21303,6 +22416,7 @@ "xpack.securitySolution.detectionEngine.rules.loadPrePackagedTimelineTemplatesButton": "Elastic 事前構築済みタイムラインテンプレートを読み込む", "xpack.securitySolution.detectionEngine.rules.optionalFieldDescription": "オプション", "xpack.securitySolution.detectionEngine.rules.pageTitle": "ルール", + "xpack.securitySolution.detectionEngine.rules.popoverTooltip.ariaLabel": "列のツールチップ:{columnName}", "xpack.securitySolution.detectionEngine.rules.prePackagedRules.createOwnRuletButton": "独自のルールの作成", "xpack.securitySolution.detectionEngine.rules.prePackagedRules.emptyPromptMessage": "Elasticセキュリティには、バックグラウンドで実行され、条件が合うとアラートを作成する事前構築済み検出ルールがあります。デフォルトでは、Endpoint Securityルールを除くすべての事前構築済みルールが無効になっています。有効にする追加のルールを選択することができます。", "xpack.securitySolution.detectionEngine.rules.prePackagedRules.emptyPromptTitle": "Elastic 事前構築済み検出ルールを読み込む", @@ -21323,6 +22437,7 @@ "xpack.securitySolution.detectionEngine.ruleStatus.statusDateDescription": "ステータス日付", "xpack.securitySolution.detectionEngine.ruleStatus.statusDescription": "前回の応答", "xpack.securitySolution.detectionEngine.signalRuleAlert.actionGroups.default": "デフォルト", + "xpack.securitySolution.detectionEngine.signals.alertReasonDescription": "{eventCategory, select, null {} other {{eventCategory}{whitespace}}}イベント{hasFieldOfInterest, select, false {} other {{whitespace}with}}{processName, select, null {} other {{whitespace}プロセス{processName},} }{processParentName, select, null {} other {{whitespace}親プロセス{processParentName},} }{fileName, select, null {} other {{whitespace}ファイル{fileName},} }{sourceAddress, select, null {} other {{whitespace}ソース{sourceAddress}}}{sourcePort, select, null {} other {:{sourcePort},}}{destinationAddress, select, null {} other {{whitespace}宛先{destinationAddress}}}{destinationPort, select, null {} other {:{destinationPort},}}{userName, select, null {} other {{whitespace}{userName}によって} }{hostName, select, null {} other {{whitespace}on {hostName}} }作成された{alertSeverity}アラート{alertName}。", "xpack.securitySolution.detectionEngine.signalTitle": "検出されたアラート", "xpack.securitySolution.detectionEngine.totalSignalTitle": "合計", "xpack.securitySolution.detectionEngine.userUnauthenticatedMsgBody": "検出エンジンを表示するための必要なアクセス権がありません。ヘルプについては、管理者にお問い合わせください。", @@ -21378,6 +22493,7 @@ "xpack.securitySolution.endpoint.details.os": "OS", "xpack.securitySolution.endpoint.details.policy": "ポリシー", "xpack.securitySolution.endpoint.details.policy.revisionNumber": "rev. {revNumber}", + "xpack.securitySolution.endpoint.details.policyResponse.behavior_protection": "悪意のある動作", "xpack.securitySolution.endpoint.details.policyResponse.configure_dns_events": "DNS イベントの構成", "xpack.securitySolution.endpoint.details.policyResponse.configure_elasticsearch_connection": "Elasticsearch接続の構成", "xpack.securitySolution.endpoint.details.policyResponse.configure_file_events": "ファイルイベントの構成", @@ -21405,6 +22521,7 @@ "xpack.securitySolution.endpoint.details.policyResponse.load_malware_model": "マルウェアモデルの読み込み", "xpack.securitySolution.endpoint.details.policyResponse.logging": "ログ", "xpack.securitySolution.endpoint.details.policyResponse.malware": "マルウェア", + "xpack.securitySolution.endpoint.details.policyResponse.memory_protection": "メモリ脅威", "xpack.securitySolution.endpoint.details.policyResponse.read_elasticsearch_config": "Elasticsearch構成を読み取る", "xpack.securitySolution.endpoint.details.policyResponse.read_events_config": "イベント構成を読み取る", "xpack.securitySolution.endpoint.details.policyResponse.read_kernel_config": "カーネル構成を読み取る", @@ -21417,6 +22534,7 @@ "xpack.securitySolution.endpoint.details.policyStatus": "ポリシーステータス", "xpack.securitySolution.endpoint.details.policyStatusValue": "{policyStatus, select, success {成功} warning {警告} failure {失敗} other {不明}}", "xpack.securitySolution.endpoint.detailsActions.buttonLabel": "アクションを実行", + "xpack.securitySolution.endpoint.fleetCustomExtension.artifacts.backButtonLabel": "Fleet統合ポリシーに戻る", "xpack.securitySolution.endpoint.fleetCustomExtension.backButtonLabel": "エンドポイント統合に戻る", "xpack.securitySolution.endpoint.fleetCustomExtension.eventFiltersLabel": "イベントフィルター", "xpack.securitySolution.endpoint.fleetCustomExtension.eventFiltersSummaryError": "イベントフィルター統計情報の取得中にエラーが発生しました:\"{error}\"", @@ -21502,6 +22620,8 @@ "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.logging.file": "入力した値は、ディスクに保存されたログと Elasticsearch にストリームされたログに構成されたログレベルよりも優先されます。ほとんどの環境でこのログを変更するには、Fleet を使用することをお勧めします。許可された値は、エラー、警告、情報、デバッグ、トレースです。", "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.logging.syslog": "入力された値はログを Syslog に構成します。許可された値は、エラー、警告、情報、デバッグ、トレースです。", "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.malware.quarantine": "マルウェア防御が有効なときに、隔離を有効にするかどうか。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.memory_protection.memory_scan": "メモリ保護の一部として悪意のあるメモリ領域の検査を有効にします。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.memory_protection.memory_scan_collect_sample": "検出された悪意のあるメモリ領域周辺の4MBのメモリを収集します。デフォルト:false。この値を有効にすると、Elasticsearchに格納されたデータの量が大幅に増加する可能性があります。", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.agent.connection_delay": "最初のポリシー応答を送信する前にエージェント接続を待機する時間(秒)。デフォルト:60.", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.alerts.cloud_lookup": "値「false」はMacアラートのクラウドルックアップを無効にします。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.artifacts.global.base_url": "グローバルアーチファクトマニフェストをダウンロードする URL。", @@ -21523,6 +22643,8 @@ "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.logging.syslog": "入力された値はログを Syslog に構成します。許可された値は、エラー、警告、情報、デバッグ、トレースです。", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.malware.quarantine": "マルウェア防御が有効なときに、隔離を有効にするかどうか。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.malware.threshold": "マルウェアの評価で使用されるしきい値。標準、低い、高いの値を使用できます。デフォルト:標準。", + "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.memory_protection.memory_scan": "メモリ保護の一部として悪意のあるメモリ領域の検査を有効にします。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.memory_protection.memory_scan_collect_sample": "検出された悪意のあるメモリ領域周辺の4MBのメモリを収集します。デフォルト:false。この値を有効にすると、Elasticsearchに格納されたデータの量が大幅に増加する可能性があります。", "xpack.securitySolution.endpoint.policy.advanced.show": "{action} 高度な設定", "xpack.securitySolution.endpoint.policy.advanced.warningMessage": "このセクションには、高度なユースケースをサポートするポリシー値が含まれます。正しく構成されていない場合、\n これらの値により予期しない動作が引き起こされるおそれがあります。ドキュメントをよく読むか、\n サポートに問い合わせてから、これらの値を編集してください。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.agent.connection_delay": "最初のポリシー応答を送信する前にエージェント接続を待機する時間(秒)。デフォルト:60.", @@ -21539,27 +22661,33 @@ "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.elasticsearch.tls.verify_peer": "ピアが提示した証明書を検証するかどうか。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.asyncimageload": "「false」の値は、カーネル非同期イメージ読み込みイベントを有効にする他の構成設定を上書きします。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.connect": "カーネルドライバーに接続するかどうか。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.fileaccess": "制限されたファイルアクセス(読み取り)イベントを報告します。ユーザーがパスを構成することはできません。デフォルト値はtrueです。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.fileopen": "「false」の値は、カーネルファイルオープンイベントを有効にする他の構成設定を上書きします。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.filewrite": "「false」の値は、カーネルファイル書き込みイベントを有効にする他の構成設定を上書きします。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.network": "「false」の値は、カーネルネットワークイベントを有効にする他の構成設定を上書きします。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.process": "「false」の値は、カーネルプロセスイベントを有効にする他の構成設定を上書きします。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.registry": "「false」の値は、カーネルレジストリイベントを有効にする他の構成設定を上書きします。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.registryaccess": "制限されたレジストリアクセス(queryvalue、savekey)イベントを報告します。ユーザーがパスを構成することはできません。デフォルト値はtrueです。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.syncimageload": "「false」の値は、カーネル同期イメージ読み込みイベントを有効にする他の構成設定を上書きします。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.logging.debugview": "入力された値はロギングを Debugview(Sysinternals ツール)に構成します。許可された値は、エラー、警告、情報、デバッグ、トレースです。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.logging.file": "入力した値は、ディスクに保存されたログと Elasticsearch にストリームされたログに構成されたログレベルよりも優先されます。ほとんどの環境でこのログを変更するには、Fleet を使用することをお勧めします。許可された値は、エラー、警告、情報、デバッグ、トレースです。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.malware.quarantine": "マルウェア防御が有効なときに、隔離を有効にするかどうか。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.malware.threshold": "マルウェアの評価で使用されるしきい値。標準、低い、高いの値を使用できます。デフォルト:標準。", - "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.shellcode": "値「false」は、メモリ保護機能であるShellcode Injection Protectionを無効にします。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.memory_scan": "メモリ保護の一部として悪意のあるメモリ領域の検査を有効にします。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.memory_scan_collect_sample": "検出された悪意のあるメモリ領域周辺の4MBのメモリを収集します。デフォルト:false。この値を有効にすると、Elasticsearchに格納されたデータの量が大幅に増加する可能性があります。", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.shellcode": "メモリ保護の一部としてshellcodeインジェクション検出を有効にします。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.shellcode_collect_sample": "検出されたshellcode領域周辺の4MBのメモリを収集します。デフォルト:false。この値を有効にすると、Elasticsearchに格納されたデータの量が大幅に増加する可能性があります。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.ransomware.canary": "値「false」はランサムウェアcanary保護を無効にします。デフォルト:true", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.ransomware.mbr": "値「false」はランサムウェアMBR保護を無効にします。デフォルト:true", + "xpack.securitySolution.endpoint.policy.advanced.windows.memory_protection.shellcode_enhanced_pe_parsing": "Authenticode署名およびバージョンリソース情報を含め、インジェクトされたshellcodeからPEメタデータを特定して抽出することを試みます。デフォルト:true", "xpack.securitySolution.endpoint.policy.details.antivirusRegistration.explanation": "オンにすると、ElasticをWindows OSのオフィシャルウイルス対策ソリューションとして登録します。これで Windows Defender も無効になります。", "xpack.securitySolution.endpoint.policy.details.antivirusRegistration.osRestriction": "制限事項", "xpack.securitySolution.endpoint.policy.details.antivirusRegistration.toggle": "ウイルス対策として登録", "xpack.securitySolution.endpoint.policy.details.antivirusRegistration.type": "ウイルス対策として登録", "xpack.securitySolution.endpoint.policy.details.av.windowsServerNotSupported": "Windows Serverオペレーティングシステムはサポートされていません", "xpack.securitySolution.endpoint.policy.details.backToListTitle": "エンドポイントホストに戻る", - "xpack.securitySolution.endpoint.policy.details.behavior": "動作", - "xpack.securitySolution.endpoint.policy.details.behavior_protection": "動作保護", + "xpack.securitySolution.endpoint.policy.details.behavior": "悪意のある動作", + "xpack.securitySolution.endpoint.policy.details.behavior_protection": "悪意のある動作", "xpack.securitySolution.endpoint.policy.details.cancel": "キャンセル", "xpack.securitySolution.endpoint.policy.details.cloudDeploymentLInk": "クラウド展開", "xpack.securitySolution.endpoint.policy.details.detect": "検知", @@ -21569,8 +22697,8 @@ "xpack.securitySolution.endpoint.policy.details.eventCollectionsEnabled": "{selected} / {total} 件のイベント収集が有効です", "xpack.securitySolution.endpoint.policy.details.lockedCardUpgradeMessage": "この保護をオンにするには、ライセンスをプラチナに更新するか、30日間の無料トライアルを開始するか、AWS、GCP、またはAzureで{cloudDeploymentLink}にサインアップしてください。", "xpack.securitySolution.endpoint.policy.details.malware": "マルウェア", - "xpack.securitySolution.endpoint.policy.details.memory": "メモリー", - "xpack.securitySolution.endpoint.policy.details.memory_protection": "メモリ保護", + "xpack.securitySolution.endpoint.policy.details.memory": "メモリ脅威", + "xpack.securitySolution.endpoint.policy.details.memory_protection": "メモリ脅威", "xpack.securitySolution.endpoint.policy.details.platinum": "プラチナ", "xpack.securitySolution.endpoint.policy.details.prevent": "防御", "xpack.securitySolution.endpoint.policy.details.protections": "保護", @@ -21578,6 +22706,8 @@ "xpack.securitySolution.endpoint.policy.details.ransomware": "ランサムウェア", "xpack.securitySolution.endpoint.policy.details.save": "保存", "xpack.securitySolution.endpoint.policy.details.settings": "設定", + "xpack.securitySolution.endpoint.policy.details.tabs.policyForm": "ポリシー設定", + "xpack.securitySolution.endpoint.policy.details.tabs.trustedApps": "信頼できるアプリケーション", "xpack.securitySolution.endpoint.policy.details.updateConfirm.cancelButtonTitle": "キャンセル", "xpack.securitySolution.endpoint.policy.details.updateConfirm.confirmButtonTitle": "変更を保存してデプロイ", "xpack.securitySolution.endpoint.policy.details.updateConfirm.message": "この操作は元に戻すことができません。続行していいですか?", @@ -21587,16 +22717,60 @@ "xpack.securitySolution.endpoint.policy.details.updateSuccessMessage": "統合{name}が更新されました。", "xpack.securitySolution.endpoint.policy.details.updateSuccessTitle": "成功!", "xpack.securitySolution.endpoint.policy.details.upgradeToPlatinum": "Elastic Platinum へのアップグレード", - "xpack.securitySolution.endpoint.policy.protections.behavior": "動作保護", + "xpack.securitySolution.endpoint.policy.protections.behavior": "悪意ある動作に対する保護", "xpack.securitySolution.endpoint.policy.protections.malware": "マルウェア保護", - "xpack.securitySolution.endpoint.policy.protections.memory": "メモリ保護", + "xpack.securitySolution.endpoint.policy.protections.memory": "メモリ脅威に対する保護", "xpack.securitySolution.endpoint.policy.protections.ransomware": "ランサムウェア保護", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.backButtonLabel": "{policyName}ポリシー", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.content": "現在、{policyName}に割り当てられたアプリケーションがありません。今すぐ信頼できるアプリケーションを割り当てるか、信頼できるアプリケーションページで管理します。", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.primaryAction": "信頼できるアプリケーションの割り当て", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.secondaryAction": "信頼できるアプリケーションを管理", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.title": "信頼できるアプリケーションが割り当てられていません", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unexisting.action": "信頼できるアプリケーションを追加", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unexisting.content": "現在、エンドポイントには信頼できるアプリケーションが適用されていません。", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unexisting.title": "信頼できるアプリケーションが存在しません", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.about.viewAllLinkLabel": "信頼できるアプリケーションを表示", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.assignToPolicy": "信頼できるアプリケーションをポリシーに割り当てる", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.cancel": "キャンセル", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.confirm": "{policyName}に割り当てる", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.noAssignable": "このポリシーに割り当てられる信頼できるアプリケーションがありません。", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.noResults": "項目が見つかりません", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.searchWarning.text": "最初の100件の信頼できるアプリケーションのみが表示されます。検索バーを使用して、結果を絞り込んでください。", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.searchWarning.title": "絞り込まれた検索結果", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.subtitle": "{policyName}に追加する信頼できるアプリケーションを選択", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.title": "信頼できるアプリケーションの割り当て", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.toastError.text": "アーチファクトの更新中にエラーが発生しました", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.toastSuccess.textMultiples": "{count}個の信頼できるアプリケーションがリストに追加されました。", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.toastSuccess.textSingle": "\"{name}\"は信頼できるアプリケーションリストに追加されました。", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.toastSuccess.title": "成功", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.searh.label": "信頼できるアプリケーションを検索", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.title": "割り当てられた信頼できるアプリケーション", + "xpack.securitySolution.endpoint.policy.trustedApps.list.apiError": "信頼できるアプリケーションのリストの取得エラー", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeAction": "ポリシーから削除", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeActionNotAllowed": "グローバルで適用された信頼できるアプリケーションはポリシーから削除できません。", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.cancelLabel": "キャンセル", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.confirmLabel": "ポリシーから削除", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.errorToastTitle": "信頼できるアプリケーションの削除エラー", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.message": "続行していいですか?", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.messageCallout": "この信頼できるアプリケーションはこのポリシーからのみ削除されます。信頼できるアプリケーションページには表示され、管理できます。", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.successMultiplesToastText": "{count}個の信頼できるアプリケーションが{policyName}ポリシーから削除されました", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.successToastText": "\"{trustedAppName}\"が{policyName}ポリシーから削除されました", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.successToastTitle": "正常に削除されました", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.title": "信頼できるアプリケーションをポリシーから削除", + "xpack.securitySolution.endpoint.policy.trustedApps.list.viewAction": "詳細を表示", + "xpack.securitySolution.endpoint.policyDetail.behaviorProtectionTooltip": "悪意のある動作", + "xpack.securitySolution.endpoint.policyDetail.filename": "ファイル名", + "xpack.securitySolution.endpoint.policyDetail.memoryProtectionTooltip": "メモリ脅威", "xpack.securitySolution.endpoint.policyDetail.notifyUser": "ユーザーに通知", + "xpack.securitySolution.endpoint.policyDetail.rule": "ルール", "xpack.securitySolution.endpoint.policyDetailOS": "オペレーティングシステム", "xpack.securitySolution.endpoint.policyDetails.agentsSummary.errorTitle": "異常", "xpack.securitySolution.endpoint.policyDetails.agentsSummary.offlineTitle": "オフライン", "xpack.securitySolution.endpoint.policyDetails.agentsSummary.onlineTitle": "正常", - "xpack.securitySolution.endpoint.policyDetails.agentsSummary.totalTitle": "エージェント", + "xpack.securitySolution.endpoint.policyDetails.agentsSummary.totalTitle": "合計エージェント数", + "xpack.securitySolution.endpoint.policyDetails.artifacts.title": "アーチファクト", + "xpack.securitySolution.endpoint.policyDetails.loadError": "エンドポイントポリシー設定を読み込めませんでした", + "xpack.securitySolution.endpoint.policyDetails.settings.title": "ポリシー設定", "xpack.securitySolution.endpoint.policyDetails.supportedVersion": "エージェントバージョン {version}", "xpack.securitySolution.endpoint.policyDetails.userNotification.placeholder": "カスタム通知メッセージを入力", "xpack.securitySolution.endpoint.policyDetailsConfig.customizeUserNotification": "通知メッセージをカスタマイズ", @@ -21608,6 +22782,7 @@ "xpack.securitySolution.endpoint.policyDetailsConfig.mac.events.network": "ネットワーク", "xpack.securitySolution.endpoint.policyDetailsConfig.mac.events.process": "プロセス", "xpack.securitySolution.endpoint.policyDetailsConfig.notifyUserTooltip.a": "ユーザー通知オプションを選択すると、{ protectionName }が防御または検出されたときに、ホストユーザーに通知を表示します。", + "xpack.securitySolution.endpoint.policyDetailsConfig.notifyUserTooltip.c": " ユーザー通知は、以下のテキストボックスでカスタマイズできます。括弧内のタグを使用すると、該当するアクション(防御または検出など)と{ bracketText }を動的に入力できます。", "xpack.securitySolution.endpoint.policyDetailsConfig.protectionLevel": "保護レベル", "xpack.securitySolution.endpoint.policyDetailsConfig.userNotification": "ユーザー通知", "xpack.securitySolution.endpoint.policyDetailsConfig.windows.events.dllDriverLoad": "DLL とドライバーの読み込み", @@ -21675,12 +22850,19 @@ "xpack.securitySolution.endpoint.takeAction.changeAlertStatus": "アラートステータスを変更", "xpack.securitySolution.endpointDetails.activityLog": "アクティビティログ", "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.endOfLog": "表示する情報がありません", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.failedEndpointIsolateAction": "要求を送信できませんでした。ホストの分離", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.failedEndpointReleaseAction": "要求を送信できませんでした。ホストのリリース", "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.isolated": "送信されたリクエスト:ホストの分離", "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.unisolated": "送信されたリクエスト:ホストのリリース", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.dateRangeMessage.title": "選択した日付範囲で表示されるデータはありません。別の範囲を選択して再試行してください。", "xpack.securitySolution.endpointDetails.activityLog.logEntry.emptyState.body": "このエンドポイントのアクションはログに記録されませんでした。", "xpack.securitySolution.endpointDetails.activityLog.logEntry.emptyState.title": "ログに記録されたアクションはありません", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.isolationCompletedAndSuccessful": "エンドポイントが完了したホスト分離要求", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.isolationCompletedAndUnsuccessful": "エンドポイントが完了し、エラーが発生しているホスト分離要求", "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.isolationFailed": "エンドポイントが受信したエラーが発生しているホスト分離リクエスト", "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.isolationSuccessful": "エンドポイントが受信したホスト分離リクエスト", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.unisolationCompletedAndSuccessful": "エンドポイントが完了したリリース要求", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.unisolationCompletedAndUnsuccessful": "エンドポイントが完了し、エラーが発生しているリリース要求", "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.unisolationFailed": "エンドポイントが受信したエラーが発生しているホストリリースリクエスト", "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.unisolationSuccessful": "エンドポイントが受信したホストリリースリクエスト", "xpack.securitySolution.endpointDetails.activityLog.search": "アクティビティログを検索", @@ -21691,10 +22873,14 @@ "xpack.securitySolution.enpdoint.resolver.panelutils.invaliddate": "無効な日付", "xpack.securitySolution.enpdoint.resolver.panelutils.noTimestampRetrieved": "タイムスタンプが取得されていません", "xpack.securitySolution.event.module.linkToElasticEndpointSecurityDescription": "Endpoint Securityで開く", + "xpack.securitySolution.event.reason.reasonRendererTitle": "イベントレンダラー:{eventRendererName} ", "xpack.securitySolution.eventDetails.blank": " ", "xpack.securitySolution.eventDetails.copyToClipboard": "クリップボードにコピー", "xpack.securitySolution.eventDetails.copyToClipboardTooltip": "クリップボードにコピー", + "xpack.securitySolution.eventDetails.ctiSummary.indicatorEnrichmentTitle": "脅威一致が検出されました", "xpack.securitySolution.eventDetails.ctiSummary.indicatorEnrichmentTooltipContent": "このフィールド値は、作成したルールの脅威インテリジェンス指標と一致しました。", + "xpack.securitySolution.eventDetails.ctiSummary.informationAriaLabel": "情報", + "xpack.securitySolution.eventDetails.ctiSummary.investigationEnrichmentTitle": "Threat Intelligenceで拡張", "xpack.securitySolution.eventDetails.ctiSummary.investigationEnrichmentTooltipContent": "このフィールド値には脅威インテリジェンスソースの別の情報があります。", "xpack.securitySolution.eventDetails.ctiSummary.providerPreposition": "開始", "xpack.securitySolution.eventDetails.description": "説明", @@ -21720,10 +22906,6 @@ "xpack.securitySolution.eventFilter.form.os.label": "オペレーティングシステムを選択", "xpack.securitySolution.eventFilter.form.rule.name": "エンドポイントイベントフィルター", "xpack.securitySolution.eventFilter.form.updateSuccessToastTitle": "\"{name}\"が正常に更新されました", - "xpack.securitySolution.eventFilter.modal.actions.cancel": "キャンセル", - "xpack.securitySolution.eventFilter.modal.actions.confirm": "エンドポイントイベントフィルターを追加", - "xpack.securitySolution.eventFilter.modal.subtitle": "Endpoint Security", - "xpack.securitySolution.eventFilter.modal.title": "エンドポイントイベントフィルターを追加", "xpack.securitySolution.eventFilter.search.placeholder": "次のフィールドで検索:名前、コメント、値", "xpack.securitySolution.eventFilters.aboutInfo": "イベントフィルターを追加して、大量のイベントや不要なイベントがElasticsearchに書き込まれないように除外します。", "xpack.securitySolution.eventFilters.deletionDialog.cancelButton": "キャンセル", @@ -21738,6 +22920,8 @@ "xpack.securitySolution.eventFilters.eventFiltersFlyout.actions.confirm.update": "イベントフィルターを更新", "xpack.securitySolution.eventFilters.eventFiltersFlyout.subtitle.create": "イベントフィルターを追加", "xpack.securitySolution.eventFilters.eventFiltersFlyout.subtitle.update": "イベントフィルターを更新", + "xpack.securitySolution.eventFilters.list.cardAction.delete": "イベントフィルターを削除", + "xpack.securitySolution.eventFilters.list.cardAction.edit": "イベントフィルターを編集", "xpack.securitySolution.eventFilters.list.pageAddButton": "イベントフィルターを追加", "xpack.securitySolution.eventFilters.list.pageTitle": "イベントフィルター", "xpack.securitySolution.eventFilters.listEmpty.addButton": "イベントフィルターを追加", @@ -21789,6 +22973,7 @@ "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.methodTitle": "メソド", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.reasonTitle": "理由", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.riskScoreTitle": "リスクスコア", + "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.ruleDescriptionTitle": "ルールの説明", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.ruleNameTitle": "ルール名", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.ruleTitle": "ルール", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.severityTitle": "深刻度", @@ -21886,6 +23071,15 @@ "xpack.securitySolution.exceptions.viewer.noSearchResultsPromptBody": "検索結果が見つかりません。", "xpack.securitySolution.exceptions.viewer.searchDefaultPlaceholder": "検索フィールド(例:host.name)", "xpack.securitySolution.exitFullScreenButton": "全画面を終了", + "xpack.securitySolution.expandedValue.hideTopValues.HideTopValues": "上位の値を非表示", + "xpack.securitySolution.expandedValue.links.expandIpDetails": "IP詳細を展開", + "xpack.securitySolution.expandedValue.links.viewEventReference": "イベント参照を表示", + "xpack.securitySolution.expandedValue.links.viewHostSummary": "ホスト概要を表示", + "xpack.securitySolution.expandedValue.links.viewIndicatorReference": "指標参照を表示", + "xpack.securitySolution.expandedValue.links.viewPortDetails": "ポート詳細を表示", + "xpack.securitySolution.expandedValue.links.viewRuleDetails": "ルール詳細を表示", + "xpack.securitySolution.expandedValue.links.viewRuleReference": "ルール参照を表示", + "xpack.securitySolution.expandedValue.showTopN.showTopValues": "上位の値を表示", "xpack.securitySolution.featureCatalogueDescription": "インフラストラクチャ全体の統合保護のため、脅威を防止、収集、検出し、それに対応します。", "xpack.securitySolution.featureRegistry.linkSecuritySolutionTitle": "セキュリティ", "xpack.securitySolution.featureRegistry.manageAlertsName": "アラート", @@ -21932,7 +23126,7 @@ "xpack.securitySolution.formattedDuration.tooltipLabel": "生", "xpack.securitySolution.getCurrentUser.Error": "ユーザーの取得エラー", "xpack.securitySolution.getCurrentUser.unknownUser": "不明", - "xpack.securitySolution.globalHeader.buttonAddData": "データの追加", + "xpack.securitySolution.globalHeader.buttonAddData": "統合の追加", "xpack.securitySolution.header.editableTitle.cancel": "キャンセル", "xpack.securitySolution.header.editableTitle.editButtonAria": "クリックすると {title} を編集できます", "xpack.securitySolution.header.editableTitle.save": "保存", @@ -21960,6 +23154,44 @@ "xpack.securitySolution.host.details.overview.regionTitle": "地域", "xpack.securitySolution.host.details.versionLabel": "バージョン", "xpack.securitySolution.hostIsolation.agentStatuses.empty": "-", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.cancel": "キャンセル", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.confirmation": "この操作は元に戻すことができません。続行していいですか?", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.confirmButton": "例外を削除", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.deleteFailure": "ホスト分離例外リストから\"{name}\"を削除できません。理由:{message}", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.deleteSuccess": "\"{name}\"はホスト分離例外リストから削除されました。", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.subtitle": "例外\"{name}\"を削除しています。", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.title": "ホスト分離例外を削除", + "xpack.securitySolution.hostIsolationExceptions.flyout.cancel": "キャンセル", + "xpack.securitySolution.hostIsolationExceptions.flyout.createButton": "ホスト分離例外を追加", + "xpack.securitySolution.hostIsolationExceptions.flyout.editButton": "ホスト分離例外を編集", + "xpack.securitySolution.hostIsolationExceptions.flyout.editTitle": "ホスト分離例外を編集", + "xpack.securitySolution.hostIsolationExceptions.flyout.title": "ホスト分離例外を追加", + "xpack.securitySolution.hostIsolationExceptions.form.conditions.subtitle": "IP例外はすべてのOSタイプに適用されます", + "xpack.securitySolution.hostIsolationExceptions.form.conditions.title": "条件", + "xpack.securitySolution.hostIsolationExceptions.form.creationSuccessToastTitle": "\"{name}\"はホスト分離例外リストに追加されました。", + "xpack.securitySolution.hostIsolationExceptions.form.description": "IPをホスト分離例外に追加します。任意のCIDRのIPv4のみが許可されます", + "xpack.securitySolution.hostIsolationExceptions.form.description.label": "説明", + "xpack.securitySolution.hostIsolationExceptions.form.description.placeholder": "ホスト分離例外を説明", + "xpack.securitySolution.hostIsolationExceptions.form.editingSuccessToastTitle": "\"{name}\"が更新されました。", + "xpack.securitySolution.hostIsolationExceptions.form.failedToastTitle.create": "例外の作成中にエラーが発生しました:\"{error}\"", + "xpack.securitySolution.hostIsolationExceptions.form.failedToastTitle.get": "例外を編集できません:\"{error}\"", + "xpack.securitySolution.hostIsolationExceptions.form.failedToastTitle.update": "例外の更新中にエラーが発生しました:\"{error}\"", + "xpack.securitySolution.hostIsolationExceptions.form.ip.error": "IPが無効です。任意のCIDRのIPv4のみがサポートされます", + "xpack.securitySolution.hostIsolationExceptions.form.ip.label": "IPアドレスを入力", + "xpack.securitySolution.hostIsolationExceptions.form.ip.placeholder": "例 0.0.0.0/24", + "xpack.securitySolution.hostIsolationExceptions.form.name.error": "名前を空にすることはできません", + "xpack.securitySolution.hostIsolationExceptions.form.name.label": "ホスト分離例外の名前を指定", + "xpack.securitySolution.hostIsolationExceptions.form.name.placeholder": "新しいIP", + "xpack.securitySolution.hostIsolationExceptions.form.title": "詳細", + "xpack.securitySolution.hostIsolationExceptions.list.action.delete": "例外を削除", + "xpack.securitySolution.hostIsolationExceptions.list.action.edit": "例外の編集", + "xpack.securitySolution.hostIsolationExceptions.list.addButton": "ホスト分離例外を追加", + "xpack.securitySolution.hostIsolationExceptions.list.pageSubTitle": "ホスト分離例外を追加して、分離されたホストが特定のIPと通信することを許可します。", + "xpack.securitySolution.hostIsolationExceptions.list.pageTitle": "ホスト分離例外", + "xpack.securitySolution.hostIsolationExceptions.listEmpty.addButton": "ホスト分離例外を追加", + "xpack.securitySolution.hostIsolationExceptions.listEmpty.message": "現在ホスト分離例外はありません", + "xpack.securitySolution.hostIsolationExceptions.listEmpty.title": "最初のホスト分離例外を追加", + "xpack.securitySolution.hostIsolationExceptions.search.placeholder": "次のフィールドで検索:名前、説明、IP", "xpack.securitySolution.hostOverview.errorSearchDescription": "ホスト概要検索でエラーが発生しました", "xpack.securitySolution.hostOverview.failSearchDescription": "ホスト概要で検索を実行できませんでした", "xpack.securitySolution.hostRules.errorSearchDescription": "リスクスコア検索でエラーが発生しました", @@ -22037,7 +23269,7 @@ "xpack.securitySolution.lists.referenceModalDeleteButton": "値リストの削除", "xpack.securitySolution.lists.referenceModalTitle": "値リストの削除", "xpack.securitySolution.lists.uploadValueListDescription": "ルール例外の書き込み中に使用する単一値リストをアップロードします。", - "xpack.securitySolution.lists.uploadValueListExtensionValidationMessage": "ファイルは次の種類のいずれかでなければなりません:[[{fileTypes}]", + "xpack.securitySolution.lists.uploadValueListExtensionValidationMessage": "ファイルは次の種類のいずれかでなければなりません:[{fileTypes}]", "xpack.securitySolution.lists.uploadValueListPrompt": "ファイルを選択するかドラッグ &amp; ドロップしてください", "xpack.securitySolution.lists.uploadValueListTitle": "値リストのアップロード", "xpack.securitySolution.lists.valueListsExportError": "値リストのエクスポート中にエラーが発生しました。", @@ -22065,10 +23297,12 @@ "xpack.securitySolution.management.policiesSelector.unassignedEntries": "割り当てられていないエントリ", "xpack.securitySolution.management.search.button": "更新", "xpack.securitySolution.markdownEditor.markdownInputHelp": "Markdown 構文ヘルプ", + "xpack.securitySolution.markdownEditor.plugins.timeline.failedRetrieveTimelineErrorMsg": "タイムラインIDを取得できませんでした:{ timelineId }", "xpack.securitySolution.markdownEditor.plugins.timeline.insertTimelineButtonLabel": "タイムラインリンクの挿入", "xpack.securitySolution.markdownEditor.plugins.timeline.noParenthesesErrorMsg": "想定される左括弧", "xpack.securitySolution.markdownEditor.plugins.timeline.noTimelineIdFoundErrorMsg": "タイムラインIDが見つかりません", "xpack.securitySolution.markdownEditor.plugins.timeline.noTimelineNameFoundErrorMsg": "タイムライン名が見つかりません", + "xpack.securitySolution.markdownEditor.plugins.timeline.timelineErrorTitle": "タイムラインエラー", "xpack.securitySolution.markdownEditor.plugins.timeline.toolTip.timelineId": "タイムラインID:{ timelineId }", "xpack.securitySolution.markdownEditor.plugins.timeline.toolTip.timelineUrlIsNotValidErrorMsg": "タイムラインURLが無効です => {timelineUrl}", "xpack.securitySolution.markdownEditor.preview": "プレビュー", @@ -22300,6 +23534,7 @@ "xpack.securitySolution.overview.filebeatSystemModuleTitle": "システムモジュール", "xpack.securitySolution.overview.fileBeatZeekTitle": "Zeek", "xpack.securitySolution.overview.hostsAction": "ホストを表示", + "xpack.securitySolution.overview.hostsRiskError": "ホストリスクの取得エラー", "xpack.securitySolution.overview.hostStatGroupAuditbeat": "Auditbeat", "xpack.securitySolution.overview.hostStatGroupElasticEndpointSecurity": "Endpoint Security", "xpack.securitySolution.overview.hostStatGroupFilebeat": "Filebeat", @@ -22317,6 +23552,13 @@ "xpack.securitySolution.overview.pageSubtitle": "Elastic Stackによるセキュリティ情報とイベント管理", "xpack.securitySolution.overview.recentCasesSidebarTitle": "最近のケース", "xpack.securitySolution.overview.recentTimelinesSidebarTitle": "最近のタイムライン", + "xpack.securitySolution.overview.riskyHostsDashboardDangerPanelButton": "リスクスコアを有効にする", + "xpack.securitySolution.overview.riskyHostsDashboardDangerPanelTitle": "表示するホストリスクスコアデータがありません", + "xpack.securitySolution.overview.riskyHostsDashboardEnableThreatIntel": "リスクの高いホストのリストを表示するには、ホストリスクスコアモジュールを有効にしてください。", + "xpack.securitySolution.overview.riskyHostsDashboardTitle": "現在のホストリスクスコア", + "xpack.securitySolution.overview.riskyHostsDashboardWarningPanelBody": "選択した期間では、ご使用の環境のホストからホストリスクスコアデータが検出されませんでした。", + "xpack.securitySolution.overview.riskyHostsDashboardWarningPanelTitle": "表示するホストリスクスコアデータがありません", + "xpack.securitySolution.overview.riskyHostsSource": "送信元", "xpack.securitySolution.overview.showTopTooltip": "上位の{fieldName}を表示", "xpack.securitySolution.overview.signalCountTitle": "検出アラート傾向", "xpack.securitySolution.overview.topNLabel": "トップ{fieldName}", @@ -22333,6 +23575,9 @@ "xpack.securitySolution.pages.common.emptyActionEndpoint": "Endpoint Securityを追加", "xpack.securitySolution.pages.common.emptyActionEndpointDescription": "脅威防御、検出、深いセキュリティデータの可視化を実現し、ホストを保護します。", "xpack.securitySolution.pages.common.emptyActionSecondary": "入門ガイドを表示します。", + "xpack.securitySolution.pages.common.solutionName": "セキュリティ", + "xpack.securitySolution.pages.emptyPage.beatsCard.description": "Elasticエージェントを使用して、セキュリティイベントを収集し、エンドポイントを脅威から保護してください。", + "xpack.securitySolution.pages.emptyPage.beatsCard.title": "セキュリティ統合を追加", "xpack.securitySolution.pages.fourohfour.pageNotFoundDescription": "ページが見つかりません", "xpack.securitySolution.paginatedTable.rowsButtonLabel": "ページごとの行数", "xpack.securitySolution.paginatedTable.showingSubtitle": "表示中", @@ -22365,7 +23610,7 @@ "xpack.securitySolution.resolver.graphControls.center": "中央", "xpack.securitySolution.resolver.graphControls.currentlyLoadingCube": "プロセスの読み込み中", "xpack.securitySolution.resolver.graphControls.east": "東", - "xpack.securitySolution.resolver.graphControls.errorCube": "エラー", + "xpack.securitySolution.resolver.graphControls.errorCube": "エラープロセス", "xpack.securitySolution.resolver.graphControls.nodeLegend": "凡例", "xpack.securitySolution.resolver.graphControls.nodeLegendButtonTitle": "ノード凡例", "xpack.securitySolution.resolver.graphControls.north": "北", @@ -22385,7 +23630,7 @@ "xpack.securitySolution.resolver.node_button_name": "{nodeState, select, error {{nodeName} の再読み込み} other {{nodeName}}}", "xpack.securitySolution.resolver.node_icon": "{state, select, running {プロセスを実行しています} terminated {プロセスを終了しました} loading {プロセスを読み込んでいます} error {エラープロセス}}", "xpack.securitySolution.resolver.noProcessEvents.eventCategory": "次の項目をタイムラインクエリに追加し、プロセスイベントを確認することもできます。\n リストに何もない場合、そのクエリで検出されたイベントからグラフを作成することはできません。", - "xpack.securitySolution.resolver.noProcessEvents.timeRange": "イベントの分析ツールは、プロセスイベントに基づいてグラフを作成します。\n 分析されたイベントが現在の時間範囲で関連付けられたプロセスがない場合、\n またはどの時間範囲でもElasticsearchに保存されていない場合、グラフは作成されません。\n 時間範囲を展開すると、関連付けられたプロセスを確認できます。", + "xpack.securitySolution.resolver.noProcessEvents.timeRange": "\n イベントの分析ツールは、プロセスイベントに基づいてグラフを作成します。\n 分析されたイベントが現在の時間範囲で関連付けられたプロセスがない場合、\n またはどの時間範囲でもElasticsearchに保存されていない場合、グラフは作成されません。\n 時間範囲を展開すると、関連付けられたプロセスを確認できます。\n ", "xpack.securitySolution.resolver.noProcessEvents.title": "プロセスイベントが見つかりません", "xpack.securitySolution.resolver.panel.copyFailureTitle": "コピー失敗", "xpack.securitySolution.resolver.panel.copyToClipboard": "クリップボードにコピー", @@ -22422,19 +23667,19 @@ "xpack.securitySolution.rowRenderer.wasPreventedFromRenamingAMaliciousFileDescription": "悪意のあるファイルの名前変更が防止されました", "xpack.securitySolution.search.administration.endpoints": "エンドポイント", "xpack.securitySolution.search.administration.eventFilters": "イベントフィルター", + "xpack.securitySolution.search.administration.hostIsolationExceptions": "ホスト分離例外", "xpack.securitySolution.search.administration.trustedApps": "信頼できるアプリケーション", "xpack.securitySolution.search.alerts": "アラート", - "xpack.securitySolution.search.cases": "ケース", - "xpack.securitySolution.search.cases.configure": "ケースを構成", - "xpack.securitySolution.search.cases.create": "新規ケースを作成", "xpack.securitySolution.search.detect": "検知", "xpack.securitySolution.search.exceptions": "例外", + "xpack.securitySolution.search.explore": "探索", "xpack.securitySolution.search.hosts": "ホスト", "xpack.securitySolution.search.hosts.anomalies": "異常", "xpack.securitySolution.search.hosts.authentications": "認証", "xpack.securitySolution.search.hosts.events": "イベント", "xpack.securitySolution.search.hosts.externalAlerts": "外部アラート", "xpack.securitySolution.search.hosts.uncommonProcesses": "非共通プロセス", + "xpack.securitySolution.search.investigate": "調査", "xpack.securitySolution.search.manage": "管理", "xpack.securitySolution.search.network": "ネットワーク", "xpack.securitySolution.search.network.dns": "DNS", @@ -22681,6 +23926,7 @@ "xpack.securitySolution.timelines.allTimelines.errorFetchingTimelinesTitle": "すべてのタイムラインデータをクエリできませんでした", "xpack.securitySolution.timelines.allTimelines.importTimelineTitle": "インポート", "xpack.securitySolution.timelines.allTimelines.panelTitle": "すべてのタイムライン", + "xpack.securitySolution.timelines.components.importTimelineModal.importFailedDetailedTitle": "{message}", "xpack.securitySolution.timelines.components.importTimelineModal.importTimelineTitle": "インポート", "xpack.securitySolution.timelines.components.importTimelineModal.importTitle": "インポート…", "xpack.securitySolution.timelines.components.importTimelineModal.initialPromptTextDescription": "有効な timelines_export.ndjson ファイルを選択するか、またはドラッグアンドドロップします", @@ -22698,8 +23944,11 @@ "xpack.securitySolution.topN.closeButtonLabel": "閉じる", "xpack.securitySolution.topN.rawEventsSelectLabel": "未加工イベント", "xpack.securitySolution.trustedapps.aboutInfo": "パフォーマンスを改善したり、ホストで実行されている他のアプリケーションとの競合を解消したりするには、信頼できるアプリケーションを追加します。", + "xpack.securitySolution.trustedApps.assignmentSectionDescription": "すべてのポリシーでグローバルにこの信頼できるアプリケーションを割り当てるか、特定のポリシーに割り当てます。", "xpack.securitySolution.trustedapps.card.operator.is": "is", "xpack.securitySolution.trustedapps.card.operator.matches": "一致", + "xpack.securitySolution.trustedApps.conditionsSectionDescription": "オペレーティングシステムを選択して、条件を追加します。条件の可用性は選択したOSによって異なる場合があります。", + "xpack.securitySolution.trustedApps.conditionsSectionTitle": "条件", "xpack.securitySolution.trustedapps.create.conditionFieldInvalidHashMsg": "[{row}] 無効なハッシュ値", "xpack.securitySolution.trustedapps.create.conditionFieldInvalidPathMsg": "[{row}] パスの形式が正しくありません。値を検証してください", "xpack.securitySolution.trustedapps.create.conditionFieldValueRequiredMsg": "[{row}] フィールドエントリには値が必要です", @@ -22709,22 +23958,32 @@ "xpack.securitySolution.trustedapps.create.nameRequiredMsg": "名前が必要です", "xpack.securitySolution.trustedapps.create.os": "オペレーティングシステムを選択", "xpack.securitySolution.trustedapps.create.osRequiredMsg": "オペレーティングシステムは必須です", + "xpack.securitySolution.trustedapps.createTrustedAppFlyout.byPolicyLicenseError": "Kibanaライセンスがダウングレードされました。このため、個別のポリシー構成はサポートされなくなります。", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.cancelButton": "キャンセル", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.createSaveButton": "信頼できるアプリケーションを追加", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.createTitle": "信頼できるアプリケーションを追加", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.editSaveButton": "保存", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.editTitle": "信頼できるアプリケーションを編集", + "xpack.securitySolution.trustedapps.createTrustedAppFlyout.expiredLicenseMessage": "Kibanaライセンスがダウングレードされました。今後のポリシー構成はグローバルにすべてのポリシーに割り当てられます。詳細はご覧ください。 ", + "xpack.securitySolution.trustedapps.createTrustedAppFlyout.expiredLicenseTitle": "失効したライセンス", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.notFoundToastMessage": "信頼できるアプリケーションを編集できません({apiMsg})", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.successToastTitle": "「{name}」は信頼できるアプリケーションリストに追加されました。", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.updateSuccessToastTitle": "\"{name}\"が更新されました。", "xpack.securitySolution.trustedapps.creationSuccess.title": "成功!", + "xpack.securitySolution.trustedapps.deletionDialog.calloutTitle": "警告", "xpack.securitySolution.trustedapps.deletionDialog.cancelButton": "キャンセル", - "xpack.securitySolution.trustedapps.deletionDialog.confirmButton": "信頼できるアプリケーションを削除", + "xpack.securitySolution.trustedapps.deletionDialog.confirmButton": "削除", "xpack.securitySolution.trustedapps.deletionDialog.subMessage": "この操作は元に戻すことができません。続行していいですか?", + "xpack.securitySolution.trustedapps.deletionDialog.title": "\"{name}\"を削除", "xpack.securitySolution.trustedapps.deletionError.text": "信頼できるアプリケーションリストから「{name}」を削除できません。理由:{message}", "xpack.securitySolution.trustedapps.deletionError.title": "削除失敗", "xpack.securitySolution.trustedapps.deletionSuccess.text": "「{name}」は信頼できるアプリケーションリストから削除されました。", "xpack.securitySolution.trustedapps.deletionSuccess.title": "正常に削除されました", + "xpack.securitySolution.trustedApps.detailsSectionTitle": "詳細", + "xpack.securitySolution.trustedapps.docsLink": "信頼できるアプリケーションドキュメント。", + "xpack.securitySolution.trustedapps.grid.cardAction.delete": "信頼できるアプリケーションを削除", + "xpack.securitySolution.trustedapps.grid.cardAction.edit": "信頼できるアプリケーションを編集", + "xpack.securitySolution.trustedapps.grid.policyDetailsLinkBackLabel": "信頼できるアプリケーションに戻る", "xpack.securitySolution.trustedapps.list.addButton": "信頼できるアプリケーションを追加", "xpack.securitySolution.trustedapps.list.pageTitle": "信頼できるアプリケーション", "xpack.securitySolution.trustedapps.list.search.placeholder": "次のフィールドで検索:名前、説明、値", @@ -22749,6 +24008,7 @@ "xpack.securitySolution.trustedapps.trustedapp.entry.field": "フィールド", "xpack.securitySolution.trustedapps.trustedapp.entry.operator": "演算子", "xpack.securitySolution.trustedapps.trustedapp.entry.value": "値", + "xpack.securitySolution.trustedapps.updateSuccess.title": "成功!", "xpack.securitySolution.trustedapps.view.toggle.grid": "グリッドビュー", "xpack.securitySolution.trustedapps.view.toggle.list": "リストビュー", "xpack.securitySolution.trustedapps.viewTypeToggle.controlLegend": "ビュータイプ", @@ -22859,6 +24119,10 @@ "xpack.snapshotRestore.deleteSnapshot.errorSingleNotificationTitle": "スナップショット'{name}'の削除中のエラー", "xpack.snapshotRestore.deleteSnapshot.successMultipleNotificationTitle": "{count}件のスナップショットを削除しました", "xpack.snapshotRestore.deleteSnapshot.successSingleNotificationTitle": "スナップショット'{name}'を削除しました", + "xpack.snapshotRestore.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "xpack.snapshotRestore.deprecations.enabled.manualStepTwoMessage": "「xpack.snapshot_restore.enabled」設定を「pack.snapshot_restore.ui.enabled」に変更します。", + "xpack.snapshotRestore.deprecations.enabledMessage": "ユーザーがスナップショットおよび復元UIにアクセスすることを禁止するには、「xpack.snapshot_restore.enabled」ではなく、「xpack.snapshot_restore.ui.enabled」設定を使用します。", + "xpack.snapshotRestore.deprecations.enabledTitle": "「xpack.snapshot_restore.enabled」設定は廃止予定です", "xpack.snapshotRestore.editPolicy.breadcrumbTitle": "ポリシーの編集", "xpack.snapshotRestore.editPolicy.loadingIndicesDescription": "利用可能なインデックスを読み込み中…", "xpack.snapshotRestore.editPolicy.LoadingIndicesErrorMessage": "利用可能なインデックスを読み込み中にエラーが発生", @@ -22989,7 +24253,6 @@ "xpack.snapshotRestore.policyForm.stepLogistics.snapshotNameDescription": "スナップショットの名前です。それぞれの名前に自動的に追加される固有の識別子です。", "xpack.snapshotRestore.policyForm.stepLogistics.snapshotNameDescriptionTitle": "スナップショット名", "xpack.snapshotRestore.policyForm.stepLogisticsTitle": "ロジスティクス", - "xpack.snapshotRestore.policyForm.stepRetention.countDescription": "クラスターに格納するスナップショットの最少数と最大数。", "xpack.snapshotRestore.policyForm.stepRetention.countTitle": "保存するスナップショット", "xpack.snapshotRestore.policyForm.stepRetention.docsButtonLabel": "スナップショット保存ドキュメント", "xpack.snapshotRestore.policyForm.stepRetention.expirationDescription": "スナップショットの削除までに待つ時間です。", @@ -23518,9 +24781,11 @@ "xpack.snapshotRestore.snapshotList.emptyPrompt.noSnapshotsDescription": "Elasticsearch API でスナップショットを作成します。", "xpack.snapshotRestore.snapshotList.emptyPrompt.noSnapshotsTitle": "まだスナップショットがありません", "xpack.snapshotRestore.snapshotList.emptyPrompt.repositoryWarningDescription": "{repositoryLink} に移動してエラーを解決してください。", - "xpack.snapshotRestore.snapshotList.emptyPrompt.usePolicyDescription": "スナップショットを作成するには、スナップショットライフサイクルポリシーを実行してください。スナップショットは {docLink} でも作成できます。", + "xpack.snapshotRestore.snapshotList.emptyPrompt.usePolicyDescription": "スナップショットを作成するには、スナップショットライフサイクルポリシーを実行してください。{docLink}を使用してスナップショットを作成することもできます。", "xpack.snapshotRestore.snapshotList.loadingSnapshotsDescription": "スナップショットを読み込み中…", "xpack.snapshotRestore.snapshotList.loadingSnapshotsErrorMessage": "スナップショットの読み込み中にエラーが発生しました", + "xpack.snapshotRestore.snapshotList.searchBar.invalidSearchMessage": "無効な検索:{errorMessage}", + "xpack.snapshotRestore.snapshotList.searchBar.onlyOneClauseMessage": "検索バーでは1つの句のみを使用できます", "xpack.snapshotRestore.snapshotList.table.actionDeleteAriaLabel": "スナップショット`{name}`を削除", "xpack.snapshotRestore.snapshotList.table.actionDeleteTooltip": "削除", "xpack.snapshotRestore.snapshotList.table.actionRestoreAriaLabel": "スナップショット`{name}`を保存", @@ -23551,7 +24816,16 @@ "xpack.spaces.defaultSpaceDescription": "これはデフォルトのスペースです!", "xpack.spaces.defaultSpaceTitle": "デフォルト", "xpack.spaces.displayName": "スペース", + "xpack.spaces.embeddableLegacyUrlConflict.calloutTitle": "このJSONをコピーし、{documentationLink}で使用", + "xpack.spaces.embeddableLegacyUrlConflict.detailsButton": "詳細を表示", + "xpack.spaces.embeddableLegacyUrlConflict.messageText": "このパネルで2個の保存されたオブジェクトが見つかりました。このエラーを修正するには、レガシーURLエイリアスを無効にしてください。", "xpack.spaces.featureDescription": "ダッシュボードやその他の保存済みオブジェクトを、わかりやすいカテゴリー別に整理することができます。", + "xpack.spaces.legacyUrlConflict.calloutBodyText": "これが検索している{objectNoun}であることを確認してください。そうでない場合は、他の項目に移動します。{documentationLink}", + "xpack.spaces.legacyUrlConflict.calloutTitle": "2つの保存されたオブジェクトがこのURLを使用します", + "xpack.spaces.legacyUrlConflict.dismissButton": "閉じる", + "xpack.spaces.legacyUrlConflict.documentationLinkText": "詳細", + "xpack.spaces.legacyUrlConflict.linkButton": "他の{objectNoun}に移動", + "xpack.spaces.legacyURLConflict.toolTipText": "この{objectNoun}は[id={currentObjectId}]です。他の{objectNoun}は[id={otherObjectId}]です。", "xpack.spaces.management.advancedSettingsSubtitle.applyingSettingsOnPageToSpaceDescription": "このページの設定は、別途指定されていない限り {spaceName}’スペースに適用されます。", "xpack.spaces.management.advancedSettingsTitle.settingsTitle": "設定", "xpack.spaces.management.confirmAlterActiveSpaceModal.cancelButton": "キャンセル", @@ -23699,6 +24973,8 @@ "xpack.spaces.navControl.spacesMenu.changeCurrentSpaceTitle": "現在のスペースの変更", "xpack.spaces.navControl.spacesMenu.findSpacePlaceholder": "スペースを検索", "xpack.spaces.navControl.spacesMenu.noSpacesFoundTitle": " スペースが見つかりません ", + "xpack.spaces.redirectLegacyUrlToast.text": "検索している{objectNoun}は新しい場所にあります。今後はこのURLを使用してください。", + "xpack.spaces.redirectLegacyUrlToast.title": "新しいURLに移動しました", "xpack.spaces.shareToSpace.aliasTableCalloutTitle": "レガシーURL競合", "xpack.spaces.shareToSpace.allSpacesTarget": "すべてのスペース", "xpack.spaces.shareToSpace.cancelButton": "キャンセル", @@ -23773,7 +25049,7 @@ "xpack.stackAlerts.esQuery.invalidQueryErrorMessage": "無効なクエリが指定されました: \"{query}\" - クエリはJSONでなければなりません", "xpack.stackAlerts.esQuery.invalidThreshold2ErrorMessage": "[threshold]:「{thresholdComparator}」比較子の場合には2つの要素が必要です", "xpack.stackAlerts.esQuery.invalidWindowSizeErrorMessage": "windowSizeの無効な形式:\"{windowValue}\"", - "xpack.stackAlerts.esQuery.missingEsQueryErrorMessage": "[esQuery]: must contain \"query\"", + "xpack.stackAlerts.esQuery.missingEsQueryErrorMessage": "[esQuery]:「query」を含む必要があります", "xpack.stackAlerts.esQuery.ui.alertParams.fixErrorInExpressionBelowValidationMessage": "下の表現のエラーを修正してください。", "xpack.stackAlerts.esQuery.ui.alertType.defaultActionMessage": "Elasticsearchクエリアラート'\\{\\{alertName\\}\\}'が有効です。\n\n- 値:\\{\\{context.value\\}\\}\n- 満たされた条件:\\{\\{context.conditions\\}\\} over \\{\\{params.timeWindowSize\\}\\}\\{\\{params.timeWindowUnit\\}\\}\n- タイムスタンプ:\\{\\{context.date\\}\\}", "xpack.stackAlerts.esQuery.ui.alertType.descriptionText": "Elasticsearchクエリと一致したときにアラートを発行します。", @@ -23883,7 +25159,6 @@ "xpack.timelines.alerts.summaryView.options.summaryView.description": "各アラートのイベントフローのレンダリングを表示", "xpack.timelines.beatFields.errorSearchDescription": "Beatフィールドの取得でエラーが発生しました", "xpack.timelines.beatFields.failSearchDescription": "Beat フィールドで検索を実行できませんでした", - "xpack.timelines.cases.caseView.create": "新規ケースを作成", "xpack.timelines.cases.timeline.actions.addCase": "ケースに追加", "xpack.timelines.cases.timeline.actions.addExistingCase": "既存のケースに追加", "xpack.timelines.cases.timeline.actions.addNewCase": "新しいケースに追加", @@ -23935,6 +25210,8 @@ "xpack.timelines.hoverActions.addToTimeline.addedFieldMessage": "{fieldOrValue}をタイムラインに追加しました", "xpack.timelines.hoverActions.columnToggleLabel": "表の{field}列を切り替える", "xpack.timelines.hoverActions.fieldLabel": "フィールド", + "xpack.timelines.hoverActions.filterIn": "フィルタリング", + "xpack.timelines.hoverActions.filterOut": "除外", "xpack.timelines.hoverActions.moreActions": "さらにアクションを表示", "xpack.timelines.hoverActions.nestedColumnToggleLabel": "{field}フィールドはオブジェクトであり、列として追加できるネストされたフィールドに分解されます", "xpack.timelines.hoverActions.tooltipWithKeyboardShortcut.pressTooltipLabel": "プレス", @@ -23951,6 +25228,8 @@ "xpack.timelines.lastUpdated.updated": "更新しました", "xpack.timelines.lastUpdated.updating": "更新中...", "xpack.timelines.tgrid.body.ariaLabel": "アラート", + "xpack.timelines.tgrid.empty.description": "期間を長くして検索するか、検索を変更してください", + "xpack.timelines.tgrid.empty.title": "検索条件と一致する結果がありません。", "xpack.timelines.tGrid.eventsLabel": "イベント", "xpack.timelines.tGrid.footer.loadingEventsDataLabel": "イベントを読み込み中", "xpack.timelines.tGrid.footer.totalCountOfEvents": "イベント", @@ -23984,7 +25263,7 @@ "xpack.timelines.timeline.body.sort.sortedDescendingTooltip": "降順で並べ替えます", "xpack.timelines.timeline.categoryTooltip": "カテゴリー", "xpack.timelines.timeline.closedAlertFailedToastMessage": "アラートをクローズできませんでした。", - "xpack.timelines.timeline.closeSelectedTitle": "選択した項目を閉じる", + "xpack.timelines.timeline.closeSelectedTitle": "クローズ済みに設定", "xpack.timelines.timeline.descriptionTooltip": "説明", "xpack.timelines.timeline.eventHasEventRendererScreenReaderOnly": "行{row}のイベントにはイベントレンダラーがあります。Shiftと下矢印を押すとフォーカスします。", "xpack.timelines.timeline.eventsTableAriaLabel": "イベント; {activePage}/{totalPages} ページ", @@ -24017,6 +25296,7 @@ "xpack.transform.agg.popoverForm.filerAgg.term.errorFetchSuggestions": "候補を取得できません", "xpack.transform.agg.popoverForm.filerAgg.term.valueLabel": "値", "xpack.transform.agg.popoverForm.filerAggLabel": "フィルタークエリ", + "xpack.transform.agg.popoverForm.filerQueryAdvancedSuggestionTooltip": "他のフィルタークエリアグリゲーションを追加するには、JSON構成を編集します。", "xpack.transform.agg.popoverForm.nameLabel": "集約名", "xpack.transform.agg.popoverForm.percentsLabel": "パーセント", "xpack.transform.agg.popoverForm.sortDirectionTopMetricsLabel": "並べ替え方向", @@ -24025,12 +25305,26 @@ "xpack.transform.agg.popoverForm.unsupportedAggregationHelpText": "このフォームでは集約名のみを編集できます。詳細エディターを使用して、集約の他の部分を編集してください。", "xpack.transform.aggLabelForm.deleteItemAriaLabel": "アイテムを削除", "xpack.transform.aggLabelForm.editAggAriaLabel": "集約を編集", + "xpack.transform.alertingRuleTypes.transformHealth.actionGroupName": "問題が検出されました", + "xpack.transform.alertingRuleTypes.transformHealth.description": "変換で処理の問題が発生しているときにアラートで通知します。", + "xpack.transform.alertingRuleTypes.transformHealth.fetchErrorMessage": "変換を取得できません", + "xpack.transform.alertingRuleTypes.transformHealth.name": "変換の正常性", + "xpack.transform.alertTypes.transformHealth.alertContext.messageDescription": "アラート情報メッセージ", + "xpack.transform.alertTypes.transformHealth.alertContext.resultsDescription": "ルール実行結果", + "xpack.transform.alertTypes.transformHealth.defaultActionMessage": "[\\{\\{rule.name\\}\\}] 変換正常性チェック結果:\n\\{\\{context.message\\}\\}\n\\{\\{#context.results\\}\\}\n 変換ID:\\{\\{transform_id\\}\\}\n \\{\\{#description\\}\\}変換の説明:\\{\\{description\\}\\}\n \\{\\{/description\\}\\}\\{\\{#transform_state\\}\\}変換の状態:\\{\\{transform_state\\}\\}\n \\{\\{/transform_state\\}\\}\\{\\{#failure_reason\\}\\}失敗理由:\\{\\{failure_reason\\}\\}\n \\{\\{/failure_reason\\}\\}\\{\\{#notification_message\\}\\}通知メッセージ:\\{\\{notification_message\\}\\}\n \\{\\{/notification_message\\}\\}\\{\\{#node_name\\}\\}ノード名:\\{\\{node_name\\}\\}\n \\{\\{/node_name\\}\\}\\{\\{#timestamp\\}\\}Timestamp: \\{\\{timestamp\\}\\}\n \\{\\{/timestamp\\}\\}\n\n\\{\\{/context.results\\}\\}\n", + "xpack.transform.alertTypes.transformHealth.excludeTransformsLabel": "変換を除外", + "xpack.transform.alertTypes.transformHealth.includeTransforms.errorMessage": "1つ以上の変換を選択する必要があります", + "xpack.transform.alertTypes.transformHealth.includeTransformsLabel": "変換を含む", + "xpack.transform.alertTypes.transformHealth.notStartedCheckDescription": "変換が開始しないか、データにインデックスを作成していないときにアラートを受信します。", + "xpack.transform.alertTypes.transformHealth.notStartedCheckName": "変換が開始していません", + "xpack.transform.alertTypes.transformHealth.testsSelection.enableTestLabel": "有効にする", "xpack.transform.app.checkingPrivilegesDescription": "権限を確認中…", "xpack.transform.app.checkingPrivilegesErrorMessage": "サーバーからユーザー特権を取得しているときにエラーが発生しました", "xpack.transform.app.deniedPrivilegeDescription": "変換のこのセクションを使用するには、{privilegesCount, plural, one {このクラスター特権} other {これらのクラスター特権}}が必要です:{missingPrivileges}。", "xpack.transform.app.deniedPrivilegeTitle": "クラスター特権が足りません", "xpack.transform.appName": "変換", "xpack.transform.appTitle": "変換", + "xpack.transform.capability.noPermission.canCreateTransformAlertsTooltip": "変換アラートルールを作成するアクセス権がありません。", "xpack.transform.capability.noPermission.createTransformTooltip": "データフレーム変換を作成するパーミッションがありません。", "xpack.transform.capability.noPermission.deleteTransformTooltip": "データフレーム変換を削除するパーミッションがありません。", "xpack.transform.capability.noPermission.noTransformNodesTooltip": "利用可能な変換ノードがありません。", @@ -24044,6 +25338,7 @@ "xpack.transform.deleteTransform.deleteAnalyticsWithIndexErrorMessage": "ディスティネーションインデックス{destinationIndex}の削除中にエラーが発生しました", "xpack.transform.deleteTransform.deleteAnalyticsWithIndexSuccessMessage": "ディスティネーションインデックス{destinationIndex}を削除する要求が確認されました。", "xpack.transform.description": "説明", + "xpack.transform.edit.errorPromptText": "ソースインデックスパターンが存在するかどうかを確認するときにエラーが発生しました", "xpack.transform.groupby.popoverForm.aggLabel": "アグリゲーション", "xpack.transform.groupBy.popoverForm.aggNameAlreadyUsedError": "別のグループ分けの構成がすでにこの名前を使用しています。", "xpack.transform.groupBy.popoverForm.aggNameInvalidCharError": "無効な名前です。「[」、「]」「>」は使用できず、名前の始めと終わりにはスペースを使用できません。", @@ -24092,10 +25387,12 @@ "xpack.transform.stepCreateForm.continuousModeLabel": "連続モード", "xpack.transform.stepCreateForm.copyTransformConfigToClipboardButton": "クリップボードにコピー", "xpack.transform.stepCreateForm.copyTransformConfigToClipboardDescription": "ジョブを作成する Kibana 開発コンソールのコマンドをクリップボードにコピーします。", + "xpack.transform.stepCreateForm.createAlertRuleButton": "アラートルールを作成", + "xpack.transform.stepCreateForm.createAlertRuleDescription": "ウィザードを開き、変換の正常性を監視するアラートルールを作成します。", "xpack.transform.stepCreateForm.createAndStartTransformButton": "作成して開始", "xpack.transform.stepCreateForm.createAndStartTransformDescription": "変換を作成して開始します。変換は、クラスターの検索とインデックスによる負荷を増やします。過剰な負荷が生じた場合は変換を停止してください。変換の開始後、変換の閲覧を続けるオプションが提供されます。", "xpack.transform.stepCreateForm.createTransformButton": "作成", - "xpack.transform.stepCreateForm.createTransformDescription": "変換を開始せずに作成します。変換は後程変換リストに戻って開始できます。", + "xpack.transform.stepCreateForm.createTransformDescription": "開始せずに変換を作成します。変換は後程変換リストに戻って開始できます。", "xpack.transform.stepCreateForm.createTransformErrorMessage": "変換 {transformId} の取得中にエラーが発生しました。", "xpack.transform.stepCreateForm.createTransformSuccessMessage": "データフレームジョブ {transformId} が作成されました。", "xpack.transform.stepCreateForm.discoverCardDescription": "ディスカバリでデータフレームピボットを閲覧します。", @@ -24226,9 +25523,11 @@ "xpack.transform.toastText.modalTitle": "詳細を入力", "xpack.transform.toastText.openModalButtonText": "詳細を表示", "xpack.transform.transformForm.sizeNotationPlaceholder": "例:{example1}、{example2}、{example3}、{example4}", + "xpack.transform.transformList.alertingRules.screenReaderDescription": "アラートルールがが変換に関連付けられているときには、この列にアイコンが表示されます", "xpack.transform.transformList.cloneActionNameText": "クローンを作成", "xpack.transform.transformList.completeBatchTransformBulkActionToolTip": "1 つまたは複数の変換が完了済みの一斉変換で、再度開始できません。", "xpack.transform.transformList.completeBatchTransformToolTip": "{transformId} は完了済みのバッチジョブで、再度開始できません。", + "xpack.transform.transformList.createAlertRuleNameText": "アラートルールを作成", "xpack.transform.transformList.createTransformButton": "変換の作成", "xpack.transform.transformList.deleteActionDisabledToolTipContent": "削除するにはデータフレームジョブを停止してください。", "xpack.transform.transformList.deleteActionNameText": "削除", @@ -24265,7 +25564,9 @@ "xpack.transform.transformList.editFlyoutFormRequiredErrorMessage": "必須フィールド。", "xpack.transform.transformList.editFlyoutFormRetentionMaxAgeFieldLabel": "最大年齢", "xpack.transform.transformList.editFlyoutFormRetentionPolicyButtonContent": "保持ポリシー", + "xpack.transform.transformList.editFlyoutFormRetentionPolicyDateFieldHelpText": "デスティネーションインデックスで古いドキュメントを特定するために使用できる日付フィールドを選択します。", "xpack.transform.transformList.editFlyoutFormRetentionPolicyFieldLabel": "フィールド", + "xpack.transform.transformList.editFlyoutFormRetentionPolicyFieldSelectAriaLabel": "保持ポリシーを設定する日付フィールド", "xpack.transform.transformList.editFlyoutFormRetentionPolicyMaxAgeNotValidErrorMessage": "無効な最大年齢形式です。60秒以上が必要です。", "xpack.transform.transformList.editFlyoutFormStringNotValidErrorMessage": "値は文字列型でなければなりません。", "xpack.transform.transformList.editFlyoutTitle": "{transformId}を編集", @@ -24293,6 +25594,7 @@ "xpack.transform.transformList.stopTransformResponseSchemaErrorMessage": "変換停止要求の呼び出し中にエラーが発生しました。", "xpack.transform.transformList.stopTransformSuccessMessage": "データフレームジョブ {transformId} が停止しました。", "xpack.transform.transformList.transformDescription": "変換を使用して、既存のElasticsearchインデックスを要約されたエンティティ中心のインデックスにピボットするか、最新のドキュメントのインデックス付きビューを作成し、高速アクセスを可能にします。", + "xpack.transform.transformList.transformDetails.alertRulesTitle": "アラートルール", "xpack.transform.transformList.transformDetails.expandedRowJsonPane": "変換構成のJSON", "xpack.transform.transformList.transformDetails.messagesPane.errorMessage": "メッセージを読み込めませんでした", "xpack.transform.transformList.transformDetails.messagesPane.messageLabel": "メッセージ", @@ -24368,8 +25670,18 @@ "xpack.triggersActionsUI.components.addMessageVariables.addRuleVariableTitle": "ルール変数を追加", "xpack.triggersActionsUI.components.addMessageVariables.addVariablePopoverButton": "変数を追加", "xpack.triggersActionsUI.components.builtinActionTypes.common.requiredShortDescTextField": "短い説明が必要です。", + "xpack.triggersActionsUI.components.builtinActionTypes.email.exchangeForm.clientIdHelpLabel": "クライアントIDの構成", + "xpack.triggersActionsUI.components.builtinActionTypes.email.exchangeForm.clientSecretHelpLabel": "クライアントシークレットの構成", + "xpack.triggersActionsUI.components.builtinActionTypes.email.exchangeForm.tenantIdHelpLabel": "テナントIDの構成", "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.actionTypeTitle": "メールに送信", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.amazonSesServerTypeLabel": "Amazon SES", "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.configureAccountsHelpLabel": "電子メールアカウントの構成", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.elasticCloudServerTypeLabel": "Elastic Cloud", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.exchangeServerTypeLabel": "MS Exchange Server", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.gmailServerTypeLabel": "Gmail", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.otherServerTypeLabel": "その他", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.outlookServerTypeLabel": "Outlook", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.reenterClientSecretLabel": "クライアントシークレットは暗号化されています。このフィールドの値を再入力してください。", "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.reenterValuesLabel": "ユーザー名とパスワードは暗号化されます。これらのフィールドの値を再入力してください。", "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.selectMessageText": "サーバーからメールを送信します。", "xpack.triggersActionsUI.components.builtinActionTypes.error.badIndexOverrideSuffix": "アラート履歴インデックスには有効なサフィックスを含める必要があります。", @@ -24377,6 +25689,8 @@ "xpack.triggersActionsUI.components.builtinActionTypes.error.formatFromText": "送信元は有効なメールアドレスではありません。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredAuthPasswordText": "パスワードが必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredAuthUserNameText": "ユーザー名が必要です。", + "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredClientIdText": "クライアントIDは必須です。", + "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredClientSecretText": "クライアントシークレットは必須です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredDocumentJson": "ドキュメントが必要です。有効なJSONオブジェクトにしてください。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredEntryText": "To、Cc、または Bcc のエントリーがありません。 1 つ以上のエントリーが必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredFromText": "送信元が必要です。", @@ -24385,8 +25699,10 @@ "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredPasswordText": "ユーザー名の使用時にはパスワードが必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredPortText": "ポートが必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredServerLogMessageText": "メッセージが必要です。", + "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredServiceText": "サービスは必須です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredSlackMessageText": "メッセージが必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredSubjectText": "件名が必要です。", + "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredTenantIdText": "テナントIDは必須です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredUserText": "パスワードの使用時にはユーザー名が必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredWebhookBodyText": "本文が必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.indexAction.actionTypeTitle": "データをインデックスする", @@ -24501,32 +25817,75 @@ "xpack.triggersActionsUI.components.builtinActionTypes.serverLogAction.logLevelFieldLabel": "レベル", "xpack.triggersActionsUI.components.builtinActionTypes.serverLogAction.logMessageFieldLabel": "メッセージ", "xpack.triggersActionsUI.components.builtinActionTypes.serverLogAction.selectMessageText": "Kibana ログにメッセージを追加します。", - "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.apiUrlTextFieldLabel": "URL", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.apiInfoError": "アプリケーション情報の取得を試みるときの受信ステータス:{status}", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.apiUrlHelpText": "完全なURLを含めます。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.apiUrlTextFieldLabel": "ServiceNowインスタンスURL", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.appInstallationInfo": "{update} {create} ", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.applicationRequiredCallout": "Elastic ServiceNowアプリがインストールされていません", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.applicationRequiredCallout.content": "ServiceNowアプリストアに移動し、アプリケーションをインストールしてください", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.applicationRequiredCallout.errorMessage": "エラーメッセージ", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.authenticationLabel": "認証", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.cancelButtonText": "キャンセル", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.categoryTitle": "カテゴリー", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.commentsTextAreaFieldLabel": "追加のコメント", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.confirmButtonText": "更新", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.correlationDisplay": "相関関係表示(オプション)", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.correlationID": "相関関係ID(オプション)", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.deprecatedCalloutCreate": "または新規作成します。", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.deprecatedCalloutMigrate": "このコネクターを更新します", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.deprecatedCalloutTitle": "このコネクターは廃止予定です", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.descriptionTextAreaFieldLabel": "説明", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.eventClassTextAreaFieldLabel": "ソースインスタンス", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.impactSelectFieldLabel": "インパクト", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.install": "インストール", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.installationCalloutTitle": "このコネクターを使用するには、まずServiceNowアプリストアからElasticアプリをインストールします。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.invalidApiUrlTextField": "URL が無効です。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.messageKeyTextAreaFieldLabel": "メッセージキー", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.metricNameTextAreaFieldLabel": "メトリック名", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.nodeTextAreaFieldLabel": "ノード", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.passwordTextFieldLabel": "パスワード", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.prioritySelectFieldLabel": "優先度", - "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.reenterValuesLabel": "ユーザー名とパスワードは暗号化されます。これらのフィールドの値を再入力してください。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.reenterValuesLabel": "コネクターを編集するたびに認証する必要があります。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.rememberValuesLabel": "これらの値を覚えておいてください。コネクターを編集するたびに再入力する必要があります。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requiredApiUrlTextField": "URL が必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requiredPasswordTextField": "パスワードが必要です。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requiredSeverityTextField": "重要度は必須です。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requiredUsernameTextField": "ユーザー名が必要です。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requireHttpsApiUrlTextField": "URL は https:// から始める必要があります。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.resourceTextAreaFieldLabel": "リソース", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.setupDevInstance": "開発者インスタンスを設定", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.severityRequiredSelectFieldLabel": "重要度(必須)", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.severitySelectFieldLabel": "深刻度", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.snInstanceLabel": "ServiceNowインスタンス", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.sourceTextAreaFieldLabel": "送信元", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.subcategoryTitle": "サブカテゴリー", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.title": "インシデント", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.titleFieldLabel": "短い説明(必須)", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.typeTextAreaFieldLabel": "型", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.unableToGetChoicesMessage": "選択肢を取得できません", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.unknown": "不明", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.updateCalloutText": "コネクターが更新されました。", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.updateFormCredentialsTitle": "認証資格情報を入力", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.updateFormInstallTitle": "Elastic ServiceNowアプリをインストール", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.updateFormTitle": "ServiceNowコネクターを更新", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.updateFormUrlTitle": "ServiceNowインスタンスURLを入力", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.updateSuccessToastTitle": "{connectorName}コネクターが更新されました", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.urgencySelectFieldLabel": "緊急", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.usernameTextFieldLabel": "ユーザー名", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.visitSNStore": "ServiceNowアプリストアにアクセス", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.warningMessage": "このコネクターのすべてのインスタンスが更新され、元に戻せません。", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowAction.apiUrlHelpLabel": "任意のServiceNowインスタンスへの完全なURLを入力します。ない場合は、{instance}。", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowAction.correlationIDHelpLabel": "インシデントを更新するID", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowAction.serviceNowAppRunning": "更新を実行する前に、ServiceNowアプリストアからElasticアプリをインストールする必要があります。アプリをインストールするには、{visitLink}", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowITOM.actionTypeTitle": "ServiceNow ITOM", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenowITOM.event": "イベント", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowITOM.selectMessageText": "ServiceNow ITOMでイベントを作成します。", "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowITSM.actionTypeTitle": "ServiceNow ITSM", "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowITSM.selectMessageText": "ServiceNow ITSMでインシデントを作成します。", "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowSIR.actionTypeTitle": "ServiceNow SecOps", "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowSIR.selectMessageText": "ServiceNow SecOpsでインシデントを作成します。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenowSIR.title": "セキュリティインシデント", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowSIRAction.correlationIDHelpLabel": "インシデントを更新するID", "xpack.triggersActionsUI.components.builtinActionTypes.slackAction.actionTypeTitle": "Slack に送信", "xpack.triggersActionsUI.components.builtinActionTypes.slackAction.error.invalidWebhookUrlText": "Web フック URL が無効です。", "xpack.triggersActionsUI.components.builtinActionTypes.slackAction.error.requiredWebhookUrlText": "Web フック URL が必要です。", @@ -24619,9 +25978,15 @@ "xpack.triggersActionsUI.components.healthCheck.alertsError": "ルールを作製するには、アラートおよびアクションプラグインを有効にする必要があります。", "xpack.triggersActionsUI.components.healthCheck.alertsErrorAction": "方法を確認してください。", "xpack.triggersActionsUI.components.healthCheck.alertsErrorTitle": "アラートとアクションを有効にする必要があります", - "xpack.triggersActionsUI.components.healthCheck.encryptionErrorAction": "方法を確認してください。", - "xpack.triggersActionsUI.components.healthCheck.encryptionErrorBeforeKey": "ルールを作成するには、値を設定します ", - "xpack.triggersActionsUI.components.healthCheck.encryptionErrorTitle": "暗号化された保存されたオブジェクトがありません", + "xpack.triggersActionsUI.components.healthCheck.apiKeysAndEncryptionError": "Alertingを使用するには、APIキーを有効にして、暗号化鍵を構成する必要があります。", + "xpack.triggersActionsUI.components.healthCheck.apiKeysAndEncryptionErrorAction": "詳細情報", + "xpack.triggersActionsUI.components.healthCheck.apiKeysAndEncryptionErrorTitle": "追加の設定が必要です", + "xpack.triggersActionsUI.components.healthCheck.apiKeysDisabledError": "Alertingを使用するには、APIキーを有効にする必要があります。", + "xpack.triggersActionsUI.components.healthCheck.apiKeysDisabledErrorAction": "詳細情報", + "xpack.triggersActionsUI.components.healthCheck.apiKeysDisabledErrorTitle": "追加の設定が必要です", + "xpack.triggersActionsUI.components.healthCheck.encryptionErrorAction": "詳細情報", + "xpack.triggersActionsUI.components.healthCheck.encryptionErrorBeforeKey": "Alertingを使用するには、暗号化鍵を構成する必要があります。", + "xpack.triggersActionsUI.components.healthCheck.encryptionErrorTitle": "追加の設定が必要です", "xpack.triggersActionsUI.connectors.breadcrumbTitle": "コネクター", "xpack.triggersActionsUI.data.coreQueryParams.aggTypeRequiredErrorMessage": "[aggType]が「{aggType}」のときには[aggField]に値が必要です", "xpack.triggersActionsUI.data.coreQueryParams.dateStartGTdateEndErrorMessage": "[dateStart]が[dateEnd]よりも大です", @@ -24686,6 +26051,7 @@ "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.deleteActionDisabledDescription": "コネクターを削除できません", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.deleteActionName": "削除", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.fixActionDescription": "コネクター構成を修正", + "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.isDeprecatedDescription": "このコネクターは廃止予定です。更新するか新しく作成してください。", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.missingSecretsDescription": "機密情報はインポートされませんでした", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.runConnectorDescription": "このコネクターを実行", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.runConnectorDisabledDescription": "コネクターを実行できません", @@ -24731,15 +26097,10 @@ "xpack.triggersActionsUI.sections.alertAdd.saveSuccessNotificationText": "ルール\"{ruleName}\"を作成しました", "xpack.triggersActionsUI.sections.alertAddFooter.cancelButtonLabel": "キャンセル", "xpack.triggersActionsUI.sections.alertAddFooter.saveButtonLabel": "保存", + "xpack.triggersActionsUI.sections.alertDetails.actionWithBrokenConnectorWarningBannerEditText": "ルールを編集", + "xpack.triggersActionsUI.sections.alertDetails.actionWithBrokenConnectorWarningBannerTitle": "このルールに関連付けられたコネクターの1つで問題が発生しています。", "xpack.triggersActionsUI.sections.alertDetails.alertDetailsTitle": "{alertName}", - "xpack.triggersActionsUI.sections.alertDetails.alertInstances.disabledRule": "このルールは無効になっていて再表示できません。[↑ を無効にする]を切り替えてアクティブにします。", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.alert": "アラート", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.duration": "期間", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.mute": "ミュート", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.start": "開始", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.status": "ステータス", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.status.active": "アクティブ", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.status.inactive": "回復済み", + "xpack.triggersActionsUI.sections.alertDetails.alertInstances.disabledRule": "このルールは無効になっていて再表示できません。", "xpack.triggersActionsUI.sections.alertDetails.alerts.disabledRuleTitle": "無効なルール", "xpack.triggersActionsUI.sections.alertDetails.collapsedItemActons.enableLoadingTitle": "有効にする", "xpack.triggersActionsUI.sections.alertDetails.collapsedItemActons.enableTitle": "有効にする", @@ -24748,6 +26109,7 @@ "xpack.triggersActionsUI.sections.alertDetails.dismissButtonTitle": "閉じる", "xpack.triggersActionsUI.sections.alertDetails.editAlertButtonLabel": "編集", "xpack.triggersActionsUI.sections.alertDetails.manageLicensePlanBannerLinkTitle": "ライセンスの管理", + "xpack.triggersActionsUI.sections.alertDetails.redirectObjectNoun": "ルール", "xpack.triggersActionsUI.sections.alertDetails.unableToLoadAlertMessage": "ルールを読み込めません:{message}", "xpack.triggersActionsUI.sections.alertDetails.unableToLoadAlertsMessage": "アラートを読み込めません:{message}", "xpack.triggersActionsUI.sections.alertDetails.viewAlertInAppButtonLabel": "アプリで表示", @@ -24775,6 +26137,7 @@ "xpack.triggersActionsUI.sections.alertForm.conditions.removeConditionLabel": "削除", "xpack.triggersActionsUI.sections.alertForm.conditions.title": "条件:", "xpack.triggersActionsUI.sections.alertForm.documentationLabel": "ドキュメント", + "xpack.triggersActionsUI.sections.alertForm.error.belowMinimumText": "間隔はこのルールタイプの最小値({minimum})未満です", "xpack.triggersActionsUI.sections.alertForm.error.noAuthorizedRuleTypes": "ルールを{operation}するには、適切な権限が付与されている必要があります。", "xpack.triggersActionsUI.sections.alertForm.error.noAuthorizedRuleTypesTitle": "ルールタイプを{operation}する権限がありません。", "xpack.triggersActionsUI.sections.alertForm.error.requiredActionConnector": "{actionTypeId}コネクターのアクションが必要です。", @@ -24798,15 +26161,17 @@ "xpack.triggersActionsUI.sections.alertsList.alertErrorReasonRunning": "ルールの実行中にエラーが発生しました。", "xpack.triggersActionsUI.sections.alertsList.alertErrorReasonUnknown": "不明な理由でエラーが発生しました。", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.actionsTex": "アクション", + "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.actionsWarningTooltip": "このルールに関連付けられたコネクターの1つを読み込めません。ルールを編集して、新しいコネクターを選択します。", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.alertTypeTitle": "型", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.deleteAriaLabel": "削除", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.deleteButtonTooltip": "削除", + "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.durationTitle": "ルールを実行するのにかかる時間。", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.editAriaLabel": "編集", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.editButtonTooltip": "編集", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.enabledTitle": "有効", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.mutedBadge": "ミュート", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.nameTitle": "名前", - "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.scheduleTitle": "次の間隔で実行", + "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.scheduleTitle": "間隔", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.statusTitle": "ステータス", "xpack.triggersActionsUI.sections.alertsList.alertStatusActive": "アクティブ", "xpack.triggersActionsUI.sections.alertsList.alertStatusError": "エラー", @@ -24840,14 +26205,14 @@ "xpack.triggersActionsUI.sections.alertsList.noPermissionToCreateTitle": "ルールを作成する権限がありません", "xpack.triggersActionsUI.sections.alertsList.refreshAlertsButtonLabel": "更新", "xpack.triggersActionsUI.sections.alertsList.resetDefaultIndexLabel": "デフォルトのインデックスをリセット", + "xpack.triggersActionsUI.sections.alertsList.ruleTypeExcessDurationMessage": "期間がルールの想定実行時間を超えています。", "xpack.triggersActionsUI.sections.alertsList.searchPlaceholderTitle": "検索", "xpack.triggersActionsUI.sections.alertsList.singleTitle": "ルール", "xpack.triggersActionsUI.sections.alertsList.totalItemsCountDescription": "{pageSize}/{totalItemCount}件のルールを表示しています。", - "xpack.triggersActionsUI.sections.alertsList.totalStatusesActiveDescription": "有効:{totalStatusesActive}", + "xpack.triggersActionsUI.sections.alertsList.totalStatusesActiveDescription": "アクティブ:{totalStatusesActive}", "xpack.triggersActionsUI.sections.alertsList.totalStatusesErrorDescription": "エラー:{totalStatusesError}", "xpack.triggersActionsUI.sections.alertsList.totalStatusesOkDescription": "Ok:{totalStatusesOk}", - "xpack.triggersActionsUI.sections.alertsList.totalStatusesPendingDescription": "保留中:{totalStatusesPending}", - "xpack.triggersActionsUI.sections.alertsList.totalStatusesUnknownDescription": "不明:{totalStatusesUnknown}", + "xpack.triggersActionsUI.sections.alertsList.totalStatusesPendingDescription": "保留:{totalStatusesPending}", "xpack.triggersActionsUI.sections.alertsList.typeFilterLabel": "型", "xpack.triggersActionsUI.sections.alertsList.unableToLoadConnectorTypesMessage": "コネクタータイプを読み込めません", "xpack.triggersActionsUI.sections.alertsList.unableToLoadRulesMessage": "ルールを読み込めません", @@ -24857,6 +26222,8 @@ "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.addBccButton": "Bcc", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.addCcButton": "Cc", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.authenticationLabel": "認証", + "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.clientIdFieldLabel": "クライアントID", + "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.clientSecretTextFieldLabel": "クライアントシークレット", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.fromTextFieldLabel": "送信元", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.hasAuthSwitchLabel": "このサーバーの認証が必要です", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.hostTextFieldLabel": "ホスト", @@ -24867,7 +26234,9 @@ "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.recipientCopyTextFieldLabel": "Cc", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.recipientTextFieldLabel": "終了:", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.secureSwitchLabel": "セキュア", + "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.serviceTextFieldLabel": "サービス", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.subjectTextFieldLabel": "件名", + "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.tenantIdFieldLabel": "テナントID", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.userTextFieldLabel": "ユーザー名", "xpack.triggersActionsUI.sections.confirmAlertClose.confirmAlertCloseCancelButtonText": "キャンセル", "xpack.triggersActionsUI.sections.confirmAlertClose.confirmAlertCloseConfirmButtonText": "変更を破棄", @@ -24896,6 +26265,9 @@ "xpack.triggersActionsUI.sections.editConnectorForm.tabText": "構成", "xpack.triggersActionsUI.sections.editConnectorForm.updateErrorNotificationText": "コネクターを更新できません。", "xpack.triggersActionsUI.sections.editConnectorForm.updateSuccessNotificationText": "「{connectorName}」を更新しました", + "xpack.triggersActionsUI.sections.executionDurationChart.executionDurationNoData": "このルールの実行がありません。", + "xpack.triggersActionsUI.sections.executionDurationChart.recentDurationsTitle": "最近の実行時間", + "xpack.triggersActionsUI.sections.executionDurationChart.recentDurationsTooltip": "最近のルール実行には、前回の{numExecutions}実行までが含まれています。", "xpack.triggersActionsUI.sections.manageLicense.manageLicenseCancelButtonText": "キャンセル", "xpack.triggersActionsUI.sections.manageLicense.manageLicenseConfirmButtonText": "ライセンスの管理", "xpack.triggersActionsUI.sections.manageLicense.manageLicenseMessage": "ルールタイプ{alertTypeId}は無効です。{licenseRequired}ライセンスが必要です。アップグレードオプションを表示するには、[ライセンス管理]に移動してください。", @@ -24919,14 +26291,14 @@ "xpack.triggersActionsUI.typeRegistry.get.missingActionTypeErrorMessage": "オブジェクトタイプ「{id}」は登録されていません。", "xpack.triggersActionsUI.typeRegistry.register.duplicateObjectTypeErrorMessage": "オブジェクトタイプ「{id}」はすでに登録されています。", "xpack.uiActionsEnhanced.components.actionWizard.betaActionLabel": "ベータ", - "xpack.uiActionsEnhanced.components.actionWizard.betaActionTooltip": "このアクションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャルGA機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャルGA機能のSLAが適用されません。バグを報告したり、その他のフィードバックを提供したりして、当社を支援してください。", + "xpack.uiActionsEnhanced.components.actionWizard.betaActionTooltip": "このアクションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャルGA機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャル GA 機能の SLA が適用されません。バグを報告したり、その他のフィードバックを提供したりして、当社を支援してください。", "xpack.uiActionsEnhanced.components.actionWizard.changeButton": "変更", "xpack.uiActionsEnhanced.components.actionWizard.insufficientLicenseLevelTooltip": "不十分なライセンスレベル", "xpack.uiActionsEnhanced.components.actionWizard.triggerPickerHelpText": "概要", "xpack.uiActionsEnhanced.components.actionWizard.triggerPickerHelpTooltip": "ドリルダウンがコンテキストメニューに表示されるタイミングを決定します。", "xpack.uiActionsEnhanced.components.actionWizard.triggerPickerLabel": "オプションを表示:", "xpack.uiActionsEnhanced.components.DrilldownForm.betaActionLabel": "ベータ", - "xpack.uiActionsEnhanced.components.DrilldownForm.betaActionTooltip": "このアクションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャルGA機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャルGA機能のSLAが適用されません。バグを報告したり、その他のフィードバックを提供したりして、当社を支援してください。", + "xpack.uiActionsEnhanced.components.DrilldownForm.betaActionTooltip": "このアクションはベータ段階で、変更される可能性があります。デザインとコードはオフィシャルGA機能よりも完成度が低く、現状のまま保証なしで提供されています。ベータ機能にはオフィシャル GA 機能の SLA が適用されません。バグを報告したり、その他のフィードバックを提供したりして、当社を支援してください。", "xpack.uiActionsEnhanced.components.DrilldownForm.changeButton": "変更", "xpack.uiActionsEnhanced.components.DrilldownForm.drilldownAction": "アクション", "xpack.uiActionsEnhanced.components.DrilldownForm.getMoreActionsLinkLabel": "さらにアクションを表示", @@ -25001,61 +26373,188 @@ "xpack.uiActionsEnhanced.drilldowns.urlDrilldownCollectConfig.urlTemplateVariablesHelpLinkText": "ヘルプ", "xpack.uiActionsEnhanced.drilldowns.urlDrilldownValidation.urlFormatErrorMessage": "無効な形式:{message}", "xpack.uiActionsEnhanced.drilldowns.urlDrilldownValidation.urlFormatGeneralErrorMessage": "無効なフォーマット。例:{exampleUrl}", - "xpack.upgradeAssistant.breadcrumb.esDeprecationsLabel": "Elasticsearchの廃止予定", - "xpack.upgradeAssistant.breadcrumb.kibanaDeprecationsLabel": "Kibanaの廃止予定", + "xpack.upgradeAssistant.appTitle": "アップグレードアシスタント", + "xpack.upgradeAssistant.breadcrumb.esDeprecationsLabel": "Elasticsearchの廃止予定の問題", + "xpack.upgradeAssistant.breadcrumb.kibanaDeprecationsLabel": "Kibanaの廃止予定の問題", "xpack.upgradeAssistant.breadcrumb.overviewLabel": "アップグレードアシスタント", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.cancelButtonLabel": "キャンセル", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.cancelButtonLabel": "戻る", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.closeButtonLabel": "閉じる", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.continueButtonLabel": "再インデックスを続ける", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.continueButtonLabel": "再インデックスを続行", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.fetchFailedCalloutTitle": "再インデックスステータスがありません", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.insufficientPrivilegeCallout.calloutTitle": "このインデックスを再インデックスするための権限がありません", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.readonlyCallout.backgroundResumeDetail": "再インデックスはバックグラウンドで継続しますが、Kibana がシャットダウンまたは再起動した場合、このページに戻り再インデックスを再開させる必要があります。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.readonlyCallout.backgroundResumeDetail": "再インデックスはバックグラウンドで実行されます。アップグレードアシスタントに戻って進捗状況を表示するか、Kibanaの再起動後に再インデックスを再開できます。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.reindexingLabel": "再インデックス中…", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.resumeLabel": "再開", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.runReindexLabel": "再インデックスを実行", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.restartLabel": "再インデックスの再起動", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.resumeLabel": "再インデックスの再開", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.runReindexLabel": "再インデックスの開始", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.tryAgainLabel": "再試行", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.aliasSwapStepTitle": "オリジナルのインデックスをエイリアスと交換中", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexDescription": "再インデックス中はインデックスが読み取り専用です。再インデックスが完了するまでは、ドキュメントの追加、更新、削除ができません。新しいクラスターを再インデックスする必要がある場合は、再インデックスAPIを使用します。{docsLink}", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.aliasSwapStepTitle": "元のインデックスをエイリアスと交換します。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancelLabel": "キャンセル", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancelledLabel": "キャンセル済み", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancellingLabel": "キャンセル中…", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.errorLabel": "キャンセルできませんでした", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.createIndexStepTitle": "新規インデックスを作成中", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.readonlyStepTitle": "古いインデックスを読み込み専用に設定中", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.reindexingDocumentsStepTitle": "ドキュメントを再インデックス中", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelledTitle": "再インデックスはキャンセルされました。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.createIndexStepTitle": "新しいインデックスを作成します。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.aliasSwapStepTitle": "元のインデックスをエイリアスと交換しています。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.createIndexStepTitle": "新しいインデックスを作成しています。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.readonlyStepTitle": "元のインデックスを読み取り専用に設定しています。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.reindexingDocumentsStepTitle": "ドキュメントを再インデックスしています。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.readonlyStepTitle": "元のインデックスを読み取り専用に設定します。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.reindexingDocumentsStepTitle": "ドキュメントのインデックスを作成します。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklistTitle": "プロセスを再インデックス中", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.customTypeNameWarningDetail": "マッピングタイプは8.0ではサポートされていません。アプリケーションコードまたはスクリプトが{mappingType}に依存していないことを確認してください。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingFailedCalloutTitle": "再インデックスエラー", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingInProgressTitle": "再インデックス中です...{percents}", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.flyoutHeader": "再インデックス{index}", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.learnMoreLinkLabel": "詳細", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.acceptChangesTitle": "変更を承諾", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.customTypeNameWarningDetail": "マッピングタイプはElastic 8.xではサポートされていません。アプリケーションコードまたはスクリプトが{mappingType}に依存していないことを確認してください。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.customTypeNameWarningTitle": "マッピングタイプ{mappingType}を{defaultType}で置き換えます", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.deprecatedIndexSettingsWarningDetail": "次の廃止予定のインデックス設定が検出されました。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.deprecatedIndexSettingsWarningTitle": "廃止予定のインデックス設定を削除", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.destructiveCallout.calloutDetail": "続行する前に、インデックスをバックアップしてください。再インデックスを続行するには、各変更を承諾してください。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.destructiveCallout.calloutTitle": "このインデックスには元に戻すことのできない破壊的な変更が含まれています", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.documentationLinkLabel": "ドキュメント", + "xpack.upgradeAssistant.deprecationBadge.criticalBadgeLabel": "重大", + "xpack.upgradeAssistant.deprecationBadge.resolvedBadgeLabel": "解決済み", + "xpack.upgradeAssistant.deprecationBadge.warningBadgeLabel": "警告", + "xpack.upgradeAssistant.deprecationCount.criticalStatusLabel": "重大:{count}", + "xpack.upgradeAssistant.deprecationCount.warningStatusLabel": "警告:{count}", + "xpack.upgradeAssistant.deprecationFlyout.learnMoreLinkLabel": "詳細", + "xpack.upgradeAssistant.deprecations.enabled.manualStepOneMessage": "kibana.yml構成ファイルを開きます。", + "xpack.upgradeAssistant.deprecations.enabled.manualStepTwoMessage": "「xpack.upgrade_assistant.enabled」設定を「xpack.upgrade_assistant.ui.enabled」に変更します。", + "xpack.upgradeAssistant.deprecations.enabledMessage": "ユーザーがアップグレードアシスタントUIにアクセスすることを禁止するには、「xpack.upgrade_assistant.enabled」ではなく、「xpack.upgrade_assistant.ui.enabled」設定を使用します。", + "xpack.upgradeAssistant.deprecations.enabledTitle": "「xpack.upgrade_assistant.enabled」設定は廃止予定です", + "xpack.upgradeAssistant.deprecationsPageLoadingError.title": "{deprecationSource}廃止予定の問題を取得できませんでした", + "xpack.upgradeAssistant.deprecationStats.criticalDeprecationsTitle": "重大", + "xpack.upgradeAssistant.deprecationStats.loadingErrorMessage": "Kibana廃止予定の問題を取得できませんでした。", + "xpack.upgradeAssistant.deprecationStats.warningDeprecationsTitle": "警告", "xpack.upgradeAssistant.emptyPrompt.learnMoreDescription": "{nextMajor}への移行に関する詳細をご覧ください。", "xpack.upgradeAssistant.emptyPrompt.title": "{uaVersion} アップグレードアシスタント", "xpack.upgradeAssistant.emptyPrompt.upgradeAssistantDescription": "アップグレードアシスタントはクラスターの廃止予定の設定を特定し、アップグレード前に問題を解決できるようにします。Elastic {nextMajor}にアップグレードするときにここに戻って確認してください。", - "xpack.upgradeAssistant.esDeprecationErrors.loadingErrorMessage": "Elasticsearchの廃止予定を取得できませんでした。", + "xpack.upgradeAssistant.esDeprecationErrors.loadingErrorMessage": "Elasticsearchの廃止予定の問題を取得できませんでした。", "xpack.upgradeAssistant.esDeprecationErrors.partiallyUpgradedWarningMessage": "Kibanaをご使用のElasticsearchクラスターと同じバージョンにアップグレードしてください。クラスターの1つ以上のノードがKibanaとは異なるバージョンを実行しています。", - "xpack.upgradeAssistant.esDeprecationErrors.permissionsErrorMessage": "Elasticsearchの廃止予定を表示する権限がありません。", - "xpack.upgradeAssistant.esDeprecationErrors.upgradedWarningMessage": "構成は最新です。KibanaおよびすべてのElasticsearchノードは同じバージョンを実行しています。", - "xpack.upgradeAssistant.esDeprecations.loadingText": "廃止予定を読み込んでいます...", + "xpack.upgradeAssistant.esDeprecationErrors.permissionsErrorMessage": "Elasticsearchの廃止予定の問題を表示する権限がありません。", + "xpack.upgradeAssistant.esDeprecationErrors.upgradedWarningMessage": "すべての Elasticsearch ノードがアップグレードされました。", + "xpack.upgradeAssistant.esDeprecations.batchReindexingDocsDescription": "1つの要求で複数の再インデックスタスクを開始するには、Kibana {docsLink}を使用します。", + "xpack.upgradeAssistant.esDeprecations.batchReindexingDocsLink": "バッチ再インデックスAPI", + "xpack.upgradeAssistant.esDeprecations.clusterDeprecationTypeLabel": "クラスター", + "xpack.upgradeAssistant.esDeprecations.defaultDeprecation.manualCellLabel": "手動", + "xpack.upgradeAssistant.esDeprecations.deprecationDetailsFlyout.closeButtonLabel": "閉じる", + "xpack.upgradeAssistant.esDeprecations.deprecationDetailsFlyout.secondaryDescription": "インデックス:{indexName}", + "xpack.upgradeAssistant.esDeprecations.indexDeprecationTypeLabel": "インデックス", + "xpack.upgradeAssistant.esDeprecations.indexSettings.deleteCompleteText": "廃止予定の設定が削除されました", + "xpack.upgradeAssistant.esDeprecations.indexSettings.deleteFailedText": "設定の削除が失敗しました", + "xpack.upgradeAssistant.esDeprecations.indexSettings.deletingButtonLabel": "設定を削除中…", + "xpack.upgradeAssistant.esDeprecations.indexSettings.resolutionText": "設定の削除", + "xpack.upgradeAssistant.esDeprecations.indexSettings.resolutionTooltipLabel": "このインデックスから設定を削除して、この問題を解決します。この問題は自動的に解決できます。", + "xpack.upgradeAssistant.esDeprecations.loadingText": "廃止予定の問題を読み込んでいます...", + "xpack.upgradeAssistant.esDeprecations.mlDeprecationTypeLabel": "機械学習", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.deleteCompleteText": "削除完了", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.deleteFailedText": "削除失敗", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.deletingButtonLabel": "削除中…", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.closeButtonLabel": "閉じる", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.deleteButtonLabel": "削除", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.deleteSnapshotErrorTitle": "スナップショットの削除中にエラーが発生しました", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.deletingButtonLabel": "削除中…", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.retryDeleteButtonLabel": "削除を再試行", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.retryUpgradeButtonLabel": "アップグレードを再試行", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.title": "モデルスナップショットをアップグレードまたは削除", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.upgradeButtonLabel": "アップグレード", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.upgradeSnapshotErrorTitle": "スナップショットのアップグレードエラー", - "xpack.upgradeAssistant.esDeprecations.pageDescription": "廃止予定のクラスターとインデックス設定をレビューします。アップグレード前に重要な問題を解決する必要があります。", - "xpack.upgradeAssistant.esDeprecations.pageTitle": "Elasticsearch", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.upgradingButtonLabel": "アップグレード中...", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.resolutionText": "スナップショットをアップグレードまたは削除", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.resolutionTooltipLabel": "ジョブモデルスナップショットをアップグレードまたは削除して、この問題を解決します。この問題は自動的に解決できます。", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeCompleteText": "アップグレード完了", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeFailedText": "アップグレード失敗", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeInProgressText": "アップグレード中...", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeModeEnabledDocsLink": "詳細", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeModeEnabledErrorDescription": "アップグレードモードが有効なときには、機械学習スナップショットに対してアクションを実行できません{docsLink}。", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeModeEnabledErrorTitle": "機械学習アップグレードモードが有効です", + "xpack.upgradeAssistant.esDeprecations.nodeDeprecationTypeLabel": "ノード", + "xpack.upgradeAssistant.esDeprecations.pageDescription": "アップグレード前に重要な問題をすべて解決してください。変更を行う前に、クラスターの現在のスナップショットがあることを確認してください。7.0より前に作成されたインデックスは再インデックスするか削除する必要があります。1つの要求で複数の再インデックスタスクを開始するには、Kibanaバッチ再インデックスAPIを使用します。", + "xpack.upgradeAssistant.esDeprecations.pageTitle": "Elasticsearchの廃止予定の問題", + "xpack.upgradeAssistant.esDeprecations.reindex.manualCellTooltipLabel": "この問題は自動的に解決する必要があります。", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexCanceledText": "再インデックスはキャンセルされました", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexCompleteText": "再インデックス完了", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexFailedText": "再インデックス失敗", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexFetchFailedText": "再インデックスステータスがありません", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexInProgressText": "再インデックス中...", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexLoadingStatusText": "ステータスを読み込んでいます...", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexPausedText": "再インデックスは一時停止されました", + "xpack.upgradeAssistant.esDeprecations.reindex.resolutionLabel": "再インデックス", + "xpack.upgradeAssistant.esDeprecations.reindex.resolutionTooltipLabel": "このインデックスを再インデックスして、この問題を解決します。この問題は自動的に解決できます。", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.closeButtonLabel": "閉じる", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.deleteErrorTitle": "インデックス設定の削除エラー", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.removeButtonLabel": "廃止予定の設定を削除", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.resolvedButtonLabel": "解決済み", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.retryRemoveButtonLabel": "廃止予定の設定の削除を再試行", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.secondaryDescription": "インデックス:{indexName}", + "xpack.upgradeAssistant.esDeprecations.table.criticalFilterLabel": "重大", + "xpack.upgradeAssistant.esDeprecations.table.issueColumnTitle": "問題", + "xpack.upgradeAssistant.esDeprecations.table.nameColumnTitle": "名前", + "xpack.upgradeAssistant.esDeprecations.table.noDeprecationsMessage": "Elasticsearchの廃止予定の問題が見つかりません", + "xpack.upgradeAssistant.esDeprecations.table.refreshButtonLabel": "更新", + "xpack.upgradeAssistant.esDeprecations.table.resolutionColumnTitle": "解決", + "xpack.upgradeAssistant.esDeprecations.table.searchPlaceholderLabel": "フィルター", + "xpack.upgradeAssistant.esDeprecations.table.statusColumnTitle": "ステータス", + "xpack.upgradeAssistant.esDeprecations.table.typeColumnTitle": "型", + "xpack.upgradeAssistant.esDeprecations.table.typeFilterLabel": "型", "xpack.upgradeAssistant.kibanaDeprecations.deprecationLabel": "Kibana", "xpack.upgradeAssistant.kibanaDeprecations.docLinkText": "ドキュメント", - "xpack.upgradeAssistant.kibanaDeprecations.loadingText": "廃止予定を読み込んでいます...", - "xpack.upgradeAssistant.kibanaDeprecations.pageTitle": "Kibana", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.closeButtonLabel": "閉じる", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.manualFixTitle": "修正方法", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveButtonLabel": "クイック解決", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveCalloutTitle": "この問題を自動的に修正するには、{quickResolve}をクリックします。", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveErrorTitle": "問題の解決エラー", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveInProgressButtonLabel": "解決中…", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveText": "クイック解決", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.resolvedButtonLabel": "解決済み", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.retryQuickResolveButtonLabel": "再試行", + "xpack.upgradeAssistant.kibanaDeprecations.kibanaDeprecationErrorDescription": "{pluginCount, plural, one {このプラグイン} other {これらのプラグイン}}の廃止予定の問題を取得できませんでした:{pluginIds}。詳細については、Kibanaサーバーログを確認してください。", + "xpack.upgradeAssistant.kibanaDeprecations.kibanaDeprecationErrorTitle": "廃止予定の問題のリストが不完全である可能性があります", + "xpack.upgradeAssistant.kibanaDeprecations.loadingText": "廃止予定の問題を読み込んでいます...", + "xpack.upgradeAssistant.kibanaDeprecations.pageDescription": "アップグレード前に重要な問題をすべて解決してください。", + "xpack.upgradeAssistant.kibanaDeprecations.pageTitle": "Kibanaの廃止予定の問題", + "xpack.upgradeAssistant.kibanaDeprecations.table.automatedCellLabel": "自動", + "xpack.upgradeAssistant.kibanaDeprecations.table.automatedCellTooltipLabel": "この問題は自動的に解決できます。", + "xpack.upgradeAssistant.kibanaDeprecations.table.automationCompleteCellLabel": "解決済み", + "xpack.upgradeAssistant.kibanaDeprecations.table.automationFailedCellLabel": "解決失敗", + "xpack.upgradeAssistant.kibanaDeprecations.table.automationInProgressCellLabel": "解決中…", + "xpack.upgradeAssistant.kibanaDeprecations.table.configDeprecationTypeCellLabel": "構成", + "xpack.upgradeAssistant.kibanaDeprecations.table.criticalFilterLabel": "重大", + "xpack.upgradeAssistant.kibanaDeprecations.table.featureDeprecationTypeCellLabel": "機能", + "xpack.upgradeAssistant.kibanaDeprecations.table.issueColumnTitle": "問題", + "xpack.upgradeAssistant.kibanaDeprecations.table.manualCellLabel": "手動", + "xpack.upgradeAssistant.kibanaDeprecations.table.manualCellTooltipLabel": "この問題は自動的に解決する必要があります。", + "xpack.upgradeAssistant.kibanaDeprecations.table.refreshButtonLabel": "更新", + "xpack.upgradeAssistant.kibanaDeprecations.table.resolutionColumnTitle": "解決", + "xpack.upgradeAssistant.kibanaDeprecations.table.searchPlaceholderLabel": "フィルター", + "xpack.upgradeAssistant.kibanaDeprecations.table.statusColumnTitle": "ステータス", + "xpack.upgradeAssistant.kibanaDeprecations.table.typeColumnTitle": "型", + "xpack.upgradeAssistant.kibanaDeprecations.table.typeFilterLabel": "型", + "xpack.upgradeAssistant.kibanaDeprecations.table.unknownDeprecationTypeCellLabel": "未分類", + "xpack.upgradeAssistant.levelInfoTip.criticalLabel": "アップグレード前に、重大な問題を解決する必要があります", + "xpack.upgradeAssistant.levelInfoTip.warningLabel": "警告の問題は独自の裁量で無視できます", + "xpack.upgradeAssistant.noDeprecationsMessage": "問題なし", + "xpack.upgradeAssistant.noDeprecationsPrompt.description": "{deprecationType}構成は最新です", "xpack.upgradeAssistant.noDeprecationsPrompt.nextStepsDescription": "他のスタック廃止予定については、{overviewButton}を確認してください。", "xpack.upgradeAssistant.noDeprecationsPrompt.overviewLinkText": "概要ページ", + "xpack.upgradeAssistant.noPartialDeprecationsMessage": "なし", "xpack.upgradeAssistant.overview.analyzeTitle": "廃止予定ログを分析", - "xpack.upgradeAssistant.overview.deprecationLogs.buttonLabel": "廃止予定ログとインデックスを有効にする", - "xpack.upgradeAssistant.overview.deprecationLogs.deprecationWarningBody": "ログディレクトリに移動して廃止予定ログを表示するか、ログ収集を有効にしてUIに表示してください。", + "xpack.upgradeAssistant.overview.apiCompatibilityNoteBody": "アップグレード前にすべての廃止予定の問題を解決することをお勧めします。必要に応じて、廃止予定の機能を使用する要求にAPI互換性ヘッダーを適用できます。{learnMoreLink}。", + "xpack.upgradeAssistant.overview.apiCompatibilityNoteLink": "詳細", + "xpack.upgradeAssistant.overview.apiCompatibilityNoteTitle": "API互換性ヘッダーを適用(オプション)", + "xpack.upgradeAssistant.overview.backupStepDescription": "変更を行う前に、現在のスナップショットがあることを確認してください。", + "xpack.upgradeAssistant.overview.backupStepTitle": "データをバックアップ", + "xpack.upgradeAssistant.overview.cloudBackup.hasSnapshotMessage": "前回のスナップショットは{lastBackupTime}に作成されました。", + "xpack.upgradeAssistant.overview.cloudBackup.loadingError": "最新のスナップショットステータスの取得中にエラーが発生しました", + "xpack.upgradeAssistant.overview.cloudBackup.noSnapshotMessage": "データはバックアップされていません。", + "xpack.upgradeAssistant.overview.cloudBackup.retryButton": "再試行", + "xpack.upgradeAssistant.overview.cloudBackup.snapshotsLink": "スナップショットの作成", + "xpack.upgradeAssistant.overview.deprecationLogs.buttonLabel": "廃止予定ログ収集を有効にする", + "xpack.upgradeAssistant.overview.deprecationLogs.deniedPrivilegeTitle": "廃止予定ログを分析するには、インデックス権限が必要です", + "xpack.upgradeAssistant.overview.deprecationLogs.deprecationWarningBody": "ログディレクトリに移動して廃止予定ログを表示するか、廃止予定ログ収集を有効にしてKibanaに表示してください。", "xpack.upgradeAssistant.overview.deprecationLogs.deprecationWarningTitle": "ログはログディレクトリに書き込まれています", "xpack.upgradeAssistant.overview.deprecationLogs.disabledToastMessage": "廃止予定APIリクエストはログに出力されません。", "xpack.upgradeAssistant.overview.deprecationLogs.enabledToastMessage": "廃止予定APIリクエストはログに出力され、インデックスが作成されます。", @@ -25063,23 +26562,55 @@ "xpack.upgradeAssistant.overview.deprecationLogs.fetchErrorMessage": "ログ情報を取得できませんでした。", "xpack.upgradeAssistant.overview.deprecationLogs.reloadButtonLabel": "再試行", "xpack.upgradeAssistant.overview.deprecationLogs.updateErrorMessage": "ログ状態を更新できませんでした。", + "xpack.upgradeAssistant.overview.deprecationsCountCheckpointTitle": "廃止予定の問題を解決して変更を検証", "xpack.upgradeAssistant.overview.documentationLinkText": "ドキュメント", - "xpack.upgradeAssistant.overview.identifyStepTitle": "廃止予定APIの使用を特定し、アプリケーションを更新", - "xpack.upgradeAssistant.overview.loadingLogsLabel": "ログ収集状態を読み込み中...", + "xpack.upgradeAssistant.overview.fixIssuesStepTitle": "廃止予定設定を確認し、問題を解決", + "xpack.upgradeAssistant.overview.loadingLogsLabel": "廃止予定ログ収集状態を読み込んでいます...", "xpack.upgradeAssistant.overview.observe.discoveryDescription": "廃止予定ログを検索およびフィルターし、必要な変更のタイプを把握します。", "xpack.upgradeAssistant.overview.observe.observabilityDescription": "使用中のAPIのうち廃止予定のAPIと、更新が必要なアプリケーションを特定できます。", - "xpack.upgradeAssistant.overview.pageDescription": "次のバージョンのElastic Stackをお待ちください。", + "xpack.upgradeAssistant.overview.pageDescription": "次のバージョンのElasticをお待ちください。", "xpack.upgradeAssistant.overview.pageTitle": "アップグレードアシスタント", + "xpack.upgradeAssistant.overview.snapshotRestoreLink": "スナップショットの作成", + "xpack.upgradeAssistant.overview.systemIndices.body": "アップグレード前に、システム情報が格納されたインデックスを移行します。", + "xpack.upgradeAssistant.overview.systemIndices.errorLabel": "移行失敗", + "xpack.upgradeAssistant.overview.systemIndices.featureNameTableColumn": "機能", + "xpack.upgradeAssistant.overview.systemIndices.flyoutCloseButtonLabel": "閉じる", + "xpack.upgradeAssistant.overview.systemIndices.flyoutDescription": "アップグレード前に、次の機能の情報が格納されたインデックスを移行します。", + "xpack.upgradeAssistant.overview.systemIndices.flyoutTitle": "システムインデックスの移行", + "xpack.upgradeAssistant.overview.systemIndices.inProgressButtonLabel": "移行中", + "xpack.upgradeAssistant.overview.systemIndices.loadingError": "システムインデックスステータスを取得できませんでした", + "xpack.upgradeAssistant.overview.systemIndices.migratingLabel": "移行中", + "xpack.upgradeAssistant.overview.systemIndices.migrationCompleteLabel": "移行完了", + "xpack.upgradeAssistant.overview.systemIndices.migrationFailedBody": "{feature}のシステムインデックスの移行中にエラーが発生しました:{failureCause}", + "xpack.upgradeAssistant.overview.systemIndices.migrationFailedTitle": "システムインデックスの移行が失敗しました", + "xpack.upgradeAssistant.overview.systemIndices.needsMigrationLabel": "移行が必要", + "xpack.upgradeAssistant.overview.systemIndices.noMigrationNeeded": "移行完了", + "xpack.upgradeAssistant.overview.systemIndices.retryButtonLabel": "移行の再試行", + "xpack.upgradeAssistant.overview.systemIndices.startButtonLabel": "インデックスの移行", + "xpack.upgradeAssistant.overview.systemIndices.statusTableColumn": "ステータス", + "xpack.upgradeAssistant.overview.systemIndices.title": "システムインデックスの移行", + "xpack.upgradeAssistant.overview.systemIndices.viewSystemIndicesStatus": "移行詳細を表示", "xpack.upgradeAssistant.overview.upgradeGuideLink": "アップグレードガイドを表示", "xpack.upgradeAssistant.overview.upgradeStepCloudLink": "クラウドでアップグレード", - "xpack.upgradeAssistant.overview.upgradeStepDescription": "重要な問題をすべて解決し、アプリケーションの準備を確認した後に、Elastic Stackをアップグレードできます。", - "xpack.upgradeAssistant.overview.upgradeStepDescriptionForCloud": "重要な問題をすべて解決し、アプリケーションの準備を確認した後に、Elastic Stackをアップグレードできます。Elastic Cloudでデプロイをアップグレードします。", + "xpack.upgradeAssistant.overview.upgradeStepDescription": "重要な問題をすべて解決し、アプリケーションの準備を確認した後に、Elastic 8.xにアップグレードできます。アップグレードする前に、必ずもう一度データをバックアップしたことを確認してください。", + "xpack.upgradeAssistant.overview.upgradeStepDescriptionForCloud": "重要な問題をすべて解決し、アプリケーションの準備を確認した後に、Elastic 8.xにアップグレードできます。アップグレードする前に、必ずもう一度データをバックアップしたことを確認してください。Elastic Cloudでデプロイをアップグレードします。", "xpack.upgradeAssistant.overview.upgradeStepLink": "詳細", + "xpack.upgradeAssistant.overview.upgradeStepTitle": "Elastic 8.xへのアップグレード", + "xpack.upgradeAssistant.overview.verifyChanges.calloutBody": "変更した後、カウンターをリセットして監視を続け、廃止予定の機能を使用していないことを確認します。", + "xpack.upgradeAssistant.overview.verifyChanges.calloutTitle": "{previousCheck}以降{warningsCount, plural, =0 {0} other {{warningsCount}}}件の廃止予定{warningsCount, plural, other {件の問題}}", + "xpack.upgradeAssistant.overview.verifyChanges.errorToastTitle": "廃止予定ログキャッシュを削除できませんでした", + "xpack.upgradeAssistant.overview.verifyChanges.loadingError": "廃止予定件数の取得中にエラーが発生しました", + "xpack.upgradeAssistant.overview.verifyChanges.resetCounterButton": "カウンターのリセット", + "xpack.upgradeAssistant.overview.verifyChanges.retryButton": "再試行", "xpack.upgradeAssistant.overview.viewDiscoverResultsAction": "Discoverでログを分析", "xpack.upgradeAssistant.overview.viewObservabilityResultsAction": "Observabilityで廃止予定ログを表示", + "xpack.upgradeAssistant.overview.whatsNewLink": "8.xの新機能", "xpack.upgradeAssistant.reindex.reindexPrivilegesErrorBatch": "「{indexName}」に再インデックスするための権限が不十分です。", - "xpack.upgradeAssistant.status.allDeprecationsResolvedMessage": "すべての廃止予定の問題が解決されました。", - "xpack.upgradeAssistant.status.deprecationsUnresolvedMessage": "アップグレード前に、{esTotalCriticalDeps} Elasticsearchの廃止予定の問題と{kibanaTotalCriticalDeps} Kibanaの廃止予定の問題を解決する必要があります。", + "xpack.upgradeAssistant.status.allDeprecationsResolvedMessage": "すべての廃止予定の警告が解決されました。", + "xpack.upgradeAssistant.upgradedDescription": "すべての Elasticsearch ノードがアップグレードされました。Kibana をアップデートする準備ができました。", + "xpack.upgradeAssistant.upgradedTitle": "クラスターがアップグレードされました", + "xpack.upgradeAssistant.upgradingDescription": "1 つまたは複数の Elasticsearch ノードに、 Kibana よりも新しいバージョンの Elasticsearch があります。すべてのノードがアップグレードされた後で Kibana をアップグレードしてください。", + "xpack.upgradeAssistant.upgradingTitle": "クラスターをアップグレード中です", "xpack.uptime.addDataButtonLabel": "データの追加", "xpack.uptime.alerts.anomaly.criteriaExpression.ariaLabel": "選択したモニターの条件を表示する式。", "xpack.uptime.alerts.anomaly.criteriaExpression.description": "監視するとき", @@ -25127,6 +26658,7 @@ "xpack.uptime.alerts.monitorStatus.addFilter.tag": "タグ", "xpack.uptime.alerts.monitorStatus.addFilter.type": "型", "xpack.uptime.alerts.monitorStatus.availability.isEnabledCheckbox.label": "可用性", + "xpack.uptime.alerts.monitorStatus.availability.threshold.anyMonitorDescription": "任意のモニターがアップ", "xpack.uptime.alerts.monitorStatus.availability.threshold.ariaLabel": "このアラートの可用性しきい値を指定", "xpack.uptime.alerts.monitorStatus.availability.threshold.description": "一致するモニターがアップしています", "xpack.uptime.alerts.monitorStatus.availability.threshold.input.ariaLabel": "このアラートで確認する可用性しきい値を入力", @@ -25201,6 +26733,7 @@ "xpack.uptime.alerts.tls.criteriaExpression.ariaLabel": "このアラートで監視されるモニターの条件を示す式", "xpack.uptime.alerts.tls.criteriaExpression.description": "タイミング", "xpack.uptime.alerts.tls.criteriaExpression.value": "任意のモニター", + "xpack.uptime.alerts.tls.defaultActionMessage": "発行者{issuer}の検出されたTLS証明書{commonName}は{status}です。証明書{summary}\n", "xpack.uptime.alerts.tls.description": "アップタイム監視の TLS 証明書の有効期限が近いときにアラートを発行します。", "xpack.uptime.alerts.tls.expirationExpression.ariaLabel": "証明書有効期限の TLS アラートをトリガーするしきい値を示す式", "xpack.uptime.alerts.tls.expirationExpression.description": "証明書が", @@ -25209,6 +26742,7 @@ "xpack.uptime.alerts.tls.expiringLabel": "まもなく期限切れ", "xpack.uptime.alerts.tls.invalidLabel": "無効", "xpack.uptime.alerts.tls.legacy.clientName": "アップタイムTLS(レガシー)", + "xpack.uptime.alerts.tls.legacy.defaultActionMessage": "期限切れになるか古くなりすぎた{count} TLS個のTLS証明書証明書を検知しました。\n{expiringConditionalOpen}\n期限切れになる証明書数:{expiringCount}\n期限切れになる証明書:{expiringCommonNameAndDate}\n{expiringConditionalClose}\n{agingConditionalOpen}\n古い証明書数:{agingCount}\n古い証明書:{agingCommonNameAndDate}\n{agingConditionalClose}\n", "xpack.uptime.alerts.tls.legacy.description": "アップタイム監視の TLS 証明書の有効期限が近いときにアラートを発行します。このアラートは将来のバージョンで廃止予定です。", "xpack.uptime.alerts.tls.settingsPageNav.text": "これらのしきい値は{settingsPageLink}で編集できます。", "xpack.uptime.alerts.tls.validAfterExpiredString": "{relativeDate}日前、{date}に期限切れになりました。", @@ -25228,6 +26762,7 @@ "xpack.uptime.breadcrumbs.observabilityText": "オブザーバビリティ", "xpack.uptime.breadcrumbs.overviewBreadcrumbText": "アップタイム", "xpack.uptime.certificates.heading": "TLS証明書({total})", + "xpack.uptime.certificates.loading": "証明書を読み込んでいます...", "xpack.uptime.certificates.refresh": "更新", "xpack.uptime.certificatesPage.heading": "TLS証明書", "xpack.uptime.certificatesRoute.title": "証明書 | {baseTitle}", @@ -25255,13 +26790,25 @@ "xpack.uptime.controls.selectSeverity.minorLabel": "マイナー", "xpack.uptime.controls.selectSeverity.scoreDetailsDescription": "スコア{value}以上", "xpack.uptime.controls.selectSeverity.warningLabel": "警告", + "xpack.uptime.createPackagePolicy.stepConfigure.browser.scriptRecorder.experimentalLabel": "テクニカルプレビュー", + "xpack.uptime.createPackagePolicy.stepConfigure.browser.scriptRecorder.experimentalTooltip": "Elastic Synthetics Recorderを使用してElastic Synthetics監視スクリプトを作成する最も簡単な方法をプレビュー", + "xpack.uptime.createPackagePolicy.stepConfigure.browser.scriptRecorder.label": "スクリプトの記録", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.description": "Syntheticsエージェントの微調整された構成を提供します。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.filtering.description": "これらのオプションを使用すると、選択したモニター設定をスイートのテストのサブセットに適用します。構成されたサブセットのみがこのモニターによって実行されます。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.filtering.title": "選択テスト", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.ignoreHttpsErrors.helpText": "このオプションをtrueに設定すると、SyntheticsブラウザーでTLS/SSL検証を無効にします。これは自己署名証明書を使用するサイトのテストで役立ちます。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.ignoreHttpsErrors.label": "HTTPSエラーを無視", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.journeyFiltersMatch.helpText": "このモニターの指定されたglobと一致する名前のジャーニーのみを実行します。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.journeyFiltersMatch.label": "一致のフィルター", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.journeyFiltersTags.helpText": "このモニターの特定のタグのジャーニーのみを実行します。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.journeyFiltersTags.label": "タグのフィルター", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.screenshots.helpText": "このオプションを設定すると、Syntheticsエージェントでキャプチャされたスクリーンショットを管理します。", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.screenshots.label": "スクリーンショットオプション", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.syntheticsArgs.helpText": "Syntheticsエージェントパッケージに渡す追加の引数。文字列のリストを取ります。これはごくまれなシナリオで有用ですが、通常は設定する必要がありません。", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.syntheticsArgs.label": "Synthetics引数", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.title": "Syntheticsエージェントオプション", "xpack.uptime.createPackagePolicy.stepConfigure.certificateSettings.enableSSLSettings.label": "TLS構成を有効にする", + "xpack.uptime.createPackagePolicy.stepConfigure.certificateSettings.enableZipUrlSSLSettings.label": "Zip URLのTLS構成を有効にする", "xpack.uptime.createPackagePolicy.stepConfigure.certsField.certificate.helpText": "TLSクライアント認証用のPEM形式の証明書。", "xpack.uptime.createPackagePolicy.stepConfigure.certsField.certificate.label": "証明書", "xpack.uptime.createPackagePolicy.stepConfigure.certsField.certificateAuthorities.helpText": "PEM形式のカスタム認証局。", @@ -25319,15 +26866,26 @@ "xpack.uptime.createPackagePolicy.stepConfigure.inputVarFieldOptionalLabel": "オプション", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.APMServiceName.helpText": "このモニターのAPMサービス名。service.name ECSフィールドに対応します。APMを使用して、アップタイムとKibanaのAPMデータ間の統合を有効にするアプリを監視しているときには、これを設定します。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.APMServiceName.label": "APMサービス名", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.brower.proxyURL.label": "ZipプロキシURL", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.http.helpText": "Zip URLのHTTPプロキシ。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.inlineScript.error": "スクリプトが必要です", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.inlineScript.helpText": "インラインで定義されたSyntheticテストスクリプトを実行します。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.inlineScript.label": "インラインスクリプト", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.params.helpText": "テストで必要な変数を定義するJSONオブジェクト。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.params.label": "パラメーター", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.scriptRecorder.closeButtonLabel": "スクリプトフライアウトを閉じる", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.scriptRecorder.mockFileName": "test_script.js", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.sourceType.label": "ソースタイプ", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.uploader.fieldLabel": "テストスクリプト", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.uploader.invalidFileError": "無効なファイルタイプです。Elastic Synthetics Recorderで生成された.jsファイルをアップロードしてください。", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.uploader.label": "レコーダーで生成された.jsファイルを選択", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.uploader.parsingError": "ファイルのアップロードエラーです。インラインスクリプト形式でElastic Synthetics Recorderによって生成された.jsファイルをアップロードしてください。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.error": "Zip URLは必須です", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.helpText": "Syntheticsプロジェクトリポジトリzipファイルの場所。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.label": "Zip URL", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.recorderLink": "Elastic Synthetics Recorderをダウンロード", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.removeScriptLabel": "スクリプトを削除", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.showScriptLabel": "スクリプトを表示", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrlFolder.helpText": "Synthetic journeyファイルが配置されるリポジトリの相対ディレクトリパス。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrlFolder.label": "フォルダー", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrlPassword.abel": "Zip URLパスワード", @@ -25342,6 +26900,8 @@ "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorInterval": "監視間隔", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorInterval.error": "監視間隔は必須です", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorType": "モニタータイプ", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorType.browser.warning.description": "「Browser」モニターを作成するには、elastic-agent-complete Dockerコンテナーを使用していることを確認します。これには、これらのモニターを実行するための依存関係が含まれています。詳細については、{link}をご覧ください。", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorType.browser.warning.link": "Syntheticsドキュメンテーション", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorType.error": "モニタータイプは必須です", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.password.helpText": "サーバーと認証するためのパスワード。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.password.label": "パスワード", @@ -25350,7 +26910,7 @@ "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.proxyURL.label": "プロキシURL", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.proxyUrl.tcp.helpText": "サーバーに接続するときに使用するSOCKS5プロキシのURL。値はURLとスキーマsocks5://でなければなりません。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.resolveHostnamesLocally": "ローカルでホスト名を解決", - "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tags.helpText": "モニターイベントで送信されるタグのリスト。Enterキーを押すと、新しいタブを追加します。アップタイムに表示され、タグによる検索を有効にします。", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tags.helpText": "モニターイベントで送信されるタグのリスト。Enterキーを押すと、新しいタグを追加します。アップタイムに表示され、タグによる検索を有効にします。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tags.label": "タグ", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tcp.hosts": "ホスト:ポート", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tcp.hosts.error": "ホストとポートは必須です", @@ -25407,6 +26967,7 @@ "xpack.uptime.filterBar.options.tagsLabel": "タグ", "xpack.uptime.fleetIntegration.assets.description": "アップタイムでモニターを表示", "xpack.uptime.fleetIntegration.assets.name": "監視", + "xpack.uptime.inspectButtonText": "検査", "xpack.uptime.integrationLink.missingDataMessage": "この統合に必要なデータが見つかりませんでした。", "xpack.uptime.keyValuePairsField.deleteItem.label": "項目番号{index}、{key}を削除:{value}", "xpack.uptime.keyValuePairsField.key.ariaLabel": "キー", @@ -25416,6 +26977,9 @@ "xpack.uptime.kueryBar.searchPlaceholder.kql": "KQL構文を使用して、モニターID、名前、タイプ(例:monitor.type: \"http\" AND tags: \"dev\")などを検索", "xpack.uptime.kueryBar.searchPlaceholder.simple": "モニターID、名前、またはURL(例:http://)で検索", "xpack.uptime.locationName.helpLinkAnnotation": "場所を追加", + "xpack.uptime.mappingErrorRoute.breadcrumb": "マッピングエラー", + "xpack.uptime.mappingErrorRoute.pageHeader.title": "マッピングエラー", + "xpack.uptime.mappingErrorRoute.title": "Synthetics | マッピングエラー", "xpack.uptime.millisecond.abbreviation.label": "ms", "xpack.uptime.ml.durationChart.exploreInMlApp": "ML アプリで探索", "xpack.uptime.ml.enableAnomalyDetectionPanel.anomalyDetectionTitle": "異常検知", @@ -25427,6 +26991,7 @@ "xpack.uptime.ml.enableAnomalyDetectionPanel.enable_or_manage_job": "異常検知ジョブを有効にできます。ジョブがすでに存在する場合はジョブまたはアラートを管理できます。", "xpack.uptime.ml.enableAnomalyDetectionPanel.enableAnomalyAlert": "異常アラートを有効にする", "xpack.uptime.ml.enableAnomalyDetectionPanel.enableAnomalyDetectionTitle": "異常検知を有効にする", + "xpack.uptime.ml.enableAnomalyDetectionPanel.jobCreatedLazyNotificationText": "分析は機械学習ノードが使用可能になるのを待機しています。応答時間グラフに結果が追加されるまで、しばらく時間がかかる可能性があります。", "xpack.uptime.ml.enableAnomalyDetectionPanel.jobCreatedNotificationText": "これで応答時間グラフについての分析が実行されます。応答時間グラフに結果が追加されるまで、しばらく時間がかかる可能性があります。", "xpack.uptime.ml.enableAnomalyDetectionPanel.jobCreatedNotificationText.viewJobLinkText": "ジョブを表示", "xpack.uptime.ml.enableAnomalyDetectionPanel.jobCreatedNotificationTitle": "ジョブの作成が正常に完了しました", @@ -25547,6 +27112,9 @@ "xpack.uptime.monitorStatusBar.type.label": "型", "xpack.uptime.navigateToAlertingButton.content": "ルールの管理", "xpack.uptime.navigateToAlertingUi": "Uptime を離れてアラート管理ページに移動します", + "xpack.uptime.noDataConfig.beatsCard.description": "サイトとサービスの可用性をアクティブに監視するアラートを受信し、問題をより迅速に解決して、ユーザーエクスペリエンスを最適化します。", + "xpack.uptime.noDataConfig.beatsCard.title": "Elastic Synthetics統合でモニターを追加", + "xpack.uptime.noDataConfig.solutionName": "オブザーバビリティ", "xpack.uptime.notFountPage.homeLinkText": "ホームへ戻る", "xpack.uptime.openAlertContextPanel.ariaLabel": "ルールコンテキストパネルを開くと、ルールタイプを選択できます", "xpack.uptime.openAlertContextPanel.label": "ルールを作成", @@ -25564,7 +27132,7 @@ "xpack.uptime.overviewPageLink.disabled.ariaLabel": "無効になったページ付けボタンです。モニターリストがこれ以上ナビゲーションできないことを示しています。", "xpack.uptime.overviewPageLink.next.ariaLabel": "次の結果ページ", "xpack.uptime.overviewPageLink.prev.ariaLabel": "前の結果ページ", - "xpack.uptime.page_header.addDataLink.label": "アップタイムデータの追加に関するチュートリアルに移動", + "xpack.uptime.page_header.addDataLink.label": "Elastic Synthetics統合に移動して、アップタイムデータを追加", "xpack.uptime.page_header.analyzeData.label": "[データの分析]ビューに移動して、合成/ユーザーデータを可視化", "xpack.uptime.page_header.defineConnector.popover.defaultLink": "デフォルトのコネクターを定義", "xpack.uptime.page_header.defineConnector.settingsLink": "設定", @@ -25600,6 +27168,9 @@ "xpack.uptime.pingList.synthetics.waterfall.filters.popover": "クリックすると、ウォーターフォールフィルターが開きます", "xpack.uptime.pingList.timestampColumnLabel": "タイムスタンプ", "xpack.uptime.pluginDescription": "アップタイム監視", + "xpack.uptime.public.pages.mappingError.bodyDocsLink": "この問題のトラブルシューティングについては、{docsLink}を参照してください。", + "xpack.uptime.public.pages.mappingError.bodyMessage": "正しくないマッピングが検出されました。Heartbeat {setup}コマンドを実行していない可能性があります。", + "xpack.uptime.public.pages.mappingError.title": "Heartbeatマッピングが見つかりません", "xpack.uptime.routes.baseTitle": "アップタイム - Kibana", "xpack.uptime.seconds.label": "秒", "xpack.uptime.seconds.shortForm.label": "秒", @@ -25671,6 +27242,9 @@ "xpack.uptime.synthetics.journey.allSucceededMessage": "{total}ステップ - すべて成功しました", "xpack.uptime.synthetics.journey.loadingSteps": "ステップを読み込んでいます...", "xpack.uptime.synthetics.journey.partialSuccessMessage": "{total}ステップ - {succeeded}成功しました", + "xpack.uptime.synthetics.markers.explore": "探索", + "xpack.uptime.synthetics.markers.noFieldIcon.label": "このマーカーにフィールドが関連付けられていないことを示すアイコン", + "xpack.uptime.synthetics.markers.openEmbeddableButton.label": "このアイコンボタンを使用して、この注釈マーカーのメトリックを表示します。", "xpack.uptime.synthetics.nextStepButton.ariaLabel": "次のステップ", "xpack.uptime.synthetics.performanceBreakDown.label": "パフォーマンスの内訳", "xpack.uptime.synthetics.pingTimestamp.captionContent": "ステップ:{stepNumber}/{totalSteps}", @@ -25692,12 +27266,18 @@ "xpack.uptime.synthetics.stepList.nextCheck": "次の確認", "xpack.uptime.synthetics.stepList.previousCheck": "前の確認", "xpack.uptime.synthetics.thumbnail.fullSize.alt": "このステップのサムネイルのスクリーンショットの大きいバージョン。", + "xpack.uptime.synthetics.waterfall.domContentLabel": "DOMコンテンツが読み込まれました", + "xpack.uptime.synthetics.waterfall.fcpLabel": "初回コンテンツの描画", "xpack.uptime.synthetics.waterfall.filterGroup.filterScreenreaderLabel": "フィルタリング条件", "xpack.uptime.synthetics.waterfall.filterGroup.removeFilterScreenReaderLabel": "フィルターを削除", "xpack.uptime.synthetics.waterfall.flyout.certificates": "証明書ヘッダー", "xpack.uptime.synthetics.waterfall.flyout.details": "詳細", "xpack.uptime.synthetics.waterfall.flyout.requestHeaders": "要求ヘッダー", "xpack.uptime.synthetics.waterfall.flyout.responseHeaders": "応答ヘッダー", + "xpack.uptime.synthetics.waterfall.layoutShiftLabel": "レイアウトシフト", + "xpack.uptime.synthetics.waterfall.lcpLabel": "最大コンテンツの描画", + "xpack.uptime.synthetics.waterfall.loadEventLabel": "イベントの読み込み", + "xpack.uptime.synthetics.waterfall.offsetUnit": "{offset} ms", "xpack.uptime.synthetics.waterfall.requestsHighlightedMessage": "({numHighlightedRequests}はフィルターと一致します)", "xpack.uptime.synthetics.waterfall.requestsTotalMessage": "{numNetworkRequests}ネットワーク要求", "xpack.uptime.synthetics.waterfall.requestsTotalMessage.first": "最初の{count}件", @@ -25735,6 +27315,7 @@ "xpack.uptime.toggleTlsAlertButton.ariaLabel": "TLSルールフライアウトを開く", "xpack.uptime.toggleTlsAlertButton.content": "TLSルール", "xpack.uptime.uptimeFeatureCatalogueTitle": "アップタイム", + "xpack.uptime.uptimeSettings.index": "アップタイム設定 - インデックス", "xpack.uptime.waterfallChart.sidebar.url.https": "https", "xpack.urlDrilldown.click.event.key.documentation": "クリックしたデータポイントの後ろのフィールド名。", "xpack.urlDrilldown.click.event.key.title": "クリックしたフィールドの名前。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 30951b200dbda..8d55a8f7aeb3f 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -76,809 +76,6 @@ } }, "messages": { - "xpack.lens.formula.absFunction.markdown": "\n计算绝对值。负值乘以 -1,正值保持不变。\n\n例如:计算平均海拔高度 `abs(average(altitude))`\n ", - "xpack.lens.formula.addFunction.markdown": "\n将两个数值相加。\n还可以使用 + 符号\n\n例如:计算两个字段的和\n\n`sum(price) + sum(tax)`\n\n例如:使计数偏移静态值\n\n`add(count(), 5)`\n ", - "xpack.lens.formula.cbrtFunction.markdown": "\n值的立方根。\n\n例如:从体积计算边长\n`cbrt(last_value(volume))`\n ", - "xpack.lens.formula.ceilFunction.markdown": "\n值的上限,向上舍入。\n\n例如:向上舍入价格\n`ceil(sum(price))`\n ", - "xpack.lens.formula.clampFunction.markdown": "\n将值限制在最小值到最大值之间。\n\n例如:确保捕获离群值\n```\nclamp(\n average(bytes),\n percentile(bytes, percentile=5),\n percentile(bytes, percentile=95)\n)\n```\n", - "xpack.lens.formula.cubeFunction.markdown": "\n计算数值的立方。\n\n例如:从边长计算体积\n`cube(last_value(length))`\n ", - "xpack.lens.formula.divideFunction.markdown": "\n将第一个数字除以第二个数字。\n还可以使用 `/` 符号\n\n例如:计算利润率\n`sum(profit) / sum(revenue)`\n\n例如:`divide(sum(bytes), 2)`\n ", - "xpack.lens.formula.expFunction.markdown": "\n计算 *e* 的 n 次幂。\n\n例如:计算自然指数函数\n\n`exp(last_value(duration))`\n ", - "xpack.lens.formula.fixFunction.markdown": "\n对于正值,取下限。对于负值,取上限。\n\n例如:正在向零舍入\n`fix(sum(profit))`\n ", - "xpack.lens.formula.floorFunction.markdown": "\n向下舍入到最近整数值\n\n例如:向下舍入价格\n`floor(sum(price))`\n ", - "xpack.lens.formula.logFunction.markdown": "\n底数可选的对数。自然底数 *e* 用作默认值。\n\n例如:计算存储值所需的位数\n```\nlog(sum(bytes))\nlog(sum(bytes), 2)\n```\n ", - "xpack.lens.formula.modFunction.markdown": "\n将函数除以数值后的余数\n\n例如:计算值的后三位数\n`mod(sum(price), 1000)`\n ", - "xpack.lens.formula.multiplyFunction.markdown": "\n将两个数值相乘。\n还可以使用 `*` 符号。\n\n例如:计算现行税率后的价格\n`sum(bytes) * last_value(tax_rate)`\n\n例如:计算固定税率后的价格\n`multiply(sum(price), 1.2)`\n ", - "xpack.lens.formula.powFunction.markdown": "\n计算该值的特定次幂。第二个参数必填\n\n例如:基于边长计算体积\n`pow(last_value(length), 3)`\n ", - "xpack.lens.formula.roundFunction.markdown": "\n舍入到特定数目的小数位,默认为 0\n\n示例:舍入到百分\n```\nround(sum(bytes))\nround(sum(bytes), 2)\n```\n ", - "xpack.lens.formula.sqrtFunction.markdown": "\n仅正值的平方根\n\n例如:基于面积计算边长\n`sqrt(last_value(area))`\n ", - "xpack.lens.formula.squareFunction.markdown": "\n计算该值的 2 次幂\n\n例如:基于边长计算面积\n`square(last_value(length))`\n ", - "xpack.lens.formula.subtractFunction.markdown": "\n从第二个数值减去第一个数值。\n还可以使用 `-` 符号\n\n例如:计算字段的范围\n`subtract(max(bytes), min(bytes))`\n ", - "xpack.lens.formulaDocumentation.filterRatioDescription.markdown": "### 筛选比:\n\n使用 `kql=''` 筛选一个文档集,然后将其与相同分组中的其他文档进行比较。\n例如,要查看错误率随时间的推移如何变化:\n\n```\ncount(kql='response.status_code > 400') / count()\n```\n ", - "xpack.lens.formulaDocumentation.markdown": "## 工作原理\n\nLens 公式允许您使用 Elasticsearch 聚合和\n数学函数的组合进行数学计算。主要有三种类型的函数:\n\n* Elasticsearch 指标,如 `sum(bytes)`\n* 时间序列函数使用 Elasticsearch 指标作为输入,如 `cumulative_sum()`\n* 数学函数,如 `round()`\n\n使用所有这些函数的公式示例:\n\n```\nround(100 * moving_average(\n average(cpu.load.pct),\n window=10,\n kql='datacenter.name: east*'\n))\n```\n\nElasticsearch 函数取可以用引号引起的字段名称。`sum(bytes)` 同于\nas `sum('bytes')`.\n\n一些函数取已命名参数,如 `moving_average(count(), window=5)`。\n\nElasticsearch 指标可以使用 KQL 或 Lucene 语法筛选。要添加筛选,请使用已命名\n参数 `kql='field: value'` 或 `lucene=''`。编写 KQL 或 Lucene 查询时,应始终使用\n单引号。如果您的搜索包含单引号,请使用反斜杠转义,如:`kql='Women's''\n\n数学函数可以取位置参数,如 pow(count(), 3) 与 count() * count() * count() 相同\n\n使用符号 +、-、/ 和 * 执行基本数学运算。", - "xpack.lens.formulaDocumentation.percentOfTotalDescription.markdown": "### 总计的百分比\n\n公式可以计算所有分组的 `overall_sum`,\n其允许您将每个分组转成总计的百分比:\n\n```\nsum(products.base_price) / overall_sum(sum(products.base_price))\n```\n ", - "xpack.lens.formulaDocumentation.weekOverWeekDescription.markdown": "### 周环比:\n\n使用 `shift='1w'` 以获取上一周每个分组\n的值。时间偏移不应与*排名最前值*函数一起使用。\n\n```\npercentile(system.network.in.bytes, percentile=99) /\npercentile(system.network.in.bytes, percentile=99, shift='1w')\n```\n ", - "xpack.lens.indexPattern.cardinality.documentation.markdown": "\n计算指定字段的唯一值数目。适用于数字、字符串、日期和布尔值。\n\n例如:计算不同产品的数目:\n`unique_count(product.name)`\n\n例如:计算“clothes”组中不同产品的数目:\n`unique_count(product.name, kql='product.group=clothes')`\n ", - "xpack.lens.indexPattern.count.documentation.markdown": "\n计算文档的数目。\n\n例如:计算文档的数目:\n`count()`\n\n例如:计算匹配特定筛选的文档数目:\n`count(kql='price > 500')`\n ", - "xpack.lens.indexPattern.counterRate.documentation.markdown": "\n计算不断增大的计数器的速率。此函数将仅基于计数器指标字段生成有帮助的结果,包括随着时间的推移度量某种单调递增。\n如果值确实变小,则其将此解析为计数器重置。要获取很精确的结果,应基于字段的 `max`计算 `counter_rate`。\n\n筛选或排名最前值维度定义的不同序列将分别执行此计算。\n用于公式中时,其使用当前时间间隔。\n\n例如:可视化随着时间的推移 Memcached 服务器接收的字节速率:\n`counter_rate(max(memcached.stats.read.bytes))`\n ", - "xpack.lens.indexPattern.cumulativeSum.documentation.markdown": "\n计算随着时间的推移指标的累计和,即序列的所有以前值相加得出每个值。要使用此函数,您还需要配置 Date Histogram 维度。\n\n筛选或排名最前值维度定义的不同序列将分别执行此计算。\n\n例如:可视化随着时间的推移累计接收的字节:\n`cumulative_sum(sum(bytes))`\n ", - "xpack.lens.indexPattern.differences.documentation.markdown": "\n计算随着时间的推移与指标最后一个值的差异。要使用此函数,您还需要配置 Date Histogram 维度。\n差异需要数据是顺序的。如果使用差异时数据为空,请尝试增加 Date Histogram 时间间隔。\n\n筛选或排名最前值维度定义的不同序列将分别执行此计算。\n\n例如:可视化随着时间的推移接收的字节的变化:\n`differences(sum(bytes))`\n ", - "xpack.lens.indexPattern.lastValue.documentation.markdown": "\n返回最后一个文档的字段值,按索引模式的默认时间字段排序。\n\n此函数用于检索实体的最新状态。\n\n例如:获取服务器 A 的当前状态:\n`last_value(server.status, kql='server.name=\"A\"')`\n ", - "xpack.lens.indexPattern.metric.documentation.markdown": "\n返回字段的 {metric}。此函数仅适用于数字字段。\n\n例如:获取价格的 {metric}:\n`{metric}(price)`\n\n例如:获取英国订单价格的 {metric}:\n`{metric}(price, kql='location:UK')`\n ", - "xpack.lens.indexPattern.movingAverage.documentation.markdown": "\n计算随着时间的推移指标的移动平均值,即计算最后 n 个值的平均值以得出当前值。要使用此函数,您还需要配置 Date Histogram 维度。\n默认窗口值为 {defaultValue}。\n\n筛选或排名最前值维度定义的不同序列将分别执行此计算。\n\n取已命名参数 `window`,其指定当前值的平均计算中要包括过去多少个值。\n\n例如:平滑度量线:\n`moving_average(sum(bytes), window=5)`\n ", - "xpack.lens.indexPattern.overall_average.documentation.markdown": "\n为当前图表中序列的所有数据点计算指标的平均值。序列由维度使用 Date Histogram 或时间间隔函数定义。\n分解数据的其他维度,如排名最前值或筛选,将被视为不同的序列。\n\n如果当前图表未使用 Date Histogram 或时间间隔函数,则无论使用什么函数,`overall_average` 都将计算所有维度的平均值\n\n例如:与平均值的偏离:\n`sum(bytes) - overall_average(sum(bytes))`\n ", - "xpack.lens.indexPattern.overall_max.documentation.markdown": "\n为当前图表中序列的所有数据点计算指标的最大值。序列由维度使用 Date Histogram 或时间间隔函数定义。\n分解数据的其他维度,如排名最前值或筛选,将被视为不同的序列。\n\n如果当前图表未使用 Date Histogram 或内部函数,则无论使用什么函数,`overall_max` 都将计算所有维度的最大值\n\n例如:范围的百分比\n`(sum(bytes) - overall_min(sum(bytes))) / (overall_max(sum(bytes)) - overall_min(sum(bytes)))`\n ", - "xpack.lens.indexPattern.overall_min.documentation.markdown": "\n为当前图表中序列的所有数据点计算指标的最小值。序列由维度使用 Date Histogram 或时间间隔函数定义。\n分解数据的其他维度,如排名最前值或筛选,将被视为不同的序列。\n\n如果当前图表未使用 Date Histogram 或时间间隔函数,则无论使用什么函数,`overall_min` 都将计算所有维度的最小值\n\n例如:范围的百分比\n`(sum(bytes) - overall_min(sum(bytes)) / (overall_max(sum(bytes)) - overall_min(sum(bytes)))`\n ", - "xpack.lens.indexPattern.overall_sum.documentation.markdown": "\n计算当前图表中序列所有数据点的指标的和。序列由维度使用 Date Histogram 或时间间隔函数定义。\n分解数据的其他维度,如排名最前值或筛选,将被视为不同的序列。\n\n如果当前图表未使用 Date Histogram 或时间间隔函数,则无论使用什么函数,`overall_sum` 都将计算所有维度的和。\n\n例如:总计的百分比\n`sum(bytes) / overall_sum(sum(bytes))`\n ", - "xpack.lens.indexPattern.percentile.documentation.markdown": "\n返回字段的值的指定百分位数。文档中百分之 n 的值比此值小。\n\n例如:获取大于 95 % 的值的字节数:\n`percentile(bytes, percentile=95)`\n ", - "xpack.lens.app.addToLibrary": "保存到库", - "xpack.lens.app.cancel": "取消", - "xpack.lens.app.cancelButtonAriaLabel": "返回到上一个应用而不保存更改", - "xpack.lens.app.docLoadingError": "加载已保存文档时出错", - "xpack.lens.app.downloadButtonAriaLabel": "将数据下载为 CSV 文件", - "xpack.lens.app.downloadButtonFormulasWarning": "您的 CSV 包含电子表格应用程序可能解释为公式的字符。", - "xpack.lens.app.downloadCSV": "下载为 CSV", - "xpack.lens.app.save": "保存", - "xpack.lens.app.saveAndReturn": "保存并返回", - "xpack.lens.app.saveAndReturnButtonAriaLabel": "保存当前 Lens 可视化并返回到上一应用", - "xpack.lens.app.saveAs": "另存为", - "xpack.lens.app.saveButtonAriaLabel": "保存当前的 Lens 可视化", - "xpack.lens.app.saveModalType": "Lens 可视化", - "xpack.lens.app.saveVisualization.successNotificationText": "已保存“{visTitle}”", - "xpack.lens.app.unsavedFilename": "未保存", - "xpack.lens.app.unsavedWorkMessage": "离开有未保存工作的 Lens?", - "xpack.lens.app.unsavedWorkTitle": "未保存的更改", - "xpack.lens.app.updatePanel": "更新 {originatingAppName} 中的面板", - "xpack.lens.app404": "404 找不到", - "xpack.lens.breadcrumbsByValue": "编辑可视化", - "xpack.lens.breadcrumbsCreate": "创建", - "xpack.lens.breadcrumbsTitle": "Visualize 库", - "xpack.lens.chartSwitch.dataLossDescription": "选择此可视化类型将使当前应用的配置选择部分丢失。", - "xpack.lens.chartSwitch.dataLossLabel": "警告", - "xpack.lens.chartSwitch.experimentalLabel": "实验性", - "xpack.lens.chartSwitch.noResults": "找不到 {term} 的结果。", - "xpack.lens.chartTitle.unsaved": "未保存的可视化", - "xpack.lens.chartWarnings.number": "{warningsCount} 个{warningsCount, plural, other {警告}}", - "xpack.lens.configPanel.addLayerButton": "添加图层", - "xpack.lens.configPanel.color.tooltip.auto": "Lens 自动为您选取颜色,除非您指定定制颜色。", - "xpack.lens.configPanel.color.tooltip.custom": "清除定制颜色以返回到“自动”模式。", - "xpack.lens.configPanel.color.tooltip.disabled": "当图层包括“细分依据”,各个系列无法定制颜色。", - "xpack.lens.configPanel.selectVisualization": "选择可视化", - "xpack.lens.configPanel.visualizationType": "可视化类型", - "xpack.lens.configure.configurePanelTitle": "{groupLabel}", - "xpack.lens.configure.editConfig": "编辑 {label} 配置", - "xpack.lens.configure.emptyConfig": "添加或拖放字段", - "xpack.lens.configure.invalidConfigTooltip": "配置无效。", - "xpack.lens.configure.invalidConfigTooltipClick": "单击了解更多详情。", - "xpack.lens.customBucketContainer.dragToReorder": "拖动以重新排序", - "xpack.lens.dataPanelWrapper.switchDatasource": "切换到数据源", - "xpack.lens.datatable.addLayer": "添加可视化图层", - "xpack.lens.datatable.breakdownColumns": "列", - "xpack.lens.datatable.breakdownColumns.description": "按字段拆分指标列。建议减少列数目以避免水平滚动。", - "xpack.lens.datatable.breakdownRows": "行", - "xpack.lens.datatable.breakdownRows.description": "按字段拆分表行。建议将其用于高基数分解。", - "xpack.lens.datatable.conjunctionSign": " & ", - "xpack.lens.datatable.expressionHelpLabel": "数据表呈现器", - "xpack.lens.datatable.groupLabel": "表和单值", - "xpack.lens.datatable.label": "表", - "xpack.lens.datatable.metrics": "指标", - "xpack.lens.datatable.suggestionLabel": "作为表", - "xpack.lens.datatable.titleLabel": "标题", - "xpack.lens.datatable.visualizationName": "数据表", - "xpack.lens.datatable.visualizationOf": "表{operations}", - "xpack.lens.datatypes.boolean": "布尔值", - "xpack.lens.datatypes.date": "日期", - "xpack.lens.datatypes.geoPoint": "geo_point", - "xpack.lens.datatypes.geoShape": "geo_shape", - "xpack.lens.datatypes.histogram": "直方图", - "xpack.lens.datatypes.ipAddress": "IP", - "xpack.lens.datatypes.number": "数字", - "xpack.lens.datatypes.record": "记录", - "xpack.lens.datatypes.string": "字符串", - "xpack.lens.deleteLayerAriaLabel": "删除图层 {index}", - "xpack.lens.dimensionContainer.close": "关闭", - "xpack.lens.dimensionContainer.closeConfiguration": "关闭配置", - "xpack.lens.discover.visualizeFieldLegend": "可视化字段", - "xpack.lens.dragDrop.altOption": "Alt/Option 键", - "xpack.lens.dragDrop.announce.cancelled": "移动已取消。{label} 将返回至其初始位置", - "xpack.lens.dragDrop.announce.cancelledItem": "移动已取消。{label} 返回至 {groupLabel} 组中的位置 {position}", - "xpack.lens.dragDrop.announce.dropped.duplicated": "已在 {groupLabel} 组中的位置 {position} 复制 {label}", - "xpack.lens.dragDrop.announce.dropped.duplicateIncompatible": "已将 {label} 的副本转换为 {nextLabel} 并添加 {groupLabel} 组中的位置 {position}", - "xpack.lens.dragDrop.announce.dropped.moveCompatible": "已将 {label} 移到 {groupLabel} 组中的位置 {position}", - "xpack.lens.dragDrop.announce.dropped.moveIncompatible": "已将 {label} 转换为 {nextLabel} 并移到 {groupLabel} 组中的位置 {position}", - "xpack.lens.dragDrop.announce.dropped.reordered": "已将 {groupLabel} 组中的 {label} 从位置 {prevPosition} 重新排到位置 {position}", - "xpack.lens.dragDrop.announce.dropped.replaceDuplicateIncompatible": "已将 {label} 的副本转换为 {nextLabel} 并替换了 {groupLabel} 组中位置 {position} 上的 {dropLabel}", - "xpack.lens.dragDrop.announce.dropped.replaceIncompatible": "已将 {label} 转换为 {nextLabel} 并替换了 {groupLabel} 组中位置 {position} 上的 {dropLabel}", - "xpack.lens.dragDrop.announce.dropped.swapCompatible": "已将 {label} 移至 {dropGroupLabel} 中的位置 {dropPosition} 并将 {dropLabel} 移至组 {groupLabel} 中的位置 {position}", - "xpack.lens.dragDrop.announce.dropped.swapIncompatible": "已将 {label} 转换为组 {groupLabel} 中位置 {position} 上的 {nextLabel},并与组 {dropGroupLabel} 中位置 {dropPosition} 上的 {dropLabel} 交换", - "xpack.lens.dragDrop.announce.droppedDefault": "已将 {label} 添加到 {dropGroupLabel} 组中的位置 {position}", - "xpack.lens.dragDrop.announce.droppedNoPosition": "已将 {label} 添加到 {dropLabel}", - "xpack.lens.dragDrop.announce.duplicate.short": " 按住 alt 或 option 键以复制。", - "xpack.lens.dragDrop.announce.duplicated.replace": "已将 {groupLabel} 组中位置 {position} 上的 {dropLabel} 替换为 {label}", - "xpack.lens.dragDrop.announce.duplicated.replaceDuplicateCompatible": "已将 {groupLabel} 组中位置 {position} 上的 {dropLabel} 替换为 {label} 的副本", - "xpack.lens.dragDrop.announce.lifted": "已提升 {label}", - "xpack.lens.dragDrop.announce.selectedTarget.default": "将 {label} 添加到 {dropGroupLabel} 组中的位置 {position}。按空格键或 enter 键添加", - "xpack.lens.dragDrop.announce.selectedTarget.defaultNoPosition": "将 {label} 添加到 {dropLabel}。按空格键或 enter 键添加", - "xpack.lens.dragDrop.announce.selectedTarget.duplicated": "将 {label} 复制到 {dropGroupLabel} 组中的位置 {position}。按住 Alt 或 Option 并按空格键或 enter 键以复制", - "xpack.lens.dragDrop.announce.selectedTarget.duplicatedInGroup": "将 {label} 复制到 {dropGroupLabel} 组中的位置 {position}。按空格键或 enter 键复制", - "xpack.lens.dragDrop.announce.selectedTarget.duplicateIncompatible": "将 {label} 转换为 {nextLabel} 并移到 {groupLabel} 组中的位置 {position}。按住 Alt 或 Option 并按空格键或 enter 键以复制", - "xpack.lens.dragDrop.announce.selectedTarget.moveCompatible": "将 {label} 移至 {dropGroupLabel} 组中的位置 {dropPosition}。按空格键或 enter 键移动", - "xpack.lens.dragDrop.announce.selectedTarget.moveCompatibleMain": "您正将 {groupLabel} 中位置 {position} 上的{label} 拖到 {dropGroupLabel} 组中的位置 {dropPosition} 上。按空格键或 enter 键移动。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible": "将 {label} 转换为 {nextLabel} 并移到 {dropGroupLabel} 组中的位置 {dropPosition}。按空格键或 enter 键移动", - "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatibleMain": "您正将 {groupLabel} 中位置 {position} 上的{label} 拖到 {dropGroupLabel} 组中的位置 {dropPosition} 上。按空格键或 enter 键以将 {label} 转换为 {nextLabel} 并移动。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.noSelected": "未选择任何目标。使用箭头键选择目标", - "xpack.lens.dragDrop.announce.selectedTarget.reordered": "将 {groupLabel} 组中的 {label} 从位置 {prevPosition} 重新排到位置 {position}。按空格键或 enter 键重新排列", - "xpack.lens.dragDrop.announce.selectedTarget.reorderedBack": "{label} 已返回至其初始位置 {prevPosition}", - "xpack.lens.dragDrop.announce.selectedTarget.replace": "将 {dropGroupLabel} 组中位置 {dropPosition} 上的 {dropLabel} 替换为 {label}。按空格键或 enter 键替换。", - "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateCompatible": "复制 {label} 并替换 {groupLabel} 中位置 {position} 上的 {dropLabel}。按住 Alt 或 Option 并按空格键或 enter 键以复制并替换", - "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateIncompatible": "将 {label} 的副本转换为 {nextLabel} 并替换 {groupLabel} 组中位置 {position} 上的 {dropLabel}。按住 Alt 或 Option 并按空格键或 enter 键以复制并替换", - "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatible": "将 {label} 转换为 {nextLabel} 并替换 {dropGroupLabel} 组中位置 {dropPosition} 上的 {dropLabel}。按空格键或 enter 键替换", - "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatibleMain": "您正将 {groupLabel} 中位置 {position} 上的{label} 拖到 {dropGroupLabel} 组中位置 {dropPosition} 上的 {dropLabel}。按空格键或 enter 键以将 {label} 转换为 {nextLabel} 并替换 {dropLabel}。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.replaceMain": "您正将 {groupLabel} 中位置 {position} 上的{label} 拖到 {dropGroupLabel} 组中位置 {dropPosition} 上的 {dropLabel}。按空格键或 enter 键以将 {dropLabel} 替换为 {label}。{duplicateCopy}{swapCopy}", - "xpack.lens.dragDrop.announce.selectedTarget.swapCompatible": "将组 {groupLabel} 中位置 {position} 上的 {label} 与组 {dropGroupLabel} 中位置 {dropPosition} 上的 {dropLabel} 交换。按住 Shift 键并按空格键或 enter 键交换", - "xpack.lens.dragDrop.announce.selectedTarget.swapIncompatible": "将 {label} 转换为组 {groupLabel} 中位置 {position} 上的 {nextLabel},并与组 {dropGroupLabel} 中位置 {dropPosition} 上的 {dropLabel} 交换。按住 Shift 键并按空格键或 enter 键交换", - "xpack.lens.dragDrop.announce.swap.short": " 按住 Shift 键交换。", - "xpack.lens.dragDrop.duplicate": "复制", - "xpack.lens.dragDrop.keyboardInstructions": "按空格键或 enter 键开始拖动。拖动时,请左右箭头键在拖动目标之间移动。再次按空格键或 enter 键结束操作。", - "xpack.lens.dragDrop.keyboardInstructionsReorder": "按空格键或 enter 键开始拖动。拖动时,请使用上下箭头键重新排列组中的项目,使用左右箭头键在组之外选择拖动目标。再次按空格键或 enter 键结束操作。", - "xpack.lens.dragDrop.shift": "Shift 键", - "xpack.lens.dragDrop.swap": "交换", - "xpack.lens.dynamicColoring.customPalette.addColorStop": "添加颜色停止", - "xpack.lens.dynamicColoring.customPalette.deleteButtonAriaLabel": "删除", - "xpack.lens.dynamicColoring.customPalette.deleteButtonDisabled": "此颜色停止无法删除,因为需要两个或更多停止", - "xpack.lens.dynamicColoring.customPalette.deleteButtonLabel": "删除", - "xpack.lens.dynamicColoring.customPalette.sortReason": "由于新停止值 {value},颜色停止已排序", - "xpack.lens.dynamicColoring.customPalette.stopAriaLabel": "停止 {index}", - "xpack.lens.editorFrame.buildExpressionError": "准备图表时发生意外错误", - "xpack.lens.editorFrame.colorIndicatorLabel": "此维度的颜色:{hex}", - "xpack.lens.editorFrame.configurationFailureMoreErrors": " +{errors} 个{errors, plural, other {错误}}", - "xpack.lens.editorFrame.dataFailure": "加载数据时出错。", - "xpack.lens.editorFrame.emptyWorkspace": "将一些字段拖放到此处以开始", - "xpack.lens.editorFrame.emptyWorkspaceHeading": "Lens 是用于创建可视化的新工具", - "xpack.lens.editorFrame.emptyWorkspaceSimple": "将字段放到此处", - "xpack.lens.editorFrame.expandRenderingErrorButton": "显示错误的详情", - "xpack.lens.editorFrame.expressionFailure": "表达式中发生错误", - "xpack.lens.editorFrame.expressionFailureMessage": "请求错误:{type},{reason}", - "xpack.lens.editorFrame.expressionFailureMessageWithContext": "请求错误:{type},{context} 中的 {reason}", - "xpack.lens.editorFrame.expressionMissingDatasource": "无法找到可视化的数据源", - "xpack.lens.editorFrame.expressionMissingVisualizationType": "找不到可视化类型。", - "xpack.lens.editorFrame.goToForums": "提出请求并提供反馈", - "xpack.lens.editorFrame.invisibleIndicatorLabel": "此维度当前在图表中不可见", - "xpack.lens.editorFrame.networkErrorMessage": "网络错误,请稍后重试或联系管理员。", - "xpack.lens.editorFrame.noColorIndicatorLabel": "此维度没有单独的颜色", - "xpack.lens.editorFrame.paletteColorIndicatorLabel": "此维度正在使用调色板", - "xpack.lens.editorFrame.previewErrorLabel": "预览呈现失败", - "xpack.lens.editorFrame.requiredDimensionWarningLabel": "所需尺寸", - "xpack.lens.editorFrame.suggestionPanelTitle": "建议", - "xpack.lens.editorFrame.workspaceLabel": "工作区", - "xpack.lens.embeddable.failure": "无法显示可视化", - "xpack.lens.embeddable.fixErrors": "在 Lens 编辑器中编辑以修复该错误", - "xpack.lens.embeddable.moreErrors": "在 Lens 编辑器中编辑以查看更多错误", - "xpack.lens.embeddableDisplayName": "lens", - "xpack.lens.fieldFormats.longSuffix.d": "每天", - "xpack.lens.fieldFormats.longSuffix.h": "每小时", - "xpack.lens.fieldFormats.longSuffix.m": "每分钟", - "xpack.lens.fieldFormats.longSuffix.s": "每秒", - "xpack.lens.fieldFormats.suffix.d": "/d", - "xpack.lens.fieldFormats.suffix.h": "/h", - "xpack.lens.fieldFormats.suffix.m": "/m", - "xpack.lens.fieldFormats.suffix.s": "/s", - "xpack.lens.fieldFormats.suffix.title": "后缀", - "xpack.lens.filterBy.removeLabel": "移除筛选", - "xpack.lens.fittingFunctionsDescription.carry": "使用最后一个值填充空距", - "xpack.lens.fittingFunctionsDescription.linear": "使用线填充空距", - "xpack.lens.fittingFunctionsDescription.lookahead": "使用下一个值填充空距", - "xpack.lens.fittingFunctionsDescription.none": "不填充空距", - "xpack.lens.fittingFunctionsDescription.zero": "使用零填充空距", - "xpack.lens.fittingFunctionsTitle.carry": "最后一个", - "xpack.lens.fittingFunctionsTitle.linear": "线性", - "xpack.lens.fittingFunctionsTitle.lookahead": "下一个", - "xpack.lens.fittingFunctionsTitle.none": "隐藏", - "xpack.lens.fittingFunctionsTitle.zero": "零", - "xpack.lens.formula.base": "底数", - "xpack.lens.formula.decimals": "小数", - "xpack.lens.formula.disableWordWrapLabel": "禁用自动换行", - "xpack.lens.formula.editorHelpInlineHideLabel": "隐藏函数引用", - "xpack.lens.formula.editorHelpInlineHideToolTip": "隐藏函数引用", - "xpack.lens.formula.editorHelpInlineShowToolTip": "显示函数引用", - "xpack.lens.formula.editorHelpOverlayToolTip": "函数引用", - "xpack.lens.formula.fullScreenEnterLabel": "展开", - "xpack.lens.formula.fullScreenExitLabel": "折叠", - "xpack.lens.formula.kqlExtraArguments": "[kql]?: string, [lucene]?: string", - "xpack.lens.formula.left": "左", - "xpack.lens.formula.max": "最大值", - "xpack.lens.formula.min": "最小值", - "xpack.lens.formula.number": "数字", - "xpack.lens.formula.optionalArgument": "可选。默认值为 {defaultValue}", - "xpack.lens.formula.requiredArgument": "必需", - "xpack.lens.formula.right": "右", - "xpack.lens.formula.shiftExtraArguments": "[shift]?: string", - "xpack.lens.formula.string": "字符串", - "xpack.lens.formula.value": "值", - "xpack.lens.formulaCommonFormulaDocumentation": "最常见的公式是将两个值相除以得到百分比。要精确显示,请将“value format”设置为“percent”。", - "xpack.lens.formulaDocumentation.columnCalculationSection": "列计算", - "xpack.lens.formulaDocumentation.columnCalculationSectionDescription": "每行都执行这些函数,但系统会为这些函数提供整列作为上下文。这也称作窗口函数。", - "xpack.lens.formulaDocumentation.elasticsearchSection": "Elasticsearch", - "xpack.lens.formulaDocumentation.elasticsearchSectionDescription": "在原始文档上结果列表的每行都将执行这些函数,从而将匹配分解维度的所有文档聚合成单值。", - "xpack.lens.formulaDocumentation.filterRatio": "筛选比", - "xpack.lens.formulaDocumentation.header": "公式参考", - "xpack.lens.formulaDocumentation.mathSection": "数学", - "xpack.lens.formulaDocumentation.mathSectionDescription": "结果表的每行使用相同行中使用其他函数计算的单值执行这些函数。", - "xpack.lens.formulaDocumentation.percentOfTotal": "总计的百分比", - "xpack.lens.formulaDocumentation.weekOverWeek": "周环比", - "xpack.lens.formulaDocumentationHeading": "运作方式", - "xpack.lens.formulaEnableWordWrapLabel": "启用自动换行", - "xpack.lens.formulaErrorCount": "{count} 个{count, plural, other {错误}}", - "xpack.lens.formulaExampleMarkdown": "示例", - "xpack.lens.formulaFrequentlyUsedHeading": "常用公式", - "xpack.lens.formulaPlaceholderText": "通过将函数与数学表达式组合来键入公式,如:", - "xpack.lens.formulaSearchPlaceholder": "搜索函数", - "xpack.lens.formulaWarningCount": "{count} 个{count, plural, other {警告}}", - "xpack.lens.functions.counterRate.args.byHelpText": "用于拆分计数率计算的列", - "xpack.lens.functions.counterRate.args.inputColumnIdHelpText": "要计算计数器比率的列", - "xpack.lens.functions.counterRate.args.outputColumnIdHelpText": "要存储结果计数率的列", - "xpack.lens.functions.counterRate.args.outputColumnNameHelpText": "要存储结果计数率的列名称", - "xpack.lens.functions.counterRate.help": "在数据表中计算列的计数率", - "xpack.lens.functions.lastValue.missingSortField": "此索引模式不包含任何日期字段", - "xpack.lens.functions.mergeTables.help": "将任意数目的 kibana 表合并到单个表中并通过检查器适配器将其开放的助手", - "xpack.lens.functions.renameColumns.help": "用于重命名数据表列的助手", - "xpack.lens.functions.renameColumns.idMap.help": "旧列 ID 为键且相应新列 ID 为值的 JSON 编码对象。所有其他列 ID 都将保留。", - "xpack.lens.functions.timeScale.dateColumnMissingMessage": "指定的 dateColumnId {columnId} 不存在。", - "xpack.lens.functions.timeScale.timeInfoMissingMessage": "无法获取日期直方图信息", - "xpack.lens.geoFieldWorkspace.dropMessage": "将字段放置在此处以在 Maps 中打开", - "xpack.lens.geoFieldWorkspace.dropZoneLabel": "放置区域以在 Maps 中打开", - "xpack.lens.heatmap.addLayer": "添加可视化图层", - "xpack.lens.heatmap.cellValueLabel": "单元格值", - "xpack.lens.heatmap.expressionHelpLabel": "热图呈现器", - "xpack.lens.heatmap.groupLabel": "热图", - "xpack.lens.heatmap.heatmapLabel": "热图", - "xpack.lens.heatmap.horizontalAxisLabel": "水平轴", - "xpack.lens.heatmap.titleLabel": "标题", - "xpack.lens.heatmap.verticalAxisLabel": "垂直轴", - "xpack.lens.heatmap.visualizationName": "热图", - "xpack.lens.heatmapChart.config.cellHeight.help": "指定网格单元格高度", - "xpack.lens.heatmapChart.config.cellWidth.help": "指定网格单元格宽度", - "xpack.lens.heatmapChart.config.isCellLabelVisible.help": "指定单元格标签是否可见。", - "xpack.lens.heatmapChart.config.isXAxisLabelVisible.help": "指定 X 轴标签是否可见。", - "xpack.lens.heatmapChart.config.isYAxisLabelVisible.help": "指定 Y 轴标签是否可见。", - "xpack.lens.heatmapChart.config.strokeColor.help": "指定网格笔画颜色", - "xpack.lens.heatmapChart.config.strokeWidth.help": "指定网格笔画宽度", - "xpack.lens.heatmapChart.config.yAxisLabelColor.help": "指定 Y 轴标签的颜色。", - "xpack.lens.heatmapChart.config.yAxisLabelWidth.help": "指定 Y 轴标签的宽度。", - "xpack.lens.heatmapChart.gridConfig.help": "配置热图布局。", - "xpack.lens.heatmapChart.legend.help": "配置图表图例。", - "xpack.lens.heatmapChart.legend.isVisible.help": "指定图例是否可见。", - "xpack.lens.heatmapChart.legend.maxLines.help": "指定每个图例项的行数。", - "xpack.lens.heatmapChart.legend.position.help": "指定图例位置。", - "xpack.lens.heatmapChart.legend.shouldTruncate.help": "指定是否截断图例项。", - "xpack.lens.heatmapChart.legendVisibility.hide": "隐藏", - "xpack.lens.heatmapChart.legendVisibility.show": "显示", - "xpack.lens.heatmapVisualization.arrayValuesWarningMessage": "{label} 包含数组值。您的可视化可能无法正常渲染。", - "xpack.lens.heatmapVisualization.heatmapGroupLabel": "热图", - "xpack.lens.heatmapVisualization.heatmapLabel": "热图", - "xpack.lens.heatmapVisualization.missingXAccessorLongMessage": "水平轴配置缺失。", - "xpack.lens.heatmapVisualization.missingXAccessorShortMessage": "缺失水平轴。", - "xpack.lens.indexPattern.advancedSettings": "添加高级选项", - "xpack.lens.indexPattern.allFieldsLabel": "所有字段", - "xpack.lens.indexPattern.allFieldsLabelHelp": "可用字段在与您的筛选匹配的前 500 个文档中有数据。要查看所有字段,请展开空字段。一些字段类型无法在 Lens 中可视化,包括全文本字段和地理字段。", - "xpack.lens.indexPattern.availableFieldsLabel": "可用字段", - "xpack.lens.indexPattern.avg": "平均值", - "xpack.lens.indexPattern.avg.description": "单值指标聚合,计算从聚合文档提取的数值的平均值", - "xpack.lens.indexPattern.avgOf": "{name} 的平均值", - "xpack.lens.indexPattern.bytesFormatLabel": "字节 (1024)", - "xpack.lens.indexPattern.calculations.dateHistogramErrorMessage": "{name} 需要日期直方图才能运行。添加日期直方图或选择不同的函数。", - "xpack.lens.indexPattern.calculations.layerDataType": "已为此图层类型禁用 {name}。", - "xpack.lens.indexPattern.cardinality": "唯一计数", - "xpack.lens.indexPattern.cardinality.signature": "field: string", - "xpack.lens.indexPattern.cardinalityOf": "{name} 的唯一计数", - "xpack.lens.indexPattern.chooseField": "选择字段", - "xpack.lens.indexPattern.chooseFieldLabel": "要使用此函数,请选择字段。", - "xpack.lens.indexPattern.chooseSubFunction": "选择子函数", - "xpack.lens.indexPattern.columnFormatLabel": "值格式", - "xpack.lens.indexPattern.columnLabel": "显示名称", - "xpack.lens.indexPattern.count": "计数", - "xpack.lens.indexPattern.counterRate": "计数率", - "xpack.lens.indexPattern.counterRate.signature": "指标:数字", - "xpack.lens.indexPattern.CounterRateOf": "{name} 的计数率", - "xpack.lens.indexPattern.countOf": "记录计数", - "xpack.lens.indexPattern.cumulative_sum.signature": "指标:数字", - "xpack.lens.indexPattern.cumulativeSum": "累计和", - "xpack.lens.indexPattern.cumulativeSumOf": "{name} 的累计和", - "xpack.lens.indexPattern.dateHistogram": "Date Histogram", - "xpack.lens.indexPattern.dateHistogram.autoAdvancedExplanation": "时间间隔遵循以下逻辑:", - "xpack.lens.indexPattern.dateHistogram.autoBasicExplanation": "自动日期直方图按时间间隔将数据字段拆分为桶。", - "xpack.lens.indexPattern.dateHistogram.autoBoundHeader": "已度量目标时间间隔", - "xpack.lens.indexPattern.dateHistogram.autoHelpText": "运作方式", - "xpack.lens.indexPattern.dateHistogram.autoInterval": "定制时间间隔", - "xpack.lens.indexPattern.dateHistogram.autoIntervalHeader": "已用时间间隔", - "xpack.lens.indexPattern.dateHistogram.autoLongerExplanation": "要选择时间间隔,Lens 按 {targetBarSetting} 设置分割指定的时间范围。Lens 为您的数据计算最佳时间间隔。例如 30m、1h 和 12。最大条形数由 {maxBarSetting} 值设置。", - "xpack.lens.indexPattern.dateHistogram.days": "天", - "xpack.lens.indexPattern.dateHistogram.hours": "小时", - "xpack.lens.indexPattern.dateHistogram.milliseconds": "毫秒", - "xpack.lens.indexPattern.dateHistogram.minimumInterval": "最小时间间隔", - "xpack.lens.indexPattern.dateHistogram.minutes": "分钟", - "xpack.lens.indexPattern.dateHistogram.month": "个月", - "xpack.lens.indexPattern.dateHistogram.moreThanYear": "1 年以上", - "xpack.lens.indexPattern.dateHistogram.restrictedInterval": "由于聚合限制,时间间隔固定为 {intervalValue}。", - "xpack.lens.indexPattern.dateHistogram.seconds": "秒", - "xpack.lens.indexPattern.dateHistogram.titleHelp": "自动日期直方图的工作原理", - "xpack.lens.indexPattern.dateHistogram.upTo": "最多", - "xpack.lens.indexPattern.dateHistogram.week": "周", - "xpack.lens.indexPattern.dateHistogram.year": "年", - "xpack.lens.indexPattern.decimalPlacesLabel": "小数", - "xpack.lens.indexPattern.defaultFormatLabel": "默认", - "xpack.lens.indexPattern.derivative": "差异", - "xpack.lens.indexPattern.derivativeOf": "{name} 的差异", - "xpack.lens.indexPattern.differences.signature": "指标:数字", - "xpack.lens.indexPattern.emptyDimensionButton": "空维度", - "xpack.lens.indexPattern.emptyFieldsLabel": "空字段", - "xpack.lens.indexPattern.emptyFieldsLabelHelp": "空字段在基于您的筛选的前 500 个文档中不包含任何值。", - "xpack.lens.indexPattern.existenceErrorAriaLabel": "现有内容提取失败", - "xpack.lens.indexPattern.existenceErrorLabel": "无法加载字段信息", - "xpack.lens.indexPattern.existenceTimeoutAriaLabel": "现有内容提取超时", - "xpack.lens.indexPattern.existenceTimeoutLabel": "字段信息花费时间过久", - "xpack.lens.indexPattern.fieldDistributionLabel": "分布", - "xpack.lens.indexPattern.fieldItem.visualizeGeoFieldLinkText": "在 Maps 中可视化", - "xpack.lens.indexPattern.fieldItemTooltip": "拖放以可视化。", - "xpack.lens.indexPattern.fieldNoOperation": "没有运算,无法使用字段 {field}", - "xpack.lens.indexPattern.fieldNotFound": "未找到字段 {invalidField}", - "xpack.lens.indexPattern.fieldPanelEmptyStringValue": "空字符串", - "xpack.lens.indexPattern.fieldPlaceholder": "字段", - "xpack.lens.indexPattern.fieldStatsButtonAriaLabel": "预览 {fieldName}:{fieldType}", - "xpack.lens.indexPattern.fieldStatsButtonEmptyLabel": "此字段不包含任何数据,但您仍然可以拖放以进行可视化。", - "xpack.lens.indexPattern.fieldStatsButtonLabel": "单击以进行字段预览,或拖放以进行可视化。", - "xpack.lens.indexPattern.fieldStatsCountLabel": "计数", - "xpack.lens.indexPattern.fieldStatsDisplayToggle": "切换", - "xpack.lens.indexPattern.fieldStatsLimited": "摘要信息不适用于范围类型字段。", - "xpack.lens.indexPattern.fieldStatsNoData": "此字段为空,因为它不存在于 500 个采样文档中。将此字段添加到配置可能会导致空图表。", - "xpack.lens.indexPattern.fieldTimeDistributionLabel": "时间分布", - "xpack.lens.indexPattern.fieldTopValuesLabel": "排名最前值", - "xpack.lens.indexPattern.fieldWrongType": "字段 {invalidField} 的类型不正确", - "xpack.lens.indexPattern.filterBy.clickToEdit": "单击以编辑", - "xpack.lens.indexPattern.filterBy.emptyFilterQuery": "(空)", - "xpack.lens.indexPattern.filterBy.label": "筛选依据", - "xpack.lens.indexPattern.filters": "筛选", - "xpack.lens.indexPattern.filters.addaFilter": "添加筛选", - "xpack.lens.indexPattern.filters.clickToEdit": "单击以编辑", - "xpack.lens.indexPattern.filters.isInvalid": "此查询无效。", - "xpack.lens.indexPattern.filters.label.placeholder": "所有记录", - "xpack.lens.indexPattern.filters.queryPlaceholderKql": "{example}", - "xpack.lens.indexPattern.filters.queryPlaceholderLucene": "{example}", - "xpack.lens.indexPattern.filters.removeFilter": "移除筛选", - "xpack.lens.indexPattern.formulaExpressionNotHandled": "公式中的运算 {operation} 缺失以下参数:{params}", - "xpack.lens.indexPattern.formulaExpressionParseError": "公式 {expression} 无法解析", - "xpack.lens.indexPattern.formulaExpressionWrongType": "公式中运算 {operation} 的参数的类型不正确:{params}", - "xpack.lens.indexPattern.formulaFieldNotFound": "找不到{variablesLength, plural, other {字段}} {variablesList}", - "xpack.lens.indexPattern.formulaFieldNotRequired": "运算 {operation} 不接受任何字段作为参数", - "xpack.lens.indexPattern.formulaFieldValue": "字段", - "xpack.lens.indexPattern.formulaLabel": "公式", - "xpack.lens.indexPattern.formulaMathMissingArgument": "公式中的运算 {operation} 缺失 {count} 个参数:{params}", - "xpack.lens.indexPattern.formulaMetricValue": "指标", - "xpack.lens.indexPattern.formulaNoFieldForOperation": "无字段", - "xpack.lens.indexPattern.formulaNoOperation": "无操作", - "xpack.lens.indexPattern.formulaOperationDoubleQueryError": "仅使用 kql= 或 lucene=,而非二者", - "xpack.lens.indexPattern.formulaOperationDuplicateParams": "运算 {operation} 的参数已声明多次:{params}", - "xpack.lens.indexPattern.formulaOperationQueryError": "{rawQuery} 的 {language}='' 需要单引号", - "xpack.lens.indexPattern.formulaOperationTooManyFirstArguments": "公式中的运算 {operation} 需要{supported, plural, one {单个} other {支持的}} {type},发现了:{text}", - "xpack.lens.indexPattern.formulaOperationValue": "运算", - "xpack.lens.indexPattern.formulaOperationwrongArgument": "公式中的运算 {operation} 不支持 {type} 参数,发现了:{text}", - "xpack.lens.indexPattern.formulaOperationWrongFirstArgument": "{operation} 的第一个参数应为 {type} 名称。找到了 {argument}", - "xpack.lens.indexPattern.formulaParameterNotRequired": "运算 {operation} 不接受任何参数", - "xpack.lens.indexPattern.formulaPartLabel": "{label} 的一部分", - "xpack.lens.indexPattern.formulaWarning": "公式当前已应用", - "xpack.lens.indexPattern.formulaWarningText": "要覆盖公式,请选择快速函数", - "xpack.lens.indexPattern.formulaWithTooManyArguments": "运算 {operation} 的参数过多", - "xpack.lens.indexPattern.functionsLabel": "选择函数", - "xpack.lens.indexPattern.groupByDropdown": "分组依据", - "xpack.lens.indexPattern.incompleteOperation": "(不完整)", - "xpack.lens.indexPattern.intervals": "时间间隔", - "xpack.lens.indexPattern.invalidInterval": "时间间隔值无效", - "xpack.lens.indexPattern.invalidOperationLabel": "此字段不适用于选定函数。", - "xpack.lens.indexPattern.invalidReferenceConfiguration": "维度“{dimensionLabel}”配置不正确", - "xpack.lens.indexPattern.invalidTimeShift": "时间偏移无效。输入正整数数量,后跟以下单位之一:s、m、h、d、w、M、y。例如,3h 表示 3 小时", - "xpack.lens.indexPattern.lastValue": "最后值", - "xpack.lens.indexPattern.lastValue.invalidTypeSortField": "字段 {invalidField} 不是日期字段,不能用于排序", - "xpack.lens.indexPattern.lastValue.signature": "field: string", - "xpack.lens.indexPattern.lastValue.sortField": "按日期字段排序", - "xpack.lens.indexPattern.lastValue.sortFieldNotFound": "未找到字段 {invalidField}", - "xpack.lens.indexPattern.lastValue.sortFieldPlaceholder": "排序字段", - "xpack.lens.indexPattern.lastValueOf": "{name} 的最后一个值", - "xpack.lens.indexPattern.layerErrorWrapper": "图层 {position} 错误:{wrappedMessage}", - "xpack.lens.indexPattern.max": "最大值", - "xpack.lens.indexPattern.max.description": "单值指标聚合,返回从聚合文档提取的数值中的最大值。", - "xpack.lens.indexPattern.maxOf": "{name} 的最大值", - "xpack.lens.indexPattern.median": "中值", - "xpack.lens.indexPattern.median.description": "单值指标聚合,计算从聚合文档提取的中值。", - "xpack.lens.indexPattern.medianOf": "{name} 的中位值", - "xpack.lens.indexPattern.metaFieldsLabel": "元字段", - "xpack.lens.indexPattern.metric.signature": "field: string", - "xpack.lens.indexPattern.min": "最小值", - "xpack.lens.indexPattern.min.description": "单值指标聚合,返回从聚合文档提取的数值中的最小值。", - "xpack.lens.indexPattern.minOf": "{name} 的最小值", - "xpack.lens.indexPattern.missingFieldLabel": "缺失字段", - "xpack.lens.indexPattern.missingReferenceError": "“{dimensionLabel}”配置不完整", - "xpack.lens.indexPattern.moveToWorkspace": "将 {field} 添加到工作区", - "xpack.lens.indexPattern.moveToWorkspaceDisabled": "此字段无法自动添加到工作区。您仍可以在配置面板中直接使用它。", - "xpack.lens.indexPattern.moving_average.signature": "指标:数字,[window]:数字", - "xpack.lens.indexPattern.movingAverage": "移动平均值", - "xpack.lens.indexPattern.movingAverage.basicExplanation": "移动平均值在数据上滑动时间窗并显示平均值。仅日期直方图支持移动平均值。", - "xpack.lens.indexPattern.movingAverage.helpText": "运作方式", - "xpack.lens.indexPattern.movingAverage.limitations": "第一个移动平均值开始于第二项。", - "xpack.lens.indexPattern.movingAverage.longerExplanation": "要计算移动平均值,Lens 使用时间窗的平均值,并为缺口应用跳过策略。 对于缺失值,将跳过桶,计算将基于下一个值执行。", - "xpack.lens.indexPattern.movingAverage.tableExplanation": "例如,如果数据为 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],则可以使用时间窗大小 5 计算简单移动平均值:", - "xpack.lens.indexPattern.movingAverage.titleHelp": "移动平均值的工作原理", - "xpack.lens.indexPattern.movingAverage.window": "窗口大小", - "xpack.lens.indexPattern.movingAverage.windowInitialPartial": "时间窗不完整,除非达到所请求的项目数。 例如,时间窗大小为 5:", - "xpack.lens.indexPattern.movingAverage.windowLimitations": "时间窗不包括当前值。", - "xpack.lens.indexPattern.movingAverageOf": "{name} 的移动平均值", - "xpack.lens.indexPattern.multipleDateHistogramsError": "“{dimensionLabel}”不是唯一的 Date Histogram。使用时间偏移时,请确保仅使用一个 Date Histogram。", - "xpack.lens.indexPattern.numberFormatLabel": "数字", - "xpack.lens.indexPattern.ofDocumentsLabel": "文档", - "xpack.lens.indexPattern.operationsNotFound": "未找到{operationLength, plural, other {运算}} {operationsList}", - "xpack.lens.indexPattern.otherDocsLabel": "其他", - "xpack.lens.indexPattern.overall_metric": "指标:数字", - "xpack.lens.indexPattern.overallAverageOf": "{name} 的总体平均值", - "xpack.lens.indexPattern.overallMax": "总体最大值", - "xpack.lens.indexPattern.overallMaxOf": "{name} 的总体最大值", - "xpack.lens.indexPattern.overallMin": "总体最小值", - "xpack.lens.indexPattern.overallMinOf": "{name} 的总体最小值", - "xpack.lens.indexPattern.overallSum": "总和", - "xpack.lens.indexPattern.overallSumOf": "{name} 的总和", - "xpack.lens.indexPattern.percentageOfLabel": "{percentage}% 的", - "xpack.lens.indexPattern.percentFormatLabel": "百分比", - "xpack.lens.indexPattern.percentile": "百分位数", - "xpack.lens.indexPattern.percentile.errorMessage": "百分位数必须是介于 1 到 99 之间的整数", - "xpack.lens.indexPattern.percentile.percentileValue": "百分位数", - "xpack.lens.indexPattern.percentile.signature": "field: string, [percentile]: number", - "xpack.lens.indexPattern.percentileOf": "{name} 的{percentile, selectordinal, one {第一个} two {第二个} few {第三个} other {第 #th 个}}百分位数", - "xpack.lens.indexPattern.pinnedTopValuesLabel": "{field} 的筛选", - "xpack.lens.indexPattern.quickFunctionsLabel": "快选函数", - "xpack.lens.indexPattern.range.isInvalid": "此范围无效", - "xpack.lens.indexPattern.ranges.addRange": "添加范围", - "xpack.lens.indexPattern.ranges.customIntervalsToggle": "创建定制范围", - "xpack.lens.indexPattern.ranges.customRangeLabelPlaceholder": "定制标签", - "xpack.lens.indexPattern.ranges.customRanges": "范围", - "xpack.lens.indexPattern.ranges.customRangesRemoval": "移除定制范围", - "xpack.lens.indexPattern.ranges.decreaseButtonLabel": "减小粒度", - "xpack.lens.indexPattern.ranges.deleteRange": "删除范围", - "xpack.lens.indexPattern.ranges.granularity": "时间间隔粒度", - "xpack.lens.indexPattern.ranges.granularityHelpText": "运作方式", - "xpack.lens.indexPattern.ranges.granularityPopoverAdvancedExplanation": "时间间隔按 10、5 或 2 递增。例如,时间间隔可以是 100 或 0.2。", - "xpack.lens.indexPattern.ranges.granularityPopoverBasicExplanation": "时间间隔粒度基于字段的最小值和最大值将字段分割为平均分布的时间间隔。", - "xpack.lens.indexPattern.ranges.granularityPopoverExplanation": "时间间隔的大小是“好”值。滑块的粒度更改时,如果“好的”时间间隔不变,时间间隔也不变。最小粒度为 1,最大值为 {setting}。要更改最大粒度,请前往“高级设置”。", - "xpack.lens.indexPattern.ranges.granularityPopoverTitle": "粒度时间间隔的工作原理", - "xpack.lens.indexPattern.ranges.increaseButtonLabel": "增加粒度", - "xpack.lens.indexPattern.ranges.lessThanOrEqualAppend": "≤", - "xpack.lens.indexPattern.ranges.lessThanOrEqualTooltip": "小于或等于", - "xpack.lens.indexPattern.ranges.lessThanPrepend": "<", - "xpack.lens.indexPattern.ranges.lessThanTooltip": "小于", - "xpack.lens.indexPattern.records": "记录", - "xpack.lens.indexPattern.referenceFunctionPlaceholder": "子函数", - "xpack.lens.indexPattern.removeColumnAriaLabel": "将字段添加或拖放到 {groupLabel}", - "xpack.lens.indexPattern.removeColumnLabel": "从“{groupLabel}”中删除配置", - "xpack.lens.indexPattern.sortField.invalid": "字段无效。检查索引模式或选取其他字段。", - "xpack.lens.indexpattern.suggestions.nestingChangeLabel": "每个 {outerOperation} 的 {innerOperation}", - "xpack.lens.indexpattern.suggestions.overallLabel": "总体 {operation}", - "xpack.lens.indexpattern.suggestions.overTimeLabel": "时移", - "xpack.lens.indexPattern.sum": "求和", - "xpack.lens.indexPattern.sum.description": "单值指标聚合,对从聚合文档提取的数值求和。", - "xpack.lens.indexPattern.sumOf": "{name} 之和", - "xpack.lens.indexPattern.terms": "排名最前值", - "xpack.lens.indexPattern.terms.advancedSettings": "高级", - "xpack.lens.indexPattern.terms.missingBucketDescription": "包括没有此字段的文档", - "xpack.lens.indexPattern.terms.missingLabel": "(缺失值)", - "xpack.lens.indexPattern.terms.orderAlphabetical": "按字母顺序", - "xpack.lens.indexPattern.terms.orderAscending": "升序", - "xpack.lens.indexPattern.terms.orderBy": "排名依据", - "xpack.lens.indexPattern.terms.orderByHelp": "指定排名靠前值排名所依据的维度。", - "xpack.lens.indexPattern.terms.orderDescending": "降序", - "xpack.lens.indexPattern.terms.orderDirection": "排名方向", - "xpack.lens.indexPattern.terms.otherBucketDescription": "将其他值分组为“其他”", - "xpack.lens.indexPattern.terms.otherLabel": "其他", - "xpack.lens.indexPattern.terms.size": "值数目", - "xpack.lens.indexPattern.termsOf": "{name} 排名最前值", - "xpack.lens.indexPattern.termsWithMultipleShifts": "在单个图层中,无法将指标与不同时间偏移和动态排名最前值组合。将相同的时间偏移值用于所有指标或使用筛选,而非排名最前值。", - "xpack.lens.indexPattern.termsWithMultipleShiftsFixActionLabel": "使用筛选", - "xpack.lens.indexPattern.timeScale.enableTimeScale": "按单位标准化", - "xpack.lens.indexPattern.timeScale.label": "按单位标准化", - "xpack.lens.indexPattern.timeScale.tooltip": "将值标准化为始终显示为每指定时间单位速率,无论基础日期时间间隔是多少。", - "xpack.lens.indexPattern.timeShift.12hours": "12 小时前 (12h)", - "xpack.lens.indexPattern.timeShift.3hours": "3 小时前 (3h)", - "xpack.lens.indexPattern.timeShift.3months": "3 个月前 (3M)", - "xpack.lens.indexPattern.timeShift.6hours": "6 小时前 (6h)", - "xpack.lens.indexPattern.timeShift.6months": "6 个月前 (6M)", - "xpack.lens.indexPattern.timeShift.day": "1 天前 (1d)", - "xpack.lens.indexPattern.timeShift.help": "输入时间偏移数字和单位", - "xpack.lens.indexPattern.timeShift.hour": "1 小时前 (1h)", - "xpack.lens.indexPattern.timeShift.label": "时间偏移", - "xpack.lens.indexPattern.timeShift.month": "1 个月前 (1M)", - "xpack.lens.indexPattern.timeShift.noMultipleHelp": "时间偏移应为 Date Histogram 时间间隔的倍数。调整时间偏移或 Date Histogram 时间间隔", - "xpack.lens.indexPattern.timeShift.tooSmallHelp": "时间偏移应大于 Date Histogram 时间间隔。增大时间偏移或在 Date Histogram 中指定较小的时间间隔", - "xpack.lens.indexPattern.timeShift.week": "1 周前 (1w)", - "xpack.lens.indexPattern.timeShift.year": "1 年前 (1y)", - "xpack.lens.indexPattern.timeShiftMultipleWarning": "{label} 使用的时间偏移 {columnTimeShift} 不是 Date Histogram 时间间隔 {interval} 的倍数。要防止数据不匹配,请使用 {interval} 的倍数作为时间偏移。", - "xpack.lens.indexPattern.timeShiftPlaceholder": "键入定制值(如 8w)", - "xpack.lens.indexPattern.timeShiftSmallWarning": "{label} 使用的时间偏移 {columnTimeShift} 小于 Date Histogram 时间间隔 {interval} 。要防止数据不匹配,请使用 {interval} 的倍数作为时间偏移。", - "xpack.lens.indexPattern.uniqueLabel": "{label} [{num}]", - "xpack.lens.indexPattern.useAsTopLevelAgg": "先按此字段分组", - "xpack.lens.indexPatterns.clearFiltersLabel": "清除名称和类型筛选", - "xpack.lens.indexPatterns.fieldFiltersLabel": "按类型筛选", - "xpack.lens.indexPatterns.fieldSearchLiveRegion": "{availableFields} 个可用{availableFields, plural, other {字段}}。{emptyFields} 个空{emptyFields, plural, other {字段}}。{metaFields} 个元{metaFields, plural,other {字段}}。", - "xpack.lens.indexPatterns.noAvailableDataLabel": "没有包含数据的可用字段。", - "xpack.lens.indexPatterns.noDataLabel": "无字段。", - "xpack.lens.indexPatterns.noEmptyDataLabel": "无空字段。", - "xpack.lens.indexPatterns.noFields.extendTimeBullet": "延伸时间范围", - "xpack.lens.indexPatterns.noFields.fieldTypeFilterBullet": "使用不同的字段筛选", - "xpack.lens.indexPatterns.noFields.globalFiltersBullet": "更改全局筛选", - "xpack.lens.indexPatterns.noFields.tryText": "尝试:", - "xpack.lens.indexPatterns.noFilteredFieldsLabel": "没有字段匹配选定筛选。", - "xpack.lens.indexPatterns.noMetaDataLabel": "无元字段。", - "xpack.lens.indexPatternSuggestion.removeLayerLabel": "仅显示 {indexPatternTitle}", - "xpack.lens.indexPatternSuggestion.removeLayerPositionLabel": "仅显示图层 {layerNumber}", - "xpack.lens.labelInput.label": "标签", - "xpack.lens.layerPanel.layerVisualizationType": "图层可视化类型", - "xpack.lens.lensSavedObjectLabel": "Lens 可视化", - "xpack.lens.metric.addLayer": "添加可视化图层", - "xpack.lens.metric.groupLabel": "表和单值", - "xpack.lens.metric.label": "指标", - "xpack.lens.pageTitle": "Lens", - "xpack.lens.paletteHeatmapGradient.customize": "编辑", - "xpack.lens.paletteHeatmapGradient.customizeLong": "编辑调色板", - "xpack.lens.paletteHeatmapGradient.label": "颜色", - "xpack.lens.palettePicker.label": "调色板", - "xpack.lens.paletteTableGradient.customize": "编辑", - "xpack.lens.paletteTableGradient.label": "颜色", - "xpack.lens.pie.addLayer": "添加可视化图层", - "xpack.lens.pie.arrayValues": "{label} 包含数组值。您的可视化可能无法正常渲染。", - "xpack.lens.pie.donutLabel": "圆环图", - "xpack.lens.pie.expressionHelpLabel": "饼图呈现器", - "xpack.lens.pie.groupLabel": "比例", - "xpack.lens.pie.groupsizeLabel": "大小调整依据", - "xpack.lens.pie.pielabel": "饼图", - "xpack.lens.pie.pieWithNegativeWarningLabel": "{chartType} 图表无法使用负值进行呈现。尝试不同的可视化类型。", - "xpack.lens.pie.sliceGroupLabel": "切片依据", - "xpack.lens.pie.suggestionLabel": "为 {chartName}", - "xpack.lens.pie.treemapGroupLabel": "分组依据", - "xpack.lens.pie.treemaplabel": "树状图", - "xpack.lens.pie.treemapSuggestionLabel": "为树状图", - "xpack.lens.pie.visualizationName": "饼图", - "xpack.lens.pieChart.categoriesInLegendLabel": "隐藏标签", - "xpack.lens.pieChart.fitInsideOnlyLabel": "仅内部", - "xpack.lens.pieChart.hiddenNumbersLabel": "在图表中隐藏", - "xpack.lens.pieChart.labelPositionLabel": "位置", - "xpack.lens.pieChart.legendVisibility.auto": "自动", - "xpack.lens.pieChart.legendVisibility.hide": "隐藏", - "xpack.lens.pieChart.legendVisibility.show": "显示", - "xpack.lens.pieChart.nestedLegendLabel": "嵌套", - "xpack.lens.pieChart.numberLabels": "值", - "xpack.lens.pieChart.percentDecimalsLabel": "百分比的最大小数位数", - "xpack.lens.pieChart.showCategoriesLabel": "内部或外部", - "xpack.lens.pieChart.showFormatterValuesLabel": "显示值", - "xpack.lens.pieChart.showPercentValuesLabel": "显示百分比", - "xpack.lens.pieChart.showTreemapCategoriesLabel": "显示标签", - "xpack.lens.pieChart.valuesLabel": "标签", - "xpack.lens.resetLayerAriaLabel": "重置图层 {index}", - "xpack.lens.resetVisualizationAriaLabel": "重置可视化", - "xpack.lens.searchTitle": "Lens:创建可视化", - "xpack.lens.section.configPanelLabel": "配置面板", - "xpack.lens.section.dataPanelLabel": "数据面板", - "xpack.lens.section.workspaceLabel": "可视化工作区", - "xpack.lens.shared.chartValueLabelVisibilityLabel": "标签", - "xpack.lens.shared.curveLabel": "视觉选项", - "xpack.lens.shared.legend.filterForValueButtonAriaLabel": "筛留值", - "xpack.lens.shared.legend.filterOptionsLegend": "{legendDataLabel}, 筛选选项", - "xpack.lens.shared.legend.filterOutValueButtonAriaLabel": "筛除值", - "xpack.lens.shared.legendAlignmentLabel": "对齐方式", - "xpack.lens.shared.legendInsideAlignmentLabel": "对齐方式", - "xpack.lens.shared.legendInsideColumnsLabel": "列数目", - "xpack.lens.shared.legendInsideLocationAlignmentLabel": "对齐方式", - "xpack.lens.shared.legendInsideTooltip": "需要图例位于可视化内", - "xpack.lens.shared.legendIsTruncated": "需要截断文本", - "xpack.lens.shared.legendLabel": "图例", - "xpack.lens.shared.legendLocationBottomLeft": "左下方", - "xpack.lens.shared.legendLocationBottomRight": "右下方", - "xpack.lens.shared.legendLocationLabel": "位置", - "xpack.lens.shared.legendLocationTopLeft": "左上方", - "xpack.lens.shared.legendLocationTopRight": "右上方", - "xpack.lens.shared.legendPositionBottom": "底部", - "xpack.lens.shared.legendPositionLeft": "左", - "xpack.lens.shared.legendPositionRight": "右", - "xpack.lens.shared.legendPositionTop": "顶部", - "xpack.lens.shared.legendVisibilityLabel": "显示", - "xpack.lens.shared.legendVisibleTooltip": "需要图表显示", - "xpack.lens.shared.maxLinesLabel": "最大行数", - "xpack.lens.shared.nestedLegendLabel": "嵌套", - "xpack.lens.shared.truncateLegend": "截断文本", - "xpack.lens.shared.valueInLegendLabel": "显示值", - "xpack.lens.sugegstion.refreshSuggestionLabel": "刷新", - "xpack.lens.suggestion.refreshSuggestionTooltip": "基于选定可视化刷新建议。", - "xpack.lens.suggestions.currentVisLabel": "当前可视化", - "xpack.lens.table.actionsLabel": "显示操作", - "xpack.lens.table.alignment.center": "居中", - "xpack.lens.table.alignment.label": "文本对齐", - "xpack.lens.table.alignment.left": "左", - "xpack.lens.table.alignment.right": "右", - "xpack.lens.table.columnFilter.filterForValueText": "筛留列", - "xpack.lens.table.columnFilter.filterOutValueText": "筛除列", - "xpack.lens.table.columnVisibilityLabel": "隐藏列", - "xpack.lens.table.defaultAriaLabel": "数据表可视化", - "xpack.lens.table.dynamicColoring.cell": "单元格", - "xpack.lens.table.dynamicColoring.continuity.aboveLabel": "高于范围", - "xpack.lens.table.dynamicColoring.continuity.allLabel": "高于和低于范围", - "xpack.lens.table.dynamicColoring.continuity.belowLabel": "低于范围", - "xpack.lens.table.dynamicColoring.continuity.label": "颜色连续性", - "xpack.lens.table.dynamicColoring.continuity.noneLabel": "范围内", - "xpack.lens.table.dynamicColoring.customPalette.colorStopsHelpPercentage": "百分比值是相对于全范围可用数据值的类型。", - "xpack.lens.table.dynamicColoring.customPalette.colorStopsLabel": "颜色停止", - "xpack.lens.table.dynamicColoring.customPalette.continuityHelp": "指定颜色在第一个颜色停止之前和最后一个颜色停止之后的出现方式。", - "xpack.lens.table.dynamicColoring.label": "按值上色", - "xpack.lens.table.dynamicColoring.none": "无", - "xpack.lens.table.dynamicColoring.rangeType.label": "值类型", - "xpack.lens.table.dynamicColoring.rangeType.number": "数字", - "xpack.lens.table.dynamicColoring.rangeType.percent": "百分比", - "xpack.lens.table.dynamicColoring.reverse.label": "反转颜色", - "xpack.lens.table.dynamicColoring.text": "文本", - "xpack.lens.table.hide.hideLabel": "隐藏", - "xpack.lens.table.palettePanelContainer.back": "返回", - "xpack.lens.table.palettePanelTitle": "编辑颜色", - "xpack.lens.table.resize.reset": "重置宽度", - "xpack.lens.table.sort.ascLabel": "升序", - "xpack.lens.table.sort.descLabel": "降序", - "xpack.lens.table.summaryRow.average": "平均值", - "xpack.lens.table.summaryRow.count": "值计数", - "xpack.lens.table.summaryRow.customlabel": "摘要标签", - "xpack.lens.table.summaryRow.label": "摘要行", - "xpack.lens.table.summaryRow.maximum": "最大值", - "xpack.lens.table.summaryRow.minimum": "最小值", - "xpack.lens.table.summaryRow.none": "无", - "xpack.lens.table.summaryRow.sum": "求和", - "xpack.lens.table.tableCellFilter.filterForValueAriaLabel": "筛留值:{cellContent}", - "xpack.lens.table.tableCellFilter.filterForValueText": "筛留值", - "xpack.lens.table.tableCellFilter.filterOutValueAriaLabel": "筛除值:{cellContent}", - "xpack.lens.table.tableCellFilter.filterOutValueText": "筛除值", - "xpack.lens.timeScale.removeLabel": "删除按时间单位标准化", - "xpack.lens.timeShift.removeLabel": "移除时间偏移", - "xpack.lens.visTypeAlias.description": "使用拖放编辑器创建可视化。随时在可视化类型之间切换。", - "xpack.lens.visTypeAlias.note": "适合绝大多数用户。", - "xpack.lens.visTypeAlias.title": "Lens", - "xpack.lens.visTypeAlias.type": "Lens", - "xpack.lens.visualizeGeoFieldMessage": "Lens 无法可视化 {fieldType} 字段", - "xpack.lens.xyChart.addDataLayerLabel": "添加可视化图层", - "xpack.lens.xyChart.addLayer": "添加图层", - "xpack.lens.xyChart.addLayerTooltip": "使用多个图层以组合可视化类型或可视化不同的索引模式。", - "xpack.lens.xyChart.axisExtent.custom": "定制", - "xpack.lens.xyChart.axisExtent.dataBounds": "数据边界", - "xpack.lens.xyChart.axisExtent.disabledDataBoundsMessage": "仅折线图可适应数据边界", - "xpack.lens.xyChart.axisExtent.full": "实线", - "xpack.lens.xyChart.axisExtent.label": "边界", - "xpack.lens.xyChart.axisNameLabel": "轴名称", - "xpack.lens.xyChart.axisOrientation.angled": "带角度", - "xpack.lens.xyChart.axisOrientation.horizontal": "水平", - "xpack.lens.xyChart.axisOrientation.label": "方向", - "xpack.lens.xyChart.axisOrientation.vertical": "垂直", - "xpack.lens.xyChart.axisSide.auto": "自动", - "xpack.lens.xyChart.axisSide.bottom": "底部", - "xpack.lens.xyChart.axisSide.label": "轴侧", - "xpack.lens.xyChart.axisSide.left": "左", - "xpack.lens.xyChart.axisSide.right": "右", - "xpack.lens.xyChart.axisSide.top": "顶部", - "xpack.lens.xyChart.axisTitlesSettings.help": "显示 x 和 y 轴标题", - "xpack.lens.xyChart.bottomAxisDisabledHelpText": "此设置仅在启用底轴时应用。", - "xpack.lens.xyChart.bottomAxisLabel": "底轴", - "xpack.lens.xyChart.boundaryError": "下边界必须大于上边界", - "xpack.lens.xyChart.chartTypeLabel": "图表类型", - "xpack.lens.xyChart.chartTypeLegend": "图表类型", - "xpack.lens.xyChart.curveStyleLabel": "曲线", - "xpack.lens.xyChart.curveType.help": "定义为折线图渲染曲线类型的方式", - "xpack.lens.xyChart.emptyXLabel": "(空)", - "xpack.lens.xyChart.extentMode.help": "范围模式", - "xpack.lens.xyChart.fillOpacity.help": "定义面积图填充透明度", - "xpack.lens.xyChart.fillOpacityLabel": "填充透明度", - "xpack.lens.xyChart.fittingFunction.help": "定义处理缺失值的方式", - "xpack.lens.xyChart.floatingColumns.help": "指定图例显示在图表内时的列数。", - "xpack.lens.xyChart.Gridlines": "网格线", - "xpack.lens.xyChart.gridlinesSettings.help": "显示 x 和 y 轴网格线", - "xpack.lens.xyChart.help": "X/Y 图表", - "xpack.lens.xyChart.hideEndzones.help": "隐藏部分数据的末日区域标记", - "xpack.lens.xyChart.horizontalAlignment.help": "指定图例显示在图表内时水平对齐。", - "xpack.lens.xyChart.horizontalAxisLabel": "水平轴", - "xpack.lens.xyChart.inclusiveZero": "边界必须包括零。", - "xpack.lens.xyChart.isInside.help": "指定图例是否在图表内", - "xpack.lens.xyChart.isVisible.help": "指定图例是否可见。", - "xpack.lens.xyChart.labelsOrientation.help": "定义轴标签的旋转", - "xpack.lens.xyChart.leftAxisDisabledHelpText": "此设置仅在启用左轴时应用。", - "xpack.lens.xyChart.leftAxisLabel": "左轴", - "xpack.lens.xyChart.legend.help": "配置图表图例。", - "xpack.lens.xyChart.legendLocation.inside": "内部", - "xpack.lens.xyChart.legendLocation.outside": "外部", - "xpack.lens.xyChart.legendVisibility.auto": "自动", - "xpack.lens.xyChart.legendVisibility.hide": "隐藏", - "xpack.lens.xyChart.legendVisibility.show": "显示", - "xpack.lens.xyChart.lowerBoundLabel": "下边界", - "xpack.lens.xyChart.maxLines.help": "指定每个图例项的行数。", - "xpack.lens.xyChart.missingValuesLabel": "缺少的值", - "xpack.lens.xyChart.missingValuesLabelHelpText": "默认情况下,Lens 隐藏数据中的缺口。要填充缺口,请进行选择。", - "xpack.lens.xyChart.nestUnderRoot": "整个数据集", - "xpack.lens.xyChart.overwriteAxisTitle": "覆盖轴标题", - "xpack.lens.xyChart.position.help": "指定图例位置。", - "xpack.lens.xyChart.renderer.help": "X/Y 图表呈现器", - "xpack.lens.xyChart.rightAxisDisabledHelpText": "此设置仅在启用右轴时应用。", - "xpack.lens.xyChart.rightAxisLabel": "右轴", - "xpack.lens.xyChart.seriesColor.auto": "自动", - "xpack.lens.xyChart.seriesColor.label": "系列颜色", - "xpack.lens.xyChart.shouldTruncate.help": "指定是否将截断图例项", - "xpack.lens.xyChart.ShowAxisTitleLabel": "显示", - "xpack.lens.xyChart.showEnzones": "显示部分数据标记", - "xpack.lens.xyChart.showSingleSeries.help": "指定是否应显示只包含一个条目的图例", - "xpack.lens.xyChart.splitSeries": "细分方式", - "xpack.lens.xyChart.tickLabels": "刻度标签", - "xpack.lens.xyChart.tickLabelsSettings.help": "显示 x 和 y 轴刻度标签", - "xpack.lens.xyChart.title.help": "轴标题", - "xpack.lens.xyChart.topAxisDisabledHelpText": "此设置仅在启用顶轴时应用。", - "xpack.lens.xyChart.topAxisLabel": "顶轴", - "xpack.lens.xyChart.upperBoundLabel": "上边界", - "xpack.lens.xyChart.valuesHistogramDisabledHelpText": "不能在直方图上更改此设置。", - "xpack.lens.xyChart.valuesInLegend.help": "在图例中显示值", - "xpack.lens.xyChart.valuesPercentageDisabledHelpText": "不能在百分比面积图上更改此设置。", - "xpack.lens.xyChart.valuesStackedDisabledHelpText": "不能在堆积图或百分比条形图上更改此设置", - "xpack.lens.xyChart.verticalAlignment.help": "指定图例显示在图表内时垂直对齐。", - "xpack.lens.xyChart.verticalAxisLabel": "垂直轴", - "xpack.lens.xyChart.xAxisGridlines.help": "指定 x 轴的网格线是否可见。", - "xpack.lens.xyChart.xAxisLabelsOrientation.help": "指定 x 轴的标签方向。", - "xpack.lens.xyChart.xAxisTickLabels.help": "指定 x 轴的刻度标签是否可见。", - "xpack.lens.xyChart.xAxisTitle.help": "指定 x 轴的标题是否可见。", - "xpack.lens.xyChart.xTitle.help": "X 轴标题", - "xpack.lens.xyChart.yLeftAxisgridlines.help": "指定左侧 y 轴的网格线是否可见。", - "xpack.lens.xyChart.yLeftAxisLabelsOrientation.help": "指定左 y 轴的标签方向。", - "xpack.lens.xyChart.yLeftAxisTickLabels.help": "指定左侧 y 轴的刻度标签是否可见。", - "xpack.lens.xyChart.yLeftAxisTitle.help": "指定左侧 y 轴的标题是否可见。", - "xpack.lens.xyChart.yLeftExtent.help": "左侧 Y 轴范围", - "xpack.lens.xyChart.yLeftTitle.help": "左侧 Y 轴标题", - "xpack.lens.xyChart.yRightAxisgridlines.help": "指定右侧 y 轴的网格线是否可见。", - "xpack.lens.xyChart.yRightAxisLabelsOrientation.help": "指定右 y 轴的标签方向。", - "xpack.lens.xyChart.yRightAxisTickLabels.help": "指定右侧 y 轴的刻度标签是否可见。", - "xpack.lens.xyChart.yRightAxisTitle.help": "指定右侧 y 轴的标题是否可见。", - "xpack.lens.xyChart.yRightExtent.help": "右侧 Y 轴范围", - "xpack.lens.xyChart.yRightTitle.help": "右侧 Y 轴标题", - "xpack.lens.xySuggestions.asPercentageTitle": "百分比", - "xpack.lens.xySuggestions.barChartTitle": "条形图", - "xpack.lens.xySuggestions.dateSuggestion": "{yTitle} / {xTitle}", - "xpack.lens.xySuggestions.emptyAxisTitle": "(空)", - "xpack.lens.xySuggestions.flipTitle": "翻转", - "xpack.lens.xySuggestions.lineChartTitle": "折线图", - "xpack.lens.xySuggestions.nonDateSuggestion": "{xTitle}的{yTitle}", - "xpack.lens.xySuggestions.stackedChartTitle": "堆叠", - "xpack.lens.xySuggestions.unstackedChartTitle": "非堆叠", - "xpack.lens.xySuggestions.yAxixConjunctionSign": " & ", - "xpack.lens.xyVisualization.areaLabel": "面积图", - "xpack.lens.xyVisualization.arrayValues": "{label} 包含数组值。您的可视化可能无法正常渲染。", - "xpack.lens.xyVisualization.barGroupLabel": "条形图", - "xpack.lens.xyVisualization.barHorizontalFullLabel": "水平条形图", - "xpack.lens.xyVisualization.barHorizontalLabel": "水平条形图", - "xpack.lens.xyVisualization.barLabel": "垂直条形图", - "xpack.lens.xyVisualization.dataFailureSplitLong": "{layers, plural, other {图层}} {layersList} {layers, plural, other {需要}}一个针对{axis}的字段。", - "xpack.lens.xyVisualization.dataFailureSplitShort": "缺少 {axis}。", - "xpack.lens.xyVisualization.dataFailureYLong": "{layers, plural, other {图层}} {layersList} {layers, plural, other {需要}}一个针对{axis}的字段。", - "xpack.lens.xyVisualization.dataFailureYShort": "缺少 {axis}。", - "xpack.lens.xyVisualization.dataTypeFailureXLong": "{axis} 的数据类型不匹配无法混合日期和数字间隔类型。", - "xpack.lens.xyVisualization.dataTypeFailureXOrdinalLong": "{axis} 的数据类型不匹配,请使用其他函数。", - "xpack.lens.xyVisualization.dataTypeFailureXShort": "{axis} 的数据类型错误。", - "xpack.lens.xyVisualization.dataTypeFailureYLong": "为 {axis} 提供的维度 {label} 具有错误的数据类型。应为数字,但却为 {dataType}", - "xpack.lens.xyVisualization.dataTypeFailureYShort": "{axis} 的数据类型错误。", - "xpack.lens.xyVisualization.lineGroupLabel": "折线图和面积图", - "xpack.lens.xyVisualization.lineLabel": "折线图", - "xpack.lens.xyVisualization.mixedBarHorizontalLabel": "水平混合条形图", - "xpack.lens.xyVisualization.mixedLabel": "混合 XY", - "xpack.lens.xyVisualization.noDataLabel": "找不到结果", - "xpack.lens.xyVisualization.stackedAreaLabel": "堆积面积图", - "xpack.lens.xyVisualization.stackedBarHorizontalFullLabel": "水平堆叠条形图", - "xpack.lens.xyVisualization.stackedBarHorizontalLabel": "水平堆叠条形图", - "xpack.lens.xyVisualization.stackedBarLabel": "垂直堆积条形图", - "xpack.lens.xyVisualization.stackedPercentageAreaLabel": "百分比面积图", - "xpack.lens.xyVisualization.stackedPercentageBarHorizontalFullLabel": "水平百分比条形图", - "xpack.lens.xyVisualization.stackedPercentageBarHorizontalLabel": "水平百分比条形图", - "xpack.lens.xyVisualization.stackedPercentageBarLabel": "垂直百分比条形图", - "xpack.lens.xyVisualization.xyLabel": "XY", "advancedSettings.advancedSettingsLabel": "高级设置", "advancedSettings.badge.readOnly.text": "只读", "advancedSettings.badge.readOnly.tooltip": "无法保存高级设置", @@ -978,6 +175,20 @@ "console.consoleDisplayName": "控制台", "console.consoleMenu.copyAsCurlFailedMessage": "无法将请求复制为 cURL", "console.consoleMenu.copyAsCurlMessage": "请求已复制为 cURL", + "console.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "console.deprecations.enabled.manualStepTwoMessage": "将“console.enabled”设置更改为“console.ui.enabled”。", + "console.deprecations.enabledMessage": "要禁止用户访问 Console UI,请使用“console.ui.enabled”设置,而不是“console.enabled”。", + "console.deprecations.enabledTitle": "“console.enabled”设置已过时", + "console.deprecations.proxyConfig.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "console.deprecations.proxyConfig.manualStepThreeMessage": "使用“server.ssl.*”设置配置 Kibana 与 Elasticsearch 之间的安全连接。", + "console.deprecations.proxyConfig.manualStepTwoMessage": "移除“console.proxyConfig”设置。", + "console.deprecations.proxyConfigMessage": "配置“console.proxyConfig”已过时,将在 8.0.0 中移除。为保护 Kibana 与 Elasticsearch 之间的连接,请改为使用标准“server.ssl.*”设置。", + "console.deprecations.proxyConfigTitle": "“console.proxyConfig”设置已过时", + "console.deprecations.proxyFilter.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "console.deprecations.proxyFilter.manualStepThreeMessage": "使用“server.ssl.*”设置配置 Kibana 与 Elasticsearch 之间的安全连接。", + "console.deprecations.proxyFilter.manualStepTwoMessage": "移除“console.proxyFilter”设置。", + "console.deprecations.proxyFilterMessage": "配置“console.proxyFilter”已过时,将在 8.0.0 中移除。为保护 Kibana 与 Elasticsearch 之间的连接,请改为使用标准“server.ssl.*”设置。", + "console.deprecations.proxyFilterTitle": "“console.proxyFilter”设置已过时", "console.devToolsDescription": "跳过 cURL 并使用 JSON 接口在控制台中处理您的数据。", "console.devToolsTitle": "与 Elasticsearch API 进行交互", "console.exampleOutputTextarea": "开发工具控制台编辑器示例", @@ -1003,6 +214,7 @@ "console.historyPage.pageTitle": "历史记录", "console.historyPage.requestListAriaLabel": "已发送请求的历史记录", "console.inputTextarea": "开发工具控制台", + "console.loadFromDataUriErrorMessage": "无法从 URL 中的 load_from 查询参数加载数据", "console.loadingError.buttonLabel": "重新加载控制台", "console.loadingError.message": "尝试重新加载以获取最新的数据。", "console.loadingError.title": "无法加载控制台", @@ -1059,13 +271,27 @@ "core.chrome.browserDeprecationLink": "我们网站上的支持矩阵", "core.chrome.browserDeprecationWarning": "本软件的未来版本将放弃对 Internet Explorer 的支持,请查看{link}。", "core.chrome.legacyBrowserWarning": "您的浏览器不满足 Kibana 的安全要求。", + "core.deprecations.deprecations.fetchFailed.manualStepOneMessage": "请在 Kibana 服务器日志中查看错误消息。", + "core.deprecations.deprecations.fetchFailedMessage": "无法提取插件 {domainId} 的弃用信息。", + "core.deprecations.deprecations.fetchFailedTitle": "无法提取 {domainId} 的弃用信息", + "core.deprecations.elasticsearchSSL.manualSteps1": "将“{missingSetting}”设置添加到 kibana.yml。", + "core.deprecations.elasticsearchSSL.manualSteps2": "或者,如果不想使用相互 TLS 身份验证,请从 kibana.yml 中移除“{existingSetting}”。", + "core.deprecations.elasticsearchSSL.message": "同时使用“{existingSetting}”和“{missingSetting}”,以便 Kibana 将相互 TLS 身份验证用于 Elasticsearch。", + "core.deprecations.elasticsearchSSL.title": "使用不含“{missingSetting}”的“{existingSetting}”无效", + "core.deprecations.elasticsearchUsername.manualSteps1": "使用 elasticsearch-service-tokens CLI 工具为“elastic/kibana”服务帐户创建新的服务帐户令牌。", + "core.deprecations.elasticsearchUsername.manualSteps2": "将“elasticsearch.serviceAccountToken”设置添加到 kibana.yml。", + "core.deprecations.elasticsearchUsername.manualSteps3": "从 kibana.yml 中移除“elasticsearch.username”和“elasticsearch.password”。", + "core.deprecations.elasticsearchUsername.message": "Kibana 已配置为通过“{username}”用户验证到 Elasticsearch。改为使用服务帐户令牌。", + "core.deprecations.elasticsearchUsername.title": "使用“elasticsearch.username: {username}”已过时", + "core.deprecations.noCorrectiveAction": "无法自动解决此弃用。", "core.euiAccordion.isLoading": "正在加载", + "core.euiBasicTable.noItemsMessage": "找不到项目", "core.euiBasicTable.selectAllRows": "选择所有行", "core.euiBasicTable.selectThisRow": "选择此行", "core.euiBasicTable.tableAutoCaptionWithoutPagination": "此表包含 {itemCount} 行。", "core.euiBasicTable.tableAutoCaptionWithPagination": "此表包含 {itemCount} 行,共有 {totalItemCount} 行;第 {page} 页,共 {pageCount} 页。", "core.euiBasicTable.tableCaptionWithPagination": "{tableCaption};第 {page} 页,共 {pageCount} 页。", - "core.euiBasicTable.tablePagination": "前表分页:{tableCaption}", + "core.euiBasicTable.tablePagination": "表分页:{tableCaption}", "core.euiBasicTable.tableSimpleAutoCaptionWithPagination": "此表包含 {itemCount} 行;第 {page} 页,共 {pageCount} 页。", "core.euiBottomBar.customScreenReaderAnnouncement": "有称作 {landmarkHeading} 且页面级别控件位于文档结尾的新地区地标。", "core.euiBottomBar.screenReaderAnnouncement": "有页面级别控件位于文档结尾的新地区地标。", @@ -1078,10 +304,6 @@ "core.euiCodeBlock.copyButton": "复制", "core.euiCodeBlock.fullscreenCollapse": "折叠", "core.euiCodeBlock.fullscreenExpand": "展开", - "core.euiCodeEditor.startEditing": "按 Enter 键开始编辑。", - "core.euiCodeEditor.startInteracting": "按 Enter 键开始与代码互动。", - "core.euiCodeEditor.stopEditing": "完成后,按 Esc 键停止编辑。", - "core.euiCodeEditor.stopInteracting": "完成后,按 Esc 键停止与代码互动。", "core.euiCollapsedItemActions.allActions": "所有操作", "core.euiColorPicker.alphaLabel": "Alpha 通道(不透明度)值", "core.euiColorPicker.closeLabel": "按向下箭头键可打开包含颜色选项的弹出框", @@ -1110,12 +332,16 @@ "core.euiColumnSelector.searchcolumns": "搜索列", "core.euiColumnSelector.selectAll": "全部显示", "core.euiColumnSorting.button": "排序字段", + "core.euiColumnSorting.buttonActive": "{numberOfSortedFields, plural, other {# 个字段}}已排序", "core.euiColumnSorting.clearAll": "清除排序", "core.euiColumnSorting.emptySorting": "当前未排序任何字段", "core.euiColumnSorting.pickFields": "选取排序依据的字段", "core.euiColumnSorting.sortFieldAriaLabel": "排序依据:", + "core.euiColumnSortingDraggable.activeSortLabel": "{display} 正在对此数据网格排序", "core.euiColumnSortingDraggable.defaultSortAsc": "A-Z", "core.euiColumnSortingDraggable.defaultSortDesc": "Z-A", + "core.euiColumnSortingDraggable.removeSortLabel": "从数据网格排序中移除 {display}", + "core.euiColumnSortingDraggable.toggleLegend": "为 {display} 选择排序方法", "core.euiComboBoxOptionsList.allOptionsSelected": "您已选择所有可用选项", "core.euiComboBoxOptionsList.alreadyAdded": "{label} 已添加", "core.euiComboBoxOptionsList.createCustomOption": "将 {searchValue} 添加为自定义选项", @@ -1131,8 +357,11 @@ "core.euiDataGrid.ariaLabel": "{label};第 {page} 页,共 {pageCount} 页。", "core.euiDataGrid.ariaLabelledBy": "第 {page} 页,共 {pageCount} 页。", "core.euiDataGrid.screenReaderNotice": "单元格包含交互内容。", + "core.euiDataGridCell.position": "行:{row};列:{col}", "core.euiDataGridCellButtons.expandButtonTitle": "单击或按 Enter 键以便与单元格内容进行交互", "core.euiDataGridHeaderCell.headerActions": "标题操作", + "core.euiDataGridPagination.detailedPaginationLabel": "前面网格的分页:{label}", + "core.euiDataGridPagination.paginationLabel": "前面网格的分页", "core.euiDataGridSchema.booleanSortTextAsc": "False-True", "core.euiDataGridSchema.booleanSortTextDesc": "True-False", "core.euiDataGridSchema.currencySortTextAsc": "低-高", @@ -1143,12 +372,18 @@ "core.euiDataGridSchema.jsonSortTextDesc": "大-小", "core.euiDataGridSchema.numberSortTextAsc": "低-高", "core.euiDataGridSchema.numberSortTextDesc": "高-低", + "core.euiDataGridToolbar.fullScreenButton": "全屏", + "core.euiDataGridToolbar.fullScreenButtonActive": "退出全屏", "core.euiDatePopoverButton.invalidTitle": "无效日期:{title}", "core.euiDatePopoverButton.outdatedTitle": "需要更新:{title}", "core.euiFieldPassword.maskPassword": "屏蔽密码", "core.euiFieldPassword.showPassword": "将密码显示为纯文本。注意:这会将您的密码暴露在屏幕上。", "core.euiFilePicker.clearSelectedFiles": "清除选定的文件", + "core.euiFilePicker.filesSelected": "已选择 {fileCount} 个文件", + "core.euiFilePicker.promptText": "选择或拖放文件", "core.euiFilePicker.removeSelected": "移除", + "core.euiFilterButton.filterBadgeActiveAriaLabel": "{count} 个活动筛选", + "core.euiFilterButton.filterBadgeAvailableAriaLabel": "{count} 个可用筛选", "core.euiFlyout.closeAriaLabel": "关闭此对话框", "core.euiForm.addressFormErrors": "请解决突出显示的错误。", "core.euiFormControlLayoutClearButton.label": "清除输入", @@ -1161,10 +396,14 @@ "core.euiLink.newTarget.screenReaderOnlyText": "(在新选项卡或窗口中打开)", "core.euiMarkdownEditorFooter.closeButton": "关闭", "core.euiMarkdownEditorFooter.errorsTitle": "错误", + "core.euiMarkdownEditorFooter.mdSyntaxLink": "GitHub 风格的 Markdown", "core.euiMarkdownEditorFooter.openUploadModal": "打开上传文件模式窗口", "core.euiMarkdownEditorFooter.showMarkdownHelp": "显示 Markdown 帮助", "core.euiMarkdownEditorFooter.showSyntaxErrors": "显示错误", "core.euiMarkdownEditorFooter.supportedFileTypes": "支持的文件:{supportedFileTypes}", + "core.euiMarkdownEditorFooter.syntaxModalDescriptionPrefix": "此编辑器使用", + "core.euiMarkdownEditorFooter.syntaxModalDescriptionSuffix": "还可以利用这些附加的语法插件向文本添加富文本内容。", + "core.euiMarkdownEditorFooter.syntaxPopoverDescription": "此编辑器使用", "core.euiMarkdownEditorFooter.syntaxTitle": "语法帮助", "core.euiMarkdownEditorFooter.unsupportedFileType": "文件类型不受支持", "core.euiMarkdownEditorFooter.uploadingFiles": "单击上传文件", @@ -1209,7 +448,8 @@ "core.euiRefreshInterval.fullDescription": "刷新时间间隔当前设置为 {optionValue} {optionText}。", "core.euiRefreshInterval.legend": "刷新频率", "core.euiRefreshInterval.start": "启动", - "core.euiRefreshInterval.stop": "停止", + "core.euiRefreshInterval.stop": "停止点", + "core.euiRelativeTab.dateInputError": "必须为有效范围", "core.euiRelativeTab.fullDescription": "单位可更改。当前设置为 {unit}。", "core.euiRelativeTab.numberInputError": "必须 >= 0", "core.euiRelativeTab.numberInputLabel": "时间跨度量", @@ -1286,6 +526,10 @@ "core.notifications.errorToast.closeModal": "关闭", "core.notifications.globalToast.ariaLabel": "通知消息列表", "core.notifications.unableUpdateUISettingNotificationMessageTitle": "无法更新 UI 设置", + "core.savedObjects.deprecations.unknownTypes.manualSteps.1": "启用禁用的插件,然后重新启动 Kibana。", + "core.savedObjects.deprecations.unknownTypes.manualSteps.2": "如果未禁用任何插件,或启用插件无法解决问题,请删除这些文档。", + "core.savedObjects.deprecations.unknownTypes.message": "在 Kibana 系统索引中{objectCount, plural, other {}}有 {objectCount, plural, other {# 个对象}}的类型未知。不再支持使用未知的已保存对象类型进行升级。为确保未来成功升级,请重新启用插件,或从 Kibana 索引中删除这些文档", + "core.savedObjects.deprecations.unknownTypes.title": "Kibana 系统索引中存在类型未知的已保存对象", "core.status.greenTitle": "绿色", "core.status.redTitle": "红色", "core.status.yellowTitle": "黄色", @@ -1370,6 +614,7 @@ "core.ui.observabilityNavList.label": "可观测性", "core.ui.overlays.banner.attentionTitle": "注意", "core.ui.overlays.banner.closeButtonLabel": "关闭", + "core.ui.primaryNav.addData": "添加集成", "core.ui.primaryNav.pinnedLinksAriaLabel": "置顶链接", "core.ui.primaryNav.screenReaderLabel": "主分片", "core.ui.primaryNav.toggleNavAriaLabel": "切换主导航", @@ -1384,6 +629,27 @@ "core.ui.securityNavList.label": "安全", "core.ui.welcomeErrorMessage": "Elastic 未正确加载。检查服务器输出以了解详情。", "core.ui.welcomeMessage": "正在加载 Elastic", + "customIntegrations.components.replacementAccordion.comparisonPageLinkLabel": "对比页面", + "customIntegrations.components.replacementAccordion.recommendationDescription": "建议使用 Elastic 代理集成,但也可以使用 Beats。有关更多详情,请访问 {link}。", + "customIntegrations.components.replacementAccordionLabel": "在 Beats 中也可用", + "customIntegrations.languageclients.DotNetDescription": "通过 .NET 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.DotNetTitle": "Elasticsearch .NET 客户端", + "customIntegrations.languageclients.GoDescription": "通过 Go 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.GoTitle": "Elasticsearch Go 客户端", + "customIntegrations.languageclients.JavaDescription": "通过 Java 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.JavascriptDescription": "通过 JavaScript 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.JavascriptTitle": "Elasticsearch JavaScript 客户端", + "customIntegrations.languageclients.JavaTitle": "Elasticsearch Java 客户端", + "customIntegrations.languageclients.PerlDescription": "通过 Perl 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.PerlTitle": "Elasticsearch Perl 客户端", + "customIntegrations.languageclients.PhpDescription": "通过 PHP 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.PhpTitle": "Elasticsearch PHP 客户端", + "customIntegrations.languageclients.PythonDescription": "通过 Python 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.PythonTitle": "Elasticsearch Python 客户端", + "customIntegrations.languageclients.RubyDescription": "通过 Ruby 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.RubyTitle": "Elasticsearch Ruby 客户端", + "customIntegrations.languageclients.RustDescription": "通过 Rust 客户端将数据索引到 Elasticsearch。", + "customIntegrations.languageclients.RustTitle": "Elasticsearch Rust 客户端", "dashboard.actions.DownloadCreateDrilldownAction.displayName": "下载为 CSV", "dashboard.actions.downloadOptionsUnsavedFilename": "未命名", "dashboard.actions.toggleExpandPanelMenuItem.expandedDisplayName": "最小化", @@ -1480,6 +746,7 @@ "dashboard.panelStorageError.setError": "设置未保存更改时遇到错误:{message}", "dashboard.placeholder.factory.displayName": "占位符", "dashboard.savedDashboard.newDashboardTitle": "新建仪表板", + "dashboard.share.defaultDashboardTitle": "仪表板 [{date}]", "dashboard.solutionToolbar.addPanelButtonLabel": "创建可视化", "dashboard.solutionToolbar.editorMenuButtonLabel": "所有类型", "dashboard.strings.dashboardEditTitle": "正在编辑 {title}", @@ -1534,7 +801,7 @@ "data.advancedSettings.courier.requestPreferenceCustom": "定制", "data.advancedSettings.courier.requestPreferenceNone": "无", "data.advancedSettings.courier.requestPreferenceSessionId": "会话 ID", - "data.advancedSettings.courier.requestPreferenceText": "允许您设置用于处理搜索请求的分片。<ul>\n <li><strong>{sessionId}</strong>:限制操作在相同分片上执行所有搜索请求。\n 这有利于在各个请求之间复用分片缓存。</li>\n <li><strong>{custom}</strong>:允许您定义自己的首选项。\n 使用 <strong>'courier:customRequestPreference'</strong> 定制首选项值。</li>\n <li><strong>{none}</strong>:表示不设置首选项。\n 这可能会提供更佳的性能,因为请求可以在所有分片副本上进行分配。\n 不过,结果可能会不一致,因为不同的分片可能处于不同的刷新状态。</li>\n </ul>", + "data.advancedSettings.courier.requestPreferenceText": "允许您设置用于处理搜索请求的分片。\n <ul>\n <li><strong>{sessionId}</strong>:限制操作在相同分片上执行所有搜索请求。\n 这有利于在各个请求之间复用分片缓存。</li>\n <li><strong>{custom}</strong>:允许您定义自己的首选项。\n 使用 <strong>'courier:customRequestPreference'</strong> 定制首选项值。</li>\n <li><strong>{none}</strong>:表示不设置首选项。\n 这可能会提供更佳的性能,因为请求可以在所有分片副本上进行分配。\n 不过,结果可能会不一致,因为不同的分片可能处于不同的刷新状态。</li>\n </ul>", "data.advancedSettings.courier.requestPreferenceTitle": "请求首选项", "data.advancedSettings.defaultIndexText": "未设置索引时要访问的索引", "data.advancedSettings.defaultIndexTitle": "默认索引", @@ -1542,7 +809,7 @@ "data.advancedSettings.docTableHighlightTitle": "突出显示结果", "data.advancedSettings.histogram.barTargetText": "在日期和数值直方图中使用“auto”时间间隔时尝试生成大约此数目的存储桶", "data.advancedSettings.histogram.barTargetTitle": "目标存储桶", - "data.advancedSettings.histogram.maxBarsText": "在 Kibana 中限制日期和数值直方图的密度\n 以提高使用测试查询的性能。如果测试查询有过多的存储桶,\n 存储桶间的时间间隔将会增加。此设置分别应用到\n 各个直方图聚合,不会应用到其他类型的聚合。\n 要查找此设置的最大值,请将 Elasticsearch 'search.max_buckets' 除以\n 各个可视化中的最大聚合数。", + "data.advancedSettings.histogram.maxBarsText": "\n 在 Kibana 中限制日期和数值直方图的密度\n 以提高使用测试查询的性能。如果测试查询有过多的存储桶,\n 存储桶间的时间间隔将会增加。此设置分别应用到\n 各个直方图聚合,不会应用到其他类型的聚合。\n 要查找此设置的最大值,请将 Elasticsearch 'search.max_buckets' 除以\n 各个可视化中的最大聚合数。\n ", "data.advancedSettings.histogram.maxBarsTitle": "最大存储桶数", "data.advancedSettings.historyLimitText": "在具有历史记录(例如查询输入)的字段中,显示此数目的最近值", "data.advancedSettings.historyLimitTitle": "历史记录限制", @@ -1555,6 +822,7 @@ "data.advancedSettings.query.queryStringOptions.optionsLinkText": "选项", "data.advancedSettings.query.queryStringOptionsText": "Lucene 查询字符串解析器的{optionsLink}。仅在将“{queryLanguage}”设置为 {luceneLanguage} 时使用。", "data.advancedSettings.query.queryStringOptionsTitle": "查询字符串选项", + "data.advancedSettings.search.includeFrozenTextDeprecation": "此设置已过时,将在 Kibana 9.0 中移除。", "data.advancedSettings.searchQueryLanguageKql": "KQL", "data.advancedSettings.searchQueryLanguageLucene": "Lucene", "data.advancedSettings.searchQueryLanguageText": "查询栏使用的查询语言。KQL 是专为 Kibana 打造的新型语言。", @@ -1586,6 +854,7 @@ "data.aggTypes.buckets.ranges.rangesFormatMessage": "{gte} {from} 且 {lt} {to}", "data.aggTypes.buckets.ranges.rangesFormatMessageArrowRight": "{from} → {to}", "data.errors.fetchError": "请检查您的网络和代理配置。如果问题持续存在,请联系网络管理员。", + "data.esError.unknownRootCause": "未知", "data.filter.applyFilterActionTitle": "将筛选应用于当前视图", "data.filter.applyFilters.popupHeader": "选择要应用的筛选", "data.filter.applyFiltersPopup.cancelButtonLabel": "取消", @@ -1632,6 +901,7 @@ "data.filter.filterEditor.operatorSelectLabel": "运算符", "data.filter.filterEditor.operatorSelectPlaceholderSelect": "选择", "data.filter.filterEditor.operatorSelectPlaceholderWaiting": "正在等候", + "data.filter.filterEditor.queryDslAriaLabel": "Elasticsearch 查询 DSL 编辑器", "data.filter.filterEditor.queryDslLabel": "Elasticsearch 查询 DSL", "data.filter.filterEditor.rangeEndInputPlaceholder": "范围结束", "data.filter.filterEditor.rangeInputLabel": "范围", @@ -2230,7 +1500,7 @@ "data.search.searchBar.savedQueryFormTitle": "保存查询", "data.search.searchBar.savedQueryIncludeFiltersLabelText": "包括筛选", "data.search.searchBar.savedQueryIncludeTimeFilterLabelText": "包括时间筛选", - "data.search.searchBar.savedQueryNameHelpText": "“名称”必填。标题不能包含前导或尾随空格。名称必须唯一。", + "data.search.searchBar.savedQueryNameHelpText": "名称必填,其中不能包含前导或尾随空格,并且必须唯一。", "data.search.searchBar.savedQueryNameLabelText": "名称", "data.search.searchBar.savedQueryNoSavedQueriesText": "没有已保存查询。", "data.search.searchBar.savedQueryPopoverButtonText": "查看已保存查询", @@ -2295,6 +1565,10 @@ "data.searchSessions.sessionService.sessionObjectFetchError": "无法提取搜索会话信息", "data.triggers.applyFilterDescription": "应用 kibana 筛选时。可能是单个值或范围筛选。", "data.triggers.applyFilterTitle": "应用筛选", + "dataViews.deprecations.scriptedFields.manualStepOneMessage": "导航到“堆栈管理”>“Kibana”>“索引模式”。", + "dataViews.deprecations.scriptedFields.manualStepTwoMessage": "更新 {numberOfIndexPatternsWithScriptedFields} 个具有脚本字段的索引模式以改为使用运行时字段。多数情况下,要迁移现有脚本,您需要将“return <value>;”更改为“emit(<value>);”。至少有一个脚本字段的索引模式:{allTitles}", + "dataViews.deprecations.scriptedFieldsMessage": "您具有 {numberOfIndexPatternsWithScriptedFields} 个使用脚本字段的索引模式 ({titlesPreview}...)。脚本字段已过时,将在未来移除。请改为使用运行时脚本。", + "dataViews.deprecations.scriptedFieldsTitle": "找到使用脚本字段的索引模式", "dataViews.ensureDefaultIndexPattern.bannerLabel": "要在 Kibana 中可视化和浏览数据,必须创建索引模式,以从 Elasticsearch 中检索数据。", "dataViews.fetchFieldErrorTitle": "提取索引模式 {title} (ID: {id}) 的字段时出错", "dataViews.indexPatternLoad.error.kibanaRequest": "在服务器上执行此搜索时需要 Kibana 请求。请向表达式执行模式参数提供请求对象。", @@ -2302,15 +1576,16 @@ "devTools.badge.readOnly.text": "只读", "devTools.badge.readOnly.tooltip": "无法保存", "devTools.devToolsTitle": "开发工具", - "devTools.k7BreadcrumbsDevToolsLabel": "开发工具", - "devTools.pageTitle": "开发工具", "discover.advancedSettings.context.defaultSizeText": "要在上下文视图中显示的周围条目数目", "discover.advancedSettings.context.defaultSizeTitle": "上下文大小", "discover.advancedSettings.context.sizeStepText": "递增或递减上下文大小的步进大小", "discover.advancedSettings.context.sizeStepTitle": "上下文大小步进", + "discover.advancedSettings.context.tieBreakerFieldsText": "要在具有相同时间戳值的文档之间用于平分决胜的字段逗号分隔列表。将使用此列表上存在且在当前索引模式下可排序的第一个字段。", "discover.advancedSettings.context.tieBreakerFieldsTitle": "平分决胜字段", - "discover.advancedSettings.defaultColumnsText": "“发现”选项卡中默认显示的列", + "discover.advancedSettings.defaultColumnsText": "Discover 应用中默认显示的列。如果为空,将显示文档摘要。", "discover.advancedSettings.defaultColumnsTitle": "默认列", + "discover.advancedSettings.discover.modifyColumnsOnSwitchText": "移除新索引模式中不存在的列。", + "discover.advancedSettings.discover.modifyColumnsOnSwitchTitle": "更改索引模式时修改列", "discover.advancedSettings.discover.multiFieldsLinkText": "多字段", "discover.advancedSettings.discover.readFieldsFromSource": "从 _source 读取字段", "discover.advancedSettings.discover.readFieldsFromSourceDescription": "启用后,将直接从 `_source` 加载文档。这很快将被弃用。禁用后,将通过高级别搜索服务中的新字段 API 检索字段。", @@ -2326,17 +1601,18 @@ "discover.advancedSettings.sampleSizeTitle": "行数目", "discover.advancedSettings.searchOnPageLoadText": "控制在 Discover 首次加载时是否执行搜索。加载已保存搜索时,此设置无效。", "discover.advancedSettings.searchOnPageLoadTitle": "在页面加载时搜索", + "discover.advancedSettings.sortDefaultOrderText": "在 Discover 应用中控制基于时间的索引模式的默认排序方向。", "discover.advancedSettings.sortDefaultOrderTitle": "默认排序方向", "discover.advancedSettings.sortOrderAsc": "升序", "discover.advancedSettings.sortOrderDesc": "降序", - "discover.advancedSettings.params.maxCellHeightTitle": "最大表单元格高度", - "discover.advancedSettings.params.maxCellHeightText": "表单元格应占用的最大高度。设置为 0 可禁用截断", "discover.backToTopLinkText": "返回顶部。", "discover.badge.readOnly.text": "只读", "discover.badge.readOnly.tooltip": "无法保存搜索", "discover.bucketIntervalTooltip": "此时间间隔创建的{bucketsDescription},无法在选定时间范围中显示,因此已调整为{bucketIntervalDescription}。", "discover.bucketIntervalTooltip.tooLargeBucketsText": "存储桶过大", "discover.bucketIntervalTooltip.tooManyBucketsText": "存储桶过多", + "discover.chartOptions": "图表选项", + "discover.chartOptionsButton": "图表选项", "discover.clearSelection": "清除所选内容", "discover.context.breadcrumb": "周围文档", "discover.context.contextOfTitle": "#{anchorId} 周围的文档", @@ -2361,7 +1637,8 @@ "discover.discoverBreadcrumbTitle": "Discover", "discover.discoverDefaultSearchSessionName": "发现", "discover.discoverDescription": "通过查询和筛选原始文档来以交互方式浏览您的数据。", - "discover.discoverSubtitle": "搜索和查找洞见。", + "discover.discoverError.title": "加载 Discover 时出错", + "discover.discoverSubtitle": "搜索和查找数据分析结果。", "discover.discoverTitle": "Discover", "discover.doc.couldNotFindDocumentsDescription": "无文档匹配该 ID。", "discover.doc.failedToExecuteQueryDescription": "无法执行搜索", @@ -2394,6 +1671,12 @@ "discover.docTable.tableRow.viewSurroundingDocumentsLinkText": "查看周围文档", "discover.docTable.totalDocuments": "{totalDocuments} 个文档", "discover.documentsAriaLabel": "文档", + "discover.docView.table.ignored.multiAboveTooltip": "此字段中的一个或多个值过长,无法搜索或筛选。", + "discover.docView.table.ignored.multiMalformedTooltip": "此字段包含一个或多个格式错误的值,无法搜索或筛选。", + "discover.docView.table.ignored.multiUnknownTooltip": "此字段中的一个或多个值被 Elasticsearch 忽略,无法搜索或筛选。", + "discover.docView.table.ignored.singleAboveTooltip": "此字段中的值过长,无法搜索或筛选。", + "discover.docView.table.ignored.singleMalformedTooltip": "此字段中的值格式错误,无法搜索或筛选。", + "discover.docView.table.ignored.singleUnknownTooltip": "此字段中的值被 Elasticsearch 忽略,无法搜索或筛选。", "discover.docViews.json.jsonTitle": "JSON", "discover.docViews.table.filterForFieldPresentButtonAriaLabel": "筛留存在的字段", "discover.docViews.table.filterForFieldPresentButtonTooltip": "字段是否存在筛选", @@ -2401,6 +1684,8 @@ "discover.docViews.table.filterForValueButtonTooltip": "筛留值", "discover.docViews.table.filterOutValueButtonAriaLabel": "筛除值", "discover.docViews.table.filterOutValueButtonTooltip": "筛除值", + "discover.docViews.table.ignored.multiValueLabel": "包含被忽略的值", + "discover.docViews.table.ignored.singleValueLabel": "被忽略的值", "discover.docViews.table.scoreSortWarningTooltip": "要检索 _score 的值,必须按其筛选。", "discover.docViews.table.tableTitle": "表", "discover.docViews.table.toggleColumnInTableButtonAriaLabel": "在表中切换列", @@ -2408,6 +1693,7 @@ "discover.docViews.table.toggleFieldDetails": "切换字段详细信息", "discover.docViews.table.unableToFilterForPresenceOfMetaFieldsTooltip": "无法筛选元数据字段是否存在", "discover.docViews.table.unableToFilterForPresenceOfScriptedFieldsTooltip": "无法筛选脚本字段是否存在", + "discover.docViews.table.unindexedFieldsCanNotBeSearchedTooltip": "无法搜索未编入索引的字段或被忽略的值", "discover.embeddable.inspectorRequestDataTitle": "数据", "discover.embeddable.inspectorRequestDescription": "此请求将查询 Elasticsearch 以获取搜索的数据。", "discover.embeddable.search.displayName": "搜索", @@ -2422,6 +1708,8 @@ "discover.fieldChooser.discoverField.actions": "操作", "discover.fieldChooser.discoverField.addButtonAriaLabel": "将 {field} 添加到表中", "discover.fieldChooser.discoverField.addFieldTooltip": "将字段添加为列", + "discover.fieldChooser.discoverField.deleteFieldLabel": "删除索引模式字段", + "discover.fieldChooser.discoverField.editFieldLabel": "编辑索引模式字段", "discover.fieldChooser.discoverField.fieldTopValuesLabel": "排名前 5 值", "discover.fieldChooser.discoverField.multiField": "多字段", "discover.fieldChooser.discoverField.multiFields": "多字段", @@ -2439,6 +1727,7 @@ "discover.fieldChooser.filter.availableFieldsTitle": "可用字段", "discover.fieldChooser.filter.fieldSelectorLabel": "{id} 筛选选项的选择", "discover.fieldChooser.filter.filterByTypeLabel": "按类型筛选", + "discover.fieldChooser.filter.hideEmptyFieldsLabel": "隐藏空字段", "discover.fieldChooser.filter.indexAndFieldsSectionAriaLabel": "索引和字段", "discover.fieldChooser.filter.popularTitle": "常见", "discover.fieldChooser.filter.searchableLabel": "可搜索", @@ -2447,6 +1736,9 @@ "discover.fieldChooser.filter.toggleButton.no": "否", "discover.fieldChooser.filter.toggleButton.yes": "是", "discover.fieldChooser.filter.typeLabel": "类型", + "discover.fieldChooser.indexPatterns.actionsPopoverLabel": "索引模式设置", + "discover.fieldChooser.indexPatterns.addFieldButton": "将字段添加到索引模式", + "discover.fieldChooser.indexPatterns.manageFieldButton": "管理索引模式字段", "discover.fieldChooser.searchPlaceHolder": "搜索字段名称", "discover.fieldChooser.toggleFieldFilterButtonHideAriaLabel": "隐藏字段筛选设置", "discover.fieldChooser.toggleFieldFilterButtonShowAriaLabel": "显示字段筛选设置", @@ -2498,6 +1790,7 @@ "discover.loadingDocuments": "正在加载文档", "discover.loadingJSON": "正在加载 JSON", "discover.loadingResults": "正在加载结果", + "discover.localMenu.fallbackReportTitle": "未命名 Discover 搜索", "discover.localMenu.inspectTitle": "检查", "discover.localMenu.localMenu.newSearchTitle": "新建", "discover.localMenu.localMenu.optionsTitle": "选项", @@ -2511,6 +1804,8 @@ "discover.localMenu.saveTitle": "保存", "discover.localMenu.shareSearchDescription": "共享搜索", "discover.localMenu.shareTitle": "共享", + "discover.noMatchRoute.bannerText": "Discover 应用程序无法识别此路由:{route}", + "discover.noMatchRoute.bannerTitleText": "未找到页面", "discover.noResults.adjustFilters": "调整您的筛选", "discover.noResults.adjustSearch": "调整您的查询", "discover.noResults.disableFilters": "正临时禁用筛选", @@ -2528,6 +1823,10 @@ "discover.removeColumnLabel": "移除列", "discover.rootBreadcrumb": "Discover", "discover.savedSearch.savedObjectName": "已保存搜索", + "discover.savedSearchAliasMatchRedirect.objectNoun": "{savedSearch} 搜索", + "discover.savedSearchEmbeddable.action.viewSavedSearch.displayName": "在 Discover 中打开", + "discover.savedSearchEmbeddable.legacyURLConflict.errorMessage": "此搜索具有与旧版别名相同的 URL。请禁用别名以解决此错误:{json}", + "discover.savedSearchURLConflictCallout.objectNoun": "{savedSearch} 搜索", "discover.searchGenerationWithDescription": "搜索 {searchTitle} 生成的表", "discover.searchGenerationWithDescriptionGrid": "搜索 {searchTitle} 生成的表({searchDescription})", "discover.searchingTitle": "正在搜索", @@ -2537,10 +1836,15 @@ "discover.showChart": "显示图表", "discover.showErrorMessageAgain": "显示错误消息", "discover.showSelectedDocumentsOnly": "仅显示选定的文档", + "discover.singleDocRoute.errorMessage": "找不到与 ID {indexPatternId} 匹配的索引模式", + "discover.singleDocRoute.errorTitle": "发生错误", "discover.skipToBottomButtonLabel": "转到表尾", "discover.sourceViewer.errorMessage": "当前无法获取数据。请刷新选项卡以重试。", "discover.sourceViewer.errorMessageTitle": "发生错误", "discover.sourceViewer.refresh": "刷新", + "discover.timeIntervals": "时间间隔", + "discover.timeIntervalWithValue": "时间间隔:{timeInterval}", + "discover.timeIntervalWithValueWarning": "警告", "discover.toggleSidebarAriaLabel": "切换侧边栏", "discover.topNav.openSearchPanel.manageSearchesButtonLabel": "管理搜索", "discover.topNav.openSearchPanel.noSearchesFoundDescription": "未找到匹配的搜索。", @@ -2676,6 +1980,15 @@ "expressionMetric.functions.metricHelpText": "在标签上显示数字。", "expressionMetric.renderer.metric.displayName": "指标", "expressionMetric.renderer.metric.helpDescription": "在标签上呈现数字", + "expressionMetricVis.function.bucket.help": "存储桶维度配置", + "expressionMetricVis.function.colorMode.help": "指标的哪部分要上色", + "expressionMetricVis.function.dimension.metric": "指标", + "expressionMetricVis.function.dimension.splitGroup": "拆分组", + "expressionMetricVis.function.font.help": "字体设置。", + "expressionMetricVis.function.help": "指标可视化", + "expressionMetricVis.function.metric.help": "指标维度配置", + "expressionMetricVis.function.percentageMode.help": "以百分比模式显示指标。需要设置 colorRange。", + "expressionMetricVis.function.showLabels.help": "在指标值下显示标签。", "expressionRepeatImage.error.repeatImage.missingMaxArgument": "如果提供 {emptyImageArgument},则必须设置 {maxArgument}", "expressionRepeatImage.functions.repeatImage.args.emptyImageHelpText": "使用此图像填充元素的 {CONTEXT} 和 {maxArg} 参数之间的差距。以 {BASE64} 数据 {URL} 的形式提供图像资产或传入子表达式。", "expressionRepeatImage.functions.repeatImage.args.imageHelpText": "要重复的图像。以 {BASE64} 数据 {URL} 的形式提供图像资产或传入子表达式。", @@ -2787,6 +2100,23 @@ "expressionShape.renderer.progress.helpDescription": "渲染基本进度", "expressionShape.renderer.shape.displayName": "形状", "expressionShape.renderer.shape.helpDescription": "呈现基本形状", + "expressionTagcloud.feedbackMessage.tooSmallContainerDescription": "容器太小,无法显示整个云。标签可能被裁剪或省略。", + "expressionTagcloud.feedbackMessage.truncatedTagsDescription": "标签数量已截断,以避免绘制时间过长。", + "expressionTagcloud.functions.tagcloud.args.bucketHelpText": "存储桶维度配置", + "expressionTagcloud.functions.tagcloud.args.maxFontSizeHelpText": "最大字体大小", + "expressionTagcloud.functions.tagcloud.args.metricHelpText": "指标维度配置", + "expressionTagcloud.functions.tagcloud.args.minFontSizeHelpText": "最小字体大小", + "expressionTagcloud.functions.tagcloud.args.orientationHelpText": "标签云图内的字方向", + "expressionTagcloud.functions.tagcloud.args.paletteHelpText": "定义图表调色板名称", + "expressionTagcloud.functions.tagcloud.args.scaleHelpText": "缩放以确定字体大小", + "expressionTagcloud.functions.tagcloud.args.showLabelHelpText": "显示图表标签", + "expressionTagcloud.functions.tagcloud.dimension.tags": "标签", + "expressionTagcloud.functions.tagcloud.dimension.tagSize": "标签大小", + "expressionTagcloud.functions.tagcloud.invalidImageUrl": "无效的图像 url:“{imageUrl}”。", + "expressionTagcloud.functions.tagcloud.invalidPercentErrorMessage": "无效值:“{percent}”。百分比必须介于 0 和 1 之间", + "expressionTagcloud.functions.tagcloudHelpText": "标签云图可视化。", + "expressionTagcloud.renderer.tagcloud.displayName": "标签云图可视化", + "expressionTagcloud.renderer.tagcloud.helpDescription": "呈现标签云图", "fieldFormats.advancedSettings.format.bytesFormat.numeralFormatLinkText": "数值格式", "fieldFormats.advancedSettings.format.bytesFormatText": "“字节”格式的默认{numeralFormatLink}", "fieldFormats.advancedSettings.format.bytesFormatTitle": "字节格式", @@ -2882,11 +2212,12 @@ "flot.time.thuLabel": "周四", "flot.time.tueLabel": "周二", "flot.time.wedLabel": "周三", - "home.addData.addDataButtonLabel": "添加您的数据", + "home.addData.addDataButtonLabel": "添加集成", "home.addData.sampleDataButtonLabel": "试用样例数据", - "home.addData.sectionTitle": "首先添加您的数据", + "home.addData.sectionTitle": "通过添加集成开始使用", "home.addData.text": "要开始使用您的数据,请使用我们众多采集选项中的一个选项。从应用或服务收集数据,或上传文件。如果未准备好使用自己的数据,请添加示例数据集。", "home.breadcrumbs.homeTitle": "主页", + "home.breadcrumbs.integrationsAppTitle": "集成", "home.dataManagementDisableCollection": " 要停止收集,", "home.dataManagementDisableCollectionLink": "请在此禁用使用情况数据。", "home.dataManagementDisclaimerPrivacy": "要了解使用情况数据如何帮助我们管理和改善产品和服务,请参阅我们的 ", @@ -2897,7 +2228,7 @@ "home.exploreYourDataDescription": "完成所有步骤后,您便可以随时浏览自己的数据。", "home.header.title": "欢迎归来", "home.letsStartDescription": "从任何源将数据添加到您的集群,然后对其进行实时分析和可视化。使用我们的解决方案可随处添加搜索,观察您的生态系统,并防范安全威胁。", - "home.letsStartTitle": "首先添加您的数据", + "home.letsStartTitle": "首先添加集成", "home.loadTutorials.requestFailedErrorMessage": "请求失败,状态代码:{status}", "home.loadTutorials.unableToLoadErrorMessage": "无法加载教程", "home.manageData.devToolsButtonLabel": "开发工具", @@ -2905,6 +2236,8 @@ "home.manageData.stackManagementButtonLabel": "Stack Management", "home.pageTitle": "主页", "home.recentlyAccessed.recentlyViewedTitle": "最近查看", + "home.sampleData.customIntegrationsDescription": "使用这些一键式数据集浏览 Kibana 中的数据。", + "home.sampleData.customIntegrationsTitle": "样例数据", "home.sampleData.ecommerceSpec.ordersTitle": "[电子商务] 订单", "home.sampleData.ecommerceSpec.promotionTrackingTitle": "[电子商务] 促销追踪", "home.sampleData.ecommerceSpec.revenueDashboardDescription": "分析模拟的电子商务订单和收入", @@ -2925,10 +2258,10 @@ "home.sampleData.logsSpec.bytesDistributionTitle": "[Logs] 字节分布", "home.sampleData.logsSpec.discoverTitle": "[Logs] 访问", "home.sampleData.logsSpec.goalsTitle": "[日志] 目标", - "home.sampleData.logsSpec.heatmapTitle": "[日志] 独立访客热图", + "home.sampleData.logsSpec.heatmapTitle": "[日志] 唯一目标热图", "home.sampleData.logsSpec.hostVisitsBytesTableTitle": "[日志] 主机、访问和字节表", "home.sampleData.logsSpec.responseCodesOverTimeTitle": "[日志] 时移响应代码 + 注释", - "home.sampleData.logsSpec.sourceAndDestinationSankeyChartTitle": "[日志] 始发地和到达地 Sankey 图", + "home.sampleData.logsSpec.sourceAndDestinationSankeyChartTitle": "[日志] 机器 OS 和目标 Sankey 图", "home.sampleData.logsSpec.visitorsMapTitle": "[日志] 访客地图", "home.sampleData.logsSpec.webTrafficDescription": "分析 Elastic 网站的模拟 Web 流量日志数据", "home.sampleData.logsSpec.webTrafficTitle": "[日志] 网络流量", @@ -2954,11 +2287,15 @@ "home.sampleDataSetCard.viewDataButtonAriaLabel": "查看 {datasetName}", "home.sampleDataSetCard.viewDataButtonLabel": "查看数据", "home.solutionsSection.sectionTitle": "选取您的解决方案", - "home.tryButtonLabel": "添加数据", - "home.tutorial.addDataToKibanaTitle": "添加数据", + "home.tryButtonLabel": "添加集成", + "home.tutorial.addDataToKibanaDescription": "除了添加 {integrationsLink} 以外,您还可以试用样例数据或上传自己的数据。", + "home.tutorial.addDataToKibanaDescription.integrations": "集成", + "home.tutorial.addDataToKibanaTitle": "更多添加数据的方式", + "home.tutorial.backToDirectory": "返回到目录", "home.tutorial.card.sampleDataDescription": "开始使用这些“一键式”数据集浏览 Kibana。", "home.tutorial.card.sampleDataTitle": "样例数据", "home.tutorial.elasticCloudButtonLabel": "Elastic Cloud", + "home.tutorial.instruction_variant.fleet": "Fleet 中的 Elastic APM", "home.tutorial.instructionSet.checkStatusButtonLabel": "检查状态", "home.tutorial.instructionSet.customizeLabel": "定制您的代码片段", "home.tutorial.instructionSet.noDataLabel": "未找到任何数据", @@ -2986,78 +2323,78 @@ "home.tutorials.activemqLogs.artifacts.dashboards.linkLabel": "ActiveMQ 审计事件", "home.tutorials.activemqLogs.longDescription": "使用 Filebeat 收集 ActiveMQ 日志。[了解详情]({learnMoreLink})。", "home.tutorials.activemqLogs.nameTitle": "ActiveMQ 日志", - "home.tutorials.activemqLogs.shortDescription": "使用 Filebeat 收集 ActiveMQ 日志。", + "home.tutorials.activemqLogs.shortDescription": "使用 Filebeat 从 ActiveMQ 实例收集并解析日志。", "home.tutorials.activemqMetrics.artifacts.application.label": "Discover", - "home.tutorials.activemqMetrics.longDescription": "Metricbeat 模块 `activemq` 从 ActiveMQ 实例提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.activemqMetrics.longDescription": "Metricbeat 模块 `activemq` 从 ActiveMQ 实例提取指标 [了解详情]({learnMoreLink})。", "home.tutorials.activemqMetrics.nameTitle": "ActiveMQ 指标", - "home.tutorials.activemqMetrics.shortDescription": "从 ActiveMQ 实例提取监测指标。", + "home.tutorials.activemqMetrics.shortDescription": "使用 Metricbeat 从 ActiveMQ 实例收集指标。", "home.tutorials.aerospikeMetrics.artifacts.application.label": "Discover", - "home.tutorials.aerospikeMetrics.longDescription": "Metricbeat 模块 `aerospike` 从 Aerospike 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.aerospikeMetrics.longDescription": "Metricbeat 模块 `aerospike` 从 Aerospike 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.aerospikeMetrics.nameTitle": "Aerospike 指标", - "home.tutorials.aerospikeMetrics.shortDescription": "从 Aerospike 服务器提取内部指标。", + "home.tutorials.aerospikeMetrics.shortDescription": "使用 Metricbeat 从 Aerospike 服务器收集指标。", "home.tutorials.apacheLogs.artifacts.dashboards.linkLabel": "Apache 日志仪表板", "home.tutorials.apacheLogs.longDescription": "Filebeat 模块 apache 解析 Apache HTTP 服务器创建的访问和错误日志。[了解详情]({learnMoreLink})。", - "home.tutorials.apacheLogs.nameTitle": "Apache 日志", - "home.tutorials.apacheLogs.shortDescription": "收集并解析 Apache HTTP 服务器创建的访问和错误日志。", + "home.tutorials.apacheLogs.nameTitle": "Apache HTTP 服务器日志", + "home.tutorials.apacheLogs.shortDescription": "使用 Filebeat 从 Apache HTTP 服务器收集并解析日志。", "home.tutorials.apacheMetrics.artifacts.dashboards.linkLabel": "Apache 指标仪表板", - "home.tutorials.apacheMetrics.longDescription": "Metricbeat 模块 `apache` 从 Apache 2 HTTP 服务器提取内部指标。[了解详情]({learnMoreLink})。", - "home.tutorials.apacheMetrics.nameTitle": "Apache 指标", - "home.tutorials.apacheMetrics.shortDescription": "从 Apache 2 HTTP 服务器提取内部指标。", - "home.tutorials.auditbeat.artifacts.dashboards.linkLabel": "安全性 API", + "home.tutorials.apacheMetrics.longDescription": "Metricbeat 模块 `apache` 从 Apache 2 HTTP 服务器提取指标。[了解详情]({learnMoreLink})。", + "home.tutorials.apacheMetrics.nameTitle": "Apache HTTP 服务器指标", + "home.tutorials.apacheMetrics.shortDescription": "使用 Metricbeat 从 Apache HTTP 服务器收集指标。", + "home.tutorials.auditbeat.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.auditbeat.longDescription": "使用 Auditbeat 从主机收集审计数据。其中包括进程、用户、登录、套接字信息、文件访问等等。[了解详情]({learnMoreLink})。", - "home.tutorials.auditbeat.nameTitle": "Auditbeat", - "home.tutorials.auditbeat.shortDescription": "从主机收集审计数据。", + "home.tutorials.auditbeat.nameTitle": "Auditbeat 事件", + "home.tutorials.auditbeat.shortDescription": "使用 Auditbeat 从服务器收集事件。", "home.tutorials.auditdLogs.artifacts.dashboards.linkLabel": "审计事件", "home.tutorials.auditdLogs.longDescription": "该模块从审计守护进程 (`auditd`) 收集并解析日志。[了解详情]({learnMoreLink})。", "home.tutorials.auditdLogs.nameTitle": "Auditd 日志", - "home.tutorials.auditdLogs.shortDescription": "从 Linux auditd 守护进程收集日志。", + "home.tutorials.auditdLogs.shortDescription": "使用 Filebeat 从 Linux 审计守护进程收集并解析日志。", "home.tutorials.awsLogs.artifacts.dashboards.linkLabel": "AWS S3 服务器访问日志仪表板", "home.tutorials.awsLogs.longDescription": "通过将 AWS 日志导出到配置 SQS 通知的 S3 存储桶来收集这些日志。[了解详情]({learnMoreLink})。", "home.tutorials.awsLogs.nameTitle": "基于 AWS S3 的日志", - "home.tutorials.awsLogs.shortDescription": "使用 Filebeat 从 S3 存储桶收集 AWS 日志。", + "home.tutorials.awsLogs.shortDescription": "使用 Filebeat 从 AWS S3 存储桶收集并解析日志。", "home.tutorials.awsMetrics.artifacts.dashboards.linkLabel": "AWS 指标仪表板", - "home.tutorials.awsMetrics.longDescription": "Metricbeat 模块 `aws` 从 AWS API 和 Cloudwatch 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.awsMetrics.longDescription": "Metricbeat 模块 `aws` 从 AWS API 和 Cloudwatch 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.awsMetrics.nameTitle": "AWS 指标", - "home.tutorials.awsMetrics.shortDescription": "从 AWS API 和 Cloudwatch 提取 EC2 实例的监测指标。", + "home.tutorials.awsMetrics.shortDescription": "使用 Metricbeat 从 AWS API 和 Cloudwatch 收集 EC2 实例的指标。", "home.tutorials.azureLogs.artifacts.dashboards.linkLabel": "Azure 日志仪表板", "home.tutorials.azureLogs.longDescription": "Filebeat 模块 `azure` 收集 Azure 活动和审计相关日志。[了解详情]({learnMoreLink})。", "home.tutorials.azureLogs.nameTitle": "Azure 日志", - "home.tutorials.azureLogs.shortDescription": "收集 Azure 活动和审计相关日志。", + "home.tutorials.azureLogs.shortDescription": "使用 Filebeat 从 Azure 收集并解析日志。", "home.tutorials.azureMetrics.artifacts.dashboards.linkLabel": "Azure 指标仪表板", "home.tutorials.azureMetrics.longDescription": "Metricbeat 模块 `azure` 提取 Azure Monitor 指标。[了解详情]({learnMoreLink})。", "home.tutorials.azureMetrics.nameTitle": "Azure 指标", - "home.tutorials.azureMetrics.shortDescription": "提取 Azure 监测指标。", + "home.tutorials.azureMetrics.shortDescription": "使用 Metricbeat 从 Azure 收集指标。", "home.tutorials.barracudaLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.barracudaLogs.longDescription": "这是通过 Syslog 或文件接收 Barracuda Web Application Firewall 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.barracudaLogs.nameTitle": "Barracuda 日志", - "home.tutorials.barracudaLogs.shortDescription": "通过 syslog 或文件收集 Barracuda Web Application Firewall 日志。", + "home.tutorials.barracudaLogs.shortDescription": "使用 Filebeat 从 Barracuda Web Application Firewall 收集并解析日志。", "home.tutorials.bluecoatLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.bluecoatLogs.longDescription": "这是通过 Syslog 或文件接收 Blue Coat Director 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.bluecoatLogs.nameTitle": "Bluecoat 日志", - "home.tutorials.bluecoatLogs.shortDescription": "通过 Syslog 或文件接收 Blue Coat Director 日志。", + "home.tutorials.bluecoatLogs.shortDescription": "使用 Filebeat 从 Blue Coat Director 收集并解析日志。", "home.tutorials.cefLogs.artifacts.dashboards.linkLabel": "CEF 网络概览仪表板", "home.tutorials.cefLogs.longDescription": "这是通过 Syslog 接收通用事件格式 (CEF) 数据的模块。通过 Syslog 协议接收消息时,Syslog 输入将解析标头并设置时间戳值。然后将 应用处理器以解析 CEF 编码数据。编码数据 将写入到 `cef` 对象字段中。最后,将填充任何可以 使用 CEF 数据填充的 Elastic Common Schema (ECS) 字段。 [了解详情]({learnMoreLink})。", "home.tutorials.cefLogs.nameTitle": "CEF 日志", - "home.tutorials.cefLogs.shortDescription": "通过 Syslog 收集通用事件格式 (CEF) 日志数据。", + "home.tutorials.cefLogs.shortDescription": "使用 Filebeat 从通用事件格式 (CEF) 收集并解析日志。", "home.tutorials.cephMetrics.artifacts.application.label": "Discover", - "home.tutorials.cephMetrics.longDescription": "Metricbeat 模块 `ceph` 从 Ceph 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.cephMetrics.longDescription": "Metricbeat 模块 `ceph` 从 Ceph 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.cephMetrics.nameTitle": "Ceph 指标", - "home.tutorials.cephMetrics.shortDescription": "从 Ceph 服务器提取内部指标。", + "home.tutorials.cephMetrics.shortDescription": "使用 Metricbeat 从 Ceph 服务器收集指标。", "home.tutorials.checkpointLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.checkpointLogs.longDescription": "这是用于 Check Point 防火墙日志的模块。其支持 Log Exporter 的 Syslog 格式日志。[了解详情]({learnMoreLink})。", "home.tutorials.checkpointLogs.nameTitle": "Check Point 日志", - "home.tutorials.checkpointLogs.shortDescription": "收集 Check Point 防火墙日志。", + "home.tutorials.checkpointLogs.shortDescription": "使用 Filebeat 从 Check Point 防火墙收集并解析日志。", "home.tutorials.ciscoLogs.artifacts.dashboards.linkLabel": "ASA 防火墙仪表板", "home.tutorials.ciscoLogs.longDescription": "这是用于 Cisco 网络设备日志(ASA、FTD、IOS、Nexus)的模块。其包含以下用于从 Syslog 接收或从文件读取日志的文件集:[了解详情]({learnMoreLink})。", "home.tutorials.ciscoLogs.nameTitle": "Cisco 日志", - "home.tutorials.ciscoLogs.shortDescription": "通过 Syslog 或文件收集 Cisco 网络设备日志。", + "home.tutorials.ciscoLogs.shortDescription": "使用 Filebeat 从 Cisco 网络设备收集并解析日志。", "home.tutorials.cloudwatchLogs.longDescription": "通过部署 Functionbeat 运行为 AWS Lambda 函数 来收集 Cloudwatch 日志。 [了解详情]({learnMoreLink})。", "home.tutorials.cloudwatchLogs.nameTitle": "AWS Cloudwatch 日志", - "home.tutorials.cloudwatchLogs.shortDescription": "使用 Functionbeat 收集 Cloudwatch 日志。", + "home.tutorials.cloudwatchLogs.shortDescription": "使用 Functionbeat 从 AWS Cloudwatch 收集并解析日志。", "home.tutorials.cockroachdbMetrics.artifacts.dashboards.linkLabel": "CockroachDB 指标仪表板", - "home.tutorials.cockroachdbMetrics.longDescription": "Metricbeat 模块 `cockroachdb` 从 CockroachDB 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.cockroachdbMetrics.longDescription": "Metricbeat 模块 `cockroachdb` 从 CockroachDB 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.cockroachdbMetrics.nameTitle": "CockroachDB 指标", - "home.tutorials.cockroachdbMetrics.shortDescription": "从 CockroachDB 服务器提取监测指标。", + "home.tutorials.cockroachdbMetrics.shortDescription": "使用 Metricbeat 从 CockroachDB 服务器收集指标。", "home.tutorials.common.auditbeat.cloudInstructions.gettingStarted.title": "入门", "home.tutorials.common.auditbeat.premCloudInstructions.gettingStarted.title": "入门", "home.tutorials.common.auditbeat.premInstructions.gettingStarted.title": "入门", @@ -3342,307 +2679,307 @@ "home.tutorials.common.winlogbeatStatusCheck.text": "确认从 Winlogbeat 收到数据", "home.tutorials.common.winlogbeatStatusCheck.title": "模块状态", "home.tutorials.consulMetrics.artifacts.dashboards.linkLabel": "Consul 指标仪表板", - "home.tutorials.consulMetrics.longDescription": "Metricbeat 模块 `consul` 从 Consul 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.consulMetrics.longDescription": "Metricbeat 模块 `consul` 从 Consul 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.consulMetrics.nameTitle": "Consul 指标", - "home.tutorials.consulMetrics.shortDescription": "从 Consul 服务器提取监测指标。", + "home.tutorials.consulMetrics.shortDescription": "使用 Metricbeat 从 Consul 服务器收集指标。", "home.tutorials.corednsLogs.artifacts.dashboards.linkLabel": "[Filebeat CoreDNS] 概览", "home.tutorials.corednsLogs.longDescription": "这是用于 CoreDNS 的 Filebeat 模块。其支持独立的 CoreDNS 部署,也支持在 Kubernetes 中部署 CoreDNS。[了解详情]({learnMoreLink})。", "home.tutorials.corednsLogs.nameTitle": "CoreDNS 日志", - "home.tutorials.corednsLogs.shortDescription": "收集 CoreDNS 日志。", + "home.tutorials.corednsLogs.shortDescription": "使用 Filebeat 从 CoreDNS 服务器收集并解析日志。", "home.tutorials.corednsMetrics.artifacts.application.label": "Discover", - "home.tutorials.corednsMetrics.longDescription": "Metricbeat 模块 `coredns` 从 CoreDNS 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.corednsMetrics.longDescription": "Metricbeat 模块 `coredns` 从 CoreDNS 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.corednsMetrics.nameTitle": "CoreDNS 指标", - "home.tutorials.corednsMetrics.shortDescription": "从 CoreDNS 服务器提取监测指标。", + "home.tutorials.corednsMetrics.shortDescription": "使用 Metricbeat 从 CoreDNS 服务器收集指标。", "home.tutorials.couchbaseMetrics.artifacts.application.label": "Discover", - "home.tutorials.couchbaseMetrics.longDescription": "Metricbeat 模块 `couchbase` 从 Couchbase 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.couchbaseMetrics.longDescription": "Metricbeat 模块 `couchbase` 从 Couchbase 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.couchbaseMetrics.nameTitle": "Couchbase 指标", - "home.tutorials.couchbaseMetrics.shortDescription": "从 Couchbase 提取内部指标。", + "home.tutorials.couchbaseMetrics.shortDescription": "使用 Metricbeat 从 Couchbase 数据器收集指标。", "home.tutorials.couchdbMetrics.artifacts.dashboards.linkLabel": "CouchDB 指标仪表板", - "home.tutorials.couchdbMetrics.longDescription": "Metricbeat 模块 `couchdb` 从 CouchDB 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.couchdbMetrics.longDescription": "Metricbeat 模块 `couchdb` 从 CouchDB 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.couchdbMetrics.nameTitle": "CouchDB 指标", - "home.tutorials.couchdbMetrics.shortDescription": "从 CouchdB 服务器提取监测指标。", + "home.tutorials.couchdbMetrics.shortDescription": "使用 Metricbeat 从 CouchDB 服务器收集指标。", "home.tutorials.crowdstrikeLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.crowdstrikeLogs.longDescription": "这是面向使用 Falcon [SIEM 连接器](https://www.crowdstrike.com/blog/tech-center/integrate-with-your-siem) 的 CrowdStrike Falcon 的 Filebeat 模块。 此模块收集此类数据,将其转换为 ECS,进行采集后在 SIEM 中查看。 默认情况下,Falcon SIEM 连接器输出 JSON 格式的 Falcon Streaming API 事件数据。[了解详情]({learnMoreLink})。", "home.tutorials.crowdstrikeLogs.nameTitle": "CrowdStrike 日志", - "home.tutorials.crowdstrikeLogs.shortDescription": "使用 Falcon SIEM 连接器收集 CrowdStrike Falcon 日志。", + "home.tutorials.crowdstrikeLogs.shortDescription": "通过 Filebeat 使用 Falcon SIEM 连接器从 CrowdStrike Falcon 收集并解析日志。", "home.tutorials.cylanceLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.cylanceLogs.longDescription": "这是通过 Syslog 或文件接收 CylancePROTECT 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.cylanceLogs.nameTitle": "CylancePROTECT 日志", - "home.tutorials.cylanceLogs.shortDescription": "通过 Syslog 或文件收集 CylancePROTECT 日志。", + "home.tutorials.cylanceLogs.shortDescription": "使用 Filebeat 从 CylancePROTECT 收集并解析日志。", "home.tutorials.dockerMetrics.artifacts.dashboards.linkLabel": "Docker 指标仪表板", "home.tutorials.dockerMetrics.longDescription": "Metricbeat 模块 `docker` 从 Docker 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.dockerMetrics.nameTitle": "Docker 指标", - "home.tutorials.dockerMetrics.shortDescription": "提取有关 Docker 容器的指标。", + "home.tutorials.dockerMetrics.shortDescription": "使用 Metricbeat 从 Docker 容器收集指标。", "home.tutorials.dropwizardMetrics.artifacts.application.label": "Discover", - "home.tutorials.dropwizardMetrics.longDescription": "Metricbeat 模块 `dropwizard` 从 Dropwizard Java 应用程序提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.dropwizardMetrics.longDescription": "Metricbeat 模块 `dropwizard` 从 Dropwizard Java 应用程序提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.dropwizardMetrics.nameTitle": "Dropwizard 指标", - "home.tutorials.dropwizardMetrics.shortDescription": "从 Dropwizard Java 应用程序提取内部指标。", + "home.tutorials.dropwizardMetrics.shortDescription": "使用 Metricbeat 从 Dropwizard Java 应用程序收集指标。", "home.tutorials.elasticsearchLogs.artifacts.application.label": "Discover", "home.tutorials.elasticsearchLogs.longDescription": "Filebeat 模块 `elasticsearch` 解析 Elasticsearch 创建的日志。[了解详情]({learnMoreLink})。", "home.tutorials.elasticsearchLogs.nameTitle": "Elasticsearch 日志", - "home.tutorials.elasticsearchLogs.shortDescription": "收集并解析 Elasticsearch 创建的日志。", + "home.tutorials.elasticsearchLogs.shortDescription": "使用 Filebeat 从 Elasticsearch 集群收集并解析日志。", "home.tutorials.elasticsearchMetrics.artifacts.application.label": "Discover", - "home.tutorials.elasticsearchMetrics.longDescription": "Metricbeat 模块 `elasticsearch` 从 Elasticsearch 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.elasticsearchMetrics.longDescription": "Metricbeat 模块 `elasticsearch` 从 Elasticsearch 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.elasticsearchMetrics.nameTitle": "Elasticsearch 指标", - "home.tutorials.elasticsearchMetrics.shortDescription": "从 Elasticsearch 提取内部指标。", + "home.tutorials.elasticsearchMetrics.shortDescription": "使用 Metricbeat 从 Elasticsearch 集群收集指标。", "home.tutorials.envoyproxyLogs.artifacts.dashboards.linkLabel": "Envoy Proxy 概览", "home.tutorials.envoyproxyLogs.longDescription": "这是用于 Envoy 代理访问日志 (https://www.envoyproxy.io/docs/envoy/v1.10.0/configuration/access_log) 的 Filebeat 模块。其支持独立的部署,也支持 Kubernetes 中的 Envoy 代理部署。[了解详情]({learnMoreLink})。", "home.tutorials.envoyproxyLogs.nameTitle": "Envoy Proxy 日志", - "home.tutorials.envoyproxyLogs.shortDescription": "收集 Envoy Proxy 日志。", - "home.tutorials.envoyproxyMetrics.longDescription": "Metricbeat 模块 `envoyproxy` 从 Envoy Proxy 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.envoyproxyLogs.shortDescription": "使用 Filebeat 从 Envoy Proxy 收集并解析日志。", + "home.tutorials.envoyproxyMetrics.longDescription": "Metricbeat 模块 `envoyproxy` 从 Envoy Proxy 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.envoyproxyMetrics.nameTitle": "Envoy Proxy 指标", - "home.tutorials.envoyproxyMetrics.shortDescription": "从 Envoy Proxy 提取监测指标。", + "home.tutorials.envoyproxyMetrics.shortDescription": "使用 Metricbeat 从 Envoy Proxy 收集指标。", "home.tutorials.etcdMetrics.artifacts.application.label": "Discover", - "home.tutorials.etcdMetrics.longDescription": "Metricbeat 模块 `etcd` 从 Etcd 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.etcdMetrics.longDescription": "Metricbeat 模块 `etcd` 从 Etcd 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.etcdMetrics.nameTitle": "Etcd 指标", - "home.tutorials.etcdMetrics.shortDescription": "从 Etcd 服务器提取内部指标。", + "home.tutorials.etcdMetrics.shortDescription": "使用 Metricbeat 从 Etcd 服务器收集指标。", "home.tutorials.f5Logs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.f5Logs.longDescription": "这是通过 Syslog 或文件接收 Big-IP Access Policy Manager 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.f5Logs.nameTitle": "F5 日志", - "home.tutorials.f5Logs.shortDescription": "通过 Syslog 或文件收集 F5 Big-IP Access Policy Manager 日志。", + "home.tutorials.f5Logs.shortDescription": "使用 Filebeat 从 F5 Big-IP Access Policy Manager 收集并解析日志。", "home.tutorials.fortinetLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.fortinetLogs.longDescription": "此模块适用于以 syslog 格式发送的 Fortinet FortiOS 日志。[了解详情]({learnMoreLink})。", "home.tutorials.fortinetLogs.nameTitle": "Fortinet 日志", - "home.tutorials.fortinetLogs.shortDescription": "通过 syslog 收集 Fortinet FortiOS 日志。", + "home.tutorials.fortinetLogs.shortDescription": "使用 Filebeat 从 Fortinet FortiOS 收集并解析日志。", "home.tutorials.gcpLogs.artifacts.dashboards.linkLabel": "审计日志仪表板", "home.tutorials.gcpLogs.longDescription": "此模块适用于 Google Cloud 日志。其支持读取从 Stackdriver 导出到 Google Pub/Sub 主题接收器 的审计、VPC 流和防火墙日志。[了解详情]({learnMoreLink})。", "home.tutorials.gcpLogs.nameTitle": "Google Cloud 日志", - "home.tutorials.gcpLogs.shortDescription": "收集 Google Cloud 审计、防火墙、VPC 流日志。", + "home.tutorials.gcpLogs.shortDescription": "使用 Filebeat 从 Google Cloud Platform 收集并解析日志。", "home.tutorials.gcpMetrics.artifacts.dashboards.linkLabel": "Google Cloud 指标仪表板", - "home.tutorials.gcpMetrics.longDescription": "Metricbeat 模块 `gcp` 使用 Stackdriver 监测 API 从 Google Cloud Platform 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.gcpMetrics.longDescription": "Metricbeat 模块 `gcp` 使用 Stackdriver 监测 API 从 Google Cloud Platform 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.gcpMetrics.nameTitle": "Google Cloud 指标", - "home.tutorials.gcpMetrics.shortDescription": "使用 Stackdriver 监测 API 从 Google Cloud Platform 提取监测指标。", + "home.tutorials.gcpMetrics.shortDescription": "使用 Metricbeat 从 Google Cloud Platform 收集指标。", "home.tutorials.golangMetrics.artifacts.dashboards.linkLabel": "Golang 指标仪表板", - "home.tutorials.golangMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Golang 应用提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.golangMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Golang 应用提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.golangMetrics.nameTitle": "Golang 指标", - "home.tutorials.golangMetrics.shortDescription": "从 Golang 应用提取内部指标。", + "home.tutorials.golangMetrics.shortDescription": "使用 Metricbeat 从 Golang 应用程序收集指标。", "home.tutorials.gsuiteLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.gsuiteLogs.longDescription": "这是用于从不同 GSuite 审计报告 API 采集数据的模块。[了解详情]({learnMoreLink})。", "home.tutorials.gsuiteLogs.nameTitle": "GSuite 日志", - "home.tutorials.gsuiteLogs.shortDescription": "收集 GSuite 活动报告。", + "home.tutorials.gsuiteLogs.shortDescription": "使用 Filebeat 从 GSuite 收集并解析活动报告。", "home.tutorials.haproxyLogs.artifacts.dashboards.linkLabel": "HAProxy 概览", "home.tutorials.haproxyLogs.longDescription": "该模块从 (`haproxy`) 进程收集并解析日志。[了解详情]({learnMoreLink})。", "home.tutorials.haproxyLogs.nameTitle": "HAProxy 日志", - "home.tutorials.haproxyLogs.shortDescription": "收集 HAProxy 日志。", + "home.tutorials.haproxyLogs.shortDescription": "使用 Filebeat 从 HAProxy 服务器收集并解析日志。", "home.tutorials.haproxyMetrics.artifacts.application.label": "Discover", - "home.tutorials.haproxyMetrics.longDescription": "Metricbeat 模块 `haproxy` 从 HAProxy 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.haproxyMetrics.longDescription": "Metricbeat 模块 `haproxy` 从 HAProxy 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.haproxyMetrics.nameTitle": "HAProxy 指标", - "home.tutorials.haproxyMetrics.shortDescription": "从 HAProxy 服务器提取内部指标。", + "home.tutorials.haproxyMetrics.shortDescription": "使用 Metricbeat 从 HAProxy 服务器收集指标。", "home.tutorials.ibmmqLogs.artifacts.dashboards.linkLabel": "IBM MQ 事件", "home.tutorials.ibmmqLogs.longDescription": "使用 Filebeat 收集 IBM MQ 日志。[了解详情]({learnMoreLink})。", "home.tutorials.ibmmqLogs.nameTitle": "IBM MQ 日志", - "home.tutorials.ibmmqLogs.shortDescription": "使用 Filebeat 收集 IBM MQ 日志。", + "home.tutorials.ibmmqLogs.shortDescription": "使用 Filebeat 从 IBM MQ 收集并解析日志。", "home.tutorials.ibmmqMetrics.artifacts.application.label": "Discover", - "home.tutorials.ibmmqMetrics.longDescription": "Metricbeat 模块 `ibmmq` 从 IBM MQ 实例提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.ibmmqMetrics.longDescription": "Metricbeat 模块 `ibmmq` 从 IBM MQ 实例提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.ibmmqMetrics.nameTitle": "IBM MQ 指标", - "home.tutorials.ibmmqMetrics.shortDescription": "从 IBM MQ 实例提取监测指标。", + "home.tutorials.ibmmqMetrics.shortDescription": "使用 Metricbeat 从 IBM MQ 实例收集指标。", "home.tutorials.icingaLogs.artifacts.dashboards.linkLabel": "Icinga 主要日志", "home.tutorials.icingaLogs.longDescription": "该模块解析 [Icinga](https://www.icinga.com/products/icinga-2/) 的主要、调试和启动日志。[了解详情]({learnMoreLink})。", "home.tutorials.icingaLogs.nameTitle": "Icinga 日志", - "home.tutorials.icingaLogs.shortDescription": "收集 Icinga 的主要、调试、启动日志。", + "home.tutorials.icingaLogs.shortDescription": "使用 Filebeat 从 Icinga 收集并解析主要、调试和启动日志。", "home.tutorials.iisLogs.artifacts.dashboards.linkLabel": "IIS 日志仪表板", "home.tutorials.iisLogs.longDescription": "Filebeat 模块 `iis` 解析 IIS HTTP 服务器创建的访问和错误日志。[了解详情]({learnMoreLink})。", "home.tutorials.iisLogs.nameTitle": "IIS 日志", - "home.tutorials.iisLogs.shortDescription": "收集并解析 IIS HTTP 服务器创建的访问和错误日志。", + "home.tutorials.iisLogs.shortDescription": "使用 Filebeat 从 IIS HTTP 服务器收集并解析访问和错误日志。", "home.tutorials.iisMetrics.artifacts.dashboards.linkLabel": "IIS 指标仪表板", "home.tutorials.iisMetrics.longDescription": "Metricbeat 模板 `iis` 从运行的 IIS 服务器以及应用程序池和网站收集指标。[了解详情]({learnMoreLink})。", "home.tutorials.iisMetrics.nameTitle": "IIS 指标", - "home.tutorials.iisMetrics.shortDescription": "收集 IIS 服务器相关指标。", + "home.tutorials.iisMetrics.shortDescription": "使用 Metricbeat 从 IIS HTTP 服务器收集指标。", "home.tutorials.impervaLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.impervaLogs.longDescription": "这是通过 Syslog 或文件接收 Imperva SecureSphere 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.impervaLogs.nameTitle": "Imperva 日志", - "home.tutorials.impervaLogs.shortDescription": "通过 Syslog 或文件收集 Imperva SecureSphere 日志。", + "home.tutorials.impervaLogs.shortDescription": "使用 Filebeat 从 Imperva SecureSphere 收集并解析日志。", "home.tutorials.infobloxLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.infobloxLogs.longDescription": "这是通过 Syslog 或文件接收 Infoblox NIOS 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.infobloxLogs.nameTitle": "Infoblox 日志", - "home.tutorials.infobloxLogs.shortDescription": "通过 Syslog 或文件收集 Infoblox NIOS 日志。", + "home.tutorials.infobloxLogs.shortDescription": "使用 Filebeat 从 Infoblox NIOS 收集并解析日志。", "home.tutorials.iptablesLogs.artifacts.dashboards.linkLabel": "Iptables 概览", "home.tutorials.iptablesLogs.longDescription": "这是用于 iptables 和 ip6tables 日志的模块。其解析在网络上 通过 Syslog 或从文件中接收的日志。另外,其识别某些 Ubiquiti 防火墙 添加的前缀,该前缀包含规则集名称、规则 编号和对流量执行的操作 (allow/deny)。 [了解详情]({learnMoreLink})。", "home.tutorials.iptablesLogs.nameTitle": "Iptables 日志", - "home.tutorials.iptablesLogs.shortDescription": "收集 iptables 和 ip6tables 日志。", + "home.tutorials.iptablesLogs.shortDescription": "使用 Filebeat 从 iptables 和 ip6tables 收集并解析日志。", "home.tutorials.juniperLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.juniperLogs.longDescription": "这是用于通过 Syslog 或文件接收 Juniper JUNOS 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.juniperLogs.nameTitle": "Juniper 日志", - "home.tutorials.juniperLogs.shortDescription": "通过 syslog 或文件收集 Juniper JUNOS 日志。", + "home.tutorials.juniperLogs.shortDescription": "使用 Filebeat 从 Juniper JUNOS 收集并解析日志。", "home.tutorials.kafkaLogs.artifacts.dashboards.linkLabel": "Kafka 日志仪表板", "home.tutorials.kafkaLogs.longDescription": "Filebeat 模块 `kafka` 解析 Kafka 创建的日志。[了解详情]({learnMoreLink})。", "home.tutorials.kafkaLogs.nameTitle": "Kafka 日志", - "home.tutorials.kafkaLogs.shortDescription": "收集并解析 Kafka 创建的日志。", + "home.tutorials.kafkaLogs.shortDescription": "使用 Filebeat 从 Kafka 服务器收集并解析日志。", "home.tutorials.kafkaMetrics.artifacts.application.label": "Discover", - "home.tutorials.kafkaMetrics.longDescription": "Metricbeat 模块 `kafka` 从 Kafka 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.kafkaMetrics.longDescription": "Metricbeat 模块 `kafka` 从 Kafka 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.kafkaMetrics.nameTitle": "Kafka 指标", - "home.tutorials.kafkaMetrics.shortDescription": "从 Kafka 服务器提取内部指标。", + "home.tutorials.kafkaMetrics.shortDescription": "使用 Metricbeat 从 Kafka 服务器收集指标。", "home.tutorials.kibanaLogs.artifacts.application.label": "Discover", "home.tutorials.kibanaLogs.longDescription": "这是 Kibana 模块。[了解详情]({learnMoreLink})。", "home.tutorials.kibanaLogs.nameTitle": "Kibana 日志", - "home.tutorials.kibanaLogs.shortDescription": "收集 Kibana 日志。", + "home.tutorials.kibanaLogs.shortDescription": "使用 Filebeat 从 Kibana 收集并解析日志。", "home.tutorials.kibanaMetrics.artifacts.application.label": "Discover", - "home.tutorials.kibanaMetrics.longDescription": "Metricbeat 模块 `kibana` 从 Kibana 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.kibanaMetrics.longDescription": "Metricbeat 模块 `kibana` 从 Kibana 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.kibanaMetrics.nameTitle": "Kibana 指标", - "home.tutorials.kibanaMetrics.shortDescription": "从 Kibana 提取内部指标。", + "home.tutorials.kibanaMetrics.shortDescription": "使用 Metricbeat 从 Kibana 收集指标。", "home.tutorials.kubernetesMetrics.artifacts.dashboards.linkLabel": "Kubernetes 指标仪表板", "home.tutorials.kubernetesMetrics.longDescription": "Metricbeat 模块 `kubernetes` 从 Kubernetes API 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.kubernetesMetrics.nameTitle": "Kubernetes 指标", - "home.tutorials.kubernetesMetrics.shortDescription": "从您的 Kubernetes 安装提取指标。", + "home.tutorials.kubernetesMetrics.shortDescription": "使用 Metricbeat 从 Kubernetes 安装收集指标。", "home.tutorials.logstashLogs.artifacts.dashboards.linkLabel": "Logstash 日志", "home.tutorials.logstashLogs.longDescription": "该模块解析 Logstash 常规日志和慢查询日志,支持纯文本格式和 JSON 格式。[了解详情]({learnMoreLink})。", "home.tutorials.logstashLogs.nameTitle": "Logstash 日志", - "home.tutorials.logstashLogs.shortDescription": "收集 Logstash 主要和慢查询日志。", + "home.tutorials.logstashLogs.shortDescription": "使用 Filebeat 从 Logstash 收集并解析主要日志和慢查询日志。", "home.tutorials.logstashMetrics.artifacts.application.label": "Discover", - "home.tutorials.logstashMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Logstash 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.logstashMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Logstash 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.logstashMetrics.nameTitle": "Logstash 指标", - "home.tutorials.logstashMetrics.shortDescription": "从 Logstash 服务器提取内部指标。", + "home.tutorials.logstashMetrics.shortDescription": "使用 Metricbeat 从 Logstash 服务器收集指标。", "home.tutorials.memcachedMetrics.artifacts.application.label": "Discover", - "home.tutorials.memcachedMetrics.longDescription": "Metricbeat 模块 `memcached` 从 Memcached 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.memcachedMetrics.longDescription": "Metricbeat 模块 `memcached` 从 Memcached 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.memcachedMetrics.nameTitle": "Memcached 指标", - "home.tutorials.memcachedMetrics.shortDescription": "从 Memcached 提取内部指标。", + "home.tutorials.memcachedMetrics.shortDescription": "使用 Metricbeat 从 Memcached 服务器收集指标。", "home.tutorials.microsoftLogs.artifacts.dashboards.linkLabel": "Microsoft ATP 概览", "home.tutorials.microsoftLogs.longDescription": "收集 Microsoft Defender ATP 告警,供 Elastic Security 使用。[了解详情]({learnMoreLink})。", "home.tutorials.microsoftLogs.nameTitle": "Microsoft Defender ATP 日志", - "home.tutorials.microsoftLogs.shortDescription": "收集 Microsoft Defender ATP 告警。", + "home.tutorials.microsoftLogs.shortDescription": "使用 Filebeat 从 Microsoft Defender ATP 收集并解析告警。", "home.tutorials.mispLogs.artifacts.dashboards.linkLabel": "MISP 概览", "home.tutorials.mispLogs.longDescription": "这是用于从 MISP 平台 (https://www.circl.lu/doc/misp/) 读取威胁情报信息的 Filebeat 模块。该模块使用 httpjson 输入来访问 MISP REST API 接口。[了解详情]({learnMoreLink})。", "home.tutorials.mispLogs.nameTitle": "MISP 威胁情报日志", - "home.tutorials.mispLogs.shortDescription": "使用 Filebeat 收集 MISP 威胁情报数据。", + "home.tutorials.mispLogs.shortDescription": "使用 Filebeat 从 MISP 威胁情报收集并解析日志。", "home.tutorials.mongodbLogs.artifacts.dashboards.linkLabel": "MongoDB 概览", "home.tutorials.mongodbLogs.longDescription": "该模块收集并解析 [MongoDB](https://www.mongodb.com/) 创建的日志。[了解详情]({learnMoreLink})。", "home.tutorials.mongodbLogs.nameTitle": "MongoDB 日志", - "home.tutorials.mongodbLogs.shortDescription": "收集 MongoDB 日志。", + "home.tutorials.mongodbLogs.shortDescription": "使用 Filebeat 从 MongoDB 服务器收集并解析日志。", "home.tutorials.mongodbMetrics.artifacts.dashboards.linkLabel": "MongoDB 指标仪表板", - "home.tutorials.mongodbMetrics.longDescription": "Metricbeat 模块 `mongodb` 从 MongoDB 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.mongodbMetrics.longDescription": "Metricbeat 模块 `mongodb` 从 MongoDB 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.mongodbMetrics.nameTitle": "MongoDB 指标", - "home.tutorials.mongodbMetrics.shortDescription": "从 MongoDB 提取内部指标。", + "home.tutorials.mongodbMetrics.shortDescription": "使用 Metricbeat 从 MongoDB 服务器收集指标。", "home.tutorials.mssqlLogs.artifacts.application.label": "Discover", "home.tutorials.mssqlLogs.longDescription": "该模块解析 MSSQL 创建的错误日志。[了解详情]({learnMoreLink})。", - "home.tutorials.mssqlLogs.nameTitle": "MSSQL 日志", - "home.tutorials.mssqlLogs.shortDescription": "收集 MSSQL 日志。", + "home.tutorials.mssqlLogs.nameTitle": "Microsoft SQL Server 日志", + "home.tutorials.mssqlLogs.shortDescription": "使用 Filebeat 从 Microsoft SQL Server 实例收集并解析日志。", "home.tutorials.mssqlMetrics.artifacts.dashboards.linkLabel": "Microsoft SQL Server 指标仪表板", "home.tutorials.mssqlMetrics.longDescription": "Metricbeat 模块 `mssql` 从 Microsoft SQL Server 提取监测、日志和性能指标。[了解详情]({learnMoreLink})。", "home.tutorials.mssqlMetrics.nameTitle": "Microsoft SQL Server 指标", - "home.tutorials.mssqlMetrics.shortDescription": "从 Microsoft SQL Server 实例提取监测指标", + "home.tutorials.mssqlMetrics.shortDescription": "使用 Metricbeat 从 Microsoft SQL Server 实例收集指标。", "home.tutorials.muninMetrics.artifacts.application.label": "Discover", - "home.tutorials.muninMetrics.longDescription": "Metricbeat 模块 `munin` 从 Munin 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.muninMetrics.longDescription": "Metricbeat 模块 `munin` 从 Munin 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.muninMetrics.nameTitle": "Munin 指标", - "home.tutorials.muninMetrics.shortDescription": "从 Munin 服务器提取内部指标。", + "home.tutorials.muninMetrics.shortDescription": "使用 Metricbeat 从 Munin 服务器收集指标。", "home.tutorials.mysqlLogs.artifacts.dashboards.linkLabel": "MySQL 日志仪表板", "home.tutorials.mysqlLogs.longDescription": "Filebeat 模块 `mysql` 解析 MySQL 创建的错误和慢查询日志。[了解详情]({learnMoreLink})。", "home.tutorials.mysqlLogs.nameTitle": "MySQL 日志", - "home.tutorials.mysqlLogs.shortDescription": "收集并解析 MySQL 创建的错误和慢查询日志。", + "home.tutorials.mysqlLogs.shortDescription": "使用 Filebeat 从 MySQL 服务器收集并解析日志。", "home.tutorials.mysqlMetrics.artifacts.dashboards.linkLabel": "MySQL 指标仪表板", - "home.tutorials.mysqlMetrics.longDescription": "Metricbeat 模块 `mysql` 从 MySQL 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.mysqlMetrics.longDescription": "Metricbeat 模块 `mysql` 从 MySQL 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.mysqlMetrics.nameTitle": "MySQL 指标", - "home.tutorials.mysqlMetrics.shortDescription": "从 MySQL 提取内部指标。", + "home.tutorials.mysqlMetrics.shortDescription": "使用 Metricbeat 从 MySQL 服务器收集指标。", "home.tutorials.natsLogs.artifacts.dashboards.linkLabel": "NATS 日志仪表板", "home.tutorials.natsLogs.longDescription": "Filebeat 模块 `nats` 解析 Nats 创建的日志。[了解详情]({learnMoreLink})。", "home.tutorials.natsLogs.nameTitle": "NATS 日志", - "home.tutorials.natsLogs.shortDescription": "收集并解析 Nats 创建的日志。", + "home.tutorials.natsLogs.shortDescription": "使用 Filebeat 从 NATS 服务器收集并解析日志。", "home.tutorials.natsMetrics.artifacts.dashboards.linkLabel": "NATS 指标仪表板", - "home.tutorials.natsMetrics.longDescription": "Metricbeat 模块 `nats` 从 Nats 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.natsMetrics.longDescription": "Metricbeat 模块 `nats` 从 Nats 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.natsMetrics.nameTitle": "NATS 指标", - "home.tutorials.natsMetrics.shortDescription": "从 Nats 服务器提取监测指标。", + "home.tutorials.natsMetrics.shortDescription": "使用 Metricbeat 从 NATS 服务器收集指标。", "home.tutorials.netflowLogs.artifacts.dashboards.linkLabel": "Netflow 概览", "home.tutorials.netflowLogs.longDescription": "这是通过 UDP 接收 NetFlow 和 IPFIX 流记录的模块。此输入支持 NetFlow 版本 1、5、6、7、8 和 9,以及 IPFIX。对于早于 9 的 NetFlow 版本,字段会自动将映射到 NetFlow v9。[了解详情]({learnMoreLink})。", - "home.tutorials.netflowLogs.nameTitle": "NetFlow / IPFIX 收集器", - "home.tutorials.netflowLogs.shortDescription": "收集 NetFlow 和 IPFIX 流记录。", + "home.tutorials.netflowLogs.nameTitle": "NetFlow/IPFIX 记录", + "home.tutorials.netflowLogs.shortDescription": "使用 Filebeat 从 NetFlow 和 IPFIX 流收集记录。", "home.tutorials.netscoutLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.netscoutLogs.longDescription": "这是通过 Syslog 或文件接收 Arbor Peakflow SP 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.netscoutLogs.nameTitle": "Arbor Peakflow 日志", - "home.tutorials.netscoutLogs.shortDescription": "通过 syslog 或文件收集 Netscout Arbor Peakflow SP 日志。", + "home.tutorials.netscoutLogs.shortDescription": "使用 Filebeat 从 Netscout Arbor Peakflow SP 收集并解析日志。", "home.tutorials.nginxLogs.artifacts.dashboards.linkLabel": "Nginx 日志仪表板", "home.tutorials.nginxLogs.longDescription": "Filebeat 模块 `nginx` 解析 Nginx HTTP 服务器创建的访问和错误日志。[了解详情]({learnMoreLink})。", "home.tutorials.nginxLogs.nameTitle": "Nginx 日志", - "home.tutorials.nginxLogs.shortDescription": "收集并解析 Nginx HTTP 服务器创建的访问和错误日志。", + "home.tutorials.nginxLogs.shortDescription": "使用 Filebeat 从 Nginx HTTP 服务器收集并解析日志。", "home.tutorials.nginxMetrics.artifacts.dashboards.linkLabel": "Nginx 指标仪表板", - "home.tutorials.nginxMetrics.longDescription": "Metricbeat 模块 `nginx` 从 Nginx HTTP 服务器提取内部指标。该模块从 {statusModuleLink}(必须在 Nginx 中已启用)生成的网页收集服务器状态数据。[了解详情]({learnMoreLink})。", + "home.tutorials.nginxMetrics.longDescription": "Metricbeat 模块 `nginx` 从 Nginx HTTP 服务器提取指标。该模块从 {statusModuleLink}(必须在 Nginx 中已启用)生成的网页收集服务器状态数据。[了解详情]({learnMoreLink})。", "home.tutorials.nginxMetrics.nameTitle": "Nginx 指标", - "home.tutorials.nginxMetrics.shortDescription": "从 Nginx HTTP 服务器提取内部指标。", + "home.tutorials.nginxMetrics.shortDescription": "使用 Metricbeat 从 Nginx HTTP 服务器收集指标。", "home.tutorials.o365Logs.artifacts.dashboards.linkLabel": "O365 审计仪表板", "home.tutorials.o365Logs.longDescription": "此模块适用于通过 Office 365 API 终结点之一接收的 Office 365 日志。当前其支持从 Office 365 管理活动 API 开放 的 Office 365 和 Azure AD 中收集的 用户、管理员、系统、策略操作和事件。 [了解详情]({learnMoreLink})。", "home.tutorials.o365Logs.nameTitle": "Office 365 日志", - "home.tutorials.o365Logs.shortDescription": "通过 Office 365 API 收集 Office 365 活动日志。", + "home.tutorials.o365Logs.shortDescription": "使用 Filebeat 从 Office 365 收集并解析日志。", "home.tutorials.oktaLogs.artifacts.dashboards.linkLabel": "Okta 概览", "home.tutorials.oktaLogs.longDescription": "Okta 模块从 [Okta API](https://developer.okta.com/docs/reference/) 收集事件。 具体来说,其支持从 [Okta 系统日志 API](https://developer.okta.com/docs/reference/api/system-log/) 读取信息。[了解详情]({learnMoreLink})。", "home.tutorials.oktaLogs.nameTitle": "Okta 日志", - "home.tutorials.oktaLogs.shortDescription": "通过 Okta API 收集 Okta 系统日志。", + "home.tutorials.oktaLogs.shortDescription": "使用 Filebeat 从 Okta API 收集并解析日志。", "home.tutorials.openmetricsMetrics.longDescription": "Metricbeat 模块 `openmetrics` 从提供 OpenMetrics 格式指标的终端提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.openmetricsMetrics.nameTitle": "OpenMetrics 指标", - "home.tutorials.openmetricsMetrics.shortDescription": "从提供 OpenMetrics 格式指标的终端提取指标。", + "home.tutorials.openmetricsMetrics.shortDescription": "使用 Metricbeat 从提供 OpenMetrics 格式指标的终端收集指标。", "home.tutorials.oracleMetrics.artifacts.application.label": "Discover", - "home.tutorials.oracleMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Oracle 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.oracleMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Oracle 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.oracleMetrics.nameTitle": "Oracle 指标", - "home.tutorials.oracleMetrics.shortDescription": "从 Oracle 服务器提取内部指标。", + "home.tutorials.oracleMetrics.shortDescription": "使用 Metricbeat 从 Oracle 服务器收集指标。", "home.tutorials.osqueryLogs.artifacts.dashboards.linkLabel": "Osquery 合规包", "home.tutorials.osqueryLogs.longDescription": "该模块收集并解码由 [osqueryd](https://osquery.readthedocs.io/en/latest/introduction/using-osqueryd/) 生成的 JSON 格式结果日志。要设置 osqueryd,请按照您所用操作系统对应的 osquery 安装说明执行操作,并配置 `filesystem` 日志记录驱动程序(默认)。 确保启用了 UTC 时间戳。[了解详情]({learnMoreLink})。", "home.tutorials.osqueryLogs.nameTitle": "Osquery 日志", - "home.tutorials.osqueryLogs.shortDescription": "收集 JSON 格式的 osquery 日志。", + "home.tutorials.osqueryLogs.shortDescription": "使用 Filebeat 从 Osquery 收集并解析日志。", "home.tutorials.panwLogs.artifacts.dashboards.linkLabel": "PANW 网络流", "home.tutorials.panwLogs.longDescription": "此模块适用于通过 Syslog 接收或从文件中读取的 Palo Alto Networks PAN-OS 防火墙监测日志。目前其支持流量和威胁类型的消息。[了解详情]({learnMoreLink})。", "home.tutorials.panwLogs.nameTitle": "Palo Alto Networks PAN-OS 日志", - "home.tutorials.panwLogs.shortDescription": "通过 syslog 或从日志文件中收集 Palo Alto Networks PAN-OS 威胁和流量日志。", - "home.tutorials.phpFpmMetrics.longDescription": "Metricbeat 模块 `php_fpm` 从 PHP-FPM 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.panwLogs.shortDescription": "使用 Filebeat 从 Palo Alto Networks PAN-OS 收集并解析威胁和流量。", + "home.tutorials.phpFpmMetrics.longDescription": "Metricbeat 模块 `php_fpm` 从 PHP-FPM 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.phpFpmMetrics.nameTitle": "PHP-FPM 指标", - "home.tutorials.phpFpmMetrics.shortDescription": "从 PHP-FPM 提取内部指标。", + "home.tutorials.phpFpmMetrics.shortDescription": "使用 Metricbeat 从 PHP-FPM 收集指标。", "home.tutorials.postgresqlLogs.artifacts.dashboards.linkLabel": "PostgreSQL 日志仪表板", "home.tutorials.postgresqlLogs.longDescription": "Filebeat 模块 `postgresql` 解析 PostgreSQL 创建的错误和慢查询日志。[了解详情]({learnMoreLink})。", "home.tutorials.postgresqlLogs.nameTitle": "PostgreSQL 日志", - "home.tutorials.postgresqlLogs.shortDescription": "收集并解析 PostgreSQL 创建的错误和慢查询日志。", - "home.tutorials.postgresqlMetrics.longDescription": "Metricbeat 模块 `postgresql` 从 PostgreSQL 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.postgresqlLogs.shortDescription": "使用 Filebeat 从 PostgreSQL 服务器收集并解析日志。", + "home.tutorials.postgresqlMetrics.longDescription": "Metricbeat 模块 `postgresql` 从 PostgreSQL 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.postgresqlMetrics.nameTitle": "PostgreSQL 指标", - "home.tutorials.postgresqlMetrics.shortDescription": "从 PostgreSQL 提取内部指标。", + "home.tutorials.postgresqlMetrics.shortDescription": "使用 Metricbeat 从 PostgreSQL 服务器收集指标。", "home.tutorials.prometheusMetrics.artifacts.application.label": "Discover", "home.tutorials.prometheusMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Prometheus 终端提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.prometheusMetrics.nameTitle": "Prometheus 指标", - "home.tutorials.prometheusMetrics.shortDescription": "从 Prometheus 导出器提取指标。", + "home.tutorials.prometheusMetrics.shortDescription": "使用 Metricbeat 从 Prometheus 导出器收集指标。", "home.tutorials.rabbitmqLogs.artifacts.application.label": "Discover", "home.tutorials.rabbitmqLogs.longDescription": "这是用于解析 [RabbitMQ 日志文件](https://www.rabbitmq.com/logging.html)的模块。[了解更多]({learnMoreLink})。", "home.tutorials.rabbitmqLogs.nameTitle": "RabbitMQ 日志", - "home.tutorials.rabbitmqLogs.shortDescription": "收集 RabbitMQ 日志。", + "home.tutorials.rabbitmqLogs.shortDescription": "使用 Filebeat 从 RabbitMQ 服务器收集并解析日志。", "home.tutorials.rabbitmqMetrics.artifacts.dashboards.linkLabel": "RabbitMQ 指标仪表板", - "home.tutorials.rabbitmqMetrics.longDescription": "Metricbeat 模块 `rabbitmq` 从 RabbitMQ 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.rabbitmqMetrics.longDescription": "Metricbeat 模块 `rabbitmq` 从 RabbitMQ 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.rabbitmqMetrics.nameTitle": "RabbitMQ 指标", - "home.tutorials.rabbitmqMetrics.shortDescription": "从 RabbitMQ 服务器提取内部指标。", + "home.tutorials.rabbitmqMetrics.shortDescription": "使用 Metricbeat 从 RabbitMQ 服务器收集指标。", "home.tutorials.radwareLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.radwareLogs.longDescription": "这是用于通过 Syslog 或文件接收 Radware DefensePro 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.radwareLogs.nameTitle": "Radware DefensePro 日志", - "home.tutorials.radwareLogs.shortDescription": "通过 Syslog 或文件收集 Radware DefensePro 日志。", + "home.tutorials.radwareLogs.shortDescription": "使用 Filebeat 从 Radware DefensePro 收集并解析日志。", "home.tutorials.redisenterpriseMetrics.artifacts.application.label": "Discover", - "home.tutorials.redisenterpriseMetrics.longDescription": "Metricbeat 模块 `redisenterprise` 从 Redis Enterprise 服务器提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.redisenterpriseMetrics.longDescription": "Metricbeat 模块 `redisenterprise` 从 Redis Enterprise 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.redisenterpriseMetrics.nameTitle": "Redis Enterprise 指标", - "home.tutorials.redisenterpriseMetrics.shortDescription": "从 Redis Enterprise 服务器提取监测指标。", + "home.tutorials.redisenterpriseMetrics.shortDescription": "使用 Metricbeat 从 Redis Enterprise 服务器收集指标。", "home.tutorials.redisLogs.artifacts.dashboards.linkLabel": "Redis 日志仪表板", "home.tutorials.redisLogs.longDescription": "Filebeat 模块 `redis` 解析 Redis 创建的错误和慢查询日志。为了使 Redis 写入错误日志,确保 Redis 配置文件中的 `logfile` 选项设置为 `redis-server.log`。通过 `SLOWLOG` 命令可直接从 Redis 读取慢查询日志。为了使 Redis 记录慢查询日志,确保设置 `slowlog-log-slower-than` 选项。请注意,`slowlog` 是实验性文件集。[了解详情]({learnMoreLink})。", "home.tutorials.redisLogs.nameTitle": "Redis 日志", - "home.tutorials.redisLogs.shortDescription": "收集并解析 Redis 创建的错误和慢查询日志。", + "home.tutorials.redisLogs.shortDescription": "使用 Filebeat 从 Redis 服务器收集并解析日志。", "home.tutorials.redisMetrics.artifacts.dashboards.linkLabel": "Redis 指标仪表板", - "home.tutorials.redisMetrics.longDescription": "Metricbeat 模块 `redis` 从 Redis 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.redisMetrics.longDescription": "Metricbeat 模块 `redis` 从 Redis 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.redisMetrics.nameTitle": "Redis 指标", - "home.tutorials.redisMetrics.shortDescription": "从 Redis 提取内部指标。", + "home.tutorials.redisMetrics.shortDescription": "使用 Metricbeat 从 Redis 服务器收集指标。", "home.tutorials.santaLogs.artifacts.dashboards.linkLabel": "Santa 概览", "home.tutorials.santaLogs.longDescription": "该模块从 [Google Santa](https://github.com/google/santa)(一种适用于 macOS 的安全工具,监测进程执行并将二进制文件列入黑名单/白名单)收集并解析日志。[了解详情]({learnMoreLink})。", "home.tutorials.santaLogs.nameTitle": "Google Santa 日志", - "home.tutorials.santaLogs.shortDescription": "收集与 MacOS 上的进程执行有关的 Google Santa 日志。", + "home.tutorials.santaLogs.shortDescription": "使用 Filebeat 从 Google Santa 系统收集并解析日志。", "home.tutorials.sonicwallLogs.longDescription": "这是用于通过 Syslog 或文件接收 Sonicwall-FW 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.sonicwallLogs.nameTitle": "Sonicwall FW 日志", - "home.tutorials.sonicwallLogs.shortDescription": "通过 syslog 或从文件收集 Sonicwall-FW 日志。", + "home.tutorials.sonicwallLogs.shortDescription": "使用 Filebeat 从 Sonicwall-FW 收集并解析日志。", "home.tutorials.sophosLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.sophosLogs.longDescription": "这是用于 Sophos Products 的模块,当前支持以 syslog 格式发送的 XG SFOS 日志。[了解详情]({learnMoreLink})。", "home.tutorials.sophosLogs.nameTitle": "Sophos 日志", - "home.tutorials.sophosLogs.shortDescription": "通过 syslog 收集 Sophos XG SFOS 日志。", + "home.tutorials.sophosLogs.shortDescription": "使用 Filebeat 从 Sophos XG SFOS 收集并解析日志。", "home.tutorials.squidLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.squidLogs.longDescription": "这是用于通过 Syslog 或文件接收 Squid 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.squidLogs.nameTitle": "Squid 日志", - "home.tutorials.squidLogs.shortDescription": "通过 syslog 或文件收集 Squid 日志。", + "home.tutorials.squidLogs.shortDescription": "使用 Filebeat 从 Squid 服务器收集并解析日志。", "home.tutorials.stanMetrics.artifacts.dashboards.linkLabel": "Stan 指标仪表板", - "home.tutorials.stanMetrics.longDescription": "Metricbeat 模块 `stan` 从 STAN 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.stanMetrics.longDescription": "Metricbeat 模块 `stan` 从 STAN 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.stanMetrics.nameTitle": "STAN 指标", - "home.tutorials.stanMetrics.shortDescription": "从 STAN 服务器提取监测指标。", - "home.tutorials.statsdMetrics.longDescription": "Metricbeat 模块 `statsd` 从 statsd 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.stanMetrics.shortDescription": "使用 Metricbeat 从 STAN 服务器收集指标。", + "home.tutorials.statsdMetrics.longDescription": "Metricbeat 模块 `statsd` 从 statsd 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.statsdMetrics.nameTitle": "Statsd 指标", - "home.tutorials.statsdMetrics.shortDescription": "从 statsd 提取监测指标。", + "home.tutorials.statsdMetrics.shortDescription": "使用 Metricbeat 从 Statsd 服务器收集指标。", "home.tutorials.suricataLogs.artifacts.dashboards.linkLabel": "Suricata 事件概览", "home.tutorials.suricataLogs.longDescription": "这是用于 Suricata IDS/IPS/NSM 日志的模块。其解析 [Suricata Eve JSON 格式](https://suricata.readthedocs.io/en/latest/output/eve/eve/eve-json-format.html)的日志。[了解详情]({learnMoreLink})。", "home.tutorials.suricataLogs.nameTitle": "Suricata 日志", - "home.tutorials.suricataLogs.shortDescription": "收集 Suricata IDS/IPS/NSM 日志。", + "home.tutorials.suricataLogs.shortDescription": "使用 Filebeat 从 Suricata IDS/IPS/NSM 收集并解析日志。", "home.tutorials.systemLogs.artifacts.dashboards.linkLabel": "系统 Syslog 仪表板", "home.tutorials.systemLogs.longDescription": "该模块收集并解析常见 Unix/Linux 分发的系统日志服务创建的日志。[了解详情]({learnMoreLink})。", "home.tutorials.systemLogs.nameTitle": "系统日志", @@ -3650,54 +2987,55 @@ "home.tutorials.systemMetrics.artifacts.dashboards.linkLabel": "系统指标仪表板", "home.tutorials.systemMetrics.longDescription": "Metricbeat 模块 `system` 从主机收集 CPU、内存、网络和磁盘统计信息。其收集整个系统的统计信息以及每个进程和文件系统的统计信息。[了解详情]({learnMoreLink})。", "home.tutorials.systemMetrics.nameTitle": "系统指标", - "home.tutorials.systemMetrics.shortDescription": "从主机上收集 CPU、内存、网络和磁盘统计信息。", + "home.tutorials.systemMetrics.shortDescription": "使用 Metricbeat 从系统主机收集 CPU、内存、网络和磁盘指标。", "home.tutorials.tomcatLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.tomcatLogs.longDescription": "这是用于通过 Syslog 或文件接收 Apache Tomcat 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.tomcatLogs.nameTitle": "Tomcat 日志", - "home.tutorials.tomcatLogs.shortDescription": "通过 syslog 或文件收集 Apache Tomcat 日志。", + "home.tutorials.tomcatLogs.shortDescription": "使用 Filebeat 从 Apache Tomcat 服务器收集并解析日志。", "home.tutorials.traefikLogs.artifacts.dashboards.linkLabel": "Traefik 访问日志", "home.tutorials.traefikLogs.longDescription": "该模块解析 [Træfik](https://traefik.io/) 创建的访问日志。[了解详情]({learnMoreLink})。", "home.tutorials.traefikLogs.nameTitle": "Traefik 日志", - "home.tutorials.traefikLogs.shortDescription": "收集 Traefik 访问日志。", - "home.tutorials.traefikMetrics.longDescription": "Metricbeat 模块 `traefik` 从 Traefik 提取监测指标。[了解详情]({learnMoreLink})。", + "home.tutorials.traefikLogs.shortDescription": "使用 Filebeat 从 Traefik 收集并解析日志。", + "home.tutorials.traefikMetrics.longDescription": "Metricbeat 模块 `traefik` 从 Traefik 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.traefikMetrics.nameTitle": "Traefik 指标", - "home.tutorials.traefikMetrics.shortDescription": "从 Traefik 提取监测指标。", + "home.tutorials.traefikMetrics.shortDescription": "使用 Metricbeat 从 Traefik 收集指标。", "home.tutorials.uptimeMonitors.artifacts.dashboards.linkLabel": "Uptime 应用", "home.tutorials.uptimeMonitors.longDescription": "通过主动探测来监测服务的可用性。 提供 URL 列表后,Heartbeat 询问这个简单问题:你是否保持连接? [了解详情]({learnMoreLink})。", "home.tutorials.uptimeMonitors.nameTitle": "运行时间监测", - "home.tutorials.uptimeMonitors.shortDescription": "监测服务的可用性", + "home.tutorials.uptimeMonitors.shortDescription": "使用 Heartbeat 监测服务可用性。", "home.tutorials.uwsgiMetrics.artifacts.dashboards.linkLabel": "uWSGI 指标仪表板", - "home.tutorials.uwsgiMetrics.longDescription": "Metricbeat 模块 `uwsgi` 从 uWSGI 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.uwsgiMetrics.longDescription": "Metricbeat 模块 `uwsgi` 从 uWSGI 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.uwsgiMetrics.nameTitle": "uWSGI 指标", - "home.tutorials.uwsgiMetrics.shortDescription": "从 uWSGI 服务器提取内部指标。", + "home.tutorials.uwsgiMetrics.shortDescription": "使用 Metricbeat 从 uWSGI 服务器收集指标。", "home.tutorials.vsphereMetrics.artifacts.application.label": "Discover", - "home.tutorials.vsphereMetrics.longDescription": "Metricbeat 模块 `vsphere` 从 vSphere 集群提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.vsphereMetrics.longDescription": "Metricbeat 模块 `vsphere` 从 vSphere 集群提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.vsphereMetrics.nameTitle": "vSphere 指标", - "home.tutorials.vsphereMetrics.shortDescription": "从 vSphere 提取内部指标。", + "home.tutorials.vsphereMetrics.shortDescription": "使用 Metricbeat 从 vSphere 收集指标。", "home.tutorials.windowsEventLogs.artifacts.application.label": "SIEM 应用", "home.tutorials.windowsEventLogs.longDescription": "使用 Winlogbeat 从 Windows 事件日志收集日志。[了解详情]({learnMoreLink})。", "home.tutorials.windowsEventLogs.nameTitle": "Windows 事件日志", - "home.tutorials.windowsEventLogs.shortDescription": "从 Windows 事件日志提取日志。", + "home.tutorials.windowsEventLogs.shortDescription": "使用 WinLogBeat 从 Windows 事件日志收集并解析日志。", "home.tutorials.windowsMetrics.artifacts.application.label": "Discover", - "home.tutorials.windowsMetrics.longDescription": "Metricbeat 模块 `windows` 从 Windows 提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.windowsMetrics.longDescription": "Metricbeat 模块 `windows` 从 Windows 提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.windowsMetrics.nameTitle": "Windows 指标", - "home.tutorials.windowsMetrics.shortDescription": "从 Windows 提取内部指标。", + "home.tutorials.windowsMetrics.shortDescription": "使用 Metricbeat 从 Windows 收集指标。", "home.tutorials.zeekLogs.artifacts.dashboards.linkLabel": "Zeek 概览", "home.tutorials.zeekLogs.longDescription": "这是用于 Zeek(以前称为 Bro)的模块。其解析 [Zeek JSON 格式](https://www.zeek.org/manual/release/logs/index.html)的日志。 [了解详情]({learnMoreLink})。", "home.tutorials.zeekLogs.nameTitle": "Zeek 日志", - "home.tutorials.zeekLogs.shortDescription": "收集 Zeek 网络安全监测日志。", + "home.tutorials.zeekLogs.shortDescription": "使用 Filebeat 从 Zeek Network Security 收集并解析日志。", "home.tutorials.zookeeperMetrics.artifacts.application.label": "Discover", - "home.tutorials.zookeeperMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Zookeeper 服务器提取内部指标。[了解详情]({learnMoreLink})。", + "home.tutorials.zookeeperMetrics.longDescription": "Metricbeat 模块 `{moduleName}` 从 Zookeeper 服务器提取指标。[了解详情]({learnMoreLink})。", "home.tutorials.zookeeperMetrics.nameTitle": "Zookeeper 指标", - "home.tutorials.zookeeperMetrics.shortDescription": "从 Zookeeper 服务器提取内部指标。", + "home.tutorials.zookeeperMetrics.shortDescription": "使用 Metricbeat 从 Zookeeper 服务器收集指标。", "home.tutorials.zscalerLogs.artifacts.dashboards.linkLabel": "Security 应用", "home.tutorials.zscalerLogs.longDescription": "这是用于通过 Syslog 或文件接收 Zscaler NSS 日志的模块。[了解详情]({learnMoreLink})。", "home.tutorials.zscalerLogs.nameTitle": "Zscaler 日志", - "home.tutorials.zscalerLogs.shortDescription": "这是用于通过 Syslog 或文件接收 Zscaler NSS 日志的模块。", + "home.tutorials.zscalerLogs.shortDescription": "使用 Filebeat 从 Zscaler NSS 收集并解析日志。", "home.welcomeTitle": "欢迎使用 Elastic", "indexPatternEditor.aliasLabel": "别名", "indexPatternEditor.createIndex.noMatch": "名称必须匹配一个或多个数据流、索引或索引别名。", "indexPatternEditor.createIndexPattern.emptyState.checkDataButton": "检查新数据", + "indexPatternEditor.createIndexPattern.emptyState.createAnywayTxt": "您还可以{link}", "indexPatternEditor.createIndexPattern.emptyState.haveData": "假设您已有数据?", "indexPatternEditor.createIndexPattern.emptyState.integrationCardDescription": "从各种源添加数据。", "indexPatternEditor.createIndexPattern.emptyState.integrationCardTitle": "添加集成", @@ -3991,7 +3329,7 @@ "indexPatternManagement.editIndexPattern.timeFilterLabel.timeFilterDetail": "查看和编辑 {indexPatternTitle} 中的字段。字段属性,如类型和可搜索性,基于 Elasticsearch 中的 {mappingAPILink}。", "indexPatternManagement.fieldTypeConflict": "字段类型冲突", "indexPatternManagement.formatHeader": "格式", - "indexPatternManagement.formatLabel": "设置格式允许您控制特定值的显示方式。其还会导致值完全更改,并阻止 Discover 中的突出显示起作用。", + "indexPatternManagement.formatLabel": "格式设置控制值的显示方式。更改此设置还可能影响字段值和字段在 Discover 中的突出显示。", "indexPatternManagement.header.runtimeLink": "运行时字段", "indexPatternManagement.indexNameLabel": "索引名称", "indexPatternManagement.indexPatterns.badge.readOnly.text": "只读", @@ -4012,6 +3350,7 @@ "indexPatternManagement.scriptingLanguages.errorFetchingToastDescription": "从 Elasticsearch 获取可用的脚本语言时出错", "indexPatternManagement.scriptInvalidErrorMessage": "脚本无效。查看脚本预览以了解详情", "indexPatternManagement.scriptLabel": "脚本", + "indexPatternManagement.scriptLabelAriaLabel": "脚本编辑器", "indexPatternManagement.scriptRequiredErrorMessage": "“脚本”必填", "indexPatternManagement.syntax.default.formatLabel": "doc['some_field'].value", "indexPatternManagement.syntax.defaultLabel.defaultDetail": "默认情况下,Kibana 脚本字段使用 {painless}(一种简单且安全的脚本语言,专用于 Elasticsearch)通过以下格式访问文档中的值:", @@ -4104,6 +3443,7 @@ "inspector.requests.noRequestsLoggedDescription.elementHasNotLoggedAnyRequestsText": "该元素尚未记录任何请求。", "inspector.requests.noRequestsLoggedDescription.whatDoesItUsuallyMeanText": "这通常表示无需提取任何数据,或该元素尚未开始提取数据。", "inspector.requests.noRequestsLoggedTitle": "未记录任何请求", + "inspector.requests.openInConsoleLabel": "在 Console 中打开", "inspector.requests.requestFailedTooltipTitle": "请求失败", "inspector.requests.requestInProgressAriaLabel": "进行中的请求", "inspector.requests.requestsDescriptionTooltip": "查看已收集数据的请求", @@ -4119,6 +3459,16 @@ "inspector.requests.statisticsTabLabel": "统计信息", "inspector.title": "检查器", "inspector.view": "视图:{viewName}", + "kbnConfig.deprecations.conflictSetting.manualStepOneMessage": "确保“{fullNewPath}”包含配置文件、CLI 标志或环境变量中的正确值(仅适用于 Docker)。", + "kbnConfig.deprecations.conflictSetting.manualStepTwoMessage": "从配置中移除“{fullOldPath}”。", + "kbnConfig.deprecations.conflictSettingMessage": "设置“{fullOldPath}”已替换为“{fullNewPath}”。但是,这两个键都存在。忽略“{fullOldPath}”", + "kbnConfig.deprecations.deprecatedSetting.manualStepOneMessage": "在升级到 {removeBy} 之前,请从 Kibana 配置文件、CLI 标志或环境变量中移除“{fullPath}”(仅适用于 Docker)。", + "kbnConfig.deprecations.deprecatedSettingMessage": "配置“{fullPath}”已过时,将在 {removeBy} 中移除。", + "kbnConfig.deprecations.deprecatedSettingTitle": "设置“{deprecationPath}”已过时", + "kbnConfig.deprecations.replacedSetting.manualStepOneMessage": "在 Kibana 配置文件、CLI 标志或环境变量中将“{fullOldPath}”替换为“{fullNewPath}”(仅适用于 Docker)。", + "kbnConfig.deprecations.replacedSettingMessage": "设置“{fullOldPath}”已替换为“{fullNewPath}”", + "kbnConfig.deprecations.unusedSetting.manualStepOneMessage": "从 Kibana 配置文件、CLI 标志或环境变量中移除“{fullPath}”(仅适用于 Docker)。", + "kbnConfig.deprecations.unusedSettingMessage": "您不再需要配置“{fullPath}”。", "kibana_legacy.notify.toaster.errorStatusMessage": "错误 {errStatus} {errStatusText}:{errMessage}", "kibana_legacy.notify.toaster.unavailableServerErrorMessage": "HTTP 请求无法连接。请检查 Kibana 服务器是否正在运行以及您的浏览器是否具有有效的连接,或请联系您的系统管理员。", "kibana_utils.history.savedObjectIsMissingNotificationMessage": "已保存对象缺失", @@ -4134,7 +3484,6 @@ "kibana-react.exitFullScreenButton.exitFullScreenModeButtonAriaLabel": "退出全屏模式", "kibana-react.exitFullScreenButton.exitFullScreenModeButtonText": "退出全屏", "kibana-react.exitFullScreenButton.fullScreenModeDescription": "在全屏模式下,按 ESC 键可退出。", - "kibana-react.kbnOverviewPageHeader.addDataButtonLabel": "添加数据", "kibana-react.kbnOverviewPageHeader.devToolsButtonLabel": "开发工具", "kibana-react.kbnOverviewPageHeader.stackManagementButtonLabel": "管理", "kibana-react.kibanaCodeEditor.ariaLabel": "代码编辑器", @@ -4148,9 +3497,12 @@ "kibana-react.noDataPage.cantDecide": "不知道使用哪一个?{link}", "kibana-react.noDataPage.cantDecide.link": "请参阅我们的文档以了解更多信息。", "kibana-react.noDataPage.elasticAgentCard.description": "使用 Elastic 代理以简单统一的方式从您的计算机中收集数据。", + "kibana-react.noDataPage.elasticAgentCard.noPermission.description": "尚未启用此集成。您的管理员具有打开它所需的权限。", + "kibana-react.noDataPage.elasticAgentCard.noPermission.title": "请联系您的管理员", "kibana-react.noDataPage.elasticAgentCard.title": "添加 Elastic 代理", "kibana-react.noDataPage.intro": "添加您的数据以开始,或{link}{solution}。", "kibana-react.noDataPage.intro.link": "了解详情", + "kibana-react.noDataPage.noDataCard.description": "继续,而不收集数据", "kibana-react.noDataPage.noDataPage.recommended": "推荐", "kibana-react.noDataPage.welcomeTitle": "欢迎使用 Elastic {solution}!", "kibana-react.pageFooter.changeDefaultRouteSuccessToast": "登陆页面已更新", @@ -4188,7 +3540,9 @@ "kibanaOverview.manageData.sectionTitle": "管理您的数据", "kibanaOverview.more.title": "Elastic 让您事半功倍", "kibanaOverview.news.title": "最新动态", + "kibanaOverview.noDataConfig.description": "使用 Elastic 代理或 Beats 收集数据并构建分析解决方案。", "kibanaOverview.noDataConfig.solutionName": "分析", + "kibanaOverview.noDataConfig.title": "添加集成", "lists.exceptions.doesNotExistOperatorLabel": "不存在", "lists.exceptions.existsOperatorLabel": "存在", "lists.exceptions.isInListOperatorLabel": "在列表中", @@ -4294,6 +3648,8 @@ "savedObjects.saveModalOrigin.returnToOriginLabel": "返回", "savedObjects.saveModalOrigin.saveAndReturnLabel": "保存并返回", "savedObjectsManagement.breadcrumb.index": "已保存对象", + "savedObjectsManagement.copyToSpace.actionDescription": "在一个或多个工作区中创建此已保存对象的副本", + "savedObjectsManagement.copyToSpace.actionTitle": "复制到工作区", "savedObjectsManagement.deleteConfirm.modalDeleteButtonLabel": "删除", "savedObjectsManagement.deleteConfirm.modalDescription": "此操作会将对象从 Kibana 永久移除。", "savedObjectsManagement.deleteConfirm.modalTitle": "删除“{title}”?", @@ -4307,7 +3663,10 @@ "savedObjectsManagement.importSummary.overwrittenOutcomeLabel": "已覆盖", "savedObjectsManagement.importSummary.warnings.defaultButtonLabel": "执行", "savedObjectsManagement.managementSectionLabel": "已保存对象", + "savedObjectsManagement.objects.savedObjectsDescription": "导入、导出和管理您的已保存搜索、可视化和仪表板。", "savedObjectsManagement.objects.savedObjectsTitle": "已保存对象", + "savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.content": "{objectCount, plural, other {# 个对象}}处于隐藏状态,无法删除。已将其从表摘要中排除。", + "savedObjectsManagement.objectsTable.deleteConfirmModal.cannotDeleteCallout.title": "一些对象无法删除", "savedObjectsManagement.objectsTable.deleteConfirmModal.sharedObjectsCallout.content": "共享对象已从其所在的各个工作区中移除。", "savedObjectsManagement.objectsTable.deleteConfirmModal.sharedObjectsCallout.title": "{sharedObjectsCount, plural, one {# 个已保存对象已共享} other {您的已保存对象有 # 个已共享}}", "savedObjectsManagement.objectsTable.deleteSavedObjectsConfirmModal.cancelButtonLabel": "取消", @@ -4402,10 +3761,15 @@ "savedObjectsManagement.objectsTable.unableFindSavedObjectNotificationMessage": "找不到已保存对象", "savedObjectsManagement.objectsTable.unableFindSavedObjectsNotificationMessage": "找不到已保存对象", "savedObjectsManagement.objectView.unableFindSavedObjectNotificationMessage": "找不到已保存对象", + "savedObjectsManagement.shareToSpace.actionDescription": "将此已保存对象共享到一个或多个工作区", + "savedObjectsManagement.shareToSpace.actionTitle": "共享到工作区", + "savedObjectsManagement.shareToSpace.columnDescription": "目前将此对象共享到的其他工作区", + "savedObjectsManagement.shareToSpace.columnTitle": "共享工作区", "savedObjectsManagement.view.fieldDoesNotExistErrorMessage": "与此对象关联的字段在该索引模式中已不存在。", "savedObjectsManagement.view.indexPatternDoesNotExistErrorMessage": "与此对象关联的索引模式已不存在。", "savedObjectsManagement.view.savedObjectProblemErrorMessage": "此已保存对象有问题", "savedObjectsManagement.view.savedSearchDoesNotExistErrorMessage": "与此对象关联的已保存搜索已不存在。", + "savedObjectsManagement.view.viewItemButtonLabel": "查看“{title}”", "share.advancedSettings.csv.quoteValuesText": "在 CSV 导出中是否应使用引号引起值?", "share.advancedSettings.csv.quoteValuesTitle": "使用引号引起 CSV 值", "share.advancedSettings.csv.separatorText": "使用此字符串分隔导出的值", @@ -4456,8 +3820,11 @@ "telemetry.optInNoticeSeenErrorToastText": "关闭声明时发生错误", "telemetry.optInSuccessOff": "使用情况数据收集已关闭。", "telemetry.optInSuccessOn": "使用情况数据收集已打开。", + "telemetry.provideUsageDataAriaName": "提供使用情况数据", + "telemetry.provideUsageDataTitle": "提供使用情况数据", "telemetry.readOurUsageDataPrivacyStatementLinkText": "隐私声明", - "telemetry.securityData": "终端安全数据", + "telemetry.securityData": "安全数据", + "telemetry.seeExampleOfClusterDataAndEndpointSecuity": "查看我们收集的{clusterData}和{securityData}示例。", "telemetry.telemetryBannerDescription": "想帮助我们改进 Elastic Stack?数据使用情况收集当前已禁用。启用使用情况数据收集可帮助我们管理并改善产品和服务。有关更多详情,请参阅我们的{privacyStatementLink}。", "telemetry.telemetryConfigAndLinkDescription": "启用使用情况数据收集可帮助我们管理并改善产品和服务。有关更多详情,请参阅我们的{privacyStatementLink}。", "telemetry.telemetryOptedInDisableUsage": "请在此禁用使用情况数据", @@ -4519,7 +3886,7 @@ "timelion.help.functions.hideHelpText": "默认隐藏序列", "timelion.help.functions.holt.args.alphaHelpText": "\n 平滑权重,0 到 1。\n 增加 alpha 值会使新序列更接近原始序列。\n 降低 alpha 值会使序列更平滑", "timelion.help.functions.holt.args.betaHelpText": "\n 趋势权重,0 到 1。\n 增加 beta 值会使上升/下降的线继续上升/下降。\n 降低 beta 值会使函数更快地学习新趋势", - "timelion.help.functions.holt.args.gammaHelpText": "季节性权重,0 到 1。您的数据是不是看起来像波浪?\n 增加此值会增加最近季节的重要性,从而更快地更改波形。\n 降低此值会减少新季节的重要性,从而使历史数据更加重要。", + "timelion.help.functions.holt.args.gammaHelpText": "\n 季节性权重,0 到 1。您的数据是不是看起来像波浪?\n 增加此值会增加最近季节的重要性,从而更快地更改波形。\n 降低此值会减少新季节的重要性,从而使历史数据更加重要。\n ", "timelion.help.functions.holt.args.sampleHelpText": "\n 在季节性序列中开始“预测”前要采样的季节数。\n (仅适用于 gamma,默认值:all)", "timelion.help.functions.holt.args.seasonHelpText": "季节的时长,例如,如果模式每周重复一次,则为 1w。(仅适用于 gamma)", "timelion.help.functions.holtHelpText": "\n 对序列开头采样,并使用它通过若干可选参数来\n 预测后续事件。通常,此方法不会真正预测未来,\n 而是根据过去的数据预测当前会发生的事件,\n 这对于异常检测很有帮助。注意,将使用预测值填充 null。", @@ -4614,6 +3981,7 @@ "timelion.serverSideErrors.colorFunction.colorNotProvidedErrorMessage": "未提供颜色", "timelion.serverSideErrors.conditionFunction.unknownOperatorErrorMessage": "运算符未知", "timelion.serverSideErrors.conditionFunction.wrongArgTypeErrorMessage": "必须为数字或 seriesList", + "timelion.serverSideErrors.errorInCell": " 在单元格 #{number} 中:{message}", "timelion.serverSideErrors.esFunction.indexNotFoundErrorMessage": "找不到 Elasticsearch 索引:{index}", "timelion.serverSideErrors.holtFunction.missingParamsErrorMessage": "必须指定季节长度,示例大小 >= 2", "timelion.serverSideErrors.holtFunction.notEnoughPointsErrorMessage": "您需要至少 2 个点才能使用双指数平滑法", @@ -4797,6 +4165,8 @@ "visDefaultEditor.options.colorSchema.howToChangeColorsDescription": "可以更改图例中的各个颜色。", "visDefaultEditor.options.colorSchema.resetColorsButtonLabel": "重置颜色", "visDefaultEditor.options.colorSchema.reverseColorSchemaLabel": "反向方案", + "visDefaultEditor.options.longLegends.maxLegendLinesLabel": "最大图例行数", + "visDefaultEditor.options.longLegends.truncateLegendTextLabel": "截断图例文本", "visDefaultEditor.options.percentageMode.documentationLabel": "Numeral.js 文档", "visDefaultEditor.options.percentageMode.numeralLabel": "格式模式", "visDefaultEditor.options.percentageMode.percentageModeLabel": "百分比模式", @@ -4849,19 +4219,11 @@ "visTypeMetric.params.style.styleTitle": "样式", "visTypeMetric.schemas.metricTitle": "指标", "visTypeMetric.schemas.splitGroupTitle": "拆分组", - "expressionMetricVis.function.dimension.splitGroup": "拆分组", - "expressionMetricVis.function.bucket.help": "存储桶维度配置", - "expressionMetricVis.function.colorMode.help": "指标的哪部分要上色", - "expressionMetricVis.function.dimension.metric": "指标", - "expressionMetricVis.function.font.help": "字体设置。", - "expressionMetricVis.function.help": "指标可视化", - "expressionMetricVis.function.metric.help": "指标维度配置", - "expressionMetricVis.function.percentageMode.help": "以百分比模式显示指标。需要设置 colorRange。", - "expressionMetricVis.function.showLabels.help": "在指标值下显示标签。", - "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.deprecation": "Visualize 中饼图的旧版图表库已弃用,自 8.0 后将不受支持。", + "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.deprecation": "Visualize 中饼图的旧版图表库已过时,在未来版本中将不受支持。", "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.description": "在 Visualize 中启用饼图的旧版图表库。", "visTypePie.advancedSettings.visualization.legacyPieChartsLibrary.name": "饼图旧版图表库", "visTypePie.controls.truncateLabel": "截断", + "visTypePie.controls.truncateTooltip": "标签位于图表之外的字符数。", "visTypePie.editors.pie.addLegendLabel": "显示图例", "visTypePie.editors.pie.decimalSliderLabel": "百分比的最大小数位数", "visTypePie.editors.pie.distinctColorsLabel": "每个切片使用不同的颜色", @@ -4882,11 +4244,13 @@ "visTypePie.function.args.isDonutHelpText": "将饼图显示为圆环图", "visTypePie.function.args.labelsHelpText": "饼图标签配置", "visTypePie.function.args.legendPositionHelpText": "将图例定位于图表的顶部、底部、左侧、右侧", + "visTypePie.function.args.maxLegendLinesHelpText": "定义每个图例项的行数", "visTypePie.function.args.metricHelpText": "指标维度配置", "visTypePie.function.args.nestedLegendHelpText": "显示更详细的图例", "visTypePie.function.args.paletteHelpText": "定义图表调色板名称", "visTypePie.function.args.splitColumnHelpText": "按列维度配置拆分", "visTypePie.function.args.splitRowHelpText": "按行维度配置拆分", + "visTypePie.function.args.truncateLegendHelpText": "定义是否将截断图例项", "visTypePie.function.dimension.metric": "切片大小", "visTypePie.function.dimension.splitcolumn": "列拆分", "visTypePie.function.dimension.splitrow": "行拆分", @@ -4908,6 +4272,8 @@ "visTypePie.legendPositions.leftText": "左", "visTypePie.legendPositions.rightText": "右", "visTypePie.legendPositions.topText": "顶部", + "visTypePie.negativeValuesFound": "饼图/圆环图无法使用负值进行呈现。", + "visTypePie.noResultsFoundTitle": "找不到结果", "visTypePie.pie.metricTitle": "切片大小", "visTypePie.pie.pieDescription": "以整体的比例比较数据。", "visTypePie.pie.pieTitle": "饼图", @@ -4932,6 +4298,7 @@ "visTypeTable.function.dimension.splitColumn": "按列拆分", "visTypeTable.function.dimension.splitRow": "按行拆分", "visTypeTable.function.help": "表可视化", + "visTypeTable.params.autoFitRow": "根据内容自动调整行数", "visTypeTable.params.defaultPercentageCol": "不显示", "visTypeTable.params.PercentageColLabel": "百分比列", "visTypeTable.params.percentageTableColumnName": "{title} 百分比", @@ -4984,6 +4351,8 @@ "visTypeTimeseries.addDeleteButtons.temporarilyDisableTooltip": "暂时禁用", "visTypeTimeseries.advancedSettings.maxBucketsText": "影响 TSVB 直方图密度。必须设置为高于“histogram:maxBars”。", "visTypeTimeseries.advancedSettings.maxBucketsTitle": "TSVB 存储桶限制", + "visTypeTimeseries.agg.aggIsNotSupportedDescription": "不再支持 {modelType} 聚合。", + "visTypeTimeseries.agg.aggIsUnsupportedForPanelConfigDescription": "现有面板配置不支持 {modelType} 聚合。", "visTypeTimeseries.aggRow.addMetricButtonTooltip": "添加指标", "visTypeTimeseries.aggRow.deleteMetricButtonTooltip": "删除指标", "visTypeTimeseries.aggSelect.aggGroups.metricAggLabel": "指标聚合", @@ -4991,6 +4360,37 @@ "visTypeTimeseries.aggSelect.aggGroups.siblingPipelineAggLabel": "同级管道聚合", "visTypeTimeseries.aggSelect.aggGroups.specialAggLabel": "特殊聚合", "visTypeTimeseries.aggSelect.selectAggPlaceholder": "选择聚合", + "visTypeTimeseries.aggUtils.averageLabel": "平均值", + "visTypeTimeseries.aggUtils.bucketScriptLabel": "存储桶脚本", + "visTypeTimeseries.aggUtils.cardinalityLabel": "基数", + "visTypeTimeseries.aggUtils.countLabel": "计数", + "visTypeTimeseries.aggUtils.cumulativeSumLabel": "累计和", + "visTypeTimeseries.aggUtils.derivativeLabel": "导数", + "visTypeTimeseries.aggUtils.deviationLabel": "标准偏差", + "visTypeTimeseries.aggUtils.filterRatioLabel": "筛选比", + "visTypeTimeseries.aggUtils.mathLabel": "数学", + "visTypeTimeseries.aggUtils.maxLabel": "最大值", + "visTypeTimeseries.aggUtils.minLabel": "最小值", + "visTypeTimeseries.aggUtils.movingAverageLabel": "移动平均值", + "visTypeTimeseries.aggUtils.overallAverageLabel": "总体平均值", + "visTypeTimeseries.aggUtils.overallMaxLabel": "总体最大值", + "visTypeTimeseries.aggUtils.overallMinLabel": "总体最大值", + "visTypeTimeseries.aggUtils.overallStdDeviationLabel": "总体标准偏差", + "visTypeTimeseries.aggUtils.overallSumLabel": "总和", + "visTypeTimeseries.aggUtils.overallSumOfSquaresLabel": "总平方和", + "visTypeTimeseries.aggUtils.overallVarianceLabel": "总体方差", + "visTypeTimeseries.aggUtils.percentileLabel": "百分位数", + "visTypeTimeseries.aggUtils.percentileRankLabel": "百分位等级", + "visTypeTimeseries.aggUtils.positiveOnlyLabel": "仅正数", + "visTypeTimeseries.aggUtils.positiveRateLabel": "计数率", + "visTypeTimeseries.aggUtils.serialDifferenceLabel": "序列差分", + "visTypeTimeseries.aggUtils.seriesAggLabel": "序列聚合", + "visTypeTimeseries.aggUtils.staticValueLabel": "静态值", + "visTypeTimeseries.aggUtils.sumLabel": "求和", + "visTypeTimeseries.aggUtils.sumOfSquaresLabel": "平方和", + "visTypeTimeseries.aggUtils.topHitLabel": "最高命中结果", + "visTypeTimeseries.aggUtils.valueCountLabel": "值计数", + "visTypeTimeseries.aggUtils.varianceLabel": "方差", "visTypeTimeseries.annotationsEditor.addDataSourceButtonLabel": "添加数据源", "visTypeTimeseries.annotationsEditor.dataSourcesLabel": "数据源", "visTypeTimeseries.annotationsEditor.fieldsLabel": "字段(必填 - 路径以逗号分隔)", @@ -5007,6 +4407,9 @@ "visTypeTimeseries.calculateLabel.countLabel": "计数", "visTypeTimeseries.calculateLabel.filterRatioLabel": "筛选比", "visTypeTimeseries.calculateLabel.mathLabel": "数学", + "visTypeTimeseries.calculateLabel.metricTypeOfMetricFieldRankLabel": "{metricField} 的 {metricTypeLabel}", + "visTypeTimeseries.calculateLabel.metricTypeOfTargetLabel": "{targetLabel} 的 {metricTypeLabel}", + "visTypeTimeseries.calculateLabel.metricTypeOfTargetWithAdditionalLabel": "{targetLabel} 的 {metricTypeLabel} ({additionalLabel})", "visTypeTimeseries.calculateLabel.positiveRateLabel": "{field} 的计数率", "visTypeTimeseries.calculateLabel.seriesAggLabel": "序列聚合 ({metricFunction})", "visTypeTimeseries.calculateLabel.staticValueLabel": "{metricValue} 的静态值", @@ -5035,6 +4438,8 @@ "visTypeTimeseries.dataFormatPicker.bytesLabel": "字节", "visTypeTimeseries.dataFormatPicker.customLabel": "定制", "visTypeTimeseries.dataFormatPicker.decimalPlacesLabel": "小数位数", + "visTypeTimeseries.dataFormatPicker.defaultLabel": "默认", + "visTypeTimeseries.dataFormatPicker.defaultLabelDescription": "应用通用格式", "visTypeTimeseries.dataFormatPicker.durationLabel": "持续时间", "visTypeTimeseries.dataFormatPicker.formatPatternHelpText": "文档", "visTypeTimeseries.dataFormatPicker.formatPatternLabel": "Numeral.js 格式模式(默认值:{defaultPattern})", @@ -5060,6 +4465,11 @@ "visTypeTimeseries.durationOptions.yearsLabel": "年", "visTypeTimeseries.emptyTextValue": "(空)", "visTypeTimeseries.error.requestForPanelFailedErrorMessage": "对此面板的请求失败", + "visTypeTimeseries.errors.fieldNotFound": "未找到字段“{field}”", + "visTypeTimeseries.errors.maxBucketsExceededErrorMessage": "您的查询尝试提取过多的数据。缩短时间范围或更改所用的时间间隔通常可解决问题。", + "visTypeTimeseries.externalUrlErrorModal.bodyMessage": "在 {kibanaConfigFileName} 中配置 {externalUrlPolicy} 以允许访问 {url}。", + "visTypeTimeseries.externalUrlErrorModal.closeButtonLabel": "关闭", + "visTypeTimeseries.externalUrlErrorModal.headerTitle": "尚未启用对此外部 URL 的访问权限", "visTypeTimeseries.fetchFields.loadIndexPatternFieldsErrorMessage": "无法加载 index_pattern 字段", "visTypeTimeseries.fieldSelect.fieldIsNotValid": "“{fieldParameter}”字段无效,无法用于当前索引。请选择新字段。", "visTypeTimeseries.fieldSelect.selectFieldPlaceholder": "选择字段......", @@ -5129,6 +4539,10 @@ "visTypeTimeseries.indexPattern.timeRange.lastValue": "最后值", "visTypeTimeseries.indexPattern.timeRange.selectTimeRange": "选择", "visTypeTimeseries.indexPattern.сoarse": "粗糙", + "visTypeTimeseries.indexPatternSelect.label": "索引模式", + "visTypeTimeseries.indexPatternSelect.switchModePopover.areaLabel": "配置索引模式选择模式", + "visTypeTimeseries.indexPatternSelect.switchModePopover.title": "索引模式选择模式", + "visTypeTimeseries.indexPatternSelect.switchModePopover.useKibanaIndices": "仅使用 Kibana 索引模式", "visTypeTimeseries.kbnVisTypes.metricsDescription": "对时间序列数据执行高级分析。", "visTypeTimeseries.kbnVisTypes.metricsTitle": "TSVB", "visTypeTimeseries.lastValueModeIndicator.lastBucketDate": "存储桶:{lastBucketDate}", @@ -5452,13 +4866,12 @@ "visTypeTimeseries.visEditorVisualization.changesHaveNotBeenAppliedMessage": "尚未应用对此可视化的更改。", "visTypeTimeseries.visEditorVisualization.changesSuccessfullyAppliedMessage": "已应用最新更改。", "visTypeTimeseries.visEditorVisualization.changesWillBeAutomaticallyAppliedMessage": "将自动应用更改。", - "visTypeTimeseries.visEditorVisualization.dataViewMode.dismissNoticeButtonText": "关闭", - "visTypeTimeseries.visEditorVisualization.dataViewMode.link": "请查看。", "visTypeTimeseries.visPicker.gaugeLabel": "仪表盘", "visTypeTimeseries.visPicker.metricLabel": "指标", "visTypeTimeseries.visPicker.tableLabel": "表", "visTypeTimeseries.visPicker.timeSeriesLabel": "时间序列", "visTypeTimeseries.visPicker.topNLabel": "排名前 N", + "visTypeTimeseries.wrongAggregationErrorMessage": "{timeRangeMode} 模式下不支持聚合 {metricType}", "visTypeTimeseries.yesButtonLabel": "是", "visTypeVega.editor.formatError": "格式化规范时出错", "visTypeVega.editor.reformatAsHJSONButtonLabel": "重新格式化为 HJSON", @@ -5504,6 +4917,7 @@ "visTypeVega.urlParser.urlShouldHaveQuerySubObjectWarningMessage": "使用 {urlObject} 应具有 {subObjectName} 子对象", "visTypeVega.vegaParser.autoSizeDoesNotAllowFalse": "{autoSizeParam} 已启用,只能通过将 {autoSizeParam} 设置为 {noneParam} 来禁用", "visTypeVega.vegaParser.baseView.externalUrlsAreNotEnabledErrorMessage": "未启用外部 URL。将 {enableExternalUrls} 添加到 {kibanaConfigFileName}", + "visTypeVega.vegaParser.baseView.externalUrlServiceErrorMessage": "ExternalUrl 服务拒绝了外部 URL [{uri}]。可以使用 {kibanaConfigFileName} 中的“{externalUrlPolicy}”设置配置外部 URL 策略。", "visTypeVega.vegaParser.baseView.functionIsNotDefinedForGraphErrorMessage": "没有为此图表定义 {funcName}", "visTypeVega.vegaParser.baseView.indexNotFoundErrorMessage": "找不到索引 {index}", "visTypeVega.vegaParser.baseView.timeValuesTypeErrorMessage": "设置时间筛选时出错:两个时间值都必须为相对日期或绝对日期。{start}、{end}", @@ -5518,6 +4932,7 @@ "visTypeVega.vegaParser.maxBoundsValueTypeWarningMessage": "{maxBoundsConfigName} 必须为具有四个数字的数组", "visTypeVega.vegaParser.notSupportedUrlTypeErrorMessage": "不支持 {urlObject}", "visTypeVega.vegaParser.notValidLibraryVersionForInputSpecWarningMessage": "输入规范使用 {schemaLibrary} {schemaVersion},但 {schemaLibrary} 的当前版本为 {libraryVersion}。", + "visTypeVega.vegaParser.notValidSchemaForInputSpec": "JSON“$schema”的 URL 不正确。请更正该 URL,然后单击“更新”。", "visTypeVega.vegaParser.paddingConfigValueTypeErrorMessage": "{configName} 应为数字", "visTypeVega.vegaParser.someKibanaConfigurationIsNoValidWarningMessage": "{configName} 无效", "visTypeVega.vegaParser.someKibanaParamValueTypeWarningMessage": "{configName} 必须为布尔值", @@ -5679,6 +5094,7 @@ "visTypeXy.function.args.addTimeMarker.help": "显示时间标记", "visTypeXy.function.args.addTooltip.help": "在悬浮时显示工具提示", "visTypeXy.function.args.args.chartType.help": "图表的类型。可以是折线图、面积图或直方图", + "visTypeXy.function.args.args.maxLegendLines.help": "定义每个图例项的最大行数", "visTypeXy.function.args.categoryAxes.help": "类别轴配置", "visTypeXy.function.args.detailedTooltip.help": "显示详细的工具提示", "visTypeXy.function.args.fillOpacity.help": "定义面积图填充透明度", @@ -5697,6 +5113,7 @@ "visTypeXy.function.args.splitRowDimension.help": "按行维度配置拆分", "visTypeXy.function.args.thresholdLine.help": "阈值线条配置", "visTypeXy.function.args.times.help": "时间标记配置", + "visTypeXy.function.args.truncateLegend.help": "定义是否会截断图例", "visTypeXy.function.args.valueAxes.help": "值轴配置", "visTypeXy.function.args.widthDimension.help": "宽度维度配置", "visTypeXy.function.args.xDimension.help": "X 轴维度配置", @@ -5799,12 +5216,14 @@ "visualizations.disabledLabVisualizationMessage": "请在高级设置中打开实验模式,以查看实验性可视化。", "visualizations.disabledLabVisualizationTitle": "{title} 为实验室可视化。", "visualizations.displayName": "可视化", + "visualizations.embeddable.inspectorTitle": "检查器", + "visualizations.embeddable.legacyURLConflict.errorMessage": "此可视化具有与旧版别名相同的 URL。请禁用别名以解决此错误:{json}", "visualizations.embeddable.placeholderTitle": "占位符标题", "visualizations.function.range.from.help": "范围起始", "visualizations.function.range.help": "生成范围对象", "visualizations.function.range.to.help": "范围结束", "visualizations.function.visDimension.accessor.help": "要使用的数据集列(列索引或列名称)", - "visualizations.function.visDimension.error.accessor": "提供的列名称无效", + "visualizations.function.visDimension.error.accessor": "提供的列名称或索引无效", "visualizations.function.visDimension.format.help": "格式", "visualizations.function.visDimension.formatParams.help": "格式参数", "visualizations.function.visDimension.help": "生成 visConfig 维度对象", @@ -5847,6 +5266,7 @@ "visualize.editor.defaultEditBreadcrumbText": "编辑可视化", "visualize.experimentalVisInfoText": "此可视化为试验性功能,不受正式发行版功能支持 SLA 的约束。如欲提供反馈,请在 {githubLink} 中创建问题。", "visualize.helpMenu.appName": "Visualize 库", + "visualize.legacyUrlConflict.objectNoun": "{visName} 可视化", "visualize.linkedToSearch.unlinkSuccessNotificationText": "已取消与已保存搜索“{searchTitle}”的链接", "visualize.listing.betaTitle": "公测版", "visualize.listing.betaTooltip": "此可视化为公测版,可能会进行更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束", @@ -5866,6 +5286,7 @@ "visualize.noMatchRoute.bannerText": "Visualize 应用程序无法识别此路由:{route}。", "visualize.noMatchRoute.bannerTitleText": "未找到页面", "visualize.pageHeading": "{chartName} {chartType} 可视化", + "visualize.reporting.defaultReportTitle": "可视化 [{date}]", "visualize.topNavMenu.cancelAndReturnButtonTooltip": "完成前放弃所做的更改", "visualize.topNavMenu.cancelButtonAriaLabel": "返回到上一个应用而不保存更改", "visualize.topNavMenu.cancelButtonLabel": "取消", @@ -5918,6 +5339,7 @@ "xpack.actions.builtin.pagerdutyTitle": "PagerDuty", "xpack.actions.builtin.serverLog.errorLoggingErrorMessage": "记录消息时出错", "xpack.actions.builtin.serverLogTitle": "服务器日志", + "xpack.actions.builtin.serviceNowITOMTitle": "ServiceNow ITOM", "xpack.actions.builtin.serviceNowITSMTitle": "ServiceNow ITSM", "xpack.actions.builtin.serviceNowSIRTitle": "ServiceNow SecOps", "xpack.actions.builtin.serviceNowTitle": "ServiceNow", @@ -5971,6 +5393,9 @@ "xpack.alerting.ruleTypeRegistry.get.missingAlertTypeError": "未注册规则类型“{id}”。", "xpack.alerting.ruleTypeRegistry.register.customRecoveryActionGroupUsageError": "无法注册规则类型 [id=\"{id}\"]。操作组 [{actionGroup}] 无法同时用作恢复和活动操作组。", "xpack.alerting.ruleTypeRegistry.register.duplicateAlertTypeError": "已注册规则类型“{id}”。", + "xpack.alerting.ruleTypeRegistry.register.invalidDefaultTimeoutAlertTypeError": "规则类型“{id}”的默认时间间隔无效:{errorMessage}。", + "xpack.alerting.ruleTypeRegistry.register.invalidMinimumTimeoutAlertTypeError": "规则类型“{id}”的最小时间间隔无效:{errorMessage}。", + "xpack.alerting.ruleTypeRegistry.register.invalidTimeoutAlertTypeError": "规则类型“{id}”的超时无效:{errorMessage}。", "xpack.alerting.ruleTypeRegistry.register.reservedActionGroupUsageError": "无法注册规则类型 [id=\"{id}\"]。操作组 [{actionGroups}] 由框架保留。", "xpack.alerting.savedObjects.goToRulesButtonText": "前往规则", "xpack.alerting.savedObjects.onImportText": "导入后必须启用 {rulesSavedObjectsLength} 个{rulesSavedObjectsLength, plural,other {规则}}。", @@ -6094,7 +5519,10 @@ "xpack.apm.alertAnnotationButtonAriaLabel": "查看告警详情", "xpack.apm.alertAnnotationCriticalTitle": "紧急告警", "xpack.apm.alertAnnotationNoSeverityTitle": "告警", + "xpack.apm.alertAnnotationTooltipExperimentalText": "实验性", + "xpack.apm.alertAnnotationTooltipMoreDetailsText": "单击以查看更多详情。", "xpack.apm.alertAnnotationWarningTitle": "警告告警", + "xpack.apm.alerting.fields.allOption": "全部", "xpack.apm.alerting.fields.environment": "环境", "xpack.apm.alerting.fields.service": "服务", "xpack.apm.alerting.fields.type": "类型", @@ -6149,6 +5577,7 @@ "xpack.apm.backendDetailThroughputChartTitle": "吞吐量", "xpack.apm.backendErrorRateChart.chartTitle": "失败事务率", "xpack.apm.backendErrorRateChart.previousPeriodLabel": "上一时段", + "xpack.apm.backendInventory.dependencyTableColumn": "依赖项", "xpack.apm.backendLatencyChart.chartTitle": "延迟", "xpack.apm.backendLatencyChart.previousPeriodLabel": "上一时段", "xpack.apm.backendThroughputChart.chartTitle": "吞吐量", @@ -6164,21 +5593,44 @@ "xpack.apm.clearFilters": "清除筛选", "xpack.apm.compositeSpanCallsLabel": ",{count} 个调用,平均 {duration}", "xpack.apm.compositeSpanDurationLabel": "平均持续时间", + "xpack.apm.correlations.cancelButtonTitle": "取消", + "xpack.apm.correlations.ccsWarningCalloutBody": "无法完全检索相关性分析的数据。仅 {version} 及更高版本支持此功能。", + "xpack.apm.correlations.ccsWarningCalloutTitle": "跨集群搜索兼容性", + "xpack.apm.correlations.correlationsTable.errorMessage": "无法提取", "xpack.apm.correlations.correlationsTable.excludeDescription": "筛除值", "xpack.apm.correlations.correlationsTable.excludeLabel": "排除", "xpack.apm.correlations.correlationsTable.filterDescription": "按值筛选", "xpack.apm.correlations.correlationsTable.filterLabel": "筛选", "xpack.apm.correlations.correlationsTable.loadingText": "正在加载", "xpack.apm.correlations.correlationsTable.noDataText": "无数据", + "xpack.apm.correlations.failedTransactions.correlationsTable.failurePercentageDescription": "字词在失败事务中显示的时间百分比。", + "xpack.apm.correlations.failedTransactions.correlationsTable.failurePercentageLabel": "失败 %", "xpack.apm.correlations.failedTransactions.correlationsTable.fieldNameLabel": "字段名称", "xpack.apm.correlations.failedTransactions.correlationsTable.fieldValueLabel": "字段值", "xpack.apm.correlations.failedTransactions.correlationsTable.impactLabel": "影响", - "xpack.apm.correlations.failedTransactions.correlationsTable.pValueLabel": "分数", + "xpack.apm.correlations.failedTransactions.correlationsTable.pValueDescription": "鉴于其在成功事务中的普及率至少获取此数量的失败事务字段名称和值的几率。", + "xpack.apm.correlations.failedTransactions.correlationsTable.pValueLabel": "p-value", + "xpack.apm.correlations.failedTransactions.correlationsTable.scoreLabel": "分数", + "xpack.apm.correlations.failedTransactions.correlationsTable.successPercentageDescription": "字词在成功事务中显示的时间百分比。", + "xpack.apm.correlations.failedTransactions.correlationsTable.successPercentageLabel": "成功 %", "xpack.apm.correlations.failedTransactions.errorTitle": "对失败的事务执行相关性时出错", + "xpack.apm.correlations.failedTransactions.helpPopover.basicExplanation": "相关性将帮助您发现哪些属性在区分事务失败与成功时具有最大影响。如果事务的 {field} 值为 {value},则认为其失败。", + "xpack.apm.correlations.failedTransactions.helpPopover.performanceExplanation": "此分析会对大量属性执行统计搜索。对于较大时间范围和具有高事务吞吐量的服务,这可能需要些时间。减少时间范围以改善性能。", + "xpack.apm.correlations.failedTransactions.helpPopover.tableExplanation": "表按分数排序,分数映射高、中或低影响级别。具有高影响级别的属性更可能造成事务失败。", + "xpack.apm.correlations.failedTransactions.helpPopover.title": "失败事务相关性", "xpack.apm.correlations.failedTransactions.highImpactText": "高", "xpack.apm.correlations.failedTransactions.lowImpactText": "低", "xpack.apm.correlations.failedTransactions.mediumImpactText": "中", - "xpack.apm.correlations.failedTransactions.panelTitle": "失败事务", + "xpack.apm.correlations.failedTransactions.panelTitle": "失败事务延迟分布", + "xpack.apm.correlations.failedTransactions.tableTitle": "相关性", + "xpack.apm.correlations.fieldContextPopover.addFilterAriaLabel": "筛留 {fieldName}:“{value}”", + "xpack.apm.correlations.fieldContextPopover.calculatedFromSampleDescription": "基于 {sampleSize} 文档样例计算", + "xpack.apm.correlations.fieldContextPopover.descriptionTooltipContent": "显示排名前 10 字段值", + "xpack.apm.correlations.fieldContextPopover.fieldTopValuesLabel": "排名前 10 值", + "xpack.apm.correlations.fieldContextPopover.removeFilterAriaLabel": "筛除 {fieldName}:“{value}”", + "xpack.apm.correlations.fieldContextPopover.topFieldValuesAriaLabel": "显示排名前 10 字段值", + "xpack.apm.correlations.latencyCorrelations.advancedStatisticsLabel": "高级统计信息", + "xpack.apm.correlations.latencyCorrelations.advancedStatisticsTooltipContent": "启用相关性结果的其他统计信息。", "xpack.apm.correlations.latencyCorrelations.correlationsTable.actionsLabel": "筛选", "xpack.apm.correlations.latencyCorrelations.correlationsTable.correlationColumnDescription": "属性的相关性分数 [0-1];分数越大,属性越会增加延迟。", "xpack.apm.correlations.latencyCorrelations.correlationsTable.correlationLabel": "相关性", @@ -6192,11 +5644,17 @@ "xpack.apm.correlations.latencyCorrelations.panelTitle": "延迟分布", "xpack.apm.correlations.latencyCorrelations.tableTitle": "相关性", "xpack.apm.correlations.latencyPopoverBasicExplanation": "相关性帮助您发现哪些属性造成事务响应时间或延迟增大。", - "xpack.apm.correlations.latencyPopoverChartExplanation": "延迟分布图表可视化服务中事务的总体延迟。将鼠标悬浮在表中的属性时,它们的延迟分布便添加到图表中。", + "xpack.apm.correlations.latencyPopoverChartExplanation": "延迟分布图表可视化事务组中事务的总体延迟。将鼠标悬浮在表中的属性时,它们的延迟分布便添加到图表中。", "xpack.apm.correlations.latencyPopoverFilterExplanation": "还可以添加或移除筛选来影响 APM 应用中的查询。", "xpack.apm.correlations.latencyPopoverPerformanceExplanation": "此分析会对大量属性执行统计搜索。对于较大时间范围和具有高事务吞吐量的服务,这可能需要些时间。减少时间范围以改善性能。", "xpack.apm.correlations.latencyPopoverTableExplanation": "表按范围是 0 到 1 的相关性系数排序。具有较高相关性值的属性更可能造成事务高延迟。", "xpack.apm.correlations.latencyPopoverTitle": "延迟相关性", + "xpack.apm.correlations.noCorrelationsTextLine1": "相关性只有重大影响时,才会得到识别。", + "xpack.apm.correlations.noCorrelationsTextLine2": "请尝试选择其他时间范围或移除任何已添加的筛选。", + "xpack.apm.correlations.noCorrelationsTitle": "没有重大相关性", + "xpack.apm.correlations.progressAriaLabel": "进度", + "xpack.apm.correlations.progressTitle": "进度:{progress}%", + "xpack.apm.correlations.refreshButtonTitle": "刷新", "xpack.apm.csm.breakdownFilter.browser": "浏览器", "xpack.apm.csm.breakdownFilter.device": "设备", "xpack.apm.csm.breakdownFilter.location": "位置", @@ -6207,17 +5665,30 @@ "xpack.apm.customLink.buttom.create.title": "创建", "xpack.apm.customLink.buttom.manage": "管理定制链接", "xpack.apm.customLink.empty": "未找到定制链接。设置自己的定制链接,如特定仪表板的链接或外部链接。", + "xpack.apm.dependencies.kueryBarPlaceholder": "搜索依赖项指标(例如,span.destination.service.resource:elasticsearch)", "xpack.apm.dependenciesTable.columnErrorRate": "失败事务率", "xpack.apm.dependenciesTable.columnImpact": "影响", "xpack.apm.dependenciesTable.columnLatency": "延迟(平均值)", "xpack.apm.dependenciesTable.columnThroughput": "吞吐量", + "xpack.apm.dependenciesTable.notFoundLabel": "未找到依赖项", "xpack.apm.dependenciesTable.serviceMapLinkText": "查看服务地图", + "xpack.apm.deprecations.legacyModeTitle": "APM Server 正以旧版模式运行", + "xpack.apm.deprecations.message": "直接运行 APM Server 二进制被视为是旧版选项,自 7.16 起已过时。改为切换到由 Elastic 代理管理的 APM Server。请阅读我们的文档以了解详情。", + "xpack.apm.deprecations.steps.apm": "导航到 Observability/APM", + "xpack.apm.deprecations.steps.schema": "选择“架构”选项卡", + "xpack.apm.deprecations.steps.settings": "单击“设置”", + "xpack.apm.deprecations.steps.switch": "单击“切换到数据流”。将指导您完成此过程", "xpack.apm.emptyMessage.noDataFoundDescription": "尝试其他时间范围或重置搜索筛选。", - "xpack.apm.emptyMessage.noDataFoundLabel": "未找到任何数据", + "xpack.apm.emptyMessage.noDataFoundLabel": "未找到任何数据。", + "xpack.apm.emptyState.loadingMessage": "正在加载……", + "xpack.apm.environmentsSelectCustomOptionText": "将 \\{searchValue\\} 添加为新环境", + "xpack.apm.environmentsSelectPlaceholder": "选择环境", "xpack.apm.error.prompt.body": "有关详情,请查看您的浏览器开发者控制台。", "xpack.apm.error.prompt.title": "抱歉,发生错误 :(", "xpack.apm.errorCountAlert.name": "错误计数阈值", "xpack.apm.errorCountAlertTrigger.errors": " 错误", + "xpack.apm.errorGroup.chart.ocurrences": "出现次数", + "xpack.apm.errorGroup.chart.ocurrences.previousPeriodLabel": "上一时段", "xpack.apm.errorGroupDetails.culpritLabel": "原因", "xpack.apm.errorGroupDetails.errorGroupTitle": "错误组 {errorGroupId}", "xpack.apm.errorGroupDetails.errorOccurrenceTitle": "错误发生", @@ -6227,17 +5698,20 @@ "xpack.apm.errorGroupDetails.relatedTransactionSample": "相关的事务样本", "xpack.apm.errorGroupDetails.unhandledLabel": "未处理", "xpack.apm.errorGroupDetails.viewOccurrencesInDiscoverButtonLabel": "在 Discover 中查看 {occurrencesCount} 次{occurrencesCount, plural, other {发生}}", + "xpack.apm.errorRate": "失败事务率", "xpack.apm.errorRate.chart.errorRate": "失败事务率(平均值)", "xpack.apm.errorRate.chart.errorRate.previousPeriodLabel": "上一时段", "xpack.apm.errorsTable.errorMessageAndCulpritColumnLabel": "错误消息和原因", "xpack.apm.errorsTable.groupIdColumnDescription": "堆栈跟踪的哈希。将类似错误分组在一起,即使因动态参数造成错误消息不同。", "xpack.apm.errorsTable.groupIdColumnLabel": "组 ID", "xpack.apm.errorsTable.latestOccurrenceColumnLabel": "最新一次发生", - "xpack.apm.errorsTable.noErrorsLabel": "未找到任何错误", + "xpack.apm.errorsTable.noErrorsLabel": "未找到错误", "xpack.apm.errorsTable.occurrencesColumnLabel": "发生次数", "xpack.apm.errorsTable.typeColumnLabel": "类型", "xpack.apm.errorsTable.unhandledLabel": "未处理", - "xpack.apm.failedTransactionsCorrelations.licenseCheckText": "要使用失败事务相关性功能,必须订阅 Elastic 白金级许可证。", + "xpack.apm.exactTransactionRateLabel": "{value} tpm", + "xpack.apm.failedTransactionsCorrelations.licenseCheckText": "要使用失败事务相关性功能,必须订阅 Elastic 白金级许可证。使用该功能,您将能够发现哪些属性造成事务失败。", + "xpack.apm.failure_badge.tooltip": "event.outcome = 失败", "xpack.apm.featureRegistry.apmFeatureName": "APM 和用户体验", "xpack.apm.feedbackMenu.appName": "APM", "xpack.apm.fetcher.error.status": "错误", @@ -6248,6 +5722,25 @@ "xpack.apm.filter.environment.notDefinedLabel": "未定义", "xpack.apm.filter.environment.selectEnvironmentLabel": "选择环境", "xpack.apm.fleet_integration.settings.advancedOptionsLavel": "高级选项", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousAllowAgentHelpText": "允许进行匿名访问的代理名称。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousAllowAgentLabel": "允许的代理", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousAllowServiceHelpText": "允许进行匿名访问的服务名称。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousAllowServiceLabel": "允许的服务", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousEnabledDescription": "仅允许指定代理和/或服务进行匿名访问。这主要用于允许不受信任的代理进行有限访问,如真实用户监测。启用匿名身份验证时,只允许与允许的代理匹配的代理和与允许的服务配置匹配的服务。请参阅下文了解有关默认值的详情。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousEnabledHelpText": "为选定 APM 代理启用对 APM Server 的匿名访问权限。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousEnabledTitle": "匿名代理访问权限", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousRateLimitEventLimitHelpText": "每客户端 IP 每秒的最大事件数。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousRateLimitEventLimitLabel": "事件速率限制(事件限制)", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousRateLimitIpLimitHelpText": "将维持不同速率限制的唯一客户端 IP 数。", + "xpack.apm.fleet_integration.settings.agentAuthorization.anonymousRateLimitIpLimitLabel": "速率限制(IP 限制)", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyAuthenticationHelpText": "在 APM Server 和 APM 代理之间启用 API 密钥身份验证。", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyAuthenticationPlaceholder": "代理身份验证的 API 密钥", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyLimitDescription": "限制用于 APM 代理和服务器之间身份验证的每分钟唯一 API 密钥数目。", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyLimitHelpText": "可能会用于安全策略合规。", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyLimitLabel": "密钥数目", + "xpack.apm.fleet_integration.settings.agentAuthorization.apiKeyLimitTitle": "代理身份验证的最大 API 密钥数", + "xpack.apm.fleet_integration.settings.agentAuthorization.secretTokenLabel": "机密令牌", + "xpack.apm.fleet_integration.settings.agentAuthorization.settings.title": "代理授权", "xpack.apm.fleet_integration.settings.apm.capturePersonalDataDescription": "捕获个人数据,如 IP 或用户代理", "xpack.apm.fleet_integration.settings.apm.capturePersonalDataTitle": "捕获个人数据", "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentDescription": "未定义服务环境的事件中要记录的默认服务环境。", @@ -6255,15 +5748,18 @@ "xpack.apm.fleet_integration.settings.apm.defaultServiceEnvironmentTitle": "服务配置", "xpack.apm.fleet_integration.settings.apm.expvarEnabledDescription": "在 /debug/vars 下公开", "xpack.apm.fleet_integration.settings.apm.expvarEnabledTitle": "启用 APM Server Golang expvar 支持", + "xpack.apm.fleet_integration.settings.apm.hostDescription": "选择有助于确定如何使用此集成的名称和描述。", "xpack.apm.fleet_integration.settings.apm.hostLabel": "主机", "xpack.apm.fleet_integration.settings.apm.hostTitle": "服务器配置", "xpack.apm.fleet_integration.settings.apm.idleTimeoutLabel": "基础连接关闭前的空闲时间", + "xpack.apm.fleet_integration.settings.apm.maxConnectionsHelpText": "0 表示无限制", "xpack.apm.fleet_integration.settings.apm.maxConnectionsLabel": "同时接受的连接", "xpack.apm.fleet_integration.settings.apm.maxEventBytesLabel": "每事件最大大小(字节)", "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesDescription": "设置请求标头大小限制和计时配置。", "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesLabel": "请求标头的最大大小(字节)", "xpack.apm.fleet_integration.settings.apm.maxHeaderBytesTitle": "限制", "xpack.apm.fleet_integration.settings.apm.readTimeoutLabel": "读取整个请求的最大持续时间", + "xpack.apm.fleet_integration.settings.apm.responseHeadersDescription": "设置请求标头大小限制和计时配置。", "xpack.apm.fleet_integration.settings.apm.responseHeadersHelpText": "可能会用于安全策略合规。", "xpack.apm.fleet_integration.settings.apm.responseHeadersLabel": "添加到 HTTP 响应的定制 HTTP 标头", "xpack.apm.fleet_integration.settings.apm.responseHeadersTitle": "定制标头", @@ -6281,11 +5777,13 @@ "xpack.apm.fleet_integration.settings.rum.enableRumDescription": "启用真实用户监测 (RUM)", "xpack.apm.fleet_integration.settings.rum.enableRumTitle": "启用 RUM", "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderDescription": "为代理配置身份验证", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderHelpText": "用户代理要发送的已允许起源标头。", - "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderLabel": "已允许起源标头", + "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderHelpText": "除了“Content-Type”、“Content-Encoding”和“Accept”,还有支持的 Access-Control-Allow-Headers 标头。", + "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderLabel": "Access-Control-Allow-Headers", "xpack.apm.fleet_integration.settings.rum.rumAllowHeaderTitle": "定制标头", - "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsHelpText": "除了“Content-Type”、“Content-Encoding”和“Accept”,还有支持的 Access-Control-Allow-Headers 标头。", - "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsLabel": "Access-Control-Allow-Headers", + "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsHelpText": "用户代理要发送的已允许起源标头。", + "xpack.apm.fleet_integration.settings.rum.rumAllowOriginsLabel": "起源标头", + "xpack.apm.fleet_integration.settings.rum.rumExcludeFromGroupingHelpText": "通过根据此正则表达式匹配堆栈跟踪帧的 `file_name`,来从错误组计算中排除堆栈跟踪帧。", + "xpack.apm.fleet_integration.settings.rum.rumExcludeFromGroupingLabel": "从分组中排除", "xpack.apm.fleet_integration.settings.rum.rumLibraryPatternHelpText": "通过根据此正则表达式匹配堆栈跟踪帧的 file_name 和 abs_path,来识别库帧。", "xpack.apm.fleet_integration.settings.rum.rumLibraryPatternLabel": "库帧模式", "xpack.apm.fleet_integration.settings.rum.rumResponseHeadersHelpText": "已添加到 RUM 响应,例如为了实现安全策略合规。", @@ -6326,6 +5824,7 @@ "xpack.apm.home.alertsMenu.viewActiveAlerts": "管理规则", "xpack.apm.home.serviceLogsTabLabel": "日志", "xpack.apm.home.serviceMapTabLabel": "服务地图", + "xpack.apm.inspectButtonText": "检查", "xpack.apm.instancesLatencyDistributionChartLegend": "实例", "xpack.apm.instancesLatencyDistributionChartLegend.previousPeriod": "上一时段", "xpack.apm.instancesLatencyDistributionChartTitle": "实例延迟分布", @@ -6339,6 +5838,7 @@ "xpack.apm.jvmsTable.cpuColumnLabel": "CPU 平均值", "xpack.apm.jvmsTable.explainServiceNodeNameMissing": "无法识别这些指标属于哪些 JVM。这可能因为运行的 APM Server 版本低于 7.5。如果升级到 APM Server 7.5 或更高版本,应可解决此问题。", "xpack.apm.jvmsTable.heapMemoryColumnLabel": "堆内存平均值", + "xpack.apm.jvmsTable.hostName": "主机名", "xpack.apm.jvmsTable.nameColumnLabel": "名称", "xpack.apm.jvmsTable.nameExplanation": "默认情况下,JVM 名称是容器 ID(如果适用)或主机名,但其可以通过代理的“service_node_name”配置手动进行配置。", "xpack.apm.jvmsTable.noJvmsLabel": "未找到任何 JVM", @@ -6358,13 +5858,17 @@ "xpack.apm.localFilters.titles.serviceName": "服务名称", "xpack.apm.localFilters.titles.transactionUrl": "URL", "xpack.apm.localFiltersTitle": "筛选", + "xpack.apm.managedTable.errorMessage": "无法提取", + "xpack.apm.managedTable.loadingDescription": "正在加载……", "xpack.apm.metrics.transactionChart.machineLearningLabel": "Machine Learning", "xpack.apm.metrics.transactionChart.machineLearningTooltip": "流显示平均延迟的预期边界。红色垂直标注表示异常分数等于或大于 75 的异常。", "xpack.apm.metrics.transactionChart.machineLearningTooltip.withKuery": "使用搜索栏筛选时,Machine Learning 结果处于隐藏状态", "xpack.apm.metrics.transactionChart.viewJob": "查看作业", + "xpack.apm.navigation.dependenciesTitle": "依赖项", "xpack.apm.navigation.serviceMapTitle": "服务地图", "xpack.apm.navigation.servicesTitle": "服务", "xpack.apm.navigation.tracesTitle": "追溯", + "xpack.apm.noDataConfig.solutionName": "可观测性", "xpack.apm.notAvailableLabel": "不可用", "xpack.apm.percentOfParent": "({parentType, select, transaction {事务} trace {追溯} }的{value})", "xpack.apm.profiling.collapseSimilarFrames": "折叠类似", @@ -6406,10 +5910,18 @@ "xpack.apm.rum.filterGroup.coreWebVitals": "网站体验核心指标", "xpack.apm.rum.filterGroup.seconds": "秒", "xpack.apm.rum.filterGroup.selectBreakdown": "选择细分", + "xpack.apm.rum.filters.filterByUrl": "按 URL 筛选", + "xpack.apm.rum.filters.searchResults": "{total} 项搜索结果", + "xpack.apm.rum.filters.select": "选择", + "xpack.apm.rum.filters.topPages": "排名靠前页面", + "xpack.apm.rum.filters.url": "URL", + "xpack.apm.rum.filters.url.loadingResults": "正在加载结果", + "xpack.apm.rum.filters.url.noResults": "没有可用结果", "xpack.apm.rum.jsErrors.errorMessage": "错误消息", "xpack.apm.rum.jsErrors.errorRate": "错误率", "xpack.apm.rum.jsErrors.impactedPageLoads": "受影响的页面加载", "xpack.apm.rum.jsErrors.totalErrors": "错误总数", + "xpack.apm.rum.jsErrorsTable.errorMessage": "无法提取", "xpack.apm.rum.uxMetrics.longestLongTasks": "长任务最长持续时间", "xpack.apm.rum.uxMetrics.longestLongTasksTooltip": "最长任务的持续时间。长任务是指独占用户界面线程较长时间(大于50毫秒)并阻止其他关键任务(帧速率或输入延迟)执行的任何用户活动或浏览器任务。", "xpack.apm.rum.uxMetrics.noOfLongTasks": "长任务数目", @@ -6474,6 +5986,7 @@ "xpack.apm.serviceMap.avgReqPerMinutePopoverMetric": "吞吐量(平均值)", "xpack.apm.serviceMap.avgTransDurationPopoverStat": "延迟(平均值)", "xpack.apm.serviceMap.center": "居中", + "xpack.apm.serviceMap.dependencyDetailsButtonText": "依赖项详情", "xpack.apm.serviceMap.download": "下载", "xpack.apm.serviceMap.emptyBanner.docsLink": "在文档中了解详情", "xpack.apm.serviceMap.emptyBanner.message": "如果可以检测到连接的服务和外部请求,便将在地图上绘出它们。请确保运行最新版本的 APM 代理。", @@ -6494,6 +6007,8 @@ "xpack.apm.serviceMap.viewFullMap": "查看完整的服务地图", "xpack.apm.serviceMap.zoomIn": "放大", "xpack.apm.serviceMap.zoomOut": "缩小", + "xpack.apm.serviceNamesSelectCustomOptionText": "将 \\{searchValue\\} 添加为新服务名称", + "xpack.apm.serviceNamesSelectPlaceholder": "选择服务名称", "xpack.apm.serviceNodeMetrics.containerId": "容器 ID", "xpack.apm.serviceNodeMetrics.host": "主机", "xpack.apm.serviceNodeMetrics.serviceName": "服务名称", @@ -6502,8 +6017,12 @@ "xpack.apm.serviceNodeMetrics.unidentifiedServiceNodesWarningTitle": "找不到 JVM", "xpack.apm.serviceNodeNameMissing": "(空)", "xpack.apm.serviceOveriew.errorsTableOccurrences": "{occurrencesCount} 次", + "xpack.apm.serviceOverview.dependenciesTableColumn": "依赖项", "xpack.apm.serviceOverview.dependenciesTableTabLink": "查看依赖项", - "xpack.apm.serviceOverview.dependenciesTableTitle": "下游服务和后端", + "xpack.apm.serviceOverview.dependenciesTableTitle": "依赖项", + "xpack.apm.serviceOverview.errorsTable.errorMessage": "无法提取", + "xpack.apm.serviceOverview.errorsTable.loading": "正在加载……", + "xpack.apm.serviceOverview.errorsTable.noResults": "未找到错误", "xpack.apm.serviceOverview.errorsTableColumnLastSeen": "最后看到时间", "xpack.apm.serviceOverview.errorsTableColumnName": "名称", "xpack.apm.serviceOverview.errorsTableColumnOccurrences": "发生次数", @@ -6519,6 +6038,7 @@ "xpack.apm.serviceOverview.instancesTable.actionMenus.pod.title": "Pod 详情", "xpack.apm.serviceOverview.instancesTable.actionMenus.podLogs": "Pod 日志", "xpack.apm.serviceOverview.instancesTable.actionMenus.podMetrics": "Pod 指标", + "xpack.apm.serviceOverview.instancesTable.errorMessage": "无法提取", "xpack.apm.serviceOverview.instancesTableColumnCpuUsage": "CPU 使用率(平均值)", "xpack.apm.serviceOverview.instancesTableColumnErrorRate": "失败事务率", "xpack.apm.serviceOverview.instancesTableColumnMemoryUsage": "内存使用率(平均值)", @@ -6535,9 +6055,11 @@ "xpack.apm.serviceOverview.latencyColumnDefaultLabel": "延迟", "xpack.apm.serviceOverview.latencyColumnP95Label": "延迟(第 95 个)", "xpack.apm.serviceOverview.latencyColumnP99Label": "延迟(第 99 个)", + "xpack.apm.serviceOverview.loadingText": "正在加载……", "xpack.apm.serviceOverview.mlNudgeMessage.content": "通过 APM 的异常检测集成来查明异常事务,并了解上下游服务的运行状况。只需几分钟即可开始使用。", "xpack.apm.serviceOverview.mlNudgeMessage.dismissButton": "关闭", "xpack.apm.serviceOverview.mlNudgeMessage.learnMoreButton": "开始使用", + "xpack.apm.serviceOverview.noResultsText": "未找到实例", "xpack.apm.serviceOverview.throughtputChart.previousPeriodLabel": "上一时段", "xpack.apm.serviceOverview.throughtputChartTitle": "吞吐量", "xpack.apm.serviceOverview.tpmHelp": "吞吐量按每分钟事务数 (tpm) 来度量", @@ -6655,34 +6177,39 @@ "xpack.apm.settings.schema": "架构", "xpack.apm.settings.schema.confirm.apmServerSettingsCloudLinkText": "前往 Cloud 中的 APM Server 设置", "xpack.apm.settings.schema.confirm.cancelText": "取消", - "xpack.apm.settings.schema.confirm.checkboxLabel": "我确认我想切换到数据流", + "xpack.apm.settings.schema.confirm.checkboxLabel": "我确认我想切换到 Elastic 代理", "xpack.apm.settings.schema.confirm.irreversibleWarning.message": "迁移在进行中时,可能会暂时影响 APM 数据收集。迁移的过程应只需花费几分钟。", - "xpack.apm.settings.schema.confirm.irreversibleWarning.title": "切换到数据流是不可逆的操作", - "xpack.apm.settings.schema.confirm.switchButtonText": "切换到数据流", + "xpack.apm.settings.schema.confirm.irreversibleWarning.title": "切换到 Elastic 代理是不可逆操作", + "xpack.apm.settings.schema.confirm.switchButtonText": "切换到 Elastic 代理", "xpack.apm.settings.schema.confirm.title": "请确认您的选择", "xpack.apm.settings.schema.confirm.unsupportedConfigs.descriptionText": "系统会替您将兼容的定制 apm-server.yml 用户设置移到 Fleet 服务器设置。我们将会让您了解哪些设置不兼容后,才会移除它们。", "xpack.apm.settings.schema.confirm.unsupportedConfigs.title": "以下 apm-server.yml 用户设置不兼容,将会被移除", + "xpack.apm.settings.schema.descriptionText": "我们已为从 APM Server 二进制切换到 Elastic 代理创建一个简单、无缝的流程。注意,此操作{irreversibleEmphasis},且只能由对 Fleet 具有访问权限的{superuserEmphasis}执行。深入了解 {elasticAgentDocLink}。", + "xpack.apm.settings.schema.descriptionText.elasticAgentDocLinkText": "Elastic 代理", "xpack.apm.settings.schema.descriptionText.irreversibleEmphasisText": "不可逆", "xpack.apm.settings.schema.descriptionText.superuserEmphasisText": "超级用户", - "xpack.apm.settings.schema.disabledReason": "无法切换到数据流:{reasons}", + "xpack.apm.settings.schema.disabledReason": "无法切换到 Elastic 代理:{reasons}", "xpack.apm.settings.schema.disabledReason.cloudApmMigrationEnabled": "Cloud 迁移未启用", "xpack.apm.settings.schema.disabledReason.hasCloudAgentPolicy": "Cloud 代理策略不存在。", "xpack.apm.settings.schema.disabledReason.hasRequiredRole": "用户不具有超级用户角色", "xpack.apm.settings.schema.migrate.classicIndices.currentSetup": "当前设置", - "xpack.apm.settings.schema.migrate.classicIndices.description": "您当前正将经典 APM 索引用于您的数据。此数据架构将退役,将在 Elastic Stack 版本 8.0 中由数据流替代。", - "xpack.apm.settings.schema.migrate.classicIndices.title": "经典 APM 索引", - "xpack.apm.settings.schema.migrate.dataStreams.buttonText": "切换到数据流", - "xpack.apm.settings.schema.migrate.dataStreams.description": "将来,任何新采集的数据都将存储在数据流中。之前采集的数据仍在经典 APM 索引中。APM 和 UX 应用将继续支持这两种索引。", - "xpack.apm.settings.schema.migrate.dataStreams.title": "数据流", + "xpack.apm.settings.schema.migrate.classicIndices.description": "您当前正使用 APM Server 二进制。此旧版选项自版本 7.16 起已过时,从版本 8.0 开始将由 Elastic 代理中的托管 APM Server 替换。", + "xpack.apm.settings.schema.migrate.classicIndices.title": "APM Server 二进制", + "xpack.apm.settings.schema.migrate.dataStreams.buttonText": "切换到 Elastic 代理", + "xpack.apm.settings.schema.migrate.dataStreams.description": "从版本 8.0 开始,Elastic 代理必须管理 APM Server。Elastic 代理可以在托管 Elasticsearch Service、ECE 上运行,或进行自我管理。然后,添加 Elastic APM 集成以继续采集 APM 数据。", + "xpack.apm.settings.schema.migrate.dataStreams.title": "Elastic 代理", "xpack.apm.settings.schema.migrationInProgressPanelDescription": "我们现在正在创建 Fleet Server 实例,以便在关闭旧 APM 服务器实例时包含新 APM Server。若干分钟后,应会看到您的数据再次灌入应用中。", - "xpack.apm.settings.schema.migrationInProgressPanelTitle": "正在切换到数据流......", + "xpack.apm.settings.schema.migrationInProgressPanelTitle": "正切换到 Elastic 代理......", "xpack.apm.settings.schema.success.description": "您的 APM 集成已设置完毕,准备好从当前检测的代理接收数据。可随时查看您的集成应用的策略。", "xpack.apm.settings.schema.success.returnText": "或只需返回到{serviceInventoryLink}。", "xpack.apm.settings.schema.success.returnText.serviceInventoryLink": "服务库存", - "xpack.apm.settings.schema.success.title": "数据流已成功设置!", + "xpack.apm.settings.schema.success.title": "已成功设置 Elastic 代理!", "xpack.apm.settings.schema.success.viewIntegrationInFleet.buttonText": "在 Fleet 中查看 APM 集成", + "xpack.apm.settings.schema.upgradeAvailable.title": "APM 集成升级可用!", + "xpack.apm.settings.schema.upgradeAvailable.upgradePackagePolicyLink": "升级 APM 集成", "xpack.apm.settings.title": "设置", "xpack.apm.settings.unsupportedConfigs.errorToast.title": "无法获取 APM Server 设置", + "xpack.apm.settings.upgradeAvailable.description": "即使设置了 APM 集成,新版本的 APM 集成仍可用于使用软件包策略进行升级。{upgradePackagePolicyLink}以充分利用您的设置。", "xpack.apm.settingsLinkLabel": "设置", "xpack.apm.setupInstructionsButtonLabel": "设置说明", "xpack.apm.stacktraceTab.causedByFramesToogleButtonLabel": "原因", @@ -6727,7 +6254,10 @@ "xpack.apm.transactionActionMenu.viewSampleDocumentLinkLabel": "查看样例文档", "xpack.apm.transactionBreakdown.chartTitle": "跨度类型花费的时间", "xpack.apm.transactionDetails.clearSelectionAriaLabel": "清除所选内容", + "xpack.apm.transactionDetails.distribution.failedTransactionsLatencyDistributionErrorTitle": "提取失败事务延迟分布时出错。", + "xpack.apm.transactionDetails.distribution.latencyDistributionErrorTitle": "提取总体延迟分布时出错。", "xpack.apm.transactionDetails.distribution.panelTitle": "延迟分布", + "xpack.apm.transactionDetails.distribution.selectionText": "选择:{formattedSelection}", "xpack.apm.transactionDetails.emptySelectionText": "单击并拖动以选择范围", "xpack.apm.transactionDetails.errorCount": "{errorCount, number} 个 {errorCount, plural, other {错误}}", "xpack.apm.transactionDetails.noTraceParentButtonTooltip": "找不到上级追溯", @@ -6751,12 +6281,16 @@ "xpack.apm.transactionDetails.statusCode": "状态代码", "xpack.apm.transactionDetails.syncBadgeAsync": "异步", "xpack.apm.transactionDetails.syncBadgeBlocking": "正在阻止", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaDescription": "失败事务率不是 GA 版。请通过报告错误来帮助我们。", + "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaDescription": "失败事务相关性不是 GA 版。请通过报告错误来帮助我们。", "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaLabel": "公测版", - "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaTitle": "失败事务率", + "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsBetaTitle": "失败事务相关性", + "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsChartAllTransactions": "所有事务", "xpack.apm.transactionDetails.tabs.failedTransactionsCorrelationsLabel": "失败事务相关性", + "xpack.apm.transactionDetails.tabs.latencyCorrelationsChartAllTransactions": "所有事务", + "xpack.apm.transactionDetails.tabs.latencyCorrelationsChartDescription": "{allTransactions}和{focusTransaction}{br}带重叠的延迟 (x) 与事务 (y) 双对数坐标图。", "xpack.apm.transactionDetails.tabs.latencyLabel": "延迟相关性", "xpack.apm.transactionDetails.tabs.traceSamplesLabel": "跟踪样例", + "xpack.apm.transactionDetails.tabs.transactionDistributionChartAllTransactions": "所有事务", "xpack.apm.transactionDetails.traceNotFound": "找不到所选跟踪", "xpack.apm.transactionDetails.traceSampleTitle": "跟踪样例", "xpack.apm.transactionDetails.transactionLabel": "事务", @@ -6768,7 +6302,8 @@ "xpack.apm.transactionDetails.viewingFullTraceButtonTooltip": "当前正在查看完整追溯信息", "xpack.apm.transactionDistribution.chart.allTransactionsLabel": "所有事务", "xpack.apm.transactionDistribution.chart.currentTransactionMarkerLabel": "当前样例", - "xpack.apm.transactionDistribution.chart.numberOfTransactionsLabel": "事务数", + "xpack.apm.transactionDistribution.chart.latencyLabel": "延迟", + "xpack.apm.transactionDistribution.chart.numberOfTransactionsLabel": "事务", "xpack.apm.transactionDistribution.chart.percentileMarkerLabel": "第 {markerPercentile} 个百分位数", "xpack.apm.transactionDurationAlert.aggregationType.95th": "第 95 个百分位", "xpack.apm.transactionDurationAlert.aggregationType.99th": "第 99 个百分位", @@ -6785,6 +6320,16 @@ "xpack.apm.transactions.latency.chart.95thPercentileLabel": "第 95 个百分位", "xpack.apm.transactions.latency.chart.99thPercentileLabel": "第 99 个百分位", "xpack.apm.transactions.latency.chart.averageLabel": "平均值", + "xpack.apm.transactionsTable.cardinalityWarning.body": "唯一事务名称的数目超过 {bucketSize} 的已配置值。尝试重新配置您的代理以对类似的事务分组或增大 {codeBlock} 的值", + "xpack.apm.transactionsTable.cardinalityWarning.docsLink": "在文档中了解详情", + "xpack.apm.transactionsTable.cardinalityWarning.title": "此视图显示已报告事务的子集。", + "xpack.apm.transactionsTable.errorMessage": "无法提取", + "xpack.apm.transactionsTable.linkText": "查看事务", + "xpack.apm.transactionsTable.loading": "正在加载……", + "xpack.apm.transactionsTable.noResults": "未找到事务组", + "xpack.apm.transactionsTable.title": "事务", + "xpack.apm.transactionTypesSelectCustomOptionText": "将 \\{searchValue\\} 添加为新事务类型", + "xpack.apm.transactionTypesSelectPlaceholder": "选择事务类型", "xpack.apm.tutorial.agent_config.choosePolicy.helper": "将选定的策略配置添加到下面的代码片段。", "xpack.apm.tutorial.agent_config.choosePolicyLabel": "选择策略", "xpack.apm.tutorial.agent_config.defaultStandaloneConfig": "默认单机版配置", @@ -6801,7 +6346,8 @@ "xpack.apm.tutorial.apmServer.callOut.title": "重要说明:正在更新到 7.0 或更高版本", "xpack.apm.tutorial.apmServer.fleet.apmIntegration.button": "APM 集成", "xpack.apm.tutorial.apmServer.fleet.manageApmIntegration.button": "在 Fleet 中管理 APM 集成", - "xpack.apm.tutorial.apmServer.fleet.message": "APM 集成安装用于 APM 数据的 Elasticsearch 模板和采集节点管道。", + "xpack.apm.tutorial.apmServer.fleet.message": "APM 集成安装用于 APM 数据的 Elasticsearch 模板和采集管道。", + "xpack.apm.tutorial.apmServer.fleet.title": "现在 Fleet 中包含 Elastic APM!", "xpack.apm.tutorial.apmServer.statusCheck.btnLabel": "检查 APM Server 状态", "xpack.apm.tutorial.apmServer.statusCheck.errorMessage": "未检测到任何 APM Server。请确保其正在运行并且您已升级到 7.0 或更高版本。", "xpack.apm.tutorial.apmServer.statusCheck.successMessage": "您已正确设置 APM Server", @@ -6832,7 +6378,7 @@ "xpack.apm.tutorial.downloadServerTitle": "寻找 32 位软件包?请参阅[下载页面]({downloadPageLink})。", "xpack.apm.tutorial.editConfig.textPre": "如果您正在使用 Elastic Stack 的 X-Pack 安全版本,则必须在 `apm-server.yml` 配置文件中指定凭据。", "xpack.apm.tutorial.editConfig.title": "编辑配置", - "xpack.apm.tutorial.elasticCloud.textPre": "要启用 APM Server,请前往 [Elastic Cloud 控制台](https://cloud.elastic.co/deployments/{deploymentId}/edit) 并在部署设置中启用 APM。启用后,请刷新此页面。", + "xpack.apm.tutorial.elasticCloud.textPre": "要启用 APM Server,请前往 [Elastic Cloud 控制台](https://cloud.elastic.co/deployments/{deploymentId}/edit),并通过单击“添加容量”在部署编辑页面启用 APM 和 Fleet,然后单击“保存”。启用后,请刷新此页面。", "xpack.apm.tutorial.elasticCloudInstructions.title": "APM 代理", "xpack.apm.tutorial.flaskClient.configure.commands.allowedCharactersComment": "a-z、A-Z、0-9、-、_ 以及空格", "xpack.apm.tutorial.flaskClient.configure.commands.configureElasticApmComment": "或进行配置以在您的应用程序设置中使用 ELASTIC_APM", @@ -6846,6 +6392,7 @@ "xpack.apm.tutorial.flaskClient.configure.title": "配置代理", "xpack.apm.tutorial.flaskClient.install.textPre": "将 Python 的 APM 代理安装为依赖项。", "xpack.apm.tutorial.flaskClient.install.title": "安装 APM 代理", + "xpack.apm.tutorial.fleet.title": "Fleet", "xpack.apm.tutorial.goClient.configure.commands.initializeUsingEnvironmentVariablesComment": "使用环境变量初始化:", "xpack.apm.tutorial.goClient.configure.commands.setCustomApmServerUrlComment": "设置定制 APM Server URL(默认值:{defaultApmServerUrl})", "xpack.apm.tutorial.goClient.configure.commands.setServiceEnvironment": "设置服务环境", @@ -6860,7 +6407,7 @@ "xpack.apm.tutorial.goClient.instrument.textPost": "有关检测 Go 源代码的详细指南,请参阅[文档]({documentationLink})。", "xpack.apm.tutorial.goClient.instrument.textPre": "使用以下已提供检测模块之一或直接使用跟踪器 API 来检测 Go 应用程序。", "xpack.apm.tutorial.goClient.instrument.title": "检测您的应用程序", - "xpack.apm.tutorial.introduction": "从您的应用程序内收集深入全面的性能指标和错误。", + "xpack.apm.tutorial.introduction": "使用 Elastic APM 从您的应用程序收集性能指标。", "xpack.apm.tutorial.javaClient.download.textPre": "从 [Maven Central]({mavenCentralLink}) 下载代理 jar。**切勿**将该代理添加为您的应用程序的依赖项。", "xpack.apm.tutorial.javaClient.download.title": "下载 APM 代理", "xpack.apm.tutorial.javaClient.startApplication.textPost": "有关配置选项和高级用法,请参阅[文档]({documentationLink})。", @@ -6926,13 +6473,19 @@ "xpack.apm.tutorial.windowsServerInstructions.textPre": "1.从[下载页面]({downloadPageLink})下载 APM Server Windows zip 文件。\n2.将 zip 文件的内容解压缩到 {zipFileExtractFolder}。\n3.将 {apmServerDirectory} 目录重命名为 `APM-Server`。\n4.以管理员身份打开 PowerShell 提示符(右键单击 PowerShell 图标,然后选择**以管理员身份运行**)。如果运行的是 Windows XP,则可能需要下载并安装 PowerShell。\n5.从 PowerShell 提示符处,运行以下命令以将 APM Server 安装为 Windows 服务:", "xpack.apm.unitLabel": "选择单位", "xpack.apm.unsavedChanges": "{unsavedChangesCount, plural, =0{0 个未保存更改} one {1 个未保存更改} other {# 个未保存更改}} ", + "xpack.apm.urlFilter.wildcard": "使用通配符 *{wildcard}*", "xpack.apm.ux.breadcrumbs.dashboard": "仪表板", "xpack.apm.ux.breadcrumbs.root": "用户体验", "xpack.apm.ux.jsErrors.percent": "{pageLoadPercent}%", "xpack.apm.ux.localFilters.titles.webApplication": "Web 应用程序", "xpack.apm.ux.median": "中值", "xpack.apm.ux.metrics": "指标", + "xpack.apm.ux.overview.agent.description": "使用 APM 代理来收集 APM 数据。我们的代理支持许多流行语言,可以轻松使用。", + "xpack.apm.ux.overview.agent.title": "添加 APM 集成", + "xpack.apm.ux.overview.beatsCard.description": "通过 APM 代理启用 RUM,以收集用户体验数据。", + "xpack.apm.ux.overview.beatsCard.title": "添加 APM 集成", "xpack.apm.ux.overview.heading": "仪表板", + "xpack.apm.ux.overview.solutionName": "可观测性", "xpack.apm.ux.percentile.50thMedian": "第 50 个(中值)", "xpack.apm.ux.percentile.75th": "第 75 个", "xpack.apm.ux.percentile.90th": "第 90 个", @@ -6943,6 +6496,7 @@ "xpack.apm.ux.title": "仪表板", "xpack.apm.ux.visitorBreakdown.noData": "无数据。", "xpack.apm.views.dependencies.title": "依赖项", + "xpack.apm.views.dependenciesInventory.title": "依赖项", "xpack.apm.views.errors.title": "错误", "xpack.apm.views.listSettings.title": "设置", "xpack.apm.views.logs.title": "日志", @@ -6954,302 +6508,15 @@ "xpack.apm.views.serviceProfiling.title": "分析", "xpack.apm.views.settings.agentConfiguration.title": "代理配置", "xpack.apm.views.settings.anomalyDetection.title": "异常检测", - "xpack.apm.views.settings.createAgentConfiguration.title": "创建代理配置", - "xpack.apm.views.settings.customizeUI.title": "定制应用", - "xpack.apm.views.settings.editAgentConfiguration.title": "编辑代理配置", - "xpack.apm.views.settings.indices.title": "索引", - "xpack.apm.views.settings.schema.title": "架构", - "xpack.apm.views.traceOverview.title": "追溯", - "xpack.apm.views.transactions.title": "事务", - "xpack.apm.waterfall.exceedsMax": "此跟踪中的项目数超过显示的项目数", - "xpack.observability.apply.label": "应用", - "xpack.observability.search.url.close": "关闭", - "xpack.observability.filters.filterByUrl": "按 URL 筛选", - "xpack.observability.filters.searchResults": "{total} 项搜索结果", - "xpack.observability.filters.select": "选择", - "xpack.observability.filters.topPages": "排名靠前页面", - "xpack.observability.filters.url": "URL", - "xpack.observability.filters.url.loadingResults": "正在加载结果", - "xpack.observability.filters.url.noResults": "没有可用结果", - "xpack.observability.alerts.manageRulesButtonLabel": "管理规则", - "xpack.observability.alerts.searchBarPlaceholder": "kibana.alert.evaluation.threshold > 75", - "xpack.observability.alertsDisclaimerLinkText": "告警和操作", - "xpack.observability.alertsDisclaimerTitle": "实验性", - "xpack.observability.alertsFlyout.actualValueLabel": "实际值", - "xpack.observability.alertsFlyout.durationLabel": "持续时间", - "xpack.observability.alertsFlyout.expectedValueLabel": "预期值", - "xpack.observability.alertsFlyout.ruleTypeLabel": "规则类型", - "xpack.observability.alertsFlyout.statusLabel": "状态", - "xpack.observability.alertsLinkTitle": "告警", - "xpack.observability.alertsTable.actionsTextLabel": "操作", - "xpack.observability.alertsTable.footerTextLabel": "告警", - "xpack.observability.alertsTable.loadingTextLabel": "正在加载告警", - "xpack.observability.alertsTable.showingAlertsTitle": "{totalAlerts, plural, other {告警}}", - "xpack.observability.alertsTGrid.durationColumnDescription": "持续时间", - "xpack.observability.alertsTGrid.lastUpdatedColumnDescription": "上次更新时间", - "xpack.observability.alertsTGrid.reasonColumnDescription": "原因", - "xpack.observability.alertsTGrid.statusColumnDescription": "状态", - "xpack.observability.alertsTitle": "告警", - "xpack.observability.breadcrumbs.alertsLinkText": "告警", - "xpack.observability.breadcrumbs.casesConfigureLinkText": "配置", - "xpack.observability.breadcrumbs.casesCreateLinkText": "创建", - "xpack.observability.breadcrumbs.casesLinkText": "案例", - "xpack.observability.breadcrumbs.landingLinkText": "入门", - "xpack.observability.breadcrumbs.observabilityLinkText": "可观测性", - "xpack.observability.breadcrumbs.overviewLinkText": "概览", - "xpack.observability.cases.allCases.actions": "操作", - "xpack.observability.cases.allCases.comments": "注释", - "xpack.observability.cases.allCases.noTagsAvailable": "没有可用标签", - "xpack.observability.cases.badge.readOnly.text": "只读", - "xpack.observability.cases.badge.readOnly.tooltip": "无法创建或编辑案例", - "xpack.observability.cases.caseFeatureNoPermissionsMessage": "要查看案例,必须对 Kibana 工作区中的案例功能有权限。有关详细信息,请联系您的 Kibana 管理员。", - "xpack.observability.cases.caseFeatureNoPermissionsTitle": "需要 Kibana 功能权限", - "xpack.observability.cases.caseView.backLabel": "返回到案例", - "xpack.observability.cases.caseView.cancel": "取消", - "xpack.observability.cases.caseView.caseName": "案例名称", - "xpack.observability.cases.caseView.closeCase": "关闭案例", - "xpack.observability.cases.caseView.comment.addComment": "添加注释", - "xpack.observability.cases.caseView.comment.addCommentHelpText": "添加新注释......", - "xpack.observability.cases.caseView.commentFieldRequiredError": "注释必填。", - "xpack.observability.cases.caseView.connectors": "外部事件管理系统", - "xpack.observability.cases.caseView.create": "创建新案例", - "xpack.observability.cases.caseView.createCase": "创建案例", - "xpack.observability.cases.caseView.description": "描述", - "xpack.observability.cases.caseView.description.save": "保存", - "xpack.observability.cases.caseView.edit": "编辑", - "xpack.observability.cases.caseView.editConnector": "更改外部事件管理系统", - "xpack.observability.cases.caseView.fieldRequiredError": "必填字段", - "xpack.observability.cases.caseView.goToDocumentationButton": "查看文档", - "xpack.observability.cases.caseView.name": "名称", - "xpack.observability.cases.caseView.noReportersAvailable": "没有报告者。", - "xpack.observability.cases.caseView.noTags": "当前没有为此案例分配标签。", - "xpack.observability.cases.caseView.optional": "可选", - "xpack.observability.cases.caseView.particpantsLabel": "参与者", - "xpack.observability.cases.caseView.reopenCase": "重新打开案例", - "xpack.observability.cases.caseView.reporterLabel": "报告者", - "xpack.observability.cases.caseView.tags": "标签", - "xpack.observability.cases.caseView.to": "到", - "xpack.observability.cases.configureCases.headerTitle": "配置案例", - "xpack.observability.cases.configureCasesButton": "编辑外部连接", - "xpack.observability.cases.confirmDeleteCase.deleteCase": "删除案例", - "xpack.observability.cases.confirmDeleteCase.deleteCases": "删除案例", - "xpack.observability.cases.createCase.descriptionFieldRequiredError": "描述必填。", - "xpack.observability.cases.createCase.fieldTagsHelpText": "为此案例键入一个或多个定制识别标签。在每个标签后按 Enter 键可开始新的标签。", - "xpack.observability.cases.createCase.titleFieldRequiredError": "标题必填。", - "xpack.observability.cases.dismissErrorsPushServiceCallOutTitle": "关闭", - "xpack.observability.casesLinkTitle": "案例", - "xpack.observability.emptySection.apps.alert.description": "503 错误是否越来越多?服务是否响应?CPU 和 RAM 利用率是否激增?实时查看警告,而不是事后再进行剖析。", - "xpack.observability.emptySection.apps.alert.link": "创建规则", - "xpack.observability.emptySection.apps.alert.title": "未找到告警。", - "xpack.observability.emptySection.apps.apm.description": "通过分布式体系结构跟踪事务并映射服务的交互以轻松发现性能瓶颈。", - "xpack.observability.emptySection.apps.apm.link": "安装代理", - "xpack.observability.emptySection.apps.apm.title": "APM", - "xpack.observability.emptySection.apps.logs.description": "集中任何源的日志。搜索、跟踪、自动化异常检测并可视化趋势,以便您可以更迅速地采取操作。", - "xpack.observability.emptySection.apps.logs.link": "安装 Filebeat", - "xpack.observability.emptySection.apps.logs.title": "日志", - "xpack.observability.emptySection.apps.metrics.description": "分析您的基础设施、应用和服务的指标。发现趋势、预测行为、接收异常告警等等。", - "xpack.observability.emptySection.apps.metrics.link": "安装 Metricbeat", - "xpack.observability.emptySection.apps.metrics.title": "指标", - "xpack.observability.emptySection.apps.uptime.description": "主动监测站点和服务的可用性。接收告警并更快地解决问题,从而优化用户体验。", - "xpack.observability.emptySection.apps.uptime.link": "安装 Heartbeat", - "xpack.observability.emptySection.apps.uptime.title": "运行时间", - "xpack.observability.emptySection.apps.ux.description": "性能具有分布特征。测量所有访问者的 Web 应用程序访问体验,并了解如何改善每个人的体验。", - "xpack.observability.emptySection.apps.ux.link": "安装 RUM 代理", - "xpack.observability.emptySection.apps.ux.title": "用户体验", - "xpack.observability.enableInspectEsQueriesExperimentDescription": "检查 API 响应中的 Elasticsearch 查询。", - "xpack.observability.enableInspectEsQueriesExperimentName": "检查 ES 查询", - "xpack.observability.exp.breakDownFilter.noBreakdown": "无细目", - "xpack.observability.experimentalBadgeDescription": "此功能为实验性功能,在未来版本中可能会更改或完全移除。Elastic 将尽最大努力来修复任何问题,但实验性功能不受正式 GA 功能支持 SLA 的约束。", - "xpack.observability.experimentalBadgeLabel": "实验性", - "xpack.observability.exploratoryView.noBrusing": "按画笔选择缩放仅适用于时间序列图表。", - "xpack.observability.expView.chartTypes.label": "图表类型", - "xpack.observability.expView.columns.label": "{sourceField} 的第 {percentileValue} 百分位", - "xpack.observability.expView.columns.operation.label": "{sourceField} 的 {operationType}", - "xpack.observability.expView.dateRanger.endDate": "结束日期", - "xpack.observability.expView.dateRanger.startDate": "开始日期", - "xpack.observability.expView.fieldLabels.agentHost": "代理主机", - "xpack.observability.expView.fieldLabels.backend": "后端时间", - "xpack.observability.expView.fieldLabels.browserFamily": "浏览器系列", - "xpack.observability.expView.fieldLabels.browserVersion": "浏览器版本", - "xpack.observability.expView.fieldLabels.carrierLocation": "运营商位置", - "xpack.observability.expView.fieldLabels.carrierName": "运营商名称", - "xpack.observability.expView.fieldLabels.cls": "累计布局偏移", - "xpack.observability.expView.fieldLabels.connectionType": "连接类型", - "xpack.observability.expView.fieldLabels.coreWebVitals": "网站体验核心指标", - "xpack.observability.expView.fieldLabels.cpuUsage": "CPU 使用率", - "xpack.observability.expView.fieldLabels.dcl": "DOM 内容已加载", - "xpack.observability.expView.fieldLabels.device": "设备", - "xpack.observability.expView.fieldLabels.deviceDistribution": "设备分布", - "xpack.observability.expView.fieldLabels.deviceModel": "设备型号", - "xpack.observability.expView.fieldLabels.downPings": "关闭 Ping", - "xpack.observability.expView.fieldLabels.environment": "环境", - "xpack.observability.expView.fieldLabels.fcp": "首次内容绘制", - "xpack.observability.expView.fieldLabels.fid": "首次输入延迟", - "xpack.observability.expView.fieldLabels.hostName": "主机名", - "xpack.observability.expView.fieldLabels.hostOS": "主机 OS", - "xpack.observability.expView.fieldLabels.kpi": "KPI", - "xpack.observability.expView.fieldLabels.kpiOverTime": "时移 KPI", - "xpack.observability.expView.fieldLabels.lcp": "最大内容绘制", - "xpack.observability.expView.fieldLabels.location": "位置", - "xpack.observability.expView.fieldLabels.memoryUsage": "系统内存使用", - "xpack.observability.expView.fieldLabels.metric": "指标", - "xpack.observability.expView.fieldLabels.mobile.memoryUsage": "内存利用率", - "xpack.observability.expView.fieldLabels.mobileApp": "移动应用", - "xpack.observability.expView.fieldLabels.mobileResponse": "移动响应", - "xpack.observability.expView.fieldLabels.monitorDurationLabel": "监测持续时间", - "xpack.observability.expView.fieldLabels.monitorId": "监测 ID", - "xpack.observability.expView.fieldLabels.monitorName": "监测名称", - "xpack.observability.expView.fieldLabels.monitorStatus": "监测状态", - "xpack.observability.expView.fieldLabels.monitorType": "监测类型", - "xpack.observability.expView.fieldLabels.numberOfDevices": "设备数量", - "xpack.observability.expView.fieldLabels.obsLocation": "观察者位置", - "xpack.observability.expView.fieldLabels.onload": "文档完成 (onLoad)", - "xpack.observability.expView.fieldLabels.os": "操作系统", - "xpack.observability.expView.fieldLabels.osPlatform": "OS 平台", - "xpack.observability.expView.fieldLabels.pageLoadTime": "页面加载时间", - "xpack.observability.expView.fieldLabels.pagesLoaded": "已加载页面", - "xpack.observability.expView.fieldLabels.pageViews": "页面查看次数", - "xpack.observability.expView.fieldLabels.performanceDistribution": "性能分布", - "xpack.observability.expView.fieldLabels.pings": "Ping", - "xpack.observability.expView.fieldLabels.port": "端口", - "xpack.observability.expView.fieldLabels.requestMethod": "请求方法", - "xpack.observability.expView.fieldLabels.responseLatency": "延迟", - "xpack.observability.expView.fieldLabels.serviceName": "服务名称", - "xpack.observability.expView.fieldLabels.serviceVersion": "服务版本", - "xpack.observability.expView.fieldLabels.tags": "标签", - "xpack.observability.expView.fieldLabels.tbt": "阻止总时间", - "xpack.observability.expView.fieldLabels.transactionPerMinute": "吞吐量", - "xpack.observability.expView.fieldLabels.upPings": "运行 Ping", - "xpack.observability.expView.fieldLabels.url": "URL", - "xpack.observability.expView.fieldLabels.webApplication": "Web 应用程序", - "xpack.observability.expView.filterValueButton.negate": "不是 {value}", - "xpack.observability.expView.heading.experimental": "实验性", - "xpack.observability.expView.heading.label": "分析数据", - "xpack.observability.expView.heading.openInLens": "在 Lens 中打开", - "xpack.observability.expView.heading.saveLensVisualization": "保存", - "xpack.observability.expView.operationType.75thPercentile": "第 75 个百分位", - "xpack.observability.expView.operationType.90thPercentile": "第 90 个百分位", - "xpack.observability.expView.operationType.95thPercentile": "第 95 个百分位", - "xpack.observability.expView.operationType.99thPercentile": "第 99 个百分位", - "xpack.observability.expView.operationType.average": "平均值", - "xpack.observability.expView.operationType.median": "中值", - "xpack.observability.expView.operationType.sum": "求和", - "xpack.observability.expView.reportType.selectDataType": "选择数据类型以创建可视化。", - "xpack.observability.expView.seriesBuilder.addSeries": "添加序列", - "xpack.observability.expView.seriesBuilder.apply": "应用更改", - "xpack.observability.expView.seriesBuilder.emptyReportDefinition": "选择报告定义以创建可视化。", - "xpack.observability.expView.seriesBuilder.emptyview": "没有可显示的内容。", - "xpack.observability.expView.seriesBuilder.loadingView": "正在加载视图......", - "xpack.observability.expView.seriesBuilder.selectReportType": "未选择任何报告类型", - "xpack.observability.expView.seriesBuilder.selectReportType.empty": "选择报告类型以创建可视化。", - "xpack.observability.expView.seriesEditor.clearFilter": "清除筛选", - "xpack.observability.expView.seriesEditor.notFound": "未找到任何序列。请添加序列。", - "xpack.observability.expView.seriesEditor.removeSeries": "单击移除序列", - "xpack.observability.featureCatalogueDescription": "通过专用 UI 整合您的日志、指标、应用程序跟踪和系统可用性。", - "xpack.observability.featureCatalogueTitle": "可观测性", - "xpack.observability.featureRegistry.linkObservabilityTitle": "案例", - "xpack.observability.feedbackMenu.appName": "可观测性", - "xpack.observability.fieldValueSelection.apply": "应用", - "xpack.observability.fieldValueSelection.loading": "正在加载", - "xpack.observability.fieldValueSelection.placeholder": "筛选 {label}", - "xpack.observability.fieldValueSelection.placeholder.search": "搜索 {label}", - "xpack.observability.filterButton.label": "展开筛选 {label} 的筛选组", - "xpack.observability.filters.expanded.noFilter": "未找到任何筛选。", - "xpack.observability.filters.expanded.search": "搜索 {label}", - "xpack.observability.fleet.button": "试用 Fleet", - "xpack.observability.fleet.text": "通过 Elastic 代理,可以简单统一的方式将日志、指标和其他类型数据的监测添加到主机。您无需安装多个 Beats 和其他代理,以令其更为方便快捷地在基础结构中部署配置。", - "xpack.observability.fleet.title": "您是否了解我们的全新 Fleet?", - "xpack.observability.formatters.hoursTimeUnitLabel": "h", - "xpack.observability.formatters.hoursTimeUnitLabelExtended": "小时", - "xpack.observability.formatters.microsTimeUnitLabel": "μs", - "xpack.observability.formatters.microsTimeUnitLabelExtended": "微秒", - "xpack.observability.formatters.millisTimeUnitLabel": "ms", - "xpack.observability.formatters.millisTimeUnitLabelExtended": "毫秒", - "xpack.observability.formatters.minutesTimeUnitLabel": "最小值", - "xpack.observability.formatters.minutesTimeUnitLabelExtended": "分钟", - "xpack.observability.formatters.secondsTimeUnitLabel": "s", - "xpack.observability.formatters.secondsTimeUnitLabelExtended": "秒", - "xpack.observability.home.addData": "添加数据", - "xpack.observability.navigation.newBadge": "新建", - "xpack.observability.news.readFullStory": "详细了解", - "xpack.observability.news.title": "最新动态", - "xpack.observability.notAvailable": "不可用", - "xpack.observability.overview.alert.allTypes": "所有类型", - "xpack.observability.overview.alert.appLink": "管理告警", - "xpack.observability.overview.alerts.muted": "已静音", - "xpack.observability.overview.alerts.title": "告警", - "xpack.observability.overview.apm.appLink": "在应用中查看", - "xpack.observability.overview.apm.services": "服务", - "xpack.observability.overview.apm.throughput": "吞吐量", - "xpack.observability.overview.apm.title": "APM", - "xpack.observability.overview.exploratoryView": "分析数据", - "xpack.observability.overview.exploratoryView.lensDisabled": "Lens 应用不可用,请启用 Lens 以使用浏览视图。", - "xpack.observability.overview.loadingObservability": "正在加载可观测性", - "xpack.observability.overview.logs.appLink": "在应用中查看", - "xpack.observability.overview.logs.subtitle": "每分钟日志速率", - "xpack.observability.overview.logs.title": "日志", - "xpack.observability.overview.metrics.appLink": "在应用中查看", - "xpack.observability.overview.metrics.colunms.cpu": "CPU %", - "xpack.observability.overview.metrics.colunms.hostname": "主机名", - "xpack.observability.overview.metrics.colunms.load15": "加载 15", - "xpack.observability.overview.metrics.colunms.uptime": "运行时间", - "xpack.observability.overview.metrics.title": "指标", - "xpack.observability.overview.pageTitle": "概览", - "xpack.observability.overview.uptime.appLink": "在应用中查看", - "xpack.observability.overview.uptime.chart.down": "关闭", - "xpack.observability.overview.uptime.chart.up": "运行", - "xpack.observability.overview.uptime.down": "关闭", - "xpack.observability.overview.uptime.monitors": "监测", - "xpack.observability.overview.uptime.title": "运行时间", - "xpack.observability.overview.uptime.up": "运行", - "xpack.observability.overview.ux.appLink": "在应用中查看", - "xpack.observability.overview.ux.title": "用户体验", - "xpack.observability.overviewLinkTitle": "概览", - "xpack.observability.pageLayout.sideNavTitle": "可观测性", - "xpack.observability.resources.documentation": "文档", - "xpack.observability.resources.forum": "讨论论坛", - "xpack.observability.resources.quick_start": "快速入门视频", - "xpack.observability.resources.title": "资源", - "xpack.observability.resources.training": "免费的可观测性课程", - "xpack.observability.section.apps.apm.description": "通过分布式体系结构跟踪事务并映射服务的交互以轻松发现性能瓶颈。", - "xpack.observability.section.apps.apm.title": "APM", - "xpack.observability.section.apps.logs.description": "集中任何源的日志。搜索、跟踪、自动化异常检测并可视化趋势,以便您可以更迅速地采取操作。", - "xpack.observability.section.apps.logs.title": "日志", - "xpack.observability.section.apps.metrics.description": "分析您的基础设施、应用和服务的指标。发现趋势、预测行为、接收异常告警等等。", - "xpack.observability.section.apps.metrics.title": "指标", - "xpack.observability.section.apps.uptime.description": "主动监测站点和服务的可用性。接收告警并更快地解决问题,从而优化用户体验。", - "xpack.observability.section.apps.uptime.title": "运行时间", - "xpack.observability.section.errorPanel": "尝试提取数据时发生错误。请重试", - "xpack.observability.seriesEditor.clone": "复制序列", - "xpack.observability.transactionRateLabel": "{value} tpm", - "xpack.observability.ux.coreVitals.average": "平均值", - "xpack.observability.ux.coreVitals.averageMessage": " 且小于 {bad}", - "xpack.observability.ux.coreVitals.cls": "累计布局偏移", - "xpack.observability.ux.coreVitals.cls.help": "累计布局偏移 (CLS):衡量视觉稳定性。为了提供良好的用户体验,页面的 CLS 应小于 0.1。", - "xpack.observability.ux.coreVitals.fid.help": "首次输入延迟用于衡量交互性。为了提供良好的用户体验,页面的 FID 应小于 100 毫秒。", - "xpack.observability.ux.coreVitals.fip": "首次输入延迟", - "xpack.observability.ux.coreVitals.good": "良好", - "xpack.observability.ux.coreVitals.is": "是", - "xpack.observability.ux.coreVitals.lcp": "最大内容绘制", - "xpack.observability.ux.coreVitals.lcp.help": "最大内容绘制用于衡量加载性能。为了提供良好的用户体验,LCP 应在页面首次开始加载后的 2.5 秒内执行。", - "xpack.observability.ux.coreVitals.legends.good": "良", - "xpack.observability.ux.coreVitals.legends.needsImprovement": "需改进", - "xpack.observability.ux.coreVitals.legends.poor": "差", - "xpack.observability.ux.coreVitals.less": "更少", - "xpack.observability.ux.coreVitals.more": "更多", - "xpack.observability.ux.coreVitals.noData": "没有可用数据。", - "xpack.observability.ux.coreVitals.paletteLegend.rankPercentage": "{labelsInd} ({ranksInd}%)", - "xpack.observability.ux.coreVitals.poor": "不良", - "xpack.observability.ux.coreVitals.takes": "需要", - "xpack.observability.ux.coreWebVitals": "网站体验核心指标", - "xpack.observability.ux.coreWebVitals.browser.support": "浏览器对网站体验核心指标的支持", - "xpack.observability.ux.coreWebVitals.service": "服务", - "xpack.observability.ux.dashboard.webCoreVitals.browser.help": "详细了解", - "xpack.observability.ux.dashboard.webCoreVitals.help": "详细了解", - "xpack.observability.ux.dashboard.webCoreVitals.helpAriaLabel": "帮助", - "xpack.observability.ux.dashboard.webCoreVitals.traffic": "已占 {trafficPerc} 的流量", - "xpack.observability.ux.dashboard.webVitals.palette.tooltip": "{percentage}% 的用户具有{exp }体验,因为 {title} {isOrTakes} {moreOrLess}于 {value}{averageMessage}。", - "xpack.observability.ux.service.help": "选择流量最高的 RUM 服务", + "xpack.apm.views.settings.createAgentConfiguration.title": "创建代理配置", + "xpack.apm.views.settings.customizeUI.title": "定制应用", + "xpack.apm.views.settings.editAgentConfiguration.title": "编辑代理配置", + "xpack.apm.views.settings.indices.title": "索引", + "xpack.apm.views.settings.schema.title": "架构", + "xpack.apm.views.traceOverview.title": "追溯", + "xpack.apm.views.transactions.title": "事务", + "xpack.apm.waterfall.errorCount": "{errorCount, plural, one {查看相关错误} other {查看 # 个相关错误}}", + "xpack.apm.waterfall.exceedsMax": "此跟踪中的项目数超过显示的项目数", "xpack.banners.settings.backgroundColor.description": "设置横幅广告的背景色。{subscriptionLink}", "xpack.banners.settings.backgroundColor.title": "横幅广告背景色", "xpack.banners.settings.placement.description": "在 Elastic 页眉上显示此工作区的顶部横幅广告。{subscriptionLink}", @@ -7363,6 +6630,8 @@ "xpack.canvas.elements.shapeHelpText": "可定制的形状", "xpack.canvas.elements.tableDisplayName": "数据表", "xpack.canvas.elements.tableHelpText": "用于以表格形式显示数据的可滚动网格", + "xpack.canvas.elements.tagCloudDisplayName": "标签云图", + "xpack.canvas.elements.tagCloudHelpText": "标签云图可视化", "xpack.canvas.elements.timeFilterDisplayName": "时间筛选", "xpack.canvas.elements.timeFilterHelpText": "设置时间窗口", "xpack.canvas.elements.verticalBarChartDisplayName": "垂直条形图", @@ -7681,6 +6950,7 @@ "xpack.canvas.functions.timelion.args.query": "Timelion 查询", "xpack.canvas.functions.timelion.args.timezone": "时间范围的时区。请参阅 {MOMENTJS_TIMEZONE_URL}。", "xpack.canvas.functions.timelion.args.to": "表示时间范围结束的 {ELASTICSEARCH} {DATEMATH} 字符串。", + "xpack.canvas.functions.timelion.executionError": "执行 Timelion 查询时出现错误。 检查语法然后重试。", "xpack.canvas.functions.timelionHelpText": "使用 Timelion 可从多个源中提取一个或多个时间序列。", "xpack.canvas.functions.timerange.args.fromHelpText": "时间范围起始", "xpack.canvas.functions.timerange.args.toHelpText": "时间范围结束", @@ -7941,6 +7211,9 @@ "xpack.canvas.uis.arguments.textareaTitle": "文本区域", "xpack.canvas.uis.arguments.toggleLabel": "True/False 切换开关", "xpack.canvas.uis.arguments.toggleTitle": "切换", + "xpack.canvas.uis.arguments.visDimensionDefaultOptionName": "选择列", + "xpack.canvas.uis.arguments.visDimensionLabel": "生成 visConfig 维度对象", + "xpack.canvas.uis.arguments.visDimensionTitle": "列", "xpack.canvas.uis.dataSources.demoData.headingTitle": "此元素正在使用演示数据", "xpack.canvas.uis.dataSources.demoDataDescription": "默认情况下,每个 {canvas} 元素与演示数据源连接。在上面更改数据源以连接到您自有的数据。", "xpack.canvas.uis.dataSources.demoDataLabel": "用于填充默认元素的样例数据集", @@ -8116,6 +7389,27 @@ "xpack.canvas.uis.views.table.args.showHeaderToggleSwitch": "显示标题行", "xpack.canvas.uis.views.tableLabel": "设置表元素的样式", "xpack.canvas.uis.views.tableTitle": "表样式", + "xpack.canvas.uis.views.tagcloud.args.bucketDisplayName": "存储桶", + "xpack.canvas.uis.views.tagcloud.args.bucketHelp": "存储桶维度配置", + "xpack.canvas.uis.views.tagcloud.args.maxFontHeightDisplayName": "最大字体高度", + "xpack.canvas.uis.views.tagcloud.args.maxFontHeightHelp": "元素字体的最大高度", + "xpack.canvas.uis.views.tagcloud.args.metricDisplayName": "指标", + "xpack.canvas.uis.views.tagcloud.args.metricHelp": "指标维度配置", + "xpack.canvas.uis.views.tagcloud.args.minFontHeightDisplayName": "最小字体高度", + "xpack.canvas.uis.views.tagcloud.args.minFontHeightHelp": "元素字体的最小高度", + "xpack.canvas.uis.views.tagcloud.args.orientationDisplayName": "方向", + "xpack.canvas.uis.views.tagcloud.args.orientationHelp": "标签云图内的字方向", + "xpack.canvas.uis.views.tagcloud.args.orientationMultipleLabel": "多个", + "xpack.canvas.uis.views.tagcloud.args.orientationRightAngledLabel": "直角", + "xpack.canvas.uis.views.tagcloud.args.orientationSingleLabel": "单个", + "xpack.canvas.uis.views.tagcloud.args.scaleDisplayName": "比例", + "xpack.canvas.uis.views.tagcloud.args.scaleHelp": "缩放以确定字体大小", + "xpack.canvas.uis.views.tagcloud.args.scaleLinearLabel": "线性", + "xpack.canvas.uis.views.tagcloud.args.scaleLogLabel": "对数", + "xpack.canvas.uis.views.tagcloud.args.scaleSquareRootLabel": "平方根", + "xpack.canvas.uis.views.tagcloud.args.showLabelDisplayName": "显示标签", + "xpack.canvas.uis.views.tagcloud.args.showLabelHelp": "显示图表的标签", + "xpack.canvas.uis.views.tagcloudTitle": "标签云图", "xpack.canvas.uis.views.timefilter.args.columnConfirmButtonLabel": "设置", "xpack.canvas.uis.views.timefilter.args.columnLabel": "应用选定时间的列", "xpack.canvas.uis.views.timefilter.args.columnTitle": "列", @@ -8178,9 +7472,9 @@ "xpack.canvas.workpadConfig.pageSizeBadgeOnClickAriaLabel": "将页面大小设置为 {sizeName}", "xpack.canvas.workpadConfig.swapDimensionsAriaLabel": "交换页面的宽和高", "xpack.canvas.workpadConfig.swapDimensionsTooltip": "交换宽高", - "xpack.canvas.workpadConfig.title": "Workpad 设置", "xpack.canvas.workpadConfig.USLetterButtonLabel": "美国信函", "xpack.canvas.workpadConfig.widthLabel": "宽", + "xpack.canvas.workpadConflict.redirectLabel": "Workpad", "xpack.canvas.workpadCreate.createButtonLabel": "创建 Workpad", "xpack.canvas.workpadHeader.addElementModalCloseButtonLabel": "关闭", "xpack.canvas.workpadHeader.cycleIntervalDaysText": "每 {days} {days, plural, other {天}}", @@ -8261,6 +7555,7 @@ "xpack.canvas.workpadHeaderViewMenu.zoomPrecentageValue": "重置", "xpack.canvas.workpadHeaderViewMenu.zoomResetText": "{scalePercentage}%", "xpack.canvas.workpadImport.filePickerPlaceholder": "导入 Workpad {JSON} 文件", + "xpack.canvas.workpadResolve.redirectLabel": "Workpad", "xpack.canvas.workpadTable.cloneTooltip": "克隆 Workpad", "xpack.canvas.workpadTable.exportTooltip": "导出 Workpad", "xpack.canvas.workpadTable.loadWorkpadArialLabel": "加载 Workpad“{workpadName}”", @@ -8438,6 +7733,8 @@ "xpack.cases.configureCases.caseClosureOptionsSubCases": "不支持自动关闭子案例。", "xpack.cases.configureCases.caseClosureOptionsTitle": "案例关闭", "xpack.cases.configureCases.commentMapping": "注释", + "xpack.cases.configureCases.deprecatedTooltipContent": "此连接器已过时。请进行更新,或创建新连接器。", + "xpack.cases.configureCases.deprecatedTooltipText": "已过时", "xpack.cases.configureCases.fieldMappingDesc": "将数据推送到 { thirdPartyName } 时,将案例字段映射到 { thirdPartyName } 字段。字段映射需要与 { thirdPartyName } 建立连接。", "xpack.cases.configureCases.fieldMappingDescErr": "无法检索 { thirdPartyName } 的映射。", "xpack.cases.configureCases.fieldMappingEditAppend": "追加", @@ -8486,6 +7783,8 @@ "xpack.cases.connectors.serviceNow.alertFieldEnabledText": "是", "xpack.cases.connectors.serviceNow.alertFieldsTitle": "选择要推送的可观察对象", "xpack.cases.connectors.serviceNow.categoryTitle": "类别", + "xpack.cases.connectors.serviceNow.deprecatedConnectorWarningDesc": "请更新此连接器,或创建新连接器。", + "xpack.cases.connectors.serviceNow.deprecatedConnectorWarningTitle": "此连接器类型已过时", "xpack.cases.connectors.serviceNow.destinationIPTitle": "目标 IP", "xpack.cases.connectors.serviceNow.impactSelectFieldLabel": "影响", "xpack.cases.connectors.serviceNow.malwareHashTitle": "恶意软件哈希", @@ -8529,11 +7828,23 @@ "xpack.cases.header.editableTitle.editButtonAria": "通过单击,可以编辑 {title}", "xpack.cases.header.editableTitle.save": "保存", "xpack.cases.markdownEditor.plugins.lens.addVisualizationModalTitle": "添加可视化", - "xpack.cases.markdownEditor.plugins.lens.betaDescription": "案例 Lens 插件不是 GA 版。请通过报告错误来帮助我们。", + "xpack.cases.markdownEditor.plugins.lens.betaDescription": "此模块不是 GA 版。目前每个注释只能插入一个 Lens。请通过报告错误来帮助我们。", "xpack.cases.markdownEditor.plugins.lens.betaLabel": "公测版", + "xpack.cases.markdownEditor.plugins.lens.closeButtonLabel": "关闭", "xpack.cases.markdownEditor.plugins.lens.createVisualizationButtonLabel": "创建可视化", "xpack.cases.markdownEditor.plugins.lens.insertLensSavedObjectModal.searchSelection.notFoundLabel": "未找到匹配的 lens。", "xpack.cases.markdownEditor.plugins.lens.insertLensSavedObjectModal.searchSelection.savedObjectType.lens": "Lens", + "xpack.cases.markdownEditor.plugins.lens.openVisualizationButtonLabel": "打开可视化", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.filterButtonLabel": "类型", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.searchInputHelpText": "通过现有模板或创建新模板来插入 Lens。您将仅为此注释创建 Lens,并且不会更改可视化库。", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.searchInputLabel": "选择 Lens", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.searchInputPrependLabel": "模板", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.searchPlaceholder": "搜索……", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.sortAsc": "升序", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.sortAuto": "最佳匹配", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.sortButtonLabel": "排序", + "xpack.cases.markdownEditor.plugins.lens.savedObjects.finder.sortDesc": "降序", + "xpack.cases.markdownEditor.plugins.lens.visualizationButtonLabel": "可视化", "xpack.cases.markdownEditor.plugins.timeline.noParenthesesErrorMsg": "应为左括号", "xpack.cases.markdownEditor.preview": "预览", "xpack.cases.pageTitle": "案例", @@ -8683,6 +7994,10 @@ "xpack.crossClusterReplication.deleteAutoFollowPattern.confirmModal.deleteSingleTitle": "是否删除自动跟随模式 {name}?", "xpack.crossClusterReplication.deleteAutoFollowPattern.confirmModal.multipleDeletionDescription": "您即将删除以下自动跟随模式:", "xpack.crossClusterReplication.deleteAutoFollowPatternButtonLabel": "删除{total, plural, other {模式}}", + "xpack.crossClusterReplication.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "xpack.crossClusterReplication.deprecations.enabled.manualStepTwoMessage": "将“xpack.ccr.enabled”设置更改为“xpack.ccr.ui.enabled”。", + "xpack.crossClusterReplication.deprecations.enabledMessage": "要禁止用户访问跨集群复制 UI,请使用“xpack.ccr.ui.enabled”设置,而不是“xpack.ccr.enabled”。", + "xpack.crossClusterReplication.deprecations.enabledTitle": "设置“console.enabled”已过时", "xpack.crossClusterReplication.editAutoFollowPatternButtonLabel": "编辑模式", "xpack.crossClusterReplication.editBreadcrumbTitle": "编辑", "xpack.crossClusterReplication.followerIndex.addAction.successNotificationTitle": "已添加 Follower 索引“{name}”", @@ -8987,11 +8302,13 @@ "xpack.dataVisualizer.components.colorRangeLegend.redGreenColorRangeLabel": "红 - 绿", "xpack.dataVisualizer.components.colorRangeLegend.sqrtScaleLabel": "平方根", "xpack.dataVisualizer.components.colorRangeLegend.yellowGreenBlueColorRangeLabel": "黄 - 绿 - 蓝", + "xpack.dataVisualizer.customIntegrationsDescription": "从 CSV、TSV、JSON 或其他日志文件上传数据到 Elasticsearch 以进行分析。", "xpack.dataVisualizer.dataGrid.collapseDetailsForAllAriaLabel": "收起所有字段的详细信息", "xpack.dataVisualizer.dataGrid.distinctValuesColumnName": "不同值", "xpack.dataVisualizer.dataGrid.distributionsColumnName": "分布", "xpack.dataVisualizer.dataGrid.documentsCountColumnName": "文档 (%)", "xpack.dataVisualizer.dataGrid.expandDetailsForAllAriaLabel": "展开所有字段的详细信息", + "xpack.dataVisualizer.dataGrid.field.addFilterAriaLabel": "筛留 {fieldName}:“{value}”", "xpack.dataVisualizer.dataGrid.field.cardBoolean.valuesLabel": "值", "xpack.dataVisualizer.dataGrid.field.cardDate.earliestLabel": "最早", "xpack.dataVisualizer.dataGrid.field.cardDate.latestLabel": "最新", @@ -9004,6 +8321,7 @@ "xpack.dataVisualizer.dataGrid.field.metricDistributionChart.seriesName": "分布", "xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueBetweenLabel": "{percent}% 的文档具有介于 {minValFormatted} 和 {maxValFormatted} 之间的值", "xpack.dataVisualizer.dataGrid.field.metricDistributionChart.tooltipValueEqualLabel": "{percent}% 的文档的值为 {valFormatted}", + "xpack.dataVisualizer.dataGrid.field.removeFilterAriaLabel": "筛除 {fieldName}:“{value}”", "xpack.dataVisualizer.dataGrid.field.topValues.calculatedFromSampleDescription": "基于每个分片的 {topValuesSamplerShardSize} 文档样例计算", "xpack.dataVisualizer.dataGrid.field.topValuesLabel": "排名最前值", "xpack.dataVisualizer.dataGrid.fieldExpandedRow.booleanContent.falseCountLabel": "false", @@ -9039,7 +8357,17 @@ "xpack.dataVisualizer.fieldStats.maxTitle": "最大值", "xpack.dataVisualizer.fieldStats.medianTitle": "中值", "xpack.dataVisualizer.fieldStats.minTitle": "最小值", + "xpack.dataVisualizer.fieldTypeIcon.booleanTypeLabel": "布尔型", + "xpack.dataVisualizer.fieldTypeIcon.dateTypeLabel": "日期", "xpack.dataVisualizer.fieldTypeIcon.fieldTypeTooltip": "{type} 类型", + "xpack.dataVisualizer.fieldTypeIcon.geoPointTypeLabel": "地理点", + "xpack.dataVisualizer.fieldTypeIcon.geoShapeTypeLabel": "几何形状", + "xpack.dataVisualizer.fieldTypeIcon.histogramTypeLabel": "直方图", + "xpack.dataVisualizer.fieldTypeIcon.ipTypeLabel": "IP", + "xpack.dataVisualizer.fieldTypeIcon.keywordTypeLabel": "关键字", + "xpack.dataVisualizer.fieldTypeIcon.numberTypeLabel": "数字", + "xpack.dataVisualizer.fieldTypeIcon.textTypeLabel": "文本", + "xpack.dataVisualizer.fieldTypeIcon.unknownTypeLabel": "未知", "xpack.dataVisualizer.fieldTypeSelect": "字段类型", "xpack.dataVisualizer.file.aboutPanel.analyzingDataTitle": "正在分析数据", "xpack.dataVisualizer.file.aboutPanel.selectOrDragAndDropFileDescription": "选择或拖放文件", @@ -9188,6 +8516,7 @@ "xpack.dataVisualizer.index.fullTimeRangeSelector.errorSettingTimeRangeNotification": "设置时间范围时出错。", "xpack.dataVisualizer.index.fullTimeRangeSelector.useFullDataButtonLabel": "使用完整的 {indexPatternTitle} 数据", "xpack.dataVisualizer.index.indexPatternNotBasedOnTimeSeriesNotificationDescription": "仅针对基于时间的索引运行异常检测", + "xpack.dataVisualizer.index.indexPatternNotBasedOnTimeSeriesNotificationTitle": "索引模式 {indexPatternTitle} 不基于时间序列", "xpack.dataVisualizer.index.lensChart.averageOfLabel": "{fieldName} 的平均值", "xpack.dataVisualizer.index.lensChart.chartTitle": "{fieldName} 的 Lens", "xpack.dataVisualizer.index.lensChart.countLabel": "计数", @@ -9198,6 +8527,7 @@ "xpack.dataVisualizer.removeCombinedFieldsLabel": "移除组合字段", "xpack.dataVisualizer.searchPanel.allFieldsLabel": "所有字段", "xpack.dataVisualizer.searchPanel.allOptionLabel": "搜索全部", + "xpack.dataVisualizer.searchPanel.invalidSyntax": "语法无效", "xpack.dataVisualizer.searchPanel.numberFieldsLabel": "字段数目", "xpack.dataVisualizer.searchPanel.ofFieldsTotal": ",共 {totalCount} 个", "xpack.dataVisualizer.searchPanel.queryBarPlaceholder": "选择较小的样例大小将减少查询运行时间和集群上的负载。", @@ -9220,7 +8550,9 @@ "xpack.enterpriseSearch.actions.manageButtonLabel": "管理", "xpack.enterpriseSearch.actions.resetDefaultButtonLabel": "重置为默认值", "xpack.enterpriseSearch.actions.saveButtonLabel": "保存", + "xpack.enterpriseSearch.actions.startButtonLabel": "启动", "xpack.enterpriseSearch.actions.updateButtonLabel": "更新", + "xpack.enterpriseSearch.actions.viewButtonLabel": "查看", "xpack.enterpriseSearch.actionsHeader": "操作", "xpack.enterpriseSearch.appSearch.actions.restoreDefaultsButonLabel": "还原默认值", "xpack.enterpriseSearch.appSearch.adminRoleTypeDescription": "管理员可以执行任何操作,但不包括管理帐户设置。", @@ -9232,7 +8564,7 @@ "xpack.enterpriseSearch.appSearch.crawler.addDomainFlyout.description": "可以将多个域添加到此引擎的网络爬虫。在此添加其他域并从“管理”页面修改入口点和爬网规则。", "xpack.enterpriseSearch.appSearch.crawler.addDomainFlyout.openButtonLabel": "添加域", "xpack.enterpriseSearch.appSearch.crawler.addDomainFlyout.title": "添加新域", - "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.contentVerificationFalureMessage": "因为“网络连接性”检查失败,所以无法验证内容。", + "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.contentVerificationFalureMessage": "因为“索引限制”检查失败,所以无法验证内容。", "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.contentVerificationLabel": "内容验证", "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.entryPointLabel": "网络爬虫入口点已设置为 {entryPointValue}", "xpack.enterpriseSearch.appSearch.crawler.addDomainForm.errorsTitle": "出问题了。请解决这些错误,然后重试。", @@ -9294,7 +8626,9 @@ "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.description": "创建爬网规则以包括或排除 URL 匹配规则的页面。规则按顺序运行,每个 URL 根据第一个匹配进行评估。{link}", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.descriptionLinkText": "详细了解爬网规则", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.pathPatternTableHead": "路径模式", + "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.pathPatternTooltip": "路径模式为文本字符串,但星号 (*) 字符除外,它是将匹配任何内容的元字符。", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.policyTableHead": "策略", + "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.regexPathPatternTooltip": "路径模式是与 Ruby 语言正则表达式引擎兼容的正则表达式。", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.ruleTableHead": "规则", "xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.title": "爬网规则", "xpack.enterpriseSearch.appSearch.crawler.deduplicationPanel.allFieldsLabel": "所有字段", @@ -9380,6 +8714,22 @@ "xpack.enterpriseSearch.appSearch.credentials.title": "凭据", "xpack.enterpriseSearch.appSearch.credentials.updateWarning": "现有 API 密钥可在用户之间共享。更改此密钥的权限将影响有权访问此密钥的所有用户。", "xpack.enterpriseSearch.appSearch.credentials.updateWarningTitle": "谨慎操作!", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestions.allowButtonDescription": "为此查询启用建议", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestions.allowButtonLabel": "允许", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestionsPanel.allowQuerySuccessMessage": "您将收到有关此查询的未来建议的通知", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestionsPanel.description": "您将不会收到有关这些查询的建议的通知", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestionsPanel.queryColumnName": "查询", + "xpack.enterpriseSearch.appSearch.curations.ignoredSuggestionsPanel.title": "忽略的查询", + "xpack.enterpriseSearch.appSearch.curations.settings.acceptNewSuggesstionsSwitchLabel": "自动接受新建议", + "xpack.enterpriseSearch.appSearch.curations.settings.analyticsDisabledCalloutDescription": "自动策展需要在您帐户上启用分析。", + "xpack.enterpriseSearch.appSearch.curations.settings.analyticsDisabledCalloutTitle": "已禁用分析", + "xpack.enterpriseSearch.appSearch.curations.settings.automaticCurationsDescription": "建议策展将监测您引擎的分析并自动提出建议,以帮助您交付最相关的结果。可以接受、拒绝或修改每个建议策展。", + "xpack.enterpriseSearch.appSearch.curations.settings.automaticCurationsTitle": "自动策展", + "xpack.enterpriseSearch.appSearch.curations.settings.enableautomaticCurationsSwitchLabel": "启用自动化建议", + "xpack.enterpriseSearch.appSearch.curations.settings.licenseUpgradeCTASubtitle": "升级到 {platinumLicenseName} 许可证以充分利用 Machine Learning。通过分析您引擎的分析,App Search 能够建议新的或已更新的策展。轻松帮助您的用户准确找到他们寻找的内容。立即开始免费试用。", + "xpack.enterpriseSearch.appSearch.curations.settings.licenseUpgradeCTATitle": "自动策展简介", + "xpack.enterpriseSearch.appSearch.curations.settings.manageAnalyticsButtonLabel": "管理分析", + "xpack.enterpriseSearch.appSearch.curations.settings.platinum": "白金级", "xpack.enterpriseSearch.appSearch.DEV_ROLE_TYPE_DESCRIPTION": "开发人员可以管理引擎的所有方面。", "xpack.enterpriseSearch.appSearch.documentCreation.api.description": "{documentsApiLink} 可用于将新文档添加到您的引擎、更新文档、按 ID 检索文档以及删除文档。有各种{clientLibrariesLink}可帮助您入门。", "xpack.enterpriseSearch.appSearch.documentCreation.api.example": "要了解如何使用 API,可以在下面通过命令行或客户端库试用示例请求。", @@ -9388,7 +8738,7 @@ "xpack.enterpriseSearch.appSearch.documentCreation.buttons.crawl": "使用网络爬虫", "xpack.enterpriseSearch.appSearch.documentCreation.buttons.file": "上传 JSON 文件", "xpack.enterpriseSearch.appSearch.documentCreation.buttons.text": "粘贴 JSON", - "xpack.enterpriseSearch.appSearch.documentCreation.description": "有四种方法将文档发送到引擎进行索引。您可以粘贴原始 JSON、上传 {jsonCode} 文件、{postCode} 到 {documentsApiLink} 终结点,或者测试新的 Elastic 网络爬虫(公测版)来自动索引 URL 的文档。单击下面的选项。", + "xpack.enterpriseSearch.appSearch.documentCreation.description": "有四种方法将文档发送到引擎进行索引。您可以粘贴原始 JSON、上传 {jsonCode} 文件、{postCode} 到 {documentsApiLink} 终端,或者使用新的 Elastic 网络爬虫来自动索引 URL 的文档。单击下面的选项。", "xpack.enterpriseSearch.appSearch.documentCreation.errorsTitle": "出问题了。请解决这些错误,然后重试。", "xpack.enterpriseSearch.appSearch.documentCreation.largeFile": "您正在上传极大的文件。这可能会锁定您的浏览器,或需要很长时间才能处理完。如果可能,请尝试将您的数据拆分成多个较小的文件。", "xpack.enterpriseSearch.appSearch.documentCreation.noFileFound": "未找到文件。", @@ -9516,12 +8866,25 @@ "xpack.enterpriseSearch.appSearch.engine.apiLogs.title": "API 日志", "xpack.enterpriseSearch.appSearch.engine.apiLogs.userAgentTitle": "用户代理", "xpack.enterpriseSearch.appSearch.engine.crawler.title": "网络爬虫", + "xpack.enterpriseSearch.appSearch.engine.curation.automatedLabel": "自动", + "xpack.enterpriseSearch.appSearch.engine.curation.convertToManualCurationButtonLabel": "转换到手动策展", + "xpack.enterpriseSearch.appSearch.engine.curation.detail.historyButtonLabel": "历史记录", + "xpack.enterpriseSearch.appSearch.engine.curation.detail.historyTableDescription": "您的自动策展的最近更改的详细日志。", + "xpack.enterpriseSearch.appSearch.engine.curation.detail.historyTableTitle": "自动策展更改", + "xpack.enterpriseSearch.appSearch.engine.curation.suggestedDocumentsCallout.description": "基于您引擎的分析,新的建议文档提升已准备就绪,可供复查。", + "xpack.enterpriseSearch.appSearch.engine.curation.suggestedDocumentsCallout.title": "此查询的新建议文档", + "xpack.enterpriseSearch.appSearch.engine.curations.actionsPopoverAriaLabel": "更多建议操作", + "xpack.enterpriseSearch.appSearch.engine.curations.activeQueryHelpText": "选择查询以查看它们的有机搜索结果", "xpack.enterpriseSearch.appSearch.engine.curations.activeQueryLabel": "活动查询", "xpack.enterpriseSearch.appSearch.engine.curations.addQueryButtonLabel": "添加查询", "xpack.enterpriseSearch.appSearch.engine.curations.addResult.buttonLabel": "手动添加结果", "xpack.enterpriseSearch.appSearch.engine.curations.addResult.searchEmptyDescription": "未找到匹配内容。", "xpack.enterpriseSearch.appSearch.engine.curations.addResult.searchPlaceholder": "搜索引擎文档", "xpack.enterpriseSearch.appSearch.engine.curations.addResult.title": "将结果添加到策展", + "xpack.enterpriseSearch.appSearch.engine.curations.automatedCurationsHistoryPanel.queryColumnHeader": "查询", + "xpack.enterpriseSearch.appSearch.engine.curations.automatedCurationsHistoryPanel.tableDecription": "您的自动策展的最近更改的详细日志。", + "xpack.enterpriseSearch.appSearch.engine.curations.automatedCurationsHistoryPanel.tableTitle": "自动策展更改", + "xpack.enterpriseSearch.appSearch.engine.curations.convertToManualCurationConfirmation": "是否确定要将此策展转换为手动策展?", "xpack.enterpriseSearch.appSearch.engine.curations.create.curationQueriesDescription": "添加要策展的一个或多个查询。之后将能够添加或删除更多查询。", "xpack.enterpriseSearch.appSearch.engine.curations.create.curationQueriesTitle": "策展查询", "xpack.enterpriseSearch.appSearch.engine.curations.create.title": "创建策展", @@ -9533,27 +8896,73 @@ "xpack.enterpriseSearch.appSearch.engine.curations.empty.noCurationsTitle": "创建您的首个策展", "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.emptyDescription": "通过单击上面有机结果上的眼睛图标,可隐藏文档,或手动搜索和隐藏结果。", "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.emptyTitle": "您尚未隐藏任何文档", - "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.removeAllButtonLabel": "全部还原", - "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.title": "隐藏的文档", + "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.removeAllButtonLabel": "全部取消隐藏", + "xpack.enterpriseSearch.appSearch.engine.curations.hiddenDocuments.title": "隐藏结果", "xpack.enterpriseSearch.appSearch.engine.curations.hideButtonLabel": "隐藏此结果", + "xpack.enterpriseSearch.appSearch.engine.curations.historyPageTabLabel": "历史记录", "xpack.enterpriseSearch.appSearch.engine.curations.manage.title": "管理策展", "xpack.enterpriseSearch.appSearch.engine.curations.manageQueryButtonLabel": "管理查询", "xpack.enterpriseSearch.appSearch.engine.curations.manageQueryDescription": "编辑、添加或移除此策展的查询。", "xpack.enterpriseSearch.appSearch.engine.curations.manageQueryTitle": "管理查询", + "xpack.enterpriseSearch.appSearch.engine.curations.newBadgeLabel": "新!", + "xpack.enterpriseSearch.appSearch.engine.curations.organicDocuments.description": "没有要显示的有机结果。{manualDescription}", + "xpack.enterpriseSearch.appSearch.engine.curations.organicDocuments.manualDescription": "在上面添加或更改活动查询。", "xpack.enterpriseSearch.appSearch.engine.curations.organicDocuments.title": "“{currentQuery}”的排名靠前有机文档", "xpack.enterpriseSearch.appSearch.engine.curations.overview.title": "已策展结果", + "xpack.enterpriseSearch.appSearch.engine.curations.overviewPageTabLabel": "概览", "xpack.enterpriseSearch.appSearch.engine.curations.promoteButtonLabel": "提升此结果", + "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.automatedEmptyDescription": "我们尚未确定任何要提升的文档", "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.emptyDescription": "使用星号标记来自下面有机结果的文档或手动搜索或提升结果。", + "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.managedByAppSearchDescription": "此策展正由 App Search 自动执行", "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.removeAllButtonLabel": "全部降低", - "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.title": "提升文档", + "xpack.enterpriseSearch.appSearch.engine.curations.promotedDocuments.title": "已提升结果", "xpack.enterpriseSearch.appSearch.engine.curations.queryPlaceholder": "输入查询", + "xpack.enterpriseSearch.appSearch.engine.curations.rejectedCurationsHistoryPanel.queryColumnHeader": "查询", + "xpack.enterpriseSearch.appSearch.engine.curations.rejectedCurationsHistoryPanel.tableDescription": "查看您之前拒绝的建议。", + "xpack.enterpriseSearch.appSearch.engine.curations.rejectedCurationsHistoryPanel.tableTitle": "最近拒绝的建议", "xpack.enterpriseSearch.appSearch.engine.curations.restoreConfirmation": "确定要清除更改并返回到默认结果?", "xpack.enterpriseSearch.appSearch.engine.curations.resultActionsDescription": "通过单击星号提升结果,通过单击眼睛隐藏结果。", + "xpack.enterpriseSearch.appSearch.engine.curations.settingsPageTabLabel": "设置", "xpack.enterpriseSearch.appSearch.engine.curations.showButtonLabel": "显示此结果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.acceptButtonLabel": "接受", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsAcceptButtonLabel": "接受此建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsAutomateButtonLabel": "自动化 - 始终接受此查询的新建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsPopoverTitle": "管理建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsRejectButtonLabel": "拒绝此建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.actionsTurnOffButtonLabel": "拒绝并关闭此查询的建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.breadcrumbLabel": "已建议:{query}", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.collapseButtonLabel": "折叠有机搜索结果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.currentTitle": "当前", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.expandButtonLabel": "展开有机搜索结果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.noOrganicResultsDescription": "未返回此查询的任何有机搜索结果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.noOrganicResultsTitle": "无结果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.noResultsMessage": "此查询当前没有任何已提升的文档", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.notFoundError": "找不到建议,可能已应用或拒绝建议。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.rejectButtonLabel": "拒绝", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.resultPanelDescription": "此策展可以由 App Search 自动执行", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.resultPanelTitle": "已提升结果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.successfullyAppliedMessage": "已成功应用建议。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.successfullyAutomatedMessage": "已成功应用建议,将自动应用查询“{query}”的所有未来建议。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.successfullyDisabledMessage": "已成功拒绝建议,将不再收到查询“{query}”的建议。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.successfullyRejectedMessage": "已成功拒绝建议。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.suggestionTitle": "已建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestedCuration.title": "管理建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsCallout.hideForNowLabel": "暂时隐藏此项", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsCallout.reviewSuggestionsButtonLabel": "复查建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.column.lastUpdatedTableHeader": "上次更新时间", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.column.promotedDocumentsTableHeader": "已提升结果", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.column.queryTableHeader": "查询", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.description": "根据您的分析,可以通过提升某些文档来改进以下查询的结果。", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.overridesLabel": "覆盖", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.title": "{totalSuggestions} 个建议", + "xpack.enterpriseSearch.appSearch.engine.curations.suggestionsTable.viewTooltip": "查看建议", + "xpack.enterpriseSearch.appSearch.engine.curations.table.automatedLabel": "自动", "xpack.enterpriseSearch.appSearch.engine.curations.table.column.lastUpdated": "上次更新时间", "xpack.enterpriseSearch.appSearch.engine.curations.table.column.queries": "查询", "xpack.enterpriseSearch.appSearch.engine.curations.table.deleteTooltip": "删除策展", "xpack.enterpriseSearch.appSearch.engine.curations.table.editTooltip": "编辑策展", + "xpack.enterpriseSearch.appSearch.engine.curations.table.newSuggestionLabel": "新建议", + "xpack.enterpriseSearch.appSearch.engine.curations.table.title": "活动策展", "xpack.enterpriseSearch.appSearch.engine.curations.title": "策展", "xpack.enterpriseSearch.appSearch.engine.documents.empty.buttonLabel": "阅读文档指南", "xpack.enterpriseSearch.appSearch.engine.metaEngineBadge": "元引擎", @@ -9731,6 +9140,8 @@ "xpack.enterpriseSearch.appSearch.engine.souceEngines.addSourceEnginesSuccessMessage": "{sourceEnginesCount, plural, other {# 个引擎已}}添加到此元引擎", "xpack.enterpriseSearch.appSearch.engine.souceEngines.removeSourceEngineSuccessMessage": "引擎“{engineName}”已从此元引擎移除", "xpack.enterpriseSearch.appSearch.engine.souceEngines.title": "管理引擎", + "xpack.enterpriseSearch.appSearch.engine.suggestedCurationsCallout.description": "基于您引擎的分析,新的建议策展已准备就绪,可供复查。", + "xpack.enterpriseSearch.appSearch.engine.suggestedCurationsCallout.title": "要复查的新建议策展", "xpack.enterpriseSearch.appSearch.engine.synonyms.createSuccessMessage": "同义词集已创建", "xpack.enterpriseSearch.appSearch.engine.synonyms.createSynonymSetButtonLabel": "创建同义词集", "xpack.enterpriseSearch.appSearch.engine.synonyms.createSynonymSetTitle": "添加同义词集", @@ -9795,6 +9206,12 @@ "xpack.enterpriseSearch.appSearch.enginesOverview.table.column.language": "语言", "xpack.enterpriseSearch.appSearch.enginesOverview.table.column.name": "名称", "xpack.enterpriseSearch.appSearch.enginesOverview.title": "引擎概览", + "xpack.enterpriseSearch.appSearch.integrations.apiDescription": "通过 App Search 稳健的 API 将搜索功能添加到您的应用程序。", + "xpack.enterpriseSearch.appSearch.integrations.apiName": "API", + "xpack.enterpriseSearch.appSearch.integrations.jsonDescription": "通过 App Search 搜索您的 JSON 数据。", + "xpack.enterpriseSearch.appSearch.integrations.jsonName": "JSON", + "xpack.enterpriseSearch.appSearch.integrations.webCrawlerDescription": "通过 App Search 的网络爬虫将搜索功能添加到您的网站。", + "xpack.enterpriseSearch.appSearch.integrations.webCrawlerName": "网络爬虫", "xpack.enterpriseSearch.appSearch.logRetention.callout.description.manageSettingsDetail": "要管理分析和日志记录,请{visitSettingsLink}。", "xpack.enterpriseSearch.appSearch.logRetention.callout.description.manageSettingsLinkText": "访问您的设置", "xpack.enterpriseSearch.appSearch.logRetention.callout.disabledSinceTitle": "自 {disabledDate}后,{logsTitle} 已禁用。", @@ -9809,6 +9226,8 @@ "xpack.enterpriseSearch.appSearch.logRetention.type.analytics.title.lowercase": "分析", "xpack.enterpriseSearch.appSearch.logRetention.type.api.title.capitalized": "API", "xpack.enterpriseSearch.appSearch.logRetention.type.api.title.lowercase": "API", + "xpack.enterpriseSearch.appSearch.logRetention.type.crawler.title.capitalized": "网络爬虫", + "xpack.enterpriseSearch.appSearch.logRetention.type.crawler.title.lowercase": "网络爬虫", "xpack.enterpriseSearch.appSearch.metaEngineCreation.form.documentationDescription": "{documentationLink}以了解如何开始。", "xpack.enterpriseSearch.appSearch.metaEngineCreation.form.documentationLink": "阅读文档", "xpack.enterpriseSearch.appSearch.metaEngineCreation.form.engineName.allowedCharactersHelpText": "元引擎名称只能包含小写字母、数字和连字符", @@ -9828,11 +9247,12 @@ "xpack.enterpriseSearch.appSearch.multiInputRows.inputRowPlaceholder": "输入值", "xpack.enterpriseSearch.appSearch.multiInputRows.removeValueButtonLabel": "删除值", "xpack.enterpriseSearch.appSearch.ownerRoleTypeDescription": "所有者可以执行任何操作。该帐户可以有很多所有者,但任何时候必须至少有一个所有者。", - "xpack.enterpriseSearch.appSearch.productCardDescription": "设计强大的搜索并将其部署到您的网站和应用。", + "xpack.enterpriseSearch.appSearch.productCardDescription": "为您的网站和 Web/移动应用设计、部署并管理强大的搜索体验。", "xpack.enterpriseSearch.appSearch.productDescription": "利用仪表板、分析和 API 执行高级应用程序搜索简单易行。", "xpack.enterpriseSearch.appSearch.productName": "App Search", "xpack.enterpriseSearch.appSearch.result.documentDetailLink": "访问文档详情", "xpack.enterpriseSearch.appSearch.result.hideAdditionalFields": "隐藏其他字段", + "xpack.enterpriseSearch.appSearch.result.resultPositionLabel": "#{resultPosition}", "xpack.enterpriseSearch.appSearch.result.showAdditionalFields": "显示其他 {numberOfAdditionalFields, number} 个{numberOfAdditionalFields, plural, other {字段}}", "xpack.enterpriseSearch.appSearch.result.title": "文档 {id}", "xpack.enterpriseSearch.appSearch.roleMappingCreatedMessage": "您的角色映射已创建", @@ -9844,6 +9264,7 @@ "xpack.enterpriseSearch.appSearch.sampleEngineCreationCta.title": "刚做过测试?", "xpack.enterpriseSearch.appSearch.settings.logRetention.analytics.label": "记录分析事件", "xpack.enterpriseSearch.appSearch.settings.logRetention.api.label": "记录 API 事件", + "xpack.enterpriseSearch.appSearch.settings.logRetention.crawler.label": "网络爬虫日志", "xpack.enterpriseSearch.appSearch.settings.logRetention.description": "日志保留由适用于您的部署的 ILM 策略决定。", "xpack.enterpriseSearch.appSearch.settings.logRetention.learnMore": "详细了解企业搜索的日志保留。", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.analytics.description": "禁用写入时,引擎将停止记录分析事件。您的已有数据将根据存储期限进行删除。", @@ -9852,6 +9273,9 @@ "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.api.description": "禁用写入时,引擎将停止记录 API 事件。您的已有数据将根据存储期限进行删除。", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.api.subheading": "当前您的 API 日志将存储 {minAgeDays} 天。", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.api.title": "禁用 API 写入", + "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.crawler.description": "禁用写入时,引擎将停止记录网络爬虫事件。您的已有数据将根据存储期限进行删除。", + "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.crawler.subheading": "当前您的网络爬虫日志将存储 {minAgeDays} 天。", + "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.crawler.title": "禁用网络爬虫写入", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.disable": "禁用", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.prompt": "键入“{target}”以确认。", "xpack.enterpriseSearch.appSearch.settings.logRetention.modal.recovery": "您无法恢复删除的数据。", @@ -9879,6 +9303,8 @@ "xpack.enterpriseSearch.appSearch.tokens.search.description": "公有搜索密钥仅用于搜索终端。", "xpack.enterpriseSearch.appSearch.tokens.search.name": "公有搜索密钥", "xpack.enterpriseSearch.appSearch.tokens.update": "API 密钥“{name}”已更新", + "xpack.enterpriseSearch.curations.settings.licenseUpgradeLink": "详细了解许可证升级", + "xpack.enterpriseSearch.curations.settings.start30DayTrialButtonLabel": "开始为期 30 天的试用", "xpack.enterpriseSearch.emailLabel": "电子邮件", "xpack.enterpriseSearch.enterpriseSearch.setupGuide.description": "随时随地进行全面搜索。为工作繁忙的团队轻松实现强大的现代搜索体验。将预先调整的搜索功能快速添加到您的网站、应用或工作区。全面搜索就是这么简单。", "xpack.enterpriseSearch.enterpriseSearch.setupGuide.notConfigured": "企业搜索尚未在您的 Kibana 实例中配置。", @@ -9890,8 +9316,8 @@ "xpack.enterpriseSearch.errorConnectingState.setupGuideCta": "阅读设置指南", "xpack.enterpriseSearch.errorConnectingState.title": "无法连接", "xpack.enterpriseSearch.errorConnectingState.troubleshootAuth": "检查您的用户身份验证:", - "xpack.enterpriseSearch.errorConnectingState.troubleshootAuthNative": "必须使用 Elasticsearch 本机身份验证或 SSO/SAML 执行身份验证。", - "xpack.enterpriseSearch.errorConnectingState.troubleshootAuthSAML": "如果使用的是 SSO/SAML,则还必须在“企业搜索”中设置 SAML 领域。", + "xpack.enterpriseSearch.errorConnectingState.troubleshootAuthNative": "必须使用 Elasticsearch 本机身份验证、SSO/SAML 或 OpenID Connect 执行身份验证。", + "xpack.enterpriseSearch.errorConnectingState.troubleshootAuthSAML": "如果使用外部 SSO 提供程序,如 SAML 或 OpenID Connect,还必须在 Enterprise Search 上设置 SAML/OIDC Realm。", "xpack.enterpriseSearch.FeatureCatalogue.description": "使用一组优化的 API 和工具打造搜索体验。", "xpack.enterpriseSearch.hiddenText": "隐藏文本", "xpack.enterpriseSearch.inlineEditableTable.newRowButtonLabel": "新行", @@ -9945,6 +9371,9 @@ "xpack.enterpriseSearch.roleMapping.invitationDescription": "此 URL 可共享给用户,允许他们接受企业搜索邀请和设置新密码", "xpack.enterpriseSearch.roleMapping.invitationLink": "企业搜索邀请链接", "xpack.enterpriseSearch.roleMapping.invitationPendingLabel": "邀请未决", + "xpack.enterpriseSearch.roleMapping.kibanaAccessWarningDescription": "考虑为他们提供“enterprise-search-user”角色。", + "xpack.enterpriseSearch.roleMapping.kibanaAccessWarningErrorMessage": "此 Elasticsearch 用户在 Elasticsearch 没有 Enterprise Search 角色。他们可能无法访问 Kibana。", + "xpack.enterpriseSearch.roleMapping.kibanaAccessWarningTitle": "Kibana 访问警告", "xpack.enterpriseSearch.roleMapping.manageRoleMappingTitle": "管理角色映射", "xpack.enterpriseSearch.roleMapping.newInvitationLabel": "邀请 URL", "xpack.enterpriseSearch.roleMapping.newRoleMappingTitle": "添加角色映射", @@ -10031,8 +9460,17 @@ "xpack.enterpriseSearch.troubleshooting.differentEsClusters.title": "{productName} 和 Kibana 在不同的 Elasticsearch 集群中", "xpack.enterpriseSearch.troubleshooting.standardAuth.description": "此插件不完全支持使用 {standardAuthLink} 的 {productName}。{productName} 中创建的用户必须具有 Kibana 访问权限。Kibana 中创建的用户在导航菜单中将看不到 {productName}。", "xpack.enterpriseSearch.troubleshooting.standardAuth.title": "不支持使用标准身份验证的 {productName}", + "xpack.enterpriseSearch.units.allDaysLabel": "所有日期", "xpack.enterpriseSearch.units.daysLabel": "天", + "xpack.enterpriseSearch.units.daysOfWeekLabel.friday": "星期五", + "xpack.enterpriseSearch.units.daysOfWeekLabel.monday": "星期一", + "xpack.enterpriseSearch.units.daysOfWeekLabel.saturday": "星期六", + "xpack.enterpriseSearch.units.daysOfWeekLabel.sunday": "星期日", + "xpack.enterpriseSearch.units.daysOfWeekLabel.thursday": "星期四", + "xpack.enterpriseSearch.units.daysOfWeekLabel.tuesday": "星期二", + "xpack.enterpriseSearch.units.daysOfWeekLabel.wednesday": "星期三", "xpack.enterpriseSearch.units.hoursLabel": "小时", + "xpack.enterpriseSearch.units.minutesLabel": "分钟", "xpack.enterpriseSearch.units.monthsLabel": "月", "xpack.enterpriseSearch.units.weeksLabel": "周", "xpack.enterpriseSearch.usernameLabel": "用户名", @@ -10051,6 +9489,8 @@ "xpack.enterpriseSearch.workplaceSearch.and": "且", "xpack.enterpriseSearch.workplaceSearch.baseUri.label": "基 URI", "xpack.enterpriseSearch.workplaceSearch.baseUrl.label": "基 URL", + "xpack.enterpriseSearch.workplaceSearch.betweenLabel": "介于", + "xpack.enterpriseSearch.workplaceSearch.blockLabel": "阻止", "xpack.enterpriseSearch.workplaceSearch.clientId.label": "客户端 ID", "xpack.enterpriseSearch.workplaceSearch.clientSecret.label": "客户端密钥", "xpack.enterpriseSearch.workplaceSearch.comfirmModal.title": "请确认", @@ -10065,8 +9505,8 @@ "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.emptyTitle": "没有可用源", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.newSourceDescription": "配置并连接源时,您将会使用从内容平台本身同步的可搜索内容创建不同的实体。可以使用以下一个可用连接器添加源,也可以通过定制 API 源,实现更多的灵活性。", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.noSourcesTitle": "配置并连接您的首个内容源", - "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.orgSourceDescription": "共享内容源可供整个组织使用,也可以分配给指定用户组。", - "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.orgSourcesTitle": "添加共享内容源", + "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.orgSourceDescription": "组织内容源可供整个组织使用,也可以分配给指定用户组。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.orgSourcesTitle": "添加组织内容源", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.placeholder": "筛选源......", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.privateSourceDescription": "连接新源以将其内容和文档添加到您搜索体验中。", "xpack.enterpriseSearch.workplaceSearch.contentSource.addSourceList.privateSourcesTitle": "添加新的内容源", @@ -10082,11 +9522,15 @@ "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.orgCanConnect.message": "{name} 现在可连接到 Workplace Search", "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.personalConnectLink.message": "用户现在可从个人仪表板上链接自己的 {name} 帐户。", "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.privateDisabled.button": "详细了解专用内容源。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.privateDisabled.link": "启用专用源连接", "xpack.enterpriseSearch.workplaceSearch.contentSource.configCompleted.privateDisabled.message": "切记在安全设置中{securityLink}。", "xpack.enterpriseSearch.workplaceSearch.contentSource.configCustom.button": "创建定制 API 源", + "xpack.enterpriseSearch.workplaceSearch.contentSource.configCustom.docs.link.description": "{link}以详细了解定制 API 源。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.configCustom.docs.link.text": "阅读文档", "xpack.enterpriseSearch.workplaceSearch.contentSource.configDocs.applicationPortal.button": "{name} 应用程序门户", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.alt.text": "连接图示", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.configure.button": "配置 {name}", + "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.step1.badge": "一次性操作", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.step1.heading": "第 1 步", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.step1.text": "通过您或您的团队用于连接并同步内容的内容源设置安全的 OAuth 应用程序。只需对每个内容源执行一次。", "xpack.enterpriseSearch.workplaceSearch.contentSource.configIntro.step1.title": "配置 OAuth 应用程序 {badge}", @@ -10123,12 +9567,15 @@ "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.body1": "您的终端已准备好接受请求。", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.body2": "确保在下面复制您的 API 密钥。", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.displaySettings.text": "请使用 {link} 定制您的文档在搜索结果内显示的方式。Workplace Search 默认按字母顺序使用字段。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.docPermissions.link": "文档级权限", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.docPermissions.title": "设置文档级权限", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.documentation.text": "{link}以详细了解定制 API 源。", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.heading": "{name} 已创建", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.permissions.text": "{link} 管理有关单个属性或组属性的内容访问内容。允许或拒绝对特定文档的访问。", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.return.button": "返回到源", + "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.stylingResults.link": "显示设置", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.stylingResults.title": "正在为结果应用样式", + "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.visualWalkthrough.link": "查阅文档", "xpack.enterpriseSearch.workplaceSearch.contentSource.saveCustom.visualWalkthrough.title": "直观的演练", "xpack.enterpriseSearch.workplaceSearch.contentSource.schema.addField.button": "添加字段", "xpack.enterpriseSearch.workplaceSearch.contentSource.schema.empty.description": "您索引一些文档后,系统便会为您创建架构。单击下面,以提前创建架构字段。", @@ -10147,7 +9594,20 @@ "xpack.enterpriseSearch.workplaceSearch.contentSource.schema.updated.message": "架构已更新。", "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.documentLevelPermissions.text": "文档级别权限根据定义的规则管理用户内容访问权限。允许或拒绝个人和组对特定文档的访问。", "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.documentLevelPermissions.title": "适用于白金级许可证的文档级别权限", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.globalAccessPermissions.description": "连接服务可访问的所有文档将同步,并提供给组织的用户或组的用户。文档立即可供搜索", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.globalAccessPermissions.title": "全局访问权限", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.private.description": "返回的结果特定于您且与您相关。连接此源不会将您的个人数据暴露给其他搜索用户 - 只有您可以看到。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.private.title": "始终专用", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.remote.description": "在 Workplace Search 中,可实时搜索消息数据和其他信息。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.remote.title": "始终保持最新", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.searchable.description": "以下项目可搜索:", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.searchable.title": "可搜索内容", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.syncedItems.title": "已同步的项目", "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.syncFrequency.text": "此源每 {duration} 从 {name} 获取新内容(在初始同步后)。", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.syncFrequency.time": "2 小时", + "xpack.enterpriseSearch.workplaceSearch.contentSource.sourceFeatures.syncFrequency.title": "每 2 小时同步一次", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.color.label": "颜色", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.createdBy.label": "创建者", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.displaySettings.description": "对定制 API 源搜索结果的内容和样式进行定制。", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.displaySettings.title": "显示设置", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.displaySettingsEmpty.body": "您需要一些要显示的内容,以便配置显示设置。", @@ -10157,6 +9617,8 @@ "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.featuredResults.title": "精选结果", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.go.button": "执行", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.lastUpdated.heading": "上次更新时间", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.mediaType.label": "媒体类型", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.optionalArea.text": "此区域可选", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.preview.title": "预览", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.reset.button": "重置", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.resultDetail.label": "结果详情", @@ -10169,13 +9631,25 @@ "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.success.message": "显示设置已成功更新。", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.title.heading": "标题", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.title.label": "标题", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.type.label": "类型", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.unsaved.message": "您的显示设置尚未保存。是否确定要离开?", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.updatedBy.label": "更新者", + "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.url.label": "URL", "xpack.enterpriseSearch.workplaceSearch.contentSources.displaySettings.visibleFields.title": "可见的字段", - "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementContentExtractionLabel": "同步所有文本和内容", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.estimateSummaryLabel": "估计需要 {estimateDisplay}完成。", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.frequencyItemLabel": "执行 {label} 的间隔:", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.lastRunLabel": "上次运行", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.lastRunSummary": "此同步 {lastRunStrong} {lastRunTime}。", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.nextStartLabel": "下次运行", + "xpack.enterpriseSearch.workplaceSearch.contentSources.synchronization.nextStartSummary": "{nextStartStrong} 将开始 {nextStartTime}。", + "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementContentExtractionLabel": "从文件同步全文", "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementGlobalConfigLabel": "同步缩略图 - 已在全局配置级别禁用", "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementSynchronizeLabel": "同步此源", "xpack.enterpriseSearch.workplaceSearch.contentSources.syncManagementThumbnailsLabel": "同步缩略图", "xpack.enterpriseSearch.workplaceSearch.copyText": "复制", + "xpack.enterpriseSearch.workplaceSearch.credentialItem.copied.tooltip": "已复制!", + "xpack.enterpriseSearch.workplaceSearch.credentialItem.copy.tooltip": "复制到剪贴板", + "xpack.enterpriseSearch.workplaceSearch.credentialItem.show.tooltip": "显示 {credential}。", "xpack.enterpriseSearch.workplaceSearch.credentials.description": "在您的客户端中使用以下凭据从我们的身份验证服务器请求访问令牌。", "xpack.enterpriseSearch.workplaceSearch.credentials.title": "凭据", "xpack.enterpriseSearch.workplaceSearch.customize.header.description": "个性化常规组织设置。", @@ -10185,24 +9659,29 @@ "xpack.enterpriseSearch.workplaceSearch.description.label": "描述", "xpack.enterpriseSearch.workplaceSearch.documentsHeader": "文档", "xpack.enterpriseSearch.workplaceSearch.editField.label": "编辑字段", + "xpack.enterpriseSearch.workplaceSearch.explorePlatinumFeatures.link": "了解白金级功能", "xpack.enterpriseSearch.workplaceSearch.field.label": "字段", "xpack.enterpriseSearch.workplaceSearch.groups.addGroup.heading": "添加组", + "xpack.enterpriseSearch.workplaceSearch.groups.addGroup.label": "组名", "xpack.enterpriseSearch.workplaceSearch.groups.addGroup.submit.action": "添加组", "xpack.enterpriseSearch.workplaceSearch.groups.addGroupForm.action": "创建组", "xpack.enterpriseSearch.workplaceSearch.groups.clearFilters.action": "清除筛选", - "xpack.enterpriseSearch.workplaceSearch.groups.contentSourceCountHeading": "{numSources} 个共享内容源", - "xpack.enterpriseSearch.workplaceSearch.groups.description": "将共享内容源和用户分配到组,以便为各种内部团队打造相关搜索体验。", + "xpack.enterpriseSearch.workplaceSearch.groups.contentSourceCountHeading": "{numSources} 个组织内容源", + "xpack.enterpriseSearch.workplaceSearch.groups.description": "将组织内容源和用户分配到组,以便为各种内部团队打造相关搜索体验。", "xpack.enterpriseSearch.workplaceSearch.groups.filterGroups.placeholder": "按名称筛选组......", "xpack.enterpriseSearch.workplaceSearch.groups.filterSources.buttonText": "源", "xpack.enterpriseSearch.workplaceSearch.groups.groupDeleted": "组“{groupName}”已成功删除。", "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerHeaderTitle": "管理 {label}", - "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceEmpty.body": "可能您尚未添加任何共享内容源。", + "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceEmpty.body": "可能您尚未添加任何组织内容源。", "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceEmpty.title": "哎哟!", - "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerUpdateAddSourceButton": "添加共享源", + "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceModal.deselectButton.text": "取消全选", + "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerSourceModal.selectButton.text": "全选", + "xpack.enterpriseSearch.workplaceSearch.groups.groupManagerUpdateAddSourceButton": "添加组织源", "xpack.enterpriseSearch.workplaceSearch.groups.groupNotFound": "找不到 ID 为“{groupId}”的组。", - "xpack.enterpriseSearch.workplaceSearch.groups.groupPrioritizationUpdated": "已成功更新共享源的优先级排序。", + "xpack.enterpriseSearch.workplaceSearch.groups.groupPrioritizationUpdated": "已成功更新组织源的优先级排序。", "xpack.enterpriseSearch.workplaceSearch.groups.groupRenamed": "已将此组成功重命名为“{groupName}”。", - "xpack.enterpriseSearch.workplaceSearch.groups.groupSourcesUpdated": "已成功更新共享内容源。", + "xpack.enterpriseSearch.workplaceSearch.groups.groupSourcesUpdated": "已成功更新组织内容源。", + "xpack.enterpriseSearch.workplaceSearch.groups.groupsTable.groupPagination.label": "组", "xpack.enterpriseSearch.workplaceSearch.groups.groupsTable.groupTableHeader": "组", "xpack.enterpriseSearch.workplaceSearch.groups.groupsTable.sourcesTableHeader": "内容源", "xpack.enterpriseSearch.workplaceSearch.groups.groupUpdatedText": "上次更新于 {updatedAt}。", @@ -10210,7 +9689,7 @@ "xpack.enterpriseSearch.workplaceSearch.groups.inviteUsers.action": "邀请用户", "xpack.enterpriseSearch.workplaceSearch.groups.newGroup.action": "管理组", "xpack.enterpriseSearch.workplaceSearch.groups.newGroupSavedSuccess": "已成功创建 {groupName}", - "xpack.enterpriseSearch.workplaceSearch.groups.noSourcesMessage": "无共享内容源", + "xpack.enterpriseSearch.workplaceSearch.groups.noSourcesMessage": "无组织内容源", "xpack.enterpriseSearch.workplaceSearch.groups.noUsersMessage": "无用户", "xpack.enterpriseSearch.workplaceSearch.groups.overview.confirmRemoveButtonText": "删除 {name}", "xpack.enterpriseSearch.workplaceSearch.groups.overview.confirmRemoveDescription": "您的组将从 Workplace Search 中删除。确定要移除 {name}?", @@ -10219,7 +9698,7 @@ "xpack.enterpriseSearch.workplaceSearch.groups.overview.groupSourcesDescription": "可按“{name}”组中的所有用户搜索。", "xpack.enterpriseSearch.workplaceSearch.groups.overview.groupSourcesTitle": "组内容源", "xpack.enterpriseSearch.workplaceSearch.groups.overview.groupUsersDescription": "分配给此组的用户有权访问上面定义的源的数据和内容。可在“用户和角色”区域中管理此组的用户分配。", - "xpack.enterpriseSearch.workplaceSearch.groups.overview.manageSourcesButtonText": "管理共享内容源", + "xpack.enterpriseSearch.workplaceSearch.groups.overview.manageSourcesButtonText": "管理组织内容源", "xpack.enterpriseSearch.workplaceSearch.groups.overview.manageUsersButtonText": "管理用户和角色", "xpack.enterpriseSearch.workplaceSearch.groups.overview.nameSectionDescription": "定制此组的名称。", "xpack.enterpriseSearch.workplaceSearch.groups.overview.nameSectionTitle": "组名", @@ -10230,15 +9709,52 @@ "xpack.enterpriseSearch.workplaceSearch.groups.overview.usersSectionTitle": "组用户", "xpack.enterpriseSearch.workplaceSearch.groups.searchResults.notFoound": "找不到结果。", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.headerDescription": "校准组内容源的相对文档重要性。", - "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.headerTitle": "共享内容源的优先级排序", + "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.headerTitle": "组织内容源优先级排序", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.priorityTableHeader": "相关性优先级", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.sourceTableHeader": "源", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateBody": "与 {groupName} 共享两个或多个源,以定制源优先级排序。", - "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateButtonText": "添加共享内容源", + "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateButtonText": "添加组织内容源", "xpack.enterpriseSearch.workplaceSearch.groups.sourceProioritization.zeroStateTitle": "未与此组共享任何源", - "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "共享内容源", + "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalLabel": "组织内容源", "xpack.enterpriseSearch.workplaceSearch.groups.sourcesModalTitle": "选择要与 {groupName} 共享的内容源", + "xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription": "通过 Workplace Search 搜索存储在 Box 上的文件和文件夹。", + "xpack.enterpriseSearch.workplaceSearch.integrations.boxName": "Box", + "xpack.enterpriseSearch.workplaceSearch.integrations.confluenceCloudDescription": "通过 Workplace Search 搜索 Confluence Cloud 上的组织内容。", + "xpack.enterpriseSearch.workplaceSearch.integrations.confluenceCloudName": "Confluence Cloud", + "xpack.enterpriseSearch.workplaceSearch.integrations.confluenceServerDescription": "通过 Workplace Search 搜索 Confluence Server 上的组织内容。", + "xpack.enterpriseSearch.workplaceSearch.integrations.confluenceServerName": "Confluence Server", + "xpack.enterpriseSearch.workplaceSearch.integrations.customApiSourceDescription": "通过使用 Workplace Search 构建自己的集成来搜索任何内容。", + "xpack.enterpriseSearch.workplaceSearch.integrations.customApiSourceName": "定制 API 源", + "xpack.enterpriseSearch.workplaceSearch.integrations.dropboxDescription": "通过 Workplace Search 搜索存储在 Dropbox 上的文件和文件夹。", + "xpack.enterpriseSearch.workplaceSearch.integrations.dropboxName": "Dropbox", + "xpack.enterpriseSearch.workplaceSearch.integrations.githubDescription": "通过 Workplace Search 搜索 GitHub 上的项目和存储库。", + "xpack.enterpriseSearch.workplaceSearch.integrations.githubEnterpriseServerDescription": "通过 Workplace Search 搜索 GitHub Enterprise Server 上的项目和存储库。", + "xpack.enterpriseSearch.workplaceSearch.integrations.githubEnterpriseServerName": "GitHub Enterprise Server", + "xpack.enterpriseSearch.workplaceSearch.integrations.githubName": "GitHub", + "xpack.enterpriseSearch.workplaceSearch.integrations.gmailDescription": "通过 Workplace Search 搜索由 Gmail 管理的电子邮件。", + "xpack.enterpriseSearch.workplaceSearch.integrations.gmailName": "Gmail", + "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "通过 Workplace Search 搜索 Google 云端硬盘上的文档。", + "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveName": "Google 云端硬盘", + "xpack.enterpriseSearch.workplaceSearch.integrations.jiraCloudDescription": "通过 Workplace Search 搜索 Jira Cloud 上的项目工作流。", + "xpack.enterpriseSearch.workplaceSearch.integrations.jiraCloudName": "Jira Cloud", + "xpack.enterpriseSearch.workplaceSearch.integrations.jiraServerDescription": "通过 Workplace Search 搜索 Jira Server 上的项目工作流。", + "xpack.enterpriseSearch.workplaceSearch.integrations.jiraServerName": "Jira Server", + "xpack.enterpriseSearch.workplaceSearch.integrations.onedriveDescription": "通过 Workplace Search 搜索存储在 OneDrive 上的文件。", + "xpack.enterpriseSearch.workplaceSearch.integrations.onedriveName": "OneDrive", + "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceDescription": "通过 Workplace Search 搜索 Salesforce 上的内容。", + "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceName": "Salesforce", + "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceSandboxDescription": "通过 Workplace Search 搜索 Salesforce Sandbox 上的内容。", + "xpack.enterpriseSearch.workplaceSearch.integrations.salesforceSandboxName": "Salesforce Sandbox", + "xpack.enterpriseSearch.workplaceSearch.integrations.servicenowDescription": "通过 Workplace Search 搜索 ServiceNow 上的内容。", + "xpack.enterpriseSearch.workplaceSearch.integrations.servicenowName": "ServiceNow", + "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineDescription": "通过 Workplace Search 搜索存储在 SharePoint Online 上的文件。", + "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "Sharepoint", + "xpack.enterpriseSearch.workplaceSearch.integrations.slackDescription": "通过 Workplace Search 搜索 Slack 上的消息。", + "xpack.enterpriseSearch.workplaceSearch.integrations.slackName": "Slack", + "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription": "通过 Workplace Search 搜索 Zendesk 上的工单。", + "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName": "Zendesk", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "继续编辑", + "xpack.enterpriseSearch.workplaceSearch.label.label": "标签", "xpack.enterpriseSearch.workplaceSearch.name.label": "名称", "xpack.enterpriseSearch.workplaceSearch.nav.addSource": "添加源", "xpack.enterpriseSearch.workplaceSearch.nav.content": "内容", @@ -10257,6 +9773,9 @@ "xpack.enterpriseSearch.workplaceSearch.nav.settingsOauth": "OAuth 应用程序", "xpack.enterpriseSearch.workplaceSearch.nav.settingsSourcePrioritization": "内容源连接器", "xpack.enterpriseSearch.workplaceSearch.nav.sources": "源", + "xpack.enterpriseSearch.workplaceSearch.nav.synchronization": "同步", + "xpack.enterpriseSearch.workplaceSearch.nav.synchronizationFrequency": "频率", + "xpack.enterpriseSearch.workplaceSearch.nav.synchronizationObjectsAndAssets": "对象和资产", "xpack.enterpriseSearch.workplaceSearch.nonPlatinumOauthDescription": "配置 OAuth 应用程序,以安全使用 Workplace Search 搜索 API。升级到白金级许可证,以启用搜索 API 并创建您的 OAuth 应用程序。", "xpack.enterpriseSearch.workplaceSearch.nonPlatinumOauthTitle": "正在为定制搜索应用程序配置 OAuth", "xpack.enterpriseSearch.workplaceSearch.oauth.description": "为您的组织创建 OAuth 客户端。", @@ -10271,8 +9790,10 @@ "xpack.enterpriseSearch.workplaceSearch.oauthAuthorize.writeScopeDescription": "修改您的数据", "xpack.enterpriseSearch.workplaceSearch.oauthPersisted.description": "访问您的组织的 OAuth 客户端并管理 OAuth 设置。", "xpack.enterpriseSearch.workplaceSearch.ok.button": "确定", + "xpack.enterpriseSearch.workplaceSearch.onLabel": "在", "xpack.enterpriseSearch.workplaceSearch.organizationStats.activeUsers": "活动用户", "xpack.enterpriseSearch.workplaceSearch.organizationStats.invitations": "邀请", + "xpack.enterpriseSearch.workplaceSearch.organizationStats.organizationalSources": "组织源", "xpack.enterpriseSearch.workplaceSearch.organizationStats.privateSources": "专用源", "xpack.enterpriseSearch.workplaceSearch.organizationStats.title": "使用统计", "xpack.enterpriseSearch.workplaceSearch.orgNameOnboarding.buttonLabel": "命名您的组织", @@ -10281,11 +9802,14 @@ "xpack.enterpriseSearch.workplaceSearch.overviewHeader.title": "组织概览", "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingHeader.description": "完成以下配置以设置您的组织。", "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingHeader.title": "开始使用 Workplace Search", - "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingSourcesCard.description": "添加共享源,以便您的组织可以开始搜索。", - "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingSourcesCard.title": "共享源", + "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingSourcesCard.description": "为您的组织添加组织源,以开始搜索。", + "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingSourcesCard.title": "组织源", "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingUsersCard.description": "邀请同事加入此组织以便一同搜索。", + "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingUsersCard.inviteFirstUsers.button": "邀请用户", + "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingUsersCard.inviteMoreUsers.button": "邀请更多用户", "xpack.enterpriseSearch.workplaceSearch.overviewOnboardingUsersCard.title": "用户和邀请", "xpack.enterpriseSearch.workplaceSearch.overviewUsersCard.title": "很好,您已邀请同事一同搜索。", + "xpack.enterpriseSearch.workplaceSearch.personalDashboard.readOnlyMode.warning": "由于常规维护,Workplace Search 当前仅可供搜索。请与您的系统管理员联系,以获取更多信息。", "xpack.enterpriseSearch.workplaceSearch.personalDashboardSourceError": "无法连接源,请联系管理员以获取帮助。错误消息:{error}", "xpack.enterpriseSearch.workplaceSearch.platinumFeature": "白金级功能", "xpack.enterpriseSearch.workplaceSearch.privatePlatinumCallout.text": "专用源需要白金级许可证。", @@ -10354,6 +9878,7 @@ "xpack.enterpriseSearch.workplaceSearch.settings.resetImageConfirmationText": "是否确定要执行此操作?", "xpack.enterpriseSearch.workplaceSearch.settings.resetImageTitle": "重置为默认品牌", "xpack.enterpriseSearch.workplaceSearch.settings.resetLogoDescription": "您即要将徽标重置为默认的 Workplace Search 品牌。", + "xpack.enterpriseSearch.workplaceSearch.setupGuide.button": "开始使用 Workplace Search", "xpack.enterpriseSearch.workplaceSearch.setupGuide.description": "将您的内容平台(Google 云端硬盘、Salesforce)整合成个性化的搜索体验。", "xpack.enterpriseSearch.workplaceSearch.setupGuide.imageAlt": "Workplace Search 入门 - 指导您如何开始使用 Workplace Search 的指南", "xpack.enterpriseSearch.workplaceSearch.setupGuide.notConfigured": "Workplace Search 在 Kibana 中未配置。请按照本页上的说明执行操作。", @@ -10367,16 +9892,22 @@ "xpack.enterpriseSearch.workplaceSearch.sources.additionalConfig.heading": "需要其他配置", "xpack.enterpriseSearch.workplaceSearch.sources.applicationLinkTitles.github": "GitHub 开发者门户", "xpack.enterpriseSearch.workplaceSearch.sources.baseUrlTitles.github": "GitHub Enterprise URL", - "xpack.enterpriseSearch.workplaceSearch.sources.config.link": "编辑内容源连接器设置", + "xpack.enterpriseSearch.workplaceSearch.sources.blockedEmptyStateDescription": "添加受阻时间范围,以仅在适当时间执行同步。", + "xpack.enterpriseSearch.workplaceSearch.sources.blockedEmptyStateTitle": "您没有受阻时间范围", + "xpack.enterpriseSearch.workplaceSearch.sources.blockedWindowsTitle": "受阻时间范围", + "xpack.enterpriseSearch.workplaceSearch.sources.config.link": "编辑连接器设置", "xpack.enterpriseSearch.workplaceSearch.sources.config.title": "内容源配置", "xpack.enterpriseSearch.workplaceSearch.sources.configuration.title": "配置", "xpack.enterpriseSearch.workplaceSearch.sources.contentLoading.text": "正在加载内容......", "xpack.enterpriseSearch.workplaceSearch.sources.contentSummary.title": "内容摘要", + "xpack.enterpriseSearch.workplaceSearch.sources.contentSummaryLoading.text": "正在加载摘要详情......", "xpack.enterpriseSearch.workplaceSearch.sources.contentType.header": "内容类型", "xpack.enterpriseSearch.workplaceSearch.sources.created.label": "创建时间:", "xpack.enterpriseSearch.workplaceSearch.sources.customCallout.title": "开始使用定制源?", "xpack.enterpriseSearch.workplaceSearch.sources.customSourceDocs.link": "文档", "xpack.enterpriseSearch.workplaceSearch.sources.customSourceDocs.text": "在我们的{documentationLink}中详细了解如何添加内容", + "xpack.enterpriseSearch.workplaceSearch.sources.deletionSyncDescription": "移除内容源中不再存在的文档", + "xpack.enterpriseSearch.workplaceSearch.sources.deletionSyncLabel": "删除同步", "xpack.enterpriseSearch.workplaceSearch.sources.docPermissions.description": "文档级别权限管理有关单个属性或组属性的内容访问内容。允许或拒绝对特定文档的访问。", "xpack.enterpriseSearch.workplaceSearch.sources.documentation": "文档", "xpack.enterpriseSearch.workplaceSearch.sources.documentPermissions.text": "使用文档级别权限", @@ -10392,9 +9923,13 @@ "xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceConnected": "已成功连接 {sourceName}。", "xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceNameChanged": "已成功将名称更改为 {sourceName}。", "xpack.enterpriseSearch.workplaceSearch.sources.flashMessages.contentSourceRemoved": "已成功删除 {sourceName}。", + "xpack.enterpriseSearch.workplaceSearch.sources.fullSyncDescription": "从内容源检索所有可能的文档", + "xpack.enterpriseSearch.workplaceSearch.sources.fullSyncLabel": "完全同步", "xpack.enterpriseSearch.workplaceSearch.sources.groupAccess.title": "组访问权限", "xpack.enterpriseSearch.workplaceSearch.sources.helpText.custom": "要创建定制 API 源,请提供可人工读取的描述性名称。名称在各种搜索体验和管理界面中都原样显示。", "xpack.enterpriseSearch.workplaceSearch.sources.id.label": "源标识符", + "xpack.enterpriseSearch.workplaceSearch.sources.incrementalSyncDescription": "检索自上次同步作业以来的文档/更新", + "xpack.enterpriseSearch.workplaceSearch.sources.incrementalSyncLabel": "增量同步", "xpack.enterpriseSearch.workplaceSearch.sources.items.header": "项", "xpack.enterpriseSearch.workplaceSearch.sources.learnCustom.features.button": "了解白金级功能", "xpack.enterpriseSearch.workplaceSearch.sources.learnMore.link": "了解详情", @@ -10402,6 +9937,7 @@ "xpack.enterpriseSearch.workplaceSearch.sources.learnMoreCustom.text": "{learnMoreLink}的定制源。", "xpack.enterpriseSearch.workplaceSearch.sources.licenseCallout.description": "请与您的搜索体验管理员联系,以获取更多信息。", "xpack.enterpriseSearch.workplaceSearch.sources.licenseCallout.title": "专用源不再可用", + "xpack.enterpriseSearch.workplaceSearch.sources.nextSyncRunningMessage": "一旦当前运行的作业完成", "xpack.enterpriseSearch.workplaceSearch.sources.noContent.title": "尚没有任何内容", "xpack.enterpriseSearch.workplaceSearch.sources.noContentEmpty.message": "此源尚没有任何内容", "xpack.enterpriseSearch.workplaceSearch.sources.noContentForValue.message": "没有“{contentFilterValue}”的任何结果", @@ -10421,7 +9957,7 @@ "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.folders": "文件夹", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.gSuiteFiles": "Google G Suite 文档(文档、表格、幻灯片)", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.incidents": "事件", - "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.issues": "问题", + "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.issues": "问题(包括注释)", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.items": "项", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.leads": "线索", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.opportunities": "机会", @@ -10429,7 +9965,7 @@ "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.privateMessages": "您积极参与的私人频道的消息", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.projects": "项目", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.publicMessages": "公共频道消息", - "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.pullRequests": "拉取请求", + "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.pullRequests": "Pull 请求(包括注释)", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.repositoryList": "存储库列表", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.sites": "网站", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.spaces": "工作区", @@ -10438,14 +9974,20 @@ "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.tickets": "工单", "xpack.enterpriseSearch.workplaceSearch.sources.objTypes.users": "用户", "xpack.enterpriseSearch.workplaceSearch.sources.org.description": "组织源可供整个组织使用,并可以分配给特定用户组。", + "xpack.enterpriseSearch.workplaceSearch.sources.org.empty.description": "内容源共享给您后,其将显示在此处,并可通过搜索体验获取。", + "xpack.enterpriseSearch.workplaceSearch.sources.org.empty.title": "没有可用的内容源", "xpack.enterpriseSearch.workplaceSearch.sources.org.link": "添加组织内容源", "xpack.enterpriseSearch.workplaceSearch.sources.org.title": "组织源", + "xpack.enterpriseSearch.workplaceSearch.sources.permissionsSyncDescription": "检索自上次同步作业以来的所有权限更改", + "xpack.enterpriseSearch.workplaceSearch.sources.permissionsSyncLabel": "权限同步", "xpack.enterpriseSearch.workplaceSearch.sources.private.canCreate.description": "查看所有已连接专用源的状态,以及为您的帐户管理专用源。", "xpack.enterpriseSearch.workplaceSearch.sources.private.canCreate.title": "管理专用内容源", "xpack.enterpriseSearch.workplaceSearch.sources.private.empty.title": "您没有专用源", "xpack.enterpriseSearch.workplaceSearch.sources.private.header.description": "专用源仅供您使用。", "xpack.enterpriseSearch.workplaceSearch.sources.private.header.title": "我的专用内容源", "xpack.enterpriseSearch.workplaceSearch.sources.private.link": "添加专用内容源", + "xpack.enterpriseSearch.workplaceSearch.sources.private.privateOrg.header.description": "您可以通过{groups, plural, other {组}} {groupsSentence}{newline}访问以下源。", + "xpack.enterpriseSearch.workplaceSearch.sources.private.privateOrg.header.title": "组织内容源", "xpack.enterpriseSearch.workplaceSearch.sources.private.vewOnly.description": "查看与您的组共享的所有源的状态。", "xpack.enterpriseSearch.workplaceSearch.sources.private.vewOnly.title": "查看组源", "xpack.enterpriseSearch.workplaceSearch.sources.ready.text": "可供搜索", @@ -10456,10 +9998,14 @@ "xpack.enterpriseSearch.workplaceSearch.sources.settings.heading": "设置", "xpack.enterpriseSearch.workplaceSearch.sources.settings.title": "内容源名称", "xpack.enterpriseSearch.workplaceSearch.sources.settingsModal.text": "将从 Workplace Search 中删除您的源文档。{lineBreak}确定要移除 {name}?", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceBlockedTimeWindowsLinkLabel": "受阻时间范围", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceContent.searchBar.filter.placeholder": "筛选内容......", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceContent.searchBar.search.placeholder": "搜索内容......", "xpack.enterpriseSearch.workplaceSearch.sources.sourceContent.title": "源内容", "xpack.enterpriseSearch.workplaceSearch.sources.sourceDisabled.button": "了解白金级许可证", "xpack.enterpriseSearch.workplaceSearch.sources.sourceDisabled.description": "您的组织的许可证级别已更改。您的数据是安全的,但不再支持文档级别权限,且已禁止搜索此源。升级到白金级许可证,以重新启用此源。", "xpack.enterpriseSearch.workplaceSearch.sources.sourceDisabled.title": "内容源已禁用", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceFrequencyDescription": "管理从 Workplace Search 到此内容源的数据同步频率。提高同步频率,以确保数据保持最新。降低同步频率,以减轻第三方服务器的负担。", "xpack.enterpriseSearch.workplaceSearch.sources.sourceName.label": "源名称", "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.box": "Box", "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.confluence": "Confluence", @@ -10479,7 +10025,19 @@ "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.sharePoint": "Sharepoint", "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.slack": "Slack", "xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.zendesk": "Zendesk", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceObjectsAndAssetsDescription": "定制确定将哪些对象和资产从此内容源同步到 Workplace Search 的索引规则。", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceObjectsAndAssetsLabel": "要包括在搜索结果中的对象和详情", "xpack.enterpriseSearch.workplaceSearch.sources.sourceOverviewTitle": "源概览", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSyncConfirmMessage": "是否确定要继续处理此请求并停止所有其他同步?", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSyncConfirmTitle": "开始新内容同步?", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSyncFrequencyLinkLabel": "同步频率", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSyncFrequencyTitle": "同步频率", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationButtonLabel": "同步内容", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationDescription": "启用或禁用从该内容源到 Workplace Search 的数据同步。", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationFrequencyTitle": "同步频率", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationTitle": "同步", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationToggleDescription": "源内容将自动保持同步。", + "xpack.enterpriseSearch.workplaceSearch.sources.sourceSynchronizationToggleLabel": "同步此源", "xpack.enterpriseSearch.workplaceSearch.sources.status.header": "状态", "xpack.enterpriseSearch.workplaceSearch.sources.status.heading": "所有都看起来不错", "xpack.enterpriseSearch.workplaceSearch.sources.status.label": "状态:", @@ -10487,10 +10045,19 @@ "xpack.enterpriseSearch.workplaceSearch.sources.syncDiagnosticsButton": "下载诊断数据", "xpack.enterpriseSearch.workplaceSearch.sources.syncDiagnosticsDescription": "检索用于活动同步流程故障排除的相关诊断数据。", "xpack.enterpriseSearch.workplaceSearch.sources.syncDiagnosticsTitle": "同步诊断", + "xpack.enterpriseSearch.workplaceSearch.sources.synchronizationCallout": "配置{syncFrequencyLink}或{blockTimeWindowsLink}。", + "xpack.enterpriseSearch.workplaceSearch.sources.synchronizationDisabledDescription": "请联系您的管理员以启用同步控件。", + "xpack.enterpriseSearch.workplaceSearch.sources.synchronizationDisabledTitle": "已禁用源同步。", + "xpack.enterpriseSearch.workplaceSearch.sources.syncSettingsUpdatedMessage": "已更新源同步设置。", + "xpack.enterpriseSearch.workplaceSearch.sources.syncUnsavedChangesMessage": "您的更改尚未更改。是否确定要离开?", "xpack.enterpriseSearch.workplaceSearch.sources.time.header": "时间", "xpack.enterpriseSearch.workplaceSearch.sources.totalDocuments.label": "总文档数", "xpack.enterpriseSearch.workplaceSearch.sources.understandButton": "我理解", - "xpack.enterpriseSearch.workplaceSearch.sourcesOnboardingCard.description": "您已添加 {sourcesCount, number} 个共享{sourcesCount, plural, other {源}}。祝您搜索愉快。", + "xpack.enterpriseSearch.workplaceSearch.sources.utcLabel": "当前 UTC 时间:{utcTime}", + "xpack.enterpriseSearch.workplaceSearch.sources.utcTitle": "所有时间均为 UTC 格式", + "xpack.enterpriseSearch.workplaceSearch.sourcesOnboardingCard.addFirstSources.button": "添加源", + "xpack.enterpriseSearch.workplaceSearch.sourcesOnboardingCard.addMoreSources.button": "添加更多源", + "xpack.enterpriseSearch.workplaceSearch.sourcesOnboardingCard.description": "您已添加 {sourcesCount, number} 个组织{sourcesCount, plural, other {源}}。祝您搜索愉快。", "xpack.enterpriseSearch.workplaceSearch.sourcesView.modal.docPermissions.description": "只有在配置用户和组映射后,才能在 Workplace Search 中搜索文档。{documentPermissionsLink}。", "xpack.enterpriseSearch.workplaceSearch.sourcesView.modal.heading": "{addedSourceName} 需要其他配置。", "xpack.enterpriseSearch.workplaceSearch.sourcesView.modal.success": "{addedSourceName} 已成功连接,初始内容同步已在进行中。因为您选择同步文档级别权限信息,所以现在必须使用 {externalIdentitiesLink} 提供用户和组映射。", @@ -10567,6 +10134,10 @@ "xpack.fileUpload.maxFileSizeUiSetting.name": "最大文件上传大小", "xpack.fileUpload.noFileNameError": "未提供文件名", "xpack.fleet.addAgentButton": "添加代理", + "xpack.fleet.addAgentHelpPopover.documentationLink": "深入了解 Elastic 代理。", + "xpack.fleet.addAgentHelpPopover.footActionButton": "了解", + "xpack.fleet.addAgentHelpPopover.popoverBody": "要使集成成功运行,请将 {elasticAgent}添加到主机,以便收集数据并将其发送到 Elastic Stack。{learnMoreLink}", + "xpack.fleet.addAgentHelpPopover.title": "请记得将代理添加到您的主机", "xpack.fleet.agentBulkActions.agentsSelected": "已选择{count, plural, other { # 个代理} =all {所有代理}}", "xpack.fleet.agentBulkActions.clearSelection": "清除所选内容", "xpack.fleet.agentBulkActions.reassignPolicy": "分配到新策略", @@ -10616,7 +10187,8 @@ "xpack.fleet.agentEnrollment.downloadDescription": "Fleet 服务器运行在 Elastic 代理上。可从 Elastic 的下载页面下载 Elastic 代理二进制文件及验证签名。", "xpack.fleet.agentEnrollment.downloadLink": "前往下载页面", "xpack.fleet.agentEnrollment.downloadPolicyButton": "下载策略", - "xpack.fleet.agentEnrollment.downloadUseLinuxInstaller": "Linux 用户:建议使用安装程序 (RPM/DEB),因为它们允许在 Fleet 内升级代理。", + "xpack.fleet.agentEnrollment.downloadPolicyButtonk8s": "下载清单", + "xpack.fleet.agentEnrollment.downloadUseLinuxInstaller": "Linux 用户:我们建议使用安装程序 (TAR),而非系统软件包 (RPM/DEB),因为这允许您在 Fleet 中升级代理。", "xpack.fleet.agentEnrollment.enrollFleetTabLabel": "在 Fleet 中注册", "xpack.fleet.agentEnrollment.enrollStandaloneTabLabel": "独立运行", "xpack.fleet.agentEnrollment.fleetSettingsLink": "Fleet 设置", @@ -10625,18 +10197,20 @@ "xpack.fleet.agentEnrollment.managedDescription": "在 Fleet 中注册 Elastic 代理,以便自动部署更新并集中管理该代理。", "xpack.fleet.agentEnrollment.missingFleetHostCalloutText": "需要 Fleet 服务器主机的 URL,才能使用 Fleet 注册代理。可以在“Fleet 设置”中添加此信息。有关更多信息,请参阅{link}。", "xpack.fleet.agentEnrollment.missingFleetHostCalloutTitle": "Fleet 服务器主机的 URL 缺失", - "xpack.fleet.agentEnrollment.missingFleetHostGuideLink": "Fleet 用户指南", + "xpack.fleet.agentEnrollment.missingFleetHostGuideLink": "Fleet 和 Elastic 代理指南", "xpack.fleet.agentEnrollment.setUpAgentsLink": "为 Elastic 代理设置集中管理", "xpack.fleet.agentEnrollment.standaloneDescription": "独立运行 Elastic 代理,以在安装代理的主机上手动配置和更新代理。", "xpack.fleet.agentEnrollment.stepCheckForDataDescription": "该代理应该开始发送数据。前往 {link} 以查看您的数据。", "xpack.fleet.agentEnrollment.stepCheckForDataTitle": "检查数据", "xpack.fleet.agentEnrollment.stepChooseAgentPolicyTitle": "选择代理策略", "xpack.fleet.agentEnrollment.stepConfigureAgentDescription": "在安装 Elastic 代理的主机上将此策略复制到 {fileName}。在 {fileName} 的 {outputSection} 部分中修改 {ESUsernameVariable} 和 {ESPasswordVariable},以使用您的 Elasticsearch 凭据。", + "xpack.fleet.agentEnrollment.stepConfigureAgentDescriptionk8s": "复制或下载 Kubernetes 集群内的 Kubernetes 清单。修改 Daemonset 环境变量中的 {ESUsernameVariable} 和 {ESPasswordVariable} 并应用该清单。", "xpack.fleet.agentEnrollment.stepConfigureAgentTitle": "配置代理", "xpack.fleet.agentEnrollment.stepConfigurePolicyAuthenticationTitle": "选择注册令牌", "xpack.fleet.agentEnrollment.stepDownloadAgentTitle": "将 Elastic 代理下载到您的主机", "xpack.fleet.agentEnrollment.stepEnrollAndRunAgentTitle": "注册并启动 Elastic 代理", "xpack.fleet.agentEnrollment.stepRunAgentDescription": "从代理目录运行此命令,以安装、注册并启动 Elastic 代理。您可以重复使用此命令在多个主机上设置代理。需要管理员权限。", + "xpack.fleet.agentEnrollment.stepRunAgentDescriptionk8s": "从下载 Kubernetes 清单的目录运行应用命令。", "xpack.fleet.agentEnrollment.stepRunAgentTitle": "启动代理", "xpack.fleet.agentEnrollment.stepViewDataTitle": "查看您的数据", "xpack.fleet.agentEnrollment.viewDataDescription": "代理启动后,可以通过使用集成的已安装资产来在 Kibana 中查看数据。{pleaseNote}:获得初始数据可能需要几分钟。", @@ -10682,6 +10256,7 @@ "xpack.fleet.agentLogs.downloadLink": "下载", "xpack.fleet.agentLogs.logDisabledCallOutDescription": "更新代理的策略 {settingsLink} 以启用日志收集。", "xpack.fleet.agentLogs.logDisabledCallOutTitle": "日志收集已禁用", + "xpack.fleet.agentLogs.logLevelEmpty": "未找到任何日志", "xpack.fleet.agentLogs.logLevelSelectText": "日志级别", "xpack.fleet.agentLogs.oldAgentWarningTitle": "“日志”视图需要 Elastic Agent 7.11 或更高版本。要升级代理,请前往“操作”菜单或{downloadLink}更新的版本。", "xpack.fleet.agentLogs.openInLogsUiLinkText": "在日志中打开", @@ -10699,6 +10274,10 @@ "xpack.fleet.agentPolicy.confirmModalDescription": "此操作无法撤消。是否确定要继续?", "xpack.fleet.agentPolicy.confirmModalTitle": "保存并部署更改", "xpack.fleet.agentPolicy.linkedAgentCountText": "{count, plural, other {# 个代理}}", + "xpack.fleet.agentPolicy.postInstallAddAgentModal": "已添加 {packageName} 集成", + "xpack.fleet.agentPolicy.postInstallAddAgentModalCancelButtonLabel": "稍后添加 Elastic 代理", + "xpack.fleet.agentPolicy.postInstallAddAgentModalConfirmButtonLabel": "将 Elastic 代理添加到您的主机", + "xpack.fleet.agentPolicy.postInstallAddAgentModalDescription": "要完成此集成,请将 {elasticAgent}添加到主机,以便收集数据并将其发送到 Elastic Stack", "xpack.fleet.agentPolicyActionMenu.buttonText": "操作", "xpack.fleet.agentPolicyActionMenu.copyPolicyActionText": "复制策略", "xpack.fleet.agentPolicyActionMenu.enrollAgentActionText": "添加代理", @@ -10719,8 +10298,8 @@ "xpack.fleet.agentPolicyForm.nameSpaceFieldDescription.fleetUserGuideLabel": "了解详情", "xpack.fleet.agentPolicyForm.namespaceFieldLabel": "默认命名空间", "xpack.fleet.agentPolicyForm.systemMonitoringFieldLabel": "系统监测", - "xpack.fleet.agentPolicyForm.systemMonitoringText": "收集系统指标", - "xpack.fleet.agentPolicyForm.systemMonitoringTooltipText": "启用此选项可使用收集系统指标和信息的集成启动您的策略。", + "xpack.fleet.agentPolicyForm.systemMonitoringText": "收集系统日志和指标", + "xpack.fleet.agentPolicyForm.systemMonitoringTooltipText": "启用此选项可使用收集系统日志和指标的集成启动您的策略。", "xpack.fleet.agentPolicyForm.unenrollmentTimeoutDescription": "可选超时(秒)。若提供,代理断开连接此段时间后,将自动注销。", "xpack.fleet.agentPolicyForm.unenrollmentTimeoutLabel": "注销超时", "xpack.fleet.agentPolicyForm.unenrollTimeoutMinValueErrorMessage": "超时必须大于零。", @@ -10764,8 +10343,8 @@ "xpack.fleet.appNavigation.agentsLinkText": "代理", "xpack.fleet.appNavigation.dataStreamsLinkText": "数据流", "xpack.fleet.appNavigation.enrollmentTokensText": "注册令牌", - "xpack.fleet.appNavigation.integrationsAllLinkText": "浏览", - "xpack.fleet.appNavigation.integrationsInstalledLinkText": "管理", + "xpack.fleet.appNavigation.integrationsAllLinkText": "浏览集成", + "xpack.fleet.appNavigation.integrationsInstalledLinkText": "已安装集成", "xpack.fleet.appNavigation.policiesLinkText": "代理策略", "xpack.fleet.appNavigation.sendFeedbackButton": "发送反馈", "xpack.fleet.appTitle": "Fleet", @@ -10773,25 +10352,26 @@ "xpack.fleet.assets.customLogs.name": "日志", "xpack.fleet.breadcrumbs.addPackagePolicyPageTitle": "添加集成", "xpack.fleet.breadcrumbs.agentsPageTitle": "代理", - "xpack.fleet.breadcrumbs.allIntegrationsPageTitle": "浏览", + "xpack.fleet.breadcrumbs.allIntegrationsPageTitle": "浏览集成", "xpack.fleet.breadcrumbs.appTitle": "Fleet", "xpack.fleet.breadcrumbs.datastreamsPageTitle": "数据流", "xpack.fleet.breadcrumbs.editPackagePolicyPageTitle": "编辑集成", "xpack.fleet.breadcrumbs.enrollmentTokensPageTitle": "注册令牌", - "xpack.fleet.breadcrumbs.installedIntegrationsPageTitle": "管理", + "xpack.fleet.breadcrumbs.installedIntegrationsPageTitle": "已安装集成", "xpack.fleet.breadcrumbs.integrationsAppTitle": "集成", "xpack.fleet.breadcrumbs.policiesPageTitle": "代理策略", + "xpack.fleet.breadcrumbs.upgradePacagePolicyPageTitle": "升级集成 ", "xpack.fleet.config.invalidPackageVersionError": "必须是有效的 semver 或关键字 `latest`", "xpack.fleet.copyAgentPolicy.confirmModal.cancelButtonLabel": "取消", "xpack.fleet.copyAgentPolicy.confirmModal.confirmButtonLabel": "复制策略", "xpack.fleet.copyAgentPolicy.confirmModal.copyPolicyPrompt": "为您的新代理策略选择名称和描述。", - "xpack.fleet.copyAgentPolicy.confirmModal.copyPolicyTitle": "复制代理策略“{name}”", + "xpack.fleet.copyAgentPolicy.confirmModal.copyPolicyTitle": "复制“{name}”代理策略", "xpack.fleet.copyAgentPolicy.confirmModal.defaultNewPolicyName": "{name}(副本)", "xpack.fleet.copyAgentPolicy.confirmModal.newDescriptionLabel": "描述", "xpack.fleet.copyAgentPolicy.confirmModal.newNameLabel": "新策略名称", "xpack.fleet.copyAgentPolicy.failureNotificationTitle": "复制代理策略“{id}”时出错", "xpack.fleet.copyAgentPolicy.fatalErrorNotificationTitle": "复制代理策略时出错", - "xpack.fleet.copyAgentPolicy.successNotificationTitle": "代理策略已复制", + "xpack.fleet.copyAgentPolicy.successNotificationTitle": "已复制代理策略", "xpack.fleet.createAgentPolicy.cancelButtonLabel": "取消", "xpack.fleet.createAgentPolicy.errorNotificationTitle": "无法创建代理策略", "xpack.fleet.createAgentPolicy.flyoutTitle": "创建代理策略", @@ -10808,7 +10388,7 @@ "xpack.fleet.createPackagePolicy.pageDescriptionfromPolicy": "为选定代理策略配置集成。", "xpack.fleet.createPackagePolicy.pageTitle": "添加集成", "xpack.fleet.createPackagePolicy.pageTitleWithPackageName": "添加 {packageName} 集成", - "xpack.fleet.createPackagePolicy.saveButton": "保存集成", + "xpack.fleet.createPackagePolicy.saveButton": "保存并继续", "xpack.fleet.createPackagePolicy.stepConfigure.advancedOptionsToggleLinkText": "高级选项", "xpack.fleet.createPackagePolicy.stepConfigure.errorCountText": "{count, plural, other {# 个错误}}", "xpack.fleet.createPackagePolicy.stepConfigure.hideStreamsAriaLabel": "隐藏 {type} 输入", @@ -10818,6 +10398,9 @@ "xpack.fleet.createPackagePolicy.stepConfigure.integrationSettingsSectionDescription": "选择有助于确定如何使用此集成的名称和描述。", "xpack.fleet.createPackagePolicy.stepConfigure.integrationSettingsSectionTitle": "集成设置", "xpack.fleet.createPackagePolicy.stepConfigure.noPolicyOptionsMessage": "没有可配置的内容", + "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyDataRetentionLabel": "数据保留设置", + "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyDataRetentionLearnMoreLink": "了解详情", + "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyDataRetentionText": "默认情况下,所有日志和指标数据存储在热层中。{learnMore}如何更改此集成的数据保留策略。", "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyDescriptionInputLabel": "描述", "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyNameInputLabel": "集成名称", "xpack.fleet.createPackagePolicy.stepConfigure.packagePolicyNamespaceHelpLabel": "更改从选定代理策略继承的默认命名空间。此设置将更改集成的数据流的名称。{learnMore}。", @@ -10833,9 +10416,11 @@ "xpack.fleet.createPackagePolicy.StepSelectPolicy.agentPolicyFormGroupTitle": "代理策略", "xpack.fleet.createPackagePolicy.StepSelectPolicy.agentPolicyLabel": "代理策略", "xpack.fleet.createPackagePolicy.StepSelectPolicy.agentPolicyPlaceholderText": "选择要将此集成添加到的代理策略", + "xpack.fleet.createPackagePolicy.StepSelectPolicy.cannotAddLimitedIntegrationError": "每个代理策略只可添加此集成一次。", "xpack.fleet.createPackagePolicy.StepSelectPolicy.errorLoadingAgentPoliciesTitle": "加载代理策略时出错", "xpack.fleet.createPackagePolicy.StepSelectPolicy.errorLoadingPackageTitle": "加载软件包信息时出错", "xpack.fleet.createPackagePolicy.StepSelectPolicy.errorLoadingSelectedAgentPolicyTitle": "加载选定代理策略时出错", + "xpack.fleet.createPackagePolicy.StepSelectPolicy.noPolicySelectedError": "代理策略必填。", "xpack.fleet.dataStreamList.actionsColumnTitle": "操作", "xpack.fleet.dataStreamList.datasetColumnTitle": "数据集", "xpack.fleet.dataStreamList.integrationColumnTitle": "集成", @@ -10895,12 +10480,16 @@ "xpack.fleet.editPackagePolicy.settingsTabName": "设置", "xpack.fleet.editPackagePolicy.updatedNotificationMessage": "Fleet 会将更新部署到所有使用策略“{agentPolicyName}”的代理", "xpack.fleet.editPackagePolicy.updatedNotificationTitle": "已成功更新“{packagePolicyName}”", + "xpack.fleet.editPackagePolicy.upgradeButton": "升级集成", "xpack.fleet.editPackagePolicy.upgradePageTitleWithPackageName": "升级 {packageName} 集成", "xpack.fleet.enrollemntAPIKeyList.emptyMessage": "未找到任何注册令牌。", "xpack.fleet.enrollemntAPIKeyList.loadingTokensMessage": "正在加载注册令牌......", "xpack.fleet.enrollmentInstructions.descriptionText": "从代理目录运行相应命令,以安装、注册并启动 Elastic 代理。您可以重复使用这些命令在多个主机上设置代理。需要管理员权限。", "xpack.fleet.enrollmentInstructions.moreInstructionsLink": "Elastic 代理文档", "xpack.fleet.enrollmentInstructions.moreInstructionsText": "有关 RPM/DEB 部署说明,请参见 {link}。", + "xpack.fleet.enrollmentInstructions.platformButtons.linux": "Linux/macOS", + "xpack.fleet.enrollmentInstructions.platformButtons.rpm": "RPM/DEB", + "xpack.fleet.enrollmentInstructions.platformButtons.windows": "Windows", "xpack.fleet.enrollmentInstructions.platformSelectAriaLabel": "平台", "xpack.fleet.enrollmentInstructions.troubleshootingLink": "故障排除指南", "xpack.fleet.enrollmentInstructions.troubleshootingText": "如果有连接问题,请参阅我们的{link}。", @@ -10925,10 +10514,28 @@ "xpack.fleet.enrollmentTokensList.revokeTokenButtonLabel": "撤销令牌", "xpack.fleet.enrollmentTokensList.secretTitle": "密钥", "xpack.fleet.enrollmentTokensList.showTokenButtonLabel": "显示令牌", + "xpack.fleet.epm.addPackagePolicyButtonPrivilegesRequiredTooltip": "要添加 Elastic 代理集成,必须具有所需的最低权限。请联系您的管理员。", + "xpack.fleet.epm.addPackagePolicyButtonSecurityRequiredTooltip": "要添加 Elastic 代理集成,必须启用安全功能并具有所需的最低权限。请联系您的管理员。", "xpack.fleet.epm.addPackagePolicyButtonText": "添加 {packageName}", "xpack.fleet.epm.agentEnrollment.viewDataAssetsLabel": "查看资产", "xpack.fleet.epm.agentEnrollment.viewDataDescription.pleaseNoteLabel": "请注意", "xpack.fleet.epm.assetGroupTitle": "{assetType} 资产", + "xpack.fleet.epm.assetTitles.componentTemplates": "组件模板", + "xpack.fleet.epm.assetTitles.dashboards": "仪表板", + "xpack.fleet.epm.assetTitles.dataStreamILM": "数据流 ILM 策略", + "xpack.fleet.epm.assetTitles.ilmPolicies": "ILM 策略", + "xpack.fleet.epm.assetTitles.indexPatterns": "索引模式", + "xpack.fleet.epm.assetTitles.indexTemplates": "索引模板", + "xpack.fleet.epm.assetTitles.ingestPipelines": "采集管道", + "xpack.fleet.epm.assetTitles.lens": "Lens", + "xpack.fleet.epm.assetTitles.maps": "Maps", + "xpack.fleet.epm.assetTitles.mlModules": "ML 模块", + "xpack.fleet.epm.assetTitles.savedSearches": "已保存的搜索", + "xpack.fleet.epm.assetTitles.securityRules": "安全规则", + "xpack.fleet.epm.assetTitles.tag": "标签", + "xpack.fleet.epm.assetTitles.transforms": "转换", + "xpack.fleet.epm.assetTitles.views": "视图", + "xpack.fleet.epm.assetTitles.visualizations": "可视化", "xpack.fleet.epm.browseAllButtonText": "浏览所有集成", "xpack.fleet.epm.categoryLabel": "类别", "xpack.fleet.epm.detailsTitle": "详情", @@ -10936,6 +10543,12 @@ "xpack.fleet.epm.featuresLabel": "功能", "xpack.fleet.epm.install.packageInstallError": "安装 {pkgName} {pkgVersion} 时出错", "xpack.fleet.epm.install.packageUpdateError": "将 {pkgName} 更新到 {pkgVersion} 时出错", + "xpack.fleet.epm.integrationPreference.beatsLabel": "仅限 Beats", + "xpack.fleet.epm.integrationPreference.elasticAgentLabel": "仅限 Elastic 代理", + "xpack.fleet.epm.integrationPreference.recommendedLabel": "推荐", + "xpack.fleet.epm.integrationPreference.recommendedTooltip": "如果 Elastic Agent 集成正式发布,我们建议使用这些集成。", + "xpack.fleet.epm.integrationPreference.title": "如果集成可用于 {link},显示:", + "xpack.fleet.epm.integrationPreference.titleLink": "Elastic 代理和 Beats", "xpack.fleet.epm.licenseLabel": "许可证", "xpack.fleet.epm.loadingIntegrationErrorTitle": "加载集成详情时出错", "xpack.fleet.epm.noticeModalCloseBtn": "关闭", @@ -10946,7 +10559,7 @@ "xpack.fleet.epm.packageDetails.integrationList.agentCount": "代理", "xpack.fleet.epm.packageDetails.integrationList.agentPolicy": "代理策略", "xpack.fleet.epm.packageDetails.integrationList.loadingPoliciesMessage": "正在加载集成策略……", - "xpack.fleet.epm.packageDetails.integrationList.name": "集成", + "xpack.fleet.epm.packageDetails.integrationList.name": "集成策略", "xpack.fleet.epm.packageDetails.integrationList.packageVersion": "v{version}", "xpack.fleet.epm.packageDetails.integrationList.updatedAt": "上次更新时间", "xpack.fleet.epm.packageDetails.integrationList.updatedBy": "最后更新者", @@ -10954,8 +10567,12 @@ "xpack.fleet.epm.packageDetailsNav.overviewLinkText": "概览", "xpack.fleet.epm.packageDetailsNav.packageAssetsLinkText": "资产", "xpack.fleet.epm.packageDetailsNav.packageCustomLinkText": "高级", - "xpack.fleet.epm.packageDetailsNav.packagePoliciesLinkText": "策略", + "xpack.fleet.epm.packageDetailsNav.packagePoliciesLinkText": "集成策略", "xpack.fleet.epm.packageDetailsNav.settingsLinkText": "设置", + "xpack.fleet.epm.packageDetailsSecurityRequiredCalloutDescription": "要充分利用 Fleet,必须启用 Elasticsearch 和 Kibana 安全功能。请按照{guideLink}启用安全功能。", + "xpack.fleet.epm.packageDetailsSecurityRequiredCalloutDescriptionGuideLink": "此指南中的步骤", + "xpack.fleet.epm.packageDetailsSecurityRequiredCalloutTitle": "需要启用安全功能才能添加 Elastic 代理集成", + "xpack.fleet.epm.pageSubtitle": "选择集成以开始收集并分析数据。", "xpack.fleet.epm.releaseBadge.betaDescription": "在生产环境中不推荐使用此集成。", "xpack.fleet.epm.releaseBadge.betaLabel": "公测版", "xpack.fleet.epm.releaseBadge.experimentalDescription": "此集成可能有重大更改或将在未来版本中移除。", @@ -10967,13 +10584,23 @@ "xpack.fleet.epm.updateAvailableTooltip": "有可用更新", "xpack.fleet.epm.usedByLabel": "代理策略", "xpack.fleet.epm.versionLabel": "版本", - "xpack.fleet.epmList.allPackagesFilterLinkText": "全部", + "xpack.fleet.epmList.allPackagesFilterLinkText": "所有类别", + "xpack.fleet.epmList.allPackagesInstalledFilterLinkText": "所有已安装项", + "xpack.fleet.epmList.availableCalloutBlogText": "公告博客", + "xpack.fleet.epmList.availableCalloutIntroText": "要详细了解集成和新 Elastic 代理,请阅读我们的 {link}", + "xpack.fleet.epmList.availableCalloutTitle": "仅显示已安装的 Elastic 代理集成。", "xpack.fleet.epmList.missingIntegrationPlaceholder": "我们未找到任何匹配搜索词的集成。请重试其他关键字,或使用左侧的类别浏览。", "xpack.fleet.epmList.noPackagesFoundPlaceholder": "未找到任何软件包", "xpack.fleet.epmList.searchPackagesPlaceholder": "搜索集成", "xpack.fleet.epmList.updatesAvailableFilterLinkText": "可用更新", "xpack.fleet.featureCatalogueDescription": "添加和管理 Elastic 代理集成", "xpack.fleet.featureCatalogueTitle": "添加 Elastic 代理集成", + "xpack.fleet.featuredObsDesc": "监测、检测并诊断应用程序的复杂性能问题。", + "xpack.fleet.featuredObsTitle": "Elastic APM", + "xpack.fleet.featuredSearchDesc": "通过 App Search 网络爬虫将搜索功能添加到您的网站。", + "xpack.fleet.featuredSearchTitle": "网站网络爬虫", + "xpack.fleet.featuredSecurityDesc": "使用威胁防御、检测和深度安全数据可见性功能保护您的主机。", + "xpack.fleet.featuredSecurityTitle": "Endpoint Security", "xpack.fleet.fleetServerSetup.addFleetServerHostButton": "添加主机", "xpack.fleet.fleetServerSetup.addFleetServerHostInputLabel": "Fleet 服务器主机", "xpack.fleet.fleetServerSetup.addFleetServerHostInvalidUrlError": "URL 无效", @@ -11002,7 +10629,7 @@ "xpack.fleet.fleetServerSetup.saveServiceTokenDescription": "保存服务令牌信息。其仅显示一次。", "xpack.fleet.fleetServerSetup.selectAgentPolicyDescriptionText": "代理策略允许您远程配置和管理您的代理。建议使用“默认 Fleet 服务器策略”,其包含运行 Fleet 服务器的必要配置。", "xpack.fleet.fleetServerSetup.serviceTokenLabel": "服务令牌", - "xpack.fleet.fleetServerSetup.setupGuideLink": "Fleet 用户指南", + "xpack.fleet.fleetServerSetup.setupGuideLink": "Fleet 和 Elastic 代理指南", "xpack.fleet.fleetServerSetup.setupText": "需要提供 Fleet 服务器,才能使用 Fleet 注册代理。按照下面的说明设置 Fleet 服务器。有关详细信息,请参阅{userGuideLink}。", "xpack.fleet.fleetServerSetup.setupTitle": "添加 Fleet 服务器", "xpack.fleet.fleetServerSetup.stepDeploymentModeDescriptionText": "Fleet 使用传输层安全 (TLS) 加密 Elastic 代理和 Elastic Stack 中的其他组件之间的流量。选择部署模式来决定处理证书的方式。您的选择将影响后面步骤中显示的 Fleet 服务器设置命令。", @@ -11028,16 +10655,25 @@ "xpack.fleet.fleetServerUpgradeModal.onPremDescriptionMessage": "Fleet 服务器现在可用且提供改善的可扩展性和安全性。{existingAgentsMessage}要继续使用 Fleet,必须在各个主机上安装 Fleet 服务器和新版 Elastic 代理。详细了解我们的 {link}。", "xpack.fleet.genericActionsMenuText": "打开", "xpack.fleet.homeIntegration.tutorialDirectory.fleetAppButtonText": "试用集成", - "xpack.fleet.homeIntegration.tutorialModule.noticeText": "{notePrefix}此模块的较新版本{availableAsIntegrationLink}。要详细了解集成和新 Elastic 代理,请阅读我们的{blogPostLink}。", + "xpack.fleet.homeIntegration.tutorialModule.noticeText": "{notePrefix} 此模块的较新版本为 {availableAsIntegrationLink}。要详细了解集成和新 Elastic 代理,请阅读我们的{blogPostLink}。", "xpack.fleet.homeIntegration.tutorialModule.noticeText.blogPostLink": "公告博客", "xpack.fleet.homeIntegration.tutorialModule.noticeText.integrationLink": "将作为 Elastic 代理集成来提供", - "xpack.fleet.homeIntegration.tutorialModule.noticeText.notePrefix": "注意:", + "xpack.fleet.homeIntegration.tutorialModule.noticeText.notePrefix": "备注", "xpack.fleet.hostsInput.addRow": "添加行", "xpack.fleet.initializationErrorMessageTitle": "无法初始化 Fleet", + "xpack.fleet.integration.settings.versionInfo.updatesAvailableBody": "升级到版本 {latestVersion} 可获取最新功能", + "xpack.fleet.integrations.confirmUpdateModal.body.agentCount": "{agentCount, plural, other {# 个代理}}", + "xpack.fleet.integrations.confirmUpdateModal.body.policyCount": "{packagePolicyCount, plural, other {# 个集成策略}}", "xpack.fleet.integrations.customInputsLink": "定制输入", + "xpack.fleet.integrations.deploymentButton": "查看部署详情", "xpack.fleet.integrations.discussForumLink": "讨论论坛", "xpack.fleet.integrations.installPackage.installingPackageButtonLabel": "正在安装 {title} 资产", "xpack.fleet.integrations.installPackage.installPackageButtonLabel": "安装 {title} 资产", + "xpack.fleet.integrations.integrationSaved": "已保存集成设置", + "xpack.fleet.integrations.integrationSavedError": "保存集成设置时出错", + "xpack.fleet.integrations.keepPoliciesUpToDateDisabledSuccess": "Fleet 不会自动使 {title} 的集成策略保持最新", + "xpack.fleet.integrations.keepPoliciesUpToDateEnabledSuccess": "Fleet 会自动使 {title} 的集成策略保持最新", + "xpack.fleet.integrations.keepPoliciesUpToDateError": "保存 {title} 的集成设置时出错", "xpack.fleet.integrations.packageInstallErrorDescription": "尝试安装此软件包时出现问题。请稍后重试。", "xpack.fleet.integrations.packageInstallErrorTitle": "无法安装 {title} 软件包", "xpack.fleet.integrations.packageInstallSuccessDescription": "已成功安装 {title}", @@ -11046,6 +10682,8 @@ "xpack.fleet.integrations.packageUninstallErrorTitle": "无法卸载 {title} 软件包", "xpack.fleet.integrations.packageUninstallSuccessDescription": "已成功卸载 {title}", "xpack.fleet.integrations.packageUninstallSuccessTitle": "已卸载 {title}", + "xpack.fleet.integrations.packageUpdateSuccessDescription": "已成功更新 {title} 并升级了策略", + "xpack.fleet.integrations.packageUpdateSuccessTitle": "已更新 {title} 并升级了策略", "xpack.fleet.integrations.settings.confirmInstallModal.cancelButtonLabel": "取消", "xpack.fleet.integrations.settings.confirmInstallModal.installButtonLabel": "安装 {packageName}", "xpack.fleet.integrations.settings.confirmInstallModal.installCalloutTitle": "此操作将安装 {numOfAssets} 个资产", @@ -11057,6 +10695,15 @@ "xpack.fleet.integrations.settings.confirmUninstallModal.uninstallCallout.title": "此操作将移除 {numOfAssets} 个资产", "xpack.fleet.integrations.settings.confirmUninstallModal.uninstallDescription": "此操作无法撤消。是否确定要继续?", "xpack.fleet.integrations.settings.confirmUninstallModal.uninstallTitle": "卸载 {packageName}", + "xpack.fleet.integrations.settings.confirmUpdateModal.body": "此操作会将更新部署到使用这些策略的所有代理上。Fleet 检测到 {packagePolicyCountText} {packagePolicyCount, plural, other {}}已准备就绪,可以升级,并且{packagePolicyCount, plural, other {}}已由 {agentCountText} 使用。", + "xpack.fleet.integrations.settings.confirmUpdateModal.cancel": "取消", + "xpack.fleet.integrations.settings.confirmUpdateModal.confirm": "升级 {packageName} 和策略", + "xpack.fleet.integrations.settings.confirmUpdateModal.conflictCallOut.body": "{conflictCount, plural, other { 存在}}冲突,不会自动升级。执行此升级后,您可以通过 Fleet 中的代理策略设置手动解决这些冲突。", + "xpack.fleet.integrations.settings.confirmUpdateModal.conflictCallOut.integrationPolicyCount": "{conflictCount, plural, other {# 个集成策略}}", + "xpack.fleet.integrations.settings.confirmUpdateModal.conflictCallOut.title": "一些集成策略存在冲突", + "xpack.fleet.integrations.settings.confirmUpdateModal.updateTitle": "升级 {packageName} 和策略", + "xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateDescription": "启用后,Fleet 会尝试自动升级和部署集成策略", + "xpack.fleet.integrations.settings.keepIntegrationPoliciesUpToDateLabel": "自动使集成策略保持最新", "xpack.fleet.integrations.settings.packageInstallDescription": "安装此集成以设置专用于 {title} 数据的Kibana 和 Elasticsearch 资产。", "xpack.fleet.integrations.settings.packageInstallTitle": "安装 {title}", "xpack.fleet.integrations.settings.packageLatestVersionLink": "最新版本", @@ -11070,12 +10717,13 @@ "xpack.fleet.integrations.settings.packageVersionTitle": "{title} 版本", "xpack.fleet.integrations.settings.versionInfo.installedVersion": "已安装版本", "xpack.fleet.integrations.settings.versionInfo.latestVersion": "最新版本", - "xpack.fleet.integrations.settings.versionInfo.updatesAvailable": "更新可用", + "xpack.fleet.integrations.settings.versionInfo.updatesAvailable": "新版本可用", "xpack.fleet.integrations.uninstallPackage.uninstallingPackageButtonLabel": "正在卸载 {title}", "xpack.fleet.integrations.uninstallPackage.uninstallPackageButtonLabel": "卸载 {title}", - "xpack.fleet.integrations.updatePackage.updatePackageButtonLabel": "更新到最新版本", + "xpack.fleet.integrations.updatePackage.updatePackageButtonLabel": "升级到最新版本", + "xpack.fleet.integrations.updatePackage.upgradePoliciesCheckboxLabel": "升级集成策略", "xpack.fleet.integrationsAppTitle": "集成", - "xpack.fleet.integrationsHeaderTitle": "Elastic 代理集成", + "xpack.fleet.integrationsHeaderTitle": "集成", "xpack.fleet.invalidLicenseDescription": "您当前的许可证已过期。已注册 Beats 代理将继续工作,但您需要有效的许可证,才能访问 Elastic Fleet 界面。", "xpack.fleet.invalidLicenseTitle": "已过期许可证", "xpack.fleet.multiTextInput.addRow": "添加行", @@ -11085,19 +10733,25 @@ "xpack.fleet.namespaceValidation.requiredErrorMessage": "“命名空间”必填", "xpack.fleet.namespaceValidation.tooLongErrorMessage": "命名空间不能超过 100 个字节", "xpack.fleet.newEnrollmentKey.cancelButtonLabel": "取消", + "xpack.fleet.newEnrollmentKey.helpText": "此项留空时,将使用令牌 ID。", "xpack.fleet.newEnrollmentKey.keyCreatedToasts": "注册令牌已创建", "xpack.fleet.newEnrollmentKey.modalTitle": "创建注册令牌", - "xpack.fleet.newEnrollmentKey.nameLabel": "名称", + "xpack.fleet.newEnrollmentKey.nameLabel": "令牌名称", + "xpack.fleet.newEnrollmentKey.placeholder": "输入令牌名称", "xpack.fleet.newEnrollmentKey.policyLabel": "策略", "xpack.fleet.newEnrollmentKey.submitButton": "创建注册令牌", "xpack.fleet.noAccess.accessDeniedDescription": "您无权访问 Elastic Fleet。要使用 Elastic Fleet,您需要包含此应用程序读取权限或所有权限的用户角色。", "xpack.fleet.noAccess.accessDeniedTitle": "访问被拒绝", "xpack.fleet.oldAppTitle": "采集管理器", - "xpack.fleet.overviewPageSubtitle": "Elastic 代理的集中管理", + "xpack.fleet.overviewPageSubtitle": "Elastic 代理的集中管理。", "xpack.fleet.overviewPageTitle": "Fleet", + "xpack.fleet.packagePolicy.ineligibleForUpgradeError": "软件包策略 {id} 的软件包版本 {version} 的软件包 {name} 通过已安装软件包保持最新。请安装最新版本的 {name}。", "xpack.fleet.packagePolicy.packageNotFoundError": "ID 为 {id} 的软件包策略没有命名软件包", + "xpack.fleet.packagePolicy.packageNotInstalledError": "未安装软件包 {name}", "xpack.fleet.packagePolicy.policyNotFoundError": "未找到 ID 为 {id} 的软件包策略", "xpack.fleet.packagePolicyField.yamlCodeEditor": "YAML 代码编辑器", + "xpack.fleet.packagePolicyInvalidError": "软件包策略无效:{errors}", + "xpack.fleet.packagePolicyValidation.boolValueError": "布尔值必须为 true 或 false", "xpack.fleet.packagePolicyValidation.invalidArrayErrorMessage": "格式无效", "xpack.fleet.packagePolicyValidation.invalidYamlFormatErrorMessage": "YAML 格式无效", "xpack.fleet.packagePolicyValidation.nameRequiredErrorMessage": "“名称”必填", @@ -11107,6 +10761,7 @@ "xpack.fleet.permissionDeniedErrorTitle": "权限被拒绝", "xpack.fleet.permissionsRequestErrorMessageDescription": "检查 Fleet 权限时遇到问题", "xpack.fleet.permissionsRequestErrorMessageTitle": "无法检查权限", + "xpack.fleet.policyDetails.addAgentButton": "添加代理", "xpack.fleet.policyDetails.addPackagePolicyButtonText": "添加集成", "xpack.fleet.policyDetails.ErrorGettingFullAgentPolicy": "加载代理策略时出错", "xpack.fleet.policyDetails.packagePoliciesTable.actionsColumnTitle": "操作", @@ -11116,7 +10771,7 @@ "xpack.fleet.policyDetails.packagePoliciesTable.namespaceColumnTitle": "命名空间", "xpack.fleet.policyDetails.packagePoliciesTable.packageNameColumnTitle": "集成", "xpack.fleet.policyDetails.packagePoliciesTable.packageVersion": "v{version}", - "xpack.fleet.policyDetails.packagePoliciesTable.upgradeActionTitle": "升级软件包策略", + "xpack.fleet.policyDetails.packagePoliciesTable.upgradeActionTitle": "升级集成策略", "xpack.fleet.policyDetails.packagePoliciesTable.upgradeAvailable": "升级可用", "xpack.fleet.policyDetails.packagePoliciesTable.upgradeButton": "升级", "xpack.fleet.policyDetails.policyDetailsHostedPolicyTooltip": "此策略是在 Fleet 外进行管理的。与此策略相关的操作多数不可用。", @@ -11127,7 +10782,7 @@ "xpack.fleet.policyDetails.summary.integrations": "集成", "xpack.fleet.policyDetails.summary.lastUpdated": "上次更新时间", "xpack.fleet.policyDetails.summary.revision": "修订", - "xpack.fleet.policyDetails.summary.usedBy": "使用者", + "xpack.fleet.policyDetails.summary.usedBy": "代理", "xpack.fleet.policyDetails.unexceptedErrorTitle": "加载代理策略时发生错误", "xpack.fleet.policyDetails.viewAgentListTitle": "查看所有代理策略", "xpack.fleet.policyDetails.yamlDownloadButtonLabel": "下载策略", @@ -11145,7 +10800,8 @@ "xpack.fleet.policyForm.unableToDeleteDefaultPolicyText": "默认策略无法删除", "xpack.fleet.preconfiguration.duplicatePackageError": "配置中指定的软件包重复:{duplicateList}", "xpack.fleet.preconfiguration.missingIDError": "{agentPolicyName} 缺失 `id` 字段。`id` 是必需的,但标记为 is_default 或 is_default_fleet_server 的策略除外。", - "xpack.fleet.preconfiguration.packageMissingError": "{agentPolicyName} 无法添加。{pkgName} 未安装,请将 {pkgName} 添加到 `{packagesConfigValue}` 或将其从 {packagePolicyName} 中移除。", + "xpack.fleet.preconfiguration.packageMissingError": "无法添加 [{agentPolicyName}]。[{pkgName}] 未安装,请将 [{pkgName}] 添加到 [{packagesConfigValue}] 或将其从 [{packagePolicyName}] 中移除。", + "xpack.fleet.preconfiguration.packageRejectedError": "无法添加 [{agentPolicyName}]。无法安装 [{pkgName}],因为出现错误:[{errorMessage}]", "xpack.fleet.preconfiguration.policyDeleted": "预配置的策略 {id} 已删除;将跳过创建", "xpack.fleet.serverError.agentPolicyDoesNotExist": "代理策略 {agentPolicyId} 不存在", "xpack.fleet.serverError.enrollmentKeyDuplicate": "称作 {providedKeyName} 的注册密钥对于代理策略 {agentPolicyId} 已存在", @@ -11153,10 +10809,12 @@ "xpack.fleet.serverError.unableToCreateEnrollmentKey": "无法创建注册 api 密钥", "xpack.fleet.settings.additionalYamlConfig": "Elasticsearch 输出配置 (YAML)", "xpack.fleet.settings.deleteHostButton": "删除主机", + "xpack.fleet.settings.elasticHostDuplicateError": "复制 URL", "xpack.fleet.settings.elasticHostError": "URL 无效", "xpack.fleet.settings.elasticsearchUrlLabel": "Elasticsearch 主机", "xpack.fleet.settings.elasticsearchUrlsHelpTect": "指定代理用于发送数据的 Elasticsearch URL。Elasticsearch 默认使用端口 9200。", "xpack.fleet.settings.fleetServerHostsDifferentPathOrProtocolError": "对于每个 URL,协议和路径必须相同", + "xpack.fleet.settings.fleetServerHostsDuplicateError": "复制 URL", "xpack.fleet.settings.fleetServerHostsEmptyError": "至少需要一个 URL", "xpack.fleet.settings.fleetServerHostsError": "URL 无效", "xpack.fleet.settings.flyoutTitle": "Fleet 设置", @@ -11166,7 +10824,7 @@ "xpack.fleet.settings.saveButtonLoadingLabel": "正在应用设置......", "xpack.fleet.settings.sortHandle": "排序主机手柄", "xpack.fleet.settings.success.message": "设置已保存", - "xpack.fleet.settings.userGuideLink": "Fleet 用户指南", + "xpack.fleet.settings.userGuideLink": "Fleet 和 Elastic 代理指南", "xpack.fleet.settings.yamlCodeEditor": "YAML 代码编辑器", "xpack.fleet.settingsConfirmModal.calloutTitle": "此操作更新所有代理策略和注册的代理", "xpack.fleet.settingsConfirmModal.cancelButton": "取消", @@ -11225,7 +10883,7 @@ "xpack.fleet.upgradeAgents.upgradeSingleDescription": "此操作会将“{hostName}”上运行的代理升级到版本 {version}。此操作无法撤消。是否确定要继续?", "xpack.fleet.upgradeAgents.upgradeSingleTitle": "将代理升级到最新版本", "xpack.fleet.upgradePackagePolicy.pageDescriptionFromUpgrade": "升级此集成并将更改部署到选定代理策略", - "xpack.fleet.upgradePackagePolicy.previousVersionFlyout.title": "“{name}”软件包策略", + "xpack.fleet.upgradePackagePolicy.previousVersionFlyout.title": "“{name}”集成策略", "xpack.fleet.upgradePackagePolicy.statusCallout.errorContent": "此集成在版本 {currentVersion} 和 {upgradeVersion} 之间有冲突字段。请复查配置并保存,以执行升级。您可以参考您的 {previousConfigurationLink}以进行比较。", "xpack.fleet.upgradePackagePolicy.statusCallOut.errorTitle": "复查字段冲突", "xpack.fleet.upgradePackagePolicy.statusCallout.previousConfigurationLink": "以前的配置", @@ -11332,6 +10990,7 @@ "xpack.graph.leaveWorkspace.confirmButtonLabel": "离开", "xpack.graph.leaveWorkspace.confirmText": "如果现在离开,将丢失未保存的更改。", "xpack.graph.leaveWorkspace.modalTitle": "未保存的更改", + "xpack.graph.legacyUrlConflict.objectNoun": "图表", "xpack.graph.listing.createNewGraph.combineDataViewFromKibanaAppDescription": "发现 Elasticsearch 索引中的模式和关系。", "xpack.graph.listing.createNewGraph.createButtonLabel": "创建图表", "xpack.graph.listing.createNewGraph.newToKibanaDescription": "Kibana 新手?从{sampleDataInstallLink}入手。", @@ -11685,6 +11344,10 @@ "xpack.idxMgmt.deleteTemplatesModal.successDeleteMultipleNotificationMessageText": "已删除 {numSuccesses, plural, other {# 个模板}}", "xpack.idxMgmt.deleteTemplatesModal.successDeleteSingleNotificationMessageText": "已删除模板“{templateName}”", "xpack.idxMgmt.deleteTemplatesModal.systemTemplateLabel": "系统模板", + "xpack.idxMgmt.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "xpack.idxMgmt.deprecations.enabled.manualStepTwoMessage": "将“xpack.index_management.enabled”设置更改为“xpack.index_management.ui.enabled”。", + "xpack.idxMgmt.deprecations.enabledMessage": "要禁止用户访问索引管理 UI,请使用“xpack.index_management.ui.enabled”设置,而不是“xpack.index_management.enabled”。", + "xpack.idxMgmt.deprecations.enabledTitle": "设置“xpack.index_management.enabled”已过时", "xpack.idxMgmt.detailPanel.manageContextMenuLabel": "管理", "xpack.idxMgmt.detailPanel.missingIndexMessage": "此索引不存在。它可能已被正在运行的作业或其他系统删除。", "xpack.idxMgmt.detailPanel.missingIndexTitle": "缺少索引", @@ -12543,7 +12206,17 @@ "xpack.indexLifecycleMgmt.confirmDelete.undoneWarning": "无法恢复删除的策略。", "xpack.indexLifecycleMgmt.dataTier.noTiersAvailableUsingNodeAttributesDescription": "无法分配数据:没有可用的数据节点。", "xpack.indexLifecycleMgmt.dataTier.willUseFallbackTierUsingNodeAttributesDescription": "没有可用的{phase}节点。数据将分配给{fallbackTier}层。", + "xpack.indexLifecycleMgmt.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "xpack.indexLifecycleMgmt.deprecations.enabled.manualStepTwoMessage": "将“xpack.ilm.enabled”设置更改为“xpack.ilm.ui.enabled”。", + "xpack.indexLifecycleMgmt.deprecations.enabledMessage": "要禁止用户访问索引生命周期策略 UI,请使用“xpack.ilm.ui.enabled”设置,而不是“xpack.ilm.enabled”。", + "xpack.indexLifecycleMgmt.deprecations.enabledTitle": "设置“xpack.ilm.enabled”已过时", "xpack.indexLifecycleMgmt.editPolicy.andDependenciesLink": " 和{indexTemplatesLink}", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.bytesLabel": "字节", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.gigabytesLabel": "千兆字节", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.kilobytesLabel": "千字节", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.megabytesLabel": "兆字节", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.petabytesLabel": "万兆字节", + "xpack.indexLifecycleMgmt.editPolicy.byteSizeUnits.terabytesLabel": "兆兆字节", "xpack.indexLifecycleMgmt.editPolicy.cancelButton": "取消", "xpack.indexLifecycleMgmt.editPolicy.cloudDataTierCallout.body": "迁移您的 Elastic Cloud 部署以使用数据层。", "xpack.indexLifecycleMgmt.editPolicy.cloudDataTierCallout.linkToCloudDeploymentDescription": "查看云部署", @@ -12638,6 +12311,7 @@ "xpack.indexLifecycleMgmt.editPolicy.linkedIndices": "{indicesCount, plural, other {# 个已链接索引}}", "xpack.indexLifecycleMgmt.editPolicy.loadSnapshotRepositoriesErrorBody": "刷新此字段并输入现有快照储存库的名称。", "xpack.indexLifecycleMgmt.editPolicy.loadSnapshotRepositoriesErrorTitle": "无法加载快照存储库", + "xpack.indexLifecycleMgmt.editPolicy.maximumPrimaryShardSizeAriaLabel": "最大分片大小单位", "xpack.indexLifecycleMgmt.editPolicy.minAgeSmallerThanColdPhaseError": "必须大于或等于冷阶段值 ({value})", "xpack.indexLifecycleMgmt.editPolicy.minAgeSmallerThanFrozenPhaseError": "必须大于或等于冻结阶段值 ({value})", "xpack.indexLifecycleMgmt.editPolicy.minAgeSmallerThanWarmPhaseError": "必须大于或等于温阶段值 ({value})", @@ -12696,9 +12370,18 @@ "xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotRepoRequiredError": "快照存储库名称必填。", "xpack.indexLifecycleMgmt.editPolicy.searchableSnapshotStorageFieldLabel": "可搜索快照存储", "xpack.indexLifecycleMgmt.editPolicy.showPolicyJsonButton": "显示请求", + "xpack.indexLifecycleMgmt.editPolicy.shrink.configureShardCountLabel": "配置分片计数", + "xpack.indexLifecycleMgmt.editPolicy.shrink.configureShardSizeLabel": "配置分片大小", "xpack.indexLifecycleMgmt.editPolicy.shrinkIndexExplanationText": "将索引缩小成具有较少主分片的新索引。", "xpack.indexLifecycleMgmt.editPolicy.shrinkText": "缩小", "xpack.indexLifecycleMgmt.editPolicy.successfulSaveMessage": "{verb}生命周期策略“{lifecycleName}”", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.daysLabel": "天", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.hoursLabel": "小时", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.microsecondsLabel": "微秒", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.millisecondsLabel": "毫秒", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.minutesLabel": "分钟", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.nanosecondsLabel": "纳秒", + "xpack.indexLifecycleMgmt.editPolicy.timeUnits.secondsLabel": "秒", "xpack.indexLifecycleMgmt.editPolicy.updatedMessage": "已更新", "xpack.indexLifecycleMgmt.editPolicy.validPolicyNameMessage": "策略名称不能以下划线开头,且不能包含逗号或空格。", "xpack.indexLifecycleMgmt.editPolicy.viewNodeDetailsButton": "查看具有选定属性的节点", @@ -12828,6 +12511,7 @@ "xpack.indexLifecycleMgmt.searchableSnapshot.disallowedCalloutBody": "要在此阶段使用可搜索快照,必须在热阶段禁用可搜索快照。", "xpack.indexLifecycleMgmt.searchableSnapshot.disallowedCalloutTitle": "可搜索快照已禁用", "xpack.indexLifecycleMgmt.searchSnapshotlicenseCheckErrorMessage": "要使用可搜索快照,至少需要企业级许可证。", + "xpack.indexLifecycleMgmt.shrink.enableShrinkLabel": "缩小索引", "xpack.indexLifecycleMgmt.shrink.numberOfPrimaryShardsLabel": "主分片数目", "xpack.indexLifecycleMgmt.templateNotFoundMessage": "找不到模板 {name}。", "xpack.indexLifecycleMgmt.timeline.coldPhaseSectionTitle": "冷阶段", @@ -12907,6 +12591,25 @@ "xpack.infra.dataSearch.cancelButtonLabel": "取消请求", "xpack.infra.dataSearch.loadingErrorRetryButtonLabel": "重试", "xpack.infra.dataSearch.shardFailureErrorMessage": "索引 {indexName}:{errorMessage}", + "xpack.infra.deprecations.containerAdjustIndexing": "调整索引以使用“{field}”标识 Docker 容器", + "xpack.infra.deprecations.containerIdFieldName": "容器 ID", + "xpack.infra.deprecations.containerIdFieldTitle": "源配置字段“容器 ID”已过时。", + "xpack.infra.deprecations.deprecatedFieldConfigDescription": "配置“xpack.infra.sources.default.fields.{fieldKey}”已过时,将在 8.0.0 中移除。", + "xpack.infra.deprecations.deprecatedFieldConfigTitle": "“{fieldKey}”已过时。", + "xpack.infra.deprecations.deprecatedFieldDescription": "配置“{fieldName}”字段已过时,将在 8.0.0 中移除。此插件专用于 ECS,预计该字段的值为 `{defaultValue}`。其在以下源{configCount, plural, other {配置}}中配置了不同的值:{configNames}", + "xpack.infra.deprecations.hostAdjustIndexing": "调整索引以使用“{field}”标识主机", + "xpack.infra.deprecations.hostnameFieldName": "主机名", + "xpack.infra.deprecations.hostnameFieldTitle": "源配置字段“主机名”已过时。", + "xpack.infra.deprecations.podAdjustIndexing": "调整索引以使用“{field}”标识 Kubernetes pod", + "xpack.infra.deprecations.podIdFieldName": "Pod ID", + "xpack.infra.deprecations.podIdFieldTitle": "源配置字段“Pod ID”已过时。", + "xpack.infra.deprecations.removeConfigField": "从 Kibana 配置中移除“xpack.infra.sources.default.fields.{fieldKey}”。", + "xpack.infra.deprecations.tiebreakerAdjustIndexing": "调整索引以将“{field}”用作决胜属性。", + "xpack.infra.deprecations.tiebreakerFieldName": "决胜属性", + "xpack.infra.deprecations.tiebreakerFieldTitle": "源配置字段“决胜属性”已过时。", + "xpack.infra.deprecations.timestampAdjustIndexing": "调整索引以将“{field}”用作时间戳。", + "xpack.infra.deprecations.timestampFieldName": "时间戳", + "xpack.infra.deprecations.timestampFieldTitle": "源配置字段“时间戳”已过时。", "xpack.infra.durationUnits.days.plural": "天", "xpack.infra.durationUnits.days.singular": "天", "xpack.infra.durationUnits.hours.plural": "小时", @@ -13062,8 +12765,8 @@ "xpack.infra.logs.alerting.threshold.everythingSeriesName": "日志条目", "xpack.infra.logs.alerting.threshold.fired": "已触发", "xpack.infra.logs.alerting.threshold.groupByActionVariableDescription": "负责触发告警的组的名称", - "xpack.infra.logs.alerting.threshold.groupedCountAlertReasonDescription": "{groupName}:{actualCount, plural, other {{actualCount} 个日志条目} } ({translatedComparator} {expectedCount}) 匹配条件。", - "xpack.infra.logs.alerting.threshold.groupedRatioAlertReasonDescription": "{groupName}:日志条目比率为 {actualRatio} ({translatedComparator} {expectedRatio})。", + "xpack.infra.logs.alerting.threshold.groupedCountAlertReasonDescription": "{actualCount, plural, other {{actualCount} 个日志条目} } ({translatedComparator} {expectedCount}) 匹配 {groupName} 的条件。", + "xpack.infra.logs.alerting.threshold.groupedRatioAlertReasonDescription": "{groupName} 的日志条目比率为 {actualRatio} ({translatedComparator} {expectedRatio})。", "xpack.infra.logs.alerting.threshold.isRatioActionVariableDescription": "表示此告警是否配置了比率", "xpack.infra.logs.alerting.threshold.numeratorConditionsActionVariableDescription": "比率的分子需要满足的条件", "xpack.infra.logs.alerting.threshold.ratioActionVariableDescription": "两组条件的比率值", @@ -13191,6 +12894,9 @@ "xpack.infra.logs.logEntryRate.setupDescription": "要启用日志异常分析,请设置 Machine Learning 作业", "xpack.infra.logs.logEntryRate.setupTitle": "设置日志异常分析", "xpack.infra.logs.logEntryRate.showAnalysisSetupButtonLabel": "ML 设置", + "xpack.infra.logs.noDataConfig.beatsCard.description": "使用 Elastic 代理或 Beats 将日志发送到 Elasticsearch。我们使许多流行系统和应用都可以轻松使用集成。", + "xpack.infra.logs.noDataConfig.beatsCard.title": "添加日志记录集成", + "xpack.infra.logs.noDataConfig.solutionName": "可观测性", "xpack.infra.logs.pluginTitle": "日志", "xpack.infra.logs.scrollableLogTextStreamView.loadingEntriesLabel": "正在加载条目", "xpack.infra.logs.search.nextButtonLabel": "下一页", @@ -13214,6 +12920,8 @@ "xpack.infra.logSourceConfiguration.childFormElementErrorMessage": "至少一个表单字段处于无效状态。", "xpack.infra.logSourceConfiguration.emptyColumnListErrorMessage": "列列表不得为空。", "xpack.infra.logSourceConfiguration.emptyFieldErrorMessage": "字段“{fieldName}”不得为空。", + "xpack.infra.logSourceConfiguration.indexPatternInformationCalloutDescription": "现在,Logs UI 可以与 Kibana 索引模式集成以配置使用的索引。", + "xpack.infra.logSourceConfiguration.indexPatternInformationCalloutTitle": "新配置选项", "xpack.infra.logSourceConfiguration.invalidMessageFieldTypeErrorMessage": "{messageField} 字段必须是文本字段。", "xpack.infra.logSourceConfiguration.logSourceConfigurationFormErrorsCalloutTitle": "内容配置不一致", "xpack.infra.logSourceConfiguration.missingMessageFieldErrorMessage": "索引模式必须包含 {messageField} 字段。", @@ -13374,6 +13082,7 @@ "xpack.infra.metrics.alertFlyout.aggregationText.rate": "比率", "xpack.infra.metrics.alertFlyout.aggregationText.sum": "求和", "xpack.infra.metrics.alertFlyout.alertDescription": "当指标聚合超过阈值时告警。", + "xpack.infra.metrics.alertFlyout.alertOnGroupDisappear": "组停止报告数据时提醒我", "xpack.infra.metrics.alertFlyout.alertOnNoData": "没数据时提醒我", "xpack.infra.metrics.alertFlyout.anomalyFilterHelpText": "将告警触发的范围限定在特定节点影响的异常。", "xpack.infra.metrics.alertFlyout.anomalyFilterHelpTextExample": "例如:“my-node-1”或“my-node-*”", @@ -13383,7 +13092,7 @@ "xpack.infra.metrics.alertFlyout.anomalyJobs.networkOut": "网络传出", "xpack.infra.metrics.alertFlyout.conditions": "条件", "xpack.infra.metrics.alertFlyout.createAlertPerHelpText": "为每个唯一值创建告警。例如:“host.id”或“cloud.region”。", - "xpack.infra.metrics.alertFlyout.createAlertPerText": "创建告警时间间隔(可选)", + "xpack.infra.metrics.alertFlyout.createAlertPerText": "告警分组依据(可选)", "xpack.infra.metrics.alertFlyout.criticalThreshold": "告警", "xpack.infra.metrics.alertFlyout.dropPartialBucketsHelpText": "启用此选项后,最近的评估数据存储桶小于 {timeSize}{timeUnit} 时将会被丢弃。", "xpack.infra.metrics.alertFlyout.error.aggregationRequired": "“聚合”必填。", @@ -13408,6 +13117,7 @@ "xpack.infra.metrics.alertFlyout.filterByNodeLabel": "按节点筛选", "xpack.infra.metrics.alertFlyout.filterHelpText": "使用 KQL 表达式限制告警触发的范围。", "xpack.infra.metrics.alertFlyout.filterLabel": "筛选(可选)", + "xpack.infra.metrics.alertFlyout.groupDisappearHelpText": "启用此选项可在之前检测的组开始不报告任何数据时触发操作。不建议将此选项用于可能会快速自动启动和停止节点的动态扩展基础架构。", "xpack.infra.metrics.alertFlyout.noDataHelpText": "启用此选项可在指标在预期的时间段中未报告任何数据时或告警无法查询 Elasticsearch 时触发操作", "xpack.infra.metrics.alertFlyout.ofExpression.helpTextDetail": "找不到指标?{documentationLink}。", "xpack.infra.metrics.alertFlyout.ofExpression.popoverLinkLabel": "了解如何添加更多数据", @@ -13448,12 +13158,15 @@ "xpack.infra.metrics.alerting.threshold.errorAlertReason": "Elasticsearch 尝试查询 {metric} 的数据时出现故障", "xpack.infra.metrics.alerting.threshold.errorState": "错误", "xpack.infra.metrics.alerting.threshold.fired": "告警", + "xpack.infra.metrics.alerting.threshold.firedAlertReason": "对于 {group},{metric} {comparator}阈值 {threshold}(当前值为 {currentValue})", "xpack.infra.metrics.alerting.threshold.gtComparator": "大于", "xpack.infra.metrics.alerting.threshold.ltComparator": "小于", + "xpack.infra.metrics.alerting.threshold.noDataAlertReason": "对于 {group},{metric} 在过去 {interval}中未报告数据", "xpack.infra.metrics.alerting.threshold.noDataFormattedValue": "[无数据]", "xpack.infra.metrics.alerting.threshold.noDataState": "无数据", "xpack.infra.metrics.alerting.threshold.okState": "正常 [已恢复]", "xpack.infra.metrics.alerting.threshold.outsideRangeComparator": "不介于", + "xpack.infra.metrics.alerting.threshold.recoveredAlertReason": "对于 {group},{metric} 现在{comparator}阈值 {threshold}(当前值为 {currentValue})", "xpack.infra.metrics.alerting.threshold.thresholdRange": "{a} 和 {b}", "xpack.infra.metrics.alerting.threshold.warning": "警告", "xpack.infra.metrics.alerting.threshold.warningState": "警告", @@ -13476,6 +13189,9 @@ "xpack.infra.metrics.loadingNodeDataText": "正在加载数据", "xpack.infra.metrics.metricsExplorerTitle": "指标浏览器", "xpack.infra.metrics.missingTSVBModelError": "{nodeType} 的 {metricId} TSVB 模型不存在", + "xpack.infra.metrics.noDataConfig.beatsCard.description": "使用 Beats 将指标数据发送到 Elasticsearch。我们使许多流行系统和应用都可以轻松使用模块。", + "xpack.infra.metrics.noDataConfig.beatsCard.title": "添加指标集成", + "xpack.infra.metrics.noDataConfig.solutionName": "可观测性", "xpack.infra.metrics.nodeDetails.noProcesses": "未发现任何进程", "xpack.infra.metrics.nodeDetails.noProcessesBody": "请尝试修改您的筛选条件。此处仅显示配置的“{metricbeatDocsLink}”内的进程。", "xpack.infra.metrics.nodeDetails.noProcessesBody.metricbeatDocsLinkText": "按 CPU 或内存排名前 N", @@ -13835,10 +13551,10 @@ "xpack.ingestPipelines.app.checkingPrivilegesErrorMessage": "从服务器获取用户权限时出错。", "xpack.ingestPipelines.app.deniedPrivilegeDescription": "要使用“采集管道”,必须具有{privilegesCount, plural, other {以下集群权限}}:{missingPrivileges}。", "xpack.ingestPipelines.app.deniedPrivilegeTitle": "需要集群权限", - "xpack.ingestPipelines.appTitle": "采集节点管道", + "xpack.ingestPipelines.appTitle": "采集管道", "xpack.ingestPipelines.breadcrumb.createPipelineLabel": "创建管道", "xpack.ingestPipelines.breadcrumb.editPipelineLabel": "编辑管道", - "xpack.ingestPipelines.breadcrumb.pipelinesLabel": "采集节点管道", + "xpack.ingestPipelines.breadcrumb.pipelinesLabel": "采集管道", "xpack.ingestPipelines.clone.loadingPipelinesDescription": "正在加载管道……", "xpack.ingestPipelines.clone.loadSourcePipelineErrorTitle": "无法加载 {name}。", "xpack.ingestPipelines.create.docsButtonLabel": "创建管道文档", @@ -13878,7 +13594,7 @@ "xpack.ingestPipelines.form.unknownError": "发生了未知错误。", "xpack.ingestPipelines.form.versionFieldLabel": "版本(可选)", "xpack.ingestPipelines.form.versionToggleDescription": "添加版本号", - "xpack.ingestPipelines.list.listTitle": "采集节点管道", + "xpack.ingestPipelines.list.listTitle": "采集管道", "xpack.ingestPipelines.list.loadErrorTitle": "无法加载管道", "xpack.ingestPipelines.list.loadingMessage": "正在加载管道……", "xpack.ingestPipelines.list.loadPipelineReloadButton": "重试", @@ -13895,7 +13611,7 @@ "xpack.ingestPipelines.list.pipelineDetails.processorsTitle": "处理器", "xpack.ingestPipelines.list.pipelineDetails.versionTitle": "版本", "xpack.ingestPipelines.list.pipelinesDescription": "定义用于在索引之前重新处理文档的管道。", - "xpack.ingestPipelines.list.pipelinesDocsLinkText": "采集节点管道文档", + "xpack.ingestPipelines.list.pipelinesDocsLinkText": "采集管道文档", "xpack.ingestPipelines.list.table.actionColumnTitle": "操作", "xpack.ingestPipelines.list.table.cloneActionDescription": "克隆此管道", "xpack.ingestPipelines.list.table.cloneActionLabel": "克隆", @@ -14364,7 +14080,7 @@ "xpack.ingestPipelines.processors.description.kv": "从包含键值对的字符串中提取字段。", "xpack.ingestPipelines.processors.description.lowercase": "将字符串转换为小写形式。", "xpack.ingestPipelines.processors.description.networkDirection": "在给定源 IP 地址的情况下计算网络方向。", - "xpack.ingestPipelines.processors.description.pipeline": "运行其他采集节点管道。", + "xpack.ingestPipelines.processors.description.pipeline": "运行其他采集管道。", "xpack.ingestPipelines.processors.description.registeredDomain": "从完全限定域名中提取已注册域(有效的顶层域)、子域和顶层域。", "xpack.ingestPipelines.processors.description.remove": "移除一个或多个字段。", "xpack.ingestPipelines.processors.description.rename": "重命名现有字段。", @@ -14446,6 +14162,837 @@ "xpack.ingestPipelines.testPipelineFlyout.outputTab.verboseSwitchLabel": "查看详细输出", "xpack.ingestPipelines.testPipelineFlyout.successNotificationText": "管道已执行", "xpack.ingestPipelines.testPipelineFlyout.title": "测试管道", + "xpack.lens.app.addToLibrary": "保存到库", + "xpack.lens.app.cancel": "取消", + "xpack.lens.app.cancelButtonAriaLabel": "返回到上一个应用而不保存更改", + "xpack.lens.app.docLoadingError": "加载已保存文档时出错", + "xpack.lens.app.downloadButtonAriaLabel": "将数据下载为 CSV 文件", + "xpack.lens.app.downloadButtonFormulasWarning": "您的 CSV 包含电子表格应用程序可能解释为公式的字符。", + "xpack.lens.app.downloadCSV": "下载为 CSV", + "xpack.lens.app.inspect": "检查", + "xpack.lens.app.inspectAriaLabel": "检查", + "xpack.lens.app.save": "保存", + "xpack.lens.app.saveAndReturn": "保存并返回", + "xpack.lens.app.saveAndReturnButtonAriaLabel": "保存当前 Lens 可视化并返回到上一应用", + "xpack.lens.app.saveAs": "另存为", + "xpack.lens.app.saveButtonAriaLabel": "保存当前的 Lens 可视化", + "xpack.lens.app.saveModalType": "Lens 可视化", + "xpack.lens.app.saveVisualization.successNotificationText": "已保存“{visTitle}”", + "xpack.lens.app.unsavedFilename": "未保存", + "xpack.lens.app.unsavedWorkMessage": "离开有未保存工作的 Lens?", + "xpack.lens.app.unsavedWorkTitle": "未保存的更改", + "xpack.lens.app.updatePanel": "更新 {originatingAppName} 中的面板", + "xpack.lens.app404": "404 找不到", + "xpack.lens.appName": "Lens 可视化", + "xpack.lens.breadcrumbsByValue": "编辑可视化", + "xpack.lens.breadcrumbsCreate": "创建", + "xpack.lens.breadcrumbsTitle": "Visualize 库", + "xpack.lens.chartSwitch.dataLossDescription": "选择此可视化类型将移除不兼容的配置选项和多个图层(如果存在)", + "xpack.lens.chartSwitch.dataLossLabel": "警告", + "xpack.lens.chartSwitch.experimentalLabel": "实验性", + "xpack.lens.chartSwitch.noResults": "找不到 {term} 的结果。", + "xpack.lens.chartTitle.unsaved": "未保存的可视化", + "xpack.lens.chartWarnings.number": "{warningsCount} 个{warningsCount, plural, other {警告}}", + "xpack.lens.configPanel.addLayerButton": "添加图层", + "xpack.lens.configPanel.color.tooltip.auto": "Lens 自动为您选取颜色,除非您指定定制颜色。", + "xpack.lens.configPanel.color.tooltip.custom": "清除定制颜色以返回到“自动”模式。", + "xpack.lens.configPanel.color.tooltip.disabled": "当图层包括“细分依据”,各个系列无法定制颜色。", + "xpack.lens.configPanel.selectVisualization": "选择可视化", + "xpack.lens.configPanel.visualizationType": "可视化类型", + "xpack.lens.configure.configurePanelTitle": "{groupLabel}", + "xpack.lens.configure.editConfig": "编辑 {label} 配置", + "xpack.lens.configure.emptyConfig": "添加或拖放字段", + "xpack.lens.configure.invalidBottomReferenceLineDimension": "此参考线分配给了不再存在或不再有效的轴。您可以将此参考线移到其他可用的轴,或将其移除。", + "xpack.lens.configure.invalidConfigTooltip": "配置无效。", + "xpack.lens.configure.invalidConfigTooltipClick": "单击了解更多详情。", + "xpack.lens.configure.invalidReferenceLineDimension": "此参考线分配给了不再存在的轴。您可以将此参考线移到其他可用的轴,或将其移除。", + "xpack.lens.customBucketContainer.dragToReorder": "拖动以重新排序", + "xpack.lens.dataPanelWrapper.switchDatasource": "切换到数据源", + "xpack.lens.datatable.addLayer": "添加可视化图层", + "xpack.lens.datatable.breakdownColumns": "列", + "xpack.lens.datatable.breakdownColumns.description": "按字段拆分指标列。建议减少列数目以避免水平滚动。", + "xpack.lens.datatable.breakdownRows": "行", + "xpack.lens.datatable.breakdownRows.description": "按字段拆分表行。建议将其用于高基数分解。", + "xpack.lens.datatable.conjunctionSign": " & ", + "xpack.lens.datatable.expressionHelpLabel": "数据表呈现器", + "xpack.lens.datatable.groupLabel": "表和单值", + "xpack.lens.datatable.label": "表", + "xpack.lens.datatable.metrics": "指标", + "xpack.lens.datatable.suggestionLabel": "作为表", + "xpack.lens.datatable.titleLabel": "标题", + "xpack.lens.datatable.visualizationName": "数据表", + "xpack.lens.datatable.visualizationOf": "表{operations}", + "xpack.lens.datatypes.boolean": "布尔值", + "xpack.lens.datatypes.date": "日期", + "xpack.lens.datatypes.geoPoint": "geo_point", + "xpack.lens.datatypes.geoShape": "geo_shape", + "xpack.lens.datatypes.histogram": "直方图", + "xpack.lens.datatypes.ipAddress": "IP", + "xpack.lens.datatypes.number": "数字", + "xpack.lens.datatypes.record": "记录", + "xpack.lens.datatypes.string": "字符串", + "xpack.lens.deleteLayerAriaLabel": "删除图层 {index}", + "xpack.lens.dimensionContainer.close": "关闭", + "xpack.lens.dimensionContainer.closeConfiguration": "关闭配置", + "xpack.lens.discover.visualizeFieldLegend": "可视化字段", + "xpack.lens.dragDrop.altOption": "Alt/Option 键", + "xpack.lens.dragDrop.announce.cancelled": "移动已取消。{label} 将返回至其初始位置", + "xpack.lens.dragDrop.announce.cancelledItem": "移动已取消。{label} 返回至 {groupLabel} 组中的位置 {position}", + "xpack.lens.dragDrop.announce.dropped.duplicated": "已在 {groupLabel} 组中的位置 {position} 复制 {label}", + "xpack.lens.dragDrop.announce.dropped.duplicateIncompatible": "已将 {label} 的副本转换为 {nextLabel} 并添加 {groupLabel} 组中的位置 {position}", + "xpack.lens.dragDrop.announce.dropped.moveCompatible": "已将 {label} 移到 {groupLabel} 组中的位置 {position}", + "xpack.lens.dragDrop.announce.dropped.moveIncompatible": "已将 {label} 转换为 {nextLabel} 并移到 {groupLabel} 组中的位置 {position}", + "xpack.lens.dragDrop.announce.dropped.reordered": "已将 {groupLabel} 组中的 {label} 从位置 {prevPosition} 重新排到位置 {position}", + "xpack.lens.dragDrop.announce.dropped.replaceDuplicateIncompatible": "已将 {label} 的副本转换为 {nextLabel} 并替换了 {groupLabel} 组中位置 {position} 上的 {dropLabel}", + "xpack.lens.dragDrop.announce.dropped.replaceIncompatible": "已将 {label} 转换为 {nextLabel} 并替换了 {groupLabel} 组中位置 {position} 上的 {dropLabel}", + "xpack.lens.dragDrop.announce.dropped.swapCompatible": "已将 {label} 移至 {dropGroupLabel} 中的位置 {dropPosition} 并将 {dropLabel} 移至组 {groupLabel} 中的位置 {position}", + "xpack.lens.dragDrop.announce.dropped.swapIncompatible": "已将 {label} 转换为组 {groupLabel} 中位置 {position} 上的 {nextLabel},并与组 {dropGroupLabel} 中位置 {dropPosition} 上的 {dropLabel} 交换", + "xpack.lens.dragDrop.announce.droppedDefault": "已将 {label} 添加到 {dropGroupLabel} 组中的位置 {position}", + "xpack.lens.dragDrop.announce.droppedNoPosition": "已将 {label} 添加到 {dropLabel}", + "xpack.lens.dragDrop.announce.duplicate.short": " 按住 alt 或 option 键以复制。", + "xpack.lens.dragDrop.announce.duplicated.replace": "已将 {groupLabel} 组中位置 {position} 上的 {dropLabel} 替换为 {label}", + "xpack.lens.dragDrop.announce.duplicated.replaceDuplicateCompatible": "已将 {groupLabel} 组中位置 {position} 上的 {dropLabel} 替换为 {label} 的副本", + "xpack.lens.dragDrop.announce.lifted": "已提升 {label}", + "xpack.lens.dragDrop.announce.selectedTarget.default": "将 {label} 添加到 {dropGroupLabel} 组中的位置 {position}。按空格键或 enter 键添加", + "xpack.lens.dragDrop.announce.selectedTarget.defaultNoPosition": "将 {label} 添加到 {dropLabel}。按空格键或 enter 键添加", + "xpack.lens.dragDrop.announce.selectedTarget.duplicated": "将 {label} 复制到 {dropGroupLabel} 组中的位置 {position}。按住 Alt 或 Option 并按空格键或 enter 键以复制", + "xpack.lens.dragDrop.announce.selectedTarget.duplicatedInGroup": "将 {label} 复制到 {dropGroupLabel} 组中的位置 {position}。按空格键或 enter 键复制", + "xpack.lens.dragDrop.announce.selectedTarget.duplicateIncompatible": "将 {label} 转换为 {nextLabel} 并移到 {groupLabel} 组中的位置 {position}。按住 Alt 或 Option 并按空格键或 enter 键以复制", + "xpack.lens.dragDrop.announce.selectedTarget.moveCompatible": "将 {label} 移至 {dropGroupLabel} 组中的位置 {dropPosition}。按空格键或 enter 键移动", + "xpack.lens.dragDrop.announce.selectedTarget.moveCompatibleMain": "您正将 {groupLabel} 中位置 {position} 上的{label} 拖到 {dropGroupLabel} 组中的位置 {dropPosition} 上。按空格键或 enter 键移动。{duplicateCopy}{swapCopy}", + "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatible": "将 {label} 转换为 {nextLabel} 并移到 {dropGroupLabel} 组中的位置 {dropPosition}。按空格键或 enter 键移动", + "xpack.lens.dragDrop.announce.selectedTarget.moveIncompatibleMain": "您正将 {groupLabel} 中位置 {position} 上的{label} 拖到 {dropGroupLabel} 组中的位置 {dropPosition} 上。按空格键或 enter 键以将 {label} 转换为 {nextLabel} 并移动。{duplicateCopy}{swapCopy}", + "xpack.lens.dragDrop.announce.selectedTarget.noSelected": "未选择任何目标。使用箭头键选择目标", + "xpack.lens.dragDrop.announce.selectedTarget.reordered": "将 {groupLabel} 组中的 {label} 从位置 {prevPosition} 重新排到位置 {position}。按空格键或 enter 键重新排列", + "xpack.lens.dragDrop.announce.selectedTarget.reorderedBack": "{label} 已返回至其初始位置 {prevPosition}", + "xpack.lens.dragDrop.announce.selectedTarget.replace": "将 {dropGroupLabel} 组中位置 {dropPosition} 上的 {dropLabel} 替换为 {label}。按空格键或 enter 键替换。", + "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateCompatible": "复制 {label} 并替换 {groupLabel} 中位置 {position} 上的 {dropLabel}。按住 Alt 或 Option 并按空格键或 enter 键以复制并替换", + "xpack.lens.dragDrop.announce.selectedTarget.replaceDuplicateIncompatible": "将 {label} 的副本转换为 {nextLabel} 并替换 {groupLabel} 组中位置 {position} 上的 {dropLabel}。按住 Alt 或 Option 并按空格键或 enter 键以复制并替换", + "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatible": "将 {label} 转换为 {nextLabel} 并替换 {dropGroupLabel} 组中位置 {dropPosition} 上的 {dropLabel}。按空格键或 enter 键替换", + "xpack.lens.dragDrop.announce.selectedTarget.replaceIncompatibleMain": "您正将 {groupLabel} 中位置 {position} 上的{label} 拖到 {dropGroupLabel} 组中位置 {dropPosition} 上的 {dropLabel}。按空格键或 enter 键以将 {label} 转换为 {nextLabel} 并替换 {dropLabel}。{duplicateCopy}{swapCopy}", + "xpack.lens.dragDrop.announce.selectedTarget.replaceMain": "您正将 {groupLabel} 中位置 {position} 上的{label} 拖到 {dropGroupLabel} 组中位置 {dropPosition} 上的 {dropLabel}。按空格键或 enter 键以将 {dropLabel} 替换为 {label}。{duplicateCopy}{swapCopy}", + "xpack.lens.dragDrop.announce.selectedTarget.swapCompatible": "将组 {groupLabel} 中位置 {position} 上的 {label} 与组 {dropGroupLabel} 中位置 {dropPosition} 上的 {dropLabel} 交换。按住 Shift 键并按空格键或 enter 键交换", + "xpack.lens.dragDrop.announce.selectedTarget.swapIncompatible": "将 {label} 转换为组 {groupLabel} 中位置 {position} 上的 {nextLabel},并与组 {dropGroupLabel} 中位置 {dropPosition} 上的 {dropLabel} 交换。按住 Shift 键并按空格键或 enter 键交换", + "xpack.lens.dragDrop.announce.swap.short": " 按住 Shift 键交换。", + "xpack.lens.dragDrop.duplicate": "复制", + "xpack.lens.dragDrop.keyboardInstructions": "按空格键或 enter 键开始拖动。拖动时,请左右箭头键在拖动目标之间移动。再次按空格键或 enter 键结束操作。", + "xpack.lens.dragDrop.keyboardInstructionsReorder": "按空格键或 enter 键开始拖动。拖动时,请使用上下箭头键重新排列组中的项目,使用左右箭头键在组之外选择拖动目标。再次按空格键或 enter 键结束操作。", + "xpack.lens.dragDrop.shift": "Shift 键", + "xpack.lens.dragDrop.swap": "交换", + "xpack.lens.dynamicColoring.customPalette.addColorStop": "添加颜色停止", + "xpack.lens.dynamicColoring.customPalette.deleteButtonAriaLabel": "删除", + "xpack.lens.dynamicColoring.customPalette.deleteButtonDisabled": "此颜色停止无法删除,因为需要两个或更多停止", + "xpack.lens.dynamicColoring.customPalette.deleteButtonLabel": "删除", + "xpack.lens.dynamicColoring.customPalette.sortReason": "由于新停止值 {value},颜色停止已排序", + "xpack.lens.dynamicColoring.customPalette.stopAriaLabel": "停止 {index}", + "xpack.lens.editorFrame.buildExpressionError": "准备图表时发生意外错误", + "xpack.lens.editorFrame.colorIndicatorLabel": "此维度的颜色:{hex}", + "xpack.lens.editorFrame.configurationFailureMoreErrors": " +{errors} 个{errors, plural, other {错误}}", + "xpack.lens.editorFrame.dataFailure": "加载数据时出错。", + "xpack.lens.editorFrame.emptyWorkspace": "将一些字段拖放到此处以开始", + "xpack.lens.editorFrame.emptyWorkspaceHeading": "Lens 是用于创建可视化的新工具", + "xpack.lens.editorFrame.emptyWorkspaceSimple": "将字段放到此处", + "xpack.lens.editorFrame.expandRenderingErrorButton": "显示错误的详情", + "xpack.lens.editorFrame.expressionFailure": "表达式中发生错误", + "xpack.lens.editorFrame.expressionFailureMessage": "请求错误:{type},{reason}", + "xpack.lens.editorFrame.expressionFailureMessageWithContext": "请求错误:{type},{context} 中的 {reason}", + "xpack.lens.editorFrame.expressionMissingDatasource": "无法找到可视化的数据源", + "xpack.lens.editorFrame.expressionMissingVisualizationType": "找不到可视化类型。", + "xpack.lens.editorFrame.goToForums": "提出请求并提供反馈", + "xpack.lens.editorFrame.invisibleIndicatorLabel": "此维度当前在图表中不可见", + "xpack.lens.editorFrame.networkErrorMessage": "网络错误,请稍后重试或联系管理员。", + "xpack.lens.editorFrame.noColorIndicatorLabel": "此维度没有单独的颜色", + "xpack.lens.editorFrame.paletteColorIndicatorLabel": "此维度正在使用调色板", + "xpack.lens.editorFrame.previewErrorLabel": "预览呈现失败", + "xpack.lens.editorFrame.suggestionPanelTitle": "建议", + "xpack.lens.editorFrame.workspaceLabel": "工作区", + "xpack.lens.embeddable.failure": "无法显示可视化", + "xpack.lens.embeddable.fixErrors": "在 Lens 编辑器中编辑以修复该错误", + "xpack.lens.embeddable.legacyURLConflict.shortMessage": "您遇到了 URL 冲突", + "xpack.lens.embeddable.moreErrors": "在 Lens 编辑器中编辑以查看更多错误", + "xpack.lens.embeddableDisplayName": "lens", + "xpack.lens.fieldFormats.longSuffix.d": "每天", + "xpack.lens.fieldFormats.longSuffix.h": "每小时", + "xpack.lens.fieldFormats.longSuffix.m": "每分钟", + "xpack.lens.fieldFormats.longSuffix.s": "每秒", + "xpack.lens.fieldFormats.suffix.d": "/d", + "xpack.lens.fieldFormats.suffix.h": "/h", + "xpack.lens.fieldFormats.suffix.m": "/m", + "xpack.lens.fieldFormats.suffix.s": "/s", + "xpack.lens.fieldFormats.suffix.title": "后缀", + "xpack.lens.filterBy.removeLabel": "移除筛选", + "xpack.lens.fittingFunctionsDescription.carry": "使用最后一个值填充空距", + "xpack.lens.fittingFunctionsDescription.linear": "使用线填充空距", + "xpack.lens.fittingFunctionsDescription.lookahead": "使用下一个值填充空距", + "xpack.lens.fittingFunctionsDescription.none": "不填充空距", + "xpack.lens.fittingFunctionsDescription.zero": "使用零填充空距", + "xpack.lens.fittingFunctionsTitle.carry": "最后一个", + "xpack.lens.fittingFunctionsTitle.linear": "线性", + "xpack.lens.fittingFunctionsTitle.lookahead": "下一个", + "xpack.lens.fittingFunctionsTitle.none": "隐藏", + "xpack.lens.fittingFunctionsTitle.zero": "零", + "xpack.lens.formula.base": "底数", + "xpack.lens.formula.decimals": "小数", + "xpack.lens.formula.disableWordWrapLabel": "禁用自动换行", + "xpack.lens.formula.editorHelpInlineHideLabel": "隐藏函数引用", + "xpack.lens.formula.editorHelpInlineHideToolTip": "隐藏函数引用", + "xpack.lens.formula.editorHelpInlineShowToolTip": "显示函数引用", + "xpack.lens.formula.editorHelpOverlayToolTip": "函数引用", + "xpack.lens.formula.fullScreenEnterLabel": "展开", + "xpack.lens.formula.fullScreenExitLabel": "折叠", + "xpack.lens.formula.kqlExtraArguments": "[kql]?: string, [lucene]?: string", + "xpack.lens.formula.left": "左", + "xpack.lens.formula.max": "最大值", + "xpack.lens.formula.min": "最小值", + "xpack.lens.formula.number": "数字", + "xpack.lens.formula.optionalArgument": "可选。默认值为 {defaultValue}", + "xpack.lens.formula.requiredArgument": "必需", + "xpack.lens.formula.right": "右", + "xpack.lens.formula.shiftExtraArguments": "[shift]?: string", + "xpack.lens.formula.string": "字符串", + "xpack.lens.formula.value": "值", + "xpack.lens.formulaCommonFormulaDocumentation": "最常见的公式是将两个值相除以得到百分比。要精确显示,请将“value format”设置为“percent”。", + "xpack.lens.formulaDocumentation.columnCalculationSection": "列计算", + "xpack.lens.formulaDocumentation.columnCalculationSectionDescription": "每行都执行这些函数,但系统会为这些函数提供整列作为上下文。这也称作窗口函数。", + "xpack.lens.formulaDocumentation.elasticsearchSection": "Elasticsearch", + "xpack.lens.formulaDocumentation.elasticsearchSectionDescription": "在原始文档上结果列表的每行都将执行这些函数,从而将匹配分解维度的所有文档聚合成单值。", + "xpack.lens.formulaDocumentation.filterRatio": "筛选比", + "xpack.lens.formulaDocumentation.header": "公式参考", + "xpack.lens.formulaDocumentation.mathSection": "数学", + "xpack.lens.formulaDocumentation.mathSectionDescription": "结果表的每行使用相同行中使用其他函数计算的单值执行这些函数。", + "xpack.lens.formulaDocumentation.percentOfTotal": "总计的百分比", + "xpack.lens.formulaDocumentation.weekOverWeek": "周环比", + "xpack.lens.formulaDocumentationHeading": "运作方式", + "xpack.lens.formulaEnableWordWrapLabel": "启用自动换行", + "xpack.lens.formulaErrorCount": "{count} 个{count, plural, other {错误}}", + "xpack.lens.formulaExampleMarkdown": "示例", + "xpack.lens.formulaFrequentlyUsedHeading": "常用公式", + "xpack.lens.formulaPlaceholderText": "通过将函数与数学表达式组合来键入公式,如:", + "xpack.lens.formulaSearchPlaceholder": "搜索函数", + "xpack.lens.formulaWarningCount": "{count} 个{count, plural, other {警告}}", + "xpack.lens.functions.counterRate.args.byHelpText": "用于拆分计数率计算的列", + "xpack.lens.functions.counterRate.args.inputColumnIdHelpText": "要计算计数器比率的列", + "xpack.lens.functions.counterRate.args.outputColumnIdHelpText": "要存储结果计数率的列", + "xpack.lens.functions.counterRate.args.outputColumnNameHelpText": "要存储结果计数率的列名称", + "xpack.lens.functions.counterRate.help": "在数据表中计算列的计数率", + "xpack.lens.functions.lastValue.missingSortField": "此索引模式不包含任何日期字段", + "xpack.lens.functions.mergeTables.help": "将任意数目的 kibana 表合并到单个表中并通过检查器适配器将其开放的助手", + "xpack.lens.functions.renameColumns.help": "用于重命名数据表列的助手", + "xpack.lens.functions.renameColumns.idMap.help": "旧列 ID 为键且相应新列 ID 为值的 JSON 编码对象。所有其他列 ID 都将保留。", + "xpack.lens.functions.timeScale.dateColumnMissingMessage": "指定的 dateColumnId {columnId} 不存在。", + "xpack.lens.functions.timeScale.timeInfoMissingMessage": "无法获取日期直方图信息", + "xpack.lens.geoFieldWorkspace.dropMessage": "将字段放置在此处以在 Maps 中打开", + "xpack.lens.geoFieldWorkspace.dropZoneLabel": "放置区域以在 Maps 中打开", + "xpack.lens.heatmap.addLayer": "添加可视化图层", + "xpack.lens.heatmap.cellValueLabel": "单元格值", + "xpack.lens.heatmap.expressionHelpLabel": "热图呈现器", + "xpack.lens.heatmap.groupLabel": "热图", + "xpack.lens.heatmap.heatmapLabel": "热图", + "xpack.lens.heatmap.horizontalAxisLabel": "水平轴", + "xpack.lens.heatmap.titleLabel": "标题", + "xpack.lens.heatmap.verticalAxisLabel": "垂直轴", + "xpack.lens.heatmap.visualizationName": "热图", + "xpack.lens.heatmapChart.config.cellHeight.help": "指定网格单元格高度", + "xpack.lens.heatmapChart.config.cellWidth.help": "指定网格单元格宽度", + "xpack.lens.heatmapChart.config.isCellLabelVisible.help": "指定单元格标签是否可见。", + "xpack.lens.heatmapChart.config.isXAxisLabelVisible.help": "指定 X 轴标签是否可见。", + "xpack.lens.heatmapChart.config.isYAxisLabelVisible.help": "指定 Y 轴标签是否可见。", + "xpack.lens.heatmapChart.config.strokeColor.help": "指定网格笔画颜色", + "xpack.lens.heatmapChart.config.strokeWidth.help": "指定网格笔画宽度", + "xpack.lens.heatmapChart.config.yAxisLabelColor.help": "指定 Y 轴标签的颜色。", + "xpack.lens.heatmapChart.config.yAxisLabelWidth.help": "指定 Y 轴标签的宽度。", + "xpack.lens.heatmapChart.gridConfig.help": "配置热图布局。", + "xpack.lens.heatmapChart.legend.help": "配置图表图例。", + "xpack.lens.heatmapChart.legend.isVisible.help": "指定图例是否可见。", + "xpack.lens.heatmapChart.legend.maxLines.help": "指定每个图例项的行数。", + "xpack.lens.heatmapChart.legend.position.help": "指定图例位置。", + "xpack.lens.heatmapChart.legend.shouldTruncate.help": "指定是否截断图例项。", + "xpack.lens.heatmapChart.legendVisibility.hide": "隐藏", + "xpack.lens.heatmapChart.legendVisibility.show": "显示", + "xpack.lens.heatmapVisualization.arrayValuesWarningMessage": "{label} 包含数组值。您的可视化可能无法正常渲染。", + "xpack.lens.heatmapVisualization.heatmapGroupLabel": "热图", + "xpack.lens.heatmapVisualization.heatmapLabel": "热图", + "xpack.lens.heatmapVisualization.missingXAccessorLongMessage": "水平轴配置缺失。", + "xpack.lens.heatmapVisualization.missingXAccessorShortMessage": "缺失水平轴。", + "xpack.lens.indexPattern.advancedSettings": "添加高级选项", + "xpack.lens.indexPattern.allFieldsLabel": "所有字段", + "xpack.lens.indexPattern.allFieldsLabelHelp": "可用字段在与您的筛选匹配的前 500 个文档中有数据。要查看所有字段,请展开空字段。一些字段类型无法在 Lens 中可视化,包括全文本字段和地理字段。", + "xpack.lens.indexPattern.availableFieldsLabel": "可用字段", + "xpack.lens.indexPattern.avg": "平均值", + "xpack.lens.indexPattern.avg.description": "单值指标聚合,计算从聚合文档提取的数值的平均值", + "xpack.lens.indexPattern.avgOf": "{name} 的平均值", + "xpack.lens.indexPattern.bytesFormatLabel": "字节 (1024)", + "xpack.lens.indexPattern.calculations.dateHistogramErrorMessage": "{name} 需要日期直方图才能运行。添加日期直方图或选择不同的函数。", + "xpack.lens.indexPattern.calculations.layerDataType": "已为此图层类型禁用 {name}。", + "xpack.lens.indexPattern.cardinality": "唯一计数", + "xpack.lens.indexPattern.cardinality.signature": "field: string", + "xpack.lens.indexPattern.cardinalityOf": "{name} 的唯一计数", + "xpack.lens.indexPattern.chooseField": "选择字段", + "xpack.lens.indexPattern.chooseFieldLabel": "要使用此函数,请选择字段。", + "xpack.lens.indexPattern.chooseSubFunction": "选择子函数", + "xpack.lens.indexPattern.columnFormatLabel": "值格式", + "xpack.lens.indexPattern.columnLabel": "显示名称", + "xpack.lens.indexPattern.count": "计数", + "xpack.lens.indexPattern.counterRate": "计数率", + "xpack.lens.indexPattern.counterRate.signature": "指标:数字", + "xpack.lens.indexPattern.CounterRateOf": "{name} 的计数率", + "xpack.lens.indexPattern.countOf": "记录计数", + "xpack.lens.indexPattern.cumulative_sum.signature": "指标:数字", + "xpack.lens.indexPattern.cumulativeSum": "累计和", + "xpack.lens.indexPattern.cumulativeSumOf": "{name} 的累计和", + "xpack.lens.indexPattern.dateHistogram": "Date Histogram", + "xpack.lens.indexPattern.dateHistogram.autoAdvancedExplanation": "时间间隔遵循以下逻辑:", + "xpack.lens.indexPattern.dateHistogram.autoBasicExplanation": "自动日期直方图按时间间隔将数据字段拆分为桶。", + "xpack.lens.indexPattern.dateHistogram.autoBoundHeader": "已度量目标时间间隔", + "xpack.lens.indexPattern.dateHistogram.autoHelpText": "运作方式", + "xpack.lens.indexPattern.dateHistogram.autoInterval": "定制时间间隔", + "xpack.lens.indexPattern.dateHistogram.autoIntervalHeader": "已用时间间隔", + "xpack.lens.indexPattern.dateHistogram.autoLongerExplanation": "要选择时间间隔,Lens 按 {targetBarSetting} 设置分割指定的时间范围。Lens 为您的数据计算最佳时间间隔。例如 30m、1h 和 12。最大条形数由 {maxBarSetting} 值设置。", + "xpack.lens.indexPattern.dateHistogram.days": "天", + "xpack.lens.indexPattern.dateHistogram.hours": "小时", + "xpack.lens.indexPattern.dateHistogram.milliseconds": "毫秒", + "xpack.lens.indexPattern.dateHistogram.minimumInterval": "最小时间间隔", + "xpack.lens.indexPattern.dateHistogram.minutes": "分钟", + "xpack.lens.indexPattern.dateHistogram.month": "个月", + "xpack.lens.indexPattern.dateHistogram.moreThanYear": "1 年以上", + "xpack.lens.indexPattern.dateHistogram.restrictedInterval": "由于聚合限制,时间间隔固定为 {intervalValue}。", + "xpack.lens.indexPattern.dateHistogram.seconds": "秒", + "xpack.lens.indexPattern.dateHistogram.titleHelp": "自动日期直方图的工作原理", + "xpack.lens.indexPattern.dateHistogram.upTo": "最多", + "xpack.lens.indexPattern.dateHistogram.week": "周", + "xpack.lens.indexPattern.dateHistogram.year": "年", + "xpack.lens.indexPattern.decimalPlacesLabel": "小数", + "xpack.lens.indexPattern.defaultFormatLabel": "默认", + "xpack.lens.indexPattern.derivative": "差异", + "xpack.lens.indexPattern.derivativeOf": "{name} 的差异", + "xpack.lens.indexPattern.differences.signature": "指标:数字", + "xpack.lens.indexPattern.editFieldLabel": "编辑索引模式字段", + "xpack.lens.indexPattern.emptyDimensionButton": "空维度", + "xpack.lens.indexPattern.emptyFieldsLabel": "空字段", + "xpack.lens.indexPattern.emptyFieldsLabelHelp": "空字段在基于您的筛选的前 500 个文档中不包含任何值。", + "xpack.lens.indexPattern.existenceErrorAriaLabel": "现有内容提取失败", + "xpack.lens.indexPattern.existenceErrorLabel": "无法加载字段信息", + "xpack.lens.indexPattern.existenceTimeoutAriaLabel": "现有内容提取超时", + "xpack.lens.indexPattern.existenceTimeoutLabel": "字段信息花费时间过久", + "xpack.lens.indexPattern.fieldDistributionLabel": "分布", + "xpack.lens.indexPattern.fieldItem.visualizeGeoFieldLinkText": "在 Maps 中可视化", + "xpack.lens.indexPattern.fieldItemTooltip": "拖放以可视化。", + "xpack.lens.indexPattern.fieldNoOperation": "没有运算,无法使用字段 {field}", + "xpack.lens.indexPattern.fieldNotFound": "未找到字段 {invalidField}", + "xpack.lens.indexPattern.fieldPanelEmptyStringValue": "空字符串", + "xpack.lens.indexPattern.fieldPlaceholder": "字段", + "xpack.lens.indexPattern.fieldStatsButtonAriaLabel": "预览 {fieldName}:{fieldType}", + "xpack.lens.indexPattern.fieldStatsButtonEmptyLabel": "此字段不包含任何数据,但您仍然可以拖放以进行可视化。", + "xpack.lens.indexPattern.fieldStatsButtonLabel": "单击以进行字段预览,或拖放以进行可视化。", + "xpack.lens.indexPattern.fieldStatsCountLabel": "计数", + "xpack.lens.indexPattern.fieldStatsDisplayToggle": "切换", + "xpack.lens.indexPattern.fieldStatsLimited": "摘要信息不适用于范围类型字段。", + "xpack.lens.indexPattern.fieldStatsNoData": "此字段为空,因为它不存在于 500 个采样文档中。将此字段添加到配置可能会导致空图表。", + "xpack.lens.indexPattern.fieldTimeDistributionLabel": "时间分布", + "xpack.lens.indexPattern.fieldTopValuesLabel": "排名最前值", + "xpack.lens.indexPattern.fieldWrongType": "字段 {invalidField} 的类型不正确", + "xpack.lens.indexPattern.filterBy.clickToEdit": "单击以编辑", + "xpack.lens.indexPattern.filterBy.emptyFilterQuery": "(空)", + "xpack.lens.indexPattern.filterBy.label": "筛选依据", + "xpack.lens.indexPattern.filters": "筛选", + "xpack.lens.indexPattern.filters.addaFilter": "添加筛选", + "xpack.lens.indexPattern.filters.clickToEdit": "单击以编辑", + "xpack.lens.indexPattern.filters.isInvalid": "此查询无效。", + "xpack.lens.indexPattern.filters.label.placeholder": "所有记录", + "xpack.lens.indexPattern.filters.queryPlaceholderKql": "{example}", + "xpack.lens.indexPattern.filters.queryPlaceholderLucene": "{example}", + "xpack.lens.indexPattern.filters.removeFilter": "移除筛选", + "xpack.lens.indexPattern.formulaExpressionNotHandled": "公式中的运算 {operation} 缺失以下参数:{params}", + "xpack.lens.indexPattern.formulaExpressionParseError": "公式 {expression} 无法解析", + "xpack.lens.indexPattern.formulaExpressionWrongType": "公式中运算 {operation} 的参数的类型不正确:{params}", + "xpack.lens.indexPattern.formulaFieldNotFound": "找不到{variablesLength, plural, other {字段}} {variablesList}", + "xpack.lens.indexPattern.formulaFieldNotRequired": "运算 {operation} 不接受任何字段作为参数", + "xpack.lens.indexPattern.formulaFieldValue": "字段", + "xpack.lens.indexPattern.formulaLabel": "公式", + "xpack.lens.indexPattern.formulaMathMissingArgument": "公式中的运算 {operation} 缺失 {count} 个参数:{params}", + "xpack.lens.indexPattern.formulaMetricValue": "指标", + "xpack.lens.indexPattern.formulaNoFieldForOperation": "无字段", + "xpack.lens.indexPattern.formulaNoOperation": "无操作", + "xpack.lens.indexPattern.formulaOperationDoubleQueryError": "仅使用 kql= 或 lucene=,而非二者", + "xpack.lens.indexPattern.formulaOperationDuplicateParams": "运算 {operation} 的参数已声明多次:{params}", + "xpack.lens.indexPattern.formulaOperationQueryError": "{rawQuery} 的 {language}='' 需要单引号", + "xpack.lens.indexPattern.formulaOperationTooManyFirstArguments": "公式中的运算 {operation} 需要{supported, plural, one {单个} other {支持的}} {type},发现了:{text}", + "xpack.lens.indexPattern.formulaOperationValue": "运算", + "xpack.lens.indexPattern.formulaOperationwrongArgument": "公式中的运算 {operation} 不支持 {type} 参数,发现了:{text}", + "xpack.lens.indexPattern.formulaOperationWrongFirstArgument": "{operation} 的第一个参数应为 {type} 名称。找到了 {argument}", + "xpack.lens.indexPattern.formulaOperationWrongReturnedType": "公式中不支持运算 {text} 的返回值类型。", + "xpack.lens.indexPattern.formulaParameterNotRequired": "运算 {operation} 不接受任何参数", + "xpack.lens.indexPattern.formulaPartLabel": "{label} 的一部分", + "xpack.lens.indexPattern.formulaWarning": "公式当前已应用", + "xpack.lens.indexPattern.formulaWarningStaticValueText": "要覆盖公式,请更改输入字段中的值", + "xpack.lens.indexPattern.formulaWarningText": "要覆盖公式,请选择快速函数", + "xpack.lens.indexPattern.formulaWithTooManyArguments": "运算 {operation} 的参数过多", + "xpack.lens.indexPattern.functionsLabel": "选择函数", + "xpack.lens.indexPattern.groupByDropdown": "分组依据", + "xpack.lens.indexPattern.incompleteOperation": "(不完整)", + "xpack.lens.indexPattern.intervals": "时间间隔", + "xpack.lens.indexPattern.invalidFieldLabel": "字段无效。检查索引模式或选取其他字段。", + "xpack.lens.indexPattern.invalidInterval": "时间间隔值无效", + "xpack.lens.indexPattern.invalidOperationLabel": "此字段不适用于选定函数。", + "xpack.lens.indexPattern.invalidReferenceConfiguration": "维度“{dimensionLabel}”配置不正确", + "xpack.lens.indexPattern.invalidTimeShift": "时间偏移无效。输入正整数数量,后跟以下单位之一:s、m、h、d、w、M、y。例如,3h 表示 3 小时", + "xpack.lens.indexPattern.lastValue": "最后值", + "xpack.lens.indexPattern.lastValue.disabled": "此功能要求索引中存在日期字段", + "xpack.lens.indexPattern.lastValue.invalidTypeSortField": "字段 {invalidField} 不是日期字段,不能用于排序", + "xpack.lens.indexPattern.lastValue.signature": "field: string", + "xpack.lens.indexPattern.lastValue.sortField": "按日期字段排序", + "xpack.lens.indexPattern.lastValue.sortFieldNotFound": "未找到字段 {invalidField}", + "xpack.lens.indexPattern.lastValue.sortFieldPlaceholder": "排序字段", + "xpack.lens.indexPattern.lastValueOf": "{name} 的最后一个值", + "xpack.lens.indexPattern.layerErrorWrapper": "图层 {position} 错误:{wrappedMessage}", + "xpack.lens.indexPattern.max": "最大值", + "xpack.lens.indexPattern.max.description": "单值指标聚合,返回从聚合文档提取的数值中的最大值。", + "xpack.lens.indexPattern.maxOf": "{name} 的最大值", + "xpack.lens.indexPattern.median": "中值", + "xpack.lens.indexPattern.median.description": "单值指标聚合,计算从聚合文档提取的中值。", + "xpack.lens.indexPattern.medianOf": "{name} 的中位值", + "xpack.lens.indexPattern.metaFieldsLabel": "元字段", + "xpack.lens.indexPattern.metric.signature": "field: string", + "xpack.lens.indexPattern.min": "最小值", + "xpack.lens.indexPattern.min.description": "单值指标聚合,返回从聚合文档提取的数值中的最小值。", + "xpack.lens.indexPattern.minOf": "{name} 的最小值", + "xpack.lens.indexPattern.missingFieldLabel": "缺失字段", + "xpack.lens.indexPattern.missingReferenceError": "“{dimensionLabel}”配置不完整", + "xpack.lens.indexPattern.moveToWorkspace": "将 {field} 添加到工作区", + "xpack.lens.indexPattern.moveToWorkspaceDisabled": "此字段无法自动添加到工作区。您仍可以在配置面板中直接使用它。", + "xpack.lens.indexPattern.moving_average.signature": "指标:数字,[window]:数字", + "xpack.lens.indexPattern.movingAverage": "移动平均值", + "xpack.lens.indexPattern.movingAverage.basicExplanation": "移动平均值在数据上滑动时间窗并显示平均值。仅日期直方图支持移动平均值。", + "xpack.lens.indexPattern.movingAverage.helpText": "运作方式", + "xpack.lens.indexPattern.movingAverage.limitations": "第一个移动平均值开始于第二项。", + "xpack.lens.indexPattern.movingAverage.longerExplanation": "要计算移动平均值,Lens 使用时间窗的平均值,并为缺口应用跳过策略。 对于缺失值,将跳过桶,计算将基于下一个值执行。", + "xpack.lens.indexPattern.movingAverage.tableExplanation": "例如,如果数据为 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],则可以使用时间窗大小 5 计算简单移动平均值:", + "xpack.lens.indexPattern.movingAverage.titleHelp": "移动平均值的工作原理", + "xpack.lens.indexPattern.movingAverage.window": "窗口大小", + "xpack.lens.indexPattern.movingAverage.windowInitialPartial": "时间窗不完整,除非达到所请求的项目数。 例如,时间窗大小为 5:", + "xpack.lens.indexPattern.movingAverage.windowLimitations": "时间窗不包括当前值。", + "xpack.lens.indexPattern.movingAverageOf": "{name} 的移动平均值", + "xpack.lens.indexPattern.multipleDateHistogramsError": "“{dimensionLabel}”不是唯一的 Date Histogram。使用时间偏移时,请确保仅使用一个 Date Histogram。", + "xpack.lens.indexPattern.numberFormatLabel": "数字", + "xpack.lens.indexPattern.ofDocumentsLabel": "文档", + "xpack.lens.indexPattern.operationsNotFound": "未找到{operationLength, plural, other {运算}} {operationsList}", + "xpack.lens.indexPattern.otherDocsLabel": "其他", + "xpack.lens.indexPattern.overall_metric": "指标:数字", + "xpack.lens.indexPattern.overallAverageOf": "{name} 的总体平均值", + "xpack.lens.indexPattern.overallMax": "总体最大值", + "xpack.lens.indexPattern.overallMaxOf": "{name} 的总体最大值", + "xpack.lens.indexPattern.overallMin": "总体最小值", + "xpack.lens.indexPattern.overallMinOf": "{name} 的总体最小值", + "xpack.lens.indexPattern.overallSum": "总和", + "xpack.lens.indexPattern.overallSumOf": "{name} 的总和", + "xpack.lens.indexPattern.percentageOfLabel": "{percentage}% 的", + "xpack.lens.indexPattern.percentFormatLabel": "百分比", + "xpack.lens.indexPattern.percentile": "百分位数", + "xpack.lens.indexPattern.percentile.errorMessage": "百分位数必须是介于 1 到 99 之间的整数", + "xpack.lens.indexPattern.percentile.percentileValue": "百分位数", + "xpack.lens.indexPattern.percentile.signature": "field: string, [percentile]: number", + "xpack.lens.indexPattern.percentileOf": "{name} 的{percentile, selectordinal, one {第一个} two {第二个} few {第三个} other {第 #th 个}}百分位数", + "xpack.lens.indexPattern.pinnedTopValuesLabel": "{field} 的筛选", + "xpack.lens.indexPattern.quickFunctionsLabel": "快选函数", + "xpack.lens.indexPattern.range.isInvalid": "此范围无效", + "xpack.lens.indexPattern.ranges.addRange": "添加范围", + "xpack.lens.indexPattern.ranges.customIntervalsToggle": "创建定制范围", + "xpack.lens.indexPattern.ranges.customRangeLabelPlaceholder": "定制标签", + "xpack.lens.indexPattern.ranges.customRanges": "范围", + "xpack.lens.indexPattern.ranges.customRangesRemoval": "移除定制范围", + "xpack.lens.indexPattern.ranges.decreaseButtonLabel": "减小粒度", + "xpack.lens.indexPattern.ranges.deleteRange": "删除范围", + "xpack.lens.indexPattern.ranges.granularity": "时间间隔粒度", + "xpack.lens.indexPattern.ranges.granularityHelpText": "运作方式", + "xpack.lens.indexPattern.ranges.granularityPopoverAdvancedExplanation": "时间间隔按 10、5 或 2 递增。例如,时间间隔可以是 100 或 0.2。", + "xpack.lens.indexPattern.ranges.granularityPopoverBasicExplanation": "时间间隔粒度基于字段的最小值和最大值将字段分割为平均分布的时间间隔。", + "xpack.lens.indexPattern.ranges.granularityPopoverExplanation": "时间间隔的大小是“好”值。滑块的粒度更改时,如果“好的”时间间隔不变,时间间隔也不变。最小粒度为 1,最大值为 {setting}。要更改最大粒度,请前往“高级设置”。", + "xpack.lens.indexPattern.ranges.granularityPopoverTitle": "粒度时间间隔的工作原理", + "xpack.lens.indexPattern.ranges.increaseButtonLabel": "增加粒度", + "xpack.lens.indexPattern.ranges.lessThanOrEqualAppend": "≤", + "xpack.lens.indexPattern.ranges.lessThanOrEqualTooltip": "小于或等于", + "xpack.lens.indexPattern.ranges.lessThanPrepend": "<", + "xpack.lens.indexPattern.ranges.lessThanTooltip": "小于", + "xpack.lens.indexPattern.records": "记录", + "xpack.lens.indexPattern.referenceFunctionPlaceholder": "子函数", + "xpack.lens.indexPattern.removeColumnAriaLabel": "将字段添加或拖放到 {groupLabel}", + "xpack.lens.indexPattern.removeColumnLabel": "从“{groupLabel}”中删除配置", + "xpack.lens.indexPattern.removeFieldLabel": "移除索引模式字段", + "xpack.lens.indexPattern.sortField.invalid": "字段无效。检查索引模式或选取其他字段。", + "xpack.lens.indexPattern.staticValue.label": "参考线值", + "xpack.lens.indexPattern.staticValueError": "{value} 的静态值不是有效数字", + "xpack.lens.indexPattern.staticValueLabel": "静态值", + "xpack.lens.indexPattern.staticValueLabelDefault": "静态值", + "xpack.lens.indexPattern.staticValueLabelWithValue": "静态值:{value}", + "xpack.lens.indexPattern.staticValueWarning": "当前已应用静态值", + "xpack.lens.indexPattern.staticValueWarningText": "要覆盖静态值,请选择快速函数", + "xpack.lens.indexpattern.suggestions.nestingChangeLabel": "每个 {outerOperation} 的 {innerOperation}", + "xpack.lens.indexpattern.suggestions.overallLabel": "总体 {operation}", + "xpack.lens.indexpattern.suggestions.overTimeLabel": "时移", + "xpack.lens.indexPattern.sum": "求和", + "xpack.lens.indexPattern.sum.description": "单值指标聚合,对从聚合文档提取的数值求和。", + "xpack.lens.indexPattern.sumOf": "{name} 之和", + "xpack.lens.indexPattern.terms": "排名最前值", + "xpack.lens.indexPattern.terms.advancedSettings": "高级", + "xpack.lens.indexPattern.terms.missingBucketDescription": "包括没有此字段的文档", + "xpack.lens.indexPattern.terms.missingLabel": "(缺失值)", + "xpack.lens.indexPattern.terms.orderAlphabetical": "按字母顺序", + "xpack.lens.indexPattern.terms.orderAscending": "升序", + "xpack.lens.indexPattern.terms.orderBy": "排名依据", + "xpack.lens.indexPattern.terms.orderByHelp": "指定排名靠前值排名所依据的维度。", + "xpack.lens.indexPattern.terms.orderDescending": "降序", + "xpack.lens.indexPattern.terms.orderDirection": "排名方向", + "xpack.lens.indexPattern.terms.otherBucketDescription": "将其他值分组为“其他”", + "xpack.lens.indexPattern.terms.otherLabel": "其他", + "xpack.lens.indexPattern.terms.size": "值数目", + "xpack.lens.indexPattern.terms.sizeLimitMax": "值大于最大值 {max},将改为使用最大值。", + "xpack.lens.indexPattern.terms.sizeLimitMin": "值小于最小值 {min},将改为使用最小值。", + "xpack.lens.indexPattern.termsOf": "{name} 排名最前值", + "xpack.lens.indexPattern.termsWithMultipleShifts": "在单个图层中,无法将指标与不同时间偏移和动态排名最前值组合。将相同的时间偏移值用于所有指标或使用筛选,而非排名最前值。", + "xpack.lens.indexPattern.termsWithMultipleShiftsFixActionLabel": "使用筛选", + "xpack.lens.indexPattern.timeScale.enableTimeScale": "按单位标准化", + "xpack.lens.indexPattern.timeScale.label": "按单位标准化", + "xpack.lens.indexPattern.timeScale.tooltip": "将值标准化为始终显示为每指定时间单位速率,无论基础日期时间间隔是多少。", + "xpack.lens.indexPattern.timeShift.12hours": "12 小时前 (12h)", + "xpack.lens.indexPattern.timeShift.3hours": "3 小时前 (3h)", + "xpack.lens.indexPattern.timeShift.3months": "3 个月前 (3M)", + "xpack.lens.indexPattern.timeShift.6hours": "6 小时前 (6h)", + "xpack.lens.indexPattern.timeShift.6months": "6 个月前 (6M)", + "xpack.lens.indexPattern.timeShift.day": "1 天前 (1d)", + "xpack.lens.indexPattern.timeShift.help": "输入时间偏移数字和单位", + "xpack.lens.indexPattern.timeShift.hour": "1 小时前 (1h)", + "xpack.lens.indexPattern.timeShift.label": "时间偏移", + "xpack.lens.indexPattern.timeShift.month": "1 个月前 (1M)", + "xpack.lens.indexPattern.timeShift.noMultipleHelp": "时间偏移应为 Date Histogram 时间间隔的倍数。调整时间偏移或 Date Histogram 时间间隔", + "xpack.lens.indexPattern.timeShift.tooSmallHelp": "时间偏移应大于 Date Histogram 时间间隔。增大时间偏移或在 Date Histogram 中指定较小的时间间隔", + "xpack.lens.indexPattern.timeShift.week": "1 周前 (1w)", + "xpack.lens.indexPattern.timeShift.year": "1 年前 (1y)", + "xpack.lens.indexPattern.timeShiftMultipleWarning": "{label} 使用的时间偏移 {columnTimeShift} 不是 Date Histogram 时间间隔 {interval} 的倍数。要防止数据不匹配,请使用 {interval} 的倍数作为时间偏移。", + "xpack.lens.indexPattern.timeShiftPlaceholder": "键入定制值(如 8w)", + "xpack.lens.indexPattern.timeShiftSmallWarning": "{label} 使用的时间偏移 {columnTimeShift} 小于 Date Histogram 时间间隔 {interval} 。要防止数据不匹配,请使用 {interval} 的倍数作为时间偏移。", + "xpack.lens.indexPattern.uniqueLabel": "{label} [{num}]", + "xpack.lens.indexPattern.useAsTopLevelAgg": "先按此字段分组", + "xpack.lens.indexPatterns.actionsPopoverLabel": "索引模式设置", + "xpack.lens.indexPatterns.addFieldButton": "将字段添加到索引模式", + "xpack.lens.indexPatterns.clearFiltersLabel": "清除名称和类型筛选", + "xpack.lens.indexPatterns.fieldFiltersLabel": "按类型筛选", + "xpack.lens.indexPatterns.fieldSearchLiveRegion": "{availableFields} 个可用{availableFields, plural, other {字段}}。{emptyFields} 个空{emptyFields, plural, other {字段}}。{metaFields} 个元{metaFields, plural,other {字段}}。", + "xpack.lens.indexPatterns.filterByNameLabel": "搜索字段名称", + "xpack.lens.indexPatterns.manageFieldButton": "管理索引模式字段", + "xpack.lens.indexPatterns.noAvailableDataLabel": "没有包含数据的可用字段。", + "xpack.lens.indexPatterns.noDataLabel": "无字段。", + "xpack.lens.indexPatterns.noEmptyDataLabel": "无空字段。", + "xpack.lens.indexPatterns.noFields.extendTimeBullet": "延伸时间范围", + "xpack.lens.indexPatterns.noFields.fieldTypeFilterBullet": "使用不同的字段筛选", + "xpack.lens.indexPatterns.noFields.globalFiltersBullet": "更改全局筛选", + "xpack.lens.indexPatterns.noFields.tryText": "尝试:", + "xpack.lens.indexPatterns.noFieldsLabel": "在此索引模式中不存在任何字段。", + "xpack.lens.indexPatterns.noFilteredFieldsLabel": "没有字段匹配选定筛选。", + "xpack.lens.indexPatterns.noMetaDataLabel": "无元字段。", + "xpack.lens.indexPatternSuggestion.removeLayerLabel": "仅显示 {indexPatternTitle}", + "xpack.lens.indexPatternSuggestion.removeLayerPositionLabel": "仅显示图层 {layerNumber}", + "xpack.lens.labelInput.label": "标签", + "xpack.lens.layerPanel.layerVisualizationType": "图层可视化类型", + "xpack.lens.legacyUrlConflict.objectNoun": "Lens 可视化", + "xpack.lens.lensSavedObjectLabel": "Lens 可视化", + "xpack.lens.metric.addLayer": "添加可视化图层", + "xpack.lens.metric.groupLabel": "表和单值", + "xpack.lens.metric.label": "指标", + "xpack.lens.pageTitle": "Lens", + "xpack.lens.paletteHeatmapGradient.customize": "编辑", + "xpack.lens.paletteHeatmapGradient.customizeLong": "编辑调色板", + "xpack.lens.paletteHeatmapGradient.label": "颜色", + "xpack.lens.palettePicker.label": "调色板", + "xpack.lens.paletteTableGradient.customize": "编辑", + "xpack.lens.paletteTableGradient.label": "颜色", + "xpack.lens.pie.addLayer": "添加可视化图层", + "xpack.lens.pie.arrayValues": "{label} 包含数组值。您的可视化可能无法正常渲染。", + "xpack.lens.pie.donutLabel": "圆环图", + "xpack.lens.pie.expressionHelpLabel": "饼图呈现器", + "xpack.lens.pie.groupLabel": "比例", + "xpack.lens.pie.groupsizeLabel": "大小调整依据", + "xpack.lens.pie.pielabel": "饼图", + "xpack.lens.pie.pieWithNegativeWarningLabel": "{chartType} 图表无法使用负值进行呈现。", + "xpack.lens.pie.sliceGroupLabel": "切片依据", + "xpack.lens.pie.suggestionLabel": "为 {chartName}", + "xpack.lens.pie.treemapGroupLabel": "分组依据", + "xpack.lens.pie.treemaplabel": "树状图", + "xpack.lens.pie.treemapSuggestionLabel": "为树状图", + "xpack.lens.pie.visualizationName": "饼图", + "xpack.lens.pieChart.categoriesInLegendLabel": "隐藏标签", + "xpack.lens.pieChart.fitInsideOnlyLabel": "仅内部", + "xpack.lens.pieChart.hiddenNumbersLabel": "在图表中隐藏", + "xpack.lens.pieChart.labelPositionLabel": "位置", + "xpack.lens.pieChart.legendVisibility.auto": "自动", + "xpack.lens.pieChart.legendVisibility.hide": "隐藏", + "xpack.lens.pieChart.legendVisibility.show": "显示", + "xpack.lens.pieChart.nestedLegendLabel": "嵌套", + "xpack.lens.pieChart.numberLabels": "值", + "xpack.lens.pieChart.percentDecimalsLabel": "百分比的最大小数位数", + "xpack.lens.pieChart.showCategoriesLabel": "内部或外部", + "xpack.lens.pieChart.showFormatterValuesLabel": "显示值", + "xpack.lens.pieChart.showPercentValuesLabel": "显示百分比", + "xpack.lens.pieChart.showTreemapCategoriesLabel": "显示标签", + "xpack.lens.pieChart.valuesLabel": "标签", + "xpack.lens.referenceLineMarker.positionRequirementTooltip": "必须选择图标或显示显示名称才能更改其位置", + "xpack.lens.referenceLineMarker.textVisibility": "显示显示名称", + "xpack.lens.resetLayerAriaLabel": "重置图层 {index}", + "xpack.lens.resetVisualizationAriaLabel": "重置可视化", + "xpack.lens.searchTitle": "Lens:创建可视化", + "xpack.lens.section.configPanelLabel": "配置面板", + "xpack.lens.section.dataPanelLabel": "数据面板", + "xpack.lens.section.workspaceLabel": "可视化工作区", + "xpack.lens.shared.chartValueLabelVisibilityLabel": "标签", + "xpack.lens.shared.curveLabel": "视觉选项", + "xpack.lens.shared.legend.filterForValueButtonAriaLabel": "筛留值", + "xpack.lens.shared.legend.filterOptionsLegend": "{legendDataLabel}, 筛选选项", + "xpack.lens.shared.legend.filterOutValueButtonAriaLabel": "筛除值", + "xpack.lens.shared.legendAlignmentLabel": "对齐方式", + "xpack.lens.shared.legendInsideAlignmentLabel": "对齐方式", + "xpack.lens.shared.legendInsideColumnsLabel": "列数目", + "xpack.lens.shared.legendInsideLocationAlignmentLabel": "对齐方式", + "xpack.lens.shared.legendInsideTooltip": "需要图例位于可视化内", + "xpack.lens.shared.legendIsTruncated": "需要截断文本", + "xpack.lens.shared.legendLabel": "图例", + "xpack.lens.shared.legendLocationBottomLeft": "左下方", + "xpack.lens.shared.legendLocationBottomRight": "右下方", + "xpack.lens.shared.legendLocationLabel": "位置", + "xpack.lens.shared.legendLocationTopLeft": "左上方", + "xpack.lens.shared.legendLocationTopRight": "右上方", + "xpack.lens.shared.legendPositionBottom": "底部", + "xpack.lens.shared.legendPositionLeft": "左", + "xpack.lens.shared.legendPositionRight": "右", + "xpack.lens.shared.legendPositionTop": "顶部", + "xpack.lens.shared.legendVisibilityLabel": "显示", + "xpack.lens.shared.legendVisibleTooltip": "需要图表显示", + "xpack.lens.shared.maxLinesLabel": "最大行数", + "xpack.lens.shared.nestedLegendLabel": "嵌套", + "xpack.lens.shared.truncateLegend": "截断文本", + "xpack.lens.shared.valueInLegendLabel": "显示值", + "xpack.lens.sugegstion.refreshSuggestionLabel": "刷新", + "xpack.lens.suggestion.refreshSuggestionTooltip": "基于选定可视化刷新建议。", + "xpack.lens.suggestions.currentVisLabel": "当前可视化", + "xpack.lens.table.actionsLabel": "显示操作", + "xpack.lens.table.alignment.center": "居中", + "xpack.lens.table.alignment.label": "文本对齐", + "xpack.lens.table.alignment.left": "左", + "xpack.lens.table.alignment.right": "右", + "xpack.lens.table.columnFilter.filterForValueText": "筛留列", + "xpack.lens.table.columnFilter.filterOutValueText": "筛除列", + "xpack.lens.table.columnVisibilityLabel": "隐藏列", + "xpack.lens.table.defaultAriaLabel": "数据表可视化", + "xpack.lens.table.dynamicColoring.cell": "单元格", + "xpack.lens.table.dynamicColoring.continuity.aboveLabel": "高于范围", + "xpack.lens.table.dynamicColoring.continuity.allLabel": "高于和低于范围", + "xpack.lens.table.dynamicColoring.continuity.belowLabel": "低于范围", + "xpack.lens.table.dynamicColoring.continuity.label": "颜色连续性", + "xpack.lens.table.dynamicColoring.continuity.noneLabel": "范围内", + "xpack.lens.table.dynamicColoring.customPalette.colorStopsHelpPercentage": "百分比值是相对于全范围可用数据值的类型。", + "xpack.lens.table.dynamicColoring.customPalette.colorStopsLabel": "颜色停止", + "xpack.lens.table.dynamicColoring.customPalette.continuityHelp": "指定颜色在第一个颜色停止之前和最后一个颜色停止之后的出现方式。", + "xpack.lens.table.dynamicColoring.label": "按值上色", + "xpack.lens.table.dynamicColoring.none": "无", + "xpack.lens.table.dynamicColoring.rangeType.label": "值类型", + "xpack.lens.table.dynamicColoring.rangeType.number": "数字", + "xpack.lens.table.dynamicColoring.rangeType.percent": "百分比", + "xpack.lens.table.dynamicColoring.reverse.label": "反转颜色", + "xpack.lens.table.dynamicColoring.text": "文本", + "xpack.lens.table.hide.hideLabel": "隐藏", + "xpack.lens.table.palettePanelContainer.back": "返回", + "xpack.lens.table.palettePanelTitle": "编辑颜色", + "xpack.lens.table.resize.reset": "重置宽度", + "xpack.lens.table.sort.ascLabel": "升序", + "xpack.lens.table.sort.descLabel": "降序", + "xpack.lens.table.summaryRow.average": "平均值", + "xpack.lens.table.summaryRow.count": "值计数", + "xpack.lens.table.summaryRow.customlabel": "摘要标签", + "xpack.lens.table.summaryRow.label": "摘要行", + "xpack.lens.table.summaryRow.maximum": "最大值", + "xpack.lens.table.summaryRow.minimum": "最小值", + "xpack.lens.table.summaryRow.none": "无", + "xpack.lens.table.summaryRow.sum": "求和", + "xpack.lens.table.tableCellFilter.filterForValueAriaLabel": "筛留值:{cellContent}", + "xpack.lens.table.tableCellFilter.filterForValueText": "筛留值", + "xpack.lens.table.tableCellFilter.filterOutValueAriaLabel": "筛除值:{cellContent}", + "xpack.lens.table.tableCellFilter.filterOutValueText": "筛除值", + "xpack.lens.timeScale.removeLabel": "删除按时间单位标准化", + "xpack.lens.timeShift.removeLabel": "移除时间偏移", + "xpack.lens.visTypeAlias.description": "使用拖放编辑器创建可视化。随时在可视化类型之间切换。", + "xpack.lens.visTypeAlias.note": "适合绝大多数用户。", + "xpack.lens.visTypeAlias.title": "Lens", + "xpack.lens.visTypeAlias.type": "Lens", + "xpack.lens.visualizeGeoFieldMessage": "Lens 无法可视化 {fieldType} 字段", + "xpack.lens.xyChart.addDataLayerLabel": "添加可视化图层", + "xpack.lens.xyChart.addLayer": "添加图层", + "xpack.lens.xyChart.addLayerTooltip": "使用多个图层以组合可视化类型或可视化不同的索引模式。", + "xpack.lens.xyChart.addReferenceLineLayerLabel": "添加参考图层", + "xpack.lens.xyChart.addReferenceLineLayerLabelDisabledHelp": "添加一些数据以启用参考图层", + "xpack.lens.xyChart.axisExtent.custom": "定制", + "xpack.lens.xyChart.axisExtent.dataBounds": "数据边界", + "xpack.lens.xyChart.axisExtent.disabledDataBoundsMessage": "仅折线图可适应数据边界", + "xpack.lens.xyChart.axisExtent.full": "实线", + "xpack.lens.xyChart.axisExtent.label": "边界", + "xpack.lens.xyChart.axisNameLabel": "轴名称", + "xpack.lens.xyChart.axisOrientation.angled": "带角度", + "xpack.lens.xyChart.axisOrientation.horizontal": "水平", + "xpack.lens.xyChart.axisOrientation.label": "方向", + "xpack.lens.xyChart.axisOrientation.vertical": "垂直", + "xpack.lens.xyChart.axisSide.auto": "自动", + "xpack.lens.xyChart.axisSide.bottom": "底部", + "xpack.lens.xyChart.axisSide.label": "轴侧", + "xpack.lens.xyChart.axisSide.left": "左", + "xpack.lens.xyChart.axisSide.right": "右", + "xpack.lens.xyChart.axisSide.top": "顶部", + "xpack.lens.xyChart.axisTitlesSettings.help": "显示 x 和 y 轴标题", + "xpack.lens.xyChart.bottomAxisDisabledHelpText": "此设置仅在启用底轴时应用。", + "xpack.lens.xyChart.bottomAxisLabel": "底轴", + "xpack.lens.xyChart.boundaryError": "下边界必须大于上边界", + "xpack.lens.xyChart.chartTypeLabel": "图表类型", + "xpack.lens.xyChart.chartTypeLegend": "图表类型", + "xpack.lens.xyChart.curveStyleLabel": "曲线", + "xpack.lens.xyChart.curveType.help": "定义为折线图渲染曲线类型的方式", + "xpack.lens.xyChart.emptyXLabel": "(空)", + "xpack.lens.xyChart.extentMode.help": "范围模式", + "xpack.lens.xyChart.fillOpacity.help": "定义面积图填充透明度", + "xpack.lens.xyChart.fillOpacityLabel": "填充透明度", + "xpack.lens.xyChart.fittingFunction.help": "定义处理缺失值的方式", + "xpack.lens.xyChart.floatingColumns.help": "指定图例显示在图表内时的列数。", + "xpack.lens.xyChart.Gridlines": "网格线", + "xpack.lens.xyChart.gridlinesSettings.help": "显示 x 和 y 轴网格线", + "xpack.lens.xyChart.help": "X/Y 图表", + "xpack.lens.xyChart.hideEndzones.help": "隐藏部分数据的末日区域标记", + "xpack.lens.xyChart.horizontalAlignment.help": "指定图例显示在图表内时水平对齐。", + "xpack.lens.xyChart.horizontalAxisLabel": "水平轴", + "xpack.lens.xyChart.horizontalLeftAxisLabel": "水平顶轴", + "xpack.lens.xyChart.horizontalRightAxisLabel": "水平底轴", + "xpack.lens.xyChart.inclusiveZero": "边界必须包括零。", + "xpack.lens.xyChart.isInside.help": "指定图例是否在图表内", + "xpack.lens.xyChart.isVisible.help": "指定图例是否可见。", + "xpack.lens.xyChart.labelsOrientation.help": "定义轴标签的旋转", + "xpack.lens.xyChart.layerReferenceLineLabel": "参考线", + "xpack.lens.xyChart.leftAxisDisabledHelpText": "此设置仅在启用左轴时应用。", + "xpack.lens.xyChart.leftAxisLabel": "左轴", + "xpack.lens.xyChart.legend.help": "配置图表图例。", + "xpack.lens.xyChart.legendLocation.inside": "内部", + "xpack.lens.xyChart.legendLocation.outside": "外部", + "xpack.lens.xyChart.legendVisibility.auto": "自动", + "xpack.lens.xyChart.legendVisibility.hide": "隐藏", + "xpack.lens.xyChart.legendVisibility.show": "显示", + "xpack.lens.xyChart.lowerBoundLabel": "下边界", + "xpack.lens.xyChart.markerPosition.above": "顶部", + "xpack.lens.xyChart.markerPosition.below": "底部", + "xpack.lens.xyChart.markerPosition.left": "左", + "xpack.lens.xyChart.markerPosition.right": "右", + "xpack.lens.xyChart.maxLines.help": "指定每个图例项的行数。", + "xpack.lens.xyChart.missingValuesLabel": "缺少的值", + "xpack.lens.xyChart.missingValuesLabelHelpText": "默认情况下,Lens 隐藏数据中的缺口。要填充缺口,请进行选择。", + "xpack.lens.xyChart.nestUnderRoot": "整个数据集", + "xpack.lens.xyChart.overwriteAxisTitle": "覆盖轴标题", + "xpack.lens.xyChart.position.help": "指定图例位置。", + "xpack.lens.xyChart.referenceLine.alertIconLabel": "告警", + "xpack.lens.xyChart.referenceLine.asteriskIconLabel": "星号", + "xpack.lens.xyChart.referenceLine.bellIconLabel": "钟铃", + "xpack.lens.xyChart.referenceLine.boltIconLabel": "闪电", + "xpack.lens.xyChart.referenceLine.bugIconLabel": "昆虫", + "xpack.lens.xyChart.referenceLine.commentIconLabel": "注释", + "xpack.lens.xyChart.referenceLine.flagIconLabel": "旗帜", + "xpack.lens.xyChart.referenceLine.noIconLabel": "无", + "xpack.lens.xyChart.referenceLine.tagIconLabel": "标签", + "xpack.lens.xyChart.referenceLineColor.label": "颜色", + "xpack.lens.xyChart.referenceLineFill.above": "之上", + "xpack.lens.xyChart.referenceLineFill.after": "之后", + "xpack.lens.xyChart.referenceLineFill.before": "之前", + "xpack.lens.xyChart.referenceLineFill.below": "之下", + "xpack.lens.xyChart.referenceLineFill.label": "填充", + "xpack.lens.xyChart.referenceLineFill.none": "无", + "xpack.lens.xyChart.referenceLineMarker.auto": "自动", + "xpack.lens.xyChart.referenceLineMarker.icon": "图标", + "xpack.lens.xyChart.referenceLineMarker.position": "装饰位置", + "xpack.lens.xyChart.referenceLineStyle.dashed": "虚线", + "xpack.lens.xyChart.referenceLineStyle.dotted": "点线", + "xpack.lens.xyChart.referenceLineStyle.label": "线条样式", + "xpack.lens.xyChart.referenceLineStyle.solid": "纯色", + "xpack.lens.xyChart.referenceLineThickness.label": "线条粗细", + "xpack.lens.xyChart.renderer.help": "X/Y 图表呈现器", + "xpack.lens.xyChart.rightAxisDisabledHelpText": "此设置仅在启用右轴时应用。", + "xpack.lens.xyChart.rightAxisLabel": "右轴", + "xpack.lens.xyChart.seriesColor.auto": "自动", + "xpack.lens.xyChart.seriesColor.label": "系列颜色", + "xpack.lens.xyChart.shouldTruncate.help": "指定是否将截断图例项", + "xpack.lens.xyChart.ShowAxisTitleLabel": "显示", + "xpack.lens.xyChart.showEnzones": "显示部分数据标记", + "xpack.lens.xyChart.showSingleSeries.help": "指定是否应显示只包含一个条目的图例", + "xpack.lens.xyChart.splitSeries": "细分方式", + "xpack.lens.xyChart.tickLabels": "刻度标签", + "xpack.lens.xyChart.tickLabelsSettings.help": "显示 x 和 y 轴刻度标签", + "xpack.lens.xyChart.title.help": "轴标题", + "xpack.lens.xyChart.topAxisDisabledHelpText": "此设置仅在启用顶轴时应用。", + "xpack.lens.xyChart.topAxisLabel": "顶轴", + "xpack.lens.xyChart.upperBoundLabel": "上边界", + "xpack.lens.xyChart.valuesHistogramDisabledHelpText": "不能在直方图上更改此设置。", + "xpack.lens.xyChart.valuesInLegend.help": "在图例中显示值", + "xpack.lens.xyChart.valuesPercentageDisabledHelpText": "不能在百分比面积图上更改此设置。", + "xpack.lens.xyChart.valuesStackedDisabledHelpText": "不能在堆积图或百分比条形图上更改此设置", + "xpack.lens.xyChart.verticalAlignment.help": "指定图例显示在图表内时垂直对齐。", + "xpack.lens.xyChart.verticalAxisLabel": "垂直轴", + "xpack.lens.xyChart.verticalLeftAxisLabel": "垂直左轴", + "xpack.lens.xyChart.verticalRightAxisLabel": "垂直右轴", + "xpack.lens.xyChart.xAxisGridlines.help": "指定 x 轴的网格线是否可见。", + "xpack.lens.xyChart.xAxisLabelsOrientation.help": "指定 x 轴的标签方向。", + "xpack.lens.xyChart.xAxisTickLabels.help": "指定 x 轴的刻度标签是否可见。", + "xpack.lens.xyChart.xAxisTitle.help": "指定 x 轴的标题是否可见。", + "xpack.lens.xyChart.xTitle.help": "X 轴标题", + "xpack.lens.xyChart.yLeftAxisgridlines.help": "指定左侧 y 轴的网格线是否可见。", + "xpack.lens.xyChart.yLeftAxisLabelsOrientation.help": "指定左 y 轴的标签方向。", + "xpack.lens.xyChart.yLeftAxisTickLabels.help": "指定左侧 y 轴的刻度标签是否可见。", + "xpack.lens.xyChart.yLeftAxisTitle.help": "指定左侧 y 轴的标题是否可见。", + "xpack.lens.xyChart.yLeftExtent.help": "左侧 Y 轴范围", + "xpack.lens.xyChart.yLeftTitle.help": "左侧 Y 轴标题", + "xpack.lens.xyChart.yRightAxisgridlines.help": "指定右侧 y 轴的网格线是否可见。", + "xpack.lens.xyChart.yRightAxisLabelsOrientation.help": "指定右 y 轴的标签方向。", + "xpack.lens.xyChart.yRightAxisTickLabels.help": "指定右侧 y 轴的刻度标签是否可见。", + "xpack.lens.xyChart.yRightAxisTitle.help": "指定右侧 y 轴的标题是否可见。", + "xpack.lens.xyChart.yRightExtent.help": "右侧 Y 轴范围", + "xpack.lens.xyChart.yRightTitle.help": "右侧 Y 轴标题", + "xpack.lens.xySuggestions.asPercentageTitle": "百分比", + "xpack.lens.xySuggestions.barChartTitle": "条形图", + "xpack.lens.xySuggestions.dateSuggestion": "{yTitle} / {xTitle}", + "xpack.lens.xySuggestions.emptyAxisTitle": "(空)", + "xpack.lens.xySuggestions.flipTitle": "翻转", + "xpack.lens.xySuggestions.lineChartTitle": "折线图", + "xpack.lens.xySuggestions.nonDateSuggestion": "{xTitle}的{yTitle}", + "xpack.lens.xySuggestions.stackedChartTitle": "堆叠", + "xpack.lens.xySuggestions.unstackedChartTitle": "非堆叠", + "xpack.lens.xySuggestions.yAxixConjunctionSign": " & ", + "xpack.lens.xyVisualization.areaLabel": "面积图", + "xpack.lens.xyVisualization.arrayValues": "{label} 包含数组值。您的可视化可能无法正常渲染。", + "xpack.lens.xyVisualization.barGroupLabel": "条形图", + "xpack.lens.xyVisualization.barHorizontalFullLabel": "水平条形图", + "xpack.lens.xyVisualization.barHorizontalLabel": "水平条形图", + "xpack.lens.xyVisualization.barLabel": "垂直条形图", + "xpack.lens.xyVisualization.dataFailureSplitLong": "{layers, plural, other {图层}} {layersList} {layers, plural, other {需要}}一个针对{axis}的字段。", + "xpack.lens.xyVisualization.dataFailureSplitShort": "缺少 {axis}。", + "xpack.lens.xyVisualization.dataFailureYLong": "{layers, plural, other {图层}} {layersList} {layers, plural, other {需要}}一个针对{axis}的字段。", + "xpack.lens.xyVisualization.dataFailureYShort": "缺少 {axis}。", + "xpack.lens.xyVisualization.dataTypeFailureXLong": "{axis} 的数据类型不匹配无法混合日期和数字间隔类型。", + "xpack.lens.xyVisualization.dataTypeFailureXOrdinalLong": "{axis} 的数据类型不匹配,请使用其他函数。", + "xpack.lens.xyVisualization.dataTypeFailureXShort": "{axis} 的数据类型错误。", + "xpack.lens.xyVisualization.dataTypeFailureYLong": "为 {axis} 提供的维度 {label} 具有错误的数据类型。应为数字,但却为 {dataType}", + "xpack.lens.xyVisualization.dataTypeFailureYShort": "{axis} 的数据类型错误。", + "xpack.lens.xyVisualization.lineGroupLabel": "折线图和面积图", + "xpack.lens.xyVisualization.lineLabel": "折线图", + "xpack.lens.xyVisualization.mixedBarHorizontalLabel": "水平混合条形图", + "xpack.lens.xyVisualization.mixedLabel": "混合 XY", + "xpack.lens.xyVisualization.noDataLabel": "找不到结果", + "xpack.lens.xyVisualization.stackedAreaLabel": "堆积面积图", + "xpack.lens.xyVisualization.stackedBarHorizontalFullLabel": "水平堆叠条形图", + "xpack.lens.xyVisualization.stackedBarHorizontalLabel": "水平堆叠条形图", + "xpack.lens.xyVisualization.stackedBarLabel": "垂直堆积条形图", + "xpack.lens.xyVisualization.stackedPercentageAreaLabel": "百分比面积图", + "xpack.lens.xyVisualization.stackedPercentageBarHorizontalFullLabel": "水平百分比条形图", + "xpack.lens.xyVisualization.stackedPercentageBarHorizontalLabel": "水平百分比条形图", + "xpack.lens.xyVisualization.stackedPercentageBarLabel": "垂直百分比条形图", + "xpack.lens.xyVisualization.xyLabel": "XY", "xpack.licenseApiGuard.license.errorExpiredMessage": "您不能使用 {pluginName},因为您的{licenseType}许可证已过期", "xpack.licenseApiGuard.license.errorUnavailableMessage": "您不能使用 {pluginName},因为许可证信息当前不可用。", "xpack.licenseApiGuard.license.errorUnsupportedMessage": "您的{licenseType}许可证不支持 {pluginName}。请升级您的许可证。", @@ -14455,6 +15002,10 @@ "xpack.licenseMgmt.app.deniedPermissionTitle": "需要集群权限", "xpack.licenseMgmt.app.loadingPermissionsDescription": "正在检查权限......", "xpack.licenseMgmt.dashboard.breadcrumb": "许可管理", + "xpack.licenseMgmt.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "xpack.licenseMgmt.deprecations.enabled.manualStepTwoMessage": "将“xpack.license_management.enabled”设置更改为“xpack.license_management.ui.enabled”。", + "xpack.licenseMgmt.deprecations.enabledMessage": "要禁止用户访问许可证管理 UI,请使用“xpack.license_management.ui.enabled”设置,而不是“xpack.license_management.enabled”。", + "xpack.licenseMgmt.deprecations.enabledTitle": "设置“xpack.license_management.enabled”已过时", "xpack.licenseMgmt.licenseDashboard.addLicense.updateLicenseButtonLabel": "更新许可证", "xpack.licenseMgmt.licenseDashboard.addLicense.updateLicenseTitle": "更新您的许可证", "xpack.licenseMgmt.licenseDashboard.addLicense.useAvailableLicenseDescription": "如果您已经持有新的许可证,请立即上传。", @@ -14539,6 +15090,7 @@ "xpack.lists.exceptions.builder.operatorLabel": "运算符", "xpack.lists.exceptions.builder.valueLabel": "值", "xpack.lists.exceptions.orDescription": "OR", + "xpack.lists.services.items.fileUploadFromFileSystem": "从 {fileName} 的文件系统上传的文件", "xpack.logstash.addRoleAlert.grantAdditionalPrivilegesDescription": "在 Kibana“管理”中,将 {role} 角色分配给您的 Kibana 用户。", "xpack.logstash.addRoleAlert.grantAdditionalPrivilegesTitle": "授予其他权限。", "xpack.logstash.alertCallOut.howToSeeAdditionalPipelinesDescription": "我如何可以看到其他管道?", @@ -14711,8 +15263,12 @@ "xpack.maps.fileUploadWizard.uploadLabel": "正在导入文件", "xpack.maps.filterByMapExtentMenuItem.disableDisplayName": "按地图范围禁用筛选", "xpack.maps.filterByMapExtentMenuItem.enableDisplayName": "按地图范围启用筛选", - "xpack.maps.filterEditor.applyGlobalQueryCheckboxLabel": "将全局筛选应用到图层数据", + "xpack.maps.filterEditor.applyForceRefreshLabel": "将全局刷新应用于图层数据", + "xpack.maps.filterEditor.applyForceRefreshTooltip": "启用后,图层将在触发自动刷新和单击“刷新”时重新提取数据。", + "xpack.maps.filterEditor.applyGlobalFilterHelp": "启用后,全局搜索会缩减结果", + "xpack.maps.filterEditor.applyGlobalQueryCheckboxLabel": "将全局搜索应用于图层数据", "xpack.maps.filterEditor.applyGlobalTimeCheckboxLabel": "将全局时间应用于图层数据", + "xpack.maps.filterEditor.applyGlobalTimeHelp": "启用后,全局时间会缩减结果", "xpack.maps.fitToData.fitAriaLabel": "适应数据边界", "xpack.maps.fitToData.fitButtonLabel": "适应数据边界", "xpack.maps.geoGrid.resolutionLabel": "网格分辨率", @@ -14736,8 +15292,8 @@ "xpack.maps.inspector.zoomLabel": "缩放", "xpack.maps.kilometersAbbr": "km", "xpack.maps.layer.isUsingBoundsFilter": "可见地图区域缩减的结果", - "xpack.maps.layer.isUsingSearchMsg": "查询和筛选缩减的结果", - "xpack.maps.layer.isUsingTimeFilter": "结果通过时间筛选缩小范围", + "xpack.maps.layer.isUsingSearchMsg": "全局搜索缩减的结果", + "xpack.maps.layer.isUsingTimeFilter": "全局时间缩减的结果", "xpack.maps.layer.layerHiddenTooltip": "图层已隐藏。", "xpack.maps.layer.loadWarningAriaLabel": "加载警告", "xpack.maps.layer.zoomFeedbackTooltip": "图层在缩放级别 {minZoom} 和 {maxZoom} 之间可见。", @@ -14755,7 +15311,7 @@ "xpack.maps.layerControl.tocEntry.hideDetailsButtonTitle": "隐藏图层详情", "xpack.maps.layerControl.tocEntry.showDetailsButtonAriaLabel": "显示图层详情", "xpack.maps.layerControl.tocEntry.showDetailsButtonTitle": "显示图层详情", - "xpack.maps.layerPanel.filterEditor.addFilterButtonLabel": "添加筛选", + "xpack.maps.layerPanel.filterEditor.addFilterButtonLabel": "设置筛选", "xpack.maps.layerPanel.filterEditor.editFilterButtonLabel": "编辑筛选", "xpack.maps.layerPanel.filterEditor.emptyState.description": "添加筛选以缩小图层数据范围。", "xpack.maps.layerPanel.filterEditor.queryBarSubmitButtonLabel": "设置筛选", @@ -14764,7 +15320,7 @@ "xpack.maps.layerPanel.footer.closeButtonLabel": "关闭", "xpack.maps.layerPanel.footer.removeLayerButtonLabel": "移除图层", "xpack.maps.layerPanel.footer.saveAndCloseButtonLabel": "保存并关闭", - "xpack.maps.layerPanel.join.applyGlobalQueryCheckboxLabel": "应用要联接的全局筛选", + "xpack.maps.layerPanel.join.applyGlobalQueryCheckboxLabel": "应用全局搜索到联接", "xpack.maps.layerPanel.join.applyGlobalTimeCheckboxLabel": "应用全局时间到联接", "xpack.maps.layerPanel.join.deleteJoinAriaLabel": "删除联接", "xpack.maps.layerPanel.join.deleteJoinTitle": "删除联接", @@ -14807,7 +15363,9 @@ "xpack.maps.layerPanel.whereExpression.helpText": "使用查询缩小右源范围。", "xpack.maps.layerPanel.whereExpression.queryBarSubmitButtonLabel": "设置筛选", "xpack.maps.layers.newVectorLayerWizard.createIndexError": "无法使用名称 {message} 创建索引", - "xpack.maps.layers.newVectorLayerWizard.createIndexErrorTitle": "抱歉,无法创建索引模式", + "xpack.maps.layers.newVectorLayerWizard.createIndexErrorTitle": "无法创建索引", + "xpack.maps.layers.newVectorLayerWizard.indexPermissionsError": "必须具有“create”和“create_index”索引权限才能创建数据并将其写入到“{indexName}”。", + "xpack.maps.layers.newVectorLayerWizard.indexPrivsErrorTitle": "缺少索引权限", "xpack.maps.layerSettings.attributionLegend": "归因", "xpack.maps.layerTocActions.cloneLayerTitle": "克隆图层", "xpack.maps.layerTocActions.editLayerTooltip": "编辑在没有集群、联接或时间筛选的情况下文档图层仅支持的特征", @@ -14825,6 +15383,8 @@ "xpack.maps.legend.upto": "最多", "xpack.maps.loadMap.errorAttemptingToLoadSavedMap": "无法加载地图", "xpack.maps.map.initializeErrorTitle": "无法初始化地图", + "xpack.maps.mapActions.addFeatureError": "无法添加特征到索引。", + "xpack.maps.mapActions.removeFeatureError": "无法从索引中移除特征。", "xpack.maps.mapListing.descriptionFieldTitle": "描述", "xpack.maps.mapListing.entityName": "地图", "xpack.maps.mapListing.entityNamePlural": "地图", @@ -14924,7 +15484,15 @@ "xpack.maps.setViewControl.goToButtonLabel": "前往", "xpack.maps.setViewControl.latitudeLabel": "纬度", "xpack.maps.setViewControl.longitudeLabel": "经度", + "xpack.maps.setViewControl.mgrsInvalid": "MGRS 无效", + "xpack.maps.setViewControl.mgrsLabel": "MGRS", "xpack.maps.setViewControl.submitButtonLabel": "执行", + "xpack.maps.setViewControl.utmEastingLabel": "UTM 东距", + "xpack.maps.setViewControl.utmInvalidEasting": "UTM 东距无效", + "xpack.maps.setViewControl.utmInvalidNorthing": "UTM 北距无效", + "xpack.maps.setViewControl.utmInvalidZone": "UTM 分度带无效", + "xpack.maps.setViewControl.utmNorthingLabel": "UTM 北距", + "xpack.maps.setViewControl.utmZoneLabel": "UTM 分度带", "xpack.maps.setViewControl.zoomLabel": "缩放", "xpack.maps.source.dataSourceLabel": "数据源", "xpack.maps.source.ems_xyzDescription": "使用 {z}/{x}/{y} url 模式的 Raster 图像磁贴地图服务。", @@ -15001,6 +15569,8 @@ "xpack.maps.source.esSearch.geofieldLabel": "地理空间字段", "xpack.maps.source.esSearch.geoFieldLabel": "地理空间字段", "xpack.maps.source.esSearch.geoFieldTypeLabel": "地理空间字段类型", + "xpack.maps.source.esSearch.indexOverOneLengthEditError": "您的索引模式指向多个索引。每个索引模式只允许一个索引。", + "xpack.maps.source.esSearch.indexZeroLengthEditError": "您的索引模式未指向任何索引。", "xpack.maps.source.esSearch.joinsDisabledReason": "按集群缩放时不支持联接", "xpack.maps.source.esSearch.joinsDisabledReasonMvt": "按 mvt 矢量磁贴缩放时不支持联接", "xpack.maps.source.esSearch.limitScalingLabel": "将结果数限制到 {maxResultWindow}", @@ -15163,6 +15733,7 @@ "xpack.maps.tooltip.filterOnPropertyTitle": "基于属性筛选", "xpack.maps.tooltip.geometryFilterForm.createFilterButtonLabel": "创建筛选", "xpack.maps.tooltip.geometryFilterForm.filterTooLargeMessage": "无法创建筛选。筛选已添加到 URL,此形状有过多的顶点,无法都容纳在 URL 中。", + "xpack.maps.tooltip.joinPropertyTooltipContent": "共享密钥“{leftFieldName}”与 {rightSources} 联结", "xpack.maps.tooltip.layerFilterLabel": "按图层筛选结果", "xpack.maps.tooltip.loadingMsg": "正在加载", "xpack.maps.tooltip.pageNumerText": "第 {pageNumber} 页,共 {total} 页", @@ -15199,8 +15770,8 @@ "xpack.maps.tutorials.ems.downloadStepText": "1.导航到 Elastic Maps Service [登陆页]({emsLandingPageUrl}/)。\n2.在左边栏中,选择管理边界。\n3.单击`下载 GeoJSON` 按钮。", "xpack.maps.tutorials.ems.downloadStepTitle": "下载 Elastic Maps Service 边界", "xpack.maps.tutorials.ems.longDescription": "[Elastic Maps Service (EMS)](https://www.elastic.co/elastic-maps-service) 托管管理边界的磁贴图层和向量形状。在 Elasticsearch 中索引 EMS 管理边界将允许基于边界属性字段进行搜索。", - "xpack.maps.tutorials.ems.nameTitle": "EMS 边界", - "xpack.maps.tutorials.ems.shortDescription": "来自 Elastic Maps Service 的管理边界。", + "xpack.maps.tutorials.ems.nameTitle": "Elastic Maps Service", + "xpack.maps.tutorials.ems.shortDescription": "通过 Elastic Maps Service 将管理边界添加到数据中。", "xpack.maps.tutorials.ems.uploadStepText": "1.打开 [Maps]({newMapUrl}).\n2.单击`添加图层`,然后选择`上传 GeoJSON`。\n3.上传 GeoJSON 文件,然后单击`导入文件`。", "xpack.maps.tutorials.ems.uploadStepTitle": "索引 Elastic Maps Service 边界", "xpack.maps.validatedNumberInput.invalidClampErrorMessage": "必须介于 {min} 和 {max} 之间", @@ -15267,19 +15838,25 @@ "xpack.ml.alertTypes.jobsHealthAlertingRule.alertContext.resultsDescription": "规则执行的结果", "xpack.ml.alertTypes.jobsHealthAlertingRule.behindRealtimeCheckDescription": "作业的运行已落后", "xpack.ml.alertTypes.jobsHealthAlertingRule.behindRealtimeCheckName": "作业的运行已落后", + "xpack.ml.alertTypes.jobsHealthAlertingRule.betaBadgeTooltipContent": "异常检测作业运行状况告警是公测版功能。我们很乐意听取您的反馈意见。", "xpack.ml.alertTypes.jobsHealthAlertingRule.datafeedCheckDescription": "作业的对应数据馈送未启动时收到告警", "xpack.ml.alertTypes.jobsHealthAlertingRule.datafeedCheckName": "数据馈送未启动", - "xpack.ml.alertTypes.jobsHealthAlertingRule.defaultActionMessage": "异常检测作业运行状况检查结果:\n\\{\\{context.message\\}\\}\n\\{\\{#context.results\\}\\}\n 作业 ID:\\{\\{job_id\\}\\}\n \\{\\{#datafeed_id\\}\\}数据馈送 ID:\\{\\{datafeed_id\\}\\}\n \\{\\{/datafeed_id\\}\\} \\{\\{#datafeed_state\\}\\}数据馈送状态:\\{\\{datafeed_state\\}\\}\n \\{\\{/datafeed_state\\}\\} \\{\\{#memory_status\\}\\}内存状态:\\{\\{memory_status\\}\\}\n \\{\\{/memory_status\\}\\} \\{\\{#log_time\\}\\}内存日志记录时间:\\{\\{log_time\\}\\}\n \\{\\{/log_time\\}\\} \\{\\{#failed_category_count\\}\\}失败类别计数:\\{\\{failed_category_count\\}\\}\n \\{\\{/failed_category_count\\}\\} \\{\\{#annotation\\}\\}注释:\\{\\{annotation\\}\\}\n \\{\\{/annotation\\}\\} \\{\\{#missed_docs_count\\}\\}缺失文档数:\\{\\{missed_docs_count\\}\\}\n \\{\\{/missed_docs_count\\}\\} \\{\\{#end_timestamp\\}\\}缺失文档的最新已完成存储桶:\\{\\{end_timestamp\\}\\}\n \\{\\{/end_timestamp\\}\\} \\{\\{#errors\\}\\}错误消息:\\{\\{message\\}\\} \\{\\{/errors\\}\\}\n\\{\\{/context.results\\}\\}\n", + "xpack.ml.alertTypes.jobsHealthAlertingRule.datafeedStateMessage": "没有为以下{count, plural, other {作业}}启动数据馈送:{jobsString}", + "xpack.ml.alertTypes.jobsHealthAlertingRule.defaultActionMessage": "[\\{\\{rule.name\\}\\}] 异常检测作业运行状况检查结果:\n\\{\\{context.message\\}\\}\n\\{\\{#context.results\\}\\}\n 作业 ID:\\{\\{job_id\\}\\}\n \\{\\{#datafeed_id\\}\\}数据馈送 ID:\\{\\{datafeed_id\\}\\}\n \\{\\{/datafeed_id\\}\\}\\{\\{#datafeed_state\\}\\}数据馈送状态:\\{\\{datafeed_state\\}\\}\n \\{\\{/datafeed_state\\}\\}\\{\\{#memory_status\\}\\}内存状态:\\{\\{memory_status\\}\\}\n \\{\\{/memory_status\\}\\}\\{\\{#model_bytes\\}\\}模型大小:\\{\\{model_bytes\\}\\}\n \\{\\{/model_bytes\\}\\}\\{\\{#model_bytes_memory_limit\\}\\}模型内存限制:\\{\\{model_bytes_memory_limit\\}\\}\n \\{\\{/model_bytes_memory_limit\\}\\}\\{\\{#peak_model_bytes\\}\\}峰值模型字节数:\\{\\{peak_model_bytes\\}\\}\n \\{\\{/peak_model_bytes\\}\\}\\{\\{#model_bytes_exceeded\\}\\}模型已超出:\\{\\{model_bytes_exceeded\\}\\}\n \\{\\{/model_bytes_exceeded\\}\\}\\{\\{#log_time\\}\\}内存日志记录时间:\\{\\{log_time\\}\\}\n \\{\\{/log_time\\}\\}\\{\\{#failed_category_count\\}\\}失败类别计数:\\{\\{failed_category_count\\}\\}\n \\{\\{/failed_category_count\\}\\}\\{\\{#annotation\\}\\}标注:\\{\\{annotation\\}\\}\n \\{\\{/annotation\\}\\}\\{\\{#missed_docs_count\\}\\}缺失文档数:\\{\\{missed_docs_count\\}\\}\n \\{\\{/missed_docs_count\\}\\}\\{\\{#end_timestamp\\}\\}缺失文档的最新已完成存储桶:\\{\\{end_timestamp\\}\\}\n \\{\\{/end_timestamp\\}\\}\\{\\{#errors\\}\\}错误消息:\\{\\{message\\}\\} \\{\\{/errors\\}\\}\n\\{\\{/context.results\\}\\}\n", "xpack.ml.alertTypes.jobsHealthAlertingRule.delayedDataCheckDescription": "作业由于数据延迟而缺失数据时收到告警。", "xpack.ml.alertTypes.jobsHealthAlertingRule.delayedDataCheckName": "数据延迟发生", + "xpack.ml.alertTypes.jobsHealthAlertingRule.delayedDataMessage": "{count, plural, other {作业}} {jobsString} {count, plural, other {}}受到延迟数据影响。", "xpack.ml.alertTypes.jobsHealthAlertingRule.description": "异常检测作业有运行问题时发出告警。为极其重要的作业启用合适的告警。", "xpack.ml.alertTypes.jobsHealthAlertingRule.errorMessagesCheckDescription": "作业的消息包含错误时收到告警。", "xpack.ml.alertTypes.jobsHealthAlertingRule.errorMessagesCheckName": "作业消息中的错误", + "xpack.ml.alertTypes.jobsHealthAlertingRule.errorMessagesMessage": "{count, plural, other {作业}} {jobsString} 的消息中{count, plural, other {包含}}错误。", "xpack.ml.alertTypes.jobsHealthAlertingRule.excludeJobs.label": "排除作业或组", "xpack.ml.alertTypes.jobsHealthAlertingRule.includeJobs.errorMessage": "“作业选择”必填", "xpack.ml.alertTypes.jobsHealthAlertingRule.includeJobs.label": "包括作业或组", "xpack.ml.alertTypes.jobsHealthAlertingRule.mmlCheckDescription": "作业达到软或硬模型内存限制时收到告警。", "xpack.ml.alertTypes.jobsHealthAlertingRule.mmlCheckName": "模型内存限制已达到", + "xpack.ml.alertTypes.jobsHealthAlertingRule.mmlMessage": "{count, plural, other {作业}} {jobsString} 已达到硬模型内存限制。为作业分配更多地内存,从达到硬限制之前的快照还原。", + "xpack.ml.alertTypes.jobsHealthAlertingRule.mmlSoftLimitMessage": "{count, plural, other {作业}} {jobsString} 已达到软模型内存限制。为作业分配更多内存,或编辑数据馈送筛选以限制分析范围。", "xpack.ml.alertTypes.jobsHealthAlertingRule.testsConfig.delayedData.docsCountErrorMessage": "无效的文档数", "xpack.ml.alertTypes.jobsHealthAlertingRule.testsConfig.delayedData.timeIntervalErrorMessage": "无效的时间间隔", "xpack.ml.alertTypes.jobsHealthAlertingRule.testsConfig.errorMessage": "必须至少启用一次运行状况检查。", @@ -15739,7 +16316,6 @@ "xpack.ml.dataframe.analytics.create.savedSearchLabel": "已保存搜索", "xpack.ml.dataframe.analytics.create.scatterplotMatrixLabel": "散点图矩阵", "xpack.ml.dataframe.analytics.create.scatterplotMatrixLabelHelpText": "可视化选定包括字段对之间的关系。", - "xpack.ml.dataFrame.analytics.create.searchSelection.CcsErrorCallOutBody": "已保存搜索“{savedSearchTitle}”使用索引模式“{dataViewName}”。", "xpack.ml.dataFrame.analytics.create.searchSelection.CcsErrorCallOutTitle": "不支持使用跨集群搜索的索引模式。", "xpack.ml.dataFrame.analytics.create.searchSelection.notFoundLabel": "未找到匹配的索引或已保存搜索。", "xpack.ml.dataFrame.analytics.create.searchSelection.savedObjectType.indexPattern": "索引模式", @@ -15795,7 +16371,6 @@ "xpack.ml.dataframe.analytics.creation.createStepTitle": "创建", "xpack.ml.dataframe.analytics.creation.detailsStepTitle": "作业详情", "xpack.ml.dataframe.analytics.creation.validationStepTitle": "验证", - "xpack.ml.dataframe.analytics.creationPageSourceIndexTitle": "源索引模式:{dataViewTitle}", "xpack.ml.dataframe.analytics.creationPageTitle": "创建作业", "xpack.ml.dataframe.analytics.decisionPathFeatureBaselineTitle": "基线", "xpack.ml.dataframe.analytics.decisionPathFeatureOtherTitle": "其他", @@ -16166,14 +16741,15 @@ "xpack.ml.formatters.metricChangeDescription.unusuallyLowDescription": "异常低", "xpack.ml.formatters.metricChangeDescription.unusualValuesDescription": "异常值", "xpack.ml.fullTimeRangeSelector.errorSettingTimeRangeNotification": "设置时间范围时出错。", - "xpack.ml.fullTimeRangeSelector.useFullDataButtonLabel": "使用完整的 {dataViewTitle} 数据", "xpack.ml.helpPopover.ariaLabel": "帮助", "xpack.ml.importExport.exportButton": "导出作业", + "xpack.ml.importExport.exportFlyout.adDeselectAllButton": "取消全选", "xpack.ml.importExport.exportFlyout.adJobsError": "无法加载异常检测作业", "xpack.ml.importExport.exportFlyout.adSelectAllButton": "全选", "xpack.ml.importExport.exportFlyout.adTab": "异常检测", "xpack.ml.importExport.exportFlyout.calendarsError": "无法加载日历", "xpack.ml.importExport.exportFlyout.closeButton": "关闭", + "xpack.ml.importExport.exportFlyout.dfaDeselectAllButton": "取消全选", "xpack.ml.importExport.exportFlyout.dfaJobsError": "无法加载数据帧分析作业", "xpack.ml.importExport.exportFlyout.dfaSelectAllButton": "全选", "xpack.ml.importExport.exportFlyout.dfaTab": "分析", @@ -16253,6 +16829,13 @@ "xpack.ml.jobMessages.toggleInChartTooltipText": "在图表中切换", "xpack.ml.jobsAwaitingNodeWarning.noMLNodesAvailableDescription": "有{jobCount, plural, other {}} {jobCount, plural, other {# 个作业}}等待 Machine Learning 节点启动。", "xpack.ml.jobsAwaitingNodeWarning.title": "等待 Machine Learning 节点", + "xpack.ml.jobsAwaitingNodeWarningShared.isCloud": "Elastic Cloud 部署可以自动扩展以添加更多 ML 容量。这可能需要 5-20 分钟。", + "xpack.ml.jobsAwaitingNodeWarningShared.isCloud.link": "您可以在 {link} 中监测进度。", + "xpack.ml.jobsAwaitingNodeWarningShared.linkToCloud.learnMore": "了解详情。", + "xpack.ml.jobsAwaitingNodeWarningShared.linkToCloud.linkText": "Elastic Cloud 管理控制台", + "xpack.ml.jobsAwaitingNodeWarningShared.noMLNodesAvailableDescription": "有{jobCount, plural, other {}} {jobCount, plural, other {# 个作业}}等待 Machine Learning 节点启动。", + "xpack.ml.jobsAwaitingNodeWarningShared.notCloud": "仅 Elastic Cloud 部署可以自动扩展;必须添加 Machine Learning 节点。{link}", + "xpack.ml.jobsAwaitingNodeWarningShared.title": "等待 Machine Learning 节点", "xpack.ml.jobsBreadcrumbs.advancedConfigurationLabel": "高级配置", "xpack.ml.jobsBreadcrumbs.categorizationLabel": "归类", "xpack.ml.jobsBreadcrumbs.multiMetricLabel": "多指标", @@ -16375,6 +16958,7 @@ "xpack.ml.jobsList.editJobFlyout.datafeed.readOnlyCalloutText": "数据馈送正在运行时,不能编辑数据馈送设置。如果希望编辑这些设置,请停止作业。", "xpack.ml.jobsList.editJobFlyout.datafeed.scrollSizeLabel": "滚动条大小", "xpack.ml.jobsList.editJobFlyout.datafeedTitle": "数据馈送", + "xpack.ml.jobsList.editJobFlyout.detectors.title": "编辑检测工具描述", "xpack.ml.jobsList.editJobFlyout.detectorsTitle": "检测工具", "xpack.ml.jobsList.editJobFlyout.groupsAndJobsHasSameIdErrorMessage": "已存在具有此 ID 的作业。组和作业不能使用相同的 ID。", "xpack.ml.jobsList.editJobFlyout.jobDetails.dailyModelSnapshotRetentionAfterDaysLabel": "每日模型快照保留开始前天数", @@ -16466,7 +17050,10 @@ "xpack.ml.jobsList.managementActions.stopDatafeedDescription": "停止数据馈送", "xpack.ml.jobsList.managementActions.stopDatafeedLabel": "停止数据馈送", "xpack.ml.jobsList.memoryStatusLabel": "内存状态", - "xpack.ml.jobsList.missingSavedObjectWarning.linkToManagement.link": "Stack Management", + "xpack.ml.jobsList.missingSavedObjectWarning.description": "一些作业缺少已保存对象或者已保存对象不完整。", + "xpack.ml.jobsList.missingSavedObjectWarning.link": " {link}", + "xpack.ml.jobsList.missingSavedObjectWarning.linkToManagement.link": "同步您的作业。", + "xpack.ml.jobsList.missingSavedObjectWarning.noPermission": "管理员可以在 Stack Management 中同步作业。", "xpack.ml.jobsList.missingSavedObjectWarning.title": "需要同步 ML 作业", "xpack.ml.jobsList.multiJobActions.groupSelector.addButtonAriaLabel": "添加", "xpack.ml.jobsList.multiJobActions.groupSelector.addNewGroupPlaceholder": "添加新组", @@ -16637,6 +17224,9 @@ "xpack.ml.models.jobValidation.messages.categorizationFiltersValidMessage": "分类筛选检查已通过。", "xpack.ml.models.jobValidation.messages.categorizerMissingPerPartitionFieldMessage": "在启用按分区分类时,必须为引用“mlcategory”的检测器设置分区字段。", "xpack.ml.models.jobValidation.messages.categorizerVaryingPerPartitionFieldNamesMessage": "在启用按分区分类时,关键字为“mlcategory”的检测器不能具有不同的 partition_field_name。找到了 [{fields}]。", + "xpack.ml.models.jobValidation.messages.datafeedPreviewFailedMessage": "数据馈送预览失败。这可能是由于作业或数据馈送配置中出现错误。", + "xpack.ml.models.jobValidation.messages.datafeedPreviewNoDocumentsHeading": "数据馈送预览", + "xpack.ml.models.jobValidation.messages.datafeedPreviewNoDocumentsMessage": "通过当前作业配置运行数据馈送预览未生成任何结果。如果索引不包含文档,可以忽略此警告,否则作业可能配置错误。", "xpack.ml.models.jobValidation.messages.detectorsDuplicatesMessage": "找到重复的检测工具。在同一作业中,不允许存在 “{functionParam}”、“{fieldNameParam}”、“{byFieldNameParam}”、“{overFieldNameParam}” 和 “{partitionFieldNameParam}” 组合配置相同的检测工具。", "xpack.ml.models.jobValidation.messages.detectorsEmptyMessage": "未找到任何检测工具。必须至少指定一个检测工具。", "xpack.ml.models.jobValidation.messages.detectorsFunctionEmptyMessage": "检测工具函数之一为空。", @@ -16773,6 +17363,26 @@ "xpack.ml.newJob.wizard.datafeedPreviewFlyout.noDetectors": "未配置任何检测工具", "xpack.ml.newJob.wizard.datafeedPreviewFlyout.showButton": "数据馈送预览", "xpack.ml.newJob.wizard.datafeedPreviewFlyout.title": "数据馈送预览", + "xpack.ml.newJob.wizard.datafeedStep.dataView.changeDataView.button": "更改索引模式", + "xpack.ml.newJob.wizard.datafeedStep.dataView.description": "当前用于此作业的索引模式。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step0.title": "更改索引模式", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step1.dataView": "索引模式", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step1.noMatchingError": "未找到匹配的索引或已保存搜索。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step1.title": "为此作业选择新的索引模式", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step2.ApplyButton": "应用", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step2.backButton": "返回", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step2.title": "为 {dv2} 更改 {dv1}", + "xpack.ml.newJob.wizard.datafeedStep.dataView.step2.validatingText": "正在检查索引模式和作业兼容性", + "xpack.ml.newJob.wizard.datafeedStep.dataView.title": "索引模式", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.message": "尝试预览数据馈送时,此索引模式生成了错误。{dataViewTitle} 中可能不存在为此作业选择的字段。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.reason": "原因:", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.invalid.title": "索引模式无效", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.noDetectors.message": "尚未配置检测工具;可以将此索引模式应用于作业。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.noDetectors.title": "索引模式有效", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.possiblyInvalid.message": "预览数据馈送时,此索引模式未生成任何结果。{dataViewTitle} 中可能没有文档。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.possiblyInvalid.title": "索引模式可能无效", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.valid.message": "可以将此索引模式应用于该作业。", + "xpack.ml.newJob.wizard.datafeedStep.dataView.validation.valid.title": "索引模式有效", "xpack.ml.newJob.wizard.datafeedStep.frequency.description": "搜索的时间间隔。", "xpack.ml.newJob.wizard.datafeedStep.frequency.title": "频率", "xpack.ml.newJob.wizard.datafeedStep.query.title": "Elasticsearch 查询", @@ -16861,7 +17471,7 @@ "xpack.ml.newJob.wizard.jsonFlyout.autoSetJobCreatorTimeRange.error": "检索索引的开始和结束时间时出错", "xpack.ml.newJob.wizard.jsonFlyout.closeButton": "关闭", "xpack.ml.newJob.wizard.jsonFlyout.datafeed.title": "数据馈送配置 JSON", - "xpack.ml.newJob.wizard.jsonFlyout.indicesChange.calloutText": "在此处无法更改数据馈送正在使用的索引。如果您想选择其他索引模式或已保存的搜索,请重新开始创建作业,以便选择其他索引模式。", + "xpack.ml.newJob.wizard.jsonFlyout.indicesChange.calloutText": "在此处无法更改数据馈送正在使用的索引。要选择不同索引模式或已保存搜索,请前往向导的第 1 步,然后选择更改索引模式选项。", "xpack.ml.newJob.wizard.jsonFlyout.indicesChange.calloutTitle": "索引已更改", "xpack.ml.newJob.wizard.jsonFlyout.job.title": "作业配置 JSON", "xpack.ml.newJob.wizard.jsonFlyout.saveButton": "保存", @@ -17470,8 +18080,6 @@ "xpack.ml.trainedModels.modelsList.deleteModelsButtonLabel": "删除", "xpack.ml.trainedModels.modelsList.disableSelectableMessage": "模型有关联的管道", "xpack.ml.trainedModels.modelsList.expandedRow.analyticsConfigTitle": "分析配置", - "xpack.ml.trainedModels.modelsList.expandedRow.byPipelineTitle": "按管道", - "xpack.ml.trainedModels.modelsList.expandedRow.byProcessorTitle": "按处理器", "xpack.ml.trainedModels.modelsList.expandedRow.configTabLabel": "配置", "xpack.ml.trainedModels.modelsList.expandedRow.detailsTabLabel": "详情", "xpack.ml.trainedModels.modelsList.expandedRow.detailsTitle": "详情", @@ -17600,6 +18208,8 @@ "xpack.monitoring.alerts.elasticsearchVersionMismatch.label": "Elasticsearch 版本不匹配", "xpack.monitoring.alerts.elasticsearchVersionMismatch.shortAction": "确认所有节点具有相同的版本。", "xpack.monitoring.alerts.elasticsearchVersionMismatch.ui.firingMessage": "在此集群中正运行着多个 Elasticsearch ({versions}) 版本。", + "xpack.monitoring.alerts.filterHelpText": "使用 KQL 表达式限制告警触发的范围。", + "xpack.monitoring.alerts.filterLable": "筛选", "xpack.monitoring.alerts.flyoutExpressions.timeUnits.dayLabel": "{timeValue, plural, other {天}}", "xpack.monitoring.alerts.flyoutExpressions.timeUnits.hourLabel": "{timeValue, plural, other {小时}}", "xpack.monitoring.alerts.flyoutExpressions.timeUnits.minuteLabel": "{timeValue, plural, other {分钟}}", @@ -17613,6 +18223,7 @@ "xpack.monitoring.alerts.kibanaVersionMismatch.label": "Kibana 版本不匹配", "xpack.monitoring.alerts.kibanaVersionMismatch.shortAction": "确认所有实例具有相同的版本。", "xpack.monitoring.alerts.kibanaVersionMismatch.ui.firingMessage": "在此集群中正运行着多个 Kibana 版本 ({versions})。", + "xpack.monitoring.alerts.kqlSearchFieldPlaceholder": "搜索监测数据", "xpack.monitoring.alerts.licenseExpiration.action": "请更新您的许可证。", "xpack.monitoring.alerts.licenseExpiration.actionVariables.clusterName": "许可证所属的集群。", "xpack.monitoring.alerts.licenseExpiration.actionVariables.expiredDate": "许可证过期日期。", @@ -17860,6 +18471,7 @@ "xpack.monitoring.cluster.listing.standaloneClusterCallOutText": "或者,单击下表中的独立集群", "xpack.monitoring.cluster.listing.standaloneClusterCallOutTitle": "似乎您具有未连接到 Elasticsearch 集群的实例。", "xpack.monitoring.cluster.listing.statusColumnTitle": "告警状态", + "xpack.monitoring.cluster.listing.tabTitle": "集群", "xpack.monitoring.cluster.listing.unknownHealthMessage": "未知", "xpack.monitoring.cluster.overview.apmPanel.agentServersTotalLinkLabel": "APM 和 Fleet 服务器:{apmsTotal}", "xpack.monitoring.cluster.overview.apmPanel.apmFleetTitle": "APM 和 Fleet 服务器", @@ -17934,7 +18546,6 @@ "xpack.monitoring.cluster.overview.logstashPanel.withPersistentQueuesLabel": "持久性队列", "xpack.monitoring.cluster.overview.pageTitle": "集群概览", "xpack.monitoring.cluster.overviewTitle": "概览", - "xpack.monitoring.cluster.listing.tabTitle": "集群", "xpack.monitoring.clusterStats.uuidNotFoundErrorMessage": "在选定时间范围内找不到该集群。UUID:{clusterUuid}", "xpack.monitoring.clusterStats.uuidNotSpecifiedErrorMessage": "{clusterUuid} 未指定", "xpack.monitoring.elasticsearch.ccr.ccrListingTable.alertsColumnTitle": "告警", @@ -17946,7 +18557,6 @@ "xpack.monitoring.elasticsearch.ccr.ccrListingTable.syncLagOpsColumnTitle": "同步延迟(操作)", "xpack.monitoring.elasticsearch.ccr.heading": "CCR", "xpack.monitoring.elasticsearch.ccr.pageTitle": "Elasticsearch Ccr", - "xpack.monitoring.elasticsearch.ccr.title": "Elasticsearch - CCR", "xpack.monitoring.elasticsearch.ccr.shard.instanceTitle": "索引:{followerIndex} 分片:{shardId}", "xpack.monitoring.elasticsearch.ccr.shard.pageTitle": "Elasticsearch Ccr 分片 - 索引:{followerIndex} 分片:{shardId}", "xpack.monitoring.elasticsearch.ccr.shard.title": "Elasticsearch - CCR - 分片", @@ -17958,6 +18568,7 @@ "xpack.monitoring.elasticsearch.ccr.shardsTable.syncLagOpsColumn.followerLagTooltip": "Follower 延迟:{syncLagOpsFollower}", "xpack.monitoring.elasticsearch.ccr.shardsTable.syncLagOpsColumn.leaderLagTooltip": "Leader 延迟:{syncLagOpsLeader}", "xpack.monitoring.elasticsearch.ccr.shardsTable.syncLagOpsColumnTitle": "同步延迟(操作)", + "xpack.monitoring.elasticsearch.ccr.title": "Elasticsearch - CCR", "xpack.monitoring.elasticsearch.ccrShard.errorsTable.reasonColumnTitle": "原因", "xpack.monitoring.elasticsearch.ccrShard.errorsTable.typeColumnTitle": "类型", "xpack.monitoring.elasticsearch.ccrShard.errorsTableTitle": "错误", @@ -17976,6 +18587,9 @@ "xpack.monitoring.elasticsearch.clusterStatus.totalShardsLabel": "分片合计", "xpack.monitoring.elasticsearch.clusterStatus.unassignedShardsLabel": "未分配分片", "xpack.monitoring.elasticsearch.healthStatusLabel": "运行状况:{status}", + "xpack.monitoring.elasticsearch.index.advanced.title": "Elasticsearch - 索引 - {indexName} - 高级", + "xpack.monitoring.elasticsearch.index.overview.pageTitle": "索引:{indexName}", + "xpack.monitoring.elasticsearch.index.overview.title": "Elasticsearch - 索引 - {indexName} - 概览", "xpack.monitoring.elasticsearch.indexDetailStatus.alerts": "告警", "xpack.monitoring.elasticsearch.indexDetailStatus.documentsTitle": "文档", "xpack.monitoring.elasticsearch.indexDetailStatus.iconStatusLabel": "运行状况:{elasticsearchStatusIcon}", @@ -17983,7 +18597,6 @@ "xpack.monitoring.elasticsearch.indexDetailStatus.totalShardsTitle": "分片合计", "xpack.monitoring.elasticsearch.indexDetailStatus.totalTitle": "合计", "xpack.monitoring.elasticsearch.indexDetailStatus.unassignedShardsTitle": "未分配分片", - "xpack.monitoring.elasticsearch.index.advanced.title": "Elasticsearch - 索引 - {indexName} - 高级", "xpack.monitoring.elasticsearch.indices.alertsColumnTitle": "告警", "xpack.monitoring.elasticsearch.indices.dataTitle": "数据", "xpack.monitoring.elasticsearch.indices.documentCountTitle": "文档计数", @@ -17992,8 +18605,6 @@ "xpack.monitoring.elasticsearch.indices.monitoringTablePlaceholder": "筛选索引……", "xpack.monitoring.elasticsearch.indices.nameTitle": "名称", "xpack.monitoring.elasticsearch.indices.noIndicesMatchYourSelectionDescription": "没有索引匹配您的选择。请尝试更改时间范围选择。", - "xpack.monitoring.elasticsearch.index.overview.pageTitle": "索引:{indexName}", - "xpack.monitoring.elasticsearch.index.overview.title": "Elasticsearch - 索引 - {indexName} - 概览", "xpack.monitoring.elasticsearch.indices.pageTitle": "Elasticsearch 索引", "xpack.monitoring.elasticsearch.indices.routeTitle": "Elasticsearch - 索引", "xpack.monitoring.elasticsearch.indices.searchRateTitle": "搜索速率", @@ -18012,6 +18623,7 @@ "xpack.monitoring.elasticsearch.mlJobListing.statusIconLabel": "作业状态:{status}", "xpack.monitoring.elasticsearch.mlJobs.pageTitle": "Elasticsearch Machine Learning 作业", "xpack.monitoring.elasticsearch.mlJobs.routeTitle": "Elasticsearch - Machine Learning 作业", + "xpack.monitoring.elasticsearch.node.advanced.pageTitle": "Elasticsearch 节点:{nodeName}", "xpack.monitoring.elasticsearch.node.advanced.title": "Elasticsearch - 节点 - {nodeName} - 高级", "xpack.monitoring.elasticsearch.node.cells.tooltip.iconLabel": "有关此指标的更多信息", "xpack.monitoring.elasticsearch.node.cells.tooltip.max": "最大值", @@ -18020,6 +18632,7 @@ "xpack.monitoring.elasticsearch.node.cells.tooltip.trending": "趋势", "xpack.monitoring.elasticsearch.node.cells.trendingDownText": "向下", "xpack.monitoring.elasticsearch.node.cells.trendingUpText": "向上", + "xpack.monitoring.elasticsearch.node.heading": "Elasticsearch 节点", "xpack.monitoring.elasticsearch.node.overview.pageTitle": "Elasticsearch 节点:{node}", "xpack.monitoring.elasticsearch.node.overview.title": "Elasticsearch - 节点 - {nodeName} - 概览", "xpack.monitoring.elasticsearch.node.statusIconLabel": "状态:{status}", @@ -18054,6 +18667,7 @@ "xpack.monitoring.elasticsearch.nodes.statusColumnTitle": "状态", "xpack.monitoring.elasticsearch.nodes.unknownNodeTypeLabel": "未知", "xpack.monitoring.elasticsearch.overview.pageTitle": "Elasticsearch 概览", + "xpack.monitoring.elasticsearch.overview.title": "Elasticsearch", "xpack.monitoring.elasticsearch.shardActivity.completedRecoveriesLabel": "已完成恢复", "xpack.monitoring.elasticsearch.shardActivity.noActiveShardRecoveriesMessage.completedRecoveriesLinkText": "已完成恢复", "xpack.monitoring.elasticsearch.shardActivity.noActiveShardRecoveriesMessage.completedRecoveriesLinkTextProblem": "此集群没有活动的分片恢复。", @@ -18107,9 +18721,10 @@ "xpack.monitoring.es.nodeType.masterNodeLabel": "主节点", "xpack.monitoring.es.nodeType.masterOnlyNodeLabel": "只作主节点的节点", "xpack.monitoring.es.nodeType.nodeLabel": "节点", + "xpack.monitoring.esItemNavigation.advancedLinkText": "高级", + "xpack.monitoring.esItemNavigation.overviewLinkText": "概览", "xpack.monitoring.esNavigation.ccrLinkText": "CCR", "xpack.monitoring.esNavigation.indicesLinkText": "索引", - "xpack.monitoring.esItemNavigation.advancedLinkText": "高级", "xpack.monitoring.esNavigation.jobsLinkText": "Machine Learning 作业", "xpack.monitoring.esNavigation.nodesLinkText": "节点", "xpack.monitoring.esNavigation.overviewLinkText": "概览", @@ -18157,6 +18772,7 @@ "xpack.monitoring.kibana.listing.responseTimeColumnTitle": "响应时间", "xpack.monitoring.kibana.listing.statusColumnTitle": "状态", "xpack.monitoring.kibana.overview.pageTitle": "Kibana 概览", + "xpack.monitoring.kibana.overview.title": "Kibana", "xpack.monitoring.kibana.shardActivity.bytesTitle": "字节", "xpack.monitoring.kibana.shardActivity.filesTitle": "文件", "xpack.monitoring.kibana.shardActivity.indexTitle": "索引", @@ -18244,6 +18860,7 @@ "xpack.monitoring.logstash.nodes.routeTitle": "Logstash - 节点", "xpack.monitoring.logstash.nodes.versionTitle": "版本", "xpack.monitoring.logstash.overview.pageTitle": "Logstash 概览", + "xpack.monitoring.logstash.overview.title": "Logstash", "xpack.monitoring.logstash.pipeline.detailDrawer.conditionalStatementDescription": "这是您的管道中的条件语句。", "xpack.monitoring.logstash.pipeline.detailDrawer.eventsEmittedLabel": "已发出事件", "xpack.monitoring.logstash.pipeline.detailDrawer.eventsEmittedRateLabel": "已发出事件速率", @@ -18633,6 +19250,11 @@ "xpack.monitoring.metrics.esIndex.searchRate.totalShardsDescription": "跨主分片和副本分片执行的搜索请求数目。可以对多个分片运行单个搜索!", "xpack.monitoring.metrics.esIndex.searchRate.totalShardsLabel": "分片合计", "xpack.monitoring.metrics.esIndex.searchRateTitle": "搜索速率", + "xpack.monitoring.metrics.esIndex.segmentCount.primariesDescription": "主分片的段数。", + "xpack.monitoring.metrics.esIndex.segmentCount.primariesLabel": "主分片", + "xpack.monitoring.metrics.esIndex.segmentCount.totalDescription": "主分片和副本分片的段数。", + "xpack.monitoring.metrics.esIndex.segmentCount.totalLabel": "合计", + "xpack.monitoring.metrics.esIndex.segmentCountTitle": "段计数", "xpack.monitoring.metrics.esIndex.throttleTime.indexingDescription": "对主分片和副本分片限制索引操作所花费的时间量。", "xpack.monitoring.metrics.esIndex.throttleTime.indexingLabel": "索引", "xpack.monitoring.metrics.esIndex.throttleTime.indexingPrimariesDescription": "对主分片限制索引操作所花费的时间量。", @@ -18854,6 +19476,8 @@ "xpack.monitoring.metrics.logstashInstance.systemLoad.last1MinuteLabel": "1 分钟", "xpack.monitoring.metrics.logstashInstance.systemLoad.last5MinutesDescription": "过去 5 分钟的负载平均值。", "xpack.monitoring.metrics.logstashInstance.systemLoad.last5MinutesLabel": "5m", + "xpack.monitoring.no_data.heading": "找不到任何监测数据。", + "xpack.monitoring.no_data.internal_collection.heading": "找不到任何监测数据。", "xpack.monitoring.noData.blurbs.changesNeededDescription": "若要运行监测,请执行以下步骤", "xpack.monitoring.noData.blurbs.changesNeededTitle": "您需要做些调整", "xpack.monitoring.noData.blurbs.cloudDeploymentDescription": "配置监测,通过 ", @@ -18863,12 +19487,14 @@ "xpack.monitoring.noData.blurbs.lookingForMonitoringDataTitle": "我们正在寻找您的监测数据", "xpack.monitoring.noData.blurbs.monitoringIsOffDescription": "通过 Monitoring,可深入了解您的硬件性能和负载。", "xpack.monitoring.noData.blurbs.monitoringIsOffTitle": "Monitoring 当前已关闭", + "xpack.monitoring.noData.checker.clusterSettings": "正在检查生产集群上的集群设置 API", + "xpack.monitoring.noData.checker.nodesSettings": "正在检查生产集群上的节点设置 API", "xpack.monitoring.noData.checkerErrors.checkEsSettingsErrorMessage": "尝试检查 Elasticsearch 设置时遇到一些错误。您需要管理员权限,才能检查设置以及根据需要启用监测收集设置。", "xpack.monitoring.noData.cloud.description": "通过 Monitoring,可深入了解您的硬件性能和负载。", "xpack.monitoring.noData.cloud.heading": "找不到任何监测数据。", "xpack.monitoring.noData.cloud.title": "监测数据不可用", "xpack.monitoring.noData.collectionInterval.turnOnMonitoringButtonLabel": "使用 Metricbeat 设置监测", - "xpack.monitoring.noData.defaultLoadingMessage": "正在加载,请稍候", + "xpack.monitoring.noData.defaultLoadingMessage": "正在加载,请稍候......", "xpack.monitoring.noData.explanations.collectionEnabled.monitoringTurnedOnDescription": "数据在您的集群中时,您的监测仪表板将显示在此处。这可能需要几秒钟的时间。", "xpack.monitoring.noData.explanations.collectionEnabled.monitoringTurnedOnTitle": "成功!获取您的监测数据。", "xpack.monitoring.noData.explanations.collectionEnabled.stillWaitingLinkText": "仍在等候?", @@ -18941,6 +19567,342 @@ "xpack.monitoring.updateLicenseButtonLabel": "更新许可证", "xpack.monitoring.updateLicenseTitle": "更新您的许可证", "xpack.monitoring.useAvailableLicenseDescription": "如果您已经持有新的许可证,请立即上传。", + "xpack.observability..synthetics.addDataButtonLabel": "添加 Synthetics 数据", + "xpack.observability.alerts.manageRulesButtonLabel": "管理规则", + "xpack.observability.alerts.searchBarPlaceholder": "搜索告警(例如 kibana.alert.evaluation.threshold > 75)", + "xpack.observability.alerts.workflowStatusFilter.acknowledgedButtonLabel": "已确认", + "xpack.observability.alerts.workflowStatusFilter.closedButtonLabel": "已关闭", + "xpack.observability.alerts.workflowStatusFilter.openButtonLabel": "打开", + "xpack.observability.alertsDisclaimerLinkText": "反馈", + "xpack.observability.alertsDisclaimerText": "此功能可能会发生更改或在未来版本中完全移除。我们重视您的{feedback},因为我们致力于添加新功能。", + "xpack.observability.alertsDisclaimerTitle": "告警历史记录当前是 Observability 内的实验性功能", + "xpack.observability.alertsFlyout.actualValueLabel": "实际值", + "xpack.observability.alertsFlyout.durationLabel": "持续时间", + "xpack.observability.alertsFlyout.expectedValueLabel": "预期值", + "xpack.observability.alertsFlyout.lastUpdatedLabel": "上次更新时间", + "xpack.observability.alertsFlyout.ruleTypeLabel": "规则类型", + "xpack.observability.alertsFlyout.statusLabel": "状态", + "xpack.observability.alertsLinkTitle": "告警", + "xpack.observability.alertsTable.actionsTextLabel": "操作", + "xpack.observability.alertsTable.footerTextLabel": "告警", + "xpack.observability.alertsTable.loadingTextLabel": "正在加载告警", + "xpack.observability.alertsTable.moreActionsTextLabel": "更多操作", + "xpack.observability.alertsTable.showingAlertsTitle": "{totalAlerts, plural, other {告警}}", + "xpack.observability.alertsTable.viewDetailsTextLabel": "查看详情", + "xpack.observability.alertsTable.viewInAppTextLabel": "在应用中查看", + "xpack.observability.alertsTGrid.durationColumnDescription": "持续时间", + "xpack.observability.alertsTGrid.lastUpdatedColumnDescription": "上次更新时间", + "xpack.observability.alertsTGrid.reasonColumnDescription": "原因", + "xpack.observability.alertsTGrid.statusActiveDescription": "活动", + "xpack.observability.alertsTGrid.statusColumnDescription": "告警状态", + "xpack.observability.alertsTGrid.statusRecoveredDescription": "已恢复", + "xpack.observability.alertsTitle": "告警", + "xpack.observability.apply.label": "应用", + "xpack.observability.breadcrumbs.alertsLinkText": "告警", + "xpack.observability.breadcrumbs.landingLinkText": "入门", + "xpack.observability.breadcrumbs.observabilityLinkText": "可观测性", + "xpack.observability.breadcrumbs.overviewLinkText": "概览", + "xpack.observability.cases.caseFeatureNoPermissionsMessage": "要查看案例,必须对 Kibana 工作区中的案例功能有权限。有关详细信息,请联系您的 Kibana 管理员。", + "xpack.observability.cases.caseFeatureNoPermissionsTitle": "需要 Kibana 功能权限", + "xpack.observability.cases.caseView.goToDocumentationButton": "查看文档", + "xpack.observability.emptySection.apps.alert.description": "503 错误是否越来越多?服务是否响应?CPU 和 RAM 利用率是否激增?实时查看警告,而不是事后再进行剖析。", + "xpack.observability.emptySection.apps.alert.link": "创建规则", + "xpack.observability.emptySection.apps.alert.title": "未找到告警。", + "xpack.observability.emptySection.apps.apm.description": "通过分布式体系结构跟踪事务并映射服务的交互以轻松发现性能瓶颈。", + "xpack.observability.emptySection.apps.apm.link": "安装代理", + "xpack.observability.emptySection.apps.apm.title": "APM", + "xpack.observability.emptySection.apps.logs.description": "集中任何源的日志。搜索、跟踪、自动化异常检测并可视化趋势,以便您可以更迅速地采取操作。", + "xpack.observability.emptySection.apps.logs.link": "安装 Filebeat", + "xpack.observability.emptySection.apps.logs.title": "日志", + "xpack.observability.emptySection.apps.metrics.description": "分析您的基础设施、应用和服务的指标。发现趋势、预测行为、接收异常告警等等。", + "xpack.observability.emptySection.apps.metrics.link": "安装 Metricbeat", + "xpack.observability.emptySection.apps.metrics.title": "指标", + "xpack.observability.emptySection.apps.uptime.description": "主动监测站点和服务的可用性。接收告警并更快地解决问题,从而优化用户体验。", + "xpack.observability.emptySection.apps.uptime.link": "安装 Heartbeat", + "xpack.observability.emptySection.apps.uptime.title": "运行时间", + "xpack.observability.emptySection.apps.ux.description": "性能具有分布特征。测量所有访问者的 Web 应用程序访问体验,并了解如何改善每个人的体验。", + "xpack.observability.emptySection.apps.ux.link": "安装 RUM 代理", + "xpack.observability.emptySection.apps.ux.title": "用户体验", + "xpack.observability.enableInspectEsQueriesExperimentDescription": "检查 API 响应中的 Elasticsearch 查询。", + "xpack.observability.enableInspectEsQueriesExperimentName": "检查 ES 查询", + "xpack.observability.exp.breakDownFilter.noBreakdown": "无细目", + "xpack.observability.exp.breakDownFilter.unavailable": "步骤名称细目不可用于监测持续时间指标。使用步骤持续时间指标以按步骤名称细分。", + "xpack.observability.exp.breakDownFilter.warning": "一次只能将细目应用于一个序列。", + "xpack.observability.experimentalBadgeDescription": "此功能为实验性功能,在未来版本中可能会更改或完全移除。Elastic 将尽最大努力来修复任何问题,但实验性功能不受正式 GA 功能支持 SLA 的约束。", + "xpack.observability.experimentalBadgeLabel": "实验性", + "xpack.observability.exploratoryView.noBrusing": "按画笔选择缩放仅适用于时间序列图表。", + "xpack.observability.expView.chartTypes.label": "图表类型", + "xpack.observability.expView.columns.label": "{sourceField} 的第 {percentileValue} 百分位", + "xpack.observability.expView.columns.operation.label": "{sourceField} 的 {operationType}", + "xpack.observability.expView.dateRanger.endDate": "结束日期", + "xpack.observability.expView.dateRanger.startDate": "开始日期", + "xpack.observability.expView.fieldLabels.agentHost": "代理主机", + "xpack.observability.expView.fieldLabels.backend": "后端时间", + "xpack.observability.expView.fieldLabels.browserFamily": "浏览器系列", + "xpack.observability.expView.fieldLabels.browserVersion": "浏览器版本", + "xpack.observability.expView.fieldLabels.carrierLocation": "运营商位置", + "xpack.observability.expView.fieldLabels.carrierName": "运营商名称", + "xpack.observability.expView.fieldLabels.chooseField": "标签字段", + "xpack.observability.expView.fieldLabels.cls": "累计布局偏移", + "xpack.observability.expView.fieldLabels.connectionType": "连接类型", + "xpack.observability.expView.fieldLabels.coreWebVitals": "网站体验核心指标", + "xpack.observability.expView.fieldLabels.cpuUsage": "CPU 使用率", + "xpack.observability.expView.fieldLabels.dcl": "DOM 内容已加载", + "xpack.observability.expView.fieldLabels.device": "设备", + "xpack.observability.expView.fieldLabels.deviceDistribution": "设备分布", + "xpack.observability.expView.fieldLabels.deviceModel": "设备型号", + "xpack.observability.expView.fieldLabels.downPings": "关闭 Ping", + "xpack.observability.expView.fieldLabels.environment": "环境", + "xpack.observability.expView.fieldLabels.fcp": "首次内容绘制", + "xpack.observability.expView.fieldLabels.fid": "首次输入延迟", + "xpack.observability.expView.fieldLabels.hostName": "主机名", + "xpack.observability.expView.fieldLabels.hostOS": "主机 OS", + "xpack.observability.expView.fieldLabels.kpi": "KPI", + "xpack.observability.expView.fieldLabels.kpiOverTime": "时移 KPI", + "xpack.observability.expView.fieldLabels.labels": "标签", + "xpack.observability.expView.fieldLabels.lcp": "最大内容绘制", + "xpack.observability.expView.fieldLabels.location": "位置", + "xpack.observability.expView.fieldLabels.memoryUsage": "系统内存使用", + "xpack.observability.expView.fieldLabels.metric": "指标", + "xpack.observability.expView.fieldLabels.mobile.memoryUsage": "内存利用率", + "xpack.observability.expView.fieldLabels.mobileApp": "移动应用", + "xpack.observability.expView.fieldLabels.mobileResponse": "移动响应", + "xpack.observability.expView.fieldLabels.monitorDurationLabel": "监测持续时间", + "xpack.observability.expView.fieldLabels.monitorId": "监测 ID", + "xpack.observability.expView.fieldLabels.monitorName": "监测名称", + "xpack.observability.expView.fieldLabels.monitorStatus": "监测状态", + "xpack.observability.expView.fieldLabels.monitorType": "监测类型", + "xpack.observability.expView.fieldLabels.numberOfDevices": "设备数量", + "xpack.observability.expView.fieldLabels.obsLocation": "观察者位置", + "xpack.observability.expView.fieldLabels.onload": "文档完成 (onLoad)", + "xpack.observability.expView.fieldLabels.os": "操作系统", + "xpack.observability.expView.fieldLabels.osPlatform": "OS 平台", + "xpack.observability.expView.fieldLabels.pageLoadTime": "页面加载时间", + "xpack.observability.expView.fieldLabels.pagesLoaded": "已加载页面", + "xpack.observability.expView.fieldLabels.pageViews": "页面查看次数", + "xpack.observability.expView.fieldLabels.performanceDistribution": "性能分布", + "xpack.observability.expView.fieldLabels.pings": "Ping", + "xpack.observability.expView.fieldLabels.port": "端口", + "xpack.observability.expView.fieldLabels.requestMethod": "请求方法", + "xpack.observability.expView.fieldLabels.responseLatency": "延迟", + "xpack.observability.expView.fieldLabels.serviceName": "服务名称", + "xpack.observability.expView.fieldLabels.serviceVersion": "服务版本", + "xpack.observability.expView.fieldLabels.stepDurationLabel": "步骤持续时间", + "xpack.observability.expView.fieldLabels.stepNameLabel": "步骤名称", + "xpack.observability.expView.fieldLabels.tags": "标签", + "xpack.observability.expView.fieldLabels.tbt": "阻止总时间", + "xpack.observability.expView.fieldLabels.transactionPerMinute": "吞吐量", + "xpack.observability.expView.fieldLabels.upPings": "运行 Ping", + "xpack.observability.expView.fieldLabels.url": "URL", + "xpack.observability.expView.fieldLabels.webApplication": "Web 应用程序", + "xpack.observability.expView.filterValueButton.negate": "不是 {value}", + "xpack.observability.expView.heading.addToCase": "添加到案例", + "xpack.observability.expView.heading.addToCase.notification": "已成功将可视化添加到案例:{caseTitle}", + "xpack.observability.expView.heading.addToCase.notification.error": "未能将可视化添加到所选案例。", + "xpack.observability.expView.heading.addToCase.notification.viewCase": "查看案例", + "xpack.observability.expView.heading.label": "浏览数据", + "xpack.observability.expView.heading.openInLens": "在 Lens 中打开", + "xpack.observability.expView.heading.saveLensVisualization": "保存", + "xpack.observability.expView.lastUpdated.label": "上次更新时间:{updatedDate}", + "xpack.observability.expView.operationType.75thPercentile": "第 75 个百分位", + "xpack.observability.expView.operationType.90thPercentile": "第 90 个百分位", + "xpack.observability.expView.operationType.95thPercentile": "第 95 个百分位", + "xpack.observability.expView.operationType.99thPercentile": "第 99 个百分位", + "xpack.observability.expView.operationType.average": "平均值", + "xpack.observability.expView.operationType.lastValue": "最后值", + "xpack.observability.expView.operationType.median": "中值", + "xpack.observability.expView.operationType.sum": "求和", + "xpack.observability.expView.reportType.selectDataType": "选择数据类型以创建可视化。", + "xpack.observability.expView.reportType.selectLabel": "选择报告类型", + "xpack.observability.expView.seriesBuilder.accordion.label": "切换序列信息", + "xpack.observability.expView.seriesBuilder.addSeries": "添加序列", + "xpack.observability.expView.seriesBuilder.addSeries.limitation": "只能添加一个此报告类型的序列。", + "xpack.observability.expView.seriesBuilder.addSeries.selectReportType": "请先选择报告类型,然后再添加序列。", + "xpack.observability.expView.seriesBuilder.apply": "应用更改", + "xpack.observability.expView.seriesBuilder.breakdownBy": "细分依据", + "xpack.observability.expView.seriesBuilder.creationContext": "显示自", + "xpack.observability.expView.seriesBuilder.creationTime": "已创建图表", + "xpack.observability.expView.seriesBuilder.date": "日期", + "xpack.observability.expView.seriesBuilder.emptyReportDefinition": "选择报告定义以创建可视化。", + "xpack.observability.expView.seriesBuilder.emptyview": "没有可显示的内容。", + "xpack.observability.expView.seriesBuilder.labelField": "选择标签字段", + "xpack.observability.expView.seriesBuilder.loadingView": "正在加载视图......", + "xpack.observability.expView.seriesBuilder.operation": "操作", + "xpack.observability.expView.seriesBuilder.reportType": "报告类型", + "xpack.observability.expView.seriesBuilder.selectFilters": "筛选", + "xpack.observability.expView.seriesBuilder.selectReportType": "未选择任何报告类型", + "xpack.observability.expView.seriesBuilder.selectReportType.empty": "选择报告类型以创建可视化。", + "xpack.observability.expView.seriesEditor.clearFilter": "清除筛选", + "xpack.observability.expView.seriesEditor.editChartSeriesLabel": "编辑序列的图表类型", + "xpack.observability.expView.seriesEditor.editName": "编辑名称", + "xpack.observability.expView.seriesEditor.noData": "没有可用数据", + "xpack.observability.expView.seriesEditor.notFound": "未找到任何序列。请添加序列。", + "xpack.observability.expView.seriesEditor.removeReportMetric": "移除报告指标", + "xpack.observability.expView.seriesEditor.removeSeries": "移除序列", + "xpack.observability.expView.seriesEditor.removeSeriesDisabled": "无法移除主要序列。请先移除下面的所有序列,然后才能移除此项。", + "xpack.observability.expView.seriesEditor.selectReportMetric": "选择报告指标", + "xpack.observability.expView.seriesEditor.selectReportMetric.noFieldData": "字段 {field} 无可用数据。", + "xpack.observability.expView.seriesEditor.seriesName": "序列名称", + "xpack.observability.featureCatalogueDescription": "通过专用 UI 整合您的日志、指标、应用程序跟踪和系统可用性。", + "xpack.observability.featureCatalogueTitle": "可观测性", + "xpack.observability.featureRegistry.linkObservabilityTitle": "案例", + "xpack.observability.feedbackMenu.appName": "可观测性", + "xpack.observability.fieldValueSelection.apply": "应用", + "xpack.observability.fieldValueSelection.apply.label": "为 {label} 应用选定筛选", + "xpack.observability.fieldValueSelection.loading": "正在加载", + "xpack.observability.fieldValueSelection.placeholder": "筛选 {label}", + "xpack.observability.fieldValueSelection.placeholder.search": "搜索 {label}", + "xpack.observability.filterButton.label": "展开筛选 {label} 的筛选组", + "xpack.observability.filters.expanded.labels.backTo": "返回到标签", + "xpack.observability.filters.expanded.labels.fields": "标签字段", + "xpack.observability.filters.expanded.labels.label": "标签", + "xpack.observability.filters.expanded.noFilter": "未找到任何筛选。", + "xpack.observability.filters.expanded.search": "搜索 {label}", + "xpack.observability.filters.filterByUrl": "按 URL 筛选", + "xpack.observability.filters.label.wildcard": "{label} 通配符", + "xpack.observability.filters.searchResults": "{total} 项搜索结果", + "xpack.observability.filters.select": "选择", + "xpack.observability.filters.topPages": "排名靠前页面", + "xpack.observability.filters.url": "URL", + "xpack.observability.filters.url.loadingResults": "正在加载结果", + "xpack.observability.filters.url.noResults": "没有可用结果", + "xpack.observability.fleet.button": "试用 Fleet", + "xpack.observability.fleet.text": "通过 Elastic 代理,可以简单统一的方式将日志、指标和其他类型数据的监测添加到主机。您无需安装多个 Beats 和其他代理,以令其更为方便快捷地在基础结构中部署配置。", + "xpack.observability.fleet.title": "您是否了解我们的全新 Fleet?", + "xpack.observability.formatters.hoursTimeUnitLabel": "h", + "xpack.observability.formatters.hoursTimeUnitLabelExtended": "小时", + "xpack.observability.formatters.microsTimeUnitLabel": "μs", + "xpack.observability.formatters.microsTimeUnitLabelExtended": "微秒", + "xpack.observability.formatters.millisTimeUnitLabel": "ms", + "xpack.observability.formatters.millisTimeUnitLabelExtended": "毫秒", + "xpack.observability.formatters.minutesTimeUnitLabel": "最小值", + "xpack.observability.formatters.minutesTimeUnitLabelExtended": "分钟", + "xpack.observability.formatters.secondsTimeUnitLabel": "s", + "xpack.observability.formatters.secondsTimeUnitLabelExtended": "秒", + "xpack.observability.home.addData": "添加集成", + "xpack.observability.hoverActions.filterForValue": "筛留值", + "xpack.observability.hoverActions.filterForValueButtonLabel": "筛留值", + "xpack.observability.inspector.stats.hitsDescription": "查询返回的文档数目。", + "xpack.observability.inspector.stats.hitsLabel": "命中数", + "xpack.observability.inspector.stats.hitsTotalDescription": "与查询匹配的文档数目。", + "xpack.observability.inspector.stats.hitsTotalLabel": "命中数(总数)", + "xpack.observability.inspector.stats.kibanaApiQueryParametersDescription": "发起 Elasticsearch 请求的 Kibana API 请求中使用的查询参数。", + "xpack.observability.inspector.stats.kibanaApiQueryParametersLabel": "Kibana API 查询参数", + "xpack.observability.inspector.stats.kibanaApiRouteDescription": "发起 Elasticsearch 请求的 Kibana API 请求的路由。", + "xpack.observability.inspector.stats.kibanaApiRouteLabel": "Kibana API 路由", + "xpack.observability.inspector.stats.queryTimeDescription": "处理查询所花费的时间。不包括发送请求或在浏览器中解析它的时间。", + "xpack.observability.inspector.stats.queryTimeLabel": "查询时间", + "xpack.observability.inspector.stats.queryTimeValue": "{queryTime}ms", + "xpack.observability.maxSuggestionsUiSettingDescription": "在自动完成选择框中提取的最大建议数。", + "xpack.observability.maxSuggestionsUiSettingName": "最大建议数", + "xpack.observability.mobile.addDataButtonLabel": "添加移动数据", + "xpack.observability.navigation.newBadge": "新建", + "xpack.observability.news.readFullStory": "详细了解", + "xpack.observability.news.title": "最新动态", + "xpack.observability.noDataConfig.beatsCard.description": "使用 Beats 和 APM 代理将 Observability 数据发送到 Elasticsearch。我们使许多流行系统、应用和语言都可以轻松获取支持。", + "xpack.observability.noDataConfig.beatsCard.title": "添加集成", + "xpack.observability.noDataConfig.solutionName": "可观测性", + "xpack.observability.notAvailable": "不可用", + "xpack.observability.overview.alert.allTypes": "所有类型", + "xpack.observability.overview.alert.appLink": "管理告警", + "xpack.observability.overview.alerts.muted": "已静音", + "xpack.observability.overview.alerts.title": "告警", + "xpack.observability.overview.apm.appLink": "在应用中查看", + "xpack.observability.overview.apm.services": "服务", + "xpack.observability.overview.apm.throughput": "吞吐量", + "xpack.observability.overview.apm.title": "APM", + "xpack.observability.overview.exploratoryView": "分析数据", + "xpack.observability.overview.exploratoryView.editSeriesColor": "编辑序列的颜色", + "xpack.observability.overview.exploratoryView.hideChart": "隐藏图表", + "xpack.observability.overview.exploratoryView.lensDisabled": "Lens 应用不可用,请启用 Lens 以使用浏览视图。", + "xpack.observability.overview.exploratoryView.missingDataType": "缺少数据类型", + "xpack.observability.overview.exploratoryView.missingReportDefinition": "缺少 {reportDefinition}", + "xpack.observability.overview.exploratoryView.missingReportMetric": "缺少报告指标", + "xpack.observability.overview.exploratoryView.mobileExperienceLabel": "移动体验", + "xpack.observability.overview.exploratoryView.noDataAvailable": "没有可用的 {dataType} 数据。", + "xpack.observability.overview.exploratoryView.pickColor": "选取颜色", + "xpack.observability.overview.exploratoryView.preview": "预览", + "xpack.observability.overview.exploratoryView.refresh": "刷新", + "xpack.observability.overview.exploratoryView.selectDataType": "选择数据类型", + "xpack.observability.overview.exploratoryView.selectDataTypeTooltip": "无法编辑数据类型。", + "xpack.observability.overview.exploratoryView.showChart": "显示图表", + "xpack.observability.overview.exploratoryView.syntheticsLabel": "Synthetics 监测", + "xpack.observability.overview.exploratoryView.uxLabel": "用户体验 (RUM)", + "xpack.observability.overview.loadingObservability": "正在加载可观测性", + "xpack.observability.overview.logs.appLink": "在应用中查看", + "xpack.observability.overview.logs.subtitle": "每分钟日志速率", + "xpack.observability.overview.logs.title": "日志", + "xpack.observability.overview.metrics.appLink": "在应用中查看", + "xpack.observability.overview.metrics.colunms.cpu": "CPU %", + "xpack.observability.overview.metrics.colunms.hostname": "主机名", + "xpack.observability.overview.metrics.colunms.load15": "加载 15", + "xpack.observability.overview.metrics.colunms.uptime": "运行时间", + "xpack.observability.overview.metrics.title": "指标", + "xpack.observability.overview.pageTitle": "概览", + "xpack.observability.overview.uptime.appLink": "在应用中查看", + "xpack.observability.overview.uptime.chart.down": "关闭", + "xpack.observability.overview.uptime.chart.up": "运行", + "xpack.observability.overview.uptime.down": "关闭", + "xpack.observability.overview.uptime.monitors": "监测", + "xpack.observability.overview.uptime.title": "运行时间", + "xpack.observability.overview.uptime.up": "运行", + "xpack.observability.overview.ux.appLink": "在应用中查看", + "xpack.observability.overview.ux.title": "用户体验", + "xpack.observability.overviewLinkTitle": "概览", + "xpack.observability.page_header.addMobileDataLink.label": "导航到有关如何添加移动 APM 数据的教程", + "xpack.observability.page_header.addUptimeDataLink.label": "导航到 Elastic Synthetics 集成以添加 Uptime 数据", + "xpack.observability.page_header.addUXDataLink.label": "导航到有关如何添加用户体验 APM 数据的教程", + "xpack.observability.pageLayout.sideNavTitle": "可观测性", + "xpack.observability.resources.documentation": "文档", + "xpack.observability.resources.forum": "讨论论坛", + "xpack.observability.resources.quick_start": "快速入门视频", + "xpack.observability.resources.title": "资源", + "xpack.observability.resources.training": "免费的可观测性课程", + "xpack.observability.search.url.close": "关闭", + "xpack.observability.section.apps.apm.description": "通过分布式体系结构跟踪事务并映射服务的交互以轻松发现性能瓶颈。", + "xpack.observability.section.apps.apm.title": "APM", + "xpack.observability.section.apps.logs.description": "集中任何源的日志。搜索、跟踪、自动化异常检测并可视化趋势,以便您可以更迅速地采取操作。", + "xpack.observability.section.apps.logs.title": "日志", + "xpack.observability.section.apps.metrics.description": "分析您的基础设施、应用和服务的指标。发现趋势、预测行为、接收异常告警等等。", + "xpack.observability.section.apps.metrics.title": "指标", + "xpack.observability.section.apps.uptime.description": "主动监测站点和服务的可用性。接收告警并更快地解决问题,从而优化用户体验。", + "xpack.observability.section.apps.uptime.title": "运行时间", + "xpack.observability.section.errorPanel": "尝试提取数据时发生错误。请重试", + "xpack.observability.seriesEditor.clone": "复制序列", + "xpack.observability.seriesEditor.edit": "编辑序列", + "xpack.observability.seriesEditor.hide": "隐藏序列", + "xpack.observability.seriesEditor.sampleDocuments": "在新选项卡中查看样例文档", + "xpack.observability.transactionRateLabel": "{value} tpm", + "xpack.observability.urlFilter.wildcard": "使用通配符 *{wildcard}*", + "xpack.observability.ux.addDataButtonLabel": "添加 UX 数据", + "xpack.observability.ux.coreVitals.average": "平均值", + "xpack.observability.ux.coreVitals.averageMessage": " 且小于 {bad}", + "xpack.observability.ux.coreVitals.cls": "累计布局偏移", + "xpack.observability.ux.coreVitals.cls.help": "累计布局偏移 (CLS):衡量视觉稳定性。为了提供良好的用户体验,页面的 CLS 应小于 0.1。", + "xpack.observability.ux.coreVitals.fid.help": "首次输入延迟用于衡量交互性。为了提供良好的用户体验,页面的 FID 应小于 100 毫秒。", + "xpack.observability.ux.coreVitals.fip": "首次输入延迟", + "xpack.observability.ux.coreVitals.good": "良好", + "xpack.observability.ux.coreVitals.is": "是", + "xpack.observability.ux.coreVitals.lcp": "最大内容绘制", + "xpack.observability.ux.coreVitals.lcp.help": "最大内容绘制用于衡量加载性能。为了提供良好的用户体验,LCP 应在页面首次开始加载后的 2.5 秒内执行。", + "xpack.observability.ux.coreVitals.legends.good": "良", + "xpack.observability.ux.coreVitals.legends.needsImprovement": "需改进", + "xpack.observability.ux.coreVitals.legends.poor": "差", + "xpack.observability.ux.coreVitals.less": "更少", + "xpack.observability.ux.coreVitals.more": "更多", + "xpack.observability.ux.coreVitals.noData": "没有可用数据。", + "xpack.observability.ux.coreVitals.paletteLegend.rankPercentage": "{labelsInd} ({ranksInd}%)", + "xpack.observability.ux.coreVitals.poor": "不良", + "xpack.observability.ux.coreVitals.takes": "需要", + "xpack.observability.ux.coreWebVitals": "网站体验核心指标", + "xpack.observability.ux.coreWebVitals.browser.support": "浏览器对网站体验核心指标的支持", + "xpack.observability.ux.coreWebVitals.service": "服务", + "xpack.observability.ux.dashboard.webCoreVitals.browser.help": "详细了解", + "xpack.observability.ux.dashboard.webCoreVitals.help": "详细了解", + "xpack.observability.ux.dashboard.webCoreVitals.helpAriaLabel": "帮助", + "xpack.observability.ux.dashboard.webCoreVitals.traffic": "已占 {trafficPerc} 的流量", + "xpack.observability.ux.dashboard.webVitals.palette.tooltip": "{percentage}% 的用户具有{exp }体验,因为 {title} {isOrTakes} {moreOrLess}于 {value}{averageMessage}。", + "xpack.observability.ux.service.help": "选择流量最高的 RUM 服务", "xpack.osquery.action_details.fetchError": "提取操作详情时出错", "xpack.osquery.action_policy_details.fetchError": "提取策略详情时出错", "xpack.osquery.action_results.errorSearchDescription": "搜索操作结果时发生错误", @@ -18952,6 +19914,8 @@ "xpack.osquery.actionResults.failSearchDescription": "无法获取操作结果", "xpack.osquery.actions.errorSearchDescription": "搜索所有操作时发生错误", "xpack.osquery.actions.failSearchDescription": "无法获取操作", + "xpack.osquery.addPack.pageTitle": "添加包", + "xpack.osquery.addPack.viewPacksListTitle": "查看所有包", "xpack.osquery.addSavedQuery.form.cancelButtonLabel": "取消", "xpack.osquery.addSavedQuery.form.saveQueryButtonLabel": "保存查询", "xpack.osquery.addSavedQuery.pageTitle": "添加已保存查询", @@ -18961,7 +19925,7 @@ "xpack.osquery.agent_policy_details.fetchError": "提取代理策略详情时出错", "xpack.osquery.agent_status.fetchError": "提取代理状态时出错", "xpack.osquery.agentDetails.fetchError": "提取代理详细信息时出错", - "xpack.osquery.agentPolicy.confirmModalCalloutTitle": "此操作将更新 {agentCount, plural, other {# 个代理}}", + "xpack.osquery.agentPolicy.confirmModalCalloutDescription": "Fleet 检测到所选{agentPolicyCount, plural, other {代理策略}}已由您的某些代理使用。由于此操作,Fleet 会将更新部署到所有使用此{agentPolicyCount, plural, other {代理策略}}的代理。", "xpack.osquery.agentPolicy.confirmModalCancelButtonLabel": "取消", "xpack.osquery.agentPolicy.confirmModalConfirmButtonLabel": "保存并部署更改", "xpack.osquery.agentPolicy.confirmModalDescription": "是否确定要继续?", @@ -18979,15 +19943,34 @@ "xpack.osquery.all_actions.fetchError": "提取操作时出错", "xpack.osquery.appNavigation.liveQueriesLinkText": "实时查询", "xpack.osquery.appNavigation.manageIntegrationButton": "管理集成", + "xpack.osquery.appNavigation.packsLinkText": "包", "xpack.osquery.appNavigation.savedQueriesLinkText": "已保存查询", "xpack.osquery.appNavigation.sendFeedbackButton": "发送反馈", + "xpack.osquery.breadcrumbs.addpacksPageTitle": "添加", "xpack.osquery.breadcrumbs.appTitle": "Osquery", + "xpack.osquery.breadcrumbs.editpacksPageTitle": "编辑", "xpack.osquery.breadcrumbs.liveQueriesPageTitle": "实时查询", "xpack.osquery.breadcrumbs.newLiveQueryPageTitle": "新建", "xpack.osquery.breadcrumbs.newSavedQueryPageTitle": "新建", "xpack.osquery.breadcrumbs.overviewPageTitle": "概览", + "xpack.osquery.breadcrumbs.packsPageTitle": "包", "xpack.osquery.breadcrumbs.savedQueriesPageTitle": "已保存查询", + "xpack.osquery.configUploader.exampleConfigLinkLabel": "示例配置", + "xpack.osquery.configUploader.initialPromptTextLabel": "选择或拖放 osquery 配置文件", + "xpack.osquery.configUploader.unsupportedFileTypeText": "文件类型 {fileType} 不受支持,请上传 {supportedFileTypes} 配置文件", "xpack.osquery.createScheduledQuery.agentPolicyAgentsCountText": "{count, plural, other {# 个代理}}已注册", + "xpack.osquery.deletePack.confirmationModal.body": "您即将删除此包。是否确定要执行此操作?", + "xpack.osquery.deletePack.confirmationModal.cancelButtonLabel": "取消", + "xpack.osquery.deletePack.confirmationModal.confirmButtonLabel": "确认", + "xpack.osquery.deletePack.confirmationModal.title": "是否确定要删除此包?", + "xpack.osquery.deletePack.successToastMessageText": "已成功删除包", + "xpack.osquery.deleteSavedQuery.confirmationModal.body": "您即将删除此查询。是否确定要执行此操作?", + "xpack.osquery.deleteSavedQuery.confirmationModal.cancelButtonLabel": "取消", + "xpack.osquery.deleteSavedQuery.confirmationModal.confirmButtonLabel": "确认", + "xpack.osquery.deleteSavedQuery.confirmationModal.title": "是否确定要删除此查询?", + "xpack.osquery.editPack.deletePackButtonLabel": "删除包", + "xpack.osquery.editPack.pageTitle": "编辑 {queryName}", + "xpack.osquery.editPack.viewPackListTitle": "查看 {queryName} 详细信息", "xpack.osquery.editSavedQuery.deleteSavedQueryButtonLabel": "删除查询", "xpack.osquery.editSavedQuery.deleteSuccessToastMessageText": "已成功删除已保存查询", "xpack.osquery.editSavedQuery.form.cancelButtonLabel": "取消", @@ -18995,14 +19978,26 @@ "xpack.osquery.editSavedQuery.pageTitle": "编辑“{savedQueryId}”", "xpack.osquery.editSavedQuery.successToastMessageText": "已成功更新“{savedQueryName}”查询", "xpack.osquery.editSavedQuery.viewSavedQueriesListTitle": "查看所有已保存查询", + "xpack.osquery.emptyState.addOsqueryManagerButton": "添加 Osquery 管理器", + "xpack.osquery.emptyState.pageDescription": "添加此集成来为 Elastic 代理运行并排定查询。", + "xpack.osquery.emptyState.pageTitle": "添加 Osquery 管理器", "xpack.osquery.features.liveQueriesSubFeatureName": "实时查询", "xpack.osquery.features.osqueryFeatureName": "Osquery", + "xpack.osquery.features.packsSubFeatureName": "包", "xpack.osquery.features.runSavedQueriesPrivilegeName": "运行已保存查询", "xpack.osquery.features.savedQueriesSubFeatureName": "已保存查询", + "xpack.osquery.fleetIntegration.osqueryConfig.accordionFieldLabel": "高级", + "xpack.osquery.fleetIntegration.osqueryConfig.configFieldError": "JSON 无效", + "xpack.osquery.fleetIntegration.osqueryConfig.configFieldLabel": "Osquery 配置", + "xpack.osquery.fleetIntegration.osqueryConfig.packConfigFilesErrorMessage": "不支持包配置文件。必须移除这些包:{packNames}。", + "xpack.osquery.fleetIntegration.osqueryConfig.restrictedOptionsErrorMessage": "不支持以下 osquery 选项,必须将其移除:{restrictedFlags}。", + "xpack.osquery.fleetIntegration.packsButtonText": "包", "xpack.osquery.fleetIntegration.runLiveQueriesButtonText": "运行实时查询", "xpack.osquery.fleetIntegration.saveIntegrationCalloutTitle": "保存用于访问如下选项的集成", "xpack.osquery.liveQueriesHistory.newLiveQueryButtonLabel": "新建实时查询", "xpack.osquery.liveQueriesHistory.pageTitle": "实时查询历史记录", + "xpack.osquery.liveQuery.permissionDeniedPromptBody": "要查看查询结果,请要求管理员将您的角色更新为具有 {logs} 索引的索引 {read} 权限。", + "xpack.osquery.liveQuery.permissionDeniedPromptTitle": "权限被拒绝", "xpack.osquery.liveQuery.queryForm.largeQueryError": "查询过大(最多 {maxLength} 个字符)", "xpack.osquery.liveQueryActionResults.summary.agentsQueriedLabelText": "已查询 {count, plural, other {# 个代理}}", "xpack.osquery.liveQueryActionResults.summary.expiredLabelText": "已过期", @@ -19031,25 +20026,95 @@ "xpack.osquery.liveQueryForm.steps.queryStepHeading": "输入查询", "xpack.osquery.liveQueryForm.steps.resultsStepHeading": "检查结果", "xpack.osquery.liveQueryResults.table.agentColumnTitle": "代理", + "xpack.osquery.liveQueryResults.table.fieldMappedLabel": "字段已映射到", "xpack.osquery.newLiveQuery.pageTitle": "新建实时查询", "xpack.osquery.newLiveQuery.viewLiveQueriesHistoryTitle": "查看实时查询历史记录", + "xpack.osquery.newPack.successToastMessageText": "已成功创建“{packName}”包", "xpack.osquery.newSavedQuery.successToastMessageText": "已成功保存“{savedQueryId}”查询", "xpack.osquery.osquery_integration.fetchError": "提取 osquery 集成时出错", "xpack.osquery.osquery_policies.fetchError": "提取 osquery 策略时出错", "xpack.osquery.osquerySchemaLinkLabel": "Osquery 架构", + "xpack.osquery.pack.form.agentPoliciesFieldLabel": "代理策略", + "xpack.osquery.pack.form.cancelButtonLabel": "取消", + "xpack.osquery.pack.form.descriptionFieldLabel": "描述", + "xpack.osquery.pack.form.ecsMappingSection.description": "使用下面的字段将此查询的结果映射到 ECS 字段。", + "xpack.osquery.pack.form.ecsMappingSection.title": "ECS 映射", + "xpack.osquery.pack.form.nameFieldLabel": "名称", + "xpack.osquery.pack.form.nameFieldRequiredErrorMessage": "“名称”是必填字段", + "xpack.osquery.pack.form.savePackButtonLabel": "保存包", + "xpack.osquery.pack.form.updatePackButtonLabel": "更新包", + "xpack.osquery.pack.queriesForm.addQueryButtonLabel": "添加查询", + "xpack.osquery.pack.queriesTable.actionsColumnTitle": "操作", + "xpack.osquery.pack.queriesTable.deleteActionAriaLabel": "删除 {queryName}", + "xpack.osquery.pack.queriesTable.editActionAriaLabel": "编辑 {queryName}", + "xpack.osquery.pack.queriesTable.idColumnTitle": "ID", + "xpack.osquery.pack.queriesTable.intervalColumnTitle": "时间间隔 (s)", + "xpack.osquery.pack.queriesTable.lastResultsColumnTitle": "最后结果", + "xpack.osquery.pack.queriesTable.osqueryVersionAllLabel": "全部", + "xpack.osquery.pack.queriesTable.platformColumnTitle": "平台", + "xpack.osquery.pack.queriesTable.queryColumnTitle": "查询", + "xpack.osquery.pack.queriesTable.versionColumnTitle": "最低 Osquery 版本", + "xpack.osquery.pack.queriesTable.viewDiscoverResultsActionAriaLabel": "在 Discover 中查看", + "xpack.osquery.pack.queriesTable.viewLensResultsActionAriaLabel": "在 Lens 中查看", + "xpack.osquery.pack.queriesTable.viewLogsErrorsActionAriaLabel": "在日志中查看", + "xpack.osquery.pack.queriesTable.viewResultsColumnTitle": "查看结果", + "xpack.osquery.pack.queryFlyoutForm.cancelButtonLabel": "取消", + "xpack.osquery.pack.queryFlyoutForm.deleteECSMappingRowButtonAriaLabel": "删除 ECS 映射行", + "xpack.osquery.pack.queryFlyoutForm.descriptionFieldLabel": "描述", + "xpack.osquery.pack.queryFlyoutForm.ecsFieldRequiredErrorMessage": "ECS 字段必填。", + "xpack.osquery.pack.queryFlyoutForm.emptyIdError": "“ID”必填", + "xpack.osquery.pack.queryFlyoutForm.emptyQueryError": "“查询”是必填字段", + "xpack.osquery.pack.queryFlyoutForm.idFieldLabel": "ID", + "xpack.osquery.pack.queryFlyoutForm.intervalFieldLabel": "时间间隔 (s)", + "xpack.osquery.pack.queryFlyoutForm.invalidIdError": "字符必须是数字字母、_ 或 -", + "xpack.osquery.pack.queryFlyoutForm.invalidIntervalField": "时间间隔值必须为正数", + "xpack.osquery.pack.queryFlyoutForm.osqueryResultFieldRequiredErrorMessage": "Osquery 结果必填。", + "xpack.osquery.pack.queryFlyoutForm.osqueryResultFieldValueMissingErrorMessage": "当前查询不返回 {columnName} 字段", + "xpack.osquery.pack.queryFlyoutForm.platformFieldLabel": "平台", + "xpack.osquery.pack.queryFlyoutForm.platformLinusLabel": "macOS", + "xpack.osquery.pack.queryFlyoutForm.platformMacOSLabel": "Linux", + "xpack.osquery.pack.queryFlyoutForm.platformWindowsLabel": "Windows", + "xpack.osquery.pack.queryFlyoutForm.queryFieldLabel": "查询", + "xpack.osquery.pack.queryFlyoutForm.saveButtonLabel": "保存", + "xpack.osquery.pack.queryFlyoutForm.uniqueIdError": "ID 必须唯一", + "xpack.osquery.pack.queryFlyoutForm.versionFieldLabel": "最低 Osquery 版本", + "xpack.osquery.pack.table.activatedSuccessToastMessageText": "已成功激活“{packName}”包", + "xpack.osquery.pack.table.deactivatedSuccessToastMessageText": "已成功停用“{packName}”包", + "xpack.osquery.pack.table.deleteQueriesButtonLabel": "删除 {queriesCount, plural, other {# 个查询}}", + "xpack.osquery.packDetails.pageTitle": "{queryName} 详细信息", + "xpack.osquery.packDetails.viewAllPackListTitle": "查看所有包", + "xpack.osquery.packDetailsPage.editQueryButtonLabel": "编辑", + "xpack.osquery.packDetailsPage.kpis.policiesLabelText": "策略", + "xpack.osquery.packList.addPackButtonLabel": "添加包", + "xpack.osquery.packList.pageTitle": "包", + "xpack.osquery.packs.table.activeColumnTitle": "活动", + "xpack.osquery.packs.table.createdByColumnTitle": "创建者", + "xpack.osquery.packs.table.nameColumnTitle": "名称", + "xpack.osquery.packs.table.numberOfQueriesColumnTitle": "查询数目", + "xpack.osquery.packs.table.policyColumnTitle": "策略", "xpack.osquery.packUploader.examplePacksLinkLabel": "示例包", "xpack.osquery.packUploader.initialPromptTextLabel": "选择或拖放 osquery 包配置文件", "xpack.osquery.packUploader.unsupportedFileTypeText": "文件类型 {fileType} 不受支持,请上传 {supportedFileTypes} 配置文件", "xpack.osquery.permissionDeniedErrorMessage": "您无权访问此页面。", "xpack.osquery.permissionDeniedErrorTitle": "权限被拒绝", + "xpack.osquery.queriesStatusTable.agentsLabelText": "{count, plural, other {代理}}", + "xpack.osquery.queriesStatusTable.documentLabelText": "{count, plural, other {文档}}", + "xpack.osquery.queriesStatusTable.errorsLabelText": "{count, plural, other {错误}}", + "xpack.osquery.queriesTable.osqueryVersionAllLabel": "全部", "xpack.osquery.queryFlyoutForm.addFormTitle": "附加下一个查询", + "xpack.osquery.queryFlyoutForm.cancelButtonLabel": "取消", "xpack.osquery.queryFlyoutForm.editFormTitle": "编辑查询", + "xpack.osquery.queryFlyoutForm.saveButtonLabel": "保存", + "xpack.osquery.queryFlyoutForm.versionFieldOptionalLabel": "(可选)", + "xpack.osquery.queryPlaygroundFlyout.title": "测试查询", "xpack.osquery.results.errorSearchDescription": "搜索所有结果时发生错误", "xpack.osquery.results.failSearchDescription": "无法获取结果", "xpack.osquery.results.fetchError": "提取结果时出错", "xpack.osquery.results.multipleAgentsResponded": "{agentsResponded, plural, other {# 个代理已}}响应,未报告任何 osquery 数据。", "xpack.osquery.savedQueries.dropdown.searchFieldLabel": "从已保存查询构建(可选)", "xpack.osquery.savedQueries.dropdown.searchFieldPlaceholder": "搜索已保存查询", + "xpack.osquery.savedQueries.form.packConfigSection.description": "下面所列选项是可选的,只在查询分配给包时应用。", + "xpack.osquery.savedQueries.form.packConfigSection.title": "包配置", "xpack.osquery.savedQueries.table.actionsColumnTitle": "操作", "xpack.osquery.savedQueries.table.createdByColumnTitle": "创建者", "xpack.osquery.savedQueries.table.descriptionColumnTitle": "描述", @@ -19060,6 +20125,9 @@ "xpack.osquery.savedQueryList.pageTitle": "已保存查询", "xpack.osquery.savedQueryList.queriesTable.editActionAriaLabel": "编辑 {savedQueryName}", "xpack.osquery.savedQueryList.queriesTable.runActionAriaLabel": "运行 {savedQueryName}", + "xpack.osquery.scheduledQueryErrorsTable.agentIdColumnTitle": "代理 ID", + "xpack.osquery.scheduledQueryErrorsTable.errorColumnTitle": "错误", + "xpack.osquery.updatePack.successToastMessageText": "已成功更新“{packName}”包", "xpack.osquery.viewSavedQuery.pageTitle": "“{savedQueryId}”详细信息", "xpack.painlessLab.apiReferenceButtonLabel": "API 参考", "xpack.painlessLab.context.defaultLabel": "脚本结果将转换成字符串", @@ -19073,8 +20141,6 @@ "xpack.painlessLab.contextScoreLabel": "分数", "xpack.painlessLab.contextTabLabel": "上下文", "xpack.painlessLab.displayName": "Painless 实验室", - "xpack.painlessLab.displayNameBetaLabel": "公测版", - "xpack.painlessLab.displayNameBetaTooltipText": "此功能在未来的版本中可能会变化很大", "xpack.painlessLab.documentFieldLabel": "样例文档 (JSON)", "xpack.painlessLab.documentFieldTooltipText": "您的脚本可以访问此文档的字段", "xpack.painlessLab.flyoutDocLink": "API 文档", @@ -19119,6 +20185,10 @@ "xpack.remoteClusters.connectedStatus.notConnectedToolTip": "确保已为种子节点配置远程集群的传输端口,而非 http 端口。", "xpack.remoteClusters.deleteRemoteCluster.noRemoteClusterErrorMessage": "没有该名称的远程集群。", "xpack.remoteClusters.deleteRemoteCluster.unknownRemoteClusterErrorMessage": "无法删除集群,ES 仍返回信息。", + "xpack.remoteClusters.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "xpack.remoteClusters.deprecations.enabled.manualStepTwoMessage": "将“xpack.remote_clusters.enabled”设置更改为“xpack.remote_clusters.ui.enabled”。", + "xpack.remoteClusters.deprecations.enabledMessage": "要禁止用户访问远程集群 UI,请使用“xpack.remote_clusters.ui.enabled”设置,而不是“xpack.remote_clusters.enabled”。", + "xpack.remoteClusters.deprecations.enabledTitle": "设置“xpack.remote_clusters.enabled”已过时", "xpack.remoteClusters.detailPanel.closeButtonLabel": "关闭", "xpack.remoteClusters.detailPanel.connectedLabel": "连接", "xpack.remoteClusters.detailPanel.connectedNodesLabel": "已连接节点", @@ -19261,7 +20331,7 @@ "xpack.reporting.apiClient.unknownError": "报告作业 {job} 失败。错误未知。", "xpack.reporting.breadcrumb": "Reporting", "xpack.reporting.browsers.chromium.errorDetected": "报告时遇到错误:{err}", - "xpack.reporting.browsers.chromium.pageErrorDetected": "报告时在页面上遇到错误:{err}", + "xpack.reporting.browsers.chromium.pageErrorDetected": "Reporting 在将忽略的页面上遇到未捕获的错误:{err}", "xpack.reporting.chromiumDriver.disallowedOutgoingUrl": "收到禁止的传出 URL:“{interceptedUrl}”。请求失败,关闭浏览器。", "xpack.reporting.chromiumDriver.failedToCompleteRequest": "无法完成请求:{error}", "xpack.reporting.chromiumDriver.failedToCompleteRequestUsingHeaders": "无法完成使用 headers 的请求:{error}", @@ -19272,12 +20342,36 @@ "xpack.reporting.dashboard.failedCsvDownloadTitle": "CSV 下载失败。", "xpack.reporting.deprecations.migrateIndexIlmPolicy.manualStepOneMessage": "使用索引设置 API 更新所有报告索引以使用“{reportingIlmPolicy}”策略。", "xpack.reporting.deprecations.migrateIndexIlmPolicyActionMessage": "新报告索引将由预配的 ILM 策略“{reportingIlmPolicy}”管理。必须编辑此策略,才能管理报告生命周期。此更改适用于加有“{indexPattern}”前缀的所有索引。", + "xpack.reporting.deprecations.migrateIndexIlmPolicyActionTitle": "找到由定制 ILM 策略管理的报告索引。", + "xpack.reporting.deprecations.reportingRole.forbiddenErrorCorrectiveAction": "请确保您分配有“manage_security”集群权限。", + "xpack.reporting.deprecations.reportingRole.forbiddenErrorMessage": "您没有足够的权限来修复此弃用。", + "xpack.reporting.deprecations.reportingRole.unknownErrorCorrectiveAction": "请检查 Kibana 日志了解更多详情。", + "xpack.reporting.deprecations.reportingRole.unknownErrorMessage": "无法执行弃用检查。请检查 Kibana 日志了解更多详情。", + "xpack.reporting.deprecations.reportingRoleMappings.manualStepFour": "从所有角色映射中移除“reporting_user”角色,然后添加定制角色。受影响的角色映射为:{roleMappings}。", + "xpack.reporting.deprecations.reportingRoleMappings.manualStepOne": "在 kibana.yml 中设置“xpack.reporting.roles.enabled: false”。", + "xpack.reporting.deprecations.reportingRoleMappings.manualStepThree": "创建具有 Kibana 权限的定制角色以授予对报告的访问权限。", + "xpack.reporting.deprecations.reportingRoleMappings.manualStepTwo": "移除 kibana.yml 中的“xpack.reporting.roles.allow”(如果存在)。", + "xpack.reporting.deprecations.reportingRoleMappingsMessage": "现有角色已映射到用于报告权限的过时角色", + "xpack.reporting.deprecations.reportingRoleMappingsTitle": "“{reportingUserRoleName}”角色已过时:检查角色映射", + "xpack.reporting.deprecations.reportingRoles.description": "使用 Kibana 应用程序权限来授予报告权限。使用“{fromPath}.roles.allow”来授予报告权限已过时。在未来版本中,“{fromPath}.roles.enabled”设置默认为 false。", + "xpack.reporting.deprecations.reportingRoles.manualStepOne": "在 kibana.yml 中将“xpack.reporting.roles.enabled”设置为“false”。", + "xpack.reporting.deprecations.reportingRoles.manualStepOnePartOne": "在 kibana.yml 中将“xpack.reporting.roles.allow”移除为“false”(如果存在)。", + "xpack.reporting.deprecations.reportingRoles.manualStepThree": "通过分配新角色之一向用户授权报告权限。分配到在“xpack.reporting.roles.allow”中指定的报告角色的用户将不再具有报告权限,必须为他们分配基于应用程序权限的角色。", + "xpack.reporting.deprecations.reportingRoles.manualStepTwo": "从**“管理”>“安全性”>“角色”**创建一个或多个针对报告授予 Kibana 应用程序权限的角色。", + "xpack.reporting.deprecations.reportingRoles.title": "设置“{fromPath}.roles”已过时", + "xpack.reporting.deprecations.reportingRoleUsers.manualStepFour": "从所有用户中移除“reporting_user”角色,然后添加定制角色。受影响的用户为:{usersRoles}。", + "xpack.reporting.deprecations.reportingRoleUsers.manualStepOne": "在 kibana.yml 中设置“xpack.reporting.roles.enabled: false”。", + "xpack.reporting.deprecations.reportingRoleUsers.manualStepThree": "创建具有 Kibana 权限的定制角色以授予对 Reporting 的访问权限。", + "xpack.reporting.deprecations.reportingRoleUsers.manualStepTwo": "移除 kibana.yml 中的“xpack.reporting.roles.allow”(如果存在)。", + "xpack.reporting.deprecations.reportingRoleUsersMessage": "现有用户具有由过时设置授予的 Reporting 权限。", + "xpack.reporting.deprecations.reportingRoleUsersTitle": "“{reportingUserRoleName}”角色已过时:检查用户角色", "xpack.reporting.diagnostic.browserCrashed": "启动期间浏览器已异常退出", "xpack.reporting.diagnostic.browserErrored": "启动时浏览器进程引发了错误", "xpack.reporting.diagnostic.browserMissingDependency": "由于缺少系统依赖项,浏览器无法正常启动。请参见 {url}", "xpack.reporting.diagnostic.browserMissingFonts": "浏览器找不到默认字体。请参见 {url} 以解决此问题。", "xpack.reporting.diagnostic.noUsableSandbox": "无法使用 Chromium 沙盒。您自行承担使用“xpack.reporting.capture.browser.chromium.disableSandbox”禁用此项的风险。请参见 {url}", "xpack.reporting.diagnostic.screenshotFailureMessage": "我们无法拍摄 Kibana 安装的屏幕截图。", + "xpack.reporting.errorHandler.unknownError": "未知错误", "xpack.reporting.exportTypes.common.failedToDecryptReportJobDataErrorMessage": "无法解密报告作业数据。请确保已设置 {encryptionKey},然后重新生成此报告。{err}", "xpack.reporting.exportTypes.common.missingJobHeadersErrorMessage": "作业标头缺失", "xpack.reporting.exportTypes.csv.executeJob.dateFormateSetting": "Kibana 高级设置“{dateFormatTimezone}”已设置为“浏览器”。日期将格式化为 UTC 以避免混淆。", @@ -19288,6 +20382,7 @@ "xpack.reporting.exportTypes.printablePdf.logoDescription": "由 Elastic 提供支持", "xpack.reporting.exportTypes.printablePdf.pagingDescription": "第 {currentPage} 页,共 {pageCount} 页", "xpack.reporting.jobsQuery.deleteError": "无法删除报告:{error}", + "xpack.reporting.jobsQuery.infoError.unauthorizedErrorMessage": "抱歉,您无权查看 {jobType} 信息", "xpack.reporting.jobStatusDetail.attemptXofY": "尝试 {attempts} 次,最多可尝试 {max_attempts} 次。", "xpack.reporting.jobStatusDetail.deprecatedText": "这是已弃用的导出类型。此报告的自动化将需要重新创建,才能与未来版本的 Kibana 兼容。", "xpack.reporting.jobStatusDetail.errorText": "查看报告信息以了解错误详情。", @@ -19373,6 +20468,11 @@ "xpack.reporting.panelContent.saveWorkDescription": "请在生成报告之前保存您的工作。", "xpack.reporting.panelContent.successfullyQueuedReportNotificationDescription": "在 {path} 中跟踪其进度", "xpack.reporting.panelContent.successfullyQueuedReportNotificationTitle": "已为 {objectType} 排队报告", + "xpack.reporting.panelContent.unsavedStateAndExceedsMaxLengthDescription": "无法复制此 URL。", + "xpack.reporting.panelContent.unsavedStateAndExceedsMaxLengthTitle": "URL 太长", + "xpack.reporting.panelContent.unsavedStateAndExceedsMaxLengthTrySaveDescription": "无法复制此 URL。尝试保存您的工作。", + "xpack.reporting.panelContent.unsavedStateErrorText": "在复制此 URL 之前保存您的工作。", + "xpack.reporting.panelContent.unsavedStateErrorTitle": "未保存的工作", "xpack.reporting.pdfFooterImageDescription": "要在 PDF 的页脚中使用的定制图像", "xpack.reporting.pdfFooterImageLabel": "PDF 页脚图像", "xpack.reporting.publicNotifier.csvContainsFormulas.formulaReportMessage": "报告包含电子表格应用程序可解释为公式的字符。", @@ -19395,10 +20495,14 @@ "xpack.reporting.registerFeature.reportingDescription": "管理您从 Discover、Visualize 和 Dashboard 生成的报告。", "xpack.reporting.registerFeature.reportingTitle": "Reporting", "xpack.reporting.screencapture.browserWasClosed": "浏览器已意外关闭!有关更多信息,请查看服务器日志。", + "xpack.reporting.screencapture.couldntFinishRendering": "尝试等候 {count} 个可视化完成渲染时发生错误。{error}", + "xpack.reporting.screencapture.couldntLoadKibana": "尝试打开 Kibana URL 时发生错误:{error}", "xpack.reporting.screencapture.injectCss": "尝试为 Reporting 更新 Kibana CSS 时发生错误。{error}", "xpack.reporting.screencapture.injectingCss": "正在注入定制 css", "xpack.reporting.screencapture.logWaitingForElements": "等候元素或项目计数属性;或未发现要中断", "xpack.reporting.screencapture.noElements": "读取页面以获取可视化面板时发生了错误:未找到任何面板。", + "xpack.reporting.screencapture.readVisualizationsError": "尝试读取页面以获取可视化面板信息时发生错误:{error}", + "xpack.reporting.screencapture.renderErrorsFound": "找到 {count} 条错误消息。请参阅报告对象了解更多信息。", "xpack.reporting.screencapture.renderIsComplete": "渲染已完成", "xpack.reporting.screencapture.screenshotsTaken": "已捕获的屏幕截图:{numScreenhots}", "xpack.reporting.screencapture.takingScreenshots": "正在捕获屏幕截图", @@ -19546,6 +20650,10 @@ "xpack.rollupJobs.deleteAction.errorTitle": "删除汇总/打包作业时出错", "xpack.rollupJobs.deleteAction.successMultipleNotificationTitle": "已删除 {count} 个汇总/打包作业", "xpack.rollupJobs.deleteAction.successSingleNotificationTitle": "已删除汇总/打包作业“{jobId}”", + "xpack.rollupJobs.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "xpack.rollupJobs.deprecations.enabled.manualStepTwoMessage": "将“xpack.rollup.enabled”设置更改为“xpack.rollup.ui.enabled”。", + "xpack.rollupJobs.deprecations.enabledMessage": "要禁止用户访问汇总/打包作业 UI,请使用“xpack.rollup.ui.enabled”设置,而不是“xpack.rollup.enabled”。", + "xpack.rollupJobs.deprecations.enabledTitle": "设置“xpack.rollup.enabled”已过时", "xpack.rollupJobs.detailPanel.jobActionMenu.buttonLabel": "管理", "xpack.rollupJobs.detailPanel.loadingLabel": "正在加载汇总/打包作业……", "xpack.rollupJobs.detailPanel.notFoundLabel": "未找到汇总/打包作业", @@ -19800,10 +20908,29 @@ "xpack.security.conflictingSessionError": "抱歉,您已有活动的 Kibana 会话。如果希望开始新的会话,请首先从现有会话注销。", "xpack.security.copyTokenField.copyButton": "复制到剪贴板", "xpack.security.copyTokenField.tokenLabel": "令牌", + "xpack.security.deprecations.authcProviders.manualSteps1": "从 kibana.yml 中移除“xpack.security.authc.providers”设置。", + "xpack.security.deprecations.authcProviders.manualSteps2": "使用新对象格式添加身份验证提供程序。", + "xpack.security.deprecations.authcProvidersMessage": "使用新对象格式,而不是提供程序类型数组。", + "xpack.security.deprecations.authcProvidersTitle": "“xpack.security.authc.providers”的数组格式已过时", + "xpack.security.deprecations.basicAndTokenProviders.manualSteps1": "在 kibana.yml 中,从“xpack.security.authc.providers”中移除“{basicProvider}”提供程序。", + "xpack.security.deprecations.basicAndTokenProvidersMessage": "仅使用这其中的一个提供程序。同时设置两个提供程序时,Kibana 仅使用“{tokenProvider}”提供程序。", + "xpack.security.deprecations.basicAndTokenProvidersTitle": "在“xpack.security.authc.providers”中同时使用“{basicProvider}”和“{tokenProvider}”无效", + "xpack.security.deprecations.kibanaUser.deprecationMessage": "使用“{adminRoleName}”角色授予对所有工作区中的所有 Kibana 功能的访问权限。", + "xpack.security.deprecations.kibanaUser.deprecationTitle": "“{userRoleName}”角色已过时", + "xpack.security.deprecations.kibanaUser.forbiddenErrorCorrectiveAction": "请确保您分配有“manage_security”集群权限。", + "xpack.security.deprecations.kibanaUser.forbiddenErrorMessage": "您没有足够的权限来修复此弃用。", + "xpack.security.deprecations.kibanaUser.roleMappingsDeprecationCorrectiveAction": "从所有角色映射中移除“{userRoleName}”角色,然后添加“{adminRoleName}”角色。受影响的角色映射为:{roleMappings}。", + "xpack.security.deprecations.kibanaUser.unknownErrorCorrectiveAction": "请检查 Kibana 日志了解更多详情。", + "xpack.security.deprecations.kibanaUser.unknownErrorMessage": "无法执行弃用检查。请检查 Kibana 日志了解更多详情。", + "xpack.security.deprecations.kibanaUser.usersDeprecationCorrectiveAction": "从所有用户中移除“{userRoleName}”角色,然后添加“{adminRoleName}”角色。受影响的用户为:{users}。", + "xpack.security.deprecations.maxRedirectURLSize.manualSteps1": "从 kibana.yml 中移除“xpack.security.authc.providers.saml.<provider-name>.maxRedirectURLSize”。", + "xpack.security.deprecations.maxRedirectURLSizeMessage": "将不再使用此设置。", + "xpack.security.deprecations.maxRedirectURLSizeTitle": "“xpack.security.authc.providers.saml.<provider-name>.maxRedirectURLSize”无效", "xpack.security.formFlyout.cancelButton": "取消", "xpack.security.loggedOut.login": "登录", "xpack.security.loggedOut.title": "已成功退出", "xpack.security.loggedOutAppTitle": "已注销", + "xpack.security.login.authenticationErrorDescription": "发生意外身份验证错误。请重新登录。", "xpack.security.login.basicLoginForm.logInButtonLabel": "登录", "xpack.security.login.basicLoginForm.passwordFormRowLabel": "密码", "xpack.security.login.basicLoginForm.unknownErrorMessage": "我们无法使您登录。请重试。", @@ -20130,7 +21257,6 @@ "xpack.security.management.roleMappings.roleTemplates": "{templateCount, plural, other {# 个角色模板}}已定义", "xpack.security.management.roleMappingsTitle": "角色映射", "xpack.security.management.roles.actionsColumnName": "操作", - "xpack.security.management.roles.cloneRoleActionName": "克隆 {roleName}", "xpack.security.management.roles.confirmDelete.cancelButtonLabel": "取消", "xpack.security.management.roles.confirmDelete.deleteButtonLabel": "删除", "xpack.security.management.roles.confirmDelete.removingRolesDescription": "您即将删除以下角色:", @@ -20141,7 +21267,6 @@ "xpack.security.management.roles.deleteSelectedRolesButtonLabel": "删除 {numSelected} 个角色{numSelected, plural, other {}}", "xpack.security.management.roles.deletingRolesWarningMessage": "此操作无法撤消。", "xpack.security.management.roles.deniedPermissionTitle": "您需要用于管理角色的权限", - "xpack.security.management.roles.editRoleActionName": "编辑 {roleName}", "xpack.security.management.roles.fetchingRolesErrorMessage": "获取用户时出错:{message}", "xpack.security.management.roles.nameColumnName": "角色", "xpack.security.management.roles.noIndexPatternsPermission": "您需要访问可用索引模式列表的权限。", @@ -20282,6 +21407,10 @@ "xpack.security.overwrittenSession.continueAsUserText": "作为 {username} 继续", "xpack.security.overwrittenSession.title": "您以前以其他用户身份登录。", "xpack.security.overwrittenSessionAppTitle": "已覆盖会话", + "xpack.security.privilegeDeprecationsService.error.retrievingRoles.message": "检索角色以了解权限弃用时出错:{message}", + "xpack.security.privilegeDeprecationsService.error.title": "权限弃用服务中出现错误", + "xpack.security.privilegeDeprecationsService.error.unauthorized.message": "您必须具有 'manage_security' 集群权限才能修复角色弃用。", + "xpack.security.privilegeDeprecationsService.manualSteps.message": "用户需要具有“manage_security”集群权限才能执行此检查。", "xpack.security.registerFeature.securitySettingsDescription": "控制访问者及其可以执行的任务。", "xpack.security.registerFeature.securitySettingsTitle": "管理权限", "xpack.security.resetSession.description": "返回上一页面或以其他用户身份登录。", @@ -20305,6 +21434,7 @@ "xpack.security.users.breadcrumb": "用户", "xpack.security.users.editUserPage.createBreadcrumb": "创建", "xpack.securitySolution.accessibility.tooltipWithKeyboardShortcut.pressTooltipLabel": "按", + "xpack.securitySolution.actionsContextMenu.label": "打开", "xpack.securitySolution.add_filter_to_global_search_bar.filterForValueHoverAction": "筛留值", "xpack.securitySolution.add_filter_to_global_search_bar.filterOutValueHoverAction": "筛除值", "xpack.securitySolution.administration.list.beta": "公测版", @@ -20321,8 +21451,13 @@ "xpack.securitySolution.alertDetails.noIndicatorEnrichmentsDescription": "使用任何指标匹配规则都未找到威胁情报指标。", "xpack.securitySolution.alertDetails.noInvestigationEnrichmentsDescription": "我们未发现字段值具有在过去 30 天中我们默认搜索的威胁情报源提供的其他信息。", "xpack.securitySolution.alertDetails.noInvestigationEnrichmentsTitle": "未找到威胁情报扩充", + "xpack.securitySolution.alertDetails.noRiskDataDescription": "未找到此告警的主机风险数据", "xpack.securitySolution.alertDetails.overview": "概览", "xpack.securitySolution.alertDetails.overview.documentSummary": "文档摘要", + "xpack.securitySolution.alertDetails.overview.enrichedDataTitle": "扩充数据", + "xpack.securitySolution.alertDetails.overview.hostDataTooltipContent": "仅在其对主机可用时才会显示风险分类。确保在您的环境中启用了 {hostsRiskScoreDocumentationLink}。", + "xpack.securitySolution.alertDetails.overview.hostRiskDataTitle": "主机风险数据", + "xpack.securitySolution.alertDetails.overview.hostsRiskScoreLink": "主机风险分数", "xpack.securitySolution.alertDetails.overview.investigationGuide": "调查指南", "xpack.securitySolution.alertDetails.refresh": "刷新", "xpack.securitySolution.alertDetails.summary.readLess": "阅读更少内容", @@ -20366,6 +21501,31 @@ "xpack.securitySolution.anomaliesTable.table.anomaliesTooltip": "异常表无法通过 SIEM 全局 KQL 搜索进行筛选。", "xpack.securitySolution.anomaliesTable.table.showingDescription": "正在显示", "xpack.securitySolution.anomaliesTable.table.unit": "个{totalCount, plural, other {异常}}", + "xpack.securitySolution.artifactCard.comments.label.hide": "隐藏注释 ({count})", + "xpack.securitySolution.artifactCard.comments.label.show": "显示注释 ({count})", + "xpack.securitySolution.artifactCard.conditions.and": "且", + "xpack.securitySolution.artifactCard.conditions.existsOperator": "存在", + "xpack.securitySolution.artifactCard.conditions.linux": "Linux", + "xpack.securitySolution.artifactCard.conditions.listOperator": "包含在", + "xpack.securitySolution.artifactCard.conditions.macos": "Mac", + "xpack.securitySolution.artifactCard.conditions.matchAnyOperator": "属于", + "xpack.securitySolution.artifactCard.conditions.matchOperator": "是", + "xpack.securitySolution.artifactCard.conditions.nestedOperator": "具有", + "xpack.securitySolution.artifactCard.conditions.os": "OS", + "xpack.securitySolution.artifactCard.conditions.wildcardOperator": "匹配", + "xpack.securitySolution.artifactCard.conditions.windows": "Windows", + "xpack.securitySolution.artifactCard.created": "创建时间", + "xpack.securitySolution.artifactCard.createdBy": "创建者", + "xpack.securitySolution.artifactCard.globalEffectScope": "已全局应用", + "xpack.securitySolution.artifactCard.lastUpdated": "上次更新时间", + "xpack.securitySolution.artifactCard.lastUpdatedBy": "更新者", + "xpack.securitySolution.artifactCard.policyEffectScope": "已应用于 {count} 个{count, plural, other {策略}}", + "xpack.securitySolution.artifactCard.policyEffectScope.title": "已应用于以下{count, plural, other {策略}}", + "xpack.securitySolution.artifactCardGrid.assignmentColumn": "分配", + "xpack.securitySolution.artifactCardGrid.DescriptionColumn": "描述", + "xpack.securitySolution.artifactCardGrid.nameColumn": "名称", + "xpack.securitySolution.artifactExpandableCard.collpase": "折叠", + "xpack.securitySolution.artifactExpandableCard.expand": "展开", "xpack.securitySolution.auditd.abortedAuditStartupDescription": "已中止审计启动", "xpack.securitySolution.auditd.accessErrorDescription": "访问错误", "xpack.securitySolution.auditd.accessPermissionDescription": "访问权限", @@ -20508,46 +21668,9 @@ "xpack.securitySolution.beatFields.errorSearchDescription": "获取 Beat 字段时发生错误", "xpack.securitySolution.beatFields.failSearchDescription": "无法对 Beat 字段执行搜索", "xpack.securitySolution.callouts.dismissButton": "关闭", - "xpack.securitySolution.cases.allCases.actions": "操作", - "xpack.securitySolution.cases.allCases.comments": "注释", - "xpack.securitySolution.cases.badge.readOnly.text": "只读", - "xpack.securitySolution.cases.badge.readOnly.tooltip": "无法创建或编辑案例", - "xpack.securitySolution.cases.caseFeatureNoPermissionsMessage": "要查看案例,必须对 Kibana 工作区中的案例功能有权限。有关详细信息,请联系您的 Kibana 管理员。", - "xpack.securitySolution.cases.caseFeatureNoPermissionsTitle": "需要 Kibana 功能权限", "xpack.securitySolution.cases.caseTable.caseDetailsLinkAria": "单击以访问标题为 {detailName} 的案例", - "xpack.securitySolution.cases.caseTable.openCases": "未结案例", - "xpack.securitySolution.cases.caseView.backLabel": "返回到案例", "xpack.securitySolution.cases.caseView.breadcrumb": "创建", - "xpack.securitySolution.cases.caseView.cancel": "取消", - "xpack.securitySolution.cases.caseView.caseName": "案例名称", - "xpack.securitySolution.cases.caseView.closeCase": "关闭案例", - "xpack.securitySolution.cases.caseView.closedOn": "关闭日期", - "xpack.securitySolution.cases.caseView.connectors": "外部事件管理系统", - "xpack.securitySolution.cases.caseView.create": "创建新案例", - "xpack.securitySolution.cases.caseView.createCase": "创建案例", - "xpack.securitySolution.cases.caseView.description": "描述", - "xpack.securitySolution.cases.caseView.description.save": "保存", - "xpack.securitySolution.cases.caseView.edit": "编辑", - "xpack.securitySolution.cases.caseView.editConnector": "更改外部事件管理系统", - "xpack.securitySolution.cases.caseView.goToDocumentationButton": "查看文档", - "xpack.securitySolution.cases.caseView.name": "名称", - "xpack.securitySolution.cases.caseView.noReportersAvailable": "没有报告者。", - "xpack.securitySolution.cases.caseView.noTags": "当前没有为此案例分配标签。", - "xpack.securitySolution.cases.caseView.openCase": "创建案例", - "xpack.securitySolution.cases.caseView.openedOn": "打开时间", - "xpack.securitySolution.cases.caseView.optional": "可选", - "xpack.securitySolution.cases.caseView.particpantsLabel": "参与者", - "xpack.securitySolution.cases.caseView.reporterLabel": "报告者", "xpack.securitySolution.cases.caseView.sendAlertToTimelineTooltip": "在时间线中调查", - "xpack.securitySolution.cases.caseView.tags": "标签", - "xpack.securitySolution.cases.caseView.to": "到", - "xpack.securitySolution.cases.caseView.unknown": "未知", - "xpack.securitySolution.cases.configureCases.headerTitle": "配置案例", - "xpack.securitySolution.cases.confirmDeleteCase.deleteCase": "删除案例", - "xpack.securitySolution.cases.confirmDeleteCase.deleteCases": "删除案例", - "xpack.securitySolution.cases.createCase.descriptionFieldRequiredError": "描述必填。", - "xpack.securitySolution.cases.createCase.titleFieldRequiredError": "标题必填。", - "xpack.securitySolution.cases.dismissErrorsPushServiceCallOutTitle": "关闭", "xpack.securitySolution.cases.pageTitle": "案例", "xpack.securitySolution.certificate.fingerprint.clientCertLabel": "客户端证书", "xpack.securitySolution.certificate.fingerprint.serverCertLabel": "服务器证书", @@ -20559,9 +21682,6 @@ "xpack.securitySolution.clipboard.copy": "复制", "xpack.securitySolution.clipboard.copy.to.the.clipboard": "复制到剪贴板", "xpack.securitySolution.clipboard.to.the.clipboard": "至剪贴板", - "xpack.securitySolution.common.alertAddedToCase": "已添加到案例", - "xpack.securitySolution.common.alertLabel": "告警", - "xpack.securitySolution.common.allCases.table.selectableMessageCollections": "无法选择具有子案例的案例", "xpack.securitySolution.components.embeddables.embeddedMap.clientLayerLabel": "客户端点", "xpack.securitySolution.components.embeddables.embeddedMap.destinationLayerLabel": "目标点", "xpack.securitySolution.components.embeddables.embeddedMap.embeddableHeaderHelp": "地图配置帮助", @@ -20653,6 +21773,7 @@ "xpack.securitySolution.containers.detectionEngine.tagFetchFailDescription": "无法提取标签", "xpack.securitySolution.containers.errors.stopJobFailureTitle": "停止作业失败", "xpack.securitySolution.containers.transforms.errorCreatingTransformsLabel": "无法创建转换", + "xpack.securitySolution.contextMenuItemByRouter.viewDetails": "查看详情", "xpack.securitySolution.customizeEventRenderers.customizeEventRenderersDescription": "事件呈现器自动在事件中传送最相关的详情,以揭示其故事", "xpack.securitySolution.customizeEventRenderers.customizeEventRenderersTitle": "定制事件呈现器", "xpack.securitySolution.customizeEventRenderers.disableAllRenderersButtonLabel": "全部禁用", @@ -20748,6 +21869,8 @@ "xpack.securitySolution.detectionEngine.components.allRules.refreshPromptConfirm": "继续", "xpack.securitySolution.detectionEngine.components.allRules.refreshPromptTitle": "您还在吗?", "xpack.securitySolution.detectionEngine.components.importRuleModal.cancelTitle": "取消", + "xpack.securitySolution.detectionEngine.components.importRuleModal.importFailedDetailedTitle": "{message}", + "xpack.securitySolution.detectionEngine.components.importRuleModal.importFailedTitle": "未能导入 {totalRules} 个{totalRules, plural, other {规则}}", "xpack.securitySolution.detectionEngine.components.importRuleModal.importRuleTitle": "导入规则", "xpack.securitySolution.detectionEngine.components.importRuleModal.initialPromptTextDescription": "选择或拖放有效 rules_export.ndjson 文件", "xpack.securitySolution.detectionEngine.components.importRuleModal.overwriteDescription": "覆盖具有冲突规则 ID 的现有检测规则", @@ -20898,10 +22021,14 @@ "xpack.securitySolution.detectionEngine.eqlValidation.title": "EQL 验证错误", "xpack.securitySolution.detectionEngine.goToDocumentationButton": "查看文档", "xpack.securitySolution.detectionEngine.lastSignalTitle": "上一告警", - "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.cannotEditAlerts": "没有这些权限,将无法打开或关闭告警。", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.cannotEditAlerts": "没有这些权限,将无法查看或更改告警的状态。", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.cannotEditLists": "没有这些权限,将无法创建或编辑值列表。", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.cannotEditRules": "没有该权限,将无法创建或编辑检测引擎规则。", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.essenceDescription": "您需要以下权限,才能完全使用此功能。有关进一步帮助,请联系您的管理员。", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.featurePrivilegesTitle": "缺少 Kibana 功能权限:", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.indexPrivilegesTitle": "缺少 Elasticsearch 索引权限:", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.messageDetail": "{essence} {indexPrivileges} {featurePrivileges} 相关文档:{docs}", + "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.missingFeaturePrivileges": "缺失 {privileges} 权限,无法使用 {index} 功能。{explanation}", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageBody.missingIndexPrivileges": "缺失 {privileges} 权限,无法使用 {index} 索引。{explanation}", "xpack.securitySolution.detectionEngine.missingPrivilegesCallOut.messageTitle": "权限不足", "xpack.securitySolution.detectionEngine.mitreAttack.addSubtechniqueTitle": "添加子技术", @@ -21506,6 +22633,8 @@ "xpack.securitySolution.detectionEngine.noApiIntegrationKeyCallOutMsg": "每次启动 Kibana,都会为已保存对象生成新的加密密钥。没有持久性密钥,在 Kibana 重新启动后,将无法删除或修改规则。要设置持久性密钥,请将文本值为 32 个或更多任意字符的 xpack.encryptedSavedObjects.encryptionKey 设置添加到 kibana.yml 文件。", "xpack.securitySolution.detectionEngine.noApiIntegrationKeyCallOutTitle": "需要 API 集成密钥", "xpack.securitySolution.detectionEngine.noIndexTitle": "让我们来设置您的检测引擎", + "xpack.securitySolution.detectionEngine.noPermissionsMessage": "要查看告警,必须更新权限。有关详细信息,请联系您的 Kibana 管理员。", + "xpack.securitySolution.detectionEngine.noPermissionsTitle": "需要权限", "xpack.securitySolution.detectionEngine.pageTitle": "检测引擎", "xpack.securitySolution.detectionEngine.panelSubtitleShowing": "正在显示", "xpack.securitySolution.detectionEngine.queryPreview.queryGraphCountLabel": "计数", @@ -21529,6 +22658,7 @@ "xpack.securitySolution.detectionEngine.ruleDescription.mlJobStoppedDescription": "已停止", "xpack.securitySolution.detectionEngine.ruleDescription.thresholdResultsAggregatedByDescription": "结果聚合依据", "xpack.securitySolution.detectionEngine.ruleDescription.thresholdResultsAllDescription": "所有结果", + "xpack.securitySolution.detectionEngine.ruleDetails.activateRuleLabel": "激活", "xpack.securitySolution.detectionEngine.ruleDetails.backToRulesButton": "规则", "xpack.securitySolution.detectionEngine.ruleDetails.deletedRule": "已删除规则", "xpack.securitySolution.detectionEngine.ruleDetails.errorCalloutTitle": "规则错误位置", @@ -21585,11 +22715,14 @@ "xpack.securitySolution.detectionEngine.rules.allRules.clearSelectionTitle": "清除所选内容", "xpack.securitySolution.detectionEngine.rules.allRules.columns.activateTitle": "已激活", "xpack.securitySolution.detectionEngine.rules.allRules.columns.gap": "上一缺口(如果有)", + "xpack.securitySolution.detectionEngine.rules.allRules.columns.gapTooltip": "规则执行中最近缺口的持续时间。调整规则回查或{seeDocs}以缩小缺口。", "xpack.securitySolution.detectionEngine.rules.allRules.columns.indexingTimes": "索引时间 (ms)", + "xpack.securitySolution.detectionEngine.rules.allRules.columns.indexingTimesTooltip": "上次规则执行期间索引告警花费的总时间", "xpack.securitySolution.detectionEngine.rules.allRules.columns.lastResponseTitle": "上次响应", "xpack.securitySolution.detectionEngine.rules.allRules.columns.lastRunTitle": "上次运行", "xpack.securitySolution.detectionEngine.rules.allRules.columns.lastUpdateTitle": "上次更新时间", "xpack.securitySolution.detectionEngine.rules.allRules.columns.queryTimes": "查询时间 (ms)", + "xpack.securitySolution.detectionEngine.rules.allRules.columns.queryTimesTooltip": "上次规则执行期间查询源索引花费的总时间", "xpack.securitySolution.detectionEngine.rules.allRules.columns.riskScoreTitle": "风险分数", "xpack.securitySolution.detectionEngine.rules.allRules.columns.ruleTitle": "规则", "xpack.securitySolution.detectionEngine.rules.allRules.columns.severityTitle": "严重性", @@ -21631,6 +22764,7 @@ "xpack.securitySolution.detectionEngine.rules.loadPrePackagedTimelineTemplatesButton": "加载 Elastic 预构建的时间线模板", "xpack.securitySolution.detectionEngine.rules.optionalFieldDescription": "可选", "xpack.securitySolution.detectionEngine.rules.pageTitle": "规则", + "xpack.securitySolution.detectionEngine.rules.popoverTooltip.ariaLabel": "列的工具提示:{columnName}", "xpack.securitySolution.detectionEngine.rules.prePackagedRules.createOwnRuletButton": "创建自己的规则", "xpack.securitySolution.detectionEngine.rules.prePackagedRules.emptyPromptMessage": "Elastic Security 附带预置检测规则,这些规则在后台运行,并在条件得到满足时创建告警。默认情况下,除 Endpoint Security 规则外,所有预置规则都处于禁用状态。您可以选择其他要激活的规则。", "xpack.securitySolution.detectionEngine.rules.prePackagedRules.emptyPromptTitle": "加载 Elastic 预构建检测规则", @@ -21660,6 +22794,7 @@ "xpack.securitySolution.detectionEngine.ruleStatus.statusDateDescription": "状态日期", "xpack.securitySolution.detectionEngine.ruleStatus.statusDescription": "上次响应", "xpack.securitySolution.detectionEngine.signalRuleAlert.actionGroups.default": "默认", + "xpack.securitySolution.detectionEngine.signals.alertReasonDescription": "{eventCategory, select, null {} other {{eventCategory}{whitespace}}}事件{hasFieldOfInterest, select, false {} other {{whitespace}具有}}{processName, select, null {} other {{whitespace}进程 {processName},} }{processParentName, select, null {} other {{whitespace}父进程 {processParentName},} }{fileName, select, null {} other {{whitespace}文件 {fileName},} }{sourceAddress, select, null {} other {{whitespace}源 {sourceAddress}}}{sourcePort, select, null {} other {:{sourcePort},}}{destinationAddress, select, null {} other {{whitespace}目标 {destinationAddress}}}{destinationPort, select, null {} other {:{destinationPort},}}{userName, select, null {} other {{whitespace}由 {userName}} }{hostName, select, null {} other {{whitespace}于 {hostName}} } 创建了 {alertSeverity} 告警 {alertName}。", "xpack.securitySolution.detectionEngine.signalTitle": "检测到的告警", "xpack.securitySolution.detectionEngine.totalSignalTitle": "合计", "xpack.securitySolution.detectionEngine.userUnauthenticatedMsgBody": "您没有所需的权限,无法查看检测引擎。若需要更多帮助,请联系您的管理员。", @@ -21715,6 +22850,7 @@ "xpack.securitySolution.endpoint.details.os": "OS", "xpack.securitySolution.endpoint.details.policy": "策略", "xpack.securitySolution.endpoint.details.policy.revisionNumber": "修订版 {revNumber}", + "xpack.securitySolution.endpoint.details.policyResponse.behavior_protection": "恶意行为", "xpack.securitySolution.endpoint.details.policyResponse.configure_dns_events": "配置 DNS 事件", "xpack.securitySolution.endpoint.details.policyResponse.configure_elasticsearch_connection": "配置 Elasticsearch 连接", "xpack.securitySolution.endpoint.details.policyResponse.configure_file_events": "配置文件事件", @@ -21742,6 +22878,7 @@ "xpack.securitySolution.endpoint.details.policyResponse.load_malware_model": "加载恶意软件模型", "xpack.securitySolution.endpoint.details.policyResponse.logging": "日志记录", "xpack.securitySolution.endpoint.details.policyResponse.malware": "恶意软件", + "xpack.securitySolution.endpoint.details.policyResponse.memory_protection": "内存威胁", "xpack.securitySolution.endpoint.details.policyResponse.read_elasticsearch_config": "读取 Elasticsearch 配置", "xpack.securitySolution.endpoint.details.policyResponse.read_events_config": "读取事件配置", "xpack.securitySolution.endpoint.details.policyResponse.read_kernel_config": "读取内核配置", @@ -21754,6 +22891,7 @@ "xpack.securitySolution.endpoint.details.policyStatus": "策略状态", "xpack.securitySolution.endpoint.details.policyStatusValue": "{policyStatus, select, success {成功} warning {警告} failure {失败} other {未知}}", "xpack.securitySolution.endpoint.detailsActions.buttonLabel": "采取操作", + "xpack.securitySolution.endpoint.fleetCustomExtension.artifacts.backButtonLabel": "返回到 Fleet 集成策略", "xpack.securitySolution.endpoint.fleetCustomExtension.backButtonLabel": "返回至终端集成", "xpack.securitySolution.endpoint.fleetCustomExtension.eventFiltersLabel": "事件筛选", "xpack.securitySolution.endpoint.fleetCustomExtension.eventFiltersSummaryError": "尝试提取事件筛选统计时出错:“{error}”", @@ -21843,6 +22981,8 @@ "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.logging.file": "提供的值将覆盖为保存到磁盘上并流式传输到 Elasticsearch 的日志配置的日志级别。大多数情况下,建议使用 Fleet 来更改此日志记录。值包括 error、warning、info、debug 和 trace。", "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.logging.syslog": "提供的值将配置记录到 syslog。值包括 error、warning、info、debug 和 trace。", "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.malware.quarantine": "启用恶意软件防护时是否应启用隔离。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.memory_protection.memory_scan": "作为内存防护的一部分为恶意内存区域启用扫描。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.linux.advanced.memory_protection.memory_scan_collect_sample": "收集检测到的恶意内存区域周围的 4MB 内存。默认值:false。启用此值可能会显著增加 Elasticsearch 中存储的数据量。", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.agent.connection_delay": "发送首条策略答复之前等待代理连接的时间(秒)。默认值:60。", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.alerts.cloud_lookup": "值“false”将会禁用 Mac 告警的云查找。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.artifacts.global.base_url": "用于下载全局构件清单的 URL。", @@ -21864,6 +23004,8 @@ "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.logging.syslog": "提供的值将配置记录到 syslog。值包括 error、warning、info、debug 和 trace。", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.malware.quarantine": "启用恶意软件防护时是否应启用隔离。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.malware.threshold": "应用于评估恶意软件的阈值。允许的值为 normal、conservative 和 aggressive。默认值:normal。", + "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.memory_protection.memory_scan": "作为内存防护的一部分为恶意内存区域启用扫描。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.mac.advanced.memory_protection.memory_scan_collect_sample": "收集检测到的恶意内存区域周围的 4MB 内存。默认值:false。启用此值可能会显著增加 Elasticsearch 中存储的数据量。", "xpack.securitySolution.endpoint.policy.advanced.show": "{action} 高级设置", "xpack.securitySolution.endpoint.policy.advanced.warningMessage": "本部分包含支持高级用例的策略值。如未正确配置,\n 这些值会导致不可预测的行为。编辑这些值之前,\n 请仔细查阅文档或联系支持人员。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.agent.connection_delay": "发送首条策略答复之前等待代理连接的时间(秒)。默认值:60。", @@ -21880,27 +23022,33 @@ "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.elasticsearch.tls.verify_peer": "是否验证对等方提供的证书。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.asyncimageload": "“false”值会覆盖本将启用内核异步映像事件的其他配置设置。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.connect": "是否连接内核驱动程序。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.fileaccess": "报告有限文件访问(读取)事件。路径不可由用户配置。默认值为 true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.fileopen": "“false”值会覆盖本将启用内核文件打开事件的其他配置设置。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.filewrite": "“false”值会覆盖本将启用内核文件写入事件的其他配置设置。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.network": "“false”值会覆盖本将启用内核网络事件的其他配置设置。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.process": "“false”值会覆盖本将启用内核进程事件的其他配置设置。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.registry": "“false”值会覆盖本将启用内核注册表事件的其他配置设置。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.registryaccess": "报告有限注册表访问(queryvalue,savekey)事件。路径不可由用户配置。默认值为 true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.kernel.syncimageload": "“false”值会覆盖本将启用内核同步映像事件的其他配置设置。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.logging.debugview": "提供的值将配置记录到 Debugview(Sysinternals 工具)。值包括 error、warning、info、debug 和 trace。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.logging.file": "提供的值将覆盖为保存到磁盘上并流式传输到 Elasticsearch 的日志配置的日志级别。大多数情况下,建议使用 Fleet 来更改此日志记录。值包括 error、warning、info、debug 和 trace。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.malware.quarantine": "启用恶意软件防护时是否应启用隔离。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.malware.threshold": "应用于评估恶意软件的阈值。允许的值为 normal、conservative 和 aggressive。默认值:normal。", - "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.shellcode": "值“false”会禁用内存防护的一项功能:外壳代码注入防护。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.memory_scan": "作为内存防护的一部分为恶意内存区域启用扫描。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.memory_scan_collect_sample": "收集检测到的恶意内存区域周围的 4MB 内存。默认值:false。启用此值可能会显著增加 Elasticsearch 中存储的数据量。", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.shellcode": "作为内存防护的一部分启用 shellcode 注入检测。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.memory_protection.shellcode_collect_sample": "收集检测到的 shellcode 区域周围的 4MB 内存。默认值:false。启用此值可能会显著增加 Elasticsearch 中存储的数据量。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.ransomware.canary": "值“false”将禁用勒索软件金丝雀防护。默认值:true。", "xpack.securitySolution.endpoint.policy.advanced.windows.advanced.ransomware.mbr": "值“false”将禁用勒索软件 MBR 防护。默认值:true。", + "xpack.securitySolution.endpoint.policy.advanced.windows.memory_protection.shellcode_enhanced_pe_parsing": "尝试从注入的 shellcode 中识别并提取 PE 元数据,包括 Authenticode 签名和版本资源信息。默认值:true。", "xpack.securitySolution.endpoint.policy.details.antivirusRegistration.explanation": "打开可将 Elastic 注册为 Windows 操作系统的正式防病毒解决方案。这也将禁用 Windows Defender。", "xpack.securitySolution.endpoint.policy.details.antivirusRegistration.osRestriction": "限制", "xpack.securitySolution.endpoint.policy.details.antivirusRegistration.toggle": "注册为防病毒解决方案", "xpack.securitySolution.endpoint.policy.details.antivirusRegistration.type": "注册为防病毒解决方案", "xpack.securitySolution.endpoint.policy.details.av.windowsServerNotSupported": "不支持 Windows Server 操作系统", "xpack.securitySolution.endpoint.policy.details.backToListTitle": "返回到终端主机", - "xpack.securitySolution.endpoint.policy.details.behavior": "行为", - "xpack.securitySolution.endpoint.policy.details.behavior_protection": "行为防护", + "xpack.securitySolution.endpoint.policy.details.behavior": "恶意行为", + "xpack.securitySolution.endpoint.policy.details.behavior_protection": "恶意行为", "xpack.securitySolution.endpoint.policy.details.cancel": "取消", "xpack.securitySolution.endpoint.policy.details.cloudDeploymentLInk": "云部署", "xpack.securitySolution.endpoint.policy.details.detect": "检测", @@ -21910,8 +23058,8 @@ "xpack.securitySolution.endpoint.policy.details.eventCollectionsEnabled": "{selected} / {total} 个事件收集已启用", "xpack.securitySolution.endpoint.policy.details.lockedCardUpgradeMessage": "要打开此防护,必须将您的许可证升级到白金级、开始 30 天免费试用或在 AWS、GCP 或 Azure 中实施{cloudDeploymentLink}。", "xpack.securitySolution.endpoint.policy.details.malware": "恶意软件", - "xpack.securitySolution.endpoint.policy.details.memory": "内存", - "xpack.securitySolution.endpoint.policy.details.memory_protection": "内存保护", + "xpack.securitySolution.endpoint.policy.details.memory": "内存威胁", + "xpack.securitySolution.endpoint.policy.details.memory_protection": "内存威胁", "xpack.securitySolution.endpoint.policy.details.platinum": "白金级", "xpack.securitySolution.endpoint.policy.details.prevent": "防御", "xpack.securitySolution.endpoint.policy.details.protections": "防护", @@ -21919,6 +23067,8 @@ "xpack.securitySolution.endpoint.policy.details.ransomware": "勒索软件", "xpack.securitySolution.endpoint.policy.details.save": "保存", "xpack.securitySolution.endpoint.policy.details.settings": "设置", + "xpack.securitySolution.endpoint.policy.details.tabs.policyForm": "策略设置", + "xpack.securitySolution.endpoint.policy.details.tabs.trustedApps": "受信任的应用程序", "xpack.securitySolution.endpoint.policy.details.updateConfirm.cancelButtonTitle": "取消", "xpack.securitySolution.endpoint.policy.details.updateConfirm.confirmButtonTitle": "保存并部署更改", "xpack.securitySolution.endpoint.policy.details.updateConfirm.message": "此操作无法撤消。是否确定要继续?", @@ -21929,16 +23079,62 @@ "xpack.securitySolution.endpoint.policy.details.updateSuccessMessage": "集成 {name} 已更新。", "xpack.securitySolution.endpoint.policy.details.updateSuccessTitle": "成功!", "xpack.securitySolution.endpoint.policy.details.upgradeToPlatinum": "升级到 Elastic 白金级", - "xpack.securitySolution.endpoint.policy.protections.behavior": "行为防护", + "xpack.securitySolution.endpoint.policy.protections.behavior": "恶意行为防护", "xpack.securitySolution.endpoint.policy.protections.malware": "恶意软件防护", - "xpack.securitySolution.endpoint.policy.protections.memory": "内存保护", + "xpack.securitySolution.endpoint.policy.protections.memory": "内存威胁防护", "xpack.securitySolution.endpoint.policy.protections.ransomware": "勒索软件防护", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.backButtonLabel": "返回到 {policyName} 策略", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.content": "当前没有受信任应用程序已分配给 {policyName}。立即分配受信任的应用程序,或在受信任的应用程序页面添加并管理这些应用程序。", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.primaryAction": "分配受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.secondaryAction": "管理受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unassigned.title": "没有已分配的受信任应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unexisting.action": "添加受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unexisting.content": "当前没有受信任的应用程序已应用于您的终端。", + "xpack.securitySolution.endpoint.policy.trustedApps.empty.unexisting.title": "不存在受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.about": "有 {count, plural, other {}} {count} 个受信任的{count, plural, other {应用程序}}与此策略关联。单击此处以 {link}", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.about.viewAllLinkLabel": "查看所有受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.assignToPolicy": "将受信任的应用程序分配给策略", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.cancel": "取消", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.confirm": "分配给 {policyName}", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.noAssignable": "没有可分配给此策略的受信任应用程序。", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.noResults": "找不到项目", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.searchWarning.text": "仅显示前 100 个受信任的应用程序。请使用搜索栏优化结果。", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.searchWarning.title": "有限的搜索结果", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.subtitle": "选择受信任的应用程序以添加到 {policyName}", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.title": "分配受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.toastError.text": "更新项目时出错", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.toastSuccess.textMultiples": "{count} 个受信任的应用程序已添加到列表中。", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.toastSuccess.textSingle": "“{name}”已添加到受信任的应用程序列表。", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.flyout.toastSuccess.title": "成功", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.searh.label": "搜索受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.layout.title": "已分配的受信任应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.list.apiError": "检索受信任的应用程序列表时出错", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeAction": "从策略中移除", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeActionNotAllowed": "无法从策略中移除全局应用的受信任应用程序。", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.cancelLabel": "取消", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.confirmLabel": "从策略中移除", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.errorToastTitle": "尝试移除受信任的应用程序时出错", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.message": "是否确定要继续?", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.messageCallout": "此受信任的应用程序将从该策略中移除,但仍可从受信任的应用程序页面找到并进行管理。", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.successMultiplesToastText": "已从 {policyName} 策略中移除 {count} 个受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.successToastText": "已从 {policyName} 策略中移除“{trustedAppName}”", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.successToastTitle": "已成功移除", + "xpack.securitySolution.endpoint.policy.trustedApps.list.removeDialog.title": "从策略中移除受信任的应用程序", + "xpack.securitySolution.endpoint.policy.trustedApps.list.totalCount": "正在显示 {totalItemsCount, plural, other {# 个受信任的应用程序}}", + "xpack.securitySolution.endpoint.policy.trustedApps.list.viewAction": "查看完整详情", + "xpack.securitySolution.endpoint.policyDetail.behaviorProtectionTooltip": "恶意行为", + "xpack.securitySolution.endpoint.policyDetail.filename": "文件名", + "xpack.securitySolution.endpoint.policyDetail.memoryProtectionTooltip": "内存威胁", "xpack.securitySolution.endpoint.policyDetail.notifyUser": "通知用户", + "xpack.securitySolution.endpoint.policyDetail.rule": "规则", "xpack.securitySolution.endpoint.policyDetailOS": "操作系统", "xpack.securitySolution.endpoint.policyDetails.agentsSummary.errorTitle": "运行不正常", "xpack.securitySolution.endpoint.policyDetails.agentsSummary.offlineTitle": "脱机", "xpack.securitySolution.endpoint.policyDetails.agentsSummary.onlineTitle": "运行正常", - "xpack.securitySolution.endpoint.policyDetails.agentsSummary.totalTitle": "代理", + "xpack.securitySolution.endpoint.policyDetails.agentsSummary.totalTitle": "代理总数", + "xpack.securitySolution.endpoint.policyDetails.artifacts.title": "项目", + "xpack.securitySolution.endpoint.policyDetails.loadError": "无法加载终端策略设置", + "xpack.securitySolution.endpoint.policyDetails.settings.title": "策略设置", "xpack.securitySolution.endpoint.policyDetails.supportedVersion": "代理版本 {version}", "xpack.securitySolution.endpoint.policyDetails.userNotification.placeholder": "输入您的定制通知消息", "xpack.securitySolution.endpoint.policyDetailsConfig.customizeUserNotification": "定制通知消息", @@ -21950,6 +23146,7 @@ "xpack.securitySolution.endpoint.policyDetailsConfig.mac.events.network": "网络", "xpack.securitySolution.endpoint.policyDetailsConfig.mac.events.process": "进程", "xpack.securitySolution.endpoint.policyDetailsConfig.notifyUserTooltip.a": "选择用户通知选项后,在阻止或检测到{ protectionName }时将向主机用户显示通知。", + "xpack.securitySolution.endpoint.policyDetailsConfig.notifyUserTooltip.c": " 可在下方文本框中定制用户通知。括号中的标签可用于动态填充适用操作(如已阻止或已检测)和 { bracketText }。", "xpack.securitySolution.endpoint.policyDetailsConfig.protectionLevel": "防护级别", "xpack.securitySolution.endpoint.policyDetailsConfig.userNotification": "用户通知", "xpack.securitySolution.endpoint.policyDetailsConfig.windows.events.dllDriverLoad": "DLL 和驱动程序加载", @@ -22017,12 +23214,19 @@ "xpack.securitySolution.endpoint.takeAction.changeAlertStatus": "更改告警状态", "xpack.securitySolution.endpointDetails.activityLog": "活动日志", "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.endOfLog": "没有更多要显示的内容", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.failedEndpointIsolateAction": "无法提交请求:隔离主机", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.failedEndpointReleaseAction": "无法提交请求:释放主机", "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.isolated": "提交的请求:隔离主机", "xpack.securitySolution.endpointDetails.activityLog.logEntry.action.unisolated": "提交的请求:释放主机", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.dateRangeMessage.title": "选定日期范围无要显示的内容,请选择其他范围,然后重试。", "xpack.securitySolution.endpointDetails.activityLog.logEntry.emptyState.body": "尚未针对此终端记录任何操作。", "xpack.securitySolution.endpointDetails.activityLog.logEntry.emptyState.title": "没有记录的操作", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.isolationCompletedAndSuccessful": "终端完成主机隔离请求", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.isolationCompletedAndUnsuccessful": "终端完成主机隔离请求,但有错误", "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.isolationFailed": "终端收到主机隔离请求,但有错误", "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.isolationSuccessful": "终端收到主机隔离请求", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.unisolationCompletedAndSuccessful": "终端完成释放请求", + "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.unisolationCompletedAndUnsuccessful": "终端完成释放请求,但有错误", "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.unisolationFailed": "终端收到释放主机请求,但有错误", "xpack.securitySolution.endpointDetails.activityLog.logEntry.response.unisolationSuccessful": "终端收到释放主机请求", "xpack.securitySolution.endpointDetails.activityLog.search": "搜索活动日志", @@ -22033,10 +23237,14 @@ "xpack.securitySolution.enpdoint.resolver.panelutils.invaliddate": "日期无效", "xpack.securitySolution.enpdoint.resolver.panelutils.noTimestampRetrieved": "未检索时间戳", "xpack.securitySolution.event.module.linkToElasticEndpointSecurityDescription": "在 Endpoint Security 中打开", + "xpack.securitySolution.event.reason.reasonRendererTitle": "事件渲染器:{eventRendererName} ", "xpack.securitySolution.eventDetails.blank": " ", "xpack.securitySolution.eventDetails.copyToClipboard": "复制到剪贴板", "xpack.securitySolution.eventDetails.copyToClipboardTooltip": "复制到剪贴板", + "xpack.securitySolution.eventDetails.ctiSummary.indicatorEnrichmentTitle": "检测到威胁匹配", "xpack.securitySolution.eventDetails.ctiSummary.indicatorEnrichmentTooltipContent": "此字段值使用您创建的规则匹配威胁情报指标。", + "xpack.securitySolution.eventDetails.ctiSummary.informationAriaLabel": "信息", + "xpack.securitySolution.eventDetails.ctiSummary.investigationEnrichmentTitle": "已使用威胁情报扩充", "xpack.securitySolution.eventDetails.ctiSummary.investigationEnrichmentTooltipContent": "此字段值具有威胁情报源提供的其他信息。", "xpack.securitySolution.eventDetails.ctiSummary.providerPreposition": "来自", "xpack.securitySolution.eventDetails.description": "描述", @@ -22062,10 +23270,6 @@ "xpack.securitySolution.eventFilter.form.os.label": "选择操作系统", "xpack.securitySolution.eventFilter.form.rule.name": "终端事件筛选", "xpack.securitySolution.eventFilter.form.updateSuccessToastTitle": "“{name}”已成功更新。", - "xpack.securitySolution.eventFilter.modal.actions.cancel": "取消", - "xpack.securitySolution.eventFilter.modal.actions.confirm": "添加终端事件筛选", - "xpack.securitySolution.eventFilter.modal.subtitle": "Endpoint Security", - "xpack.securitySolution.eventFilter.modal.title": "添加终端事件筛选", "xpack.securitySolution.eventFilter.search.placeholder": "搜索下面的字段:name、comments、value", "xpack.securitySolution.eventFilters.aboutInfo": "添加事件筛选以阻止高数目或非预期事件写入到 Elasticsearch。", "xpack.securitySolution.eventFilters.deletionDialog.cancelButton": "取消", @@ -22080,6 +23284,8 @@ "xpack.securitySolution.eventFilters.eventFiltersFlyout.actions.confirm.update": "更新事件筛选", "xpack.securitySolution.eventFilters.eventFiltersFlyout.subtitle.create": "添加事件筛选", "xpack.securitySolution.eventFilters.eventFiltersFlyout.subtitle.update": "更新事件筛选", + "xpack.securitySolution.eventFilters.list.cardAction.delete": "删除事件筛选", + "xpack.securitySolution.eventFilters.list.cardAction.edit": "编辑事件筛选", "xpack.securitySolution.eventFilters.list.pageAddButton": "添加事件筛选", "xpack.securitySolution.eventFilters.list.pageTitle": "事件筛选", "xpack.securitySolution.eventFilters.list.totalCount": "正在显示 {total, plural, other {# 个事件筛选}}", @@ -22132,6 +23338,7 @@ "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.methodTitle": "方法", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.reasonTitle": "原因", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.riskScoreTitle": "风险分数", + "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.ruleDescriptionTitle": "规则描述", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.ruleNameTitle": "规则名称", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.ruleTitle": "规则", "xpack.securitySolution.eventsViewer.alerts.defaultHeaders.severityTitle": "严重性", @@ -22234,6 +23441,15 @@ "xpack.securitySolution.exceptions.viewer.noSearchResultsPromptBody": "找不到搜索结果。", "xpack.securitySolution.exceptions.viewer.searchDefaultPlaceholder": "搜索字段(例如:host.name)", "xpack.securitySolution.exitFullScreenButton": "退出全屏", + "xpack.securitySolution.expandedValue.hideTopValues.HideTopValues": "隐藏排名最前值", + "xpack.securitySolution.expandedValue.links.expandIpDetails": "展开 IP 详情", + "xpack.securitySolution.expandedValue.links.viewEventReference": "查看事件参考", + "xpack.securitySolution.expandedValue.links.viewHostSummary": "查看主机摘要", + "xpack.securitySolution.expandedValue.links.viewIndicatorReference": "查看指标参考", + "xpack.securitySolution.expandedValue.links.viewPortDetails": "查看端口详情", + "xpack.securitySolution.expandedValue.links.viewRuleDetails": "查看规则详情", + "xpack.securitySolution.expandedValue.links.viewRuleReference": "查看规则参考", + "xpack.securitySolution.expandedValue.showTopN.showTopValues": "显示排名最前值", "xpack.securitySolution.featureCatalogueDescription": "预防、收集、检测和响应威胁,以对整个基础架构提供统一的保护。", "xpack.securitySolution.featureRegistry.linkSecuritySolutionTitle": "安全", "xpack.securitySolution.featureRegistry.manageAlertsName": "告警", @@ -22280,7 +23496,7 @@ "xpack.securitySolution.formattedDuration.tooltipLabel": "原始", "xpack.securitySolution.getCurrentUser.Error": "获取用户时出错", "xpack.securitySolution.getCurrentUser.unknownUser": "未知", - "xpack.securitySolution.globalHeader.buttonAddData": "添加数据", + "xpack.securitySolution.globalHeader.buttonAddData": "添加集成", "xpack.securitySolution.header.editableTitle.cancel": "取消", "xpack.securitySolution.header.editableTitle.editButtonAria": "通过单击,可以编辑 {title}", "xpack.securitySolution.header.editableTitle.save": "保存", @@ -22308,6 +23524,45 @@ "xpack.securitySolution.host.details.overview.regionTitle": "地区", "xpack.securitySolution.host.details.versionLabel": "版本", "xpack.securitySolution.hostIsolation.agentStatuses.empty": "-", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.cancel": "取消", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.confirmation": "此操作无法撤消。是否确定要继续?", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.confirmButton": "移除例外", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.deleteFailure": "无法从主机隔离例外列表中移除“{name}”。原因:{message}", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.deleteSuccess": "已从主机隔离例外列表中移除“{name}”。", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.subtitle": "正在删除例外“{name}”。", + "xpack.securitySolution.hostIsolationExceptions.deletionDialog.title": "删除主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.flyout.cancel": "取消", + "xpack.securitySolution.hostIsolationExceptions.flyout.createButton": "添加主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.flyout.editButton": "编辑主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.flyout.editTitle": "编辑主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.flyout.title": "添加主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.form.conditions.subtitle": "IP 例外将应用于所有 OS 类型", + "xpack.securitySolution.hostIsolationExceptions.form.conditions.title": "条件", + "xpack.securitySolution.hostIsolationExceptions.form.creationSuccessToastTitle": "已将“{name}”添加到主机隔离例外列表。", + "xpack.securitySolution.hostIsolationExceptions.form.description": "将 IP 添加到主机隔离例外。仅接受具有可选 CIDR 的 IPv4", + "xpack.securitySolution.hostIsolationExceptions.form.description.label": "描述", + "xpack.securitySolution.hostIsolationExceptions.form.description.placeholder": "描述主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.form.editingSuccessToastTitle": "“{name}”已更新。", + "xpack.securitySolution.hostIsolationExceptions.form.failedToastTitle.create": "创建例外时出错:“{error}”", + "xpack.securitySolution.hostIsolationExceptions.form.failedToastTitle.get": "无法编辑例外:“{error}”", + "xpack.securitySolution.hostIsolationExceptions.form.failedToastTitle.update": "更新例外时出错:“{error}”", + "xpack.securitySolution.hostIsolationExceptions.form.ip.error": "此 IP 无效。仅支持具有可选 CIDR 的 IPv4", + "xpack.securitySolution.hostIsolationExceptions.form.ip.label": "输入 IP 地址", + "xpack.securitySolution.hostIsolationExceptions.form.ip.placeholder": "例如,0.0.0.0/24", + "xpack.securitySolution.hostIsolationExceptions.form.name.error": "名称不能为空", + "xpack.securitySolution.hostIsolationExceptions.form.name.label": "命名主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.form.name.placeholder": "新 IP", + "xpack.securitySolution.hostIsolationExceptions.form.title": "详情", + "xpack.securitySolution.hostIsolationExceptions.list.action.delete": "删除例外", + "xpack.securitySolution.hostIsolationExceptions.list.action.edit": "编辑例外", + "xpack.securitySolution.hostIsolationExceptions.list.addButton": "添加主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.list.pageSubTitle": "添加主机隔离例外以允许隔离的主机与特定 IP 通信。", + "xpack.securitySolution.hostIsolationExceptions.list.pageTitle": "主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.list.totalCount": "正在显示 {total, plural, other {# 个例外}}", + "xpack.securitySolution.hostIsolationExceptions.listEmpty.addButton": "添加主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.listEmpty.message": "当前没有主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.listEmpty.title": "添加第一个主机隔离例外", + "xpack.securitySolution.hostIsolationExceptions.search.placeholder": "搜索下面的字段:name、description、ip", "xpack.securitySolution.hostOverview.errorSearchDescription": "搜索主机概览时发生错误", "xpack.securitySolution.hostOverview.failSearchDescription": "无法对主机概览执行搜索", "xpack.securitySolution.hostRules.errorSearchDescription": "搜索风险分数时发生错误", @@ -22320,6 +23575,7 @@ "xpack.securitySolution.hosts.navigation.dns.histogram.errorFetchingDnsData": "无法查询 DNS 数据", "xpack.securitySolution.hosts.navigation.eventsTitle": "事件", "xpack.securitySolution.hosts.navigation.uncommonProcessesTitle": "不常见进程", + "xpack.securitySolution.hosts.navigaton.eventsUnit": "{totalCount, plural, other {个事件}}", "xpack.securitySolution.hosts.navigaton.matrixHistogram.errorFetchingAuthenticationsData": "无法查询身份验证数据", "xpack.securitySolution.hosts.navigaton.matrixHistogram.errorFetchingEventsData": "无法查询事件数据", "xpack.securitySolution.hosts.pageTitle": "主机", @@ -22416,10 +23672,12 @@ "xpack.securitySolution.management.policiesSelector.unassignedEntries": "未分配的条目", "xpack.securitySolution.management.search.button": "刷新", "xpack.securitySolution.markdownEditor.markdownInputHelp": "Markdown 语法帮助", + "xpack.securitySolution.markdownEditor.plugins.timeline.failedRetrieveTimelineErrorMsg": "无法检索时间线 ID:{ timelineId }", "xpack.securitySolution.markdownEditor.plugins.timeline.insertTimelineButtonLabel": "插入时间线链接", "xpack.securitySolution.markdownEditor.plugins.timeline.noParenthesesErrorMsg": "应为左括号", "xpack.securitySolution.markdownEditor.plugins.timeline.noTimelineIdFoundErrorMsg": "找不到时间线 ID", "xpack.securitySolution.markdownEditor.plugins.timeline.noTimelineNameFoundErrorMsg": "找不到时间线名称", + "xpack.securitySolution.markdownEditor.plugins.timeline.timelineErrorTitle": "时间线错误", "xpack.securitySolution.markdownEditor.plugins.timeline.toolTip.timelineId": "时间线 ID:{ timelineId }", "xpack.securitySolution.markdownEditor.plugins.timeline.toolTip.timelineUrlIsNotValidErrorMsg": "时间线 URL 无效 => {timelineUrl}", "xpack.securitySolution.markdownEditor.preview": "预览", @@ -22668,6 +23926,7 @@ "xpack.securitySolution.overview.filebeatSystemModuleTitle": "系统模块", "xpack.securitySolution.overview.fileBeatZeekTitle": "Zeek", "xpack.securitySolution.overview.hostsAction": "查看主机", + "xpack.securitySolution.overview.hostsRiskError": "提取主机风险时出错", "xpack.securitySolution.overview.hostStatGroupAuditbeat": "Auditbeat", "xpack.securitySolution.overview.hostStatGroupElasticEndpointSecurity": "Endpoint Security", "xpack.securitySolution.overview.hostStatGroupFilebeat": "Filebeat", @@ -22687,6 +23946,14 @@ "xpack.securitySolution.overview.pageSubtitle": "Elastic Stack 的安全信息和事件管理功能", "xpack.securitySolution.overview.recentCasesSidebarTitle": "最近案例", "xpack.securitySolution.overview.recentTimelinesSidebarTitle": "最近的时间线", + "xpack.securitySolution.overview.riskyHostsDashboardDangerPanelButton": "启用风险分数", + "xpack.securitySolution.overview.riskyHostsDashboardDangerPanelTitle": "没有要显示的主机风险分数数据", + "xpack.securitySolution.overview.riskyHostsDashboardEnableThreatIntel": "请启用主机风险分数模块以查看有风险的主机列表。", + "xpack.securitySolution.overview.riskyHostsDashboardSubtitle": "正在显示:{totalCount} 台{totalCount, plural, other {主机}}", + "xpack.securitySolution.overview.riskyHostsDashboardTitle": "当前主机风险分数", + "xpack.securitySolution.overview.riskyHostsDashboardWarningPanelBody": "对于选定时间范围,我们尚未从您环境中的主机中检测到任何主机风险分数数据。", + "xpack.securitySolution.overview.riskyHostsDashboardWarningPanelTitle": "没有可显示的主机风险分数数据", + "xpack.securitySolution.overview.riskyHostsSource": "源", "xpack.securitySolution.overview.showTopTooltip": "显示排名靠前的{fieldName}", "xpack.securitySolution.overview.signalCountTitle": "检测告警趋势", "xpack.securitySolution.overview.topNLabel": "排名靠前的{fieldName}", @@ -22703,8 +23970,11 @@ "xpack.securitySolution.pages.common.emptyActionEndpoint": "添加 Endpoint Security", "xpack.securitySolution.pages.common.emptyActionEndpointDescription": "使用威胁防御、检测和深度安全数据可见性功能保护您的主机。", "xpack.securitySolution.pages.common.emptyActionSecondary": "入门指南。", + "xpack.securitySolution.pages.common.solutionName": "安全", "xpack.securitySolution.pages.common.updateAlertStatusFailed": "无法更新{ conflicts } 个{conflicts, plural, other {告警}}。", "xpack.securitySolution.pages.common.updateAlertStatusFailedDetailed": "{ updated } 个{updated, plural, other {告警}}已成功更新,但是 { conflicts } 个无法更新,\n 因为{ conflicts, plural, other {其}}已被修改。", + "xpack.securitySolution.pages.emptyPage.beatsCard.description": "使用 Elastic 代理来收集安全事件并防止您的终端受到威胁。", + "xpack.securitySolution.pages.emptyPage.beatsCard.title": "添加安全集成", "xpack.securitySolution.pages.fourohfour.pageNotFoundDescription": "未找到页面", "xpack.securitySolution.paginatedTable.rowsButtonLabel": "每页行数", "xpack.securitySolution.paginatedTable.showingSubtitle": "正在显示", @@ -22737,7 +24007,7 @@ "xpack.securitySolution.resolver.graphControls.center": "居中", "xpack.securitySolution.resolver.graphControls.currentlyLoadingCube": "正在加载进程", "xpack.securitySolution.resolver.graphControls.east": "东", - "xpack.securitySolution.resolver.graphControls.errorCube": "错误", + "xpack.securitySolution.resolver.graphControls.errorCube": "进程错误", "xpack.securitySolution.resolver.graphControls.nodeLegend": "图例", "xpack.securitySolution.resolver.graphControls.nodeLegendButtonTitle": "节点图例", "xpack.securitySolution.resolver.graphControls.north": "北", @@ -22757,7 +24027,7 @@ "xpack.securitySolution.resolver.node_button_name": "{nodeState, select, error {重新加载 {nodeName}} other {{nodeName}}}", "xpack.securitySolution.resolver.node_icon": "{state, select, running {正在运行进程} terminated {已终止进程} loading {正在加载进程} error {进程错误}}", "xpack.securitySolution.resolver.noProcessEvents.eventCategory": "还可以将以下内容添加到时间线查询,以检查进程事件。\n 如果未列出任何内容,将无法从该查询中找到的事件创建图表。", - "xpack.securitySolution.resolver.noProcessEvents.timeRange": "“分析事件”工具基于进程事件创建图表。\n 如果分析的事件在当前时间范围内没有关联的进程,\n 或在任何时间范围内存储在 Elasticsearch 中,则不会创建图表。\n 可以通过展开时间范围来检查是否有关联进程。", + "xpack.securitySolution.resolver.noProcessEvents.timeRange": "\n “分析事件”工具基于进程事件创建图表。\n 如果分析的事件在当前时间范围内没有关联的进程,\n 或在任何时间范围内存储在 Elasticsearch 中,则不会创建图表。\n 可以通过展开时间范围来检查是否有关联进程。\n ", "xpack.securitySolution.resolver.noProcessEvents.title": "找不到任何进程事件", "xpack.securitySolution.resolver.panel.copyFailureTitle": "复制失败", "xpack.securitySolution.resolver.panel.copyToClipboard": "复制到剪贴板", @@ -22794,19 +24064,19 @@ "xpack.securitySolution.rowRenderer.wasPreventedFromRenamingAMaliciousFileDescription": "被阻止重命名恶意文件", "xpack.securitySolution.search.administration.endpoints": "终端", "xpack.securitySolution.search.administration.eventFilters": "事件筛选", + "xpack.securitySolution.search.administration.hostIsolationExceptions": "主机隔离例外", "xpack.securitySolution.search.administration.trustedApps": "受信任的应用程序", "xpack.securitySolution.search.alerts": "告警", - "xpack.securitySolution.search.cases": "案例", - "xpack.securitySolution.search.cases.configure": "配置案例", - "xpack.securitySolution.search.cases.create": "创建新案例", "xpack.securitySolution.search.detect": "检测", "xpack.securitySolution.search.exceptions": "例外", + "xpack.securitySolution.search.explore": "浏览", "xpack.securitySolution.search.hosts": "主机", "xpack.securitySolution.search.hosts.anomalies": "异常", "xpack.securitySolution.search.hosts.authentications": "身份验证", "xpack.securitySolution.search.hosts.events": "事件", "xpack.securitySolution.search.hosts.externalAlerts": "外部告警", "xpack.securitySolution.search.hosts.uncommonProcesses": "不常见进程", + "xpack.securitySolution.search.investigate": "调查", "xpack.securitySolution.search.manage": "管理", "xpack.securitySolution.search.network": "网络", "xpack.securitySolution.search.network.dns": "DNS", @@ -23054,6 +24324,8 @@ "xpack.securitySolution.timelines.allTimelines.errorFetchingTimelinesTitle": "无法查询所有时间线数据", "xpack.securitySolution.timelines.allTimelines.importTimelineTitle": "导入", "xpack.securitySolution.timelines.allTimelines.panelTitle": "所有时间线", + "xpack.securitySolution.timelines.components.importTimelineModal.importFailedDetailedTitle": "{message}", + "xpack.securitySolution.timelines.components.importTimelineModal.importFailedTitle": "未能导入 {totalTimelines} 个{totalTimelines, plural, other {规则}}", "xpack.securitySolution.timelines.components.importTimelineModal.importTimelineTitle": "导入", "xpack.securitySolution.timelines.components.importTimelineModal.importTitle": "导入……", "xpack.securitySolution.timelines.components.importTimelineModal.initialPromptTextDescription": "搜索或拖放有效的 timelines_export.ndjson 文件", @@ -23072,8 +24344,11 @@ "xpack.securitySolution.topN.closeButtonLabel": "关闭", "xpack.securitySolution.topN.rawEventsSelectLabel": "原始事件", "xpack.securitySolution.trustedapps.aboutInfo": "添加受信任的应用程序,以提高性能或缓解与主机上运行的其他应用程序的冲突。", + "xpack.securitySolution.trustedApps.assignmentSectionDescription": "跨所有策略全局分配此受信任的应用程序,或将其分配给特定策略。", "xpack.securitySolution.trustedapps.card.operator.is": "是", "xpack.securitySolution.trustedapps.card.operator.matches": "匹配", + "xpack.securitySolution.trustedApps.conditionsSectionDescription": "选择操作系统,然后添加条件。条件的可用性可能取决于您选定的 OS。", + "xpack.securitySolution.trustedApps.conditionsSectionTitle": "条件", "xpack.securitySolution.trustedapps.create.conditionFieldInvalidHashMsg": "[{row}] 无效的哈希值", "xpack.securitySolution.trustedapps.create.conditionFieldInvalidPathMsg": "[{row}] 路径的格式可能不正确;请验证值", "xpack.securitySolution.trustedapps.create.conditionFieldValueRequiredMsg": "[{row}] 字段条目必须包含值", @@ -23083,22 +24358,33 @@ "xpack.securitySolution.trustedapps.create.nameRequiredMsg": "“名称”必填", "xpack.securitySolution.trustedapps.create.os": "选择操作系统", "xpack.securitySolution.trustedapps.create.osRequiredMsg": "“操作系统”必填", + "xpack.securitySolution.trustedapps.createTrustedAppFlyout.byPolicyLicenseError": "您的 Kibana 许可证已降级。因此,将不再支持单个策略配置。", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.cancelButton": "取消", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.createSaveButton": "添加受信任的应用程序", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.createTitle": "添加受信任的应用程序", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.editSaveButton": "保存", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.editTitle": "编辑受信任的应用程序", + "xpack.securitySolution.trustedapps.createTrustedAppFlyout.expiredLicenseMessage": "您的 Kibana 许可证已降级。现在会将未来的策略配置全局分配给所有策略。有关更多信息,请参见 ", + "xpack.securitySolution.trustedapps.createTrustedAppFlyout.expiredLicenseTitle": "已过期许可证", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.notFoundToastMessage": "无法编辑受信任的应用程序 ({apiMsg})", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.successToastTitle": "“{name}”已添加到受信任的应用程序列表。", "xpack.securitySolution.trustedapps.createTrustedAppFlyout.updateSuccessToastTitle": "“{name}”已更新。", "xpack.securitySolution.trustedapps.creationSuccess.title": "成功!", + "xpack.securitySolution.trustedapps.deletionDialog.calloutMessage": "删除此条目会将其从 {count} 个关联{count, plural, other {策略}}中移除。", + "xpack.securitySolution.trustedapps.deletionDialog.calloutTitle": "警告", "xpack.securitySolution.trustedapps.deletionDialog.cancelButton": "取消", - "xpack.securitySolution.trustedapps.deletionDialog.confirmButton": "移除受信任的应用程序", + "xpack.securitySolution.trustedapps.deletionDialog.confirmButton": "删除", "xpack.securitySolution.trustedapps.deletionDialog.subMessage": "此操作无法撤消。是否确定要继续?", + "xpack.securitySolution.trustedapps.deletionDialog.title": "删除“{name}”", "xpack.securitySolution.trustedapps.deletionError.text": "无法从受信任的应用程序列表中移除“{name}”。原因:{message}", "xpack.securitySolution.trustedapps.deletionError.title": "移除失败", "xpack.securitySolution.trustedapps.deletionSuccess.text": "“{name}”已从受信任的应用程序列表中移除。", "xpack.securitySolution.trustedapps.deletionSuccess.title": "已成功移除", + "xpack.securitySolution.trustedApps.detailsSectionTitle": "详情", + "xpack.securitySolution.trustedapps.docsLink": "受信任的应用程序文档。", + "xpack.securitySolution.trustedapps.grid.cardAction.delete": "删除受信任的应用程序", + "xpack.securitySolution.trustedapps.grid.cardAction.edit": "编辑受信任的应用程序", + "xpack.securitySolution.trustedapps.grid.policyDetailsLinkBackLabel": "返回到受信任的应用程序", "xpack.securitySolution.trustedapps.list.addButton": "添加受信任的应用程序", "xpack.securitySolution.trustedapps.list.pageTitle": "受信任的应用程序", "xpack.securitySolution.trustedapps.list.search.placeholder": "搜索下面的字段:name、description、value", @@ -23124,6 +24410,7 @@ "xpack.securitySolution.trustedapps.trustedapp.entry.field": "字段", "xpack.securitySolution.trustedapps.trustedapp.entry.operator": "运算符", "xpack.securitySolution.trustedapps.trustedapp.entry.value": "值", + "xpack.securitySolution.trustedapps.updateSuccess.title": "成功!", "xpack.securitySolution.trustedapps.view.toggle.grid": "网格视图", "xpack.securitySolution.trustedapps.view.toggle.list": "列表视图", "xpack.securitySolution.trustedapps.viewTypeToggle.controlLegend": "视图类型", @@ -23244,6 +24531,10 @@ "xpack.snapshotRestore.deleteSnapshot.errorSingleNotificationTitle": "删除快照“{name}”时出错", "xpack.snapshotRestore.deleteSnapshot.successMultipleNotificationTitle": "已删除 {count} 个快照", "xpack.snapshotRestore.deleteSnapshot.successSingleNotificationTitle": "已删除快照“{name}”", + "xpack.snapshotRestore.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "xpack.snapshotRestore.deprecations.enabled.manualStepTwoMessage": "将“xpack.snapshot_restore.enabled”设置更改为“xpack.snapshot_restore.ui.enabled”。", + "xpack.snapshotRestore.deprecations.enabledMessage": "要禁止用户访问拍取快照并还原 UI,请使用“xpack.snapshot_restore.ui.enabled”设置,而不是“xpack.snapshot_restore.enabled”。", + "xpack.snapshotRestore.deprecations.enabledTitle": "设置“xpack.snapshot_restore.enabled”已过时", "xpack.snapshotRestore.editPolicy.breadcrumbTitle": "编辑策略", "xpack.snapshotRestore.editPolicy.loadingIndicesDescription": "正在加载可用索引……", "xpack.snapshotRestore.editPolicy.LoadingIndicesErrorMessage": "加载可用索引时出错", @@ -23376,7 +24667,6 @@ "xpack.snapshotRestore.policyForm.stepLogistics.snapshotNameDescription": "快照的名称。唯一标识符将自动添加到每个名称中。", "xpack.snapshotRestore.policyForm.stepLogistics.snapshotNameDescriptionTitle": "快照名称", "xpack.snapshotRestore.policyForm.stepLogisticsTitle": "运筹", - "xpack.snapshotRestore.policyForm.stepRetention.countDescription": "在您的集群中要存储的最小和最大快照数目。", "xpack.snapshotRestore.policyForm.stepRetention.countTitle": "要保留的快照", "xpack.snapshotRestore.policyForm.stepRetention.docsButtonLabel": "快照保留文档", "xpack.snapshotRestore.policyForm.stepRetention.expirationDescription": "删除快照前要等候的时间。", @@ -23917,6 +25207,8 @@ "xpack.snapshotRestore.snapshotList.emptyPrompt.usePolicyDescription": "运行快照生命周期策略以创建快照。还可以使用 {docLink} 创建快照。", "xpack.snapshotRestore.snapshotList.loadingSnapshotsDescription": "正在加载快照……", "xpack.snapshotRestore.snapshotList.loadingSnapshotsErrorMessage": "加载快照时出错", + "xpack.snapshotRestore.snapshotList.searchBar.invalidSearchMessage": "搜索无效:{errorMessage}", + "xpack.snapshotRestore.snapshotList.searchBar.onlyOneClauseMessage": "搜索栏中只能使用一个子句", "xpack.snapshotRestore.snapshotList.table.actionDeleteAriaLabel": "删除快照“{name}”", "xpack.snapshotRestore.snapshotList.table.actionDeleteTooltip": "删除", "xpack.snapshotRestore.snapshotList.table.actionRestoreAriaLabel": "存储快照 `{name}`", @@ -23948,7 +25240,16 @@ "xpack.spaces.defaultSpaceDescription": "这是您的默认工作区!", "xpack.spaces.defaultSpaceTitle": "默认", "xpack.spaces.displayName": "工作区", + "xpack.spaces.embeddableLegacyUrlConflict.calloutTitle": "复制此 JSON 并将其用于 {documentationLink}", + "xpack.spaces.embeddableLegacyUrlConflict.detailsButton": "查看详情", + "xpack.spaces.embeddableLegacyUrlConflict.messageText": "为此面板找到 2 个已保存对象。禁用旧版 URL 别名以修复此错误。", "xpack.spaces.featureDescription": "将仪表板和其他已保存的对象管理为有意义的类别。", + "xpack.spaces.legacyUrlConflict.calloutBodyText": "检查这是否是您正寻找的 {objectNoun}。否则,请前往另一个。{documentationLink}", + "xpack.spaces.legacyUrlConflict.calloutTitle": "2 个已保存对象使用此 URL", + "xpack.spaces.legacyUrlConflict.dismissButton": "关闭", + "xpack.spaces.legacyUrlConflict.documentationLinkText": "了解详情", + "xpack.spaces.legacyUrlConflict.linkButton": "前往其他 {objectNoun}", + "xpack.spaces.legacyURLConflict.toolTipText": "此 {objectNoun} 具有 [id={currentObjectId}]。其他 {objectNoun} 具有 [id={otherObjectId}]。", "xpack.spaces.management.advancedSettingsSubtitle.applyingSettingsOnPageToSpaceDescription": "除非已指定,否则此页面上的设置适用于 {spaceName} 空间。", "xpack.spaces.management.advancedSettingsTitle.settingsTitle": "设置", "xpack.spaces.management.confirmAlterActiveSpaceModal.cancelButton": "取消", @@ -24097,6 +25398,8 @@ "xpack.spaces.navControl.spacesMenu.changeCurrentSpaceTitle": "更改当前空间", "xpack.spaces.navControl.spacesMenu.findSpacePlaceholder": "查找工作区", "xpack.spaces.navControl.spacesMenu.noSpacesFoundTitle": " 未找到工作区 ", + "xpack.spaces.redirectLegacyUrlToast.text": "您正在寻找的{objectNoun}具有新的位置。从现在开始使用此 URL。", + "xpack.spaces.redirectLegacyUrlToast.title": "我们已将您重定向到新 URL", "xpack.spaces.shareToSpace.aliasTableCalloutBody": "将禁用 {aliasesToDisableCount, plural, other {# 个旧版 URL}}。", "xpack.spaces.shareToSpace.aliasTableCalloutTitle": "旧版 URL 冲突", "xpack.spaces.shareToSpace.allSpacesTarget": "所有工作区", @@ -24287,7 +25590,6 @@ "xpack.timelines.alerts.summaryView.options.summaryView.description": "查看每个告警的事件渲染", "xpack.timelines.beatFields.errorSearchDescription": "获取 Beat 字段时发生错误", "xpack.timelines.beatFields.failSearchDescription": "无法对 Beat 字段执行搜索", - "xpack.timelines.cases.caseView.create": "创建新案例", "xpack.timelines.cases.timeline.actions.addCase": "添加到案例", "xpack.timelines.cases.timeline.actions.addExistingCase": "添加到现有案例", "xpack.timelines.cases.timeline.actions.addNewCase": "添加到新案例", @@ -24342,6 +25644,8 @@ "xpack.timelines.hoverActions.addToTimeline.addedFieldMessage": "已将 {fieldOrValue} 添加到时间线", "xpack.timelines.hoverActions.columnToggleLabel": "在表中切换 {field} 列", "xpack.timelines.hoverActions.fieldLabel": "字段", + "xpack.timelines.hoverActions.filterIn": "筛选", + "xpack.timelines.hoverActions.filterOut": "筛除", "xpack.timelines.hoverActions.moreActions": "更多操作", "xpack.timelines.hoverActions.nestedColumnToggleLabel": "{field} 字段是对象,并分解为可以添加为列的嵌套字段", "xpack.timelines.hoverActions.tooltipWithKeyboardShortcut.pressTooltipLabel": "按", @@ -24358,6 +25662,8 @@ "xpack.timelines.lastUpdated.updated": "已更新", "xpack.timelines.lastUpdated.updating": "正在更新......", "xpack.timelines.tgrid.body.ariaLabel": "告警", + "xpack.timelines.tgrid.empty.description": "尝试搜索更长的时间段或修改您的搜索", + "xpack.timelines.tgrid.empty.title": "没有任何结果匹配您的搜索条件", "xpack.timelines.tGrid.eventsLabel": "事件", "xpack.timelines.tGrid.footer.loadingEventsDataLabel": "正在加载事件", "xpack.timelines.tGrid.footer.totalCountOfEvents": "事件", @@ -24393,7 +25699,7 @@ "xpack.timelines.timeline.categoryTooltip": "类别", "xpack.timelines.timeline.closedAlertFailedToastMessage": "无法关闭告警。", "xpack.timelines.timeline.closedAlertSuccessToastMessage": "已成功关闭 {totalAlerts} 个{totalAlerts, plural, other {告警}}。", - "xpack.timelines.timeline.closeSelectedTitle": "关闭所选", + "xpack.timelines.timeline.closeSelectedTitle": "标记为已关闭", "xpack.timelines.timeline.descriptionTooltip": "描述", "xpack.timelines.timeline.eventHasEventRendererScreenReaderOnly": "位于行 {row} 的事件具有事件呈现程序。按 shift + 向下箭头键以对其聚焦。", "xpack.timelines.timeline.eventHasNotesScreenReaderOnly": "位于行 {row} 的事件有{notesCount, plural, =1 {备注} other { {notesCount} 个备注}}。按 shift + 右箭头键以聚焦备注。", @@ -24432,6 +25738,7 @@ "xpack.transform.agg.popoverForm.filerAgg.term.errorFetchSuggestions": "无法获取建议", "xpack.transform.agg.popoverForm.filerAgg.term.valueLabel": "值", "xpack.transform.agg.popoverForm.filerAggLabel": "筛选查询", + "xpack.transform.agg.popoverForm.filerQueryAdvancedSuggestionTooltip": "要添加其他筛选查询聚合,请编辑 JSON 配置。", "xpack.transform.agg.popoverForm.nameLabel": "聚合名称", "xpack.transform.agg.popoverForm.percentsLabel": "百分数", "xpack.transform.agg.popoverForm.sortDirectionTopMetricsLabel": "排序方向", @@ -24440,12 +25747,27 @@ "xpack.transform.agg.popoverForm.unsupportedAggregationHelpText": "在此表单中仅可以编辑聚合名称。请使用高级编辑器编辑聚合的其他部分。", "xpack.transform.aggLabelForm.deleteItemAriaLabel": "删除项", "xpack.transform.aggLabelForm.editAggAriaLabel": "编辑聚合", + "xpack.transform.alertingRuleTypes.transformHealth.actionGroupName": "检测到问题", + "xpack.transform.alertingRuleTypes.transformHealth.description": "转换出现运行问题时发出告警。", + "xpack.transform.alertingRuleTypes.transformHealth.fetchErrorMessage": "无法提取转换", + "xpack.transform.alertingRuleTypes.transformHealth.name": "转换运行状况", + "xpack.transform.alertTypes.transformHealth.alertContext.messageDescription": "告警信息消息", + "xpack.transform.alertTypes.transformHealth.alertContext.resultsDescription": "规则执行结果", + "xpack.transform.alertTypes.transformHealth.defaultActionMessage": "[\\{\\{rule.name\\}\\}] 转换运行状况检查结果:\n\\{\\{context.message\\}\\}\n\\{\\{#context.results\\}\\}\n 转换 ID:\\{\\{transform_id\\}\\}\n \\{\\{#description\\}\\}转换描述:\\{\\{description\\}\\}\n \\{\\{/description\\}\\}\\{\\{#transform_state\\}\\}转换状态:\\{\\{transform_state\\}\\}\n \\{\\{/transform_state\\}\\}\\{\\{#failure_reason\\}\\}失败原因:\\{\\{failure_reason\\}\\}\n \\{\\{/failure_reason\\}\\}\\{\\{#notification_message\\}\\}通知消息:\\{\\{notification_message\\}\\}\n \\{\\{/notification_message\\}\\}\\{\\{#node_name\\}\\}节点名称:\\{\\{node_name\\}\\}\n \\{\\{/node_name\\}\\}\\{\\{#timestamp\\}\\}时间戳:\\{\\{timestamp\\}\\}\n \\{\\{/timestamp\\}\\}\n\n\\{\\{/context.results\\}\\}\n", + "xpack.transform.alertTypes.transformHealth.excludeTransformsLabel": "排除转换", + "xpack.transform.alertTypes.transformHealth.includeTransforms.errorMessage": "必须至少选择一个转换", + "xpack.transform.alertTypes.transformHealth.includeTransformsLabel": "包括转换", + "xpack.transform.alertTypes.transformHealth.notStartedCheckDescription": "转换未启动或未索引数据时接收告警。", + "xpack.transform.alertTypes.transformHealth.notStartedCheckName": "转换未启动", + "xpack.transform.alertTypes.transformHealth.notStartedMessage": "{count, plural, other {转换}} {transformsString} {count, plural, other {}} 未启动。", + "xpack.transform.alertTypes.transformHealth.testsSelection.enableTestLabel": "启用", "xpack.transform.app.checkingPrivilegesDescription": "正在检查权限……", "xpack.transform.app.checkingPrivilegesErrorMessage": "从服务器获取用户权限时出错", "xpack.transform.app.deniedPrivilegeDescription": "要使用“转换”部分,必须具有{privilegesCount, plural, other {以下集群权限}}:{missingPrivileges}。", "xpack.transform.app.deniedPrivilegeTitle": "您缺少集群权限", "xpack.transform.appName": "转换", "xpack.transform.appTitle": "转换", + "xpack.transform.capability.noPermission.canCreateTransformAlertsTooltip": "您无权创建转换告警规则。", "xpack.transform.capability.noPermission.createTransformTooltip": "您无权创建数据帧转换。", "xpack.transform.capability.noPermission.deleteTransformTooltip": "您无权删除数据帧转换。", "xpack.transform.capability.noPermission.noTransformNodesTooltip": "没有可用的转换节点。", @@ -24459,6 +25781,7 @@ "xpack.transform.deleteTransform.deleteAnalyticsWithIndexErrorMessage": "删除目标索引 {destinationIndex} 时发生错误", "xpack.transform.deleteTransform.deleteAnalyticsWithIndexSuccessMessage": "删除目标索引 {destinationIndex} 的请求已确认。", "xpack.transform.description": "描述", + "xpack.transform.edit.errorPromptText": "检查源索引模式是否存在时发生错误", "xpack.transform.groupby.popoverForm.aggLabel": "聚合", "xpack.transform.groupBy.popoverForm.aggNameAlreadyUsedError": "其他分组依据配置已使用该名称。", "xpack.transform.groupBy.popoverForm.aggNameInvalidCharError": "名称无效。不允许使用字符“[”、“]”和“>”,且名称不得以空格字符开头或结束。", @@ -24508,6 +25831,8 @@ "xpack.transform.stepCreateForm.continuousModeLabel": "连续模式", "xpack.transform.stepCreateForm.copyTransformConfigToClipboardButton": "复制到剪贴板", "xpack.transform.stepCreateForm.copyTransformConfigToClipboardDescription": "将用于创建作业的 Kibana 开发控制台命令复制到剪贴板。", + "xpack.transform.stepCreateForm.createAlertRuleButton": "创建告警规则", + "xpack.transform.stepCreateForm.createAlertRuleDescription": "打开向导以创建用于监测转换运行状况的告警规则。", "xpack.transform.stepCreateForm.createAndStartTransformButton": "创建并启动", "xpack.transform.stepCreateForm.createAndStartTransformDescription": "创建并启动转换。转换将增加集群的搜索和索引负荷。如果负荷超载,请停止转换。转换启动后,系统将为您提供继续浏览转换的选项。", "xpack.transform.stepCreateForm.createTransformButton": "创建", @@ -24642,6 +25967,8 @@ "xpack.transform.toastText.modalTitle": "错误详细信息", "xpack.transform.toastText.openModalButtonText": "查看详情", "xpack.transform.transformForm.sizeNotationPlaceholder": "示例:{example1}、{example2}、{example3}、{example4}", + "xpack.transform.transformList.alertingRules.screenReaderDescription": "存在与转换关联的告警规则时,此列显示图标", + "xpack.transform.transformList.alertingRules.tooltipContent": "转换具有 {rulesCount} 个关联的告警{rulesCount, plural, other {规则}}", "xpack.transform.transformList.bulkDeleteDestIndexSuccessMessage": "已成功删除 {count} 个目标{count, plural, other {索引}}。", "xpack.transform.transformList.bulkDeleteModalTitle": "删除 {count} 个 {count, plural, other {转换}}?", "xpack.transform.transformList.bulkDeleteTransformSuccessMessage": "已成功删除 {count} 个{count, plural, other {转换}}。", @@ -24649,6 +25976,7 @@ "xpack.transform.transformList.cloneActionNameText": "克隆", "xpack.transform.transformList.completeBatchTransformBulkActionToolTip": "一个或多个转换为已完成批量转换,无法重新启动。", "xpack.transform.transformList.completeBatchTransformToolTip": "{transformId} 为已完成的批处理作业,无法重新启动。", + "xpack.transform.transformList.createAlertRuleNameText": "创建告警规则", "xpack.transform.transformList.createTransformButton": "创建转换", "xpack.transform.transformList.deleteActionDisabledToolTipContent": "停止数据帧作业,以便将其删除。", "xpack.transform.transformList.deleteActionNameText": "删除", @@ -24685,7 +26013,9 @@ "xpack.transform.transformList.editFlyoutFormRequiredErrorMessage": "必填字段。", "xpack.transform.transformList.editFlyoutFormRetentionMaxAgeFieldLabel": "最大存在时间", "xpack.transform.transformList.editFlyoutFormRetentionPolicyButtonContent": "保留策略", + "xpack.transform.transformList.editFlyoutFormRetentionPolicyDateFieldHelpText": "选择可用于从目标索引中识别出日期文档的日期字段。", "xpack.transform.transformList.editFlyoutFormRetentionPolicyFieldLabel": "字段", + "xpack.transform.transformList.editFlyoutFormRetentionPolicyFieldSelectAriaLabel": "设置保留策略的日期字段", "xpack.transform.transformList.editFlyoutFormRetentionPolicyMaxAgeNotValidErrorMessage": "最大存在时间格式无效。至少需要 60s。", "xpack.transform.transformList.editFlyoutFormStringNotValidErrorMessage": "值需要为字符串类型。", "xpack.transform.transformList.editFlyoutTitle": "编辑 {transformId}", @@ -24713,6 +26043,7 @@ "xpack.transform.transformList.stopTransformResponseSchemaErrorMessage": "调用停止转换请求时发生错误。", "xpack.transform.transformList.stopTransformSuccessMessage": "数据帧作业 {transformId} 停止成功。", "xpack.transform.transformList.transformDescription": "使用转换将现有 Elasticsearch 索引透视到汇总的实体中心型索引或创建最新文档的索引视图,以进行快速访问。", + "xpack.transform.transformList.transformDetails.alertRulesTitle": "告警规则", "xpack.transform.transformList.transformDetails.expandedRowJsonPane": "转换配置的 JSON", "xpack.transform.transformList.transformDetails.messagesPane.errorMessage": "无法加载消息", "xpack.transform.transformList.transformDetails.messagesPane.messageLabel": "消息", @@ -24788,8 +26119,18 @@ "xpack.triggersActionsUI.components.addMessageVariables.addRuleVariableTitle": "添加规则变量", "xpack.triggersActionsUI.components.addMessageVariables.addVariablePopoverButton": "添加变量", "xpack.triggersActionsUI.components.builtinActionTypes.common.requiredShortDescTextField": "“简短描述”必填。", + "xpack.triggersActionsUI.components.builtinActionTypes.email.exchangeForm.clientIdHelpLabel": "配置客户端 ID", + "xpack.triggersActionsUI.components.builtinActionTypes.email.exchangeForm.clientSecretHelpLabel": "配置客户端密钥", + "xpack.triggersActionsUI.components.builtinActionTypes.email.exchangeForm.tenantIdHelpLabel": "配置租户 ID", "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.actionTypeTitle": "发送到电子邮件", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.amazonSesServerTypeLabel": "Amazon SES", "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.configureAccountsHelpLabel": "配置电子邮件帐户", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.elasticCloudServerTypeLabel": "Elastic Cloud", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.exchangeServerTypeLabel": "MS Exchange Server", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.gmailServerTypeLabel": "Gmail", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.otherServerTypeLabel": "其他", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.outlookServerTypeLabel": "Outlook", + "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.reenterClientSecretLabel": "客户端密钥已加密。请为此字段重新输入值。", "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.reenterValuesLabel": "用户名和密码已加密。请为这些字段重新输入值。", "xpack.triggersActionsUI.components.builtinActionTypes.emailAction.selectMessageText": "从您的服务器发送电子邮件。", "xpack.triggersActionsUI.components.builtinActionTypes.error.badIndexOverrideSuffix": "告警历史记录索引必须包含有效的后缀。", @@ -24797,6 +26138,8 @@ "xpack.triggersActionsUI.components.builtinActionTypes.error.formatFromText": "发送者电子邮件地址无效。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredAuthPasswordText": "“密码”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredAuthUserNameText": "“用户名”必填。", + "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredClientIdText": "“客户端 ID”必填。", + "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredClientSecretText": "“客户端密钥”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredDocumentJson": "“文档”必填,并且应为有效的 JSON 对象。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredEntryText": "未输入收件人、抄送、密送。 至少需要输入一个。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredFromText": "“发送者”必填。", @@ -24805,8 +26148,10 @@ "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredPasswordText": "使用用户名时,“密码”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredPortText": "“端口”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredServerLogMessageText": "“消息”必填。", + "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredServiceText": "“服务”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredSlackMessageText": "“消息”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredSubjectText": "“主题”必填。", + "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredTenantIdText": "“租户 ID”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredUserText": "使用密码时,“用户名”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.error.requiredWebhookBodyText": "“正文”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.indexAction.actionTypeTitle": "索引数据", @@ -24922,32 +26267,75 @@ "xpack.triggersActionsUI.components.builtinActionTypes.serverLogAction.logLevelFieldLabel": "级别", "xpack.triggersActionsUI.components.builtinActionTypes.serverLogAction.logMessageFieldLabel": "消息", "xpack.triggersActionsUI.components.builtinActionTypes.serverLogAction.selectMessageText": "将消息添加到 Kibana 日志。", - "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.apiUrlTextFieldLabel": "URL", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.apiInfoError": "尝试获取应用程序信息时收到的状态:{status}", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.apiUrlHelpText": "包括完整 URL。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.apiUrlTextFieldLabel": "ServiceNow 实例 URL", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.appInstallationInfo": "{update} {create} ", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.applicationRequiredCallout": "未安装 Elastic ServiceNow 应用", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.applicationRequiredCallout.content": "请前往 ServiceNow 应用商店并安装该应用程序", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.applicationRequiredCallout.errorMessage": "错误消息", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.authenticationLabel": "身份验证", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.cancelButtonText": "取消", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.categoryTitle": "类别", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.commentsTextAreaFieldLabel": "其他注释", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.confirmButtonText": "更新", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.correlationDisplay": "相关性显示(可选)", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.correlationID": "相关性 ID(可选)", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.deprecatedCalloutCreate": "或新建一个。", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.deprecatedCalloutMigrate": "更新此连接器,", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.deprecatedCalloutTitle": "此连接器类型已过时", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.descriptionTextAreaFieldLabel": "描述", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.eventClassTextAreaFieldLabel": "源实例", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.impactSelectFieldLabel": "影响", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.install": "安装", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.installationCalloutTitle": "要使用此连接器,请先从 ServiceNow 应用商店安装 Elastic 应用。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.invalidApiUrlTextField": "URL 无效。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.messageKeyTextAreaFieldLabel": "消息密钥", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.metricNameTextAreaFieldLabel": "指标名称", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.nodeTextAreaFieldLabel": "节点", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.passwordTextFieldLabel": "密码", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.prioritySelectFieldLabel": "优先级", - "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.reenterValuesLabel": "用户名和密码已加密。请为这些字段重新输入值。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.reenterValuesLabel": "每次编辑连接器时都必须进行身份验证。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.rememberValuesLabel": "请记住这些值。每次编辑连接器时都必须重新输入。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requiredApiUrlTextField": "“URL”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requiredPasswordTextField": "“密码”必填。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requiredSeverityTextField": "“严重性”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requiredUsernameTextField": "“用户名”必填。", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.requireHttpsApiUrlTextField": "URL 必须以 https:// 开头。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.resourceTextAreaFieldLabel": "资源", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.setupDevInstance": "设置开发者实例", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.severityRequiredSelectFieldLabel": "严重性(必需)", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.severitySelectFieldLabel": "严重性", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.snInstanceLabel": "ServiceNow 实例", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.sourceTextAreaFieldLabel": "源", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.subcategoryTitle": "子类别", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.title": "事件", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.titleFieldLabel": "简短描述(必填)", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.typeTextAreaFieldLabel": "类型", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.unableToGetChoicesMessage": "无法获取选项", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.unknown": "未知", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.updateCalloutText": "连接器已更新。", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.updateFormCredentialsTitle": "提供身份验证凭据", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.updateFormInstallTitle": "安装 Elastic ServiceNow 应用", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.updateFormTitle": "更新 ServiceNow 连接器", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.updateFormUrlTitle": "输入 ServiceNow 实例 URL", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.updateSuccessToastTitle": "{connectorName} 连接器已更新", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.urgencySelectFieldLabel": "紧急性", "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.usernameTextFieldLabel": "用户名", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenow.visitSNStore": "访问 ServiceNow 应用商店", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNow.warningMessage": "这会更新此连接器的所有实例并且无法恢复。", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowAction.apiUrlHelpLabel": "提供所需 ServiceNow 实例的完整 URL。如果没有,{instance}。", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowAction.correlationIDHelpLabel": "用于更新事件的标识符", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowAction.serviceNowAppRunning": "在运行更新之前,必须从 ServiceNow 应用商店安装 Elastic 应用。{visitLink} 以安装该应用", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowITOM.actionTypeTitle": "ServiceNow ITOM", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenowITOM.event": "事件", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowITOM.selectMessageText": "在 ServiceNow ITOM 中创建事件。", "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowITSM.actionTypeTitle": "ServiceNow ITSM", "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowITSM.selectMessageText": "在 ServiceNow ITSM 中创建事件。", "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowSIR.actionTypeTitle": "ServiceNow SecOps", "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowSIR.selectMessageText": "在 ServiceNow SecOps 中创建事件。", + "xpack.triggersActionsUI.components.builtinActionTypes.servicenowSIR.title": "安全事件", + "xpack.triggersActionsUI.components.builtinActionTypes.serviceNowSIRAction.correlationIDHelpLabel": "用于更新事件的标识符", "xpack.triggersActionsUI.components.builtinActionTypes.slackAction.actionTypeTitle": "发送到 Slack", "xpack.triggersActionsUI.components.builtinActionTypes.slackAction.error.invalidWebhookUrlText": "Webhook URL 无效。", "xpack.triggersActionsUI.components.builtinActionTypes.slackAction.error.requiredWebhookUrlText": "“Webhook URL”必填。", @@ -25039,9 +26427,15 @@ "xpack.triggersActionsUI.components.healthCheck.alertsError": "要创建规则,必须启用告警和操作插件。", "xpack.triggersActionsUI.components.healthCheck.alertsErrorAction": "了解操作方法。", "xpack.triggersActionsUI.components.healthCheck.alertsErrorTitle": "必须启用“告警和操作”", - "xpack.triggersActionsUI.components.healthCheck.encryptionErrorAction": "了解操作方法。", - "xpack.triggersActionsUI.components.healthCheck.encryptionErrorBeforeKey": "要创建规则,请在 kibana.yml 文件中为: ", - "xpack.triggersActionsUI.components.healthCheck.encryptionErrorTitle": "加密已保存对象不可用", + "xpack.triggersActionsUI.components.healthCheck.apiKeysAndEncryptionError": "必须启用 API 密钥并配置加密密钥才能使用 Alerting。", + "xpack.triggersActionsUI.components.healthCheck.apiKeysAndEncryptionErrorAction": "了解详情。", + "xpack.triggersActionsUI.components.healthCheck.apiKeysAndEncryptionErrorTitle": "需要其他设置", + "xpack.triggersActionsUI.components.healthCheck.apiKeysDisabledError": "必须启用 API 密钥才能使用 Alerting。", + "xpack.triggersActionsUI.components.healthCheck.apiKeysDisabledErrorAction": "了解详情。", + "xpack.triggersActionsUI.components.healthCheck.apiKeysDisabledErrorTitle": "需要其他设置", + "xpack.triggersActionsUI.components.healthCheck.encryptionErrorAction": "了解详情。", + "xpack.triggersActionsUI.components.healthCheck.encryptionErrorBeforeKey": "必须配置加密密钥才能使用 Alerting。", + "xpack.triggersActionsUI.components.healthCheck.encryptionErrorTitle": "需要其他设置", "xpack.triggersActionsUI.connectors.breadcrumbTitle": "连接器", "xpack.triggersActionsUI.data.coreQueryParams.aggTypeRequiredErrorMessage": "[aggField]:当 [aggType] 为“{aggType}”时必须有值", "xpack.triggersActionsUI.data.coreQueryParams.dateStartGTdateEndErrorMessage": "[dateStart]:晚于 [dateEnd]", @@ -25106,6 +26500,7 @@ "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.deleteActionDisabledDescription": "无法删除连接器", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.deleteActionName": "删除", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.fixActionDescription": "修复连接器配置", + "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.isDeprecatedDescription": "此连接器已过时。请进行更新,或创建新连接器。", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.missingSecretsDescription": "未导入敏感信息", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.runConnectorDescription": "运行此连接器", "xpack.triggersActionsUI.sections.actionsConnectorsList.connectorsListTable.columns.actions.runConnectorDisabledDescription": "无法运行连接器", @@ -25151,15 +26546,10 @@ "xpack.triggersActionsUI.sections.alertAdd.saveSuccessNotificationText": "已创建规则“{ruleName}”", "xpack.triggersActionsUI.sections.alertAddFooter.cancelButtonLabel": "取消", "xpack.triggersActionsUI.sections.alertAddFooter.saveButtonLabel": "保存", + "xpack.triggersActionsUI.sections.alertDetails.actionWithBrokenConnectorWarningBannerEditText": "编辑规则", + "xpack.triggersActionsUI.sections.alertDetails.actionWithBrokenConnectorWarningBannerTitle": "与此规则关联的连接器之一出现问题。", "xpack.triggersActionsUI.sections.alertDetails.alertDetailsTitle": "{alertName}", - "xpack.triggersActionsUI.sections.alertDetails.alertInstances.disabledRule": "此规则已禁用,无法显示。切换禁用 ↑ 以激活。", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.alert": "告警", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.duration": "持续时间", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.mute": "静音", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.start": "启动", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.columns.status": "状态", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.status.active": "活动", - "xpack.triggersActionsUI.sections.alertDetails.alertsList.status.inactive": "已恢复", + "xpack.triggersActionsUI.sections.alertDetails.alertInstances.disabledRule": "此规则已禁用,无法显示。", "xpack.triggersActionsUI.sections.alertDetails.alerts.disabledRuleTitle": "已禁用规则", "xpack.triggersActionsUI.sections.alertDetails.collapsedItemActons.enableLoadingTitle": "启用", "xpack.triggersActionsUI.sections.alertDetails.collapsedItemActons.enableTitle": "启用", @@ -25168,6 +26558,7 @@ "xpack.triggersActionsUI.sections.alertDetails.dismissButtonTitle": "关闭", "xpack.triggersActionsUI.sections.alertDetails.editAlertButtonLabel": "编辑", "xpack.triggersActionsUI.sections.alertDetails.manageLicensePlanBannerLinkTitle": "管理许可证", + "xpack.triggersActionsUI.sections.alertDetails.redirectObjectNoun": "规则", "xpack.triggersActionsUI.sections.alertDetails.unableToLoadAlertMessage": "无法加载规则:{message}", "xpack.triggersActionsUI.sections.alertDetails.unableToLoadAlertsMessage": "无法加载告警:{message}", "xpack.triggersActionsUI.sections.alertDetails.viewAlertInAppButtonLabel": "在应用中查看", @@ -25195,6 +26586,7 @@ "xpack.triggersActionsUI.sections.alertForm.conditions.removeConditionLabel": "移除", "xpack.triggersActionsUI.sections.alertForm.conditions.title": "条件:", "xpack.triggersActionsUI.sections.alertForm.documentationLabel": "文档", + "xpack.triggersActionsUI.sections.alertForm.error.belowMinimumText": "时间间隔小于此规则类型的最小值 ({minimum})", "xpack.triggersActionsUI.sections.alertForm.error.noAuthorizedRuleTypes": "为了{operation}规则,您需要获得相应的权限。", "xpack.triggersActionsUI.sections.alertForm.error.noAuthorizedRuleTypesTitle": "您尚无权{operation}任何规则类型", "xpack.triggersActionsUI.sections.alertForm.error.requiredActionConnector": "“{actionTypeId} 连接器的操作”必填。", @@ -25218,15 +26610,17 @@ "xpack.triggersActionsUI.sections.alertsList.alertErrorReasonRunning": "运行规则时发生错误。", "xpack.triggersActionsUI.sections.alertsList.alertErrorReasonUnknown": "由于未知原因发生错误。", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.actionsTex": "操作", + "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.actionsWarningTooltip": "无法加载与此规则关联的连接器之一。请编辑该规则以选择新连接器。", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.alertTypeTitle": "类型", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.deleteAriaLabel": "删除", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.deleteButtonTooltip": "删除", + "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.durationTitle": "运行规则所需的时间长度。", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.editAriaLabel": "编辑", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.editButtonTooltip": "编辑", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.enabledTitle": "已启用", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.mutedBadge": "已静音", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.nameTitle": "名称", - "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.scheduleTitle": "运行间隔", + "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.scheduleTitle": "时间间隔", "xpack.triggersActionsUI.sections.alertsList.alertsListTable.columns.statusTitle": "状态", "xpack.triggersActionsUI.sections.alertsList.alertStatusActive": "活动", "xpack.triggersActionsUI.sections.alertsList.alertStatusError": "错误", @@ -25235,7 +26629,7 @@ "xpack.triggersActionsUI.sections.alertsList.alertStatusOk": "确定", "xpack.triggersActionsUI.sections.alertsList.alertStatusPending": "待处理", "xpack.triggersActionsUI.sections.alertsList.alertStatusUnknown": "未知", - "xpack.triggersActionsUI.sections.alertsList.attentionBannerTitle": "{totalStatusesError, plural, other {# 个规则}}中有错误。", + "xpack.triggersActionsUI.sections.alertsList.attentionBannerTitle": "{totalStatusesError, plural, other {# 个规则}}中出现错误。", "xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.buttonTitle": "管理规则", "xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.deleteAllTitle": "删除", "xpack.triggersActionsUI.sections.alertsList.bulkActionPopover.disableAllTitle": "禁用", @@ -25261,6 +26655,7 @@ "xpack.triggersActionsUI.sections.alertsList.noPermissionToCreateTitle": "没有创建规则的权限", "xpack.triggersActionsUI.sections.alertsList.refreshAlertsButtonLabel": "刷新", "xpack.triggersActionsUI.sections.alertsList.resetDefaultIndexLabel": "重置默认索引", + "xpack.triggersActionsUI.sections.alertsList.ruleTypeExcessDurationMessage": "持续时间超出了规则的预期运行时间。", "xpack.triggersActionsUI.sections.alertsList.searchPlaceholderTitle": "搜索", "xpack.triggersActionsUI.sections.alertsList.singleTitle": "规则", "xpack.triggersActionsUI.sections.alertsList.totalItemsCountDescription": "正在显示:{pageSize} 个规则(共 {totalItemCount} 个)。", @@ -25278,6 +26673,8 @@ "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.addBccButton": "密送", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.addCcButton": "抄送", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.authenticationLabel": "身份验证", + "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.clientIdFieldLabel": "客户端 ID", + "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.clientSecretTextFieldLabel": "客户端密钥", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.fromTextFieldLabel": "发送者", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.hasAuthSwitchLabel": "需要对此服务器进行身份验证", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.hostTextFieldLabel": "主机", @@ -25288,7 +26685,9 @@ "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.recipientCopyTextFieldLabel": "抄送", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.recipientTextFieldLabel": "至", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.secureSwitchLabel": "安全", + "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.serviceTextFieldLabel": "服务", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.subjectTextFieldLabel": "主题", + "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.tenantIdFieldLabel": "租户 ID", "xpack.triggersActionsUI.sections.builtinActionTypes.emailAction.userTextFieldLabel": "用户名", "xpack.triggersActionsUI.sections.confirmAlertClose.confirmAlertCloseCancelButtonText": "取消", "xpack.triggersActionsUI.sections.confirmAlertClose.confirmAlertCloseConfirmButtonText": "放弃更改", @@ -25317,6 +26716,9 @@ "xpack.triggersActionsUI.sections.editConnectorForm.tabText": "配置", "xpack.triggersActionsUI.sections.editConnectorForm.updateErrorNotificationText": "无法更新连接器。", "xpack.triggersActionsUI.sections.editConnectorForm.updateSuccessNotificationText": "已更新“{connectorName}”", + "xpack.triggersActionsUI.sections.executionDurationChart.executionDurationNoData": "此规则没有可用执行。", + "xpack.triggersActionsUI.sections.executionDurationChart.recentDurationsTitle": "最近执行持续时间", + "xpack.triggersActionsUI.sections.executionDurationChart.recentDurationsTooltip": "最近规则执行最多包括最后 {numExecutions} 个执行。", "xpack.triggersActionsUI.sections.manageLicense.manageLicenseCancelButtonText": "取消", "xpack.triggersActionsUI.sections.manageLicense.manageLicenseConfirmButtonText": "管理许可证", "xpack.triggersActionsUI.sections.manageLicense.manageLicenseMessage": "规则类型 {alertTypeId} 已禁用,因为它需要{licenseRequired}许可证。继续前往“许可证管理”查看升级选项。", @@ -25344,14 +26746,14 @@ "xpack.triggersActionsUI.typeRegistry.get.missingActionTypeErrorMessage": "对象类型“{id}”未注册。", "xpack.triggersActionsUI.typeRegistry.register.duplicateObjectTypeErrorMessage": "已注册对象类型“{id}”。", "xpack.uiActionsEnhanced.components.actionWizard.betaActionLabel": "公测版", - "xpack.uiActionsEnhanced.components.actionWizard.betaActionTooltip": "此操作位于公测版中,可能会有所更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束。请通过报告任何错误或提供其他反馈来帮助我们。", + "xpack.uiActionsEnhanced.components.actionWizard.betaActionTooltip": "此操作位于公测版中,可能会有所更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束。请通过报告错误或提供其他反馈来帮助我们。", "xpack.uiActionsEnhanced.components.actionWizard.changeButton": "更改", "xpack.uiActionsEnhanced.components.actionWizard.insufficientLicenseLevelTooltip": "许可证级别不够", "xpack.uiActionsEnhanced.components.actionWizard.triggerPickerHelpText": "这是什么?", "xpack.uiActionsEnhanced.components.actionWizard.triggerPickerHelpTooltip": "确定向下钻取显示在上下文菜单中的时间", "xpack.uiActionsEnhanced.components.actionWizard.triggerPickerLabel": "显示相关选项:", "xpack.uiActionsEnhanced.components.DrilldownForm.betaActionLabel": "公测版", - "xpack.uiActionsEnhanced.components.DrilldownForm.betaActionTooltip": "此操作位于公测版中,可能会有所更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束。请通过报告任何错误或提供其他反馈来帮助我们。", + "xpack.uiActionsEnhanced.components.DrilldownForm.betaActionTooltip": "此操作位于公测版中,可能会有所更改。设计和代码相对于正式发行版功能还不够成熟,将按原样提供,且不提供任何保证。公测版功能不受正式发行版功能支持 SLA 的约束。请通过报告错误或提供其他反馈来帮助我们。", "xpack.uiActionsEnhanced.components.DrilldownForm.changeButton": "更改", "xpack.uiActionsEnhanced.components.DrilldownForm.drilldownAction": "操作", "xpack.uiActionsEnhanced.components.DrilldownForm.getMoreActionsLinkLabel": "获取更多的操作", @@ -25427,61 +26829,190 @@ "xpack.uiActionsEnhanced.drilldowns.urlDrilldownCollectConfig.urlTemplateVariablesHelpLinkText": "帮助", "xpack.uiActionsEnhanced.drilldowns.urlDrilldownValidation.urlFormatErrorMessage": "格式无效:{message}", "xpack.uiActionsEnhanced.drilldowns.urlDrilldownValidation.urlFormatGeneralErrorMessage": "格式无效。例如:{exampleUrl}", - "xpack.upgradeAssistant.breadcrumb.esDeprecationsLabel": "Elasticsearch 弃用", - "xpack.upgradeAssistant.breadcrumb.kibanaDeprecationsLabel": "Kibana 弃用", + "xpack.upgradeAssistant.appTitle": "升级助手", + "xpack.upgradeAssistant.breadcrumb.esDeprecationsLabel": "Elasticsearch 弃用问题", + "xpack.upgradeAssistant.breadcrumb.kibanaDeprecationsLabel": "Kibana 弃用问题", "xpack.upgradeAssistant.breadcrumb.overviewLabel": "升级助手", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.cancelButtonLabel": "取消", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.cancelButtonLabel": "返回", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.closeButtonLabel": "关闭", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.continueButtonLabel": "继续重新索引", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.fetchFailedCalloutTitle": "重新索引状态不可用", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.insufficientPrivilegeCallout.calloutTitle": "您没有足够的权限来重新索引此索引", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.readonlyCallout.backgroundResumeDetail": "重新索引将在后台继续,但如果 Kibana 关闭或重新启动,您将需要返回此页,才能恢复重新索引。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.readonlyCallout.backgroundResumeDetail": "将在后台执行重新索引。可以返回到升级助手,查看在 Kibana 重新启动之后恢复重新索引的进度。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.reindexingLabel": "正在重新索引……", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.resumeLabel": "恢复", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.runReindexLabel": "运行重新索引", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.restartLabel": "重新启动重新索引", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.resumeLabel": "恢复重新索引", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.runReindexLabel": "启动重新索引", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexButton.tryAgainLabel": "重试", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.aliasSwapStepTitle": "正在交换具有别名的原始索引", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexDescription": "重新索引期间,索引将处于只读状态。在重新索引完成之前,您无法添加、更新或删除文档。如果需要重新索引到新集群,请使用重新索引 API。{docsLink}", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.aliasSwapStepTitle": "交换具有别名的原始索引。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancelLabel": "取消", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancelledLabel": "已取消", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.cancellingLabel": "正在取消……", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelButton.errorLabel": "无法取消", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.createIndexStepTitle": "正在创建新索引", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.readonlyStepTitle": "正在将旧索引设置为只读", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.reindexingDocumentsStepTitle": "正在重新索引文档", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.cancelledTitle": "重新索引已取消。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.createIndexStepTitle": "创建新索引。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.aliasSwapStepTitle": "正在交换具有别名的原始索引。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.createIndexStepTitle": "正在创建新索引。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.readonlyStepTitle": "正在将原始索引设置为只读。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.inProgress.reindexingDocumentsStepTitle": "正在重新索引文档。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.readonlyStepTitle": "将原始索引设置为只读。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklist.reindexingDocumentsStepTitle": "索引文档。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingChecklistTitle": "重新索引过程", - "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.customTypeNameWarningDetail": "映射类型在 8.0 中不再受支持。确保没有应用程序代码或脚本依赖 {mappingType}。", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingFailedCalloutTitle": "重新索引错误", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.checklistStep.reindexingInProgressTitle": "重新索引正在进行中……{percents}", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.flyoutHeader": "重新索引 {index}", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.learnMoreLinkLabel": "了解详情", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.acceptChangesTitle": "接受更改", + "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.customTypeNameWarningDetail": "映射类型在 Elastic 8.x 中不再受支持。确保没有应用程序代码或脚本依赖 {mappingType}。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.customTypeNameWarningTitle": "将映射类型 {mappingType} 替换为 {defaultType}", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.deprecatedIndexSettingsWarningDetail": "检测到以下弃用的索引设置:", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.deprecatedIndexSettingsWarningTitle": "移除弃用的索引设置", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.destructiveCallout.calloutDetail": "继续前备份索引。要继续重新索引,请接受每个更改。", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.destructiveCallout.calloutTitle": "此索引需要无法恢复的破坏性更改", "xpack.upgradeAssistant.checkupTab.reindexing.flyout.warningsStep.documentationLinkLabel": "文档", + "xpack.upgradeAssistant.deprecationBadge.criticalBadgeLabel": "紧急", + "xpack.upgradeAssistant.deprecationBadge.resolvedBadgeLabel": "已解决", + "xpack.upgradeAssistant.deprecationBadge.warningBadgeLabel": "警告", + "xpack.upgradeAssistant.deprecationCount.criticalStatusLabel": "紧急:{count}", + "xpack.upgradeAssistant.deprecationCount.warningStatusLabel": "警告:{count}", + "xpack.upgradeAssistant.deprecationFlyout.learnMoreLinkLabel": "了解详情", + "xpack.upgradeAssistant.deprecations.enabled.manualStepOneMessage": "打开 kibana.yml 配置文件。", + "xpack.upgradeAssistant.deprecations.enabled.manualStepTwoMessage": "将“xpack.upgrade_assistant.enabled”设置更改为“xpack.upgrade_assistant.ui.enabled”。", + "xpack.upgradeAssistant.deprecations.enabledMessage": "要禁止用户访问升级助手 UI,请使用“xpack.upgrade_assistant.ui.enabled”设置,而不是“xpack.upgrade_assistant.enabled”。", + "xpack.upgradeAssistant.deprecations.enabledTitle": "设置“xpack.upgrade_assistant.enabled”已过时", + "xpack.upgradeAssistant.deprecationsPageLoadingError.title": "无法检索 {deprecationSource} 弃用问题", + "xpack.upgradeAssistant.deprecationStats.criticalDeprecationsTitle": "紧急", + "xpack.upgradeAssistant.deprecationStats.loadingErrorMessage": "无法检索 Kibana 弃用问题。", + "xpack.upgradeAssistant.deprecationStats.warningDeprecationsTitle": "警告", "xpack.upgradeAssistant.emptyPrompt.learnMoreDescription": "详细了解如何迁移到 {nextMajor}。", "xpack.upgradeAssistant.emptyPrompt.title": "{uaVersion} 升级助手", "xpack.upgradeAssistant.emptyPrompt.upgradeAssistantDescription": "升级助手识别集群中弃用的设置,帮助您在升级前解决问题。需要升级到 Elastic {nextMajor} 时,回到这里查看。", - "xpack.upgradeAssistant.esDeprecationErrors.loadingErrorMessage": "无法检索 Elasticsearch 弃用。", + "xpack.upgradeAssistant.esDeprecationErrors.loadingErrorMessage": "无法检索 Elasticsearch 弃用问题。", "xpack.upgradeAssistant.esDeprecationErrors.partiallyUpgradedWarningMessage": "将 Kibana 升级到与您的 Elasticsearch 集群相同的版本。集群中的一个或多个节点正在运行与 Kibana 不同的版本。", - "xpack.upgradeAssistant.esDeprecationErrors.permissionsErrorMessage": "您无权查看 Elasticsearch 弃用。", - "xpack.upgradeAssistant.esDeprecationErrors.upgradedWarningMessage": "您的配置是最新的。Kibana 和索引 Elasticsearch 节点正在运行相同的版本。", - "xpack.upgradeAssistant.esDeprecations.loadingText": "正在加载弃用……", - "xpack.upgradeAssistant.esDeprecations.mlSnapshots.deletingButtonLabel": "正在删除……", + "xpack.upgradeAssistant.esDeprecationErrors.permissionsErrorMessage": "您无权查看 Elasticsearch 弃用问题。", + "xpack.upgradeAssistant.esDeprecationErrors.upgradedWarningMessage": "所有 Elasticsearch 节点已升级。", + "xpack.upgradeAssistant.esDeprecations.batchReindexingDocsDescription": "要在单一请求中启动多个重新索引任务,请使用 Kibana {docsLink}。", + "xpack.upgradeAssistant.esDeprecations.batchReindexingDocsLink": "批量重新索引 API", + "xpack.upgradeAssistant.esDeprecations.clusterDeprecationTypeLabel": "集群", + "xpack.upgradeAssistant.esDeprecations.defaultDeprecation.manualCellLabel": "手动", + "xpack.upgradeAssistant.esDeprecations.deprecationDetailsFlyout.closeButtonLabel": "关闭", + "xpack.upgradeAssistant.esDeprecations.deprecationDetailsFlyout.secondaryDescription": "索引:{indexName}", + "xpack.upgradeAssistant.esDeprecations.indexDeprecationTypeLabel": "索引", + "xpack.upgradeAssistant.esDeprecations.indexSettings.deleteCompleteText": "过时设置已移除", + "xpack.upgradeAssistant.esDeprecations.indexSettings.deleteFailedText": "设置移除失败", + "xpack.upgradeAssistant.esDeprecations.indexSettings.deletingButtonLabel": "设置移除进行中……", + "xpack.upgradeAssistant.esDeprecations.indexSettings.resolutionText": "移除设置", + "xpack.upgradeAssistant.esDeprecations.indexSettings.resolutionTooltipLabel": "通过从此索引中移除设置来解决该问题。此问题会自动解决。", + "xpack.upgradeAssistant.esDeprecations.loadingText": "正在加载弃用问题……", + "xpack.upgradeAssistant.esDeprecations.mlDeprecationTypeLabel": "Machine Learning", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.deleteCompleteText": "删除完成", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.deleteFailedText": "删除失败", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.deletingButtonLabel": "删除进行中……", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.closeButtonLabel": "关闭", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.deleteButtonLabel": "删除", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.deleteSnapshotErrorTitle": "删除快照时出错", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.deletingButtonLabel": "正在删除……", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.retryDeleteButtonLabel": "重试删除", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.retryUpgradeButtonLabel": "重试升级", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.title": "升级或删除模型快照", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.upgradeButtonLabel": "升级", "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.upgradeSnapshotErrorTitle": "升级快照时出错", - "xpack.upgradeAssistant.esDeprecations.pageDescription": "查看已弃用的群集和索引设置。在升级之前必须解决任何紧急问题。", - "xpack.upgradeAssistant.esDeprecations.pageTitle": "Elasticsearch", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.flyout.upgradingButtonLabel": "正在升级……", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.resolutionText": "升级或删除快照", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.resolutionTooltipLabel": "通过升级或删除作业模型快照来解决此问题。此问题会自动解决。", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeCompleteText": "升级完成", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeFailedText": "升级失败", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeInProgressText": "升级进行中……", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeModeEnabledDocsLink": "了解详情", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeModeEnabledErrorDescription": "启用升级模式时,无法对 Machine Learning 快照执行操作。 {docsLink}。", + "xpack.upgradeAssistant.esDeprecations.mlSnapshots.upgradeModeEnabledErrorTitle": "Machine Learning 升级模式已启用", + "xpack.upgradeAssistant.esDeprecations.nodeDeprecationTypeLabel": "节点", + "xpack.upgradeAssistant.esDeprecations.pageDescription": "请在升级之前解决所有紧急问题。做出更改之前,请确保具有集群的当前快照。在 7.0 之前创建的索引必须进行重新索引或移除。要在单一请求中启动多个重新索引任务,请使用 Kibana 批量重新索引 API。", + "xpack.upgradeAssistant.esDeprecations.pageTitle": "Elasticsearch 弃用问题", + "xpack.upgradeAssistant.esDeprecations.reindex.manualCellTooltipLabel": "此问题需要手动解决。", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexCanceledText": "已取消重新索引", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexCompleteText": "重新索引完成", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexFailedText": "重新索引失败", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexFetchFailedText": "重新索引状态不可用", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexInProgressText": "重新索引正在进行中……", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexLoadingStatusText": "正在加载状态……", + "xpack.upgradeAssistant.esDeprecations.reindex.reindexPausedText": "重新索引已暂停", + "xpack.upgradeAssistant.esDeprecations.reindex.resolutionLabel": "重新索引", + "xpack.upgradeAssistant.esDeprecations.reindex.resolutionTooltipLabel": "通过重新索引此索引来解决此问题。此问题会自动解决。", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.closeButtonLabel": "关闭", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.deleteErrorTitle": "删除索引设置时出错", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.description": "是否移除以下过时索引{indexSettingsCount, plural, other {设置}}?", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.removeButtonLabel": "移除过时设置", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.resolvedButtonLabel": "已解决", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.retryRemoveButtonLabel": "重试移除过时设置", + "xpack.upgradeAssistant.esDeprecations.removeSettingsFlyout.secondaryDescription": "索引:{indexName}", + "xpack.upgradeAssistant.esDeprecations.table.criticalFilterLabel": "紧急", + "xpack.upgradeAssistant.esDeprecations.table.issueColumnTitle": "问题", + "xpack.upgradeAssistant.esDeprecations.table.nameColumnTitle": "名称", + "xpack.upgradeAssistant.esDeprecations.table.noDeprecationsMessage": "未找到 Elasticsearch 弃用问题", + "xpack.upgradeAssistant.esDeprecations.table.refreshButtonLabel": "刷新", + "xpack.upgradeAssistant.esDeprecations.table.resolutionColumnTitle": "解决", + "xpack.upgradeAssistant.esDeprecations.table.searchPlaceholderLabel": "筛选", + "xpack.upgradeAssistant.esDeprecations.table.statusColumnTitle": "状态", + "xpack.upgradeAssistant.esDeprecations.table.typeColumnTitle": "类型", + "xpack.upgradeAssistant.esDeprecations.table.typeFilterLabel": "类型", "xpack.upgradeAssistant.kibanaDeprecations.deprecationLabel": "Kibana", "xpack.upgradeAssistant.kibanaDeprecations.docLinkText": "文档", - "xpack.upgradeAssistant.kibanaDeprecations.loadingText": "正在加载弃用……", - "xpack.upgradeAssistant.kibanaDeprecations.pageTitle": "Kibana", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.closeButtonLabel": "关闭", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.manualFixTitle": "如何修复", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveButtonLabel": "快速解决", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveCalloutTitle": "单击 {quickResolve} 以自动修复此问题。", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveErrorTitle": "解决问题时出错", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveInProgressButtonLabel": "解决进行中……", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.quickResolveText": "快速解决", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.resolvedButtonLabel": "已解决", + "xpack.upgradeAssistant.kibanaDeprecations.flyout.retryQuickResolveButtonLabel": "重试", + "xpack.upgradeAssistant.kibanaDeprecations.kibanaDeprecationErrorDescription": "无法获取{pluginCount, plural, other {这些插件}}的弃用问题:{pluginIds}。请查阅 Kibana 服务器日志了解更多信息。", + "xpack.upgradeAssistant.kibanaDeprecations.kibanaDeprecationErrorTitle": "弃用问题列表可能不完整", + "xpack.upgradeAssistant.kibanaDeprecations.loadingText": "正在加载弃用问题……", + "xpack.upgradeAssistant.kibanaDeprecations.pageDescription": "请在升级之前解决所有紧急问题。", + "xpack.upgradeAssistant.kibanaDeprecations.pageTitle": "Kibana 弃用问题", + "xpack.upgradeAssistant.kibanaDeprecations.table.automatedCellLabel": "自动", + "xpack.upgradeAssistant.kibanaDeprecations.table.automatedCellTooltipLabel": "此问题会自动解决。", + "xpack.upgradeAssistant.kibanaDeprecations.table.automationCompleteCellLabel": "已解决", + "xpack.upgradeAssistant.kibanaDeprecations.table.automationFailedCellLabel": "解决失败", + "xpack.upgradeAssistant.kibanaDeprecations.table.automationInProgressCellLabel": "解决进行中……", + "xpack.upgradeAssistant.kibanaDeprecations.table.configDeprecationTypeCellLabel": "配置", + "xpack.upgradeAssistant.kibanaDeprecations.table.criticalFilterLabel": "紧急", + "xpack.upgradeAssistant.kibanaDeprecations.table.featureDeprecationTypeCellLabel": "功能", + "xpack.upgradeAssistant.kibanaDeprecations.table.issueColumnTitle": "问题", + "xpack.upgradeAssistant.kibanaDeprecations.table.manualCellLabel": "手动", + "xpack.upgradeAssistant.kibanaDeprecations.table.manualCellTooltipLabel": "此问题需要手动解决。", + "xpack.upgradeAssistant.kibanaDeprecations.table.refreshButtonLabel": "刷新", + "xpack.upgradeAssistant.kibanaDeprecations.table.resolutionColumnTitle": "解决", + "xpack.upgradeAssistant.kibanaDeprecations.table.searchPlaceholderLabel": "筛选", + "xpack.upgradeAssistant.kibanaDeprecations.table.statusColumnTitle": "状态", + "xpack.upgradeAssistant.kibanaDeprecations.table.typeColumnTitle": "类型", + "xpack.upgradeAssistant.kibanaDeprecations.table.typeFilterLabel": "类型", + "xpack.upgradeAssistant.kibanaDeprecations.table.unknownDeprecationTypeCellLabel": "未分类", + "xpack.upgradeAssistant.levelInfoTip.criticalLabel": "在升级之前必须解决紧急问题", + "xpack.upgradeAssistant.levelInfoTip.warningLabel": "您可以酌情忽略警告问题", + "xpack.upgradeAssistant.noDeprecationsMessage": "无问题", + "xpack.upgradeAssistant.noDeprecationsPrompt.description": "您的 {deprecationType} 配置是最新的", "xpack.upgradeAssistant.noDeprecationsPrompt.nextStepsDescription": "查看{overviewButton}以了解其他 Stack 弃用。", "xpack.upgradeAssistant.noDeprecationsPrompt.overviewLinkText": "“概览”页面", + "xpack.upgradeAssistant.noPartialDeprecationsMessage": "无", "xpack.upgradeAssistant.overview.analyzeTitle": "分析弃用日志", - "xpack.upgradeAssistant.overview.deprecationLogs.buttonLabel": "启用弃用日志记录和索引", - "xpack.upgradeAssistant.overview.deprecationLogs.deprecationWarningBody": "前往您的 logs 目录查看弃用日志,或启用日志收集以在 UI 中查看它们。", + "xpack.upgradeAssistant.overview.apiCompatibilityNoteBody": "建议您在升级之前解决所有弃用问题。如果需要,您可以将 API 兼容性标头应用于使用过时功能的请求。{learnMoreLink}。", + "xpack.upgradeAssistant.overview.apiCompatibilityNoteLink": "了解详情", + "xpack.upgradeAssistant.overview.apiCompatibilityNoteTitle": "应用 API 兼容性标头(可选)", + "xpack.upgradeAssistant.overview.backupStepDescription": "做出更改之前,请确保具有当前快照。", + "xpack.upgradeAssistant.overview.backupStepTitle": "备份您的数据", + "xpack.upgradeAssistant.overview.cloudBackup.hasSnapshotMessage": "上次创建快照的时间为 {lastBackupTime}。", + "xpack.upgradeAssistant.overview.cloudBackup.loadingError": "检索最新快照状态时出错", + "xpack.upgradeAssistant.overview.cloudBackup.noSnapshotMessage": "您的数据未备份。", + "xpack.upgradeAssistant.overview.cloudBackup.retryButton": "重试", + "xpack.upgradeAssistant.overview.cloudBackup.snapshotsLink": "创建快照", + "xpack.upgradeAssistant.overview.deprecationLogs.buttonLabel": "启用弃用日志收集", + "xpack.upgradeAssistant.overview.deprecationLogs.deniedPrivilegeDescription": "将继续索引弃用日志,但您无法分析这些日志,直到您具有索引读取{privilegesCount, plural, other {权限}}:{missingPrivileges}", + "xpack.upgradeAssistant.overview.deprecationLogs.deniedPrivilegeTitle": "您需要索引权限才能分析弃用日志", + "xpack.upgradeAssistant.overview.deprecationLogs.deprecationWarningBody": "前往您的 logs 目录查看弃用日志,或启用弃用日志收集以在 Kibana 中查看它们。", "xpack.upgradeAssistant.overview.deprecationLogs.deprecationWarningTitle": "您的日志将写入到 logs 日志", "xpack.upgradeAssistant.overview.deprecationLogs.disabledToastMessage": "将不记录已弃用 API 请求。", "xpack.upgradeAssistant.overview.deprecationLogs.enabledToastMessage": "将记录并索引已弃用 API 请求。", @@ -25489,23 +27020,56 @@ "xpack.upgradeAssistant.overview.deprecationLogs.fetchErrorMessage": "无法检索日志记录信息。", "xpack.upgradeAssistant.overview.deprecationLogs.reloadButtonLabel": "重试", "xpack.upgradeAssistant.overview.deprecationLogs.updateErrorMessage": "无法更新日志记录状态。", + "xpack.upgradeAssistant.overview.deprecationsCountCheckpointTitle": "解决弃用问题并验证您的更改", "xpack.upgradeAssistant.overview.documentationLinkText": "文档", - "xpack.upgradeAssistant.overview.identifyStepTitle": "识别已弃用 API 的使用并更新您的应用程序", - "xpack.upgradeAssistant.overview.loadingLogsLabel": "正在加载日志收集状态……", + "xpack.upgradeAssistant.overview.fixIssuesStepTitle": "复查已弃用设置并解决问题", + "xpack.upgradeAssistant.overview.loadingLogsLabel": "正在加载弃用日志收集状态……", "xpack.upgradeAssistant.overview.observe.discoveryDescription": "搜索并筛选弃用日志以了解需要进行的更改类型。", "xpack.upgradeAssistant.overview.observe.observabilityDescription": "深入了解正在使用哪些已弃用 API 以及需要更新哪些应用程序。", - "xpack.upgradeAssistant.overview.pageDescription": "准备使用下一版 Elastic Stack!", + "xpack.upgradeAssistant.overview.pageDescription": "准备使用下一版 Elastic!", "xpack.upgradeAssistant.overview.pageTitle": "升级助手", + "xpack.upgradeAssistant.overview.snapshotRestoreLink": "创建快照", + "xpack.upgradeAssistant.overview.systemIndices.body": "在升级之前迁移存储系统信息的索引。", + "xpack.upgradeAssistant.overview.systemIndices.errorLabel": "迁移失败", + "xpack.upgradeAssistant.overview.systemIndices.featureNameTableColumn": "功能", + "xpack.upgradeAssistant.overview.systemIndices.flyoutCloseButtonLabel": "关闭", + "xpack.upgradeAssistant.overview.systemIndices.flyoutDescription": "在升级之前迁移存储以下功能的信息的索引。", + "xpack.upgradeAssistant.overview.systemIndices.flyoutTitle": "迁移系统索引", + "xpack.upgradeAssistant.overview.systemIndices.inProgressButtonLabel": "正在进行迁移", + "xpack.upgradeAssistant.overview.systemIndices.loadingError": "无法检索系统索引状态", + "xpack.upgradeAssistant.overview.systemIndices.migratingLabel": "正在进行迁移", + "xpack.upgradeAssistant.overview.systemIndices.migrationCompleteLabel": "迁移完成", + "xpack.upgradeAssistant.overview.systemIndices.migrationFailedBody": "迁移 {feature} 的系统索引时出错:{failureCause}", + "xpack.upgradeAssistant.overview.systemIndices.migrationFailedTitle": "系统索引迁移失败", + "xpack.upgradeAssistant.overview.systemIndices.needsMigrationLabel": "需要迁移", + "xpack.upgradeAssistant.overview.systemIndices.noMigrationNeeded": "迁移完成", + "xpack.upgradeAssistant.overview.systemIndices.retryButtonLabel": "重试迁移", + "xpack.upgradeAssistant.overview.systemIndices.startButtonLabel": "迁移索引", + "xpack.upgradeAssistant.overview.systemIndices.statusTableColumn": "状态", + "xpack.upgradeAssistant.overview.systemIndices.title": "迁移系统索引", + "xpack.upgradeAssistant.overview.systemIndices.viewSystemIndicesStatus": "查看迁移详情", "xpack.upgradeAssistant.overview.upgradeGuideLink": "查看升级指南", "xpack.upgradeAssistant.overview.upgradeStepCloudLink": "在 Cloud 上升级", - "xpack.upgradeAssistant.overview.upgradeStepDescription": "解决所有关键问题并确认您的应用程序就绪后,便可以升级 Elastic Stack。", - "xpack.upgradeAssistant.overview.upgradeStepDescriptionForCloud": "解决所有关键问题并确认您的应用程序就绪后,便可以升级 Elastic Stack。在 Elastic Cloud 上升级您的部署。", + "xpack.upgradeAssistant.overview.upgradeStepDescription": "解决所有紧急问题并确认您的应用程序就绪后,便可以升级到 Elastic 8.x。在升级之前,请确保再次备份您的数据。", + "xpack.upgradeAssistant.overview.upgradeStepDescriptionForCloud": "解决所有紧急问题并确认您的应用程序就绪后,便可以升级到 Elastic 8.x。在升级之前,请确保再次备份您的数据。在 Elastic Cloud 上升级您的部署。", "xpack.upgradeAssistant.overview.upgradeStepLink": "了解详情", + "xpack.upgradeAssistant.overview.upgradeStepTitle": "升级到 Elastic 8.x", + "xpack.upgradeAssistant.overview.verifyChanges.calloutBody": "做出更改后,请重置计数器并继续监测,以确认您不再使用过时功能。", + "xpack.upgradeAssistant.overview.verifyChanges.calloutTitle": "自 {previousCheck} 以来出现 {warningsCount, plural, other {{warningsCount}}} 个弃用{warningsCount, plural, other {问题}} ", + "xpack.upgradeAssistant.overview.verifyChanges.errorToastTitle": "无法删除弃用日志缓存", + "xpack.upgradeAssistant.overview.verifyChanges.loadingError": "检索弃用日志计数时出错", + "xpack.upgradeAssistant.overview.verifyChanges.resetCounterButton": "重置计数器", + "xpack.upgradeAssistant.overview.verifyChanges.retryButton": "重试", "xpack.upgradeAssistant.overview.viewDiscoverResultsAction": "在 Discover 中分析日志", "xpack.upgradeAssistant.overview.viewObservabilityResultsAction": "在可观测性中查看弃用日志", + "xpack.upgradeAssistant.overview.whatsNewLink": "8.x 版新增功能", "xpack.upgradeAssistant.reindex.reindexPrivilegesErrorBatch": "您没有足够的权限重新索引“{indexName}”。", - "xpack.upgradeAssistant.status.allDeprecationsResolvedMessage": "所有弃用问题已解决。", - "xpack.upgradeAssistant.status.deprecationsUnresolvedMessage": "您具有 {esTotalCriticalDeps} 个 Elasticsearch 弃用问题和 {kibanaTotalCriticalDeps} Kibana 弃用问题,必须解决它们才能进行升级。", + "xpack.upgradeAssistant.status.allDeprecationsResolvedMessage": "所有弃用警告均已解决。", + "xpack.upgradeAssistant.status.deprecationsUnresolvedMessage": "您具有 {esTotalCriticalDeps} 个 Elasticsearch 弃用{esTotalCriticalDeps, plural, other {问题}}和 {kibanaTotalCriticalDeps} 个 Kibana 弃用{kibanaTotalCriticalDeps, plural, other {问题}},必须解决它们才能进行升级。", + "xpack.upgradeAssistant.upgradedDescription": "所有 Elasticsearch 节点已升级。可以现在升级 Kibana。", + "xpack.upgradeAssistant.upgradedTitle": "您的集群已升级", + "xpack.upgradeAssistant.upgradingDescription": "一个或多个 Elasticsearch 节点的 Elasticsearch 版本比 Kibana 版本新。所有节点升级后,请升级 Kibana。", + "xpack.upgradeAssistant.upgradingTitle": "您的集群正在升级", "xpack.uptime.addDataButtonLabel": "添加数据", "xpack.uptime.alerts.anomaly.criteriaExpression.ariaLabel": "显示选定监测的条件的表达式。", "xpack.uptime.alerts.anomaly.criteriaExpression.description": "当监测", @@ -25524,7 +27088,7 @@ "xpack.uptime.alerts.durationAnomaly.actionVariables.state.slowestAnomalyResponse": "在附加单位(ms、s)的异常存储桶期间最慢的响应时间。", "xpack.uptime.alerts.durationAnomaly.clientName": "Uptime 持续时间异常", "xpack.uptime.alerts.durationAnomaly.defaultActionMessage": "{anomalyStartTimestamp} 在 url {monitorUrl} 的 {monitor} 上检测到异常({severity} 级别)响应时间。异常严重性分数为 {severityScore}。\n从位置 {observerLocation} 检测到高达 {slowestAnomalyResponse} 的响应时间。预期响应时间为 {expectedResponseTime}。", - "xpack.uptime.alerts.durationAnomaly.description": "运行时间监测持续时间有异常时告警。", + "xpack.uptime.alerts.durationAnomaly.description": "运行时间监测持续时间异常时告警。", "xpack.uptime.alerts.monitorExpression.label": "移除筛选 {title}", "xpack.uptime.alerts.monitorStatus": "运行时间监测状态", "xpack.uptime.alerts.monitorStatus.actionVariables.availabilityMessage": "低于阈值,{availabilityRatio}% 可用性应为 {expectedAvailability}%", @@ -25553,6 +27117,7 @@ "xpack.uptime.alerts.monitorStatus.addFilter.tag": "标签", "xpack.uptime.alerts.monitorStatus.addFilter.type": "类型", "xpack.uptime.alerts.monitorStatus.availability.isEnabledCheckbox.label": "可用性", + "xpack.uptime.alerts.monitorStatus.availability.threshold.anyMonitorDescription": "任何监测启动于", "xpack.uptime.alerts.monitorStatus.availability.threshold.ariaLabel": "指定此告警的可用性阈值", "xpack.uptime.alerts.monitorStatus.availability.threshold.description": "匹配的监测运行于", "xpack.uptime.alerts.monitorStatus.availability.threshold.input.ariaLabel": "输入用于检查此告警的可用性阈值", @@ -25627,6 +27192,7 @@ "xpack.uptime.alerts.tls.criteriaExpression.ariaLabel": "显示此告警监视的监测条件的表达式", "xpack.uptime.alerts.tls.criteriaExpression.description": "当", "xpack.uptime.alerts.tls.criteriaExpression.value": "任意监测", + "xpack.uptime.alerts.tls.defaultActionMessage": "检测到来自颁发者 {issuer} 的 TLS 证书 {commonName} 的状态为 {status}。证书 {summary}\n", "xpack.uptime.alerts.tls.description": "运行时间监测的 TLS 证书即将过期时告警。", "xpack.uptime.alerts.tls.expirationExpression.ariaLabel": "显示将触发证书过期 TLS 告警的阈值的表达式", "xpack.uptime.alerts.tls.expirationExpression.description": "具有将在", @@ -25635,6 +27201,7 @@ "xpack.uptime.alerts.tls.expiringLabel": "将到期", "xpack.uptime.alerts.tls.invalidLabel": "无效", "xpack.uptime.alerts.tls.legacy.clientName": "Uptime TLS(旧版)", + "xpack.uptime.alerts.tls.legacy.defaultActionMessage": "检测到 {count} 个 TLS 证书即将过期或即将过时。\n{expiringConditionalOpen}\n即将过期的证书计数:{expiringCount}\n即将过期的证书:{expiringCommonNameAndDate}\n{expiringConditionalClose}\n{agingConditionalOpen}\n过时的证书计数:{agingCount}\n过时的证书:{agingCommonNameAndDate}\n{agingConditionalClose}\n", "xpack.uptime.alerts.tls.legacy.description": "运行时间监测的 TLS 证书即将过期时告警。未来的版本将弃用此告警。", "xpack.uptime.alerts.tls.settingsPageNav.text": "可以在 {settingsPageLink}上编辑这些阈值。", "xpack.uptime.alerts.tls.validAfterExpiredString": "已于 {relativeDate} 天前,即 {date}到期。", @@ -25654,6 +27221,7 @@ "xpack.uptime.breadcrumbs.observabilityText": "可观测性", "xpack.uptime.breadcrumbs.overviewBreadcrumbText": "运行时间", "xpack.uptime.certificates.heading": "TLS 证书 ({total})", + "xpack.uptime.certificates.loading": "正在加载证书......", "xpack.uptime.certificates.refresh": "刷新", "xpack.uptime.certificatesPage.heading": "TLS 证书", "xpack.uptime.certificatesRoute.title": "证书 | {baseTitle}", @@ -25681,13 +27249,25 @@ "xpack.uptime.controls.selectSeverity.minorLabel": "轻微", "xpack.uptime.controls.selectSeverity.scoreDetailsDescription": "{value} 及以上分数", "xpack.uptime.controls.selectSeverity.warningLabel": "警告", + "xpack.uptime.createPackagePolicy.stepConfigure.browser.scriptRecorder.experimentalLabel": "技术预览", + "xpack.uptime.createPackagePolicy.stepConfigure.browser.scriptRecorder.experimentalTooltip": "预览通过 Elastic Synthetics 记录器创建 Elastic Synthetics 监测脚本的最快方式", + "xpack.uptime.createPackagePolicy.stepConfigure.browser.scriptRecorder.label": "脚本记录器", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.description": "为 Synthetics 代理提供微调的配置。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.filtering.description": "使用这些选项可将选定监测设置应用于您套件中的测试子集。仅配置的子集由此监测运行。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.filtering.title": "选择性测试", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.ignoreHttpsErrors.helpText": "将此选项设为 true 可在 Synthetics 浏览器中禁用 TLS/SSL 验证。这对于使用自签名证书的测试站点很有用。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.ignoreHttpsErrors.label": "忽略 HTTPS 错误", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.journeyFiltersMatch.helpText": "通过此监测仅运行名称与提供的 glob 匹配的过程。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.journeyFiltersMatch.label": "筛选匹配", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.journeyFiltersTags.helpText": "通过此监测仅运行具有给定标签的过程。", + "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.journeyFiltersTags.label": "筛选标签", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.screenshots.helpText": "设置此选项以管理 Synthetics 代理捕获的屏幕截图。", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.screenshots.label": "屏幕截图选项", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.syntheticsArgs.helpText": "要传递给 Synthetics 代理软件包的附加参数。取字符串列表。这在极少情况下有用,通常应不需要设置。", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.syntheticsArgs.label": "Synthetics 参数", "xpack.uptime.createPackagePolicy.stepConfigure.browserAdvancedSettings.title": "Synthetics 代理选项", "xpack.uptime.createPackagePolicy.stepConfigure.certificateSettings.enableSSLSettings.label": "启用 TLS 配置", + "xpack.uptime.createPackagePolicy.stepConfigure.certificateSettings.enableZipUrlSSLSettings.label": "启用用于 Zip URL 的 TLS 配置", "xpack.uptime.createPackagePolicy.stepConfigure.certsField.certificate.helpText": "用于 TLS 客户端身份验证的 PEM 格式证书。", "xpack.uptime.createPackagePolicy.stepConfigure.certsField.certificate.label": "证书", "xpack.uptime.createPackagePolicy.stepConfigure.certsField.certificateAuthorities.helpText": "PEM 格式自定义证书颁发机构。", @@ -25745,15 +27325,26 @@ "xpack.uptime.createPackagePolicy.stepConfigure.inputVarFieldOptionalLabel": "可选", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.APMServiceName.helpText": "此监测的 APM 服务名称。对应于 service.name ECS 字段。监测也使用 APM 的应用时设置此选项以启用 Kibana 中的 Uptime 和 APM 数据之间的集成。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.APMServiceName.label": "APM 服务名称", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.brower.proxyURL.label": "Zip 代理 URL", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.http.helpText": "用于 Zip URL 的 HTTP 代理。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.inlineScript.error": "“脚本”必填", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.inlineScript.helpText": "运行内联定义的 Synthetics 测试脚本。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.inlineScript.label": "内联脚本", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.params.helpText": "JSON 对象,定义您的测试所需的任何变量。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.params.label": "参数", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.scriptRecorder.closeButtonLabel": "关闭脚本浮出控件", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.scriptRecorder.mockFileName": "test_script.js", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.sourceType.label": "源类型", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.uploader.fieldLabel": "正在测试脚本", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.uploader.invalidFileError": "文件类型无效。请上传由 Elastic Synthetics 记录器生成的 .js 文件。", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.uploader.label": "选择记录器生成的 .js 文件", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.uploader.parsingError": "上传文件时出错。请上传 Elastic Synthetics 记录器以内联脚本格式生成的 .js 文件。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.error": "ZIP URL 必填", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.helpText": "Synthetics 项目存储库 zip 文件的位置。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.label": "Zip URL", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.recorderLink": "下载 Elastic Synthetics 记录器", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.removeScriptLabel": "移除脚本", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrl.showScriptLabel": "显示脚本", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrlFolder.helpText": "合成旅程文件在存储库中所在的相对目录路径。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrlFolder.label": "文件夹", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.browser.zipUrlPassword.abel": "Zip URL 密码", @@ -25768,6 +27359,8 @@ "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorInterval": "监测时间间隔", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorInterval.error": "“监测时间间隔”必填。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorType": "监测类型", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorType.browser.warning.description": "要创建“浏览器”监测,请确保使用 elastic-agent-complete Docker 容器,其中包含运行这些监测的依赖项。有关更多信息,请访问我们的 {link}。", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorType.browser.warning.link": "Synthetics 文档", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.monitorType.error": "“监测类型”必填。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.password.helpText": "用于在服务器上进行身份验证的密码。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.password.label": "密码", @@ -25776,7 +27369,7 @@ "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.proxyURL.label": "代理 URL", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.proxyUrl.tcp.helpText": "连接到服务器时要使用的 SOCKS5 代理的 URL。该值必须是具有 socks5:// 方案的 URL。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.resolveHostnamesLocally": "本地解析主机名", - "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tags.helpText": "将随监测事件一起发送的标签列表。按 enter 键添加新的选项卡。显示在 Uptime 中并启用按标签搜索。", + "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tags.helpText": "将随监测事件一起发送的标签列表。按 enter 键添加新标签。显示在 Uptime 中并启用按标签搜索。", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tags.label": "标签", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tcp.hosts": "主机:端口", "xpack.uptime.createPackagePolicy.stepConfigure.monitorIntegrationSettingsSection.tcp.hosts.error": "主机和端口必填", @@ -25833,6 +27426,7 @@ "xpack.uptime.filterBar.options.tagsLabel": "标签", "xpack.uptime.fleetIntegration.assets.description": "在 Uptime 中查看监测", "xpack.uptime.fleetIntegration.assets.name": "监测", + "xpack.uptime.inspectButtonText": "检查", "xpack.uptime.integrationLink.missingDataMessage": "未找到此集成的所需数据。", "xpack.uptime.keyValuePairsField.deleteItem.label": "删除项目编号 {index},{key}:{value}", "xpack.uptime.keyValuePairsField.key.ariaLabel": "钥匙", @@ -25842,6 +27436,9 @@ "xpack.uptime.kueryBar.searchPlaceholder.kql": "使用 kql 语法搜索监测 ID、名称和类型等(例如 monitor.type: \"http\" AND tags: \"dev\")", "xpack.uptime.kueryBar.searchPlaceholder.simple": "按监测 ID、名称或 url(例如 http://)搜索", "xpack.uptime.locationName.helpLinkAnnotation": "添加位置", + "xpack.uptime.mappingErrorRoute.breadcrumb": "映射错误", + "xpack.uptime.mappingErrorRoute.pageHeader.title": "映射错误", + "xpack.uptime.mappingErrorRoute.title": "Synthetics | 映射错误", "xpack.uptime.millisecond.abbreviation.label": "ms", "xpack.uptime.ml.durationChart.exploreInMlApp": "在 ML 应用中浏览", "xpack.uptime.ml.enableAnomalyDetectionPanel.anomalyDetectionTitle": "异常检测", @@ -25853,6 +27450,7 @@ "xpack.uptime.ml.enableAnomalyDetectionPanel.enable_or_manage_job": "您可以启用异常检测作业,或者如果此处已有作业,则可以管理该作业或告警。", "xpack.uptime.ml.enableAnomalyDetectionPanel.enableAnomalyAlert": "启用异常告警", "xpack.uptime.ml.enableAnomalyDetectionPanel.enableAnomalyDetectionTitle": "启用异常检测", + "xpack.uptime.ml.enableAnomalyDetectionPanel.jobCreatedLazyNotificationText": "分析正等待 ML 节点变为可用。可能要花费点时间,才会将结果添加到响应时间图表。", "xpack.uptime.ml.enableAnomalyDetectionPanel.jobCreatedNotificationText": "现在正在运行响应持续时间图表的分析。可能要花费点时间,才会将结果添加到响应时间图表。", "xpack.uptime.ml.enableAnomalyDetectionPanel.jobCreatedNotificationText.viewJobLinkText": "查看作业", "xpack.uptime.ml.enableAnomalyDetectionPanel.jobCreatedNotificationTitle": "作业已成功创建", @@ -25973,6 +27571,9 @@ "xpack.uptime.monitorStatusBar.type.label": "类型", "xpack.uptime.navigateToAlertingButton.content": "管理规则", "xpack.uptime.navigateToAlertingUi": "离开 Uptime 并前往“Alerting 管理”页面", + "xpack.uptime.noDataConfig.beatsCard.description": "主动监测站点和服务的可用性。接收告警并更快地解决问题,从而优化用户体验。", + "xpack.uptime.noDataConfig.beatsCard.title": "通过 Elastic Synthetics 集成添加监测", + "xpack.uptime.noDataConfig.solutionName": "可观测性", "xpack.uptime.notFountPage.homeLinkText": "返回主页", "xpack.uptime.openAlertContextPanel.ariaLabel": "打开规则上下文面板,以便可以选择规则类型", "xpack.uptime.openAlertContextPanel.label": "创建规则", @@ -25990,7 +27591,7 @@ "xpack.uptime.overviewPageLink.disabled.ariaLabel": "禁用的分页按钮表示在监测列表中无法进行进一步导航。", "xpack.uptime.overviewPageLink.next.ariaLabel": "下页结果", "xpack.uptime.overviewPageLink.prev.ariaLabel": "上页结果", - "xpack.uptime.page_header.addDataLink.label": "导航到有关如何添加 Uptime 数据的教程", + "xpack.uptime.page_header.addDataLink.label": "导航到 Elastic Synthetics 集成以添加 Uptime 数据", "xpack.uptime.page_header.analyzeData.label": "导航到“分析数据”视图以可视化 Synthetics/用户数据", "xpack.uptime.page_header.defineConnector.popover.defaultLink": "定义默认连接器", "xpack.uptime.page_header.defineConnector.settingsLink": "设置", @@ -26026,6 +27627,9 @@ "xpack.uptime.pingList.synthetics.waterfall.filters.popover": "单击以打开瀑布筛选", "xpack.uptime.pingList.timestampColumnLabel": "时间戳", "xpack.uptime.pluginDescription": "运行时间监测", + "xpack.uptime.public.pages.mappingError.bodyDocsLink": "您可以在 {docsLink} 中了解如何解决此问题。", + "xpack.uptime.public.pages.mappingError.bodyMessage": "检测到不正确的映射!可能您忘记运行 Heartbeat {setup} 命令?", + "xpack.uptime.public.pages.mappingError.title": "Heartbeat 映射缺失", "xpack.uptime.routes.baseTitle": "Uptime - Kibana", "xpack.uptime.seconds.label": "秒", "xpack.uptime.seconds.shortForm.label": "秒", @@ -26097,6 +27701,9 @@ "xpack.uptime.synthetics.journey.allSucceededMessage": "{total} 个步骤 - 全部成功", "xpack.uptime.synthetics.journey.loadingSteps": "正在加载步骤......", "xpack.uptime.synthetics.journey.partialSuccessMessage": "{total} 个步骤 - {succeeded} 个成功", + "xpack.uptime.synthetics.markers.explore": "浏览", + "xpack.uptime.synthetics.markers.noFieldIcon.label": "一个图标,表示此标记没有与其关联的字段", + "xpack.uptime.synthetics.markers.openEmbeddableButton.label": "使用此图标按钮可显示该标注标记的指标。", "xpack.uptime.synthetics.nextStepButton.ariaLabel": "下一步", "xpack.uptime.synthetics.performanceBreakDown.label": "性能细目", "xpack.uptime.synthetics.pingTimestamp.captionContent": "第 {stepNumber} 步,共 {totalSteps} 步", @@ -26118,12 +27725,18 @@ "xpack.uptime.synthetics.stepList.nextCheck": "下一检查", "xpack.uptime.synthetics.stepList.previousCheck": "上一检查", "xpack.uptime.synthetics.thumbnail.fullSize.alt": "此过程步骤的缩略图屏幕截图较大版本。", + "xpack.uptime.synthetics.waterfall.domContentLabel": "DOM 内容已加载", + "xpack.uptime.synthetics.waterfall.fcpLabel": "首次内容绘制", "xpack.uptime.synthetics.waterfall.filterGroup.filterScreenreaderLabel": "筛选依据", "xpack.uptime.synthetics.waterfall.filterGroup.removeFilterScreenReaderLabel": "移除筛选依据", "xpack.uptime.synthetics.waterfall.flyout.certificates": "证书标头", "xpack.uptime.synthetics.waterfall.flyout.details": "详情", "xpack.uptime.synthetics.waterfall.flyout.requestHeaders": "请求标头", "xpack.uptime.synthetics.waterfall.flyout.responseHeaders": "响应标头", + "xpack.uptime.synthetics.waterfall.layoutShiftLabel": "布局切换", + "xpack.uptime.synthetics.waterfall.lcpLabel": "最大内容绘制", + "xpack.uptime.synthetics.waterfall.loadEventLabel": "加载事件", + "xpack.uptime.synthetics.waterfall.offsetUnit": "{offset} 毫秒", "xpack.uptime.synthetics.waterfall.requestsHighlightedMessage": "({numHighlightedRequests}匹配筛选)", "xpack.uptime.synthetics.waterfall.requestsTotalMessage": "{numNetworkRequests}个网络请求", "xpack.uptime.synthetics.waterfall.requestsTotalMessage.first": "前 {count} 个", @@ -26161,6 +27774,7 @@ "xpack.uptime.toggleTlsAlertButton.ariaLabel": "打开 TLS 规则浮出控件", "xpack.uptime.toggleTlsAlertButton.content": "TLS 规则", "xpack.uptime.uptimeFeatureCatalogueTitle": "运行时间", + "xpack.uptime.uptimeSettings.index": "Uptime 设置 - 索引", "xpack.uptime.waterfallChart.sidebar.url.https": "https", "xpack.urlDrilldown.click.event.key.documentation": "已点击数据点背后的字段名称。", "xpack.urlDrilldown.click.event.key.title": "已点击字段的名称。", diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/json_editor_with_message_variables.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/json_editor_with_message_variables.tsx index 7ed041eace38d..fbe86403bd317 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/json_editor_with_message_variables.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/json_editor_with_message_variables.tsx @@ -6,13 +6,13 @@ */ import React, { useState } from 'react'; -import { EuiCodeEditor, EuiFormRow } from '@elastic/eui'; +import { EuiFormRow } from '@elastic/eui'; -import 'brace/theme/github'; import { XJsonMode } from '@kbn/ace'; +import 'brace/theme/github'; import './add_message_variables.scss'; -import { XJson } from '../../../../../../src/plugins/es_ui_shared/public'; +import { XJson, EuiCodeEditor } from '../../../../../../src/plugins/es_ui_shared/public'; import { AddMessageVariables } from './add_message_variables'; import { ActionVariable } from '../../../../alerting/common'; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api/alert_summary.test.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api/alert_summary.test.ts index a590b4025e82a..42044ef5e4df1 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api/alert_summary.test.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api/alert_summary.test.ts @@ -30,7 +30,7 @@ describe('loadAlertSummary', () => { throttle: null, executionDuration: { average: 0, - values: [], + valuesWithTimestamp: {}, }, }; @@ -51,7 +51,7 @@ describe('loadAlertSummary', () => { throttle: null, execution_duration: { average: 0, - values: [], + valuesWithTimestamp: {}, }, }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api/alert_summary.ts b/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api/alert_summary.ts index 9a4109ae1ff37..d11b1191accc5 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api/alert_summary.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/alert_api/alert_summary.ts @@ -6,9 +6,17 @@ */ import { HttpSetup } from 'kibana/public'; import { INTERNAL_BASE_ALERTING_API_PATH } from '../../constants'; -import { AlertSummary } from '../../../types'; +import { AlertSummary, ExecutionDuration } from '../../../types'; import { RewriteRequestCase, AsApiContract } from '../../../../../actions/common'; +const transformExecutionDuration: RewriteRequestCase<ExecutionDuration> = ({ + values_with_timestamp: valuesWithTimestamp, + ...rest +}) => ({ + valuesWithTimestamp, + ...rest, +}); + const rewriteBodyRes: RewriteRequestCase<AlertSummary> = ({ rule_type_id: ruleTypeId, mute_all: muteAll, @@ -26,7 +34,7 @@ const rewriteBodyRes: RewriteRequestCase<AlertSummary> = ({ statusEndDate, errorMessages, lastRun, - executionDuration, + executionDuration: executionDuration ? transformExecutionDuration(executionDuration) : undefined, }); export async function loadAlertSummary({ diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx index 16466fc9a210d..1bf833acfaf30 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx @@ -231,7 +231,7 @@ const ConnectorAddFlyout: React.FunctionComponent<ConnectorAddFlyoutProps> = ({ {onTestConnector && ( <EuiFlexItem grow={false}> <EuiButton - color="secondary" + color="success" data-test-subj="saveAndTestNewActionButton" type="submit" isLoading={isSaving} @@ -252,7 +252,7 @@ const ConnectorAddFlyout: React.FunctionComponent<ConnectorAddFlyoutProps> = ({ <EuiFlexItem grow={false}> <EuiButton fill - color="secondary" + color="success" data-test-subj="saveNewActionButton" type="submit" isLoading={isSaving} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_modal.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_modal.tsx index 7fd6931c936f5..474a124905c89 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_modal.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_modal.tsx @@ -216,7 +216,7 @@ const ConnectorAddModal = ({ {canSave ? ( <EuiButton fill - color="secondary" + color="success" data-test-subj="saveActionButtonModal" type="submit" iconType="check" diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx index 206ae0bf5018b..51f622d0b5de5 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx @@ -392,7 +392,7 @@ const ConnectorEditFlyout = ({ <> <EuiFlexItem grow={false}> <EuiButton - color="secondary" + color="success" data-test-subj="saveEditedActionButton" isLoading={isSaving || isExecutingAction} onClick={async () => { @@ -408,7 +408,7 @@ const ConnectorEditFlyout = ({ <EuiFlexItem grow={false}> <EuiButton fill - color="secondary" + color="success" data-test-subj="saveAndCloseEditedActionButton" type="submit" isLoading={isSaving || isExecutingAction} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alerts.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alerts.test.tsx index c851f0f273064..918b71a85cc51 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alerts.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alerts.test.tsx @@ -303,7 +303,7 @@ describe('execution duration overview', () => { const rule = mockRule(); const ruleType = mockRuleType({ ruleTaskTimeout: '10m' }); const alertSummary = mockAlertSummary({ - executionDuration: { average: 60284, values: [] }, + executionDuration: { average: 60284, valuesWithTimestamp: {} }, }); const wrapper = mountWithIntl( @@ -334,7 +334,7 @@ describe('execution duration overview', () => { const rule = mockRule(); const ruleType = mockRuleType({ ruleTaskTimeout: '10m' }); const alertSummary = mockAlertSummary({ - executionDuration: { average: 60284345, values: [] }, + executionDuration: { average: 60284345, valuesWithTimestamp: {} }, }); const wrapper = mountWithIntl( @@ -453,7 +453,7 @@ function mockAlertSummary(overloads: Partial<AlertSummary> = {}): AlertSummary { }, executionDuration: { average: 0, - values: [], + valuesWithTimestamp: {}, }, }; return { ...summary, ...overloads }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alerts_route.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alerts_route.test.tsx index 032539aadc702..9544c94982980 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alerts_route.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_details/components/alerts_route.test.tsx @@ -171,7 +171,7 @@ function mockAlertSummary(overloads: Partial<any> = {}): any { }, executionDuration: { average: 0, - values: [], + valuesWithTimestamp: {}, }, }; return summary; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add_footer.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add_footer.tsx index ee36257dedf0b..ef96c80be6dda 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add_footer.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add_footer.tsx @@ -55,7 +55,7 @@ export const AlertAddFooter = ({ <EuiFlexItem grow={false}> <EuiButton fill - color="secondary" + color="success" data-test-subj="saveAlertButton" type="submit" iconType="check" diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx index f8c506fa1e8ba..11f75994486a5 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx @@ -228,7 +228,7 @@ export const AlertEdit = ({ <EuiFlexItem grow={false}> <EuiButton fill - color="secondary" + color="success" data-test-subj="saveEditedAlertButton" type="submit" iconType="check" diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/execution_duration_chart.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/execution_duration_chart.test.tsx index 1f758de1912c4..9d32dd27cd2f4 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/execution_duration_chart.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/execution_duration_chart.test.tsx @@ -27,7 +27,10 @@ describe('execution duration chart', () => { }); it('renders chart when execution duration values are available', async () => { - const executionDuration = mockExecutionDuration({ average: 10, values: [1, 2] }); + const executionDuration = mockExecutionDuration({ + average: 10, + valuesWithTimestamp: { '17 Nov 2021 @ 19:19:17': 1, '17 Nov 2021 @ 20:19:17': 2 }, + }); const wrapper = mountWithIntl(<ExecutionDurationChart executionDuration={executionDuration} />); @@ -44,27 +47,69 @@ describe('execution duration chart', () => { describe('padOrTruncateDurations', () => { it('does nothing when array is the correct length', () => { - expect(padOrTruncateDurations([1, 2, 3], 3)).toEqual([1, 2, 3]); + expect( + padOrTruncateDurations( + { '17 Nov 2021 @ 16:16:17': 1, '17 Nov 2021 @ 16:17:17': 2, '17 Nov 2021 @ 19:19:17': 3 }, + 3 + ) + ).toEqual([ + ['17 Nov 2021 @ 16:16:17', 1], + ['17 Nov 2021 @ 16:17:17', 2], + ['17 Nov 2021 @ 19:19:17', 3], + ]); }); it('pads execution duration values when there are fewer than display desires', () => { - expect(padOrTruncateDurations([1, 2, 3], 10)).toEqual([ - 1, - 2, - 3, - null, - null, - null, - null, - null, - null, - null, + expect( + padOrTruncateDurations( + { '17 Nov 2021 @ 16:16:17': 1, '17 Nov 2021 @ 16:17:17': 2, '17 Nov 2021 @ 19:19:17': 3 }, + 10 + ) + ).toEqual([ + ['17 Nov 2021 @ 16:16:17', 1], + ['17 Nov 2021 @ 16:17:17', 2], + ['17 Nov 2021 @ 19:19:17', 3], + [null, null], + [null, null], + [null, null], + [null, null], + [null, null], + [null, null], + [null, null], ]); }); it('truncates execution duration values when there are more than display desires', () => { - expect(padOrTruncateDurations([1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13], 10)).toEqual([ - 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, + expect( + padOrTruncateDurations( + { + '17 Nov 2021 @ 16:16:17': 1, + '17 Nov 2021 @ 16:17:17': 2, + '17 Nov 2021 @ 19:19:17': 3, + '17 Nov 2021 @ 20:19:17': 4, + '17 Nov 2021 @ 21:19:17': 5, + '17 Nov 2021 @ 22:19:17': 6, + '17 Nov 2021 @ 23:19:17': 7, + '18 Nov 2021 @ 19:19:17': 8, + '19 Nov 2021 @ 19:19:17': 9, + '19 Nov 2021 @ 20:19:17': 10, + '19 Nov 2021 @ 21:19:17': 11, + '20 Nov 2021 @ 19:19:17': 12, + '20 Nov 2021 @ 20:19:17': 13, + }, + 10 + ) + ).toEqual([ + ['17 Nov 2021 @ 20:19:17', 4], + ['17 Nov 2021 @ 21:19:17', 5], + ['17 Nov 2021 @ 22:19:17', 6], + ['17 Nov 2021 @ 23:19:17', 7], + ['18 Nov 2021 @ 19:19:17', 8], + ['19 Nov 2021 @ 19:19:17', 9], + ['19 Nov 2021 @ 20:19:17', 10], + ['19 Nov 2021 @ 21:19:17', 11], + ['20 Nov 2021 @ 19:19:17', 12], + ['20 Nov 2021 @ 20:19:17', 13], ]); }); }); @@ -72,12 +117,12 @@ describe('padOrTruncateDurations', () => { function mockExecutionDuration( overwrites: { average?: number; - values?: number[]; + valuesWithTimestamp?: Record<string, number>; } = {} ) { return { average: 0, - values: [], + valuesWithTimestamp: {}, ...overwrites, }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/execution_duration_chart.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/execution_duration_chart.tsx index 6b5a7ee3b3e4d..c376095938c68 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/execution_duration_chart.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/common/components/execution_duration_chart.tsx @@ -19,12 +19,13 @@ import { import { euiLightVars as lightEuiTheme } from '@kbn/ui-shared-deps-src/theme'; import { Axis, BarSeries, Chart, CurveType, LineSeries, Settings } from '@elastic/charts'; import { assign, fill } from 'lodash'; +import moment from 'moment'; import { formatMillisForDisplay } from '../../../lib/execution_duration_utils'; export interface ComponentOpts { executionDuration: { average: number; - values: number[]; + valuesWithTimestamp: Record<string, number>; }; } @@ -34,7 +35,7 @@ export const ExecutionDurationChart: React.FunctionComponent<ComponentOpts> = ({ executionDuration, }: ComponentOpts) => { const paddedExecutionDurations = padOrTruncateDurations( - executionDuration.values, + executionDuration.valuesWithTimestamp, DESIRED_NUM_EXECUTION_DURATIONS ); @@ -69,7 +70,8 @@ export const ExecutionDurationChart: React.FunctionComponent<ComponentOpts> = ({ </EuiFlexItem> </EuiFlexGroup> - {executionDuration.values && executionDuration.values.length > 0 ? ( + {executionDuration.valuesWithTimestamp && + Object.entries(executionDuration.valuesWithTimestamp).length > 0 ? ( <> <Chart data-test-subj="executionDurationChart" size={{ height: 80 }}> <Settings @@ -92,7 +94,10 @@ export const ExecutionDurationChart: React.FunctionComponent<ComponentOpts> = ({ yScaleType="linear" xAccessor={0} yAccessors={[1]} - data={paddedExecutionDurations.map((val, ndx) => [ndx, val])} + data={paddedExecutionDurations.map(([timestamp, val], ndx) => [ + timestamp ? moment(timestamp).format('D MMM YYYY @ HH:mm:ss') : ndx, + val, + ])} minBarHeight={2} /> <LineSeries @@ -107,8 +112,8 @@ export const ExecutionDurationChart: React.FunctionComponent<ComponentOpts> = ({ yScaleType="linear" xAccessor={0} yAccessors={[1]} - data={paddedExecutionDurations.map((val, ndx) => [ - ndx, + data={paddedExecutionDurations.map(([timestamp, val], ndx) => [ + timestamp ? moment(timestamp).format('D MMM YYYY @ HH:mm:ss') : ndx, val ? executionDuration.average : null, ])} curve={CurveType.CURVE_NATURAL} @@ -137,11 +142,15 @@ export const ExecutionDurationChart: React.FunctionComponent<ComponentOpts> = ({ ); }; -export function padOrTruncateDurations(values: number[], desiredSize: number) { +export function padOrTruncateDurations( + valuesWithTimestamp: Record<string, number>, + desiredSize: number +) { + const values = Object.entries(valuesWithTimestamp); if (values.length === desiredSize) { return values; } else if (values.length < desiredSize) { - return assign(fill(new Array(desiredSize), null), values); + return assign(fill(new Array(desiredSize), [null, null]), values); } else { // oldest durations are at the start of the array, so take the last {desiredSize} values return values.slice(-desiredSize); diff --git a/x-pack/plugins/triggers_actions_ui/public/types.ts b/x-pack/plugins/triggers_actions_ui/public/types.ts index b086ab147ca1c..b61e8fbe40f7d 100644 --- a/x-pack/plugins/triggers_actions_ui/public/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/types.ts @@ -29,6 +29,7 @@ import { AlertAggregations, AlertTaskState, AlertSummary, + ExecutionDuration, AlertStatus, RawAlertInstance, AlertingFrameworkHealth, @@ -49,6 +50,7 @@ export type { AlertAggregations, AlertTaskState, AlertSummary, + ExecutionDuration, AlertStatus, RawAlertInstance, AlertingFrameworkHealth, diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/components/flyout_frame/flyout_frame.tsx b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/components/flyout_frame/flyout_frame.tsx index 6465f792d1d2e..f953776953067 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/components/flyout_frame/flyout_frame.tsx +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/components/flyout_frame/flyout_frame.tsx @@ -45,7 +45,7 @@ export const FlyoutFrame: React.FC<FlyoutFrameProps> = ({ <EuiFlexItem grow={false}> <div style={{ marginLeft: '-8px', marginTop: '-4px' }}> <EuiButtonIcon - color={'subdued'} + color="text" onClick={onBack} iconType="arrowLeft" aria-label={txtBack} diff --git a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/state/drilldown_manager_state.ts b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/state/drilldown_manager_state.ts index e363d154dc141..15997355a2ae2 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/state/drilldown_manager_state.ts +++ b/x-pack/plugins/ui_actions_enhanced/public/drilldowns/drilldown_manager/state/drilldown_manager_state.ts @@ -107,9 +107,7 @@ export class DrilldownManagerState { triggerIncompatible: !this.deps.triggers.find((t) => t === firstTrigger), }; }; - public readonly events$ = new BehaviorSubject<DrilldownTableItem[]>( - this.deps.dynamicActionManager.state.get().events.map(this.mapEventToDrilldownItem) - ); + public readonly events$: BehaviorSubject<DrilldownTableItem[]>; /** * State for each drilldown type used for new drilldown creation, so when user @@ -136,6 +134,10 @@ export class DrilldownManagerState { (factory) => !factory.isCompatibleLicense ); + this.events$ = new BehaviorSubject<DrilldownTableItem[]>( + this.deps.dynamicActionManager.state.get().events.map(this.mapEventToDrilldownItem) + ); + deps.dynamicActionManager.state.state$ .pipe(map((state) => state.events.map(this.mapEventToDrilldownItem))) .subscribe(this.events$); diff --git a/x-pack/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts b/x-pack/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts index 888d28a17547f..4115e3febe2bd 100644 --- a/x-pack/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts +++ b/x-pack/plugins/ui_actions_enhanced/public/dynamic_actions/action_factory.ts @@ -5,8 +5,13 @@ * 2.0. */ +import type { UiComponent, CollectConfigProps } from 'src/plugins/kibana_utils/public'; +import type { MigrateFunctionsObject } from 'src/plugins/kibana_utils/common'; import { uiToReactComponent } from '../../../../../src/plugins/kibana_react/public'; -import type { UiActionsPresentable as Presentable } from '../../../../../src/plugins/ui_actions/public'; +import type { + UiActionsPresentable as Presentable, + ActionMenuItemProps, +} from '../../../../../src/plugins/ui_actions/public'; import type { ActionFactoryDefinition } from './action_factory_definition'; import type { Configurable } from '../../../../../src/plugins/kibana_utils/public'; import type { @@ -15,7 +20,7 @@ import type { SerializedAction, SerializedEvent, } from './types'; -import type { ILicense, LicensingPluginStart } from '../../../licensing/public'; +import type { ILicense, LicensingPluginStart, LicenseType } from '../../../licensing/public'; import type { UiActionsActionDefinition as ActionDefinition } from '../../../../../src/plugins/ui_actions/public'; import type { SavedObjectReference } from '../../../../../src/core/types'; import type { PersistableState } from '../../../../../src/plugins/kibana_utils/common'; @@ -34,6 +39,20 @@ export class ActionFactory< Configurable<Config, FactoryContext>, PersistableState<SerializedEvent> { + public readonly id: string; + public readonly isBeta: boolean; + public readonly minimalLicense?: LicenseType; + public readonly licenseFeatureName?: string; + public readonly order: number; + public readonly MenuItem?: UiComponent<ActionMenuItemProps<FactoryContext>>; + public readonly ReactMenuItem?: React.FC<ActionMenuItemProps<FactoryContext>>; + + public readonly CollectConfig: UiComponent<CollectConfigProps<Config, FactoryContext>>; + public readonly ReactCollectConfig: React.FC<CollectConfigProps<Config, FactoryContext>>; + public readonly createConfig: (context: FactoryContext) => Config; + public readonly isConfigValid: (config: Config, context: FactoryContext) => boolean; + public readonly migrations: MigrateFunctionsObject; + constructor( protected readonly def: ActionFactoryDefinition<Config, ExecutionContext, FactoryContext>, protected readonly deps: ActionFactoryDeps @@ -43,21 +62,20 @@ export class ActionFactory< `ActionFactory [actionFactory.id = ${def.id}] "licenseFeatureName" is required, if "minimalLicense" is provided` ); } - } - public readonly id = this.def.id; - public readonly isBeta = this.def.isBeta ?? false; - public readonly minimalLicense = this.def.minimalLicense; - public readonly licenseFeatureName = this.def.licenseFeatureName; - public readonly order = this.def.order || 0; - public readonly MenuItem? = this.def.MenuItem; - public readonly ReactMenuItem? = this.MenuItem ? uiToReactComponent(this.MenuItem) : undefined; - - public readonly CollectConfig = this.def.CollectConfig; - public readonly ReactCollectConfig = uiToReactComponent(this.CollectConfig); - public readonly createConfig = this.def.createConfig; - public readonly isConfigValid = this.def.isConfigValid; - public readonly migrations = this.def.migrations || {}; + this.id = this.def.id; + this.isBeta = this.def.isBeta ?? false; + this.minimalLicense = this.def.minimalLicense; + this.licenseFeatureName = this.def.licenseFeatureName; + this.order = this.def.order || 0; + this.MenuItem = this.def.MenuItem; + this.ReactMenuItem = this.MenuItem ? uiToReactComponent(this.MenuItem) : undefined; + this.CollectConfig = this.def.CollectConfig; + this.ReactCollectConfig = uiToReactComponent(this.CollectConfig); + this.createConfig = this.def.createConfig; + this.isConfigValid = this.def.isConfigValid; + this.migrations = this.def.migrations || {}; + } public getIconType(context: FactoryContext): string | undefined { if (!this.def.getIconType) return undefined; diff --git a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/app/cluster_upgrade.test.tsx b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/app/cluster_upgrade.test.tsx index 043c649b39bc2..7276d005844c2 100644 --- a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/app/cluster_upgrade.test.tsx +++ b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/app/cluster_upgrade.test.tsx @@ -36,9 +36,14 @@ describe('Cluster upgrade', () => { }); }); + // The way we detect if we are currently upgrading or if the upgrade has been completed is if + // we ever get back a 426 error in *any* API response that UA makes. For that reason we can + // just mock one of the APIs that are being called from the overview page to return an error + // in order to trigger these interstitial states. In this case we're going to mock the + // `es deprecations` response. describe('when cluster is in the process of a rolling upgrade', () => { beforeEach(async () => { - httpRequestsMockHelpers.setLoadDeprecationLoggingResponse(undefined, { + httpRequestsMockHelpers.setLoadEsDeprecationsResponse(undefined, { statusCode: 426, message: '', attributes: { @@ -62,7 +67,7 @@ describe('Cluster upgrade', () => { describe('when cluster has been upgraded', () => { beforeEach(async () => { - httpRequestsMockHelpers.setLoadDeprecationLoggingResponse(undefined, { + httpRequestsMockHelpers.setLoadEsDeprecationsResponse(undefined, { statusCode: 426, message: '', attributes: { diff --git a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.helpers.ts b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.helpers.ts new file mode 100644 index 0000000000000..11784d0269505 --- /dev/null +++ b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.helpers.ts @@ -0,0 +1,80 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { act } from 'react-dom/test-utils'; +import { registerTestBed, TestBed, AsyncTestBedConfig } from '@kbn/test/jest'; +import { EsDeprecationLogs } from '../../../public/application/components/es_deprecation_logs'; +import { WithAppDependencies } from '../helpers'; + +const testBedConfig: AsyncTestBedConfig = { + memoryRouter: { + initialEntries: ['/es_deprecation_logs'], + componentRoutePath: '/es_deprecation_logs', + }, + doMountAsync: true, +}; + +export type EsDeprecationLogsTestBed = TestBed & { + actions: ReturnType<typeof createActions>; +}; + +const createActions = (testBed: TestBed) => { + /** + * User Actions + */ + + const clickDeprecationToggle = async () => { + const { find, component } = testBed; + + await act(async () => { + find('deprecationLoggingToggle').simulate('click'); + }); + + component.update(); + }; + + const clickRetryButton = async () => { + const { find, component } = testBed; + + await act(async () => { + find('retryButton').simulate('click'); + }); + + component.update(); + }; + + const clickResetButton = async () => { + const { find, component } = testBed; + + await act(async () => { + find('resetLastStoredDate').simulate('click'); + }); + + component.update(); + }; + + return { + clickDeprecationToggle, + clickRetryButton, + clickResetButton, + }; +}; + +export const setupESDeprecationLogsPage = async ( + overrides?: Record<string, unknown> +): Promise<EsDeprecationLogsTestBed> => { + const initTestBed = registerTestBed( + WithAppDependencies(EsDeprecationLogs, overrides), + testBedConfig + ); + const testBed = await initTestBed(); + + return { + ...testBed, + actions: createActions(testBed), + }; +}; diff --git a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/fix_logs_step/fix_logs_step.test.tsx b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.test.tsx similarity index 80% rename from x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/fix_logs_step/fix_logs_step.test.tsx rename to x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.test.tsx index 8b68f5ee449a8..8d97fc3897367 100644 --- a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/fix_logs_step/fix_logs_step.test.tsx +++ b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/es_deprecation_logs/es_deprecation_logs.test.tsx @@ -6,13 +6,24 @@ */ import { act } from 'react-dom/test-utils'; +import { + EsDeprecationLogsTestBed, + setupESDeprecationLogsPage, +} from './es_deprecation_logs.helpers'; +import { setupEnvironment, advanceTime } from '../helpers'; +import { DeprecationLoggingStatus } from '../../../common/types'; +import { + DEPRECATION_LOGS_INDEX, + DEPRECATION_LOGS_SOURCE_ID, + DEPRECATION_LOGS_COUNT_POLL_INTERVAL_MS, +} from '../../../common/constants'; // Once the logs team register the kibana locators in their app, we should be able // to remove this mock and follow a similar approach to how discover link is tested. // See: https://github.com/elastic/kibana/issues/104855 const MOCKED_TIME = '2021-09-05T10:49:01.805Z'; -jest.mock('../../../../public/application/lib/logs_checkpoint', () => { - const originalModule = jest.requireActual('../../../../public/application/lib/logs_checkpoint'); +jest.mock('../../../public/application/lib/logs_checkpoint', () => { + const originalModule = jest.requireActual('../../../public/application/lib/logs_checkpoint'); return { __esModule: true, @@ -21,83 +32,30 @@ jest.mock('../../../../public/application/lib/logs_checkpoint', () => { }; }); -import { DeprecationLoggingStatus } from '../../../../common/types'; -import { OverviewTestBed, setupOverviewPage } from '../overview.helpers'; -import { setupEnvironment, advanceTime } from '../../helpers'; -import { - DEPRECATION_LOGS_INDEX, - DEPRECATION_LOGS_SOURCE_ID, - DEPRECATION_LOGS_COUNT_POLL_INTERVAL_MS, -} from '../../../../common/constants'; - const getLoggingResponse = (toggle: boolean): DeprecationLoggingStatus => ({ isDeprecationLogIndexingEnabled: toggle, isDeprecationLoggingEnabled: toggle, }); -describe('Overview - Fix deprecation logs step', () => { - let testBed: OverviewTestBed; +describe('ES deprecation logs', () => { + let testBed: EsDeprecationLogsTestBed; const { server, httpRequestsMockHelpers } = setupEnvironment(); beforeEach(async () => { httpRequestsMockHelpers.setLoadDeprecationLoggingResponse(getLoggingResponse(true)); - testBed = await setupOverviewPage(); - - const { component } = testBed; - component.update(); + testBed = await setupESDeprecationLogsPage(); + testBed.component.update(); }); afterAll(() => { server.restore(); }); - describe('Step status', () => { - test(`It's complete when there are no deprecation logs since last checkpoint`, async () => { - httpRequestsMockHelpers.setLoadDeprecationLogsCountResponse({ count: 0 }); - - await act(async () => { - testBed = await setupOverviewPage(); - }); - - const { exists, component } = testBed; - - component.update(); - - expect(exists(`fixLogsStep-complete`)).toBe(true); - }); - - test(`It's incomplete when there are deprecation logs since last checkpoint`, async () => { - httpRequestsMockHelpers.setLoadDeprecationLogsCountResponse({ count: 5 }); - - await act(async () => { - testBed = await setupOverviewPage(); - }); - - const { exists, component } = testBed; - - component.update(); - - expect(exists(`fixLogsStep-incomplete`)).toBe(true); - }); - - test(`It's incomplete when log collection is disabled `, async () => { - httpRequestsMockHelpers.setLoadDeprecationLogsCountResponse({ count: 0 }); - - await act(async () => { - testBed = await setupOverviewPage(); - }); - - const { actions, exists, component } = testBed; - - component.update(); - - expect(exists(`fixLogsStep-complete`)).toBe(true); - - httpRequestsMockHelpers.setUpdateDeprecationLoggingResponse(getLoggingResponse(false)); - - await actions.clickDeprecationToggle(); + describe('Documentation link', () => { + test('Has a link for migration info api docs in page header', () => { + const { exists } = testBed; - expect(exists(`fixLogsStep-incomplete`)).toBe(true); + expect(exists('documentationLink')).toBe(true); }); }); @@ -123,7 +81,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, component } = testBed; @@ -159,7 +117,7 @@ describe('Overview - Fix deprecation logs step', () => { httpRequestsMockHelpers.setLoadDeprecationLoggingResponse(undefined, error); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { component, exists } = testBed; @@ -176,7 +134,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, component } = testBed; @@ -196,7 +154,7 @@ describe('Overview - Fix deprecation logs step', () => { test('Has a link to see logs in observability app', async () => { await act(async () => { - testBed = await setupOverviewPage({ + testBed = await setupESDeprecationLogsPage({ http: { basePath: { prepend: (url: string) => url, @@ -228,7 +186,7 @@ describe('Overview - Fix deprecation logs step', () => { test('Has a link to see logs in discover app', async () => { await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, component, find } = testBed; @@ -257,7 +215,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { find, exists, component } = testBed; @@ -274,7 +232,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { find, exists, component } = testBed; @@ -295,7 +253,7 @@ describe('Overview - Fix deprecation logs step', () => { httpRequestsMockHelpers.setLoadDeprecationLogsCountResponse(undefined, error); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, actions, component } = testBed; @@ -319,7 +277,7 @@ describe('Overview - Fix deprecation logs step', () => { }); await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, actions, component } = testBed; @@ -351,7 +309,7 @@ describe('Overview - Fix deprecation logs step', () => { const addDanger = jest.fn(); await act(async () => { - testBed = await setupOverviewPage({ + testBed = await setupESDeprecationLogsPage({ services: { core: { notifications: { @@ -389,17 +347,17 @@ describe('Overview - Fix deprecation logs step', () => { count: 0, }); - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); afterEach(() => { jest.useRealTimers(); }); - test('renders step as incomplete when a success state is followed by an error state', async () => { + test('success state is followed by an error state', async () => { const { exists } = testBed; - expect(exists('fixLogsStep-complete')).toBe(true); + expect(exists('resetLastStoredDate')).toBe(true); // second request will error const error = { @@ -413,7 +371,7 @@ describe('Overview - Fix deprecation logs step', () => { await advanceTime(DEPRECATION_LOGS_COUNT_POLL_INTERVAL_MS); testBed.component.update(); - expect(exists('fixLogsStep-incomplete')).toBe(true); + expect(exists('errorCallout')).toBe(true); }); }); }); @@ -425,7 +383,7 @@ describe('Overview - Fix deprecation logs step', () => { test('It shows copy with compatibility api header advice', async () => { await act(async () => { - testBed = await setupOverviewPage(); + testBed = await setupESDeprecationLogsPage(); }); const { exists, component } = testBed; @@ -449,7 +407,7 @@ describe('Overview - Fix deprecation logs step', () => { test(`doesn't show analyze and resolve logs if it doesn't have the right privileges`, async () => { await act(async () => { - testBed = await setupOverviewPage({ + testBed = await setupESDeprecationLogsPage({ privileges: { hasAllPrivileges: false, missingPrivileges: { diff --git a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/overview.helpers.ts b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/overview.helpers.ts index d8bd6a9ff5d83..34abaed727bd3 100644 --- a/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/overview.helpers.ts +++ b/x-pack/plugins/upgrade_assistant/__jest__/client_integration/overview/overview.helpers.ts @@ -27,36 +27,6 @@ const createActions = (testBed: TestBed) => { * User Actions */ - const clickDeprecationToggle = async () => { - const { find, component } = testBed; - - await act(async () => { - find('deprecationLoggingToggle').simulate('click'); - }); - - component.update(); - }; - - const clickRetryButton = async () => { - const { find, component } = testBed; - - await act(async () => { - find('retryButton').simulate('click'); - }); - - component.update(); - }; - - const clickResetButton = async () => { - const { find, component } = testBed; - - await act(async () => { - find('resetLastStoredDate').simulate('click'); - }); - - component.update(); - }; - const clickViewSystemIndicesState = async () => { const { find, component } = testBed; @@ -78,9 +48,6 @@ const createActions = (testBed: TestBed) => { }; return { - clickDeprecationToggle, - clickRetryButton, - clickResetButton, clickViewSystemIndicesState, clickRetrySystemIndicesButton, }; diff --git a/x-pack/plugins/upgrade_assistant/public/application/app.tsx b/x-pack/plugins/upgrade_assistant/public/application/app.tsx index 9ac90e5d81f48..70350b6d56eca 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/app.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/app.tsx @@ -17,7 +17,13 @@ import { ClusterUpgradeState } from '../../common/types'; import { APP_WRAPPER_CLASS, GlobalFlyout, AuthorizationProvider } from '../shared_imports'; import { AppDependencies } from '../types'; import { AppContextProvider, useAppContext } from './app_context'; -import { EsDeprecations, ComingSoonPrompt, KibanaDeprecations, Overview } from './components'; +import { + EsDeprecations, + EsDeprecationLogs, + ComingSoonPrompt, + KibanaDeprecations, + Overview, +} from './components'; const { GlobalFlyoutProvider } = GlobalFlyout; @@ -112,6 +118,7 @@ const AppHandlingClusterUpgradeState: React.FunctionComponent = () => { <Switch> <Route exact path="/overview" component={Overview} /> <Route exact path="/es_deprecations" component={EsDeprecations} /> + <Route exact path="/es_deprecation_logs" component={EsDeprecationLogs} /> <Route exact path="/kibana_deprecations" component={KibanaDeprecations} /> <Redirect from="/" to="/overview" /> </Switch> diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/es_deprecation_logs.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/es_deprecation_logs.tsx new file mode 100644 index 0000000000000..f778566758294 --- /dev/null +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/es_deprecation_logs.tsx @@ -0,0 +1,74 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React, { FunctionComponent, useEffect } from 'react'; + +import { + EuiPageHeader, + EuiButtonEmpty, + EuiSpacer, + EuiPageBody, + EuiPageContentBody, +} from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; +import { METRIC_TYPE } from '@kbn/analytics'; +import { FormattedMessage } from '@kbn/i18n/react'; + +import { useAppContext } from '../../app_context'; +import { uiMetricService, UIM_ES_DEPRECATION_LOGS_PAGE_LOAD } from '../../lib/ui_metric'; +import { FixDeprecationLogs } from './fix_deprecation_logs'; + +export const EsDeprecationLogs: FunctionComponent = () => { + const { + services: { + breadcrumbs, + core: { docLinks }, + }, + } = useAppContext(); + + useEffect(() => { + uiMetricService.trackUiMetric(METRIC_TYPE.LOADED, UIM_ES_DEPRECATION_LOGS_PAGE_LOAD); + }, []); + + useEffect(() => { + breadcrumbs.setBreadcrumbs('esDeprecationLogs'); + }, [breadcrumbs]); + + return ( + <EuiPageBody restrictWidth={true} data-test-subj="esDeprecationLogs"> + <EuiPageContentBody color="transparent" paddingSize="none"> + <EuiPageHeader + bottomBorder + pageTitle={i18n.translate('xpack.upgradeAssistant.esDeprecationLogs.pageTitle', { + defaultMessage: 'Elasticsearch deprecation logs', + })} + description={i18n.translate('xpack.upgradeAssistant.esDeprecationLogs.pageDescription', { + defaultMessage: + 'Review the deprecation logs to determine if your applications are using any deprecated APIs. Update your applications to prevent errors or changes in behavior after you upgrade.', + })} + rightSideItems={[ + <EuiButtonEmpty + href={docLinks.links.elasticsearch.migrationApiDeprecation} + target="_blank" + iconType="help" + data-test-subj="documentationLink" + > + <FormattedMessage + id="xpack.upgradeAssistant.esDeprecationLogs.documentationLinkText" + defaultMessage="Documentation" + /> + </EuiButtonEmpty>, + ]} + /> + + <EuiSpacer size="l" /> + + <FixDeprecationLogs /> + </EuiPageContentBody> + </EuiPageBody> + ); +}; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/_deprecation_logging_toggle.scss b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/_deprecation_logging_toggle.scss similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/_deprecation_logging_toggle.scss rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/_deprecation_logging_toggle.scss diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/deprecation_logging_toggle.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/deprecation_logging_toggle.tsx similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/deprecation_logging_toggle.tsx rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/deprecation_logging_toggle.tsx diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/index.ts similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecation_logging_toggle/index.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecation_logging_toggle/index.ts diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx similarity index 89% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx index 6ce1fec32d66c..c958eb68c86ec 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/deprecations_count_checkpoint.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FunctionComponent, useEffect, useState } from 'react'; +import React, { FunctionComponent, useState } from 'react'; import moment from 'moment-timezone'; import { FormattedDate, FormattedTime, FormattedMessage } from '@kbn/i18n/react'; import { METRIC_TYPE } from '@kbn/analytics'; @@ -54,13 +54,11 @@ const i18nTexts = { interface Props { checkpoint: string; setCheckpoint: (value: string) => void; - setHasNoDeprecationLogs: (hasNoLogs: boolean) => void; } export const DeprecationsCountCheckpoint: FunctionComponent<Props> = ({ checkpoint, setCheckpoint, - setHasNoDeprecationLogs, }) => { const [isDeletingCache, setIsDeletingCache] = useState(false); const { @@ -96,16 +94,6 @@ export const DeprecationsCountCheckpoint: FunctionComponent<Props> = ({ setCheckpoint(now); }; - useEffect(() => { - // Loading shouldn't invalidate the previous state. - if (!isLoading) { - // An error should invalidate the previous state. - setHasNoDeprecationLogs(!error && !hasLogs); - } - // Depending upon setHasNoDeprecationLogs would create an infinite loop. - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [error, isLoading, hasLogs]); - if (isInitialRequest && isLoading) { return <EuiLoadingContent lines={6} />; } diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/index.ts similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/deprecations_count_checkpoint/index.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/deprecations_count_checkpoint/index.ts diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.test.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.test.ts similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.test.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.test.ts diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.tsx similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/external_links.tsx rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/external_links.tsx diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/fix_logs_step.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/fix_deprecation_logs.tsx similarity index 80% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/fix_logs_step.tsx rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/fix_deprecation_logs.tsx index a3e81f6edcd3a..ff1cfc172905f 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/fix_logs_step.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/fix_deprecation_logs.tsx @@ -9,7 +9,6 @@ import React, { FunctionComponent, useState, useEffect } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { EuiText, EuiSpacer, EuiLink, EuiCallOut, EuiCode } from '@elastic/eui'; -import type { EuiStepProps } from '@elastic/eui/src/components/steps/step'; import { useAppContext } from '../../../app_context'; import { ExternalLinks } from './external_links'; @@ -17,14 +16,10 @@ import { DeprecationsCountCheckpoint } from './deprecations_count_checkpoint'; import { useDeprecationLogging } from './use_deprecation_logging'; import { DeprecationLoggingToggle } from './deprecation_logging_toggle'; import { loadLogsCheckpoint, saveLogsCheckpoint } from '../../../lib/logs_checkpoint'; -import type { OverviewStepProps } from '../../types'; import { DEPRECATION_LOGS_INDEX } from '../../../../../common/constants'; import { WithPrivileges, MissingPrivileges } from '../../../../shared_imports'; const i18nTexts = { - identifyStepTitle: i18n.translate('xpack.upgradeAssistant.overview.identifyStepTitle', { - defaultMessage: 'Identify deprecated API use and update your applications', - }), analyzeTitle: i18n.translate('xpack.upgradeAssistant.overview.analyzeTitle', { defaultMessage: 'Analyze deprecation logs', }), @@ -93,16 +88,11 @@ const i18nTexts = { }; interface Props { - setIsComplete: OverviewStepProps['setIsComplete']; hasPrivileges: boolean; privilegesMissing: MissingPrivileges; } -const FixLogsStep: FunctionComponent<Props> = ({ - setIsComplete, - hasPrivileges, - privilegesMissing, -}) => { +const FixDeprecationLogsUI: FunctionComponent<Props> = ({ hasPrivileges, privilegesMissing }) => { const { services: { core: { docLinks }, @@ -126,15 +116,6 @@ const FixLogsStep: FunctionComponent<Props> = ({ saveLogsCheckpoint(checkpoint); }, [checkpoint]); - useEffect(() => { - if (!isDeprecationLogIndexingEnabled) { - setIsComplete(false); - } - - // Depending upon setIsComplete would create an infinite loop. - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [isDeprecationLogIndexingEnabled]); - return ( <> <DeprecationLoggingToggle @@ -189,11 +170,7 @@ const FixLogsStep: FunctionComponent<Props> = ({ <h4>{i18nTexts.deprecationsCountCheckpointTitle}</h4> </EuiText> <EuiSpacer size="m" /> - <DeprecationsCountCheckpoint - checkpoint={checkpoint} - setCheckpoint={setCheckpoint} - setHasNoDeprecationLogs={setIsComplete} - /> + <DeprecationsCountCheckpoint checkpoint={checkpoint} setCheckpoint={setCheckpoint} /> <EuiSpacer size="xl" /> <EuiText data-test-subj="apiCompatibilityNoteTitle"> @@ -213,23 +190,15 @@ const FixLogsStep: FunctionComponent<Props> = ({ ); }; -export const getFixLogsStep = ({ isComplete, setIsComplete }: OverviewStepProps): EuiStepProps => { - const status = isComplete ? 'complete' : 'incomplete'; - - return { - status, - title: i18nTexts.identifyStepTitle, - 'data-test-subj': `fixLogsStep-${status}`, - children: ( - <WithPrivileges privileges={`index.${DEPRECATION_LOGS_INDEX}`}> - {({ hasPrivileges, privilegesMissing, isLoading }) => ( - <FixLogsStep - setIsComplete={setIsComplete} - hasPrivileges={!isLoading && hasPrivileges} - privilegesMissing={privilegesMissing} - /> - )} - </WithPrivileges> - ), - }; +export const FixDeprecationLogs = () => { + return ( + <WithPrivileges privileges={`index.${DEPRECATION_LOGS_INDEX}`}> + {({ hasPrivileges, privilegesMissing, isLoading }) => ( + <FixDeprecationLogsUI + hasPrivileges={!isLoading && hasPrivileges} + privilegesMissing={privilegesMissing} + /> + )} + </WithPrivileges> + ); }; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/index.ts new file mode 100644 index 0000000000000..c0af5524e3a14 --- /dev/null +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { FixDeprecationLogs } from './fix_deprecation_logs'; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/use_deprecation_logging.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/use_deprecation_logging.ts similarity index 100% rename from x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_logs_step/use_deprecation_logging.ts rename to x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/fix_deprecation_logs/use_deprecation_logging.ts diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/index.ts new file mode 100644 index 0000000000000..336aa14642f7d --- /dev/null +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecation_logs/index.ts @@ -0,0 +1,8 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +export { EsDeprecationLogs } from './es_deprecation_logs'; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecations/es_deprecations_table.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecations/es_deprecations_table.tsx index 3d9b554913c5b..58271642da020 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecations/es_deprecations_table.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/es_deprecations/es_deprecations_table.tsx @@ -298,7 +298,11 @@ export const EsDeprecationsTable: React.FunctionComponent<Props> = ({ {filteredDeprecations.length === 0 ? ( <EuiTableBody> <EuiTableRow data-test-subj="noDeprecationsRow"> - <EuiTableRowCell align="center" colSpan={cellTypes.length} isMobileFullWidth={true}> + <EuiTableRowCell + align="center" + colSpan={cellTypes.length} + mobileOptions={{ width: '100%' }} + > {i18nTexts.noDeprecationsMessage} </EuiTableRowCell> </EuiTableRow> diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/index.ts b/x-pack/plugins/upgrade_assistant/public/application/components/index.ts index 8924fa2d355a1..b84af8695ddb1 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/index.ts +++ b/x-pack/plugins/upgrade_assistant/public/application/components/index.ts @@ -7,5 +7,6 @@ export { KibanaDeprecations } from './kibana_deprecations'; export { EsDeprecations } from './es_deprecations'; +export { EsDeprecationLogs } from './es_deprecation_logs'; export { ComingSoonPrompt } from './coming_soon_prompt'; export { Overview } from './overview'; diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_issues_step/fix_issues_step.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_issues_step/fix_issues_step.tsx index 61d25404b2aee..410eb695240f9 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_issues_step/fix_issues_step.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/overview/fix_issues_step/fix_issues_step.tsx @@ -7,11 +7,13 @@ import React, { FunctionComponent, useState, useEffect } from 'react'; -import { EuiText, EuiFlexItem, EuiFlexGroup, EuiSpacer } from '@elastic/eui'; +import { EuiText, EuiFlexItem, EuiFlexGroup, EuiSpacer, EuiLink } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import type { EuiStepProps } from '@elastic/eui/src/components/steps/step'; +import { DEPRECATION_LOGS_INDEX } from '../../../../../common/constants'; +import { WithPrivileges } from '../../../../shared_imports'; import type { OverviewStepProps } from '../../types'; import { EsDeprecationIssuesPanel, KibanaDeprecationIssuesPanel } from './components'; @@ -49,10 +51,48 @@ const FixIssuesStep: FunctionComponent<Props> = ({ setIsComplete }) => { ); }; +interface CustomProps { + navigateToEsDeprecationLogs: () => void; +} + +const AccessDeprecationLogsMessage = ({ navigateToEsDeprecationLogs }: CustomProps) => { + return ( + <WithPrivileges privileges={`index.${DEPRECATION_LOGS_INDEX}`}> + {({ hasPrivileges, isLoading }) => { + if (isLoading || !hasPrivileges) { + // Don't show the message with the link to access deprecation logs + // to users who can't access the UI anyways. + return null; + } + + return ( + <FormattedMessage + id="xpack.upgradeAssistant.overview.accessEsDeprecationLogsLabel" + defaultMessage="If you have application code that calls Elasticsearch APIs, review the {esDeprecationLogsLink} to make sure you are not using deprecated APIs." + values={{ + esDeprecationLogsLink: ( + <EuiLink + onClick={navigateToEsDeprecationLogs} + data-test-subj="viewElasticsearchDeprecationLogs" + > + {i18n.translate('xpack.upgradeAssistant.overview.esDeprecationLogsLink', { + defaultMessage: 'Elasticsearch deprecation logs', + })} + </EuiLink> + ), + }} + /> + ); + }} + </WithPrivileges> + ); +}; + export const getFixIssuesStep = ({ isComplete, setIsComplete, -}: OverviewStepProps): EuiStepProps => { + navigateToEsDeprecationLogs, +}: OverviewStepProps & CustomProps): EuiStepProps => { const status = isComplete ? 'complete' : 'incomplete'; return { @@ -65,7 +105,14 @@ export const getFixIssuesStep = ({ <p> <FormattedMessage id="xpack.upgradeAssistant.overview.fixIssuesStepDescription" - defaultMessage="Update your Elasticsearch and Kibana deployments to be compatible with Elastic 8.x. Critical issues must be resolved before you upgrade. Warning issues can be ignored at your discretion." + defaultMessage="You must resolve any critical Elasticsearch and Kibana configuration issues before upgrading to Elastic 8.x. Ignoring warnings might result in differences in behavior after you upgrade. {accessDeprecationLogsMessage}" + values={{ + accessDeprecationLogsMessage: ( + <AccessDeprecationLogsMessage + navigateToEsDeprecationLogs={navigateToEsDeprecationLogs} + /> + ), + }} /> </p> </EuiText> diff --git a/x-pack/plugins/upgrade_assistant/public/application/components/overview/overview.tsx b/x-pack/plugins/upgrade_assistant/public/application/components/overview/overview.tsx index 1e7961f8ea782..900c89671315d 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/components/overview/overview.tsx +++ b/x-pack/plugins/upgrade_assistant/public/application/components/overview/overview.tsx @@ -5,7 +5,7 @@ * 2.0. */ -import React, { FunctionComponent, useEffect, useState } from 'react'; +import React, { useEffect, useState } from 'react'; import { EuiSteps, @@ -15,23 +15,23 @@ import { EuiSpacer, EuiLink, EuiPageBody, - EuiPageContent, + EuiPageContentBody, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { METRIC_TYPE } from '@kbn/analytics'; import { FormattedMessage } from '@kbn/i18n/react'; +import { withRouter, RouteComponentProps } from 'react-router-dom'; import { useAppContext } from '../../app_context'; import { uiMetricService, UIM_OVERVIEW_PAGE_LOAD } from '../../lib/ui_metric'; import { getBackupStep } from './backup_step'; import { getFixIssuesStep } from './fix_issues_step'; -import { getFixLogsStep } from './fix_logs_step'; import { getUpgradeStep } from './upgrade_step'; import { getMigrateSystemIndicesStep } from './migrate_system_indices'; -type OverviewStep = 'backup' | 'migrate_system_indices' | 'fix_issues' | 'fix_logs'; +type OverviewStep = 'backup' | 'migrate_system_indices' | 'fix_issues'; -export const Overview: FunctionComponent = () => { +export const Overview = withRouter(({ history }: RouteComponentProps) => { const { services: { breadcrumbs, @@ -52,7 +52,6 @@ export const Overview: FunctionComponent = () => { backup: false, migrate_system_indices: false, fix_issues: false, - fix_logs: false, }); const isStepComplete = (step: OverviewStep) => completedStepsMap[step]; @@ -65,7 +64,7 @@ export const Overview: FunctionComponent = () => { return ( <EuiPageBody restrictWidth={true} data-test-subj="overview"> - <EuiPageContent horizontalPosition="center" color="transparent" paddingSize="none"> + <EuiPageContentBody color="transparent" paddingSize="none"> <EuiPageHeader bottomBorder pageTitle={i18n.translate('xpack.upgradeAssistant.overview.pageTitle', { @@ -114,15 +113,12 @@ export const Overview: FunctionComponent = () => { getFixIssuesStep({ isComplete: isStepComplete('fix_issues'), setIsComplete: setCompletedStep.bind(null, 'fix_issues'), - }), - getFixLogsStep({ - isComplete: isStepComplete('fix_logs'), - setIsComplete: setCompletedStep.bind(null, 'fix_logs'), + navigateToEsDeprecationLogs: () => history.push('/es_deprecation_logs'), }), getUpgradeStep(), ]} /> - </EuiPageContent> + </EuiPageContentBody> </EuiPageBody> ); -}; +}); diff --git a/x-pack/plugins/upgrade_assistant/public/application/lib/breadcrumbs.ts b/x-pack/plugins/upgrade_assistant/public/application/lib/breadcrumbs.ts index 3e30ffd06db15..dd1cc01355696 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/lib/breadcrumbs.ts +++ b/x-pack/plugins/upgrade_assistant/public/application/lib/breadcrumbs.ts @@ -18,6 +18,9 @@ const i18nTexts = { esDeprecations: i18n.translate('xpack.upgradeAssistant.breadcrumb.esDeprecationsLabel', { defaultMessage: 'Elasticsearch deprecation issues', }), + esDeprecationLogs: i18n.translate('xpack.upgradeAssistant.breadcrumb.esDeprecationLogsLabel', { + defaultMessage: 'Elasticsearch deprecation logs', + }), kibanaDeprecations: i18n.translate( 'xpack.upgradeAssistant.breadcrumb.kibanaDeprecationsLabel', { @@ -48,6 +51,15 @@ export class BreadcrumbService { text: i18nTexts.breadcrumbs.esDeprecations, }, ], + esDeprecationLogs: [ + { + text: i18nTexts.breadcrumbs.overview, + href: '/', + }, + { + text: i18nTexts.breadcrumbs.esDeprecationLogs, + }, + ], kibanaDeprecations: [ { text: i18nTexts.breadcrumbs.overview, @@ -65,7 +77,9 @@ export class BreadcrumbService { this.setBreadcrumbsHandler = setBreadcrumbsHandler; } - public setBreadcrumbs(type: 'overview' | 'esDeprecations' | 'kibanaDeprecations'): void { + public setBreadcrumbs( + type: 'overview' | 'esDeprecations' | 'esDeprecationLogs' | 'kibanaDeprecations' + ): void { if (!this.setBreadcrumbsHandler) { throw new Error('Breadcrumb service has not been initialized'); } diff --git a/x-pack/plugins/upgrade_assistant/public/application/lib/ui_metric.ts b/x-pack/plugins/upgrade_assistant/public/application/lib/ui_metric.ts index 394f046a8bafe..1ac34ae53194d 100644 --- a/x-pack/plugins/upgrade_assistant/public/application/lib/ui_metric.ts +++ b/x-pack/plugins/upgrade_assistant/public/application/lib/ui_metric.ts @@ -12,6 +12,7 @@ export const UIM_APP_NAME = 'upgrade_assistant'; export const UIM_ES_DEPRECATIONS_PAGE_LOAD = 'es_deprecations_page_load'; export const UIM_KIBANA_DEPRECATIONS_PAGE_LOAD = 'kibana_deprecations_page_load'; export const UIM_OVERVIEW_PAGE_LOAD = 'overview_page_load'; +export const UIM_ES_DEPRECATION_LOGS_PAGE_LOAD = 'es_deprecation_logs_page_load'; export const UIM_REINDEX_OPEN_FLYOUT_CLICK = 'reindex_open_flyout_click'; export const UIM_REINDEX_CLOSE_FLYOUT_CLICK = 'reindex_close_flyout_click'; export const UIM_REINDEX_START_CLICK = 'reindex_start_click'; diff --git a/x-pack/plugins/uptime/common/constants/settings_defaults.ts b/x-pack/plugins/uptime/common/constants/settings_defaults.ts index b57bc8a85d7cd..8fbc4c19df6b0 100644 --- a/x-pack/plugins/uptime/common/constants/settings_defaults.ts +++ b/x-pack/plugins/uptime/common/constants/settings_defaults.ts @@ -8,7 +8,7 @@ import { DynamicSettings } from '../runtime_types'; export const DYNAMIC_SETTINGS_DEFAULTS: DynamicSettings = { - heartbeatIndices: 'heartbeat-8*,synthetics-*', + heartbeatIndices: 'heartbeat-8*,heartbeat-7*,synthetics-*', certAgeThreshold: 730, certExpirationThreshold: 30, defaultConnectors: [], diff --git a/x-pack/plugins/uptime/common/runtime_types/dynamic_settings.ts b/x-pack/plugins/uptime/common/runtime_types/dynamic_settings.ts index cc3ca4a7060c5..d7d20361bea96 100644 --- a/x-pack/plugins/uptime/common/runtime_types/dynamic_settings.ts +++ b/x-pack/plugins/uptime/common/runtime_types/dynamic_settings.ts @@ -7,7 +7,7 @@ import * as t from 'io-ts'; -export const DynamicSettingsType = t.type({ +export const DynamicSettingsType = t.strict({ heartbeatIndices: t.string, certAgeThreshold: t.number, certExpirationThreshold: t.number, diff --git a/x-pack/plugins/uptime/public/apps/use_no_data_config.ts b/x-pack/plugins/uptime/public/apps/use_no_data_config.ts index 6e73a6d5e8268..dc00a25e3a111 100644 --- a/x-pack/plugins/uptime/public/apps/use_no_data_config.ts +++ b/x-pack/plugins/uptime/public/apps/use_no_data_config.ts @@ -31,13 +31,13 @@ export function useNoDataConfig(): KibanaPageTemplateProps['noDataConfig'] { actions: { beats: { title: i18n.translate('xpack.uptime.noDataConfig.beatsCard.title', { - defaultMessage: 'Add monitors with the Elastic Synthetics integration', + defaultMessage: 'Add monitors with Heartbeat', }), description: i18n.translate('xpack.uptime.noDataConfig.beatsCard.description', { defaultMessage: 'Proactively monitor the availability of your sites and services. Receive alerts and resolve issues faster to optimize your users experience.', }), - href: basePath + `/app/integrations/detail/synthetics/overview`, + href: basePath + `/app/home#/tutorial/uptimeMonitors`, }, }, docsLink: docLinks!.links.observability.guide, diff --git a/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.tsx b/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.tsx index 08cac07250fea..145ec5f199db4 100644 --- a/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.tsx +++ b/x-pack/plugins/uptime/public/components/common/charts/monitor_bar_series.tsx @@ -114,7 +114,7 @@ export const MonitorBarSeries = ({ histogramSeries, minInterval }: MonitorBarSer /> } > - <EuiText color="secondary">--</EuiText> + <EuiText color="success">--</EuiText> </EuiToolTip> ); }; diff --git a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx index 47dc2084a788f..89aaec5f133c2 100644 --- a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx +++ b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.test.tsx @@ -45,13 +45,11 @@ describe('ActionMenuContent', () => { it('renders Add Data link', () => { const { getByLabelText, getByText } = render(<ActionMenuContent />); - const addDataAnchor = getByLabelText( - 'Navigate to the Elastic Synthetics integration to add Uptime data' - ); + const addDataAnchor = getByLabelText('Navigate to a tutorial about adding Uptime data'); // this href value is mocked, so it doesn't correspond to the real link // that Kibana core services will provide - expect(addDataAnchor.getAttribute('href')).toBe('/integrations/detail/synthetics/overview'); + expect(addDataAnchor.getAttribute('href')).toBe('/home#/tutorial/uptimeMonitors'); expect(getByText('Add data')); }); }); diff --git a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx index 7b510432f773b..f9f4015c6c8aa 100644 --- a/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx +++ b/x-pack/plugins/uptime/public/components/common/header/action_menu_content.tsx @@ -31,7 +31,7 @@ const ANALYZE_DATA = i18n.translate('xpack.uptime.analyzeDataButtonLabel', { const ANALYZE_MESSAGE = i18n.translate('xpack.uptime.analyzeDataButtonLabel.message', { defaultMessage: - 'EXPERIMENTAL - Explore Data allows you to select and filter result data in any dimension and look for the cause or impact of performance problems.', + 'Explore Data allows you to select and filter result data in any dimension and look for the cause or impact of performance problems.', }); export function ActionMenuContent(): React.ReactElement { @@ -99,11 +99,9 @@ export function ActionMenuContent(): React.ReactElement { <EuiHeaderLink aria-label={i18n.translate('xpack.uptime.page_header.addDataLink.label', { - defaultMessage: 'Navigate to the Elastic Synthetics integration to add Uptime data', + defaultMessage: 'Navigate to a tutorial about adding Uptime data', })} - href={kibana.services?.application?.getUrlForApp( - '/integrations/detail/synthetics/overview' - )} + href={kibana.services?.application?.getUrlForApp('/home#/tutorial/uptimeMonitors')} color="primary" iconType="indexOpen" > diff --git a/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx b/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx index c141e33ea1595..51b7ddd90a052 100644 --- a/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx +++ b/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.test.tsx @@ -573,16 +573,43 @@ describe('<SyntheticsPolicyEditExtension />', () => { }); }); - it('shows tls fields when metadata.is_tls_enabled is true', async () => { - const { getByLabelText } = render(<WrappedComponent />); - const verificationMode = getByLabelText('Verification mode') as HTMLInputElement; - const enableTLSConfig = getByLabelText('Enable TLS configuration') as HTMLInputElement; - expect(enableTLSConfig.getAttribute('aria-checked')).toEqual('true'); - expect(verificationMode).toBeInTheDocument(); - expect(verificationMode.value).toEqual( - `${defaultHTTPConfig[ConfigKeys.TLS_VERIFICATION_MODE]}` - ); - }); + it.each([[true], [false]])( + 'shows tls fields when metadata.is_tls_enabled is or verification mode is truthy true', + async (isTLSEnabledInUIMetadataKey) => { + const currentPolicy = { + ...defaultCurrentPolicy, + inputs: [ + { + ...defaultNewPolicy.inputs[0], + enabled: true, + streams: [ + { + ...defaultNewPolicy.inputs[0].streams[0], + vars: { + ...defaultNewPolicy.inputs[0].streams[0].vars, + __ui: { + type: 'yaml', + value: JSON.stringify({ + is_tls_enabled: isTLSEnabledInUIMetadataKey, + }), + }, + }, + }, + ], + }, + ], + }; + + const { getByLabelText } = render(<WrappedComponent policy={currentPolicy} />); + const verificationMode = getByLabelText('Verification mode') as HTMLInputElement; + const enableTLSConfig = getByLabelText('Enable TLS configuration') as HTMLInputElement; + expect(enableTLSConfig.getAttribute('aria-checked')).toEqual('true'); + expect(verificationMode).toBeInTheDocument(); + expect(verificationMode.value).toEqual( + `${defaultHTTPConfig[ConfigKeys.TLS_VERIFICATION_MODE]}` + ); + } + ); it('handles browser validation', async () => { const currentPolicy = { @@ -1128,6 +1155,7 @@ describe('<SyntheticsPolicyEditExtension />', () => { expect(getByText(text)).toBeInTheDocument(); } ); + it('hides tls fields when metadata.is_tls_enabled is false', async () => { const { getByLabelText, queryByLabelText } = render( <WrappedComponent diff --git a/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx b/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx index 274837ccb1d68..08f1f7e4f3671 100644 --- a/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx +++ b/x-pack/plugins/uptime/public/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx @@ -71,9 +71,11 @@ export const SyntheticsPolicyEditExtensionWrapper = memo<PackagePolicyEditExtens }; enableTLS = - formattedDefaultConfigForMonitorType[ConfigKeys.METADATA].is_tls_enabled || false; + formattedDefaultConfigForMonitorType[ConfigKeys.METADATA].is_tls_enabled || + Boolean(vars?.[ConfigKeys.TLS_VERIFICATION_MODE]?.value); enableZipUrlTLS = - formattedDefaultConfigForMonitorType[ConfigKeys.METADATA].is_zip_url_tls_enabled || false; + formattedDefaultConfigForMonitorType[ConfigKeys.METADATA].is_zip_url_tls_enabled || + Boolean(vars?.[ConfigKeys.ZIP_URL_TLS_VERIFICATION_MODE]?.value); const formattedDefaultConfig: Partial<PolicyConfig> = { [type]: formattedDefaultConfigForMonitorType, diff --git a/x-pack/plugins/uptime/public/components/monitor/ping_list/columns/ping_status.tsx b/x-pack/plugins/uptime/public/components/monitor/ping_list/columns/ping_status.tsx index 3a4ee53f63223..dcf3fdb9163db 100644 --- a/x-pack/plugins/uptime/public/components/monitor/ping_list/columns/ping_status.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/ping_list/columns/ping_status.tsx @@ -50,7 +50,7 @@ export const PingStatusColumn = ({ pingStatus, item }: Props) => { <div data-test-subj={`xpack.uptime.pingList.ping-${item.docId}`}> <EuiBadge className="eui-textCenter" - color={pingStatus === STATUS.UP ? 'secondary' : dangerBehindText} + color={pingStatus === STATUS.UP ? 'success' : dangerBehindText} > {getPingStatusLabel(pingStatus, item)} </EuiBadge> diff --git a/x-pack/plugins/uptime/public/components/monitor/ping_list/ping_redirects.tsx b/x-pack/plugins/uptime/public/components/monitor/ping_list/ping_redirects.tsx index b1a36b1c0d61b..01e0cb5be2b0f 100644 --- a/x-pack/plugins/uptime/public/components/monitor/ping_list/ping_redirects.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/ping_list/ping_redirects.tsx @@ -37,7 +37,7 @@ export const PingRedirects: React.FC<Props> = ({ monitorStatus, showTitle }) => size: 's', target: '_blank', extraAction: { - color: 'subdued', + color: 'text', iconType: 'popout', iconSize: 's', alwaysShow: true, @@ -56,7 +56,7 @@ export const PingRedirects: React.FC<Props> = ({ monitorStatus, showTitle }) => size: 's', target: '_blank', extraAction: { - color: 'subdued', + color: 'text', iconType: 'popout', iconSize: 's', 'aria-label': i18n.translate('xpack.uptime.monitorList.redirects.openWindow', { diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/__snapshots__/tag_label.test.tsx.snap b/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/__snapshots__/tag_label.test.tsx.snap index 2e55e7024f444..345a8f2786d41 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/__snapshots__/tag_label.test.tsx.snap +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/__snapshots__/tag_label.test.tsx.snap @@ -36,7 +36,7 @@ exports[`TagLabel component renders correctly against snapshot 1`] = ` exports[`TagLabel component shallow render correctly against snapshot 1`] = ` <styled.div> <EuiBadge - color="secondary" + color="success" > US-East </EuiBadge> diff --git a/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/tag_label.tsx b/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/tag_label.tsx index a53beb60ab410..6bf73b9609e58 100644 --- a/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/tag_label.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/status_details/availability_reporting/tag_label.tsx @@ -23,7 +23,7 @@ const BadgeItem = styled.div` export const TagLabel: React.FC<StatusTag> = ({ color, label, status }) => { return ( <BadgeItem> - <EuiBadge color={status === STATUS.DOWN ? 'danger' : 'secondary'}>{label}</EuiBadge> + <EuiBadge color={status === STATUS.DOWN ? 'danger' : 'success'}>{label}</EuiBadge> </BadgeItem> ); }; diff --git a/x-pack/plugins/uptime/public/components/monitor/synthetics/waterfall/components/middle_truncated_text.tsx b/x-pack/plugins/uptime/public/components/monitor/synthetics/waterfall/components/middle_truncated_text.tsx index 311a496bd58a3..3e3b08f49d705 100644 --- a/x-pack/plugins/uptime/public/components/monitor/synthetics/waterfall/components/middle_truncated_text.tsx +++ b/x-pack/plugins/uptime/public/components/monitor/synthetics/waterfall/components/middle_truncated_text.tsx @@ -145,7 +145,7 @@ export const MiddleTruncatedText = ({ <SecureIcon type="lock" size="s" - color="secondary" + color="success" aria-label={i18n.translate('xpack.uptime.waterfallChart.sidebar.url.https', { defaultMessage: 'https', })} diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/alert_expression_popover.tsx b/x-pack/plugins/uptime/public/components/overview/alerts/alert_expression_popover.tsx index 6aa949cb73216..06309466161fa 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/alert_expression_popover.tsx +++ b/x-pack/plugins/uptime/public/components/overview/alerts/alert_expression_popover.tsx @@ -23,10 +23,10 @@ const getColor = ( isOpen: boolean, isEnabled?: boolean, isInvalid?: boolean -): 'primary' | 'secondary' | 'subdued' | 'danger' => { +): 'primary' | 'success' | 'subdued' | 'danger' => { if (isInvalid === true) return 'danger'; if (isEnabled === false) return 'subdued'; - return isOpen ? 'primary' : 'secondary'; + return isOpen ? 'primary' : 'success'; }; export const AlertExpressionPopover: React.FC<AlertExpressionPopoverProps> = ({ diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/alert_tls.tsx b/x-pack/plugins/uptime/public/components/overview/alerts/alert_tls.tsx index e2de834a379b5..f7cd341e04dae 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/alert_tls.tsx +++ b/x-pack/plugins/uptime/public/components/overview/alerts/alert_tls.tsx @@ -23,7 +23,7 @@ export const AlertTlsComponent: React.FC<Props> = (props) => ( <EuiFlexItem> <EuiExpression aria-label={TlsTranslations.criteriaAriaLabel} - color="secondary" + color="success" description={TlsTranslations.criteriaDescription} value={TlsTranslations.criteriaValue} /> diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/down_number_select.test.tsx.snap b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/down_number_select.test.tsx.snap index bf56ebd0de236..f9e169b976d1d 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/down_number_select.test.tsx.snap +++ b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/down_number_select.test.tsx.snap @@ -10,7 +10,7 @@ exports[`DownNoExpressionSelect component should renders against props 1`] = ` > <span aria-label="Open the popover for down count input" - class="euiExpression euiExpression-isUppercase euiExpression--secondary" + class="euiExpression euiExpression-isUppercase euiExpression--success" data-test-subj="xpack.uptime.alerts.monitorStatus.numTimesExpression" > <span diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/time_expression_select.test.tsx.snap b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/time_expression_select.test.tsx.snap index 487d42cfdb6f2..d7f04798198ce 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/time_expression_select.test.tsx.snap +++ b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/__snapshots__/time_expression_select.test.tsx.snap @@ -16,7 +16,7 @@ exports[`TimeExpressionSelect component should renders against props 1`] = ` > <span aria-label="Open the popover for time range value field" - class="euiExpression euiExpression-isUppercase euiExpression--secondary" + class="euiExpression euiExpression-isUppercase euiExpression--success" data-test-subj="xpack.uptime.alerts.monitorStatus.timerangeValueExpression" > <span @@ -46,7 +46,7 @@ exports[`TimeExpressionSelect component should renders against props 1`] = ` > <span aria-label="Open the popover for time range unit select field" - class="euiExpression euiExpression-isUppercase euiExpression--secondary" + class="euiExpression euiExpression-isUppercase euiExpression--success" data-test-subj="xpack.uptime.alerts.monitorStatus.timerangeUnitExpression" > <span diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx index cd0a78a42c5f7..8a3343d57f19d 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx +++ b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx @@ -144,7 +144,7 @@ export const FiltersExpressionsSelect: React.FC<FilterExpressionsSelectProps> = button={ <EuiExpression aria-label={ariaLabel} - color={'secondary'} + color={'success'} data-test-subj={'uptimeCreateStatusAlert.' + id} description={description} value={value} diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/settings_message_expression_popover.tsx b/x-pack/plugins/uptime/public/components/overview/alerts/settings_message_expression_popover.tsx index 789ed5988824a..93551f016f351 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/settings_message_expression_popover.tsx +++ b/x-pack/plugins/uptime/public/components/overview/alerts/settings_message_expression_popover.tsx @@ -37,7 +37,7 @@ export const SettingsMessageExpressionPopover: React.FC<SettingsMessageExpressio button={ <EuiExpression aria-label={ariaLabel} - color="secondary" + color="success" description={description} isActive={isOpen} onClick={() => setIsOpen(!isOpen)} diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/monitor_status_column.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/monitor_status_column.tsx index f5581f75b3759..6960bb5632852 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/monitor_status_column.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/columns/monitor_status_column.tsx @@ -162,7 +162,7 @@ export const MonitorListStatusColumn = ({ <EuiFlexItem grow={false} style={{ flexBasis: 40 }}> <EuiBadge className="eui-textCenter" - color={status === STATUS.UP ? 'secondary' : dangerBehindText} + color={status === STATUS.UP ? 'success' : dangerBehindText} > {getHealthMessage(status)} </EuiBadge> diff --git a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_status_row.tsx b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_status_row.tsx index 03655d11c983d..15e40773ae6df 100644 --- a/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_status_row.tsx +++ b/x-pack/plugins/uptime/public/components/overview/monitor_list/monitor_list_drawer/monitor_status_row.tsx @@ -23,7 +23,7 @@ interface MonitorStatusRowProps { } export const MonitorStatusRow = ({ locationNames, status }: MonitorStatusRowProps) => { - const color = status === STATUS.UP ? 'secondary' : 'danger'; + const color = status === STATUS.UP ? 'success' : 'danger'; let checkListArray = [...locationNames]; // If un-named location exists, move it to end diff --git a/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx b/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx index 60ccec84c3bb1..ac129bdb327d9 100644 --- a/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx +++ b/x-pack/plugins/uptime/public/lib/helper/rtl_helpers.tsx @@ -83,7 +83,7 @@ const createMockStore = () => { const mockAppUrls: Record<string, string> = { uptime: '/app/uptime', observability: '/app/observability', - '/integrations/detail/synthetics/overview': '/integrations/detail/synthetics/overview', + '/home#/tutorial/uptimeMonitors': '/home#/tutorial/uptimeMonitors', }; /* default mock core */ diff --git a/x-pack/plugins/uptime/public/pages/settings.test.tsx b/x-pack/plugins/uptime/public/pages/settings.test.tsx index 84bd4270951cf..f02e35506135b 100644 --- a/x-pack/plugins/uptime/public/pages/settings.test.tsx +++ b/x-pack/plugins/uptime/public/pages/settings.test.tsx @@ -29,7 +29,7 @@ describe('settings', () => { it('handles no spaces error', async () => { const { getByText, getByTestId } = render(<SettingsPage />); - expect(getByText('heartbeat-8*,synthetics-*')); + expect(getByText('heartbeat-8*,heartbeat-7*,synthetics-*')); fireEvent.input(getByTestId('heartbeat-indices-input-loaded'), { target: { value: 'heartbeat-8*, synthetics-*' }, @@ -41,7 +41,7 @@ describe('settings', () => { it('it show select a connector flyout', async () => { const { getByText, getByTestId } = render(<SettingsPage />); - expect(getByText('heartbeat-8*,synthetics-*')); + expect(getByText('heartbeat-8*,heartbeat-7*,synthetics-*')); fireEvent.click(getByTestId('createConnectorButton')); await waitFor(() => expect(getByText('Select a connector'))); diff --git a/x-pack/plugins/uptime/public/state/api/dynamic_settings.test.ts b/x-pack/plugins/uptime/public/state/api/dynamic_settings.test.ts new file mode 100644 index 0000000000000..46a10144edb08 --- /dev/null +++ b/x-pack/plugins/uptime/public/state/api/dynamic_settings.test.ts @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { omit } from 'lodash'; +import { apiService } from './utils'; +import { getDynamicSettings } from './dynamic_settings'; +import { HttpSetup } from 'src/core/public'; +import { DynamicSettings } from '../../../common/runtime_types/dynamic_settings'; + +describe('Dynamic Settings API', () => { + let fetchMock: jest.SpyInstance<Partial<unknown>>; + const defaultResponse: DynamicSettings & { _inspect: never[] } = { + heartbeatIndices: 'heartbeat-8*', + certAgeThreshold: 1, + certExpirationThreshold: 1337, + defaultConnectors: [], + _inspect: [], + }; + + beforeEach(() => { + apiService.http = { + get: jest.fn(), + fetch: jest.fn(), + } as unknown as HttpSetup; + + apiService.addInspectorRequest = jest.fn(); + + fetchMock = jest.spyOn(apiService.http, 'fetch'); + }); + + afterEach(() => { + jest.clearAllMocks(); + }); + + it('omits the _inspect prop on the response as decoding', async () => { + fetchMock.mockReturnValue(new Promise((r) => r(defaultResponse))); + + const resp = await getDynamicSettings(); + + expect(resp).toEqual(omit(defaultResponse, ['_inspect'])); + }); +}); diff --git a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_charts.test.ts.snap b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_charts.test.ts.snap index 2d1bdf791e39a..14e4261c28283 100644 --- a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_charts.test.ts.snap +++ b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_charts.test.ts.snap @@ -55,7 +55,7 @@ Array [ }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `; diff --git a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_details.test.ts.snap b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_details.test.ts.snap index 56b7ed25a74ad..9464f9960b8d2 100644 --- a/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_details.test.ts.snap +++ b/x-pack/plugins/uptime/server/lib/requests/__snapshots__/get_monitor_details.test.ts.snap @@ -55,7 +55,7 @@ Array [ }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `; @@ -103,7 +103,7 @@ Array [ }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `; diff --git a/x-pack/plugins/uptime/server/lib/requests/get_certs.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_certs.test.ts index a6b37215c141a..dbbbf5d82c970 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_certs.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_certs.test.ts @@ -212,7 +212,7 @@ describe('getCerts', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ], ] diff --git a/x-pack/plugins/uptime/server/lib/requests/get_monitor_availability.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_monitor_availability.test.ts index 0f1bd606307e5..ee8386dfce5d7 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_monitor_availability.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_monitor_availability.test.ts @@ -241,7 +241,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -387,7 +387,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); @@ -701,7 +701,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); @@ -799,7 +799,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -929,7 +929,7 @@ describe('monitor availability', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); diff --git a/x-pack/plugins/uptime/server/lib/requests/get_monitor_status.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_monitor_status.test.ts index 08b675576a5d2..4a790ad2a1e99 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_monitor_status.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_monitor_status.test.ts @@ -197,7 +197,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -311,7 +311,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -510,7 +510,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -629,7 +629,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); }); @@ -754,7 +754,7 @@ describe('getMonitorStatus', () => { }, "size": 0, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", } `); expect(result.length).toBe(3); diff --git a/x-pack/plugins/uptime/server/lib/requests/get_network_events.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_network_events.test.ts index e0cd17327a9b6..68fd53729f58d 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_network_events.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_network_events.test.ts @@ -215,7 +215,7 @@ describe('getNetworkEvents', () => { "size": 1000, "track_total_hits": true, }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ], ] diff --git a/x-pack/plugins/uptime/server/lib/requests/get_pings.test.ts b/x-pack/plugins/uptime/server/lib/requests/get_pings.test.ts index 96b95fafa921e..7b9a97a4f5cb9 100644 --- a/x-pack/plugins/uptime/server/lib/requests/get_pings.test.ts +++ b/x-pack/plugins/uptime/server/lib/requests/get_pings.test.ts @@ -175,7 +175,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -244,7 +244,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -313,7 +313,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -387,7 +387,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); @@ -506,7 +506,7 @@ describe('getAll', () => { }, ], }, - "index": "heartbeat-8*,synthetics-*", + "index": "heartbeat-8*,heartbeat-7*,synthetics-*", }, ] `); diff --git a/x-pack/plugins/uptime/server/rest_api/dynamic_settings.ts b/x-pack/plugins/uptime/server/rest_api/dynamic_settings.ts index 5d9947e23cf44..9068a8f6da52f 100644 --- a/x-pack/plugins/uptime/server/rest_api/dynamic_settings.ts +++ b/x-pack/plugins/uptime/server/rest_api/dynamic_settings.ts @@ -18,7 +18,7 @@ import { } from '../../common/translations'; import { API_URLS } from '../../common/constants'; -export const createGetDynamicSettingsRoute: UMRestApiRouteFactory = (libs: UMServerLibs) => ({ +export const createGetDynamicSettingsRoute: UMRestApiRouteFactory = (_libs: UMServerLibs) => ({ method: 'GET', path: API_URLS.DYNAMIC_SETTINGS, validate: false, @@ -46,7 +46,7 @@ export const validateCertsValues = ( } }; -export const createPostDynamicSettingsRoute: UMRestApiRouteFactory = (libs: UMServerLibs) => ({ +export const createPostDynamicSettingsRoute: UMRestApiRouteFactory = (_libs: UMServerLibs) => ({ method: 'POST', path: API_URLS.DYNAMIC_SETTINGS, validate: { diff --git a/x-pack/plugins/watcher/public/application/components/watch_status.tsx b/x-pack/plugins/watcher/public/application/components/watch_status.tsx index 5c1fd39b5b486..8c6ea0e01b357 100644 --- a/x-pack/plugins/watcher/public/application/components/watch_status.tsx +++ b/x-pack/plugins/watcher/public/application/components/watch_status.tsx @@ -17,7 +17,7 @@ function StatusIcon({ status }: { status: string }) { case WATCH_STATES.OK: case ACTION_STATES.OK: case ACTION_STATES.ACKNOWLEDGED: - return <EuiIcon type="check" color="secondary" />; + return <EuiIcon type="check" color="success" />; case ACTION_STATES.THROTTLED: return <EuiIcon type="clock" color="warning" />; case WATCH_STATES.DISABLED: diff --git a/x-pack/plugins/watcher/public/application/sections/watch_edit/components/json_watch_edit/json_watch_edit_form.tsx b/x-pack/plugins/watcher/public/application/sections/watch_edit/components/json_watch_edit/json_watch_edit_form.tsx index b19d97f67d2e0..c59147d7e7ce6 100644 --- a/x-pack/plugins/watcher/public/application/sections/watch_edit/components/json_watch_edit/json_watch_edit_form.tsx +++ b/x-pack/plugins/watcher/public/application/sections/watch_edit/components/json_watch_edit/json_watch_edit_form.tsx @@ -197,7 +197,7 @@ export const JsonWatchEditForm = () => { <EuiButton data-test-subj="saveWatchButton" fill - color="secondary" + color="success" type="submit" iconType="check" isLoading={isSaving} diff --git a/x-pack/plugins/watcher/public/application/sections/watch_edit/components/threshold_watch_edit/threshold_watch_edit.tsx b/x-pack/plugins/watcher/public/application/sections/watch_edit/components/threshold_watch_edit/threshold_watch_edit.tsx index 6587974363a80..667fe6b6fae9d 100644 --- a/x-pack/plugins/watcher/public/application/sections/watch_edit/components/threshold_watch_edit/threshold_watch_edit.tsx +++ b/x-pack/plugins/watcher/public/application/sections/watch_edit/components/threshold_watch_edit/threshold_watch_edit.tsx @@ -523,7 +523,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { onClick={() => { setAggFieldPopoverOpen(true); }} - color={watch.aggField ? 'secondary' : 'danger'} + color={watch.aggField ? 'success' : 'danger'} /> } isOpen={aggFieldPopoverOpen} @@ -617,7 +617,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { }} color={ watch.groupBy === 'all' || (watch.termSize && watch.termField) - ? 'secondary' + ? 'success' : 'danger' } /> @@ -730,7 +730,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { color={ errors.threshold0.length || (errors.threshold1 && errors.threshold1.length) ? 'danger' - : 'secondary' + : 'success' } /> } @@ -816,7 +816,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { onClick={() => { setWatchDurationPopoverOpen(true); }} - color={watch.timeWindowSize ? 'secondary' : 'danger'} + color={watch.timeWindowSize ? 'success' : 'danger'} /> } isOpen={watchDurationPopoverOpen} @@ -890,7 +890,7 @@ export const ThresholdWatchEdit = ({ pageTitle }: { pageTitle: string }) => { <EuiFlexItem grow={false}> <EuiButton fill - color="secondary" + color="success" data-test-subj="saveWatchButton" type="submit" iconType="check" diff --git a/x-pack/scripts/functional_tests.js b/x-pack/scripts/functional_tests.js index 1d0be47cb8108..f95237a76a861 100644 --- a/x-pack/scripts/functional_tests.js +++ b/x-pack/scripts/functional_tests.js @@ -53,6 +53,7 @@ const onlyNotInCoverageTests = [ require.resolve('../test/security_api_integration/login_selector.config.ts'), require.resolve('../test/security_api_integration/audit.config.ts'), require.resolve('../test/security_api_integration/http_bearer.config.ts'), + require.resolve('../test/security_api_integration/http_no_auth_providers.config.ts'), require.resolve('../test/security_api_integration/kerberos.config.ts'), require.resolve('../test/security_api_integration/kerberos_anonymous_access.config.ts'), require.resolve('../test/security_api_integration/pki.config.ts'), diff --git a/x-pack/test/accessibility/apps/upgrade_assistant.ts b/x-pack/test/accessibility/apps/upgrade_assistant.ts index 2c0e81a6fb831..829d0a2c42373 100644 --- a/x-pack/test/accessibility/apps/upgrade_assistant.ts +++ b/x-pack/test/accessibility/apps/upgrade_assistant.ts @@ -5,10 +5,10 @@ * 2.0. */ -import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { IndicesCreateRequest } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; import { FtrProviderContext } from '../ftr_provider_context'; -const translogSettingsIndexDeprecation: estypes.IndicesCreateRequest = { +const translogSettingsIndexDeprecation: IndicesCreateRequest = { index: 'deprecated_settings', body: { settings: { @@ -19,7 +19,7 @@ const translogSettingsIndexDeprecation: estypes.IndicesCreateRequest = { }, }; -const multiFieldsIndexDeprecation: estypes.IndicesCreateRequest = { +const multiFieldsIndexDeprecation: IndicesCreateRequest = { index: 'nested_multi_fields', body: { mappings: { @@ -55,6 +55,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { describe.skip('Upgrade Assistant', () => { before(async () => { await PageObjects.upgradeAssistant.navigateToPage(); + try { // Create two indices that will trigger deprecation warnings to test the ES deprecations page await es.indices.create(multiFieldsIndexDeprecation); @@ -76,128 +77,113 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { } }); - describe('Upgrade Assistant - Overview', () => { - before(async () => { + describe('Overview page', () => { + beforeEach(async () => { await PageObjects.upgradeAssistant.navigateToPage(); - - try { - // Create two indices that will trigger deprecation warnings to test the ES deprecations page - await es.indices.create(multiFieldsIndexDeprecation); - await es.indices.create(translogSettingsIndexDeprecation); - } catch (e) { - log.debug('[Setup error] Error creating indices'); - throw e; - } + await retry.waitFor('Upgrade Assistant overview page to be visible', async () => { + return testSubjects.exists('overview'); + }); }); - after(async () => { - try { - await es.indices.delete({ - index: [multiFieldsIndexDeprecation.index, translogSettingsIndexDeprecation.index], - }); - } catch (e) { - log.debug('[Cleanup error] Error deleting indices'); - throw e; - } + it('has no accessibility issues', async () => { + await a11y.testAppSnapshot(); }); + }); - describe('Overview page', () => { - beforeEach(async () => { - await PageObjects.upgradeAssistant.navigateToPage(); - await retry.waitFor('Upgrade Assistant overview page to be visible', async () => { - return testSubjects.exists('overview'); - }); - }); - - it('with logs collection disabled', async () => { - await a11y.testAppSnapshot(); - }); + describe('ES deprecations logs page', () => { + beforeEach(async () => { + await PageObjects.upgradeAssistant.navigateToEsDeprecationLogs(); + }); - it('with logs collection enabled', async () => { - await PageObjects.upgradeAssistant.clickDeprecationLoggingToggle(); + it('with logs collection disabled', async () => { + await a11y.testAppSnapshot(); + }); - await retry.waitFor('UA external links title to be present', async () => { - return testSubjects.isDisplayed('externalLinksTitle'); - }); + it('with logs collection enabled', async () => { + await PageObjects.upgradeAssistant.clickDeprecationLoggingToggle(); - await a11y.testAppSnapshot(); + await retry.waitFor('UA external links title to be present', async () => { + return testSubjects.isDisplayed('externalLinksTitle'); }); - }); - describe('Elasticsearch deprecations page', () => { - beforeEach(async () => { - await PageObjects.common.navigateToUrl( - 'management', - 'stack/upgrade_assistant/es_deprecations', - { - ensureCurrentUrl: false, - shouldLoginIfPrompted: false, - shouldUseHashForSubUrl: false, - } - ); - - await retry.waitFor('Elasticsearch deprecations table to be visible', async () => { - return testSubjects.exists('esDeprecationsTable'); - }); - }); + await a11y.testAppSnapshot(); + }); + }); - it('Deprecations table', async () => { - await a11y.testAppSnapshot(); + describe('Elasticsearch deprecations page', () => { + beforeEach(async () => { + await PageObjects.common.navigateToUrl( + 'management', + 'stack/upgrade_assistant/es_deprecations', + { + ensureCurrentUrl: false, + shouldLoginIfPrompted: false, + shouldUseHashForSubUrl: false, + } + ); + + await retry.waitFor('Elasticsearch deprecations table to be visible', async () => { + return testSubjects.exists('esDeprecationsTable'); }); + }); - it('Index settings deprecation flyout', async () => { - await PageObjects.upgradeAssistant.clickEsDeprecation( - 'indexSettings' // An index setting deprecation was added in the before() hook so should be guaranteed - ); - await retry.waitFor('ES index settings deprecation flyout to be visible', async () => { - return testSubjects.exists('indexSettingsDetails'); - }); - await a11y.testAppSnapshot(); - }); + it('Deprecations table', async () => { + await a11y.testAppSnapshot(); + }); - it('Default deprecation flyout', async () => { - await PageObjects.upgradeAssistant.clickEsDeprecation( - 'default' // A default deprecation was added in the before() hook so should be guaranteed - ); - await retry.waitFor('ES default deprecation flyout to be visible', async () => { - return testSubjects.exists('defaultDeprecationDetails'); - }); - await a11y.testAppSnapshot(); + // Failing: See https://github.com/elastic/kibana/issues/115859 + it.skip('Index settings deprecation flyout', async () => { + await PageObjects.upgradeAssistant.clickEsDeprecation( + 'indexSettings' // An index setting deprecation was added in the before() hook so should be guaranteed + ); + await retry.waitFor('ES index settings deprecation flyout to be visible', async () => { + return testSubjects.exists('indexSettingsDetails'); }); + await a11y.testAppSnapshot(); }); - describe('Kibana deprecations page', () => { - beforeEach(async () => { - await PageObjects.common.navigateToUrl( - 'management', - 'stack/upgrade_assistant/kibana_deprecations', - { - ensureCurrentUrl: false, - shouldLoginIfPrompted: false, - shouldUseHashForSubUrl: false, - } - ); - - await retry.waitFor('Kibana deprecations to be visible', async () => { - return testSubjects.exists('kibanaDeprecations'); - }); + it('Default deprecation flyout', async () => { + await PageObjects.upgradeAssistant.clickEsDeprecation( + 'default' // A default deprecation was added in the before() hook so should be guaranteed + ); + await retry.waitFor('ES default deprecation flyout to be visible', async () => { + return testSubjects.exists('defaultDeprecationDetails'); }); + await a11y.testAppSnapshot(); + }); + }); - it('Deprecations table', async () => { - await a11y.testAppSnapshot(); + describe('Kibana deprecations page', () => { + beforeEach(async () => { + await PageObjects.common.navigateToUrl( + 'management', + 'stack/upgrade_assistant/kibana_deprecations', + { + ensureCurrentUrl: false, + shouldLoginIfPrompted: false, + shouldUseHashForSubUrl: false, + } + ); + + await retry.waitFor('Kibana deprecations to be visible', async () => { + return testSubjects.exists('kibanaDeprecations'); }); + }); - it('Deprecation details flyout', async () => { - await PageObjects.upgradeAssistant.clickKibanaDeprecation( - 'xpack.securitySolution has a deprecated setting' // This deprecation was added to the test runner config so should be guaranteed - ); + it('Deprecations table', async () => { + await a11y.testAppSnapshot(); + }); - await retry.waitFor('Kibana deprecation details flyout to be visible', async () => { - return testSubjects.exists('kibanaDeprecationDetails'); - }); + it('Deprecation details flyout', async () => { + await PageObjects.upgradeAssistant.clickKibanaDeprecation( + 'xpack.securitySolution has a deprecated setting' // This deprecation was added to the test runner config so should be guaranteed + ); - await a11y.testAppSnapshot(); + await retry.waitFor('Kibana deprecation details flyout to be visible', async () => { + return testSubjects.exists('kibanaDeprecationDetails'); }); + + await a11y.testAppSnapshot(); }); }); }); diff --git a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/disable.ts b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/disable.ts index fa94eed46dc3f..51cb54aa5f9e5 100644 --- a/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/disable.ts +++ b/x-pack/test/alerting_api_integration/spaces_only/tests/alerting/disable.ts @@ -9,17 +9,17 @@ import expect from '@kbn/expect'; import { Spaces } from '../../scenarios'; import { FtrProviderContext } from '../../../common/ftr_provider_context'; import { - AlertUtils, + AlertUtils as RuleUtils, checkAAD, getUrlPrefix, - getTestAlertData, + getTestAlertData as getTestRuleData, ObjectRemover, getEventLog, } from '../../../common/lib'; import { validateEvent } from './event_log'; // eslint-disable-next-line import/no-default-export -export default function createDisableAlertTests({ getService }: FtrProviderContext) { +export default function createDisableRuleTests({ getService }: FtrProviderContext) { const es = getService('es'); const supertestWithoutAuth = getService('supertestWithoutAuth'); const retry = getService('retry'); @@ -27,7 +27,7 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte describe('disable', () => { const objectRemover = new ObjectRemover(supertestWithoutAuth); - const alertUtils = new AlertUtils({ space: Spaces.space1, supertestWithoutAuth }); + const ruleUtils = new RuleUtils({ space: Spaces.space1, supertestWithoutAuth }); after(() => objectRemover.removeAll()); @@ -38,18 +38,18 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte }); } - it('should handle disable alert request appropriately', async () => { - const { body: createdAlert } = await supertestWithoutAuth + it('should handle disable rule request appropriately', async () => { + const { body: createdRule } = await supertestWithoutAuth .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') - .send(getTestAlertData({ enabled: true })) + .send(getTestRuleData({ enabled: true })) .expect(200); - objectRemover.add(Spaces.space1.id, createdAlert.id, 'rule', 'alerting'); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); - await alertUtils.disable(createdAlert.id); + await ruleUtils.disable(createdRule.id); try { - await getScheduledTask(createdAlert.scheduledTaskId); + await getScheduledTask(createdRule.scheduled_task_id); throw new Error('Should have removed scheduled task'); } catch (e) { expect(e.meta.statusCode).to.eql(404); @@ -60,27 +60,27 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte supertest: supertestWithoutAuth, spaceId: Spaces.space1.id, type: 'alert', - id: createdAlert.id, + id: createdRule.id, }); }); - it(`shouldn't disable alert from another space`, async () => { - const { body: createdAlert } = await supertestWithoutAuth + it(`shouldn't disable rule from another space`, async () => { + const { body: createdRule } = await supertestWithoutAuth .post(`${getUrlPrefix(Spaces.other.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') - .send(getTestAlertData({ enabled: true })) + .send(getTestRuleData({ enabled: true })) .expect(200); - objectRemover.add(Spaces.other.id, createdAlert.id, 'rule', 'alerting'); + objectRemover.add(Spaces.other.id, createdRule.id, 'rule', 'alerting'); - await alertUtils.getDisableRequest(createdAlert.id).expect(404, { + await ruleUtils.getDisableRequest(createdRule.id).expect(404, { statusCode: 404, error: 'Not Found', - message: `Saved object [alert/${createdAlert.id}] not found`, + message: `Saved object [alert/${createdRule.id}] not found`, }); }); - it('should create recovered-instance events for all alert instances', async () => { - const { body: createdAlert } = await supertest + it('should create recovered-instance events for all alerts', async () => { + const { body: createdRule } = await supertest .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') .send({ @@ -96,12 +96,12 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte notify_when: 'onThrottleInterval', }) .expect(200); - objectRemover.add(Spaces.space1.id, createdAlert.id, 'rule', 'alerting'); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); - // wait for alert to actually execute + // wait for rule to actually execute await retry.try(async () => { const response = await supertest.get( - `${getUrlPrefix(Spaces.space1.id)}/internal/alerting/rule/${createdAlert.id}/state` + `${getUrlPrefix(Spaces.space1.id)}/internal/alerting/rule/${createdRule.id}/state` ); expect(response.status).to.eql(200); @@ -109,8 +109,8 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte expect(response.body.rule_type_state.runCount).to.greaterThan(1); }); - await alertUtils.getDisableRequest(createdAlert.id); - const ruleId = createdAlert.id; + await ruleUtils.getDisableRequest(createdRule.id); + const ruleId = createdRule.id; // wait for the events we're expecting const events = await retry.try(async () => { @@ -140,7 +140,7 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte shouldHaveTask: false, rule: { id: ruleId, - category: createdAlert.rule_type_id, + category: createdRule.rule_type_id, license: 'basic', ruleset: 'alertsFixture', name: 'abc', @@ -148,22 +148,46 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte }); }); + it('should disable rule even if associated task manager document is missing', async () => { + const { body: createdRule } = await supertestWithoutAuth + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) + .set('kbn-xsrf', 'foo') + .send(getTestRuleData({ enabled: true })) + .expect(200); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); + + // manually remove scheduled task + await es.delete({ + id: `task:${createdRule.scheduled_task_id}`, + index: '.kibana_task_manager', + }); + await ruleUtils.disable(createdRule.id); + + // Ensure AAD isn't broken + await checkAAD({ + supertest: supertestWithoutAuth, + spaceId: Spaces.space1.id, + type: 'alert', + id: createdRule.id, + }); + }); + describe('legacy', () => { - it('should handle disable alert request appropriately', async () => { - const { body: createdAlert } = await supertestWithoutAuth + it('should handle disable rule request appropriately', async () => { + const { body: createdRule } = await supertestWithoutAuth .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerting/rule`) .set('kbn-xsrf', 'foo') - .send(getTestAlertData({ enabled: true })) + .send(getTestRuleData({ enabled: true })) .expect(200); - objectRemover.add(Spaces.space1.id, createdAlert.id, 'rule', 'alerting'); + objectRemover.add(Spaces.space1.id, createdRule.id, 'rule', 'alerting'); await supertestWithoutAuth - .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert/${createdAlert.id}/_disable`) + .post(`${getUrlPrefix(Spaces.space1.id)}/api/alerts/alert/${createdRule.id}/_disable`) .set('kbn-xsrf', 'foo') .expect(204); try { - await getScheduledTask(createdAlert.scheduledTaskId); + await getScheduledTask(createdRule.scheduled_task_id); throw new Error('Should have removed scheduled task'); } catch (e) { expect(e.meta.statusCode).to.eql(404); @@ -174,7 +198,7 @@ export default function createDisableAlertTests({ getService }: FtrProviderConte supertest: supertestWithoutAuth, spaceId: Spaces.space1.id, type: 'alert', - id: createdAlert.id, + id: createdRule.id, }); }); }); diff --git a/x-pack/test/api_integration/apis/metrics_ui/index.js b/x-pack/test/api_integration/apis/metrics_ui/index.js index dfba4ee0985ba..72c79faaa4372 100644 --- a/x-pack/test/api_integration/apis/metrics_ui/index.js +++ b/x-pack/test/api_integration/apis/metrics_ui/index.js @@ -19,5 +19,9 @@ export default function ({ loadTestFile }) { loadTestFile(require.resolve('./ip_to_hostname')); loadTestFile(require.resolve('./http_source')); loadTestFile(require.resolve('./metric_threshold_alert')); + loadTestFile(require.resolve('./metrics_overview_top')); + loadTestFile(require.resolve('./metrics_process_list')); + loadTestFile(require.resolve('./metrics_process_list_chart')); + loadTestFile(require.resolve('./infra_log_analysis_validation_log_entry_datasets')); }); } diff --git a/x-pack/test/api_integration/apis/metrics_ui/infra_log_analysis_validation_log_entry_datasets.ts b/x-pack/test/api_integration/apis/metrics_ui/infra_log_analysis_validation_log_entry_datasets.ts new file mode 100644 index 0000000000000..9867abcc67a7d --- /dev/null +++ b/x-pack/test/api_integration/apis/metrics_ui/infra_log_analysis_validation_log_entry_datasets.ts @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + LOG_ANALYSIS_VALIDATE_DATASETS_PATH, + validateLogEntryDatasetsRequestPayloadRT, + validateLogEntryDatasetsResponsePayloadRT, +} from '../../../../plugins/infra/common/http_api/log_analysis/validation/datasets'; +import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + describe('API /infra/log_analysis/validation/log_entry_datasets', () => { + before(() => + esArchiver.load('x-pack/test/functional/es_archives/infra/8.0.0/logs_and_metrics') + ); + after(() => + esArchiver.unload('x-pack/test/functional/es_archives/infra/8.0.0/logs_and_metrics') + ); + + it('works', async () => { + const response = await supertest + .post(LOG_ANALYSIS_VALIDATE_DATASETS_PATH) + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send( + validateLogEntryDatasetsRequestPayloadRT.encode({ + data: { + endTime: Date.now().valueOf(), + indices: ['filebeat-*'], + startTime: 1562766600672, + timestampField: '@timestamp', + runtimeMappings: {}, + }, + }) + ) + .expect(200); + + const { + data: { datasets }, + } = decodeOrThrow(validateLogEntryDatasetsResponsePayloadRT)(response.body); + + expect(datasets.length).to.be(1); + expect(datasets[0].indexName).to.be('filebeat-*'); + expect(datasets[0].datasets).to.eql([ + 'elasticsearch.gc', + 'elasticsearch.server', + 'kibana.log', + 'nginx.access', + ]); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/metrics_ui/metrics_overview_top.ts b/x-pack/test/api_integration/apis/metrics_ui/metrics_overview_top.ts new file mode 100644 index 0000000000000..ee73c9bd92a54 --- /dev/null +++ b/x-pack/test/api_integration/apis/metrics_ui/metrics_overview_top.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + TopNodesRequestRT, + TopNodesResponseRT, +} from '../../../../plugins/infra/common/http_api/overview_api'; +import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../../ftr_provider_context'; +import { DATES } from './constants'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + const { min, max } = DATES['7.0.0'].hosts; + + describe('API /metrics/overview/top', () => { + before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/7.0.0/hosts')); + after(() => esArchiver.unload('x-pack/test/functional/es_archives/infra/7.0.0/hosts')); + + it('works', async () => { + const response = await supertest + .post('/api/metrics/overview/top') + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send( + TopNodesRequestRT.encode({ + sourceId: 'default', + bucketSize: '300s', + size: 5, + timerange: { + from: min, + to: max, + }, + }) + ) + .expect(200); + + const { series } = decodeOrThrow(TopNodesResponseRT)(response.body); + + expect(series.length).to.be(1); + expect(series[0].id).to.be('demo-stack-mysql-01'); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list.ts b/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list.ts new file mode 100644 index 0000000000000..bba38f622b0ab --- /dev/null +++ b/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list.ts @@ -0,0 +1,58 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + ProcessListAPIRequestRT, + ProcessListAPIResponseRT, +} from '../../../../plugins/infra/common/http_api/host_details/process_list'; +import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + describe('API /metrics/process_list', () => { + before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/8.0.0/metrics_and_apm')); + after(() => + esArchiver.unload('x-pack/test/functional/es_archives/infra/8.0.0/metrics_and_apm') + ); + + it('works', async () => { + const response = await supertest + .post('/api/metrics/process_list') + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send( + ProcessListAPIRequestRT.encode({ + hostTerm: { + 'host.name': 'gke-observability-8--observability-8--bc1afd95-nhhw', + }, + indexPattern: 'metrics-*,metricbeat-*', + to: 1564432800000, + sortBy: { + name: 'cpu', + isAscending: false, + }, + searchFilter: [ + { + match_all: {}, + }, + ], + }) + ) + .expect(200); + + const { processList, summary } = decodeOrThrow(ProcessListAPIResponseRT)(response.body); + + expect(processList.length).to.be(10); + expect(summary.total).to.be(178); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list_chart.ts b/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list_chart.ts new file mode 100644 index 0000000000000..ba4d7123556c1 --- /dev/null +++ b/x-pack/test/api_integration/apis/metrics_ui/metrics_process_list_chart.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { + ProcessListAPIChartRequestRT, + ProcessListAPIChartResponseRT, +} from '../../../../plugins/infra/common/http_api/host_details/process_list'; +import { decodeOrThrow } from '../../../../plugins/infra/common/runtime_types'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertest'); + + describe('API /metrics/process_list/chart', () => { + before(() => esArchiver.load('x-pack/test/functional/es_archives/infra/8.0.0/metrics_and_apm')); + after(() => + esArchiver.unload('x-pack/test/functional/es_archives/infra/8.0.0/metrics_and_apm') + ); + + it('works', async () => { + const response = await supertest + .post('/api/metrics/process_list/chart') + .set({ + 'kbn-xsrf': 'some-xsrf-token', + }) + .send( + ProcessListAPIChartRequestRT.encode({ + hostTerm: { + 'host.name': 'gke-observability-8--observability-8--bc1afd95-nhhw', + }, + indexPattern: 'metrics-*,metricbeat-*', + to: 1564432800000, + command: '/usr/lib/systemd/systemd-journald', + }) + ) + .expect(200); + + const { cpu, memory } = decodeOrThrow(ProcessListAPIChartResponseRT)(response.body); + + expect(cpu.rows.length).to.be(16); + expect(memory.rows.length).to.be(16); + }); + }); +} diff --git a/x-pack/test/api_integration/apis/ml/system/capabilities.ts b/x-pack/test/api_integration/apis/ml/system/capabilities.ts index 4eb040d031c2e..d0df53dfee343 100644 --- a/x-pack/test/api_integration/apis/ml/system/capabilities.ts +++ b/x-pack/test/api_integration/apis/ml/system/capabilities.ts @@ -45,7 +45,7 @@ export default ({ getService }: FtrProviderContext) => { it('should have the right number of capabilities', async () => { const { capabilities } = await runRequest(USER.ML_POWERUSER); - expect(Object.keys(capabilities).length).to.eql(31); + expect(Object.keys(capabilities).length).to.eql(32); }); it('should get viewer capabilities', async () => { @@ -83,6 +83,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: true, canCreateAnnotation: true, canDeleteAnnotation: true, + canViewMlNodes: false, }); }); @@ -121,6 +122,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: true, canCreateAnnotation: true, canDeleteAnnotation: true, + canViewMlNodes: true, }); }); }); diff --git a/x-pack/test/api_integration/apis/ml/system/space_capabilities.ts b/x-pack/test/api_integration/apis/ml/system/space_capabilities.ts index 6d6a00e882689..b51b87457caa2 100644 --- a/x-pack/test/api_integration/apis/ml/system/space_capabilities.ts +++ b/x-pack/test/api_integration/apis/ml/system/space_capabilities.ts @@ -71,11 +71,11 @@ export default ({ getService }: FtrProviderContext) => { it('should have the right number of capabilities - space with ML', async () => { const { capabilities } = await runRequest(USER.ML_POWERUSER, idSpaceWithMl); - expect(Object.keys(capabilities).length).to.eql(31); + expect(Object.keys(capabilities).length).to.eql(32); }); it('should have the right number of capabilities - space without ML', async () => { const { capabilities } = await runRequest(USER.ML_POWERUSER, idSpaceNoMl); - expect(Object.keys(capabilities).length).to.eql(31); + expect(Object.keys(capabilities).length).to.eql(32); }); it('should get viewer capabilities - space with ML', async () => { @@ -112,6 +112,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: true, canCreateAnnotation: true, canDeleteAnnotation: true, + canViewMlNodes: false, }); }); @@ -149,6 +150,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: false, canCreateAnnotation: false, canDeleteAnnotation: false, + canViewMlNodes: false, }); }); @@ -186,6 +188,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: true, canCreateAnnotation: true, canDeleteAnnotation: true, + canViewMlNodes: true, }); }); @@ -223,6 +226,7 @@ export default ({ getService }: FtrProviderContext) => { canGetAnnotations: false, canCreateAnnotation: false, canDeleteAnnotation: false, + canViewMlNodes: false, }); }); }); diff --git a/x-pack/test/api_integration/apis/uptime/rest/dynamic_settings.ts b/x-pack/test/api_integration/apis/uptime/rest/dynamic_settings.ts index 84e01ecef63d6..bccde2e6d9cb8 100644 --- a/x-pack/test/api_integration/apis/uptime/rest/dynamic_settings.ts +++ b/x-pack/test/api_integration/apis/uptime/rest/dynamic_settings.ts @@ -16,6 +16,7 @@ import { DYNAMIC_SETTINGS_DEFAULTS, API_URLS, } from '../../../../../plugins/uptime/common/constants'; + export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); diff --git a/x-pack/test/api_integration/apis/uptime/rest/fixtures/doc_count.json b/x-pack/test/api_integration/apis/uptime/rest/fixtures/doc_count.json index 5151f0adb0011..5edaafd30ad21 100644 --- a/x-pack/test/api_integration/apis/uptime/rest/fixtures/doc_count.json +++ b/x-pack/test/api_integration/apis/uptime/rest/fixtures/doc_count.json @@ -1,5 +1,5 @@ { "indexExists": true, "docCount": 1, - "indices": "heartbeat-8*,synthetics-*" + "indices": "heartbeat-8*,heartbeat-7*,synthetics-*" } diff --git a/x-pack/test/apm_api_integration/tests/correlations/failed_transactions.spec.ts b/x-pack/test/apm_api_integration/tests/correlations/failed_transactions.spec.ts index 22909d5431b4b..0a175762fe3e8 100644 --- a/x-pack/test/apm_api_integration/tests/correlations/failed_transactions.spec.ts +++ b/x-pack/test/apm_api_integration/tests/correlations/failed_transactions.spec.ts @@ -201,7 +201,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { expect(finalRawResponse?.percentileThresholdValue).to.be(1309695.875); expect(finalRawResponse?.errorHistogram?.length).to.be(101); expect(finalRawResponse?.overallHistogram?.length).to.be(101); - expect(finalRawResponse?.fieldStats?.length).to.be(26); + expect(finalRawResponse?.fieldStats?.length).to.be(fieldsToSample.size); expect(finalRawResponse?.failedTransactionsCorrelations?.length).to.eql( 30, diff --git a/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts b/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts index 6be2399729339..b99f9eb5897a9 100644 --- a/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts +++ b/x-pack/test/apm_api_integration/tests/correlations/latency.spec.ts @@ -105,7 +105,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { { config: 'trial', archives: ['8.0.0'] }, () => { // putting this into a single `it` because the responses depend on each other - // FLAKY: https://github.com/elastic/kibana/issues/118023 + // flaky: https://github.com/elastic/kibana/issues/118023 it.skip('runs queries and returns results', async () => { const overallDistributionResponse = await apmApiClient.readUser({ endpoint: 'POST /internal/apm/latency/overall_distribution', @@ -210,7 +210,7 @@ export default function ApiTest({ getService }: FtrProviderContext) { // Fetched 95th percentile value of 1309695.875 based on 1244 documents. expect(finalRawResponse?.percentileThresholdValue).to.be(1309695.875); expect(finalRawResponse?.overallHistogram?.length).to.be(101); - expect(finalRawResponse?.fieldStats?.length).to.be(12); + expect(finalRawResponse?.fieldStats?.length).to.be(fieldsToSample.size); // Identified 13 significant correlations out of 379 field/value pairs. expect(finalRawResponse?.latencyCorrelations?.length).to.eql( diff --git a/x-pack/test/apm_api_integration/tests/metrics_charts/metrics_charts.spec.ts b/x-pack/test/apm_api_integration/tests/metrics_charts/metrics_charts.spec.ts index d70ee347d4c2d..beaaae24fb220 100644 --- a/x-pack/test/apm_api_integration/tests/metrics_charts/metrics_charts.spec.ts +++ b/x-pack/test/apm_api_integration/tests/metrics_charts/metrics_charts.spec.ts @@ -7,7 +7,7 @@ import expect from '@kbn/expect'; import { first } from 'lodash'; -import { GenericMetricsChart } from '../../../../plugins/apm/server/lib/metrics/fetch_and_transform_metrics'; +import { GenericMetricsChart } from '../../../../plugins/apm/server/routes/metrics/fetch_and_transform_metrics'; import { SupertestReturnType } from '../../common/apm_api_supertest'; import { FtrProviderContext } from '../../common/ftr_provider_context'; diff --git a/x-pack/test/apm_api_integration/tests/settings/agent_configuration.spec.ts b/x-pack/test/apm_api_integration/tests/settings/agent_configuration.spec.ts index df504ec7444d7..cea718c2c69d5 100644 --- a/x-pack/test/apm_api_integration/tests/settings/agent_configuration.spec.ts +++ b/x-pack/test/apm_api_integration/tests/settings/agent_configuration.spec.ts @@ -10,7 +10,7 @@ import { inspect } from 'util'; import expect from '@kbn/expect'; import { omit, orderBy } from 'lodash'; import { AgentConfigurationIntake } from '../../../../plugins/apm/common/agent_configuration/configuration_types'; -import { AgentConfigSearchParams } from '../../../../plugins/apm/server/routes/settings/agent_configuration'; +import { AgentConfigSearchParams } from '../../../../plugins/apm/server/routes/settings/agent_configuration/route'; import { FtrProviderContext } from '../../common/ftr_provider_context'; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/generating_signals.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/generating_signals.ts index b28ff3fdc714d..073c5a9971f4b 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/generating_signals.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/generating_signals.ts @@ -56,6 +56,7 @@ import { ALERT_GROUP_ID, ALERT_THRESHOLD_RESULT, } from '../../../../plugins/security_solution/common/field_maps/field_names'; +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/security_solution/common/constants'; /** * Specific _id to use for some of the tests. If the archiver changes and you see errors @@ -1157,5 +1158,71 @@ export default ({ getService }: FtrProviderContext) => { }); }); }); + + describe.skip('Signal deduplication', async () => { + before(async () => { + await esArchiver.load('x-pack/test/functional/es_archives/auditbeat/hosts'); + }); + + after(async () => { + await esArchiver.unload('x-pack/test/functional/es_archives/auditbeat/hosts'); + }); + + beforeEach(async () => { + await deleteSignalsIndex(supertest, log); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest, log); + await deleteAllAlerts(supertest, log); + }); + + it('should not generate duplicate signals', async () => { + const rule: QueryCreateSchema = { + ...getRuleForSignalTesting(['auditbeat-*']), + query: `_id:${ID}`, + }; + + const ruleResponse = await createRule(supertest, log, rule); + + const signals = await getOpenSignals(supertest, log, es, ruleResponse); + expect(signals.hits.hits.length).to.eql(1); + + const statusResponse = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_find_statuses`) + .set('kbn-xsrf', 'true') + .send({ ids: [ruleResponse.id] }); + const initialStatusDate = new Date( + statusResponse.body[ruleResponse.id].current_status.status_date + ); + + const initialSignal = signals.hits.hits[0]; + + // Disable the rule then re-enable to trigger another run + await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: ruleResponse.rule_id, enabled: false }) + .expect(200); + + await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: ruleResponse.rule_id, enabled: true }) + .expect(200); + + await waitForRuleSuccessOrStatus( + supertest, + log, + ruleResponse.id, + 'succeeded', + initialStatusDate + ); + + const newSignals = await getOpenSignals(supertest, log, es, ruleResponse); + expect(newSignals.hits.hits.length).to.eql(1); + expect(newSignals.hits.hits[0]).to.eql(initialSignal); + }); + }); }); }; diff --git a/x-pack/test/detection_engine_api_integration/utils.ts b/x-pack/test/detection_engine_api_integration/utils.ts index cc915324a4a35..bb4f564edaf1e 100644 --- a/x-pack/test/detection_engine_api_integration/utils.ts +++ b/x-pack/test/detection_engine_api_integration/utils.ts @@ -1308,7 +1308,8 @@ export const waitForRuleSuccessOrStatus = async ( supertest: SuperTest.SuperTest<SuperTest.Test>, log: ToolingLog, id: string, - status: 'succeeded' | 'failed' | 'partial failure' | 'warning' = 'succeeded' + status: 'succeeded' | 'failed' | 'partial failure' | 'warning' = 'succeeded', + afterDate?: Date ): Promise<void> => { await waitFor( async () => { @@ -1324,15 +1325,20 @@ export const waitForRuleSuccessOrStatus = async ( )}, status: ${JSON.stringify(response.status)}` ); } - if (response.body[id]?.current_status?.status !== status) { + const currentStatus = response.body[id]?.current_status; + + if (currentStatus?.status !== status) { log.debug( `Did not get an expected status of ${status} while waiting for a rule success or status for rule id ${id} (waitForRuleSuccessOrStatus). Will continue retrying until status is found. body: ${JSON.stringify( response.body )}, status: ${JSON.stringify(response.status)}` ); } - - return response.body[id]?.current_status?.status === status; + return ( + currentStatus != null && + currentStatus.status === status && + (afterDate ? new Date(currentStatus.status_date) > afterDate : true) + ); } catch (e) { if ((e as Error).message.includes('got 503 "Service Unavailable"')) { return false; diff --git a/x-pack/test/examples/search_examples/search_session_example.ts b/x-pack/test/examples/search_examples/search_session_example.ts index ab96a7767baff..e6261f69e14f6 100644 --- a/x-pack/test/examples/search_examples/search_session_example.ts +++ b/x-pack/test/examples/search_examples/search_session_example.ts @@ -15,7 +15,8 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { const es = getService('es'); const searchSessions = getService('searchSessions'); - describe('Search session example', () => { + // FLAKY: https://github.com/elastic/kibana/issues/118921 + describe.skip('Search session example', () => { const appId = 'searchExamples'; before(async function () { diff --git a/x-pack/test/fleet_api_integration/apis/epm/__snapshots__/install_by_upload.snap b/x-pack/test/fleet_api_integration/apis/epm/__snapshots__/install_by_upload.snap index 04d189b5d59b2..5eb4ae1808d7b 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/__snapshots__/install_by_upload.snap +++ b/x-pack/test/fleet_api_integration/apis/epm/__snapshots__/install_by_upload.snap @@ -446,7 +446,6 @@ Object { "type": "search", }, ], - "keep_policies_up_to_date": false, "name": "apache", "package_assets": Array [ Object { diff --git a/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts b/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts index f3f036107fc22..0915af7e25f0c 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/install_remove_assets.ts @@ -673,7 +673,6 @@ const expectAssetsInstalled = ({ install_status: 'installed', install_started_at: res.attributes.install_started_at, install_source: 'registry', - keep_policies_up_to_date: false, }); }); }; diff --git a/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts b/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts index d55f6aad53aa2..357345777e52e 100644 --- a/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts +++ b/x-pack/test/fleet_api_integration/apis/epm/update_assets.ts @@ -462,7 +462,6 @@ export default function (providerContext: FtrProviderContext) { install_status: 'installed', install_started_at: res.attributes.install_started_at, install_source: 'registry', - keep_policies_up_to_date: false, }); }); }); diff --git a/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts b/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts index 5a61d69ed8ba6..0747a452c5864 100644 --- a/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts +++ b/x-pack/test/fleet_api_integration/apis/package_policy/upgrade.ts @@ -124,11 +124,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, packageVersion: '0.2.0-add-non-required-test-var', }) .expect(200); @@ -145,14 +144,12 @@ export default function (providerContext: FtrProviderContext) { }); describe('upgrade', function () { - it('should respond with an error when "dryRun: false" is provided', async function () { + it('should respond with an error', async function () { await supertest .post(`/api/fleet/package_policies/upgrade`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, - packageVersion: '0.2.0-add-non-required-test-var', }) .expect(400); }); @@ -234,11 +231,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -265,7 +261,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -345,11 +340,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -371,7 +365,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -455,11 +448,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -476,7 +468,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -556,11 +547,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a diff with errors', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -575,7 +565,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(400); }); @@ -656,11 +645,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a diff with errors', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -675,7 +663,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(400); }); @@ -756,11 +743,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -775,7 +761,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -884,11 +869,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -903,7 +887,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -981,11 +964,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('returns a valid diff', async function () { const { body }: { body: UpgradePackagePolicyDryRunResponse } = await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, }) .expect(200); @@ -1023,7 +1005,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, }) .expect(200); @@ -1033,24 +1014,22 @@ export default function (providerContext: FtrProviderContext) { }); describe('when package policy is not found', function () { - it('should return an 200 with errors when "dryRun:true" is provided', async function () { + it('should return an 200 with errors when performing a dryrun', async function () { await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: ['xxxx', 'yyyy'], - dryRun: true, }) .expect(404); }); - it('should return a 200 with errors and "success:false" when "dryRun:false" is provided', async function () { + it('should return a 200 with errors and "success:false" when trying to upgrade', async function () { await supertest .post(`/api/fleet/package_policies/upgrade`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: ['xxxx', 'yyyy'], - dryRun: false, }) .expect(404); }); @@ -1126,11 +1105,10 @@ export default function (providerContext: FtrProviderContext) { describe('dry run', function () { it('should respond with a bad request', async function () { await supertest - .post(`/api/fleet/package_policies/upgrade`) + .post(`/api/fleet/package_policies/upgrade/dryrun`) .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: true, packageVersion: '0.1.0', }) .expect(400); @@ -1144,8 +1122,6 @@ export default function (providerContext: FtrProviderContext) { .set('kbn-xsrf', 'xxxx') .send({ packagePolicyIds: [packagePolicyId], - dryRun: false, - packageVersion: '0.1.0', }) .expect(400); }); diff --git a/x-pack/test/functional/apps/dev_tools/breadcrumbs.ts b/x-pack/test/functional/apps/dev_tools/breadcrumbs.ts new file mode 100644 index 0000000000000..c41e75c45fd43 --- /dev/null +++ b/x-pack/test/functional/apps/dev_tools/breadcrumbs.ts @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getPageObjects, getService }: FtrProviderContext) { + const PageObjects = getPageObjects(['common']); + const testSubjects = getService('testSubjects'); + const security = getService('security'); + + describe('Breadcrumbs', () => { + before(async () => { + await security.testUser.setRoles(['global_devtools_read']); + await PageObjects.common.navigateToApp('searchProfiler'); + }); + + after(async () => { + await security.testUser.restoreDefaults(); + }); + + it('Sets the right breadcrumbs when navigating to console app', async () => { + await PageObjects.common.navigateToApp('dev_tools'); + + const lastBreadcrumbdcrumb = await testSubjects.getVisibleText('breadcrumb last'); + expect(lastBreadcrumbdcrumb).to.be('Console'); + }); + + it('Sets the right breadcrumbs when navigating to grok debugger app', async () => { + await PageObjects.common.navigateToApp('grokDebugger'); + + const lastBreadcrumb = await testSubjects.getVisibleText('breadcrumb last'); + expect(lastBreadcrumb).to.be('Grok Debugger'); + }); + + it('Sets the right breadcrumbs when navigating to search profiler app', async () => { + await PageObjects.common.navigateToApp('searchProfiler'); + + const lastBreadcrumb = await testSubjects.getVisibleText('breadcrumb last'); + expect(lastBreadcrumb).to.be('Search Profiler'); + }); + + it('Sets the right breadcrumbs when navigating to painless lab app', async () => { + await PageObjects.common.navigateToApp('painlessLab'); + + const lastBreadcrumb = await testSubjects.getVisibleText('breadcrumb last'); + expect(lastBreadcrumb).to.be('Painless Lab'); + }); + }); +} diff --git a/x-pack/test/functional/apps/dev_tools/index.ts b/x-pack/test/functional/apps/dev_tools/index.ts index 87904a5ab8cb8..4f0e9290cc25e 100644 --- a/x-pack/test/functional/apps/dev_tools/index.ts +++ b/x-pack/test/functional/apps/dev_tools/index.ts @@ -8,9 +8,10 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ loadTestFile }: FtrProviderContext) { - describe('console', function () { + describe('Dev Tools', function () { this.tags('ciGroup13'); + loadTestFile(require.resolve('./breadcrumbs')); loadTestFile(require.resolve('./feature_controls')); loadTestFile(require.resolve('./searchprofiler_editor')); }); diff --git a/x-pack/test/functional/apps/lens/heatmap.ts b/x-pack/test/functional/apps/lens/heatmap.ts index 3f8456e9d75f6..e4f20d075541f 100644 --- a/x-pack/test/functional/apps/lens/heatmap.ts +++ b/x-pack/test/functional/apps/lens/heatmap.ts @@ -130,10 +130,10 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) { // assert legend has changed expect(debugState.legend!.items).to.eql([ - { key: '0 - 8,529.22', name: '0 - 8,529.22', color: '#6092c0' }, - { key: '8,529.22 - 11,335.66', name: '8,529.22 - 11,335.66', color: '#a8bfda' }, - { key: '11,335.66 - 14,142.11', name: '11,335.66 - 14,142.11', color: '#ebeff5' }, - { key: '14,142.11 - 16,948.55', name: '14,142.11 - 16,948.55', color: '#ecb385' }, + { key: '0 - 8,529.21', name: '0 - 8,529.21', color: '#6092c0' }, + { key: '8,529.21 - 11,335.66', name: '8,529.21 - 11,335.66', color: '#a8bfda' }, + { key: '11,335.66 - 14,142.1', name: '11,335.66 - 14,142.1', color: '#ebeff5' }, + { key: '14,142.1 - 16,948.55', name: '14,142.1 - 16,948.55', color: '#ecb385' }, { key: '≥ 16,948.55', name: '≥ 16,948.55', color: '#e7664c' }, ]); }); diff --git a/x-pack/test/functional/apps/lens/index.ts b/x-pack/test/functional/apps/lens/index.ts index 26fb100adf133..72442be7645fa 100644 --- a/x-pack/test/functional/apps/lens/index.ts +++ b/x-pack/test/functional/apps/lens/index.ts @@ -17,7 +17,7 @@ export default function ({ getService, loadTestFile, getPageObjects }: FtrProvid describe('lens app', () => { before(async () => { log.debug('Starting lens before method'); - await browser.setWindowSize(1280, 800); + await browser.setWindowSize(1280, 1200); await esArchiver.load('x-pack/test/functional/es_archives/logstash_functional'); // changing the timepicker default here saves us from having to set it in Discover (~8s) await PageObjects.timePicker.setDefaultAbsoluteRangeViaUiSettings(); @@ -57,6 +57,7 @@ export default function ({ getService, loadTestFile, getPageObjects }: FtrProvid loadTestFile(require.resolve('./geo_field')); loadTestFile(require.resolve('./formula')); loadTestFile(require.resolve('./heatmap')); + loadTestFile(require.resolve('./metrics')); loadTestFile(require.resolve('./reference_lines')); loadTestFile(require.resolve('./inspector')); loadTestFile(require.resolve('./error_handling')); diff --git a/x-pack/test/functional/apps/lens/metrics.ts b/x-pack/test/functional/apps/lens/metrics.ts new file mode 100644 index 0000000000000..4bc589b1a3b85 --- /dev/null +++ b/x-pack/test/functional/apps/lens/metrics.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const PageObjects = getPageObjects(['visualize', 'lens', 'common', 'header']); + const listingTable = getService('listingTable'); + const testSubjects = getService('testSubjects'); + + describe('lens metrics', () => { + it('should render a numeric metric', async () => { + await PageObjects.visualize.gotoVisualizationLandingPage(); + await listingTable.searchForItemWithName('Artistpreviouslyknownaslens'); + await PageObjects.lens.clickVisualizeListItemTitle('Artistpreviouslyknownaslens'); + await PageObjects.lens.goToTimeRange(); + await PageObjects.lens.assertMetric('Maximum of bytes', '19,986'); + }); + + it('should color the metric text based on value', async () => { + await PageObjects.lens.openDimensionEditor('lns-dimensionTrigger'); + await PageObjects.lens.setMetricDynamicColoring('labels'); + await PageObjects.header.waitUntilLoadingHasFinished(); + const styleObj = await PageObjects.lens.getMetricStyle(); + expect(styleObj['background-color']).to.be(undefined); + expect(styleObj.color).to.be('rgb(214, 191, 87)'); + }); + + it('should change the color of the metric when tweaking the values in the panel', async () => { + await PageObjects.lens.openPalettePanel('lnsMetric'); + await PageObjects.header.waitUntilLoadingHasFinished(); + await testSubjects.setValue('lnsPalettePanel_dynamicColoring_stop_value_1', '21000', { + clearWithKeyboard: true, + }); + await PageObjects.header.waitUntilLoadingHasFinished(); + const styleObj = await PageObjects.lens.getMetricStyle(); + expect(styleObj.color).to.be('rgb(32, 146, 128)'); + }); + + it('should change the color when reverting the palette', async () => { + await testSubjects.click('lnsPalettePanel_dynamicColoring_reverse'); + await PageObjects.header.waitUntilLoadingHasFinished(); + const styleObj = await PageObjects.lens.getMetricStyle(); + expect(styleObj.color).to.be('rgb(204, 86, 66)'); + }); + + it('should reset the color stops when changing palette to a predefined one', async () => { + await PageObjects.lens.changePaletteTo('temperature'); + await PageObjects.header.waitUntilLoadingHasFinished(); + const styleObj = await PageObjects.lens.getMetricStyle(); + expect(styleObj.color).to.be('rgb(235, 239, 245)'); + }); + }); +} diff --git a/x-pack/test/functional/apps/ml/model_management/model_list.ts b/x-pack/test/functional/apps/ml/model_management/model_list.ts index aac1ad5b1e50b..955639dbe60a4 100644 --- a/x-pack/test/functional/apps/ml/model_management/model_list.ts +++ b/x-pack/test/functional/apps/ml/model_management/model_list.ts @@ -10,8 +10,7 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function ({ getService }: FtrProviderContext) { const ml = getService('ml'); - // FAILING ES PROMOTION: https://github.com/elastic/kibana/issues/118251 - describe.skip('trained models', function () { + describe('trained models', function () { before(async () => { await ml.trainedModels.createTestTrainedModels('classification', 15, true); await ml.trainedModels.createTestTrainedModels('regression', 15); diff --git a/x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js b/x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js index d7c4e5dd12f52..80c8c13b16ddf 100644 --- a/x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js +++ b/x-pack/test/functional/apps/monitoring/elasticsearch/nodes.js @@ -17,7 +17,8 @@ export default function ({ getService, getPageObjects }) { // FF issue: https://github.com/elastic/kibana/issues/35551 this.tags(['skipFirefox']); - describe('with offline node', () => { + // FLAKY: https://github.com/elastic/kibana/issues/116533 + describe.skip('with offline node', () => { const { setup, tearDown } = getLifecycleMethods(getService, getPageObjects); before(async () => { diff --git a/x-pack/test/functional/apps/reporting_management/report_listing.ts b/x-pack/test/functional/apps/reporting_management/report_listing.ts index 54320e431d33b..9cb00bb78d07e 100644 --- a/x-pack/test/functional/apps/reporting_management/report_listing.ts +++ b/x-pack/test/functional/apps/reporting_management/report_listing.ts @@ -18,7 +18,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { const testSubjects = getService('testSubjects'); const esArchiver = getService('esArchiver'); - describe('Listing of Reports', function () { + // FLAKY: https://github.com/elastic/kibana/issues/75044 + describe.skip('Listing of Reports', function () { before(async () => { await security.testUser.setRoles([ 'kibana_admin', // to access stack management diff --git a/x-pack/test/functional/apps/security/role_mappings.ts b/x-pack/test/functional/apps/security/role_mappings.ts index 190323b8aaf18..54c92c4815b5d 100644 --- a/x-pack/test/functional/apps/security/role_mappings.ts +++ b/x-pack/test/functional/apps/security/role_mappings.ts @@ -81,7 +81,8 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { }); it('allows a role mapping to be deleted', async () => { - await testSubjects.click(`deleteRoleMappingButton-new_role_mapping`); + await testSubjects.click('euiCollapsedItemActionsButton'); + await testSubjects.click('deleteRoleMappingButton-new_role_mapping'); await testSubjects.click('confirmModalConfirmButton'); await testSubjects.existOrFail('deletedRoleMappingSuccessToast'); }); @@ -162,6 +163,15 @@ export default ({ getPageObjects, getService }: FtrProviderContext) => { } }); + it('allows a role mapping to be cloned', async () => { + await testSubjects.click('cloneRoleMappingButton-a_enabled_role_mapping'); + await testSubjects.setValue('roleMappingFormNameInput', 'cloned_role_mapping'); + await testSubjects.click('saveRoleMappingButton'); + await testSubjects.existOrFail('savedRoleMappingSuccessToast'); + const rows = await testSubjects.findAll('roleMappingRow'); + expect(rows.length).to.eql(mappings.length + 1); + }); + it('allows a role mapping to be edited', async () => { await testSubjects.click('roleMappingName'); await testSubjects.click('saveRoleMappingButton'); diff --git a/x-pack/test/functional/apps/spaces/spaces_selection.ts b/x-pack/test/functional/apps/spaces/spaces_selection.ts index 4a61421775163..dad2dee0d3c9c 100644 --- a/x-pack/test/functional/apps/spaces/spaces_selection.ts +++ b/x-pack/test/functional/apps/spaces/spaces_selection.ts @@ -63,36 +63,6 @@ export default function spaceSelectorFunctionalTests({ }); }); - describe('Space Selector', () => { - before(async () => { - await PageObjects.security.forceLogout(); - }); - - afterEach(async () => { - await PageObjects.security.forceLogout(); - }); - - it('allows user to navigate to different spaces', async () => { - const spaceId = 'another-space'; - - await PageObjects.security.login(undefined, undefined, { - expectSpaceSelector: true, - }); - - await PageObjects.spaceSelector.clickSpaceCard(spaceId); - - await PageObjects.spaceSelector.expectHomePage(spaceId); - - await PageObjects.spaceSelector.openSpacesNav(); - - // change spaces - - await PageObjects.spaceSelector.clickSpaceAvatar('default'); - - await PageObjects.spaceSelector.expectHomePage('default'); - }); - }); - // FLAKY: https://github.com/elastic/kibana/issues/118356 // FLAKY: https://github.com/elastic/kibana/issues/118474 describe.skip('Search spaces in popover', () => { diff --git a/x-pack/test/functional/apps/upgrade_assistant/es_deprecation_logs_page.ts b/x-pack/test/functional/apps/upgrade_assistant/es_deprecation_logs_page.ts new file mode 100644 index 0000000000000..c6b9b2921cfad --- /dev/null +++ b/x-pack/test/functional/apps/upgrade_assistant/es_deprecation_logs_page.ts @@ -0,0 +1,45 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function upgradeAssistantESDeprecationLogsPageFunctionalTests({ + getService, + getPageObjects, +}: FtrProviderContext) { + const PageObjects = getPageObjects(['upgradeAssistant', 'common']); + const security = getService('security'); + const testSubjects = getService('testSubjects'); + const es = getService('es'); + + describe.skip('ES deprecation logs page', function () { + this.tags('skipFirefox'); + + before(async () => { + await security.testUser.setRoles(['superuser']); + // Access to system indices will be deprecated and should generate a deprecation log + await es.indices.get({ index: '.kibana' }); + }); + + after(async () => { + await security.testUser.restoreDefaults(); + }); + + beforeEach(async () => { + await PageObjects.upgradeAssistant.navigateToEsDeprecationLogs(); + }); + + it('Shows warnings callout if there are deprecations', async () => { + testSubjects.exists('hasWarningsCallout'); + }); + + it('Shows no warnings callout if there are no deprecations', async () => { + await PageObjects.upgradeAssistant.clickResetLastCheckpointButton(); + testSubjects.exists('noWarningsCallout'); + }); + }); +} diff --git a/x-pack/test/functional/apps/upgrade_assistant/index.ts b/x-pack/test/functional/apps/upgrade_assistant/index.ts index d99d1cd033327..d1ab46463e930 100644 --- a/x-pack/test/functional/apps/upgrade_assistant/index.ts +++ b/x-pack/test/functional/apps/upgrade_assistant/index.ts @@ -14,5 +14,6 @@ export default function upgradeCheckup({ loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./feature_controls')); loadTestFile(require.resolve('./deprecation_pages')); loadTestFile(require.resolve('./overview_page')); + loadTestFile(require.resolve('./es_deprecation_logs_page')); }); } diff --git a/x-pack/test/functional/apps/upgrade_assistant/overview_page.ts b/x-pack/test/functional/apps/upgrade_assistant/overview_page.ts index 0b8d15695689a..a2ec7493cc3f0 100644 --- a/x-pack/test/functional/apps/upgrade_assistant/overview_page.ts +++ b/x-pack/test/functional/apps/upgrade_assistant/overview_page.ts @@ -15,7 +15,6 @@ export default function upgradeAssistantOverviewPageFunctionalTests({ const retry = getService('retry'); const security = getService('security'); const testSubjects = getService('testSubjects'); - const es = getService('es'); describe.skip('Overview Page', function () { this.tags('skipFirefox'); @@ -41,37 +40,7 @@ export default function upgradeAssistantOverviewPageFunctionalTests({ it('Should render all steps', async () => { testSubjects.exists('backupStep-incomplete'); testSubjects.exists('fixIssuesStep-incomplete'); - testSubjects.exists('fixLogsStep-incomplete'); testSubjects.exists('upgradeStep'); }); - - describe('fixLogsStep', () => { - before(async () => { - await PageObjects.upgradeAssistant.navigateToPage(); - // Access to system indices will be deprecated and should generate a deprecation log - await es.indices.get({ index: '.kibana' }); - // Only click deprecation logging toggle if its not already enabled - if (!(await testSubjects.isDisplayed('externalLinksTitle'))) { - await PageObjects.upgradeAssistant.clickDeprecationLoggingToggle(); - } - - await retry.waitFor('UA external links title to be present', async () => { - return testSubjects.isDisplayed('externalLinksTitle'); - }); - }); - - beforeEach(async () => { - await PageObjects.upgradeAssistant.navigateToPage(); - }); - - it('Shows warnings callout if there are deprecations', async () => { - testSubjects.exists('hasWarningsCallout'); - }); - - it('Shows no warnings callout if there are no deprecations', async () => { - await PageObjects.upgradeAssistant.clickResetLastCheckpointButton(); - testSubjects.exists('noWarningsCallout'); - }); - }); }); } diff --git a/x-pack/test/functional/page_objects/infra_home_page.ts b/x-pack/test/functional/page_objects/infra_home_page.ts index 2f2c1407fc041..4ab0cf61b7a17 100644 --- a/x-pack/test/functional/page_objects/infra_home_page.ts +++ b/x-pack/test/functional/page_objects/infra_home_page.ts @@ -121,8 +121,12 @@ export function InfraHomePageProvider({ getService, getPageObjects }: FtrProvide }, async changePalette(paletteId: string) { - await testSubjects.find('legendControlsPalette'); - await testSubjects.selectValue('legendControlsPalette', paletteId); + const paletteSelector = await testSubjects.find('legendControlsPalette'); + await paletteSelector.click(); + const paletteSelectorEntry = await paletteSelector.findByCssSelector( + `option[value=${paletteId}]` + ); + await paletteSelectorEntry.click(); }, async applyLegendControls() { diff --git a/x-pack/test/functional/page_objects/lens_page.ts b/x-pack/test/functional/page_objects/lens_page.ts index ca097ffe757cc..78b9762e3889a 100644 --- a/x-pack/test/functional/page_objects/lens_page.ts +++ b/x-pack/test/functional/page_objects/lens_page.ts @@ -20,8 +20,6 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont const browser = getService('browser'); const dashboardAddPanel = getService('dashboardAddPanel'); - const FORMULA_TAB_HEIGHT = 40; - const PageObjects = getPageObjects([ 'common', 'header', @@ -133,7 +131,7 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont : `lns-indexPatternDimension-${opts.operation}`; async function getAriaPressed() { const operationSelectorContainer = await testSubjects.find(operationSelector); - await testSubjects.click(operationSelector, undefined, FORMULA_TAB_HEIGHT); + await testSubjects.click(operationSelector); const ariaPressed = await operationSelectorContainer.getAttribute('aria-pressed'); return ariaPressed; } @@ -872,7 +870,12 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont }, async openPalettePanel(chartType: string) { - await testSubjects.click(`${chartType}_dynamicColoring_trigger`); + await retry.try(async () => { + await testSubjects.click(`${chartType}_dynamicColoring_trigger`); + // wait for the UI to settle + await PageObjects.common.sleep(100); + await testSubjects.existOrFail('lns-indexPattern-PalettePanelContainer', { timeout: 2500 }); + }); }, async closePalettePanel() { @@ -944,6 +947,22 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont await this.assertExactText('[data-test-subj="lns_metric_value"]', count); }, + async setMetricDynamicColoring(coloringType: 'none' | 'labels' | 'background') { + await testSubjects.click('lnsMetric_dynamicColoring_groups_' + coloringType); + }, + + async getMetricStyle() { + const el = await testSubjects.find('lns_metric_value'); + const styleString = await el.getAttribute('style'); + return styleString.split(';').reduce<Record<string, string>>((memo, cssLine) => { + const [prop, value] = cssLine.split(':'); + if (prop && value) { + memo[prop.trim()] = value.trim(); + } + return memo; + }, {}); + }, + async assertMissingValues(option: string) { await this.assertExactText('[data-test-subj="lnsMissingValuesSelect"]', option); }, diff --git a/x-pack/test/functional/page_objects/upgrade_assistant_page.ts b/x-pack/test/functional/page_objects/upgrade_assistant_page.ts index 54d7f3d452123..f795a5fd441cd 100644 --- a/x-pack/test/functional/page_objects/upgrade_assistant_page.ts +++ b/x-pack/test/functional/page_objects/upgrade_assistant_page.ts @@ -29,6 +29,21 @@ export class UpgradeAssistantPageObject extends FtrService { }); } + async navigateToEsDeprecationLogs() { + return await this.retry.try(async () => { + await this.common.navigateToApp('settings'); + await this.testSubjects.click('upgrade_assistant'); + await this.testSubjects.click('viewElasticsearchDeprecationLogs'); + await this.retry.waitFor( + 'url to contain /upgrade_assistant/es_deprecation_logs', + async () => { + const url = await this.browser.getCurrentUrl(); + return url.includes('/es_deprecation_logs'); + } + ); + }); + } + async clickEsDeprecationsPanel() { return await this.retry.try(async () => { await this.testSubjects.click('esStatsPanel'); diff --git a/x-pack/test/performance/tests/home.ts b/x-pack/test/performance/tests/home.ts new file mode 100644 index 0000000000000..eda690b9b0a19 --- /dev/null +++ b/x-pack/test/performance/tests/home.ts @@ -0,0 +1,25 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrProviderContext } from '../ftr_provider_context'; + +export default function ({ getService, getPageObjects }: FtrProviderContext) { + const PageObjects = getPageObjects(['common', 'security']); + const testSubjects = getService('testSubjects'); + + describe('Login', () => { + it('login and navigate to homepage', async () => { + await PageObjects.common.navigateToApp('login'); + + await testSubjects.existOrFail('loginSubmit', { timeout: 2000 }); + + await PageObjects.security.login(); + + await testSubjects.existOrFail('homeApp', { timeout: 2000 }); + }); + }); +} diff --git a/x-pack/test/performance/tests/index.ts b/x-pack/test/performance/tests/index.ts index b1023bde688e2..d784fa3031739 100644 --- a/x-pack/test/performance/tests/index.ts +++ b/x-pack/test/performance/tests/index.ts @@ -11,6 +11,6 @@ export default function ({ loadTestFile }: FtrProviderContext) { describe('performance', function () { this.tags('ciGroup8'); - loadTestFile(require.resolve('./reporting_dashboard')); + loadTestFile(require.resolve('./home')); }); } diff --git a/x-pack/test/performance/tests/reporting_dashboard.ts b/x-pack/test/performance/tests/reporting_dashboard.ts index f363f8449df96..93b4010ab27a8 100644 --- a/x-pack/test/performance/tests/reporting_dashboard.ts +++ b/x-pack/test/performance/tests/reporting_dashboard.ts @@ -16,7 +16,7 @@ export default function ({ getService, getPageObject }: FtrProviderContext) { const dashboard = getPageObject('dashboard'); const reporting = getPageObject('reporting'); - describe('reporting dashbaord', () => { + describe('Reporting Dashboard', () => { before(async () => { await kibanaServer.importExport.load( 'x-pack/test/performance/kbn_archives/reporting_dashboard' diff --git a/x-pack/test/plugin_functional/plugins/timelines_test/public/applications/timelines_test/index.tsx b/x-pack/test/plugin_functional/plugins/timelines_test/public/applications/timelines_test/index.tsx index 1c04ca83f18dc..f756838fbd24c 100644 --- a/x-pack/test/plugin_functional/plugins/timelines_test/public/applications/timelines_test/index.tsx +++ b/x-pack/test/plugin_functional/plugins/timelines_test/public/applications/timelines_test/index.tsx @@ -75,6 +75,7 @@ const AppRoot = React.memo( columns: [], indexNames: [], deletedEventIds: [], + disabledCellActions: [], end: '', footerText: 'Events', filters: [], diff --git a/x-pack/test/security_api_integration/http_no_auth_providers.config.ts b/x-pack/test/security_api_integration/http_no_auth_providers.config.ts new file mode 100644 index 0000000000000..b46bbe3134dd4 --- /dev/null +++ b/x-pack/test/security_api_integration/http_no_auth_providers.config.ts @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import { FtrConfigProviderContext } from '@kbn/test'; +import { services } from './services'; + +export default async function ({ readConfigFile }: FtrConfigProviderContext) { + const xPackAPITestsConfig = await readConfigFile(require.resolve('../api_integration/config.ts')); + + return { + testFiles: [require.resolve('./tests/http_no_auth_providers')], + servers: xPackAPITestsConfig.get('servers'), + security: { disableTestUser: true }, + services, + junit: { + reportName: 'X-Pack Security API Integration Tests (HTTP without providers)', + }, + + esTestCluster: xPackAPITestsConfig.get('esTestCluster'), + + kbnTestServer: { + ...xPackAPITestsConfig.get('kbnTestServer'), + serverArgs: [ + ...xPackAPITestsConfig.get('kbnTestServer.serverArgs'), + `--xpack.security.authc.http.schemes=${JSON.stringify(['apikey', 'basic'])}`, + `--xpack.security.authc.providers=${JSON.stringify({ + basic: { basic1: { order: 0, enabled: false } }, + })}`, + ], + }, + }; +} diff --git a/x-pack/test/security_api_integration/tests/http_no_auth_providers/authentication.ts b/x-pack/test/security_api_integration/tests/http_no_auth_providers/authentication.ts new file mode 100644 index 0000000000000..42951f8c3fed3 --- /dev/null +++ b/x-pack/test/security_api_integration/tests/http_no_auth_providers/authentication.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import expect from '@kbn/expect'; +import { adminTestUser } from '@kbn/test'; +import { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ getService }: FtrProviderContext) { + const supertest = getService('supertestWithoutAuth'); + + describe('authorization', () => { + it('fail request without authorization request header', async () => { + await supertest.get('/internal/security/me').set('kbn-xsrf', 'true').expect(401); + }); + + it('accept request with authorization request header', async () => { + const credentials = Buffer.from( + `${adminTestUser.username}:${adminTestUser.password}` + ).toString('base64'); + + const { body: user, headers } = await supertest + .get('/internal/security/me') + .set('kbn-xsrf', 'xxx') + .set('Authorization', `Basic ${credentials}`) + .expect(200); + + expect(user.username).to.eql(adminTestUser.username); + expect(user.authentication_provider).to.eql({ type: 'http', name: '__http__' }); + expect(user.authentication_type).to.eql('realm'); + + // Make sure we don't automatically create a session + expect(headers['set-cookie']).to.be(undefined); + }); + }); +} diff --git a/x-pack/test/security_api_integration/tests/http_no_auth_providers/index.ts b/x-pack/test/security_api_integration/tests/http_no_auth_providers/index.ts new file mode 100644 index 0000000000000..652bcc419e243 --- /dev/null +++ b/x-pack/test/security_api_integration/tests/http_no_auth_providers/index.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 { FtrProviderContext } from '../../ftr_provider_context'; + +export default function ({ loadTestFile }: FtrProviderContext) { + describe('security APIs - HTTP no authentication providers are enabled', function () { + this.tags('ciGroup6'); + loadTestFile(require.resolve('./authentication')); + }); +} diff --git a/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts b/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts index 88462a2872fe4..61773aaf825fa 100644 --- a/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts +++ b/x-pack/test/security_solution_endpoint/apps/endpoint/policy_details.ts @@ -540,12 +540,16 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { // Fleet has its own form inputs, like description. When those are updated, the changes // are also dispatched to the embedded endpoint Policy form. Update to the Endpoint Policy // form after that should preserve the changes done on the Fleet form + // NOTE: A few delays were added below due to sporadic failures of this test case (see #100236) + const sleep = (ms = 100) => new Promise((resolve) => setTimeout(resolve, ms)); // Wait for the endpoint form to load and then update the policy description await testSubjects.existOrFail('endpointIntegrationPolicyForm'); + await sleep(); // Allow forms to sync await pageObjects.ingestManagerCreatePackagePolicy.setPackagePolicyDescription( 'protect everything' ); + await sleep(); // Allow forms to sync const winDnsEventingCheckbox = await testSubjects.find('policyWindowsEvent_dns'); await pageObjects.ingestManagerCreatePackagePolicy.scrollToCenterOfWindow( diff --git a/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts b/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts index 35e316f309d7f..471d00728bac3 100644 --- a/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts +++ b/x-pack/test/security_solution_endpoint_api_int/apis/metadata.ts @@ -5,6 +5,7 @@ * 2.0. */ +import uuid from 'uuid'; import expect from '@kbn/expect'; import { FtrProviderContext } from '../ftr_provider_context'; import { @@ -31,317 +32,56 @@ import { indexFleetEndpointPolicy } from '../../../plugins/security_solution/com export default function ({ getService }: FtrProviderContext) { const supertest = getService('supertest'); - describe('test metadata api', () => { - describe('with .metrics-endpoint.metadata_united_default index', () => { - const numberOfHostsInFixture = 2; - - before(async () => { - await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); - await deleteAllDocsFromFleetAgents(getService); - await deleteAllDocsFromMetadataDatastream(getService); - await deleteAllDocsFromMetadataCurrentIndex(getService); - await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); - - // generate an endpoint policy and attach id to agents since - // metadata list api filters down to endpoint policies only - const policy = await indexFleetEndpointPolicy( - getService('kibanaServer'), - 'Default', - '1.1.1' - ); - const policyId = policy.integrationPolicies[0].policy_id; - const currentTime = new Date().getTime(); - - await Promise.all([ - bulkIndex(getService, AGENTS_INDEX, generateAgentDocs(currentTime, policyId)), - bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(currentTime)), - ]); - - // wait for latest metadata transform to run - await new Promise((r) => setTimeout(r, 30000)); - await startTransform(getService, METADATA_UNITED_TRANSFORM); - - // wait for united metadata transform to run - await new Promise((r) => setTimeout(r, 15000)); - }); - - after(async () => { - await deleteAllDocsFromFleetAgents(getService); - await deleteAllDocsFromMetadataDatastream(getService); - await deleteAllDocsFromMetadataCurrentIndex(getService); - await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); - await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); - }); - - it('should return one entry for each host with default paging', async () => { - const res = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send() - .expect(200); - const { body } = res; - expect(body.total).to.eql(numberOfHostsInFixture); - expect(body.hosts.length).to.eql(numberOfHostsInFixture); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); + describe('test metadata apis', () => { + describe('list endpoints POST route', () => { + describe('with .metrics-endpoint.metadata_united_default index', () => { + const numberOfHostsInFixture = 2; - it('metadata api should return page based on paging properties passed.', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - paging_properties: [ - { - page_size: 1, - }, - { - page_index: 1, - }, - ], - }) - .expect(200); - expect(body.total).to.eql(numberOfHostsInFixture); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(1); - expect(body.request_page_index).to.eql(1); - }); - - it('metadata api should return accurate total metadata if page index produces no result', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 3, - }, - ], - }) - .expect(200); - expect(body.total).to.eql(numberOfHostsInFixture); - expect(body.hosts.length).to.eql(0); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(30); - }); - - it('metadata api should return 400 when pagingProperties is below boundaries.', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - paging_properties: [ - { - page_size: 0, - }, - { - page_index: 1, - }, - ], - }) - .expect(400); - expect(body.message).to.contain('Value must be equal to or greater than [1]'); - }); - - it('metadata api should return page based on filters passed.', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: 'not (united.endpoint.host.ip:10.101.149.26)', - }, - }) - .expect(200); - expect(body.total).to.eql(1); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - - it('metadata api should return page based on filters and paging passed.', async () => { - const notIncludedIp = '10.101.149.26'; - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - paging_properties: [ - { - page_size: 10, - }, - { - page_index: 0, - }, - ], - filters: { - kql: `not (united.endpoint.host.ip:${notIncludedIp})`, - }, - }) - .expect(200); - expect(body.total).to.eql(1); - const resultIps: string[] = [].concat( - ...body.hosts.map((hostInfo: Record<string, any>) => hostInfo.metadata.host.ip) - ); - expect(resultIps.sort()).to.eql(['10.192.213.130', '10.70.28.129'].sort()); - expect(resultIps).not.include.eql(notIncludedIp); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - - it('metadata api should return page based on host.os.Ext.variant filter.', async () => { - const variantValue = 'Windows Pro'; - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: `united.endpoint.host.os.Ext.variant:${variantValue}`, - }, - }) - .expect(200); - expect(body.total).to.eql(2); - const resultOsVariantValue: Set<string> = new Set( - body.hosts.map((hostInfo: Record<string, any>) => hostInfo.metadata.host.os.Ext.variant) - ); - expect(Array.from(resultOsVariantValue)).to.eql([variantValue]); - expect(body.hosts.length).to.eql(2); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - - it('metadata api should return the latest event for all the events for an endpoint', async () => { - const targetEndpointIp = '10.101.149.26'; - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: `united.endpoint.host.ip:${targetEndpointIp}`, - }, - }) - .expect(200); - expect(body.total).to.eql(1); - const resultIp: string = body.hosts[0].metadata.host.ip.filter( - (ip: string) => ip === targetEndpointIp - ); - expect(resultIp).to.eql([targetEndpointIp]); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - - it('metadata api should return the latest event for all the events where policy status is not success', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: `not (united.endpoint.Endpoint.policy.applied.status:success)`, - }, - }) - .expect(200); - const statuses: Set<string> = new Set( - body.hosts.map( - (hostInfo: Record<string, any>) => hostInfo.metadata.Endpoint.policy.applied.status - ) - ); - expect(statuses.size).to.eql(1); - expect(Array.from(statuses)).to.eql(['failure']); - }); + before(async () => { + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteAllDocsFromFleetAgents(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); - it('metadata api should return the endpoint based on the elastic agent id, and status should be healthy', async () => { - const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; - const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: `united.endpoint.elastic.agent.id:${targetElasticAgentId}`, - }, - }) - .expect(200); - expect(body.total).to.eql(1); - const resultHostId: string = body.hosts[0].metadata.host.id; - const resultElasticAgentId: string = body.hosts[0].metadata.elastic.agent.id; - expect(resultHostId).to.eql(targetEndpointId); - expect(resultElasticAgentId).to.eql(targetElasticAgentId); - expect(body.hosts[0].host_status).to.eql('healthy'); - expect(body.hosts.length).to.eql(1); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); + // generate an endpoint policy and attach id to agents since + // metadata list api filters down to endpoint policies only + const policy = await indexFleetEndpointPolicy( + getService('kibanaServer'), + `Default ${uuid.v4()}`, + '1.1.1' + ); + const policyId = policy.integrationPolicies[0].policy_id; + const currentTime = new Date().getTime(); - it('metadata api should return all hosts when filter is empty string', async () => { - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send({ - filters: { - kql: '', - }, - }) - .expect(200); - expect(body.total).to.eql(numberOfHostsInFixture); - expect(body.hosts.length).to.eql(numberOfHostsInFixture); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); - }); - }); + await Promise.all([ + bulkIndex(getService, AGENTS_INDEX, generateAgentDocs(currentTime, policyId)), + bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(currentTime)), + ]); - describe('with metrics-endpoint.metadata_current_default index', () => { - /** - * The number of host documents in the es archive. - */ - const numberOfHostsInFixture = 3; + // wait for latest metadata transform to run + await new Promise((r) => setTimeout(r, 30000)); + await startTransform(getService, METADATA_UNITED_TRANSFORM); - describe(`POST ${HOST_METADATA_LIST_ROUTE} when index is empty`, () => { - it('metadata api should return empty result when index is empty', async () => { - await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); - await deleteIndex(getService, METADATA_UNITED_INDEX); - await deleteMetadataStream(getService); - await deleteAllDocsFromMetadataDatastream(getService); - await deleteAllDocsFromMetadataCurrentIndex(getService); - const { body } = await supertest - .post(HOST_METADATA_LIST_ROUTE) - .set('kbn-xsrf', 'xxx') - .send() - .expect(200); - expect(body.total).to.eql(0); - expect(body.hosts.length).to.eql(0); - expect(body.request_page_size).to.eql(10); - expect(body.request_page_index).to.eql(0); + // wait for united metadata transform to run + await new Promise((r) => setTimeout(r, 15000)); }); - }); - describe(`POST ${HOST_METADATA_LIST_ROUTE} when index is not empty`, () => { - const timestamp = new Date().getTime(); - before(async () => { - // stop the united transform and delete the index - // otherwise it won't hit metrics-endpoint.metadata_current_default index - await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); - await deleteIndex(getService, METADATA_UNITED_INDEX); - await bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(timestamp)); - // wait for transform - await new Promise((r) => setTimeout(r, 60000)); - }); - // the endpoint uses data streams and es archiver does not support deleting them at the moment so we need - // to do it manually after(async () => { - await deleteMetadataStream(getService); + await deleteAllDocsFromFleetAgents(getService); await deleteAllDocsFromMetadataDatastream(getService); await deleteAllDocsFromMetadataCurrentIndex(getService); + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); }); - it('metadata api should return one entry for each host with default paging', async () => { - const { body } = await supertest + + it('should return one entry for each host with default paging', async () => { + const res = await supertest .post(HOST_METADATA_LIST_ROUTE) .set('kbn-xsrf', 'xxx') .send() .expect(200); + const { body } = res; expect(body.total).to.eql(numberOfHostsInFixture); expect(body.hosts.length).to.eql(numberOfHostsInFixture); expect(body.request_page_size).to.eql(10); @@ -369,9 +109,6 @@ export default function ({ getService }: FtrProviderContext) { expect(body.request_page_index).to.eql(1); }); - /* test that when paging properties produces no result, the total should reflect the actual number of metadata - in the index. - */ it('metadata api should return accurate total metadata if page index produces no result', async () => { const { body } = await supertest .post(HOST_METADATA_LIST_ROUTE) @@ -417,18 +154,18 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: 'not (HostDetails.host.ip:10.46.229.234 or host.ip:10.46.229.234)', + kql: 'not (united.endpoint.host.ip:10.101.149.26)', }, }) .expect(200); - expect(body.total).to.eql(2); - expect(body.hosts.length).to.eql(2); + expect(body.total).to.eql(1); + expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); }); it('metadata api should return page based on filters and paging passed.', async () => { - const notIncludedIp = '10.46.229.234'; + const notIncludedIp = '10.101.149.26'; const { body } = await supertest .post(HOST_METADATA_LIST_ROUTE) .set('kbn-xsrf', 'xxx') @@ -442,24 +179,17 @@ export default function ({ getService }: FtrProviderContext) { }, ], filters: { - kql: `not (HostDetails.host.ip:${notIncludedIp} or host.ip:${notIncludedIp})`, + kql: `not (united.endpoint.host.ip:${notIncludedIp})`, }, }) .expect(200); - expect(body.total).to.eql(2); + expect(body.total).to.eql(1); const resultIps: string[] = [].concat( ...body.hosts.map((hostInfo: Record<string, any>) => hostInfo.metadata.host.ip) ); - expect(resultIps.sort()).to.eql( - [ - '10.192.213.130', - '10.70.28.129', - '10.101.149.26', - '2606:a000:ffc0:39:11ef:37b9:3371:578c', - ].sort() - ); + expect(resultIps.sort()).to.eql(['10.192.213.130', '10.70.28.129'].sort()); expect(resultIps).not.include.eql(notIncludedIp); - expect(body.hosts.length).to.eql(2); + expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); }); @@ -471,7 +201,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: `HostDetails.host.os.Ext.variant:${variantValue} or host.os.Ext.variant:${variantValue}`, + kql: `united.endpoint.host.os.Ext.variant:${variantValue}`, }, }) .expect(200); @@ -486,13 +216,13 @@ export default function ({ getService }: FtrProviderContext) { }); it('metadata api should return the latest event for all the events for an endpoint', async () => { - const targetEndpointIp = '10.46.229.234'; + const targetEndpointIp = '10.101.149.26'; const { body } = await supertest .post(HOST_METADATA_LIST_ROUTE) .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: `HostDetails.host.ip:${targetEndpointIp} or host.ip:${targetEndpointIp}`, + kql: `united.endpoint.host.ip:${targetEndpointIp}`, }, }) .expect(200); @@ -501,7 +231,6 @@ export default function ({ getService }: FtrProviderContext) { (ip: string) => ip === targetEndpointIp ); expect(resultIp).to.eql([targetEndpointIp]); - expect(body.hosts[0].metadata.event.created).to.eql(timestamp); expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); @@ -513,7 +242,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: `not (HostDetails.Endpoint.policy.applied.status:success or Endpoint.policy.applied.status:success)`, + kql: `not (united.endpoint.Endpoint.policy.applied.status:success)`, }, }) .expect(200); @@ -526,7 +255,7 @@ export default function ({ getService }: FtrProviderContext) { expect(Array.from(statuses)).to.eql(['failure']); }); - it('metadata api should return the endpoint based on the elastic agent id, and status should be unhealthy', async () => { + it('metadata api should return the endpoint based on the elastic agent id, and status should be healthy', async () => { const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; const { body } = await supertest @@ -534,7 +263,7 @@ export default function ({ getService }: FtrProviderContext) { .set('kbn-xsrf', 'xxx') .send({ filters: { - kql: `HostDetails.elastic.agent.id:${targetElasticAgentId} or elastic.agent.id:${targetElasticAgentId}`, + kql: `united.endpoint.elastic.agent.id:${targetElasticAgentId}`, }, }) .expect(200); @@ -543,8 +272,7 @@ export default function ({ getService }: FtrProviderContext) { const resultElasticAgentId: string = body.hosts[0].metadata.elastic.agent.id; expect(resultHostId).to.eql(targetEndpointId); expect(resultElasticAgentId).to.eql(targetElasticAgentId); - expect(body.hosts[0].metadata.event.created).to.eql(timestamp); - expect(body.hosts[0].host_status).to.eql('unhealthy'); + expect(body.hosts[0].host_status).to.eql('healthy'); expect(body.hosts.length).to.eql(1); expect(body.request_page_size).to.eql(10); expect(body.request_page_index).to.eql(0); @@ -566,6 +294,755 @@ export default function ({ getService }: FtrProviderContext) { expect(body.request_page_index).to.eql(0); }); }); + + describe('with metrics-endpoint.metadata_current_default index', () => { + /** + * The number of host documents in the es archive. + */ + const numberOfHostsInFixture = 3; + + describe(`POST ${HOST_METADATA_LIST_ROUTE} when index is empty`, () => { + it('metadata api should return empty result when index is empty', async () => { + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteIndex(getService, METADATA_UNITED_INDEX); + await deleteMetadataStream(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send() + .expect(200); + expect(body.total).to.eql(0); + expect(body.hosts.length).to.eql(0); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + }); + + describe(`POST ${HOST_METADATA_LIST_ROUTE} when index is not empty`, () => { + const timestamp = new Date().getTime(); + before(async () => { + // stop the united transform and delete the index + // otherwise it won't hit metrics-endpoint.metadata_current_default index + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteIndex(getService, METADATA_UNITED_INDEX); + await bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(timestamp)); + // wait for transform + await new Promise((r) => setTimeout(r, 60000)); + }); + // the endpoint uses data streams and es archiver does not support deleting them at the moment so we need + // to do it manually + after(async () => { + await deleteMetadataStream(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + }); + it('metadata api should return one entry for each host with default paging', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send() + .expect(200); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.hosts.length).to.eql(numberOfHostsInFixture); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return page based on paging properties passed.', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + paging_properties: [ + { + page_size: 1, + }, + { + page_index: 1, + }, + ], + }) + .expect(200); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.hosts.length).to.eql(1); + expect(body.request_page_size).to.eql(1); + expect(body.request_page_index).to.eql(1); + }); + + /* test that when paging properties produces no result, the total should reflect the actual number of metadata + in the index. + */ + it('metadata api should return accurate total metadata if page index produces no result', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 3, + }, + ], + }) + .expect(200); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.hosts.length).to.eql(0); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(30); + }); + + it('metadata api should return 400 when pagingProperties is below boundaries.', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + paging_properties: [ + { + page_size: 0, + }, + { + page_index: 1, + }, + ], + }) + .expect(400); + expect(body.message).to.contain('Value must be equal to or greater than [1]'); + }); + + it('metadata api should return page based on filters passed.', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: 'not (HostDetails.host.ip:10.46.229.234 or host.ip:10.46.229.234)', + }, + }) + .expect(200); + expect(body.total).to.eql(2); + expect(body.hosts.length).to.eql(2); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return page based on filters and paging passed.', async () => { + const notIncludedIp = '10.46.229.234'; + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + paging_properties: [ + { + page_size: 10, + }, + { + page_index: 0, + }, + ], + filters: { + kql: `not (HostDetails.host.ip:${notIncludedIp} or host.ip:${notIncludedIp})`, + }, + }) + .expect(200); + expect(body.total).to.eql(2); + const resultIps: string[] = [].concat( + ...body.hosts.map((hostInfo: Record<string, any>) => hostInfo.metadata.host.ip) + ); + expect(resultIps.sort()).to.eql( + [ + '10.192.213.130', + '10.70.28.129', + '10.101.149.26', + '2606:a000:ffc0:39:11ef:37b9:3371:578c', + ].sort() + ); + expect(resultIps).not.include.eql(notIncludedIp); + expect(body.hosts.length).to.eql(2); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return page based on host.os.Ext.variant filter.', async () => { + const variantValue = 'Windows Pro'; + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: `HostDetails.host.os.Ext.variant:${variantValue} or host.os.Ext.variant:${variantValue}`, + }, + }) + .expect(200); + expect(body.total).to.eql(2); + const resultOsVariantValue: Set<string> = new Set( + body.hosts.map( + (hostInfo: Record<string, any>) => hostInfo.metadata.host.os.Ext.variant + ) + ); + expect(Array.from(resultOsVariantValue)).to.eql([variantValue]); + expect(body.hosts.length).to.eql(2); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return the latest event for all the events for an endpoint', async () => { + const targetEndpointIp = '10.46.229.234'; + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: `HostDetails.host.ip:${targetEndpointIp} or host.ip:${targetEndpointIp}`, + }, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultIp: string = body.hosts[0].metadata.host.ip.filter( + (ip: string) => ip === targetEndpointIp + ); + expect(resultIp).to.eql([targetEndpointIp]); + expect(body.hosts[0].metadata.event.created).to.eql(timestamp); + expect(body.hosts.length).to.eql(1); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return the latest event for all the events where policy status is not success', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: `not (HostDetails.Endpoint.policy.applied.status:success or Endpoint.policy.applied.status:success)`, + }, + }) + .expect(200); + const statuses: Set<string> = new Set( + body.hosts.map( + (hostInfo: Record<string, any>) => hostInfo.metadata.Endpoint.policy.applied.status + ) + ); + expect(statuses.size).to.eql(1); + expect(Array.from(statuses)).to.eql(['failure']); + }); + + it('metadata api should return the endpoint based on the elastic agent id, and status should be unhealthy', async () => { + const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; + const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: `HostDetails.elastic.agent.id:${targetElasticAgentId} or elastic.agent.id:${targetElasticAgentId}`, + }, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultHostId: string = body.hosts[0].metadata.host.id; + const resultElasticAgentId: string = body.hosts[0].metadata.elastic.agent.id; + expect(resultHostId).to.eql(targetEndpointId); + expect(resultElasticAgentId).to.eql(targetElasticAgentId); + expect(body.hosts[0].metadata.event.created).to.eql(timestamp); + expect(body.hosts[0].host_status).to.eql('unhealthy'); + expect(body.hosts.length).to.eql(1); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + + it('metadata api should return all hosts when filter is empty string', async () => { + const { body } = await supertest + .post(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .send({ + filters: { + kql: '', + }, + }) + .expect(200); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.hosts.length).to.eql(numberOfHostsInFixture); + expect(body.request_page_size).to.eql(10); + expect(body.request_page_index).to.eql(0); + }); + }); + }); + }); + + describe('list endpoints GET route', () => { + describe('with .metrics-endpoint.metadata_united_default index', () => { + const numberOfHostsInFixture = 2; + + before(async () => { + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteAllDocsFromFleetAgents(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); + + // generate an endpoint policy and attach id to agents since + // metadata list api filters down to endpoint policies only + const policy = await indexFleetEndpointPolicy( + getService('kibanaServer'), + `Default ${uuid.v4()}`, + '1.1.1' + ); + const policyId = policy.integrationPolicies[0].policy_id; + const currentTime = new Date().getTime(); + + await Promise.all([ + bulkIndex(getService, AGENTS_INDEX, generateAgentDocs(currentTime, policyId)), + bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(currentTime)), + ]); + + // wait for latest metadata transform to run + await new Promise((r) => setTimeout(r, 30000)); + await startTransform(getService, METADATA_UNITED_TRANSFORM); + + // wait for united metadata transform to run + await new Promise((r) => setTimeout(r, 15000)); + }); + + after(async () => { + await deleteAllDocsFromFleetAgents(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteAllDocsFromIndex(getService, METADATA_UNITED_INDEX); + }); + + it('should return one entry for each host with default paging', async () => { + const res = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + }) + .expect(200); + const { body } = res; + expect(body.data.length).to.eql(numberOfHostsInFixture); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on paging properties passed', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 1, + pageSize: 1, + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(1); + expect(body.pageSize).to.eql(1); + }); + + it('metadata api should return accurate total metadata if page index produces no result', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 3, + pageSize: 10, + }) + .expect(200); + expect(body.data.length).to.eql(0); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(3); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return 400 when pagingProperties is below boundaries.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 1, + pageSize: 0, + }) + .expect(400); + expect(body.message).to.contain('Value must be equal to or greater than [1]'); + }); + + it('metadata api should return page based on filters passed.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: 'not (united.endpoint.host.ip:10.101.149.26)', + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(1); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on filters and paging passed.', async () => { + const notIncludedIp = '10.101.149.26'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + kuery: `not (united.endpoint.host.ip:${notIncludedIp})`, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultIps: string[] = [].concat( + ...body.data.map((hostInfo: Record<string, any>) => hostInfo.metadata.host.ip) + ); + expect(resultIps.sort()).to.eql(['10.192.213.130', '10.70.28.129'].sort()); + expect(resultIps).not.include.eql(notIncludedIp); + expect(body.data.length).to.eql(1); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on host.os.Ext.variant filter.', async () => { + const variantValue = 'Windows Pro'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `united.endpoint.host.os.Ext.variant:${variantValue}`, + }) + .expect(200); + expect(body.total).to.eql(2); + const resultOsVariantValue: Set<string> = new Set( + body.data.map((hostInfo: Record<string, any>) => hostInfo.metadata.host.os.Ext.variant) + ); + expect(Array.from(resultOsVariantValue)).to.eql([variantValue]); + expect(body.data.length).to.eql(2); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return the latest event for all the events for an endpoint', async () => { + const targetEndpointIp = '10.101.149.26'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `united.endpoint.host.ip:${targetEndpointIp}`, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultIp: string = body.data[0].metadata.host.ip.filter( + (ip: string) => ip === targetEndpointIp + ); + expect(resultIp).to.eql([targetEndpointIp]); + expect(body.data.length).to.eql(1); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return the latest event for all the events where policy status is not success', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: 'not (united.endpoint.Endpoint.policy.applied.status:success)', + }) + .expect(200); + const statuses: Set<string> = new Set( + body.data.map( + (hostInfo: Record<string, any>) => hostInfo.metadata.Endpoint.policy.applied.status + ) + ); + expect(statuses.size).to.eql(1); + expect(Array.from(statuses)).to.eql(['failure']); + }); + + it('metadata api should return the endpoint based on the elastic agent id, and status should be healthy', async () => { + const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; + const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `united.endpoint.elastic.agent.id:${targetElasticAgentId}`, + }) + .expect(200); + expect(body.total).to.eql(1); + const resultHostId: string = body.data[0].metadata.host.id; + const resultElasticAgentId: string = body.data[0].metadata.elastic.agent.id; + expect(resultHostId).to.eql(targetEndpointId); + expect(resultElasticAgentId).to.eql(targetElasticAgentId); + expect(body.data.length).to.eql(1); + expect(body.data[0].host_status).to.eql('healthy'); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return all hosts when filter is empty string', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .expect(200); + expect(body.data.length).to.eql(numberOfHostsInFixture); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + }); + + describe('with metrics-endpoint.metadata_current_default index', () => { + /** + * The number of host documents in the es archive. + */ + const numberOfHostsInFixture = 3; + + describe('when index is empty', () => { + it('metadata api should return empty result when index is empty', async () => { + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteIndex(getService, METADATA_UNITED_INDEX); + await deleteMetadataStream(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + }) + .expect(200); + expect(body.data.length).to.eql(0); + expect(body.total).to.eql(0); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + }); + + describe('when index is not empty', () => { + const timestamp = new Date().getTime(); + before(async () => { + // stop the united transform and delete the index + // otherwise it won't hit metrics-endpoint.metadata_current_default index + await stopTransform(getService, `${METADATA_UNITED_TRANSFORM}*`); + await deleteIndex(getService, METADATA_UNITED_INDEX); + await bulkIndex(getService, METADATA_DATASTREAM, generateMetadataDocs(timestamp)); + // wait for transform + await new Promise((r) => setTimeout(r, 60000)); + }); + // the endpoint uses data streams and es archiver does not support deleting them at the moment so we need + // to do it manually + after(async () => { + await deleteMetadataStream(getService); + await deleteAllDocsFromMetadataDatastream(getService); + await deleteAllDocsFromMetadataCurrentIndex(getService); + }); + + it('metadata api should return one entry for each host with default paging', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + }) + .expect(200); + expect(body.data.length).to.eql(numberOfHostsInFixture); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on paging properties passed.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 1, + pageSize: 1, + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(1); + expect(body.pageSize).to.eql(1); + }); + + /* test that when paging properties produces no result, the total should reflect the actual number of metadata + in the index. + */ + it('metadata api should return accurate total metadata if page index produces no result', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 3, + pageSize: 10, + }) + .expect(200); + expect(body.data.length).to.eql(0); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(3); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return 400 when pagingProperties is below boundaries.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 1, + pageSize: 0, + }) + .expect(400); + expect(body.message).to.contain('Value must be equal to or greater than [1]'); + }); + + it('metadata api should return page based on filters passed.', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: 'not (HostDetails.host.ip:10.46.229.234 or host.ip:10.46.229.234)', + }) + .expect(200); + expect(body.data.length).to.eql(2); + expect(body.total).to.eql(2); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on filters and paging passed.', async () => { + const notIncludedIp = '10.46.229.234'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + page: 0, + pageSize: 10, + kuery: `not (HostDetails.host.ip:${notIncludedIp} or host.ip:${notIncludedIp})`, + }) + .expect(200); + expect(body.data.length).to.eql(2); + expect(body.total).to.eql(2); + const resultIps: string[] = [].concat( + ...body.data.map((hostInfo: Record<string, any>) => hostInfo.metadata.host.ip) + ); + expect(resultIps.sort()).to.eql( + [ + '10.192.213.130', + '10.70.28.129', + '10.101.149.26', + '2606:a000:ffc0:39:11ef:37b9:3371:578c', + ].sort() + ); + expect(resultIps).not.include.eql(notIncludedIp); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return page based on host.os.Ext.variant filter.', async () => { + const variantValue = 'Windows Pro'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `HostDetails.host.os.Ext.variant:${variantValue} or host.os.Ext.variant:${variantValue}`, + }) + .expect(200); + expect(body.data.length).to.eql(2); + expect(body.total).to.eql(2); + const resultOsVariantValue: Set<string> = new Set( + body.data.map( + (hostInfo: Record<string, any>) => hostInfo.metadata.host.os.Ext.variant + ) + ); + expect(Array.from(resultOsVariantValue)).to.eql([variantValue]); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return the latest event for all the events for an endpoint', async () => { + const targetEndpointIp = '10.46.229.234'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `HostDetails.host.ip:${targetEndpointIp} or host.ip:${targetEndpointIp}`, + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(1); + const resultIp: string = body.data[0].metadata.host.ip.filter( + (ip: string) => ip === targetEndpointIp + ); + expect(resultIp).to.eql([targetEndpointIp]); + expect(body.data[0].metadata.event.created).to.eql(timestamp); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return the latest event for all the events where policy status is not success', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: + 'not (HostDetails.Endpoint.policy.applied.status:success or Endpoint.policy.applied.status:success)', + }) + .expect(200); + const statuses: Set<string> = new Set( + body.data.map( + (hostInfo: Record<string, any>) => hostInfo.metadata.Endpoint.policy.applied.status + ) + ); + expect(statuses.size).to.eql(1); + expect(Array.from(statuses)).to.eql(['failure']); + }); + + it('metadata api should return the endpoint based on the elastic agent id, and status should be unhealthy', async () => { + const targetEndpointId = 'fc0ff548-feba-41b6-8367-65e8790d0eaf'; + const targetElasticAgentId = '023fa40c-411d-4188-a941-4147bfadd095'; + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: `HostDetails.elastic.agent.id:${targetElasticAgentId} or elastic.agent.id:${targetElasticAgentId}`, + }) + .expect(200); + expect(body.data.length).to.eql(1); + expect(body.total).to.eql(1); + const resultHostId: string = body.data[0].metadata.host.id; + const resultElasticAgentId: string = body.data[0].metadata.elastic.agent.id; + expect(resultHostId).to.eql(targetEndpointId); + expect(resultElasticAgentId).to.eql(targetElasticAgentId); + expect(body.data[0].metadata.event.created).to.eql(timestamp); + expect(body.data[0].host_status).to.eql('unhealthy'); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + + it('metadata api should return all hosts when filter is empty string', async () => { + const { body } = await supertest + .get(HOST_METADATA_LIST_ROUTE) + .set('kbn-xsrf', 'xxx') + .query({ + kuery: '', + }) + .expect(200); + expect(body.data.length).to.eql(numberOfHostsInFixture); + expect(body.total).to.eql(numberOfHostsInFixture); + expect(body.page).to.eql(0); + expect(body.pageSize).to.eql(10); + }); + }); + }); }); }); } diff --git a/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts b/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts index 2c79191f6269d..c983361071170 100644 --- a/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts +++ b/x-pack/test/upgrade/apps/dashboard/dashboard_smoke_tests.ts @@ -12,7 +12,6 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function ({ getPageObjects, getService }: FtrProviderContext) { const find = getService('find'); const log = getService('log'); - const pieChart = getService('pieChart'); const renderable = getService('renderable'); const dashboardExpect = getService('dashboardExpect'); const PageObjects = getPageObjects(['common', 'header', 'home', 'dashboard', 'timePicker']); @@ -63,10 +62,6 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) { await PageObjects.home.launchSampleDashboard('flights'); await PageObjects.header.waitUntilLoadingHasFinished(); await renderable.waitForRender(); - log.debug('Checking pie charts rendered'); - await pieChart.expectPieSliceCount(4); - log.debug('Checking area, bar and heatmap charts rendered'); - await dashboardExpect.seriesElementCount(15); log.debug('Checking saved searches rendered'); await dashboardExpect.savedSearchRowCount(49); log.debug('Checking input controls rendered'); diff --git a/x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts b/x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts index fb8d8c6c59a9d..53acb8b016313 100644 --- a/x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts +++ b/x-pack/test/upgrade/apps/maps/maps_smoke_tests.ts @@ -168,7 +168,7 @@ export default function ({ await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.maps.waitForLayersToLoad(); await PageObjects.maps.toggleLayerVisibility('Road map - desaturated'); - await PageObjects.maps.toggleLayerVisibility('Total Requests by Destination'); + await PageObjects.maps.toggleLayerVisibility('Total Requests by Country'); await PageObjects.timePicker.setCommonlyUsedTime('sample_data range'); await PageObjects.maps.enterFullScreen(); await PageObjects.maps.closeLegend(); diff --git a/yarn.lock b/yarn.lock index 60a1c1dcf17ce..d1e1de94393a7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -44,6 +44,11 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.0.tgz#ea269d7f78deb3a7826c39a4048eecda541ebdaa" integrity sha512-DGjt2QZse5SGd9nfOSqO4WLJ8NN/oHkijbXbPrxuoJO3oIPJL3TciZs9FX+cOHNiY9E9l0opL8g7BmLe3T+9ew== +"@babel/compat-data@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.4.tgz#081d6bbc336ec5c2435c6346b2ae1fb98b5ac68e" + integrity sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q== + "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -147,7 +152,7 @@ "@babel/helper-explode-assignable-expression" "^7.16.0" "@babel/types" "^7.16.0" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0": +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.0", "@babel/helper-compilation-targets@^7.16.3": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz#5b480cd13f68363df6ec4dc8ac8e2da11363cbf0" integrity sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA== @@ -191,6 +196,20 @@ resolve "^1.14.2" semver "^6.1.2" +"@babel/helper-define-polyfill-provider@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971" + integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + "@babel/helper-explode-assignable-expression@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz#753017337a15f46f9c09f674cff10cee9b9d7778" @@ -275,6 +294,15 @@ "@babel/helper-wrap-function" "^7.16.0" "@babel/types" "^7.16.0" +"@babel/helper-remap-async-to-generator@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz#5d7902f61349ff6b963e07f06a389ce139fbfe6e" + integrity sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.16.0" + "@babel/helper-wrap-function" "^7.16.0" + "@babel/types" "^7.16.0" + "@babel/helper-replace-supers@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz#73055e8d3cf9bcba8ddb55cad93fedc860f68f17" @@ -349,7 +377,12 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.3.tgz#271bafcb811080905a119222edbc17909c82261d" integrity sha512-dcNwU1O4sx57ClvLBVFbEgx0UZWfd0JQX5X6fxFRCLHelFBGXFfSz6Y0FAq2PEwUqlqLkdVjVr4VASEOuUnLJw== -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.0": +"@babel/parser@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.0", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.16.2": version "7.16.2" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz#2977fca9b212db153c195674e57cfab807733183" integrity sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg== @@ -374,6 +407,15 @@ "@babel/helper-remap-async-to-generator" "^7.16.0" "@babel/plugin-syntax-async-generators" "^7.8.4" +"@babel/plugin-proposal-async-generator-functions@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz#e606eb6015fec6fa5978c940f315eae4e300b081" + integrity sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.16.4" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-proposal-class-properties@7.3.0": version "7.3.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz#272636bc0fa19a0bc46e601ec78136a173ea36cd" @@ -866,7 +908,7 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/helper-replace-supers" "^7.16.0" -"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.4.4": +"@babel/plugin-transform-parameters@^7.12.1", "@babel/plugin-transform-parameters@^7.16.0", "@babel/plugin-transform-parameters@^7.16.3", "@babel/plugin-transform-parameters@^7.4.4": version "7.16.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz#fa9e4c874ee5223f891ee6fa8d737f4766d31d15" integrity sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w== @@ -953,16 +995,16 @@ resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-runtime@^7.16.0": - version "7.16.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.0.tgz#3fe0da36c2f0834bef7c4d3e7f2b2db0ee0c8909" - integrity sha512-zlPf1/XFn5+vWdve3AAhf+Sxl+MVa5VlwTwWgnLx23u4GlatSRQJ3Eoo9vllf0a9il3woQsT4SK+5Z7c06h8ag== +"@babel/plugin-transform-runtime@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz#f9ba3c7034d429c581e1bd41b4952f3db3c2c7e8" + integrity sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A== dependencies: "@babel/helper-module-imports" "^7.16.0" "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-polyfill-corejs2 "^0.2.3" - babel-plugin-polyfill-corejs3 "^0.3.0" - babel-plugin-polyfill-regenerator "^0.2.3" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" semver "^6.3.0" "@babel/plugin-transform-shorthand-properties@^7.12.1", "@babel/plugin-transform-shorthand-properties@^7.16.0", "@babel/plugin-transform-shorthand-properties@^7.2.0": @@ -1079,7 +1121,7 @@ js-levenshtein "^1.1.3" semver "^5.5.0" -"@babel/preset-env@^7.12.1", "@babel/preset-env@^7.16.0": +"@babel/preset-env@^7.12.1": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.0.tgz#97228393d217560d6a1c6c56f0adb9d12bca67f5" integrity sha512-cdTu/W0IrviamtnZiTfixPfIncr2M1VqRrkjzZWlr1B4TVYimCFK5jkyOdP4qw2MrlKHi+b3ORj6x8GoCew8Dg== @@ -1159,6 +1201,86 @@ core-js-compat "^3.19.0" semver "^6.3.0" +"@babel/preset-env@^7.16.4": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.16.4.tgz#4f6ec33b2a3fe72d6bfdcdf3859500232563a2e3" + integrity sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA== + dependencies: + "@babel/compat-data" "^7.16.4" + "@babel/helper-compilation-targets" "^7.16.3" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.16.2" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-async-generator-functions" "^7.16.4" + "@babel/plugin-proposal-class-properties" "^7.16.0" + "@babel/plugin-proposal-class-static-block" "^7.16.0" + "@babel/plugin-proposal-dynamic-import" "^7.16.0" + "@babel/plugin-proposal-export-namespace-from" "^7.16.0" + "@babel/plugin-proposal-json-strings" "^7.16.0" + "@babel/plugin-proposal-logical-assignment-operators" "^7.16.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.16.0" + "@babel/plugin-proposal-numeric-separator" "^7.16.0" + "@babel/plugin-proposal-object-rest-spread" "^7.16.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.16.0" + "@babel/plugin-proposal-optional-chaining" "^7.16.0" + "@babel/plugin-proposal-private-methods" "^7.16.0" + "@babel/plugin-proposal-private-property-in-object" "^7.16.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.16.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.16.0" + "@babel/plugin-transform-async-to-generator" "^7.16.0" + "@babel/plugin-transform-block-scoped-functions" "^7.16.0" + "@babel/plugin-transform-block-scoping" "^7.16.0" + "@babel/plugin-transform-classes" "^7.16.0" + "@babel/plugin-transform-computed-properties" "^7.16.0" + "@babel/plugin-transform-destructuring" "^7.16.0" + "@babel/plugin-transform-dotall-regex" "^7.16.0" + "@babel/plugin-transform-duplicate-keys" "^7.16.0" + "@babel/plugin-transform-exponentiation-operator" "^7.16.0" + "@babel/plugin-transform-for-of" "^7.16.0" + "@babel/plugin-transform-function-name" "^7.16.0" + "@babel/plugin-transform-literals" "^7.16.0" + "@babel/plugin-transform-member-expression-literals" "^7.16.0" + "@babel/plugin-transform-modules-amd" "^7.16.0" + "@babel/plugin-transform-modules-commonjs" "^7.16.0" + "@babel/plugin-transform-modules-systemjs" "^7.16.0" + "@babel/plugin-transform-modules-umd" "^7.16.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.16.0" + "@babel/plugin-transform-new-target" "^7.16.0" + "@babel/plugin-transform-object-super" "^7.16.0" + "@babel/plugin-transform-parameters" "^7.16.3" + "@babel/plugin-transform-property-literals" "^7.16.0" + "@babel/plugin-transform-regenerator" "^7.16.0" + "@babel/plugin-transform-reserved-words" "^7.16.0" + "@babel/plugin-transform-shorthand-properties" "^7.16.0" + "@babel/plugin-transform-spread" "^7.16.0" + "@babel/plugin-transform-sticky-regex" "^7.16.0" + "@babel/plugin-transform-template-literals" "^7.16.0" + "@babel/plugin-transform-typeof-symbol" "^7.16.0" + "@babel/plugin-transform-unicode-escapes" "^7.16.0" + "@babel/plugin-transform-unicode-regex" "^7.16.0" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.16.0" + babel-plugin-polyfill-corejs2 "^0.3.0" + babel-plugin-polyfill-corejs3 "^0.4.0" + babel-plugin-polyfill-regenerator "^0.3.0" + core-js-compat "^3.19.1" + semver "^6.3.0" + "@babel/preset-flow@^7.12.1": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.12.13.tgz#71ee7fe65a95b507ac12bcad65a4ced27d8dfc3e" @@ -1501,10 +1623,10 @@ dependencies: object-hash "^1.3.0" -"@elastic/charts@39.0.1": - version "39.0.1" - resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-39.0.1.tgz#7891d6efb3a12eb73fcb57d9a1f71565c22f4501" - integrity sha512-k64+vrfRkP7Gn8+T0Vtdev/DKpy6G+M9H6OFQcf1fgXAd7qOnTXVaN4Ru+BRTPylTFwxf9pqHraz8Ayi+3VpjA== +"@elastic/charts@39.0.2": + version "39.0.2" + resolved "https://registry.yarnpkg.com/@elastic/charts/-/charts-39.0.2.tgz#5533fc57c4ceed4c5ae826cd9a13c55cc03c55e5" + integrity sha512-jjdZSV6PGKsjA2qDAwEw+SjHWq5/Rm9FQk9lrmxrX+0rc7TlsPyr840RT1BAfkDDoo8+o3WWbfg+r61Y0FQ1Pg== dependencies: "@popperjs/core" "^2.4.0" chroma-js "^2.1.0" @@ -1575,10 +1697,10 @@ resolved "https://registry.yarnpkg.com/@elastic/eslint-plugin-eui/-/eslint-plugin-eui-0.0.2.tgz#56b9ef03984a05cc213772ae3713ea8ef47b0314" integrity sha512-IoxURM5zraoQ7C8f+mJb9HYSENiZGgRVcG4tLQxE61yHNNRDXtGDWTZh8N1KIHcsqN1CEPETjuzBXkJYF/fDiQ== -"@elastic/eui@40.1.0": - version "40.1.0" - resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-40.1.0.tgz#d5ad63e9ed4ae482037a637e9b3f2598712c9e94" - integrity sha512-xlmbu4ZjdKtpgkQZ6GNMWCyyjSJaNFPMj97pLs11UEag2L1W0IwISlGF9+K45Qp4KLatR6iphwiyLFGmqGOOTA== +"@elastic/eui@41.0.0": + version "41.0.0" + resolved "https://registry.yarnpkg.com/@elastic/eui/-/eui-41.0.0.tgz#64d7efef5a15d5495f2db1eebd5384e412296e06" + integrity sha512-+cExohPqWzahLW6Z6X6dc0voaDkYQ4ruHMSFe0H78YhTECrbu+f9mWDx841C7WDtvKKJVPbCZ/dyTeB2Ogwabw== dependencies: "@types/chroma-js" "^2.0.0" "@types/lodash" "^4.14.160" @@ -1596,7 +1718,6 @@ mdast-util-to-hast "^10.0.0" numeral "^2.0.6" prop-types "^15.6.0" - react-ace "^7.0.5" react-beautiful-dnd "^13.0.0" react-dropzone "^11.2.0" react-focus-on "^3.5.0" @@ -5265,6 +5386,10 @@ resolved "https://registry.yarnpkg.com/@types/ejs/-/ejs-3.0.6.tgz#aca442289df623bfa8e47c23961f0357847b83fe" integrity sha512-fj1hi+ZSW0xPLrJJD+YNwIh9GZbyaIepG26E/gXvp8nCa2pYokxUYO1sK9qjGxp2g8ryZYuon7wmjpwE2cyASQ== +"@types/elastic__apm-synthtrace@link:bazel-bin/packages/elastic-apm-synthtrace/npm_module_types": + version "0.0.0" + uid "" + "@types/elastic__datemath@link:bazel-bin/packages/elastic-datemath/npm_module_types": version "0.0.0" uid "" @@ -5658,6 +5783,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.30.tgz#44cb52f32a809734ca562e685c6473b5754a7818" integrity sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA== +"@types/kbn__ace@link:bazel-bin/packages/kbn-ace/npm_module_types": + version "0.0.0" + uid "" + "@types/keyv@*": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz#e45a45324fca9dab716ab1230ee249c9fb52cfa7" @@ -8216,6 +8345,15 @@ babel-plugin-polyfill-corejs2@^0.2.3: "@babel/helper-define-polyfill-provider" "^0.2.4" semver "^6.1.1" +babel-plugin-polyfill-corejs2@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd" + integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.0" + semver "^6.1.1" + babel-plugin-polyfill-corejs3@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.3.0.tgz#fa7ca3d1ee9ddc6193600ffb632c9785d54918af" @@ -8224,6 +8362,14 @@ babel-plugin-polyfill-corejs3@^0.3.0: "@babel/helper-define-polyfill-provider" "^0.2.4" core-js-compat "^3.18.0" +babel-plugin-polyfill-corejs3@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz#0b571f4cf3d67f911512f5c04842a7b8e8263087" + integrity sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.0" + core-js-compat "^3.18.0" + babel-plugin-polyfill-regenerator@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.3.tgz#2e9808f5027c4336c994992b48a4262580cb8d6d" @@ -8231,6 +8377,13 @@ babel-plugin-polyfill-regenerator@^0.2.3: dependencies: "@babel/helper-define-polyfill-provider" "^0.2.4" +babel-plugin-polyfill-regenerator@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be" + integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.0" + babel-plugin-react-docgen@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/babel-plugin-react-docgen/-/babel-plugin-react-docgen-4.2.1.tgz#7cc8e2f94e8dc057a06e953162f0810e4e72257b" @@ -10431,7 +10584,7 @@ core-js-compat@^3.18.0: browserslist "^4.17.1" semver "7.0.0" -core-js-compat@^3.19.0: +core-js-compat@^3.19.0, core-js-compat@^3.19.1: version "3.19.1" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.19.1.tgz#fe598f1a9bf37310d77c3813968e9f7c7bb99476" integrity sha512-Q/VJ7jAF/y68+aUsQJ/afPOewdsGkDtcMb40J8MbuWKlK3Y+wtHq8bTHKPj2WKWLIqmS5JhHs4CzHtz6pT2W6g== @@ -12443,7 +12596,7 @@ elastic-apm-http-client@^10.3.0: readable-stream "^3.4.0" stream-chopper "^3.0.1" -elastic-apm-node@3.24.0: +elastic-apm-node@^3.24.0: version "3.24.0" resolved "https://registry.yarnpkg.com/elastic-apm-node/-/elastic-apm-node-3.24.0.tgz#d7acb3352f928a23c28ebabab2bd30098562814e" integrity sha512-Fmj/W2chWQa2zb1FfMYK2ypLB4TcnKNX+1klaJFbytRYDLgeSfo0EC7egvI3a+bLPZSRL5053PXOp7slVTPO6Q==