From 120f7c4089d3a35c37314c414313c23b041783a0 Mon Sep 17 00:00:00 2001 From: Ashish Agrawal Date: Mon, 21 Mar 2022 16:16:38 -0700 Subject: [PATCH] Upgrade kotlin to 1.16.10 (#356) Signed-off-by: Ashish Agrawal --- .../alerting/action/AcknowledgeAlertAction.kt | 2 +- .../action/DeleteDestinationAction.kt | 2 +- .../alerting/action/DeleteMonitorAction.kt | 2 +- .../alerting/action/ExecuteMonitorAction.kt | 2 +- .../alerting/action/GetAlertsAction.kt | 2 +- .../alerting/action/GetDestinationsAction.kt | 2 +- .../alerting/action/GetEmailAccountAction.kt | 2 +- .../alerting/action/GetEmailGroupAction.kt | 2 +- .../alerting/action/GetMonitorAction.kt | 2 +- .../alerting/action/IndexDestinationAction.kt | 2 +- .../action/IndexEmailAccountAction.kt | 2 +- .../alerting/action/IndexEmailGroupAction.kt | 2 +- .../alerting/action/IndexMonitorAction.kt | 2 +- .../action/SearchEmailAccountAction.kt | 2 +- .../alerting/action/SearchEmailGroupAction.kt | 2 +- .../alerting/action/SearchMonitorAction.kt | 2 +- .../SupportedClusterMetricsSettings.kt | 3 +- ...edClusterMetricsSettingsExtensionsTests.kt | 70 +++++++++++++++++-- build-tools/merged-coverage.gradle | 2 +- build.gradle | 2 +- .../core/model/ClusterMetricsInput.kt | 5 +- .../core/model/ClusterMetricsInputTests.kt | 3 +- 22 files changed, 91 insertions(+), 26 deletions(-) diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/AcknowledgeAlertAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/AcknowledgeAlertAction.kt index 2cdfe71c8..d1d968f71 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/AcknowledgeAlertAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/AcknowledgeAlertAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class AcknowledgeAlertAction private constructor() : ActionType(NAME, ::AcknowledgeAlertResponse) { companion object { val INSTANCE = AcknowledgeAlertAction() - val NAME = "cluster:admin/opendistro/alerting/alerts/ack" + const val NAME = "cluster:admin/opendistro/alerting/alerts/ack" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/DeleteDestinationAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/DeleteDestinationAction.kt index 721e16975..31d090d5e 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/DeleteDestinationAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/DeleteDestinationAction.kt @@ -11,6 +11,6 @@ import org.opensearch.action.delete.DeleteResponse class DeleteDestinationAction private constructor() : ActionType(NAME, ::DeleteResponse) { companion object { val INSTANCE = DeleteDestinationAction() - val NAME = "cluster:admin/opendistro/alerting/destination/delete" + const val NAME = "cluster:admin/opendistro/alerting/destination/delete" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/DeleteMonitorAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/DeleteMonitorAction.kt index fad600e85..402b95f41 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/DeleteMonitorAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/DeleteMonitorAction.kt @@ -11,6 +11,6 @@ import org.opensearch.action.delete.DeleteResponse class DeleteMonitorAction private constructor() : ActionType(NAME, ::DeleteResponse) { companion object { val INSTANCE = DeleteMonitorAction() - val NAME = "cluster:admin/opendistro/alerting/monitor/delete" + const val NAME = "cluster:admin/opendistro/alerting/monitor/delete" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/ExecuteMonitorAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/ExecuteMonitorAction.kt index c1f9192d9..4cc869b37 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/ExecuteMonitorAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/ExecuteMonitorAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class ExecuteMonitorAction private constructor() : ActionType(NAME, ::ExecuteMonitorResponse) { companion object { val INSTANCE = ExecuteMonitorAction() - val NAME = "cluster:admin/opendistro/alerting/monitor/execute" + const val NAME = "cluster:admin/opendistro/alerting/monitor/execute" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetAlertsAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetAlertsAction.kt index 3746504ff..649993565 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetAlertsAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetAlertsAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class GetAlertsAction private constructor() : ActionType(NAME, ::GetAlertsResponse) { companion object { val INSTANCE = GetAlertsAction() - val NAME = "cluster:admin/opendistro/alerting/alerts/get" + const val NAME = "cluster:admin/opendistro/alerting/alerts/get" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetDestinationsAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetDestinationsAction.kt index 4e2e8bdc8..76adde8c6 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetDestinationsAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetDestinationsAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class GetDestinationsAction private constructor() : ActionType(NAME, ::GetDestinationsResponse) { companion object { val INSTANCE = GetDestinationsAction() - val NAME = "cluster:admin/opendistro/alerting/destination/get" + const val NAME = "cluster:admin/opendistro/alerting/destination/get" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetEmailAccountAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetEmailAccountAction.kt index 0dbf85eec..c16a28e17 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetEmailAccountAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetEmailAccountAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class GetEmailAccountAction private constructor() : ActionType(NAME, ::GetEmailAccountResponse) { companion object { val INSTANCE = GetEmailAccountAction() - val NAME = "cluster:admin/opendistro/alerting/destination/email_account/get" + const val NAME = "cluster:admin/opendistro/alerting/destination/email_account/get" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetEmailGroupAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetEmailGroupAction.kt index c2c48487f..a9793f156 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetEmailGroupAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetEmailGroupAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class GetEmailGroupAction private constructor() : ActionType(NAME, ::GetEmailGroupResponse) { companion object { val INSTANCE = GetEmailGroupAction() - val NAME = "cluster:admin/opendistro/alerting/destination/email_group/get" + const val NAME = "cluster:admin/opendistro/alerting/destination/email_group/get" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetMonitorAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetMonitorAction.kt index 0e8807d0e..da209b983 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/GetMonitorAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/GetMonitorAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class GetMonitorAction private constructor() : ActionType(NAME, ::GetMonitorResponse) { companion object { val INSTANCE = GetMonitorAction() - val NAME = "cluster:admin/opendistro/alerting/monitor/get" + const val NAME = "cluster:admin/opendistro/alerting/monitor/get" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexDestinationAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexDestinationAction.kt index 6678b3881..76b180a5f 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexDestinationAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexDestinationAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class IndexDestinationAction private constructor() : ActionType(NAME, ::IndexDestinationResponse) { companion object { val INSTANCE = IndexDestinationAction() - val NAME = "cluster:admin/opendistro/alerting/destination/write" + const val NAME = "cluster:admin/opendistro/alerting/destination/write" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexEmailAccountAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexEmailAccountAction.kt index 360cd83e3..5b935bc7c 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexEmailAccountAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexEmailAccountAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class IndexEmailAccountAction private constructor() : ActionType(NAME, ::IndexEmailAccountResponse) { companion object { val INSTANCE = IndexEmailAccountAction() - val NAME = "cluster:admin/opendistro/alerting/destination/email_account/write" + const val NAME = "cluster:admin/opendistro/alerting/destination/email_account/write" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexEmailGroupAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexEmailGroupAction.kt index bef09c325..9abeb979e 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexEmailGroupAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexEmailGroupAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class IndexEmailGroupAction private constructor() : ActionType(NAME, ::IndexEmailGroupResponse) { companion object { val INSTANCE = IndexEmailGroupAction() - val NAME = "cluster:admin/opendistro/alerting/destination/email_group/write" + const val NAME = "cluster:admin/opendistro/alerting/destination/email_group/write" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexMonitorAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexMonitorAction.kt index 6c79cd639..4c3c8dacb 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexMonitorAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/IndexMonitorAction.kt @@ -10,6 +10,6 @@ import org.opensearch.action.ActionType class IndexMonitorAction private constructor() : ActionType(NAME, ::IndexMonitorResponse) { companion object { val INSTANCE = IndexMonitorAction() - val NAME = "cluster:admin/opendistro/alerting/monitor/write" + const val NAME = "cluster:admin/opendistro/alerting/monitor/write" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchEmailAccountAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchEmailAccountAction.kt index 736ec3b33..12cf21299 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchEmailAccountAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchEmailAccountAction.kt @@ -11,6 +11,6 @@ import org.opensearch.action.search.SearchResponse class SearchEmailAccountAction private constructor() : ActionType(NAME, ::SearchResponse) { companion object { val INSTANCE = SearchEmailAccountAction() - val NAME = "cluster:admin/opendistro/alerting/destination/email_account/search" + const val NAME = "cluster:admin/opendistro/alerting/destination/email_account/search" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchEmailGroupAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchEmailGroupAction.kt index fda4278cd..da113c857 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchEmailGroupAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchEmailGroupAction.kt @@ -11,6 +11,6 @@ import org.opensearch.action.search.SearchResponse class SearchEmailGroupAction private constructor() : ActionType(NAME, ::SearchResponse) { companion object { val INSTANCE = SearchEmailGroupAction() - val NAME = "cluster:admin/opendistro/alerting/destination/email_group/search" + const val NAME = "cluster:admin/opendistro/alerting/destination/email_group/search" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchMonitorAction.kt b/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchMonitorAction.kt index 660813316..16725fc39 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchMonitorAction.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/action/SearchMonitorAction.kt @@ -11,6 +11,6 @@ import org.opensearch.action.search.SearchResponse class SearchMonitorAction private constructor() : ActionType(NAME, ::SearchResponse) { companion object { val INSTANCE = SearchMonitorAction() - val NAME = "cluster:admin/opendistro/alerting/monitor/search" + const val NAME = "cluster:admin/opendistro/alerting/monitor/search" } } diff --git a/alerting/src/main/kotlin/org/opensearch/alerting/settings/SupportedClusterMetricsSettings.kt b/alerting/src/main/kotlin/org/opensearch/alerting/settings/SupportedClusterMetricsSettings.kt index a6a9bf642..fe568aee7 100644 --- a/alerting/src/main/kotlin/org/opensearch/alerting/settings/SupportedClusterMetricsSettings.kt +++ b/alerting/src/main/kotlin/org/opensearch/alerting/settings/SupportedClusterMetricsSettings.kt @@ -59,7 +59,8 @@ class SupportedClusterMetricsSettings { @Suppress("UNCHECKED_CAST") if (supportedJsonPayloads != null) - supportedApiList = XContentHelper.convertToMap(JsonXContent.jsonXContent, supportedJsonPayloads.readText(), false) as HashMap>> + supportedApiList = XContentHelper.convertToMap(JsonXContent.jsonXContent, supportedJsonPayloads.readText(), false) + as HashMap>> } /** diff --git a/alerting/src/test/kotlin/org/opensearch/alerting/util/SupportedClusterMetricsSettingsExtensionsTests.kt b/alerting/src/test/kotlin/org/opensearch/alerting/util/SupportedClusterMetricsSettingsExtensionsTests.kt index 00bf53a4f..bb59ff7d1 100644 --- a/alerting/src/test/kotlin/org/opensearch/alerting/util/SupportedClusterMetricsSettingsExtensionsTests.kt +++ b/alerting/src/test/kotlin/org/opensearch/alerting/util/SupportedClusterMetricsSettingsExtensionsTests.kt @@ -15,19 +15,51 @@ class SupportedClusterMetricsSettingsExtensionsTests : OpenSearchTestCase() { fun `test redactFieldsFromResponse with non-empty supportedJsonPayload`() { // GIVEN mappedResponse = hashMapOf( - ("pathRoot1" to hashMapOf(("pathRoot1_subPath1" to 11), ("pathRoot1_subPath2" to hashMapOf(("pathRoot1_subPath2_subPath1" to 121), ("pathRoot1_subPath2_subPath2" to hashMapOf(("pathRoot1_subPath2_subPath2_subPath1" to 1221))))))), + ( + "pathRoot1" to hashMapOf( + ("pathRoot1_subPath1" to 11), + ( + "pathRoot1_subPath2" to hashMapOf( + ("pathRoot1_subPath2_subPath1" to 121), + ( + "pathRoot1_subPath2_subPath2" to hashMapOf( + ("pathRoot1_subPath2_subPath2_subPath1" to 1221) + ) + ) + ) + ) + ) + ), ("pathRoot2" to hashMapOf(("pathRoot2_subPath1" to 21), ("pathRoot2_subPath2" to setOf(221, 222, "223string")))), ("pathRoot3" to hashMapOf(("pathRoot3_subPath1" to 31), ("pathRoot3_subPath2" to setOf(321, 322, "323string")))) ) supportedJsonPayload = hashMapOf( - ("pathRoot1" to arrayListOf("pathRoot1_subPath1", "pathRoot1_subPath2.pathRoot1_subPath2_subPath2.pathRoot1_subPath2_subPath2_subPath1")), + ( + "pathRoot1" to arrayListOf( + "pathRoot1_subPath1", + "pathRoot1_subPath2.pathRoot1_subPath2_subPath2.pathRoot1_subPath2_subPath2_subPath1" + ) + ), ("pathRoot2" to arrayListOf("pathRoot2_subPath2")), ("pathRoot3" to arrayListOf()) ) expectedResponse = hashMapOf( - ("pathRoot1" to hashMapOf(("pathRoot1_subPath1" to 11), ("pathRoot1_subPath2" to hashMapOf(("pathRoot1_subPath2_subPath2" to hashMapOf(("pathRoot1_subPath2_subPath2_subPath1" to 1221))))))), + ( + "pathRoot1" to hashMapOf( + ("pathRoot1_subPath1" to 11), + ( + "pathRoot1_subPath2" to hashMapOf( + ( + "pathRoot1_subPath2_subPath2" to hashMapOf( + ("pathRoot1_subPath2_subPath2_subPath1" to 1221) + ) + ) + ) + ) + ) + ), ("pathRoot2" to hashMapOf(("pathRoot2_subPath2" to setOf(221, 222, "223string")))), ("pathRoot3" to hashMapOf(("pathRoot3_subPath1" to 31), ("pathRoot3_subPath2" to setOf(321, 322, "323string")))) ) @@ -42,13 +74,41 @@ class SupportedClusterMetricsSettingsExtensionsTests : OpenSearchTestCase() { fun `test redactFieldsFromResponse with empty supportedJsonPayload`() { // GIVEN mappedResponse = hashMapOf( - ("pathRoot1" to hashMapOf(("pathRoot1_subPath1" to 11), ("pathRoot1_subPath2" to hashMapOf(("pathRoot1_subPath2_subPath1" to 121), ("pathRoot1_subPath2_subPath2" to hashMapOf(("pathRoot1_subPath2_subPath2_subPath1" to 1221))))))), + ( + "pathRoot1" to hashMapOf( + ("pathRoot1_subPath1" to 11), + ( + "pathRoot1_subPath2" to hashMapOf( + ("pathRoot1_subPath2_subPath1" to 121), + ( + "pathRoot1_subPath2_subPath2" to hashMapOf( + ("pathRoot1_subPath2_subPath2_subPath1" to 1221) + ) + ) + ) + ) + ) + ), ("pathRoot2" to hashMapOf(("pathRoot2_subPath1" to 21), ("pathRoot2_subPath2" to setOf(221, 222, "223string")))), ("pathRoot3" to 3) ) expectedResponse = hashMapOf( - ("pathRoot1" to hashMapOf(("pathRoot1_subPath1" to 11), ("pathRoot1_subPath2" to hashMapOf(("pathRoot1_subPath2_subPath1" to 121), ("pathRoot1_subPath2_subPath2" to hashMapOf(("pathRoot1_subPath2_subPath2_subPath1" to 1221))))))), + ( + "pathRoot1" to hashMapOf( + ("pathRoot1_subPath1" to 11), + ( + "pathRoot1_subPath2" to hashMapOf( + ("pathRoot1_subPath2_subPath1" to 121), + ( + "pathRoot1_subPath2_subPath2" to hashMapOf( + ("pathRoot1_subPath2_subPath2_subPath1" to 1221) + ) + ) + ) + ) + ) + ), ("pathRoot2" to hashMapOf(("pathRoot2_subPath1" to 21), ("pathRoot2_subPath2" to setOf(221, 222, "223string")))), ("pathRoot3" to 3) ) diff --git a/build-tools/merged-coverage.gradle b/build-tools/merged-coverage.gradle index f94c8a67a..c4e07ab75 100644 --- a/build-tools/merged-coverage.gradle +++ b/build-tools/merged-coverage.gradle @@ -5,7 +5,7 @@ allprojects { plugins.withId('jacoco') { - jacoco.toolVersion = '0.8.5' + jacoco.toolVersion = '0.8.7' // For some reason this dependency isn't getting setup automatically by the jacoco plugin tasks.withType(JacocoReport) { dependsOn tasks.withType(Test) diff --git a/build.gradle b/build.gradle index c0449da69..11733b155 100644 --- a/build.gradle +++ b/build.gradle @@ -11,7 +11,7 @@ buildscript { // 1.0.0 -> 1.0.0.0, and 1.0.0-SNAPSHOT -> 1.0.0.0-SNAPSHOT opensearch_build = opensearch_version.replaceAll(/(\.\d)([^\d]*)$/, '$1.0$2') common_utils_version = System.getProperty("common_utils.version", opensearch_build) - kotlin_version = '1.3.72' + kotlin_version = '1.6.10' } repositories { diff --git a/core/src/main/kotlin/org/opensearch/alerting/core/model/ClusterMetricsInput.kt b/core/src/main/kotlin/org/opensearch/alerting/core/model/ClusterMetricsInput.kt index 243deb059..0ca4eeadb 100644 --- a/core/src/main/kotlin/org/opensearch/alerting/core/model/ClusterMetricsInput.kt +++ b/core/src/main/kotlin/org/opensearch/alerting/core/model/ClusterMetricsInput.kt @@ -159,7 +159,10 @@ data class ClusterMetricsInput( pathParams = pathParams.trim('/') ILLEGAL_PATH_PARAMETER_CHARACTERS.forEach { character -> if (pathParams.contains(character)) - throw IllegalArgumentException("The provided path parameters contain invalid characters or spaces. Please omit: ${ILLEGAL_PATH_PARAMETER_CHARACTERS.joinToString(" ")}") + throw IllegalArgumentException( + "The provided path parameters contain invalid characters or spaces. Please omit: " + + "${ILLEGAL_PATH_PARAMETER_CHARACTERS.joinToString(" ")}" + ) } } diff --git a/core/src/test/kotlin/org/opensearch/alerting/core/model/ClusterMetricsInputTests.kt b/core/src/test/kotlin/org/opensearch/alerting/core/model/ClusterMetricsInputTests.kt index 2fe831c54..50fa27ee1 100644 --- a/core/src/test/kotlin/org/opensearch/alerting/core/model/ClusterMetricsInputTests.kt +++ b/core/src/test/kotlin/org/opensearch/alerting/core/model/ClusterMetricsInputTests.kt @@ -273,7 +273,8 @@ class ClusterMetricsInputTests { // WHEN + THEN assertFailsWith( - "The provided path parameters contain invalid characters or spaces. Please omit: ${ILLEGAL_PATH_PARAMETER_CHARACTERS.joinToString(" ")}" + "The provided path parameters contain invalid characters or spaces. Please omit: " + + "${ILLEGAL_PATH_PARAMETER_CHARACTERS.joinToString(" ")}" ) { clusterMetricsInput.parsePathParams() }