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 e69f14779edabd5f446dc556c086b3a8105939b1 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Mon Sep 28 09:03:14 2020 +0200 CAMEL-15561 - Camel-AWS2-Eventbridge: More producer operations - listRuleNamesByTarget --- .../aws2/eventbridge/EventbridgeConstants.java | 1 + .../aws2/eventbridge/EventbridgeOperations.java | 3 +- .../aws2/eventbridge/EventbridgeProducer.java | 38 ++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java index bf7bcfd..deb3df4 100644 --- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java +++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java @@ -26,4 +26,5 @@ public interface EventbridgeConstants { String EVENT_PATTERN = "CamelAwsEventbridgeEventPattern"; String TARGETS = "CamelAwsEventbridgeTargets"; String TARGETS_IDS = "CamelAwsEventbridgeTargetsIds"; + String TARGET_ARN = "CamelAwsEventbridgeTargetArn"; } 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 ae2b6da..0b42b9f 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 @@ -26,5 +26,6 @@ public enum EventbridgeOperations { disableRule, describeRule, listRules, - listTargetsByRule + listTargetsByRule, + listRuleNamesByTarget } 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 055647c..208c017 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 @@ -42,6 +42,8 @@ import software.amazon.awssdk.services.eventbridge.model.DisableRuleRequest; import software.amazon.awssdk.services.eventbridge.model.DisableRuleResponse; import software.amazon.awssdk.services.eventbridge.model.EnableRuleRequest; import software.amazon.awssdk.services.eventbridge.model.EnableRuleResponse; +import software.amazon.awssdk.services.eventbridge.model.ListRuleNamesByTargetRequest; +import software.amazon.awssdk.services.eventbridge.model.ListRuleNamesByTargetResponse; import software.amazon.awssdk.services.eventbridge.model.ListRulesRequest; import software.amazon.awssdk.services.eventbridge.model.ListRulesResponse; import software.amazon.awssdk.services.eventbridge.model.ListTargetsByRuleRequest; @@ -98,6 +100,9 @@ public class EventbridgeProducer extends DefaultProducer { case listTargetsByRule: listTargetsByRule(getEndpoint().getEventbridgeClient(), exchange); break; + case listRuleNamesByTarget: + listRuleNamesByTarget(getEndpoint().getEventbridgeClient(), exchange); + break; default: throw new IllegalArgumentException("Unsupported operation"); } @@ -441,6 +446,39 @@ public class EventbridgeProducer extends DefaultProducer { message.setBody(result); } } + + private void listRuleNamesByTarget(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException { + if (getConfiguration().isPojoRequest()) { + Object payload = exchange.getIn().getMandatoryBody(); + if (payload instanceof ListRuleNamesByTargetRequest) { + ListRuleNamesByTargetResponse result; + try { + result = eventbridgeClient.listRuleNamesByTarget((ListRuleNamesByTargetRequest) payload); + } catch (AwsServiceException ase) { + LOG.trace("List Rule Name by Targets command returned the error code {}", ase.awsErrorDetails().errorCode()); + throw ase; + } + Message message = getMessageForResponse(exchange); + message.setBody(result); + } + } else { + ListRuleNamesByTargetRequest.Builder builder = ListRuleNamesByTargetRequest.builder(); + if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.TARGET_ARN))) { + String targetArn = exchange.getIn().getHeader(EventbridgeConstants.TARGET_ARN, String.class); + builder.targetArn(targetArn); + } + builder.eventBusName(getConfiguration().getEventbusName()); + ListRuleNamesByTargetResponse result; + try { + result = eventbridgeClient.listRuleNamesByTarget(builder.build()); + } catch (AwsServiceException ase) { + LOG.trace("List Rule by Target command returned the error code {}", ase.awsErrorDetails().errorCode()); + throw ase; + } + Message message = getMessageForResponse(exchange); + message.setBody(result); + } + } @Override public EventbridgeEndpoint getEndpoint() {