From 9aae30e35fec6b9b10e92b7846ed02af9d04df2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20G=C3=B3mez?= Date: Wed, 8 Feb 2023 14:15:53 +0100 Subject: [PATCH] [Synthetics UI] Add deprecation warnings for the synthetics integration monitors (#150437) Closes #150287 ## Summary Adds or updates deprecation notices regarding the synthetics integration when the user has monitors created through it. ## Screenshots In the Uptime UI: Screenshot 2023-02-07 at 15 10 37 When editing an integration: Screenshot 2023-02-07 at 15 44 57 --- .../synthetics/common/constants/rest_api.ts | 2 +- .../plugins/synthetics/common/types/index.ts | 2 +- ...recation.ts => integration_deprecation.ts} | 4 +- ...nthetics_policy_edit_extension_wrapper.tsx | 5 +- .../integration_deprecation/index.tsx | 52 +++++++++++ .../integration_deprecation.test.tsx} | 38 ++++---- .../integration_deprecation_callout.tsx | 66 +++++++++++++ .../overview/zip_url_deprecation/index.tsx | 92 ------------------- .../public/legacy_uptime/pages/overview.tsx | 4 +- ...onitors.ts => has_integration_monitors.ts} | 9 +- .../fleet/get_has_integration_monitors.ts | 24 +++++ .../routes/fleet/get_has_zip_url_monitors.ts | 31 ------- .../plugins/synthetics/server/routes/index.ts | 4 +- .../translations/translations/fr-FR.json | 4 - .../translations/translations/ja-JP.json | 4 - .../translations/translations/zh-CN.json | 4 - 16 files changed, 179 insertions(+), 166 deletions(-) rename x-pack/plugins/synthetics/common/types/{zip_url_deprecation.ts => integration_deprecation.ts} (72%) create mode 100644 x-pack/plugins/synthetics/public/legacy_uptime/components/overview/integration_deprecation/index.tsx rename x-pack/plugins/synthetics/public/legacy_uptime/components/overview/{zip_url_deprecation/zip_url_deprecation.test.tsx => integration_deprecation/integration_deprecation.test.tsx} (56%) create mode 100644 x-pack/plugins/synthetics/public/legacy_uptime/components/overview/integration_deprecation/integration_deprecation_callout.tsx delete mode 100644 x-pack/plugins/synthetics/public/legacy_uptime/components/overview/zip_url_deprecation/index.tsx rename x-pack/plugins/synthetics/public/legacy_uptime/state/api/{has_zip_url_monitors.ts => has_integration_monitors.ts} (53%) create mode 100644 x-pack/plugins/synthetics/server/routes/fleet/get_has_integration_monitors.ts delete mode 100644 x-pack/plugins/synthetics/server/routes/fleet/get_has_zip_url_monitors.ts diff --git a/x-pack/plugins/synthetics/common/constants/rest_api.ts b/x-pack/plugins/synthetics/common/constants/rest_api.ts index eaf3ba8c36b14..552980758c3ec 100644 --- a/x-pack/plugins/synthetics/common/constants/rest_api.ts +++ b/x-pack/plugins/synthetics/common/constants/rest_api.ts @@ -45,7 +45,7 @@ export enum API_URLS { TRIGGER_MONITOR = '/internal/uptime/service/monitors/trigger', SERVICE_ALLOWED = '/internal/uptime/service/allowed', SYNTHETICS_APIKEY = '/internal/uptime/service/api_key', - SYNTHETICS_HAS_ZIP_URL_MONITORS = '/internal/uptime/fleet/has_zip_url_monitors', + SYNTHETICS_HAS_INTEGRATION_MONITORS = '/internal/uptime/fleet/has_integration_monitors', // Project monitor public endpoint SYNTHETICS_MONITORS_PROJECT = '/api/synthetics/project/{projectName}/monitors', diff --git a/x-pack/plugins/synthetics/common/types/index.ts b/x-pack/plugins/synthetics/common/types/index.ts index b26fcaccba881..6a864b700092d 100644 --- a/x-pack/plugins/synthetics/common/types/index.ts +++ b/x-pack/plugins/synthetics/common/types/index.ts @@ -8,4 +8,4 @@ export * from './monitor_duration'; export * from './synthetics_monitor'; export * from './monitor_validation'; -export * from './zip_url_deprecation'; +export * from './integration_deprecation'; diff --git a/x-pack/plugins/synthetics/common/types/zip_url_deprecation.ts b/x-pack/plugins/synthetics/common/types/integration_deprecation.ts similarity index 72% rename from x-pack/plugins/synthetics/common/types/zip_url_deprecation.ts rename to x-pack/plugins/synthetics/common/types/integration_deprecation.ts index 793d1d35ddb97..951de85c046b6 100644 --- a/x-pack/plugins/synthetics/common/types/zip_url_deprecation.ts +++ b/x-pack/plugins/synthetics/common/types/integration_deprecation.ts @@ -5,6 +5,6 @@ * 2.0. */ -export interface SyntheticsHasZipUrlMonitorsResponse { - hasZipUrlMonitors: boolean; +export interface SyntheticsHasIntegrationMonitorsResponse { + hasIntegrationMonitors: boolean; } diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx index abe156475755d..5c1f6dd7c1159 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/fleet_package/synthetics_policy_edit_extension_wrapper.tsx @@ -8,7 +8,7 @@ import React, { memo, useMemo } from 'react'; import { i18n } from '@kbn/i18n'; import { PackagePolicyEditExtensionComponentProps } from '@kbn/fleet-plugin/public'; -import { EuiButton, EuiCallOut } from '@elastic/eui'; +import { EuiButton, EuiCallOut, EuiSpacer } from '@elastic/eui'; import { useKibana } from '@kbn/kibana-react-plugin/public'; import { PolicyConfig, MonitorFields } from './types'; import { ConfigKey, DataStream, TLSFields } from './types'; @@ -22,6 +22,7 @@ import { TLSFieldsContextProvider, } from './contexts'; import { normalizers } from './helpers/normalizers'; +import { IntegrationDeprecationCallout } from '../overview/integration_deprecation/integration_deprecation_callout'; /** * Exports Synthetics-specific package policy instructions @@ -124,6 +125,8 @@ export const SyntheticsPolicyEditExtensionWrapper = memo + + { + const monitorList = useSelector(monitorListSelector); + const noticeHasBeenDismissed = + window.sessionStorage.getItem(INTEGRATION_DEPRECATION_SESSION_STORAGE_KEY) === 'true'; + const { data, loading } = useFetcher(() => { + // load it when list is loaded + if (!noticeHasBeenDismissed && monitorList.isLoaded) { + return getHasIntegrationMonitors(); + } + return undefined; + }, [monitorList.isLoaded]); + const hasIntegrationMonitors = !loading && data && data.hasIntegrationMonitors; + const [shouldShowNotice, setShouldShowNotice] = useState( + Boolean(hasIntegrationMonitors && !noticeHasBeenDismissed) + ); + + const handleDismissDeprecationNotice = () => { + window.sessionStorage.setItem(INTEGRATION_DEPRECATION_SESSION_STORAGE_KEY, 'true'); + setShouldShowNotice(false); + }; + + useEffect(() => { + setShouldShowNotice(Boolean(hasIntegrationMonitors && !noticeHasBeenDismissed)); + }, [hasIntegrationMonitors, noticeHasBeenDismissed]); + + return shouldShowNotice ? ( + <> + + + + ) : null; +}; diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/zip_url_deprecation/zip_url_deprecation.test.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/integration_deprecation/integration_deprecation.test.tsx similarity index 56% rename from x-pack/plugins/synthetics/public/legacy_uptime/components/overview/zip_url_deprecation/zip_url_deprecation.test.tsx rename to x-pack/plugins/synthetics/public/legacy_uptime/components/overview/integration_deprecation/integration_deprecation.test.tsx index 2d49f529e0379..68373ad85ba6b 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/zip_url_deprecation/zip_url_deprecation.test.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/integration_deprecation/integration_deprecation.test.tsx @@ -9,62 +9,64 @@ import userEvent from '@testing-library/user-event'; import { StubBrowserStorage } from '@kbn/test-jest-helpers'; import { screen } from '@testing-library/react'; import { render } from '../../../lib/helper/rtl_helpers'; -import { ZipUrlDeprecation, ZIP_URL_DEPRECATION_SESSION_STORAGE_KEY } from '.'; +import { IntegrationDeprecation, INTEGRATION_DEPRECATION_SESSION_STORAGE_KEY } from '.'; import * as observabilityPublic from '@kbn/observability-plugin/public'; export const mockStorage = new StubBrowserStorage(); jest.mock('@kbn/observability-plugin/public'); -describe('ZipUrlDeprecation', () => { +const DEPRECATION_TITLE = 'Migrate your Elastic Synthetics integration monitors before Elastic 8.8'; + +describe('IntegrationDeprecation', () => { const { FETCH_STATUS } = observabilityPublic; - it('shows deprecation notice when hasZipUrlMonitors is true', () => { + it('shows deprecation notice when hasIntegrationMonitors is true', () => { jest.spyOn(observabilityPublic, 'useFetcher').mockReturnValue({ status: FETCH_STATUS.SUCCESS, - data: { hasZipUrlMonitors: true }, + data: { hasIntegrationMonitors: true }, refetch: () => null, loading: false, }); - render(); - expect(screen.getByText('Deprecation notice')).toBeInTheDocument(); + render(); + expect(screen.getByText(DEPRECATION_TITLE)).toBeInTheDocument(); }); - it('does not show deprecation notice when hasZipUrlMonitors is false', () => { + it('does not show deprecation notice when hasIntegrationMonitors is false', () => { jest.spyOn(observabilityPublic, 'useFetcher').mockReturnValue({ status: FETCH_STATUS.SUCCESS, - data: { hasZipUrlMonitors: false }, + data: { hasIntegrationMonitors: false }, refetch: () => null, loading: false, }); - render(); - expect(screen.queryByText('Deprecation notice')).not.toBeInTheDocument(); + render(); + expect(screen.queryByText(DEPRECATION_TITLE)).not.toBeInTheDocument(); }); it('dismisses notification', () => { jest.spyOn(observabilityPublic, 'useFetcher').mockReturnValue({ status: FETCH_STATUS.SUCCESS, - data: { hasZipUrlMonitors: true }, + data: { hasIntegrationMonitors: true }, refetch: () => null, loading: false, }); - render(); - expect(screen.getByText('Deprecation notice')).toBeInTheDocument(); + render(); + expect(screen.getByText(DEPRECATION_TITLE)).toBeInTheDocument(); userEvent.click(screen.getByText('Dismiss')); - expect(screen.queryByText('Deprecation notice')).not.toBeInTheDocument(); + expect(screen.queryByText(DEPRECATION_TITLE)).not.toBeInTheDocument(); }); it('does not show notification when session storage key is true', () => { jest.spyOn(observabilityPublic, 'useFetcher').mockReturnValue({ status: FETCH_STATUS.SUCCESS, - data: { hasZipUrlMonitors: true }, + data: { hasIntegrationMonitors: true }, refetch: () => null, loading: false, }); - mockStorage.setItem(ZIP_URL_DEPRECATION_SESSION_STORAGE_KEY, 'true'); + mockStorage.setItem(INTEGRATION_DEPRECATION_SESSION_STORAGE_KEY, 'true'); - render(); - expect(screen.queryByText('Deprecation notice')).not.toBeInTheDocument(); + render(); + expect(screen.queryByText(DEPRECATION_TITLE)).not.toBeInTheDocument(); }); }); diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/integration_deprecation/integration_deprecation_callout.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/integration_deprecation/integration_deprecation_callout.tsx new file mode 100644 index 0000000000000..3a5e1ad9394f4 --- /dev/null +++ b/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/integration_deprecation/integration_deprecation_callout.tsx @@ -0,0 +1,66 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +import React from 'react'; +import { EuiButton, EuiCallOut, EuiFlexGroup, EuiFlexItem, EuiLink } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import { getDocLinks } from '../../../../kibana_services'; + +interface IntegrationDeprecationCalloutProps { + handleDismissDeprecationNotice?: () => void; +} + +export function IntegrationDeprecationCallout({ + handleDismissDeprecationNotice, +}: IntegrationDeprecationCalloutProps) { + return ( + + } + color="warning" + > + + + + + + + ), + }} + /> + + + {handleDismissDeprecationNotice ? ( + + + + + + ) : null} + + + ); +} diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/zip_url_deprecation/index.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/zip_url_deprecation/index.tsx deleted file mode 100644 index 3d1b3ce0719de..0000000000000 --- a/x-pack/plugins/synthetics/public/legacy_uptime/components/overview/zip_url_deprecation/index.tsx +++ /dev/null @@ -1,92 +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, useEffect } from 'react'; -import { FormattedMessage } from '@kbn/i18n-react'; -import { EuiCallOut, EuiLink, EuiButton, EuiFlexItem, EuiFlexGroup, EuiSpacer } from '@elastic/eui'; -import { useFetcher } from '@kbn/observability-plugin/public'; -import { useSelector } from 'react-redux'; -import { getHasZipUrlMonitors } from '../../../state/api/has_zip_url_monitors'; -import { getDocLinks } from '../../../../kibana_services'; -import { monitorListSelector } from '../../../state/selectors'; - -export const ZIP_URL_DEPRECATION_SESSION_STORAGE_KEY = - 'SYNTHETICS_ZIP_URL_DEPRECATION_HAS_BEEN_DISMISSED'; - -export const ZipUrlDeprecation = () => { - const monitorList = useSelector(monitorListSelector); - const noticeHasBeenDismissed = - window.sessionStorage.getItem(ZIP_URL_DEPRECATION_SESSION_STORAGE_KEY) === 'true'; - const { data, loading } = useFetcher(() => { - // load it when list is loaded - if (!noticeHasBeenDismissed && monitorList.isLoaded) { - return getHasZipUrlMonitors(); - } - return undefined; - }, [monitorList.isLoaded]); - const hasZipUrlMonitors = !loading && data && data.hasZipUrlMonitors; - const [shouldShowNotice, setShouldShowNotice] = useState( - Boolean(hasZipUrlMonitors && !noticeHasBeenDismissed) - ); - - const handleDismissDeprecationNotice = () => { - window.sessionStorage.setItem(ZIP_URL_DEPRECATION_SESSION_STORAGE_KEY, 'true'); - setShouldShowNotice(false); - }; - - useEffect(() => { - setShouldShowNotice(Boolean(hasZipUrlMonitors && !noticeHasBeenDismissed)); - }, [hasZipUrlMonitors, noticeHasBeenDismissed]); - - return shouldShowNotice ? ( - <> - - } - color="warning" - > - - - - - - - ), - }} - /> - - - - - - - - - - - - ) : null; -}; diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/pages/overview.tsx b/x-pack/plugins/synthetics/public/legacy_uptime/pages/overview.tsx index 60a7ba30b3ec2..88d292a7e06cd 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/pages/overview.tsx +++ b/x-pack/plugins/synthetics/public/legacy_uptime/pages/overview.tsx @@ -12,7 +12,7 @@ import styled from 'styled-components'; import { useTrackPageview } from '@kbn/observability-plugin/public'; import { useBreadcrumbs } from '../hooks/use_breadcrumbs'; import { MonitorList } from '../components/overview/monitor_list/monitor_list_container'; -import { ZipUrlDeprecation } from '../components/overview/zip_url_deprecation'; +import { IntegrationDeprecation } from '../components/overview/integration_deprecation'; import { StatusPanel } from '../components/overview/status_panel'; import { QueryBar } from '../components/overview/query_bar/query_bar'; import { MONITORING_OVERVIEW_LABEL } from '../routes'; @@ -40,7 +40,7 @@ export const OverviewPageComponent = () => { <> - + diff --git a/x-pack/plugins/synthetics/public/legacy_uptime/state/api/has_zip_url_monitors.ts b/x-pack/plugins/synthetics/public/legacy_uptime/state/api/has_integration_monitors.ts similarity index 53% rename from x-pack/plugins/synthetics/public/legacy_uptime/state/api/has_zip_url_monitors.ts rename to x-pack/plugins/synthetics/public/legacy_uptime/state/api/has_integration_monitors.ts index 78f45620aad84..a376411adad09 100644 --- a/x-pack/plugins/synthetics/public/legacy_uptime/state/api/has_zip_url_monitors.ts +++ b/x-pack/plugins/synthetics/public/legacy_uptime/state/api/has_integration_monitors.ts @@ -6,9 +6,10 @@ */ import { API_URLS } from '../../../../common/constants'; -import { SyntheticsHasZipUrlMonitorsResponse } from '../../../../common/types/zip_url_deprecation'; +import { SyntheticsHasIntegrationMonitorsResponse } from '../../../../common/types/integration_deprecation'; import { apiService } from './utils'; -export const getHasZipUrlMonitors = async (): Promise => { - return await apiService.get(API_URLS.SYNTHETICS_HAS_ZIP_URL_MONITORS); -}; +export const getHasIntegrationMonitors = + async (): Promise => { + return await apiService.get(API_URLS.SYNTHETICS_HAS_INTEGRATION_MONITORS); + }; diff --git a/x-pack/plugins/synthetics/server/routes/fleet/get_has_integration_monitors.ts b/x-pack/plugins/synthetics/server/routes/fleet/get_has_integration_monitors.ts new file mode 100644 index 0000000000000..966affd83b255 --- /dev/null +++ b/x-pack/plugins/synthetics/server/routes/fleet/get_has_integration_monitors.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ +import { API_URLS } from '../../../common/constants'; +import { SyntheticsRestApiRouteFactory } from '../../legacy_uptime/routes/types'; + +export const getHasIntegrationMonitorsRoute: SyntheticsRestApiRouteFactory = () => ({ + method: 'GET', + path: API_URLS.SYNTHETICS_HAS_INTEGRATION_MONITORS, + validate: {}, + handler: async ({ savedObjectsClient, server }): Promise => { + const monitors = await server.fleet.packagePolicyService.list(savedObjectsClient, { + kuery: + 'ingest-package-policies.package.name:synthetics and not ingest-package-policies.is_managed:true', + perPage: 1, + }); + return { + hasIntegrationMonitors: monitors.total > 0, + }; + }, +}); diff --git a/x-pack/plugins/synthetics/server/routes/fleet/get_has_zip_url_monitors.ts b/x-pack/plugins/synthetics/server/routes/fleet/get_has_zip_url_monitors.ts deleted file mode 100644 index 0527169b80ff4..0000000000000 --- a/x-pack/plugins/synthetics/server/routes/fleet/get_has_zip_url_monitors.ts +++ /dev/null @@ -1,31 +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 { API_URLS } from '../../../common/constants'; -import { ConfigKey } from '../../../common/runtime_types'; -import { SyntheticsRestApiRouteFactory } from '../../legacy_uptime/routes/types'; - -export const getHasZipUrlMonitorRoute: SyntheticsRestApiRouteFactory = () => ({ - method: 'GET', - path: API_URLS.SYNTHETICS_HAS_ZIP_URL_MONITORS, - validate: {}, - handler: async ({ savedObjectsClient, server }): Promise => { - const monitors = await server.fleet.packagePolicyService.list(savedObjectsClient, { - kuery: 'ingest-package-policies.package.name:synthetics', - }); - const hasZipUrlMonitors = monitors.items.some((item) => { - const browserInput = item.inputs.find((input) => input.type === 'synthetics/browser'); - const streams = browserInput?.streams || []; - return streams.find((stream) => stream.data_stream.dataset === 'browser')?.compiled_stream?.[ - ConfigKey.SOURCE_ZIP_URL - ]; - }); - return { - hasZipUrlMonitors, - monitors: [], - }; - }, -}); diff --git a/x-pack/plugins/synthetics/server/routes/index.ts b/x-pack/plugins/synthetics/server/routes/index.ts index 69406cd5ff612..6978a38b2be46 100644 --- a/x-pack/plugins/synthetics/server/routes/index.ts +++ b/x-pack/plugins/synthetics/server/routes/index.ts @@ -40,7 +40,7 @@ import { SyntheticsRestApiRouteFactory, SyntheticsStreamingRouteFactory, } from '../legacy_uptime/routes'; -import { getHasZipUrlMonitorRoute } from './fleet/get_has_zip_url_monitors'; +import { getHasIntegrationMonitorsRoute } from './fleet/get_has_integration_monitors'; import { addSyntheticsParamsRoute } from './settings/add_param'; import { enableDefaultAlertingRoute } from './default_alerts/enable_default_alert'; import { getDefaultAlertingRoute } from './default_alerts/get_default_alert'; @@ -66,7 +66,7 @@ export const syntheticsAppRestApiRoutes: SyntheticsRestApiRouteFactory[] = [ getAPIKeySyntheticsRoute, syntheticsGetPingsRoute, syntheticsGetPingStatusesRoute, - getHasZipUrlMonitorRoute, + getHasIntegrationMonitorsRoute, createGetCurrentStatusRoute, getIndexSizesRoute, getSyntheticsParamsRoute, diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 0e1aabfd937a5..df4eefe6efa18 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -32743,7 +32743,6 @@ "xpack.synthetics.alerts.tls.validBeforeExpiredString": "valide depuis le {date}, il y a {relativeDate} jours.", "xpack.synthetics.alerts.tls.validBeforeExpiringString": "non valide jusqu'au {date}, dans {relativeDate} jours.", "xpack.synthetics.availabilityLabelText": "{value} %", - "xpack.synthetics.browser.zipUrl.deprecation.content": "L'URL du Zip est déclassée et sera supprimée dans une prochaine version. Utilisez les moniteurs de projet à la place pour créer des moniteurs à partir d'un référentiel distant et pour migrer les moniteurs d'URL de Zip existants. {link}", "xpack.synthetics.certificates.heading": "Certificats TLS ({total})", "xpack.synthetics.certificatesRoute.title": "Certificats | {baseTitle}", "xpack.synthetics.certs.status.ok.label": " {okRelativeDate}", @@ -33028,9 +33027,6 @@ "xpack.synthetics.browser.project.monitorIntegrationSettingsSectionTitle": "Paramètres du moniteur", "xpack.synthetics.browser.project.readOnly.callout.content": "Ce moniteur a été ajouté depuis un projet externe. La configuration est en lecture seule.", "xpack.synthetics.browser.project.readOnly.callout.title": "Lecture seule", - "xpack.synthetics.browser.zipUrl.deprecation.dismiss": "Rejeter", - "xpack.synthetics.browser.zipUrl.deprecation.link": "En savoir plus", - "xpack.synthetics.browser.zipUrl.deprecation.title": "Avis de déclassement", "xpack.synthetics.certificates.loading": "Chargement des certificats...", "xpack.synthetics.certificates.refresh": "Actualiser", "xpack.synthetics.certificatesPage.heading": "Certificats TLS", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 92cab0ec41d51..7cb33c2275dcc 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -32714,7 +32714,6 @@ "xpack.synthetics.alerts.tls.validBeforeExpiredString": "{relativeDate}日前、{date}以降有効です。", "xpack.synthetics.alerts.tls.validBeforeExpiringString": "今から{relativeDate}日間、{date}まで無効です。", "xpack.synthetics.availabilityLabelText": "{value} %", - "xpack.synthetics.browser.zipUrl.deprecation.content": "Zip URLは廃止予定であり、将来のバージョンでは削除されます。リモートリポジトリからモニターを作成して、既存のZip URLモニターを移行するのではなく、プロジェクトモニターを使用してください。{link}", "xpack.synthetics.certificates.heading": "TLS証明書({total})", "xpack.synthetics.certificatesRoute.title": "証明書 | {baseTitle}", "xpack.synthetics.certs.status.ok.label": " for {okRelativeDate}", @@ -32999,9 +32998,6 @@ "xpack.synthetics.browser.project.monitorIntegrationSettingsSectionTitle": "モニター設定", "xpack.synthetics.browser.project.readOnly.callout.content": "この監視は外部プロジェクトから追加されました。構成は読み取り専用です。", "xpack.synthetics.browser.project.readOnly.callout.title": "読み取り専用", - "xpack.synthetics.browser.zipUrl.deprecation.dismiss": "閉じる", - "xpack.synthetics.browser.zipUrl.deprecation.link": "詳細", - "xpack.synthetics.browser.zipUrl.deprecation.title": "廃止通知", "xpack.synthetics.certificates.loading": "証明書を読み込んでいます...", "xpack.synthetics.certificates.refresh": "更新", "xpack.synthetics.certificatesPage.heading": "TLS証明書", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 67e7b522e1d1a..dde2c552434b2 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -32749,7 +32749,6 @@ "xpack.synthetics.alerts.tls.validBeforeExpiredString": "自 {relativeDate} 天前,即 {date}开始生效。", "xpack.synthetics.alerts.tls.validBeforeExpiringString": "从现在到 {date}的 {relativeDate} 天里无效。", "xpack.synthetics.availabilityLabelText": "{value} %", - "xpack.synthetics.browser.zipUrl.deprecation.content": "Zip URL 已弃用,将在未来版本中移除。请改用项目监测以从远程存储库创建监测并迁移现有 Zip URL 监测。{link}", "xpack.synthetics.certificates.heading": "TLS 证书 ({total})", "xpack.synthetics.certificatesRoute.title": "证书 | {baseTitle}", "xpack.synthetics.certs.status.ok.label": " 对于 {okRelativeDate}", @@ -33034,9 +33033,6 @@ "xpack.synthetics.browser.project.monitorIntegrationSettingsSectionTitle": "监测设置", "xpack.synthetics.browser.project.readOnly.callout.content": "已从外部项目添加此监测。配置为只读状态。", "xpack.synthetics.browser.project.readOnly.callout.title": "只读", - "xpack.synthetics.browser.zipUrl.deprecation.dismiss": "关闭", - "xpack.synthetics.browser.zipUrl.deprecation.link": "了解详情", - "xpack.synthetics.browser.zipUrl.deprecation.title": "过时通知", "xpack.synthetics.certificates.loading": "正在加载证书......", "xpack.synthetics.certificates.refresh": "刷新", "xpack.synthetics.certificatesPage.heading": "TLS 证书",