This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch 20798-aws-cloudtrail in repository https://gitbox.apache.org/repos/asf/camel.git
commit ced33bbe2a15c0a31bd311e8254f0a7e33d5a216 Author: Andrea Cosentino <[email protected]> AuthorDate: Tue Jun 11 10:28:27 2024 +0200 CAMEL-20798: EndpointServiceLocation on components to make it possible to know which remote system Camel connects to to assist for monitoring and observability - AWS Cloudtrail Signed-off-by: Andrea Cosentino <[email protected]> --- .../aws/cloudtrail/CloudtrailEndpoint.java | 30 +++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/components/camel-aws/camel-aws-cloudtrail/src/main/java/org/apache/camel/component/aws/cloudtrail/CloudtrailEndpoint.java b/components/camel-aws/camel-aws-cloudtrail/src/main/java/org/apache/camel/component/aws/cloudtrail/CloudtrailEndpoint.java index c544a7b14ee..41ee638b3b4 100644 --- a/components/camel-aws/camel-aws-cloudtrail/src/main/java/org/apache/camel/component/aws/cloudtrail/CloudtrailEndpoint.java +++ b/components/camel-aws/camel-aws-cloudtrail/src/main/java/org/apache/camel/component/aws/cloudtrail/CloudtrailEndpoint.java @@ -16,11 +16,14 @@ */ package org.apache.camel.component.aws.cloudtrail; +import java.util.Map; + import org.apache.camel.Category; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.component.aws.cloudtrail.client.CloudtrailClientFactory; +import org.apache.camel.spi.EndpointServiceLocation; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.support.ScheduledPollEndpoint; @@ -33,7 +36,7 @@ import software.amazon.awssdk.services.cloudtrail.CloudTrailClient; @UriEndpoint(firstVersion = "3.19.0", scheme = "aws-cloudtrail", title = "AWS Cloudtrail", syntax = "aws-cloudtrail:label", consumerOnly = true, category = { Category.CLOUD, Category.MANAGEMENT, Category.MONITORING }, headersClass = CloudtrailConstants.class) -public class CloudtrailEndpoint extends ScheduledPollEndpoint { +public class CloudtrailEndpoint extends ScheduledPollEndpoint implements EndpointServiceLocation { @UriParam private CloudtrailConfiguration configuration; @@ -88,4 +91,29 @@ public class CloudtrailEndpoint extends ScheduledPollEndpoint { public CloudtrailConfiguration getConfiguration() { return configuration; } + + @Override + public String getServiceUrl() { + if (!configuration.isOverrideEndpoint()) { + if (ObjectHelper.isNotEmpty(configuration.getRegion())) { + return configuration.getRegion(); + } + } else if (ObjectHelper.isNotEmpty(configuration.getUriEndpointOverride())) { + return configuration.getUriEndpointOverride(); + } + return null; + } + + @Override + public String getServiceProtocol() { + return "cloudtrail"; + } + + @Override + public Map<String, String> getServiceMetadata() { + if (configuration.getEventSource() != null) { + return Map.of("source", configuration.getEventSource()); + } + return null; + } }
