diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9eb0f3a5d..a1b841301 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,7 +12,7 @@ [versions] # Shared by artifacts released together; bump the whole family at once. asm = "9.6" -awssdk = "2.15.28" +awssdk = "2.55.12" bouncycastle = "1.78.1" byte-buddy = "1.14.13" derby = "10.10.2.0" @@ -21,8 +21,7 @@ hapi = "2.3" hk2 = "2.4.0-b31" httpclient = "4.5.13" itext = "2.1.7" -# do not bump past 2.15.x before reading the note on jackson-core -jackson = "2.14.3" +jackson = "2.18.11" jasper = "8.5.70" jaxb-ri = "2.4.0-b180725.0644" jaxws-ri = "2.3.0.2" @@ -37,7 +36,7 @@ netty-reactive-streams = "2.0.8" openhtmltopdf = "1.0.9" pdfbox = "2.0.24" slf4j = "1.7.30" -swagger = "2.0.10" +swagger = "2.2.41" taglibs = "1.2.5" [libraries] @@ -49,23 +48,37 @@ asm-util = { module = "org.ow2.asm:asm-util", version.ref = "asm" } aws-eventstream = { module = "software.amazon.eventstream:eventstream", version = "1.0.1" } awssdk-annotations = { module = "software.amazon.awssdk:annotations", version.ref = "awssdk" } awssdk-apache-client = { module = "software.amazon.awssdk:apache-client", version.ref = "awssdk" } +awssdk-arns = { module = "software.amazon.awssdk:arns", version.ref = "awssdk" } awssdk-auth = { module = "software.amazon.awssdk:auth", version.ref = "awssdk" } awssdk-aws-core = { module = "software.amazon.awssdk:aws-core", version.ref = "awssdk" } awssdk-aws-json-protocol = { module = "software.amazon.awssdk:aws-json-protocol", version.ref = "awssdk" } awssdk-aws-query-protocol = { module = "software.amazon.awssdk:aws-query-protocol", version.ref = "awssdk" } awssdk-aws-xml-protocol = { module = "software.amazon.awssdk:aws-xml-protocol", version.ref = "awssdk" } +awssdk-checksums = { module = "software.amazon.awssdk:checksums", version.ref = "awssdk" } +awssdk-checksums-spi = { module = "software.amazon.awssdk:checksums-spi", version.ref = "awssdk" } +awssdk-crt-core = { module = "software.amazon.awssdk:crt-core", version.ref = "awssdk" } +awssdk-endpoints-spi = { module = "software.amazon.awssdk:endpoints-spi", version.ref = "awssdk" } +awssdk-http-auth = { module = "software.amazon.awssdk:http-auth", version.ref = "awssdk" } +awssdk-http-auth-aws = { module = "software.amazon.awssdk:http-auth-aws", version.ref = "awssdk" } +awssdk-http-auth-aws-eventstream = { module = "software.amazon.awssdk:http-auth-aws-eventstream", version.ref = "awssdk" } +awssdk-http-auth-spi = { module = "software.amazon.awssdk:http-auth-spi", version.ref = "awssdk" } awssdk-http-client-spi = { module = "software.amazon.awssdk:http-client-spi", version.ref = "awssdk" } +awssdk-identity-spi = { module = "software.amazon.awssdk:identity-spi", version.ref = "awssdk" } +awssdk-json-utils = { module = "software.amazon.awssdk:json-utils", version.ref = "awssdk" } awssdk-kms = { module = "software.amazon.awssdk:kms", version.ref = "awssdk" } awssdk-metrics-spi = { module = "software.amazon.awssdk:metrics-spi", version.ref = "awssdk" } -# AWS SDK module, but not on the awssdk ref: the vendored jar was 2.20.140 -awssdk-netty-nio-client = { module = "software.amazon.awssdk:netty-nio-client", version = "2.20.140" } +awssdk-netty-nio-client = { module = "software.amazon.awssdk:netty-nio-client", version.ref = "awssdk" } awssdk-profiles = { module = "software.amazon.awssdk:profiles", version.ref = "awssdk" } awssdk-protocol-core = { module = "software.amazon.awssdk:protocol-core", version.ref = "awssdk" } awssdk-regions = { module = "software.amazon.awssdk:regions", version.ref = "awssdk" } +awssdk-retries = { module = "software.amazon.awssdk:retries", version.ref = "awssdk" } +awssdk-retries-spi = { module = "software.amazon.awssdk:retries-spi", version.ref = "awssdk" } awssdk-s3 = { module = "software.amazon.awssdk:s3", version.ref = "awssdk" } awssdk-sdk-core = { module = "software.amazon.awssdk:sdk-core", version.ref = "awssdk" } awssdk-sts = { module = "software.amazon.awssdk:sts", version.ref = "awssdk" } +awssdk-third-party-jackson-core = { module = "software.amazon.awssdk:third-party-jackson-core", version.ref = "awssdk" } awssdk-utils = { module = "software.amazon.awssdk:utils", version.ref = "awssdk" } +awssdk-utils-lite = { module = "software.amazon.awssdk:utils-lite", version.ref = "awssdk" } bcpkix-jdk18on = { module = "org.bouncycastle:bcpkix-jdk18on", version.ref = "bouncycastle" } bcprov-jdk18on = { module = "org.bouncycastle:bcprov-jdk18on", version.ref = "bouncycastle" } bcutil-jdk18on = { module = "org.bouncycastle:bcutil-jdk18on", version.ref = "bouncycastle" } @@ -130,14 +143,7 @@ itext = { module = "com.lowagie:itext", version.ref = "itext" } itext-rtf = { module = "com.lowagie:itext-rtf", version.ref = "itext" } j2objc-annotations = { module = "com.google.j2objc:j2objc-annotations", version = "1.3" } jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson" } -# off the jackson ref: bumped alone for a security fix. Realigning the -# family is blocked: databind 2.16 and later remove APIs that -# swagger-core 2.0.10 (BeanDescription.findJsonValueMethod, -# AnnotationIntrospector.findPropertiesToIgnore) and AWS SDK 2.15.28 -# regions (PropertyNamingStrategy.PASCAL_CASE_TO_CAMEL_CASE) still call, -# failing at runtime with NoSuchMethodError/NoSuchFieldError. Upgrade -# those callers first. -jackson-core = { module = "com.fasterxml.jackson.core:jackson-core", version = "2.18.8" } +jackson-core = { module = "com.fasterxml.jackson.core:jackson-core", version.ref = "jackson" } jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" } jackson-dataformat-cbor = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-cbor", version.ref = "jackson" } jackson-dataformat-yaml = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml", version.ref = "jackson" } @@ -470,22 +476,37 @@ server-main = [ "aws-eventstream", "awssdk-annotations", "awssdk-apache-client", + "awssdk-arns", "awssdk-auth", "awssdk-aws-core", "awssdk-aws-json-protocol", "awssdk-aws-query-protocol", "awssdk-aws-xml-protocol", + "awssdk-checksums", + "awssdk-checksums-spi", + "awssdk-crt-core", + "awssdk-endpoints-spi", + "awssdk-http-auth", + "awssdk-http-auth-aws", + "awssdk-http-auth-aws-eventstream", + "awssdk-http-auth-spi", "awssdk-http-client-spi", + "awssdk-identity-spi", + "awssdk-json-utils", "awssdk-kms", "awssdk-metrics-spi", "awssdk-netty-nio-client", "awssdk-profiles", "awssdk-protocol-core", "awssdk-regions", + "awssdk-retries", + "awssdk-retries-spi", "awssdk-s3", "awssdk-sdk-core", "awssdk-sts", + "awssdk-third-party-jackson-core", "awssdk-utils", + "awssdk-utils-lite", "bcpkix-jdk18on", "bcprov-jdk18on", "bcutil-jdk18on", diff --git a/gradle/vendored-layout.json b/gradle/vendored-layout.json index 7bffae2a4..d2de6345d 100644 --- a/gradle/vendored-layout.json +++ b/gradle/vendored-layout.json @@ -359,22 +359,37 @@ "org.yaml:snakeyaml": "jackson", "software.amazon.awssdk:annotations": "aws", "software.amazon.awssdk:apache-client": "aws", + "software.amazon.awssdk:arns": "aws", "software.amazon.awssdk:auth": "aws", "software.amazon.awssdk:aws-core": "aws", "software.amazon.awssdk:aws-json-protocol": "aws", "software.amazon.awssdk:aws-query-protocol": "aws", "software.amazon.awssdk:aws-xml-protocol": "aws", + "software.amazon.awssdk:checksums": "aws", + "software.amazon.awssdk:checksums-spi": "aws", + "software.amazon.awssdk:crt-core": "aws", + "software.amazon.awssdk:endpoints-spi": "aws", + "software.amazon.awssdk:http-auth": "aws", + "software.amazon.awssdk:http-auth-aws": "aws", + "software.amazon.awssdk:http-auth-aws-eventstream": "aws", + "software.amazon.awssdk:http-auth-spi": "aws", "software.amazon.awssdk:http-client-spi": "aws", + "software.amazon.awssdk:identity-spi": "aws", + "software.amazon.awssdk:json-utils": "aws", "software.amazon.awssdk:kms": "aws", "software.amazon.awssdk:metrics-spi": "aws", "software.amazon.awssdk:netty-nio-client": "aws/ext/netty", "software.amazon.awssdk:profiles": "aws", "software.amazon.awssdk:protocol-core": "aws", "software.amazon.awssdk:regions": "aws", + "software.amazon.awssdk:retries": "aws", + "software.amazon.awssdk:retries-spi": "aws", "software.amazon.awssdk:s3": "aws", "software.amazon.awssdk:sdk-core": "aws", "software.amazon.awssdk:sts": "aws", + "software.amazon.awssdk:third-party-jackson-core": "aws", "software.amazon.awssdk:utils": "aws", + "software.amazon.awssdk:utils-lite": "aws", "software.amazon.eventstream:eventstream": "aws", "xpp3:xpp3": "" }, diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index a55f913c9..b18d4496d 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -42,11 +42,6 @@ - - - - - @@ -57,14 +52,9 @@ - - - - - - - - + + + @@ -72,14 +62,9 @@ - - - - - - - - + + + @@ -97,11 +82,6 @@ - - - - - @@ -117,12 +97,12 @@ - - - + + + - - + + @@ -133,12 +113,12 @@ - - - + + + - - + + @@ -149,12 +129,12 @@ - - - + + + - - + + @@ -165,20 +145,20 @@ - - - + + + - - + + - - - + + + - - + + @@ -189,14 +169,14 @@ - - - + + + - - - + + + @@ -204,12 +184,12 @@ - - - + + + - - + + @@ -233,9 +213,9 @@ - - - + + + @@ -1037,57 +1017,57 @@ - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + @@ -2100,6 +2080,11 @@ + + + + + @@ -2631,6 +2616,14 @@ + + + + + + + + @@ -3097,11 +3090,6 @@ - - - - - @@ -3201,193 +3189,303 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - - + + + - - + + + + + + + - - - + + + + + + - - + + + + - - - + + + - - + + - - - + + + - - + + - - - + + + - - + + - - - + + + + + + - - - + + + + + + - - - + + + - - + + - - - + + + + + + - - - + + + - - - + + + + + + - - - + + + - - + + - - - + + + + + + - - - + + + + + + - - - + + + - - + + - - - + + + - - + + - - - + + + + + + - - + + + + - - - + + + - - + + - - - + + + - - + + - - - + + + + + + - - - + + + - - + + - - - + + + - - + + + + + + + - - - + + + - - + + - - - + + + + + + + + + + + - - - + + + - - + + - - - + + + - - + + diff --git a/server/src/main/java/com/mirth/connect/client/core/api/servlets/AlertServletInterface.java b/server/src/main/java/com/mirth/connect/client/core/api/servlets/AlertServletInterface.java index ae5742d90..0d6d03754 100644 --- a/server/src/main/java/com/mirth/connect/client/core/api/servlets/AlertServletInterface.java +++ b/server/src/main/java/com/mirth/connect/client/core/api/servlets/AlertServletInterface.java @@ -117,7 +117,7 @@ public List getAlertsPost( @POST @Path("/{alertId}/_getInfo") - @Operation(summary = "Returns an AlertInfo object containing the alert model, alert protocol options, and any updated channel summaries.") + @Operation(operationId = "getAlertInfo", summary = "Returns an AlertInfo object containing the alert model, alert protocol options, and any updated channel summaries.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "alert_info", ref = "../apiexamples/alert_info_xml") }), @@ -136,7 +136,7 @@ public AlertInfo getAlertInfo(// @formatter:off @POST @Path("/_getInfo") - @Operation(summary = "Returns an AlertInfo object containing alert protocol options and any updated channel summaries.") + @Operation(operationId = "getAlertInfo_1", summary = "Returns an AlertInfo object containing alert protocol options and any updated channel summaries.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "alert_info", ref = "../apiexamples/alert_info_xml") }), diff --git a/server/src/main/java/com/mirth/connect/client/core/api/servlets/ChannelServletInterface.java b/server/src/main/java/com/mirth/connect/client/core/api/servlets/ChannelServletInterface.java index fa32cb3e4..e90b4a5da 100644 --- a/server/src/main/java/com/mirth/connect/client/core/api/servlets/ChannelServletInterface.java +++ b/server/src/main/java/com/mirth/connect/client/core/api/servlets/ChannelServletInterface.java @@ -189,7 +189,7 @@ public List getChannelSummary(// @formatter:off @POST @Path("/_setEnabled") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) - @Operation(summary = "Enables/disables the specified channels. " + SWAGGER_ARRAY_DISCLAIMER) + @Operation(operationId = "setChannelEnabled", summary = "Enables/disables the specified channels. " + SWAGGER_ARRAY_DISCLAIMER) @MirthOperation(name = "setChannelEnabled", display = "Set channel enabled flag", permission = Permissions.CHANNELS_MANAGE) public void setChannelEnabled(// @formatter:off @Param("channelIds") @Parameter(description = "The IDs of the channels to enable/disable. If absent, all channels will be enabled/disabled.") @FormParam("channelId") Set channelIds, @@ -199,7 +199,7 @@ public void setChannelEnabled(// @formatter:off @POST @Path("/{channelId}/enabled/{enabled}") - @Operation(summary = "Enables/disables the specified channel.") + @Operation(operationId = "setChannelEnabled_1", summary = "Enables/disables the specified channel.") @MirthOperation(name = "setChannelEnabled", display = "Set channel enabled flag", permission = Permissions.CHANNELS_MANAGE) public void setChannelEnabled(// @formatter:off @Param("channelId") @Parameter(description = "The ID of the channel.", required = true) @PathParam("channelId") String channelId, @@ -210,7 +210,7 @@ public void setChannelEnabled(// @formatter:off @POST @Path("/_setInitialState") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) - @Operation(summary = "Sets the initial state for the specified channels. " + SWAGGER_ARRAY_DISCLAIMER) + @Operation(operationId = "setChannelInitialState", summary = "Sets the initial state for the specified channels. " + SWAGGER_ARRAY_DISCLAIMER) @MirthOperation(name = "setChannelInitialState", display = "Set channel initial state", permission = Permissions.CHANNELS_MANAGE) public void setChannelInitialState(// @formatter:off @Param("channelIds") @Parameter(description = "The IDs of the channels to modify initial states on. If absent, the initial state will be set on all channels.") @FormParam("channelId") Set channelIds, @@ -222,7 +222,7 @@ public void setChannelInitialState(// @formatter:off @POST @Path("/{channelId}/initialState/{initialState}") - @Operation(summary = "Sets the initial state for a single channel.") + @Operation(operationId = "setChannelInitialState_1", summary = "Sets the initial state for a single channel.") @MirthOperation(name = "setChannelInitialState", display = "Set channel initial state", permission = Permissions.CHANNELS_MANAGE) public void setChannelInitialState(// @formatter:off @Param("channelId") @Parameter(description = "The ID of the channel.", required = true) @PathParam("channelId") String channelId, diff --git a/server/src/main/java/com/mirth/connect/client/core/api/servlets/ChannelStatisticsServletInterface.java b/server/src/main/java/com/mirth/connect/client/core/api/servlets/ChannelStatisticsServletInterface.java index a6ba58b07..05729c197 100644 --- a/server/src/main/java/com/mirth/connect/client/core/api/servlets/ChannelStatisticsServletInterface.java +++ b/server/src/main/java/com/mirth/connect/client/core/api/servlets/ChannelStatisticsServletInterface.java @@ -47,7 +47,7 @@ public interface ChannelStatisticsServletInterface extends BaseServletInterface @GET @Path("/statistics") - @Operation(summary = "Returns the Statistics for all channels.") + @Operation(operationId = "getStatistics", summary = "Returns the Statistics for all channels.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "channel_statistics_list", ref = "../apiexamples/channel_statistics_list_xml") }), @Content(mediaType = MediaType.APPLICATION_JSON, examples = { @@ -80,7 +80,7 @@ public List getStatisticsPost(//@formatter:off @GET @Path("/{channelId}/statistics") - @Operation(summary = "Returns the Statistics for the channel with the specified id.") + @Operation(operationId = "getStatistics_1", summary = "Returns the Statistics for the channel with the specified id.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "channel_statistics", ref = "../apiexamples/channel_statistics_xml") }), @Content(mediaType = MediaType.APPLICATION_JSON, examples = { diff --git a/server/src/main/java/com/mirth/connect/client/core/api/servlets/EventServletInterface.java b/server/src/main/java/com/mirth/connect/client/core/api/servlets/EventServletInterface.java index 361b9ad5d..ec3a4f1d5 100644 --- a/server/src/main/java/com/mirth/connect/client/core/api/servlets/EventServletInterface.java +++ b/server/src/main/java/com/mirth/connect/client/core/api/servlets/EventServletInterface.java @@ -66,7 +66,7 @@ public interface EventServletInterface extends BaseServletInterface { @POST @Path("/_search") - @Operation(summary = "Search for events by specific filter criteria.") + @Operation(operationId = "getEvents_1", summary = "Search for events by specific filter criteria.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "serverEventList", ref = "../apiexamples/server_event_list_xml") }), @Content(mediaType = MediaType.APPLICATION_JSON, examples = { @@ -84,7 +84,7 @@ public List getEvents(// @formatter:off @GET @Path("/") - @Operation(summary = "Search for events by specific filter criteria.") + @Operation(operationId = "getEvents", summary = "Search for events by specific filter criteria.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "serverEventList", ref = "../apiexamples/server_event_list_xml") }), @Content(mediaType = MediaType.APPLICATION_JSON, examples = { @@ -108,7 +108,7 @@ public List getEvents(// @formatter:off @POST @Path("/count/_search") - @Operation(summary = "Count number for events by specific filter criteria.") + @Operation(operationId = "getEventCount_1", summary = "Count number for events by specific filter criteria.") @MirthOperation(name = "getEventCount", display = "Get events results count", permission = Permissions.EVENTS_VIEW, auditable = false, abortable = true) @Produces({ MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN }) public Long getEventCount(@Param("filter") @RequestBody(description = "The EventFilter object to use to query events by.", required = true, content = { @@ -119,7 +119,7 @@ public Long getEventCount(@Param("filter") @RequestBody(description = "The Event @GET @Path("/count") - @Operation(summary = "Count number for events by specific filter criteria.") + @Operation(operationId = "getEventCount", summary = "Count number for events by specific filter criteria.") @MirthOperation(name = "getEventCount", display = "Get events results count", permission = Permissions.EVENTS_VIEW, auditable = false, abortable = true) @Produces({ MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN }) public Long getEventCount(// @formatter:off diff --git a/server/src/main/java/com/mirth/connect/client/core/api/servlets/MessageServletInterface.java b/server/src/main/java/com/mirth/connect/client/core/api/servlets/MessageServletInterface.java index f8f88a552..7aaa276b1 100644 --- a/server/src/main/java/com/mirth/connect/client/core/api/servlets/MessageServletInterface.java +++ b/server/src/main/java/com/mirth/connect/client/core/api/servlets/MessageServletInterface.java @@ -62,7 +62,7 @@ public interface MessageServletInterface extends BaseServletInterface { @POST @Path("/{channelId}/messages") @Consumes(MediaType.TEXT_PLAIN) - @Operation(summary = "Processes a new message through a channel.") + @Operation(operationId = "processMessage", summary = "Processes a new message through a channel.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "long", ref = "../apiexamples/long_xml") }), @@ -81,7 +81,7 @@ public Long processMessage(// @formatter:off @POST @Path("/{channelId}/messagesWithObj") - @Operation(summary = "Processes a new message through a channel, using the RawMessage object.") + @Operation(operationId = "processMessage_1", summary = "Processes a new message through a channel, using the RawMessage object.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "long", ref = "../apiexamples/long_xml") }), @@ -255,7 +255,7 @@ public List getMessages(// @formatter:off @POST @Path("/{channelId}/messages/count/_search") - @Operation(summary = "Count number for messages by specific filter criteria.") + @Operation(operationId = "getMessageCount_1", summary = "Count number for messages by specific filter criteria.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "messageCount", ref = "../apiexamples/long_xml") }), @@ -273,7 +273,7 @@ public Long getMessageCount(// @formatter:off @GET @Path("/{channelId}/messages/count") - @Operation(summary="Count number for messages by specific filter criteria.") + @Operation(operationId = "getMessageCount", summary="Count number for messages by specific filter criteria.") @ApiResponse(content = { @Content(mediaType = MediaType.APPLICATION_XML, examples = { @ExampleObject(name = "messageCount", ref = "../apiexamples/long_xml") }), @@ -322,7 +322,7 @@ public Long getMessageCount(// @formatter:off @POST @Path("/{channelId}/messages/_reprocessWithFilter") - @Operation(summary = "Reprocesses messages through a channel filtering with a MessageFilter.") + @Operation(operationId = "reprocessMessages_1", summary = "Reprocesses messages through a channel filtering with a MessageFilter.") @MirthOperation(name = "reprocessMessages", display = "Reprocess messages", permission = Permissions.MESSAGES_REPROCESS_RESULTS, type = ExecuteType.ASYNC) public void reprocessMessages(// @formatter:off @Param("channelId") @Parameter(description = "The ID of the channel.", required = true) @PathParam("channelId") String channelId, @@ -339,7 +339,7 @@ public void reprocessMessages(// @formatter:off @POST @Path("/{channelId}/messages/_reprocess") @Consumes("") - @Operation(summary = "Reprocesses messages through a channel by specific filter criteria.") + @Operation(operationId = "reprocessMessages", summary = "Reprocesses messages through a channel by specific filter criteria.") @MirthOperation(name = "reprocessMessages", display = "Reprocess messages", permission = Permissions.MESSAGES_REPROCESS_RESULTS, type = ExecuteType.ASYNC) public void reprocessMessages(// @formatter:off @Param("channelId") @Parameter(description = "The ID of the channel.", required = true) @PathParam("channelId") String channelId, @@ -467,7 +467,7 @@ public void removeMessage(// @formatter:off @DELETE @Path("/{channelId}/messages/_removeAll") - @Operation(summary = "Removes all messages for the specified channel.") + @Operation(operationId = "removeAllMessages_1", summary = "Removes all messages for the specified channel.") @MirthOperation(name = "removeAllMessages", display = "Remove all messages", permission = Permissions.MESSAGES_REMOVE_ALL) public void removeAllMessages(// @formatter:off @Param("channelId") @Parameter(description = "The ID of the channel.", required = true) @PathParam("channelId") String channelId, @@ -477,7 +477,7 @@ public void removeAllMessages(// @formatter:off @DELETE @Path("/_removeAllMessages") - @Operation(summary = "Removes all messages for multiple specified channels.") + @Operation(operationId = "removeAllMessages", summary = "Removes all messages for multiple specified channels.") @MirthOperation(name = "removeAllMessages", display = "Remove all messages", permission = Permissions.MESSAGES_REMOVE_ALL) public void removeAllMessages(// @formatter:off @Param("channelIds") @Parameter(description = "The IDs of the channels.", required = true) @QueryParam("channelId") Set channelIds,