This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 00f758a3a84cf71a32468b356b002d1e68b74743 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Mon Sep 28 08:13:30 2020 +0200 CAMEL-15561 - Camel-AWS2-Eventbridge: More producer operations - listTargetsByRule --- .../aws2/eventbridge/EventbridgeOperations.java | 3 +- .../aws2/eventbridge/EventbridgeProducer.java | 38 ++++++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java index 9c923c6..ae2b6da 100644 --- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java +++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeOperations.java @@ -25,5 +25,6 @@ public enum EventbridgeOperations { enableRule, disableRule, describeRule, - listRules + listRules, + listTargetsByRule } diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java index cf677d2..0c17ca8 100644 --- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java +++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java @@ -44,6 +44,8 @@ import software.amazon.awssdk.services.eventbridge.model.EnableRuleRequest; import software.amazon.awssdk.services.eventbridge.model.EnableRuleResponse; import software.amazon.awssdk.services.eventbridge.model.ListRulesRequest; import software.amazon.awssdk.services.eventbridge.model.ListRulesResponse; +import software.amazon.awssdk.services.eventbridge.model.ListTargetsByRuleRequest; +import software.amazon.awssdk.services.eventbridge.model.ListTargetsByRuleResponse; import software.amazon.awssdk.services.eventbridge.model.PutRuleRequest; import software.amazon.awssdk.services.eventbridge.model.PutRuleResponse; import software.amazon.awssdk.services.eventbridge.model.PutTargetsRequest; @@ -93,6 +95,9 @@ public class EventbridgeProducer extends DefaultProducer { case describeRule: describeRule(getEndpoint().getEventbridgeClient(), exchange); break; + case listTargetsByRule: + listTargetsByRule(getEndpoint().getEventbridgeClient(), exchange); + break; default: throw new IllegalArgumentException("Unsupported operation"); } @@ -403,6 +408,39 @@ public class EventbridgeProducer extends DefaultProducer { message.setBody(result); } } + + private void listTargetsByRule(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException { + if (getConfiguration().isPojoRequest()) { + Object payload = exchange.getIn().getMandatoryBody(); + if (payload instanceof ListTargetsByRuleRequest) { + ListTargetsByRuleResponse result; + try { + result = eventbridgeClient.listTargetsByRule((ListTargetsByRuleRequest) payload); + } catch (AwsServiceException ase) { + LOG.trace("List Targets by Rule command returned the error code {}", ase.awsErrorDetails().errorCode()); + throw ase; + } + Message message = getMessageForResponse(exchange); + message.setBody(result); + } + } else { + ListTargetsByRuleRequest.Builder builder = ListTargetsByRuleRequest.builder(); + if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) { + String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class); + builder.rule(ruleName); + } + builder.eventBusName(getConfiguration().getEventbusName()); + ListTargetsByRuleResponse result; + try { + result = eventbridgeClient.listTargetsByRule(builder.build()); + } catch (AwsServiceException ase) { + LOG.trace("List Targets by Rule command returned the error code {}", ase.awsErrorDetails().errorCode()); + throw ase; + } + Message message = getMessageForResponse(exchange); + message.setBody(result); + } + } @Override public EventbridgeEndpoint getEndpoint() {