You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/09/21 16:30:33 UTC

[camel] branch master updated (5b97772 -> ea71b2c)

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from 5b97772  Polished
     new 58a4137  CAMEL-15375 - Camel-AWS2-Eventbridge: First spike
     new 6fc2e56  CAMEL-15375 - Camel-AWS2-Eventbridge: More work
     new 6b9dd07  CAMEL-15375 - Camel-AWS2-Eventbridge: Regen
     new 28ca63e  CAMEL-15375 - Camel-AWS2-Eventbridge: Fixed CS
     new c37e89b  CAMEL-15375 - Camel-AWS2-Eventbridge: Support loading with ResourceHelper
     new a71dc7c  CAMEL-15375 - Camel-AWS2-Eventbridge: Give Priority to loading from file
     new 41d759f  CAMEL-15375 - Camel-AWS2-Eventbridge: WIP
     new 82ae66c  CAMEL-15375 - Camel-AWS2-Eventbridge: First part of documentation
     new 640908f  CAMEL-15375 - Camel-AWS2-Eventbridge: Added component to kit
     new ea71b2c  CAMEL-15375 - Camel-AWS2-Eventbridge: Full Rebuild

The 10 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 apache-camel/src/main/descriptors/common-bin.xml   |   1 +
 bom/camel-bom/pom.xml                              |   5 +
 .../org/apache/camel/catalog/components.properties |   1 +
 .../camel/catalog/components/aws2-eventbridge.json |  59 +++
 .../org/apache/camel/catalog/docs.properties       |   1 +
 .../catalog/docs/aws2-eventbridge-component.adoc   | 130 ++++++
 components/camel-aws2-eventbridge/pom.xml          |  70 +++
 .../EventbridgeComponentConfigurer.java            | 116 +++++
 .../eventbridge/EventbridgeEndpointConfigurer.java | 109 +++++
 .../services/org/apache/camel/component.properties |   7 +
 .../org/apache/camel/component/aws2-eventbridge    |   2 +
 .../camel/configurer/aws2-eventbridge-component    |   2 +
 .../camel/configurer/aws2-eventbridge-endpoint     |   2 +
 .../aws2/eventbridge/aws2-eventbridge.json         |  59 +++
 .../src/main/docs/aws2-eventbridge-component.adoc  | 130 ++++++
 .../aws2/eventbridge/EvenbridgeOperations.java     |  23 +
 .../aws2/eventbridge/EventbridgeComponent.java     |  95 +++++
 .../EventbridgeComponentVerifierExtension.java     |  96 +++++
 .../aws2/eventbridge/EventbridgeConfiguration.java | 204 +++++++++
 .../aws2/eventbridge/EventbridgeConstants.java     |  27 ++
 .../aws2/eventbridge/EventbridgeEndpoint.java      | 134 ++++++
 .../aws2/eventbridge/EventbridgeProducer.java      | 178 ++++++++
 .../EventbridgeComponentConfigurationTest.java     |  72 ++++
 .../EventbridgePutRuleIntegrationTest.java         | 100 +++++
 .../src/test/resources/eventpattern.json           |   5 +
 .../src/test/resources/log4j2.properties           |   0
 components/pom.xml                                 |   3 +-
 core/camel-allcomponents/pom.xml                   |   4 +
 .../component/ComponentsBuilderFactory.java        |  11 +
 .../Aws2EventbridgeComponentBuilderFactory.java    | 300 +++++++++++++
 .../src/generated/resources/metadata.json          |  22 +
 .../builder/endpoint/EndpointBuilderFactory.java   |   1 +
 .../camel/builder/endpoint/EndpointBuilders.java   |   1 +
 .../builder/endpoint/StaticEndpointBuilders.java   |  41 ++
 .../dsl/EventbridgeEndpointBuilderFactory.java     | 468 +++++++++++++++++++++
 docs/components/modules/ROOT/nav.adoc              |   1 +
 .../ROOT/pages/aws2-eventbridge-component.adoc     | 132 ++++++
 parent/pom.xml                                     |   5 +
 38 files changed, 2616 insertions(+), 1 deletion(-)
 create mode 100644 catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-eventbridge.json
 create mode 100644 catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
 create mode 100644 components/camel-aws2-eventbridge/pom.xml
 create mode 100644 components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
 create mode 100644 components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
 create mode 100644 components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component.properties
 create mode 100644 components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-eventbridge
 create mode 100644 components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-component
 create mode 100644 components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-endpoint
 create mode 100644 components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
 create mode 100644 components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
 create mode 100644 components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
 create mode 100644 components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponent.java
 create mode 100644 components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentVerifierExtension.java
 create mode 100644 components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
 create mode 100644 components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
 create mode 100644 components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpoint.java
 create mode 100644 components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java
 create mode 100644 components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurationTest.java
 create mode 100644 components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
 create mode 100644 components/camel-aws2-eventbridge/src/test/resources/eventpattern.json
 copy components/{camel-aws2-sts => camel-aws2-eventbridge}/src/test/resources/log4j2.properties (100%)
 create mode 100644 core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
 create mode 100644 core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
 create mode 100644 docs/components/modules/ROOT/pages/aws2-eventbridge-component.adoc


[camel] 01/10: CAMEL-15375 - Camel-AWS2-Eventbridge: First spike

Posted by ac...@apache.org.
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 58a41376b74dc7cff4418734969a5f6eeaf50527
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 09:36:59 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: First spike
---
 components/camel-aws2-eventbridge/pom.xml          |  66 +++++++
 .../aws2/sts/STS2ComponentConfigurer.java          | 111 ++++++++++++
 .../component/aws2/sts/STS2EndpointConfigurer.java | 104 +++++++++++
 .../services/org/apache/camel/component.properties |   7 +
 .../services/org/apache/camel/component/aws2-sts   |   2 +
 .../org/apache/camel/configurer/aws2-sts-component |   2 +
 .../org/apache/camel/configurer/aws2-sts-endpoint  |   2 +
 .../apache/camel/component/aws2/sts/aws2-sts.json  |  57 ++++++
 .../src/main/docs/aws2-sts-component.adoc          | 201 +++++++++++++++++++++
 .../component/aws2/sts/EvenbridgeOperations.java   |  22 +++
 .../component/aws2/sts/EventbridgeComponent.java   |  95 ++++++++++
 .../sts/EventbridgeComponentVerifierExtension.java |  96 ++++++++++
 .../aws2/sts/EventbridgeConfiguration.java         | 192 ++++++++++++++++++++
 .../component/aws2/sts/EventbridgeConstants.java   |  25 +++
 .../component/aws2/sts/EventbridgeEndpoint.java    | 133 ++++++++++++++
 .../component/aws2/sts/EventbridgeProducer.java    | 120 ++++++++++++
 .../component/aws2/sts/AmazonSTSClientMock.java    |  64 +++++++
 .../aws2/sts/STS2ComponentClientRegistryTest.java  |  71 ++++++++
 .../aws2/sts/STS2ComponentConfigurationTest.java   |  71 ++++++++
 .../sts/STS2ComponentVerifierExtensionTest.java    |  94 ++++++++++
 .../component/aws2/sts/STS2ProducerSpringTest.java |  94 ++++++++++
 .../camel/component/aws2/sts/STS2ProducerTest.java | 109 +++++++++++
 .../src/test/resources/log4j2.properties           |  28 +++
 .../aws2/sts/STSComponentSpringTest-context.xml    |  45 +++++
 24 files changed, 1811 insertions(+)

diff --git a/components/camel-aws2-eventbridge/pom.xml b/components/camel-aws2-eventbridge/pom.xml
new file mode 100644
index 0000000..9bf0e28
--- /dev/null
+++ b/components/camel-aws2-eventbridge/pom.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>components</artifactId>
+        <version>3.6.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>camel-aws2-eventbridge</artifactId>
+    <packaging>jar</packaging>
+
+    <name>Camel :: AWS2 Eventbridge</name>
+    <description>A Camel Amazon Eventbridge Web Service Component Version 2</description>
+
+    <properties>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-support</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>eventbridge</artifactId>
+            <version>${aws-java-sdk2-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>software.amazon.awssdk</groupId>
+            <artifactId>apache-client</artifactId>
+            <version>${aws-java-sdk2-version}</version>
+        </dependency>
+
+        <!-- for testing -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-test-spring-junit5</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-slf4j-impl</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurer.java b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurer.java
new file mode 100644
index 0000000..8b0b46a
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurer.java
@@ -0,0 +1,111 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.aws2.sts;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class STS2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    private org.apache.camel.component.aws2.sts.EventbridgeConfiguration getOrCreateConfiguration(EventbridgeComponent target) {
+        if (target.getConfiguration() == null) {
+            target.setConfiguration(new org.apache.camel.component.aws2.sts.EventbridgeConfiguration());
+        }
+        return target.getConfiguration();
+    }
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        EventbridgeComponent target = (EventbridgeComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesskey":
+        case "accessKey": getOrCreateConfiguration(target).setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "autodiscoverclient":
+        case "autoDiscoverClient": getOrCreateConfiguration(target).setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
+        case "basicpropertybinding":
+        case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.sts.EventbridgeConfiguration.class, value)); return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.sts.EvenbridgeOperations.class, value)); return true;
+        case "pojorequest":
+        case "pojoRequest": getOrCreateConfiguration(target).setPojoRequest(property(camelContext, boolean.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": getOrCreateConfiguration(target).setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": getOrCreateConfiguration(target).setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
+        case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true;
+        case "secretkey":
+        case "secretKey": getOrCreateConfiguration(target).setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "stsclient":
+        case "stsClient": getOrCreateConfiguration(target).setStsClient(property(camelContext, software.amazon.awssdk.services.sts.StsClient.class, value)); return true;
+        case "trustallcertificates":
+        case "trustAllCertificates": getOrCreateConfiguration(target).setTrustAllCertificates(property(camelContext, boolean.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("accessKey", java.lang.String.class);
+        answer.put("autoDiscoverClient", boolean.class);
+        answer.put("basicPropertyBinding", boolean.class);
+        answer.put("configuration", org.apache.camel.component.aws2.sts.EventbridgeConfiguration.class);
+        answer.put("lazyStartProducer", boolean.class);
+        answer.put("operation", org.apache.camel.component.aws2.sts.EvenbridgeOperations.class);
+        answer.put("pojoRequest", boolean.class);
+        answer.put("proxyHost", java.lang.String.class);
+        answer.put("proxyPort", java.lang.Integer.class);
+        answer.put("proxyProtocol", software.amazon.awssdk.core.Protocol.class);
+        answer.put("region", java.lang.String.class);
+        answer.put("secretKey", java.lang.String.class);
+        answer.put("stsClient", software.amazon.awssdk.services.sts.StsClient.class);
+        answer.put("trustAllCertificates", boolean.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        EventbridgeComponent target = (EventbridgeComponent) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesskey":
+        case "accessKey": return getOrCreateConfiguration(target).getAccessKey();
+        case "autodiscoverclient":
+        case "autoDiscoverClient": return getOrCreateConfiguration(target).isAutoDiscoverClient();
+        case "basicpropertybinding":
+        case "basicPropertyBinding": return target.isBasicPropertyBinding();
+        case "configuration": return target.getConfiguration();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        case "operation": return getOrCreateConfiguration(target).getOperation();
+        case "pojorequest":
+        case "pojoRequest": return getOrCreateConfiguration(target).isPojoRequest();
+        case "proxyhost":
+        case "proxyHost": return getOrCreateConfiguration(target).getProxyHost();
+        case "proxyport":
+        case "proxyPort": return getOrCreateConfiguration(target).getProxyPort();
+        case "proxyprotocol":
+        case "proxyProtocol": return getOrCreateConfiguration(target).getProxyProtocol();
+        case "region": return getOrCreateConfiguration(target).getRegion();
+        case "secretkey":
+        case "secretKey": return getOrCreateConfiguration(target).getSecretKey();
+        case "stsclient":
+        case "stsClient": return getOrCreateConfiguration(target).getStsClient();
+        case "trustallcertificates":
+        case "trustAllCertificates": return getOrCreateConfiguration(target).isTrustAllCertificates();
+        default: return null;
+        }
+    }
+}
+
diff --git a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2EndpointConfigurer.java b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2EndpointConfigurer.java
new file mode 100644
index 0000000..71609fd
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2EndpointConfigurer.java
@@ -0,0 +1,104 @@
+/* Generated by camel build tools - do NOT edit this file! */
+package org.apache.camel.component.aws2.sts;
+
+import java.util.Map;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.spi.GeneratedPropertyConfigurer;
+import org.apache.camel.spi.PropertyConfigurerGetter;
+import org.apache.camel.util.CaseInsensitiveMap;
+import org.apache.camel.support.component.PropertyConfigurerSupport;
+
+/**
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@SuppressWarnings("unchecked")
+public class STS2EndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+
+    @Override
+    public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
+        EventbridgeEndpoint target = (EventbridgeEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesskey":
+        case "accessKey": target.getConfiguration().setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "autodiscoverclient":
+        case "autoDiscoverClient": target.getConfiguration().setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
+        case "basicpropertybinding":
+        case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "lazystartproducer":
+        case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+        case "operation": target.getConfiguration().setOperation(property(camelContext, org.apache.camel.component.aws2.sts.EvenbridgeOperations.class, value)); return true;
+        case "pojorequest":
+        case "pojoRequest": target.getConfiguration().setPojoRequest(property(camelContext, boolean.class, value)); return true;
+        case "proxyhost":
+        case "proxyHost": target.getConfiguration().setProxyHost(property(camelContext, java.lang.String.class, value)); return true;
+        case "proxyport":
+        case "proxyPort": target.getConfiguration().setProxyPort(property(camelContext, java.lang.Integer.class, value)); return true;
+        case "proxyprotocol":
+        case "proxyProtocol": target.getConfiguration().setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true;
+        case "region": target.getConfiguration().setRegion(property(camelContext, java.lang.String.class, value)); return true;
+        case "secretkey":
+        case "secretKey": target.getConfiguration().setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "stsclient":
+        case "stsClient": target.getConfiguration().setStsClient(property(camelContext, software.amazon.awssdk.services.sts.StsClient.class, value)); return true;
+        case "synchronous": target.setSynchronous(property(camelContext, boolean.class, value)); return true;
+        case "trustallcertificates":
+        case "trustAllCertificates": target.getConfiguration().setTrustAllCertificates(property(camelContext, boolean.class, value)); return true;
+        default: return false;
+        }
+    }
+
+    @Override
+    public Map<String, Object> getAllOptions(Object target) {
+        Map<String, Object> answer = new CaseInsensitiveMap();
+        answer.put("accessKey", java.lang.String.class);
+        answer.put("autoDiscoverClient", boolean.class);
+        answer.put("basicPropertyBinding", boolean.class);
+        answer.put("lazyStartProducer", boolean.class);
+        answer.put("operation", org.apache.camel.component.aws2.sts.EvenbridgeOperations.class);
+        answer.put("pojoRequest", boolean.class);
+        answer.put("proxyHost", java.lang.String.class);
+        answer.put("proxyPort", java.lang.Integer.class);
+        answer.put("proxyProtocol", software.amazon.awssdk.core.Protocol.class);
+        answer.put("region", java.lang.String.class);
+        answer.put("secretKey", java.lang.String.class);
+        answer.put("stsClient", software.amazon.awssdk.services.sts.StsClient.class);
+        answer.put("synchronous", boolean.class);
+        answer.put("trustAllCertificates", boolean.class);
+        return answer;
+    }
+
+    @Override
+    public Object getOptionValue(Object obj, String name, boolean ignoreCase) {
+        EventbridgeEndpoint target = (EventbridgeEndpoint) obj;
+        switch (ignoreCase ? name.toLowerCase() : name) {
+        case "accesskey":
+        case "accessKey": return target.getConfiguration().getAccessKey();
+        case "autodiscoverclient":
+        case "autoDiscoverClient": return target.getConfiguration().isAutoDiscoverClient();
+        case "basicpropertybinding":
+        case "basicPropertyBinding": return target.isBasicPropertyBinding();
+        case "lazystartproducer":
+        case "lazyStartProducer": return target.isLazyStartProducer();
+        case "operation": return target.getConfiguration().getOperation();
+        case "pojorequest":
+        case "pojoRequest": return target.getConfiguration().isPojoRequest();
+        case "proxyhost":
+        case "proxyHost": return target.getConfiguration().getProxyHost();
+        case "proxyport":
+        case "proxyPort": return target.getConfiguration().getProxyPort();
+        case "proxyprotocol":
+        case "proxyProtocol": return target.getConfiguration().getProxyProtocol();
+        case "region": return target.getConfiguration().getRegion();
+        case "secretkey":
+        case "secretKey": return target.getConfiguration().getSecretKey();
+        case "stsclient":
+        case "stsClient": return target.getConfiguration().getStsClient();
+        case "synchronous": return target.isSynchronous();
+        case "trustallcertificates":
+        case "trustAllCertificates": return target.getConfiguration().isTrustAllCertificates();
+        default: return null;
+        }
+    }
+}
+
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component.properties
new file mode 100644
index 0000000..f52f268
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -0,0 +1,7 @@
+# Generated by camel build tools - do NOT edit this file!
+components=aws2-sts
+groupId=org.apache.camel
+artifactId=camel-aws2-sts
+version=3.6.0-SNAPSHOT
+projectName=Camel :: AWS2 STS
+projectDescription=A Camel Amazon STS Web Service Component Version 2
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-sts b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-sts
new file mode 100644
index 0000000..4d0c549
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-sts
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.sts.STS2Component
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-component b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-component
new file mode 100644
index 0000000..da92f0a
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-component
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.sts.STS2ComponentConfigurer
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-endpoint b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-endpoint
new file mode 100644
index 0000000..ccdf76f
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.sts.STS2EndpointConfigurer
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-sts.json b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-sts.json
new file mode 100644
index 0000000..e5f9498
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-sts.json
@@ -0,0 +1,57 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-sts",
+    "title": "AWS 2 Security Token Service (STS)",
+    "description": "Manage AWS STS cluster instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.5.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.sts.STS2Component",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-sts",
+    "version": "3.6.0-SNAPSHOT",
+    "scheme": "aws2-sts",
+    "extendsScheme": "",
+    "syntax": "aws2-sts:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the regist [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Configuration", "deprecated": false, "secret": false, "description": "Component configuration" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Operations", "enum": [ "assumeRole", "getSessionToken", "getFederationToken" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description" [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the STS client" },
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of t [...]
+    "stsClient": { "kind": "property", "displayName": "Sts Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sts.StsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS STS as client" },
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Logical name" },
+    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the regis [...]
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the  [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Operations", "enum": [ "assumeRole", "getSessionToken", "getFederationToken" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the STS client" },
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of  [...]
+    "stsClient": { "kind": "parameter", "displayName": "Sts Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sts.StsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS STS as client" },
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc b/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc
new file mode 100644
index 0000000..f05455e
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc
@@ -0,0 +1,201 @@
+[[aws2-sts-component]]
+= AWS 2 Security Token Service (STS) Component
+:docTitle: AWS 2 Security Token Service (STS)
+:artifactId: camel-aws2-sts
+:description: Manage AWS STS cluster instances using AWS SDK version 2.x.
+:since: 3.5
+:supportLevel: Preview
+:component-header: Only producer is supported
+//Manually maintained attributes
+:group: AWS 2
+
+*Since Camel {since}*
+
+*{component-header}*
+
+The AWS2 STS component supports assumeRole operation.
+https://aws.amazon.com/sts/[AWS STS].
+
+Prerequisites
+
+You must have a valid Amazon Web Services developer account, and be
+signed up to use Amazon STS. More information is available at
+https://aws.amazon.com/sts/[Amazon STS].
+
+[NOTE]
+====
+The AWS2 STS component is not supported in OSGI
+====
+
+== URI Format
+
+[source,java]
+-------------------------
+aws2-sts://label[?options]
+-------------------------
+
+You can append query options to the URI in the following format,
+?options=value&option2=value&...
+
+== URI Options
+
+
+// component options: START
+The AWS 2 Security Token Service (STS) component supports 14 options, which are listed below.
+
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
+| *configuration* (producer) | Component configuration |  | STS2Configuration
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: assumeRole, getSessionToken, getFederationToken | assumeRole | STS2Operations
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the STS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the STS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the STS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
+| *stsClient* (producer) | To use a existing configured AWS STS as client |  | StsClient
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *basicPropertyBinding* (advanced) | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// component options: END
+
+
+
+
+// endpoint options: START
+The AWS 2 Security Token Service (STS) endpoint is configured using URI syntax:
+
+----
+aws2-sts:label
+----
+
+with the following path and query parameters:
+
+=== Path Parameters (1 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *label* | *Required* Logical name |  | String
+|===
+
+
+=== Query Parameters (14 parameters):
+
+
+[width="100%",cols="2,5,^1,2",options="header"]
+|===
+| Name | Description | Default | Type
+| *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
+| *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
+| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: assumeRole, getSessionToken, getFederationToken | assumeRole | STS2Operations
+| *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
+| *proxyHost* (producer) | To define a proxy host when instantiating the STS client |  | String
+| *proxyPort* (producer) | To define a proxy port when instantiating the STS client |  | Integer
+| *proxyProtocol* (producer) | To define a proxy protocol when instantiating the STS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
+| *region* (producer) | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
+| *stsClient* (producer) | To use a existing configured AWS STS as client |  | StsClient
+| *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
+| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
+| *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
+| *accessKey* (security) | Amazon AWS Access Key |  | String
+| *secretKey* (security) | Amazon AWS Secret Key |  | String
+|===
+// endpoint options: END
+
+
+
+Required STS component options
+
+You have to provide the amazonSTSClient in the
+Registry or your accessKey and secretKey to access
+the https://aws.amazon.com/sts/[Amazon STS] service.
+
+== Usage
+
+[NOTE]
+====
+The AWS2 STS component works on the aws-global region and it has aws-global as default region
+====
+
+=== STS Producer operations
+
+Camel-AWS STS component provides the following operation on the producer side:
+
+- assumeRole
+- getSessionToken
+- getFedeationToken
+
+== Producer Examples
+
+- assumeRole: this operation will make an AWS user assume a different role temporary
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:assumeRole")
+    .setHeader(STS2Constants.ROLE_ARN, constant("arn:123"))
+    .setHeader(STS2Constants.ROLE_SESSION_NAME, constant("groot"))
+    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=assumeRole")
+--------------------------------------------------------------------------------
+
+- getSessionToken: this operation will return a temporary session token
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:getSessionToken")
+    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=getSessionToken")
+--------------------------------------------------------------------------------
+
+- getFederationToken: this operation will return a temporary federation token
+
+[source,java]
+--------------------------------------------------------------------------------
+from("direct:getFederationToken")
+    .setHeader(STS2Constants.FEDERATED_NAME, constant("federation-account"))
+    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=getSessionToken")
+--------------------------------------------------------------------------------
+
+== Automatic detection of StsClient client in registry
+
+The component is capable of detecting the presence of an StsClient bean into the registry.
+If it's the only instance of that type it will be used as client and you won't have to define it as uri parameter.
+This may be really useful for smarter configuration of the endpoint.
+
+== Using a POJO as body
+
+Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
+In AWS STS, as example for Assume Role request, you can do something like:
+
+------------------------------------------------------------------------------------------------------
+from("direct:createUser")
+     .setBody(AssumeRoleRequest.builder().roleArn("arn:123").roleSessionName("groot").build())
+    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=assumeRole&pojoRequest=true")
+------------------------------------------------------------------------------------------------------
+
+In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
+
+== Dependencies
+
+Maven users will need to add the following dependency to their pom.xml.
+
+*pom.xml*
+
+[source,xml]
+---------------------------------------
+<dependency>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-aws2-sts</artifactId>
+    <version>${camel-version}</version>
+</dependency>
+---------------------------------------
+
+where `$\{camel-version}` must be replaced by the actual version of Camel.
+
+include::camel-spring-boot::page$aws2-sts-starter.adoc[]
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EvenbridgeOperations.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EvenbridgeOperations.java
new file mode 100644
index 0000000..c3e4ad5
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EvenbridgeOperations.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+public enum EvenbridgeOperations {
+
+    putRule
+}
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponent.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponent.java
new file mode 100644
index 0000000..e45edfb
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponent.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.Endpoint;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.annotations.Component;
+import org.apache.camel.support.DefaultComponent;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+
+/**
+ * For working with Amazon STS SDK v2.
+ */
+@Component("aws2-eventbridge")
+public class EventbridgeComponent extends DefaultComponent {
+
+    private static final Logger LOG = LoggerFactory.getLogger(EventbridgeComponent.class);
+
+    @Metadata
+    private EventbridgeConfiguration configuration = new EventbridgeConfiguration();
+
+    public EventbridgeComponent() {
+        this(null);
+    }
+
+    public EventbridgeComponent(CamelContext context) {
+        super(context);
+
+        registerExtension(new EventbridgeComponentVerifierExtension());
+    }
+
+    @Override
+    protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+        EventbridgeConfiguration configuration = this.configuration != null ? this.configuration.copy() : new EventbridgeConfiguration();
+        EventbridgeEndpoint endpoint = new EventbridgeEndpoint(uri, this, configuration);
+        setProperties(endpoint, parameters);
+        if (endpoint.getConfiguration().isAutoDiscoverClient()) {
+            checkAndSetRegistryClient(configuration, endpoint);
+        }
+        if (configuration.getEventbridgeClient() == null
+                && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) {
+            throw new IllegalArgumentException("Amazon Eventbridge client or accessKey and secretKey must be specified");
+        }
+
+        return endpoint;
+    }
+
+    public EventbridgeConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    /**
+     * Component configuration
+     */
+    public void setConfiguration(EventbridgeConfiguration configuration) {
+        this.configuration = configuration;
+    }
+
+    private void checkAndSetRegistryClient(EventbridgeConfiguration configuration, EventbridgeEndpoint endpoint) {
+        if (ObjectHelper.isEmpty(endpoint.getConfiguration().getEventbridgeClient())) {
+            LOG.debug("Looking for an EventBridgeClient instance in the registry");
+            Set<EventBridgeClient> clients = getCamelContext().getRegistry().findByType(EventBridgeClient.class);
+            if (clients.size() == 1) {
+                LOG.debug("Found exactly one EventBridgeClient instance in the registry");
+                configuration.setEventbridgeClient(clients.stream().findFirst().get());
+            } else {
+                LOG.debug("No EventbridgeClient instance in the registry");
+            }
+        } else {
+            LOG.debug("EventbridgeClient instance is already set at endpoint level: skipping the check in the registry");
+        }
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponentVerifierExtension.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponentVerifierExtension.java
new file mode 100644
index 0000000..b68adcd
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponentVerifierExtension.java
@@ -0,0 +1,96 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import java.util.Map;
+
+import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension;
+import org.apache.camel.component.extension.verifier.ResultBuilder;
+import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
+import org.apache.camel.component.extension.verifier.ResultErrorHelper;
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
+import software.amazon.awssdk.core.exception.SdkClientException;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClientBuilder;
+import software.amazon.awssdk.services.eventbridge.model.ListEventBusesRequest;
+
+public class EventbridgeComponentVerifierExtension extends DefaultComponentVerifierExtension {
+
+    public EventbridgeComponentVerifierExtension() {
+        this("aws2-eventbridge");
+    }
+
+    public EventbridgeComponentVerifierExtension(String scheme) {
+        super(scheme);
+    }
+
+    // *********************************
+    // Parameters validation
+    // *********************************
+
+    @Override
+    protected Result verifyParameters(Map<String, Object> parameters) {
+
+        ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.PARAMETERS)
+                .error(ResultErrorHelper.requiresOption("accessKey", parameters))
+                .error(ResultErrorHelper.requiresOption("secretKey", parameters))
+                .error(ResultErrorHelper.requiresOption("region", parameters));
+
+        // Validate using the catalog
+
+        super.verifyParametersAgainstCatalog(builder, parameters);
+
+        return builder.build();
+    }
+
+    // *********************************
+    // Connectivity validation
+    // *********************************
+
+    @Override
+    protected Result verifyConnectivity(Map<String, Object> parameters) {
+        ResultBuilder builder = ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.CONNECTIVITY);
+
+        try {
+            EventbridgeConfiguration configuration = setProperties(new EventbridgeConfiguration(), parameters);
+            if (!EventBridgeClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) {
+                ResultErrorBuilder errorBuilder
+                        = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.ILLEGAL_PARAMETER,
+                                "The service is not supported in this region");
+                return builder.error(errorBuilder.build()).build();
+            }
+            AwsBasicCredentials cred = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey());
+            EventBridgeClientBuilder clientBuilder = EventBridgeClient.builder();
+            EventBridgeClient client = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred))
+                    .region(Region.of(configuration.getRegion())).build();
+            client.listEventBuses(ListEventBusesRequest.builder().build());
+        } catch (SdkClientException e) {
+            ResultErrorBuilder errorBuilder
+                    = ResultErrorBuilder.withCodeAndDescription(VerificationError.StandardCode.AUTHENTICATION, e.getMessage())
+                            .detail("aws_eventbridge_exception_message", e.getMessage())
+                            .detail(VerificationError.ExceptionAttribute.EXCEPTION_CLASS, e.getClass().getName())
+                            .detail(VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE, e);
+
+            builder.error(errorBuilder.build());
+        } catch (Exception e) {
+            builder.error(ResultErrorBuilder.withException(e).build());
+        }
+        return builder.build();
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConfiguration.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConfiguration.java
new file mode 100644
index 0000000..15245ee
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConfiguration.java
@@ -0,0 +1,192 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriParams;
+import org.apache.camel.spi.UriPath;
+import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+
+@UriParams
+public class EventbridgeConfiguration implements Cloneable {
+
+    @UriPath(description = "Logical name")
+    @Metadata(required = true)
+    private String label;
+    @UriParam
+    private EventBridgeClient eventbridgeClient;
+    @UriParam(label = "security", secret = true)
+    private String accessKey;
+    @UriParam(label = "security", secret = true)
+    private String secretKey;
+    @UriParam
+    @Metadata(required = true, defaultValue = "assumeRole")
+    private EvenbridgeOperations operation = EvenbridgeOperations.putRule;
+    @UriParam(enums = "HTTP,HTTPS", defaultValue = "HTTPS")
+    private Protocol proxyProtocol = Protocol.HTTPS;
+    @UriParam
+    private String proxyHost;
+    @UriParam
+    private Integer proxyPort;
+    @UriParam(defaultValue = "aws-global")
+    private String region = Region.AWS_GLOBAL.id();
+    @UriParam(defaultValue = "false")
+    private boolean pojoRequest;
+    @UriParam(defaultValue = "false")
+    private boolean trustAllCertificates;
+    @UriParam(label = "common", defaultValue = "true")
+    private boolean autoDiscoverClient = true;
+
+    public EventBridgeClient getEventbridgeClient() {
+        return eventbridgeClient;
+    }
+
+    /**
+     * To use a existing configured AWS Eventbridge as client
+     */
+    public void setEventbridgeClient(EventBridgeClient eventbridgeClient) {
+        this.eventbridgeClient = eventbridgeClient;
+    }
+
+    public String getAccessKey() {
+        return accessKey;
+    }
+
+    /**
+     * Amazon AWS Access Key
+     */
+    public void setAccessKey(String accessKey) {
+        this.accessKey = accessKey;
+    }
+
+    public String getSecretKey() {
+        return secretKey;
+    }
+
+    /**
+     * Amazon AWS Secret Key
+     */
+    public void setSecretKey(String secretKey) {
+        this.secretKey = secretKey;
+    }
+
+    public EvenbridgeOperations getOperation() {
+        return operation;
+    }
+
+    /**
+     * The operation to perform
+     */
+    public void setOperation(EvenbridgeOperations operation) {
+        this.operation = operation;
+    }
+
+    public Protocol getProxyProtocol() {
+        return proxyProtocol;
+    }
+
+    /**
+     * To define a proxy protocol when instantiating the STS client
+     */
+    public void setProxyProtocol(Protocol proxyProtocol) {
+        this.proxyProtocol = proxyProtocol;
+    }
+
+    public String getProxyHost() {
+        return proxyHost;
+    }
+
+    /**
+     * To define a proxy host when instantiating the STS client
+     */
+    public void setProxyHost(String proxyHost) {
+        this.proxyHost = proxyHost;
+    }
+
+    public Integer getProxyPort() {
+        return proxyPort;
+    }
+
+    /**
+     * To define a proxy port when instantiating the STS client
+     */
+    public void setProxyPort(Integer proxyPort) {
+        this.proxyPort = proxyPort;
+    }
+
+    public String getRegion() {
+        return region;
+    }
+
+    /**
+     * The region in which STS client needs to work. When using this parameter, the configuration will expect the
+     * lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()
+     */
+    public void setRegion(String region) {
+        this.region = region;
+    }
+
+    public boolean isPojoRequest() {
+        return pojoRequest;
+    }
+
+    /**
+     * If we want to use a POJO request as body or not
+     */
+    public void setPojoRequest(boolean pojoRequest) {
+        this.pojoRequest = pojoRequest;
+    }
+
+    public boolean isTrustAllCertificates() {
+        return trustAllCertificates;
+    }
+
+    /**
+     * If we want to trust all certificates in case of overriding the endpoint
+     */
+    public void setTrustAllCertificates(boolean trustAllCertificates) {
+        this.trustAllCertificates = trustAllCertificates;
+    }
+
+    public boolean isAutoDiscoverClient() {
+        return autoDiscoverClient;
+    }
+
+    /**
+     * Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry
+     * automatically otherwise it will skip that checking.
+     */
+    public void setAutoDiscoverClient(boolean autoDiscoverClient) {
+        this.autoDiscoverClient = autoDiscoverClient;
+    }
+
+    // *************************************************
+    //
+    // *************************************************
+
+    public EventbridgeConfiguration copy() {
+        try {
+            return (EventbridgeConfiguration) super.clone();
+        } catch (CloneNotSupportedException e) {
+            throw new RuntimeCamelException(e);
+        }
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConstants.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConstants.java
new file mode 100644
index 0000000..3a30b23
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConstants.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+/**
+ * Constants used in Camel AWS2 STS module
+ */
+public interface EventbridgeConstants {
+    String OPERATION = "CamelAwsEventbridgeOperation";
+    String RULE_NAME = "CamelAwsEventbridgeRuleName";
+}
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeEndpoint.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeEndpoint.java
new file mode 100644
index 0000000..7e9b456
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeEndpoint.java
@@ -0,0 +1,133 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import java.net.URI;
+
+import org.apache.camel.Category;
+import org.apache.camel.Component;
+import org.apache.camel.Consumer;
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.spi.UriEndpoint;
+import org.apache.camel.spi.UriParam;
+import org.apache.camel.support.DefaultEndpoint;
+import org.apache.camel.util.ObjectHelper;
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
+import software.amazon.awssdk.http.SdkHttpClient;
+import software.amazon.awssdk.http.SdkHttpConfigurationOption;
+import software.amazon.awssdk.http.apache.ApacheHttpClient;
+import software.amazon.awssdk.http.apache.ProxyConfiguration;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClientBuilder;
+import software.amazon.awssdk.utils.AttributeMap;
+
+/**
+ * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+ */
+@UriEndpoint(firstVersion = "3.6.0", scheme = "aws2-eventbridge", title = "AWS 2 Eventbridge",
+             syntax = "aws2-eventbridge:label", producerOnly = true, category = {
+                     Category.CLOUD,
+                     Category.MANAGEMENT })
+public class EventbridgeEndpoint extends DefaultEndpoint {
+
+    private EventBridgeClient eventbridgeClient;
+
+    @UriParam
+    private EventbridgeConfiguration configuration;
+
+    public EventbridgeEndpoint(String uri, Component component, EventbridgeConfiguration configuration) {
+        super(uri, component);
+        this.configuration = configuration;
+    }
+
+    @Override
+    public Consumer createConsumer(Processor processor) throws Exception {
+        throw new UnsupportedOperationException("You cannot receive messages from this endpoint");
+    }
+
+    @Override
+    public Producer createProducer() throws Exception {
+        return new EventbridgeProducer(this);
+    }
+
+    @Override
+    public void doStart() throws Exception {
+        super.doStart();
+
+        eventbridgeClient = configuration.getEventbridgeClient() != null ? configuration.getEventbridgeClient() : createStsClient();
+    }
+
+    @Override
+    public void doStop() throws Exception {
+        if (ObjectHelper.isEmpty(configuration.getEventbridgeClient())) {
+            if (eventbridgeClient != null) {
+            	eventbridgeClient.close();
+            }
+        }
+        super.doStop();
+    }
+
+    public EventbridgeConfiguration getConfiguration() {
+        return configuration;
+    }
+
+    public EventBridgeClient getEventbridgeClient() {
+        return eventbridgeClient;
+    }
+
+    EventBridgeClient createStsClient() {
+    	EventBridgeClient client = null;
+    	EventBridgeClientBuilder clientBuilder = EventBridgeClient.builder();
+        ProxyConfiguration.Builder proxyConfig = null;
+        ApacheHttpClient.Builder httpClientBuilder = null;
+        boolean isClientConfigFound = false;
+        if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) {
+            proxyConfig = ProxyConfiguration.builder();
+            URI proxyEndpoint = URI.create(configuration.getProxyProtocol() + "://" + configuration.getProxyHost() + ":"
+                                           + configuration.getProxyPort());
+            proxyConfig.endpoint(proxyEndpoint);
+            httpClientBuilder = ApacheHttpClient.builder().proxyConfiguration(proxyConfig.build());
+            isClientConfigFound = true;
+        }
+        if (configuration.getAccessKey() != null && configuration.getSecretKey() != null) {
+            AwsBasicCredentials cred = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey());
+            if (isClientConfigFound) {
+                clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder)
+                        .credentialsProvider(StaticCredentialsProvider.create(cred));
+            } else {
+                clientBuilder = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred));
+            }
+        } else {
+            if (!isClientConfigFound) {
+                clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder);
+            }
+        }
+        if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+            clientBuilder = clientBuilder.region(Region.of(configuration.getRegion()));
+        }
+        if (configuration.isTrustAllCertificates()) {
+            SdkHttpClient ahc = ApacheHttpClient.builder().buildWithDefaults(
+                    AttributeMap.builder().put(SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES, Boolean.TRUE).build());
+            clientBuilder.httpClient(ahc);
+        }
+        client = clientBuilder.build();
+        return client;
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeProducer.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeProducer.java
new file mode 100644
index 0000000..1f7bce0
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeProducer.java
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import org.apache.camel.Endpoint;
+import org.apache.camel.Exchange;
+import org.apache.camel.InvalidPayloadException;
+import org.apache.camel.Message;
+import org.apache.camel.component.aws2.eks.EKS2Constants;
+import org.apache.camel.support.DefaultProducer;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.URISupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.awscore.exception.AwsServiceException;
+import software.amazon.awssdk.services.eks.model.ListClustersRequest;
+import software.amazon.awssdk.services.eks.model.ListClustersResponse;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+import software.amazon.awssdk.services.eventbridge.model.PutRuleRequest;
+import software.amazon.awssdk.services.eventbridge.model.PutRuleResponse;
+
+/**
+ * A Producer which sends messages to the Amazon Eventbridge Service SDK v2 <a href="http://aws.amazon.com/sts/">AWS STS</a>
+ */
+public class EventbridgeProducer extends DefaultProducer {
+
+    private static final Logger LOG = LoggerFactory.getLogger(EventbridgeProducer.class);
+
+    private transient String eventbridgeProducerToString;
+
+    public EventbridgeProducer(Endpoint endpoint) {
+        super(endpoint);
+    }
+
+    @Override
+    public void process(Exchange exchange) throws Exception {
+        switch (determineOperation(exchange)) {
+            case putRule:
+                putRule(getEndpoint().getEventbridgeClient(), exchange);
+                break;
+            default:
+                throw new IllegalArgumentException("Unsupported operation");
+        }
+    }
+
+	private EvenbridgeOperations determineOperation(Exchange exchange) {
+        EvenbridgeOperations operation = exchange.getIn().getHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.class);
+        if (operation == null) {
+            operation = getConfiguration().getOperation();
+        }
+        return operation;
+    }
+
+    protected EventbridgeConfiguration getConfiguration() {
+        return getEndpoint().getConfiguration();
+    }
+
+    @Override
+    public String toString() {
+        if (eventbridgeProducerToString == null) {
+        	eventbridgeProducerToString = "EventbridgeProducer[" + URISupport.sanitizeUri(getEndpoint().getEndpointUri()) + "]";
+        }
+        return eventbridgeProducerToString;
+    }
+    
+    private void putRule(EventBridgeClient eventbridgeClient, Exchange exchange) {
+        if (getConfiguration().isPojoRequest()) {
+            Object payload = exchange.getIn().getMandatoryBody();
+            if (payload instanceof PutRuleRequest) {
+                PutRuleResponse result;
+                try {
+                    result = eventbridgeClient.putRule((PutRuleRequest) payload);
+                } catch (AwsServiceException ase) {
+                    LOG.trace("PutRule command returned the error code {}", ase.awsErrorDetails().errorCode());
+                    throw ase;
+                }
+                Message message = getMessageForResponse(exchange);
+                message.setBody(result);
+            }
+        } else {
+            PutRuleRequest.Builder builder = PutRuleRequest.builder();
+            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) {
+                String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
+                builder.name(ruleName);
+            }
+            ListClustersResponse result;
+            try {
+                result = eksClient.listClusters(builder.build());
+            } catch (AwsServiceException ase) {
+                LOG.trace("List Clusters command returned the error code {}", ase.awsErrorDetails().errorCode());
+                throw ase;
+            }
+            Message message = getMessageForResponse(exchange);
+            message.setBody(result);
+        }
+	}
+
+    @Override
+    public EventbridgeEndpoint getEndpoint() {
+        return (EventbridgeEndpoint) super.getEndpoint();
+    }
+
+    public static Message getMessageForResponse(final Exchange exchange) {
+        return exchange.getMessage();
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java
new file mode 100644
index 0000000..e083368
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import software.amazon.awssdk.services.sts.StsClient;
+import software.amazon.awssdk.services.sts.model.AssumeRoleRequest;
+import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
+import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
+import software.amazon.awssdk.services.sts.model.Credentials;
+import software.amazon.awssdk.services.sts.model.GetFederationTokenRequest;
+import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse;
+import software.amazon.awssdk.services.sts.model.GetSessionTokenRequest;
+import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse;
+
+public class AmazonSTSClientMock implements StsClient {
+
+    public AmazonSTSClientMock() {
+    }
+
+    @Override
+    public AssumeRoleResponse assumeRole(AssumeRoleRequest assumeRoleRequest) {
+        return AssumeRoleResponse.builder().assumedRoleUser(AssumedRoleUser.builder().arn("arn").build()).build();
+    }
+
+    @Override
+    public GetSessionTokenResponse getSessionToken(GetSessionTokenRequest getSessionTokenRequest) {
+        return GetSessionTokenResponse.builder()
+                .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test").build())
+                .build();
+    }
+
+    @Override
+    public GetFederationTokenResponse getFederationToken(GetFederationTokenRequest getFederationTokenRequest) {
+        return GetFederationTokenResponse.builder()
+                .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test").build())
+                .build();
+    }
+
+    @Override
+    public String serviceName() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void close() {
+        // TODO Auto-generated method stub
+
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentClientRegistryTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentClientRegistryTest.java
new file mode 100644
index 0000000..9491dff
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentClientRegistryTest.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+public class STS2ComponentClientRegistryTest extends CamelTestSupport {
+
+    @Test
+    public void createEndpointWithMinimalSTSClientConfiguration() throws Exception {
+
+        AmazonSTSClientMock clientMock = new AmazonSTSClientMock();
+        context.getRegistry().bind("amazonStsClient", clientMock);
+        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint("aws2-sts://TestDomain");
+
+        assertNotNull(endpoint.getConfiguration().getStsClient());
+    }
+
+    @Test
+    public void createEndpointWithMinimalSTSClientMisconfiguration() throws Exception {
+
+        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        assertThrows(IllegalArgumentException.class, () -> {
+            component.createEndpoint("aws2-sts://TestDomain");
+        });
+    }
+
+    @Test
+    public void createEndpointWithAutoDiscoverClientFalse() throws Exception {
+
+        AmazonSTSClientMock clientMock = new AmazonSTSClientMock();
+        context.getRegistry().bind("amazonStsClient", clientMock);
+        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component
+                .createEndpoint("aws2-sts://TestDomain?accessKey=xxx&secretKey=yyy&autoDiscoverClient=false");
+
+        assertNotSame(clientMock, endpoint.getConfiguration().getStsClient());
+    }
+
+    @Test
+    public void createEndpointWithAutoDiscoverClientTrue() throws Exception {
+
+        AmazonSTSClientMock clientMock = new AmazonSTSClientMock();
+        context.getRegistry().bind("amazonStsClient", clientMock);
+        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint("aws2-sts://TestDomain?accessKey=xxx&secretKey=yyy");
+
+        assertSame(clientMock, endpoint.getConfiguration().getStsClient());
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurationTest.java
new file mode 100644
index 0000000..b657f75
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurationTest.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+import software.amazon.awssdk.core.Protocol;
+import software.amazon.awssdk.regions.Region;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class STS2ComponentConfigurationTest extends CamelTestSupport {
+
+    @Test
+    public void createEndpointWithComponentElements() throws Exception {
+        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        component.getConfiguration().setAccessKey("XXX");
+        component.getConfiguration().setSecretKey("YYY");
+        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint("aws2-sts://label");
+
+        assertEquals("XXX", endpoint.getConfiguration().getAccessKey());
+        assertEquals("YYY", endpoint.getConfiguration().getSecretKey());
+    }
+
+    @Test
+    public void createEndpointWithComponentAndEndpointElements() throws Exception {
+        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        component.getConfiguration().setAccessKey("XXX");
+        component.getConfiguration().setSecretKey("YYY");
+        component.getConfiguration().setRegion(Region.US_WEST_1.toString());
+        EventbridgeEndpoint endpoint
+                = (EventbridgeEndpoint) component.createEndpoint("aws2-sts://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1");
+
+        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
+        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
+        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
+    }
+
+    @Test
+    public void createEndpointWithComponentEndpointElementsAndProxy() throws Exception {
+        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        component.getConfiguration().setAccessKey("XXX");
+        component.getConfiguration().setSecretKey("YYY");
+        component.getConfiguration().setRegion(Region.US_WEST_1.toString());
+        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component
+                .createEndpoint(
+                        "aws2-sts://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1&proxyHost=localhost&proxyPort=9000&proxyProtocol=HTTP");
+
+        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
+        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
+        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
+        assertEquals(Protocol.HTTP, endpoint.getConfiguration().getProxyProtocol());
+        assertEquals("localhost", endpoint.getConfiguration().getProxyHost());
+        assertEquals(Integer.valueOf(9000), endpoint.getConfiguration().getProxyPort());
+    }
+
+}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentVerifierExtensionTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentVerifierExtensionTest.java
new file mode 100644
index 0000000..c4b280c
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentVerifierExtensionTest.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.camel.Component;
+import org.apache.camel.component.extension.ComponentVerifierExtension;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class STS2ComponentVerifierExtensionTest extends CamelTestSupport {
+
+    // *************************************************
+    // Tests (parameters)
+    // *************************************************
+    @Override
+    public boolean isUseRouteBuilder() {
+        return false;
+    }
+
+    @Test
+    public void testParameters() throws Exception {
+        Component component = context().getComponent("aws2-sts");
+
+        ComponentVerifierExtension verifier
+                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
+
+        Map<String, Object> parameters = new HashMap<>();
+        parameters.put("secretKey", "l");
+        parameters.put("accessKey", "k");
+        parameters.put("region", "l");
+        parameters.put("label", "test");
+        parameters.put("operation", EvenbridgeOperations.assumeRole);
+
+        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
+
+        assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
+    }
+
+    @Test
+    public void testConnectivity() throws Exception {
+        Component component = context().getComponent("aws2-sts");
+        ComponentVerifierExtension verifier
+                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
+
+        Map<String, Object> parameters = new HashMap<>();
+        parameters.put("secretKey", "l");
+        parameters.put("accessKey", "k");
+        parameters.put("region", "US_EAST_1");
+        parameters.put("label", "test");
+        parameters.put("operation", EvenbridgeOperations.assumeRole);
+
+        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
+
+        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
+    }
+
+    @Test
+    public void testConnectivityAndRegion() throws Exception {
+        Component component = context().getComponent("aws2-sts");
+        ComponentVerifierExtension verifier
+                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
+
+        Map<String, Object> parameters = new HashMap<>();
+        parameters.put("secretKey", "l");
+        parameters.put("accessKey", "k");
+        parameters.put("region", "l");
+        parameters.put("label", "test");
+        parameters.put("operation", EvenbridgeOperations.assumeRole);
+
+        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
+
+        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
+    }
+
+}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerSpringTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerSpringTest.java
new file mode 100644
index 0000000..d2b46e1
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerSpringTest.java
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
+import org.junit.jupiter.api.Test;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
+import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse;
+import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class STS2ProducerSpringTest extends CamelSpringTestSupport {
+
+    @EndpointInject("mock:result")
+    private MockEndpoint mock;
+
+    @Test
+    public void stsAssumeRoleTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:assumeRole", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.assumeRole);
+                exchange.getIn().setHeader(EventbridgeConstants.ROLE_ARN, "arn");
+                exchange.getIn().setHeader(EventbridgeConstants.ROLE_SESSION_NAME, "sessionarn");
+            }
+        });
+
+        assertMockEndpointsSatisfied();
+
+        AssumeRoleResponse resultGet = (AssumeRoleResponse) exchange.getIn().getBody();
+        assertEquals("arn", resultGet.assumedRoleUser().arn());
+    }
+
+    @Test
+    public void stsGetSessionTokenTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:getSessionToken", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.getSessionToken);
+            }
+        });
+
+        assertMockEndpointsSatisfied();
+
+        GetSessionTokenResponse resultGet = (GetSessionTokenResponse) exchange.getIn().getBody();
+        assertEquals("xxx", resultGet.credentials().accessKeyId());
+    }
+
+    public void stsGetFederationTokenTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:getFederationToken", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.getFederationToken);
+                exchange.getIn().setHeader(EventbridgeConstants.FEDERATED_NAME, "federation-account");
+            }
+        });
+
+        assertMockEndpointsSatisfied();
+
+        GetFederationTokenResponse resultGet = (GetFederationTokenResponse) exchange.getIn().getBody();
+        assertEquals("xxx", resultGet.credentials().accessKeyId());
+    }
+
+    @Override
+    protected ClassPathXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/component/aws2/sts/STSComponentSpringTest-context.xml");
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java
new file mode 100644
index 0000000..8ed942f
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java
@@ -0,0 +1,109 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
+import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse;
+import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class STS2ProducerTest extends CamelTestSupport {
+
+    @BindToRegistry("amazonStsClient")
+    AmazonSTSClientMock clientMock = new AmazonSTSClientMock();
+
+    @EndpointInject("mock:result")
+    private MockEndpoint mock;
+
+    @Test
+    public void stsAssumeRoleTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:assumeRole", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.assumeRole);
+                exchange.getIn().setHeader(EventbridgeConstants.ROLE_ARN, "arn");
+                exchange.getIn().setHeader(EventbridgeConstants.ROLE_SESSION_NAME, "sessionarn");
+            }
+        });
+
+        assertMockEndpointsSatisfied();
+
+        AssumeRoleResponse resultGet = (AssumeRoleResponse) exchange.getIn().getBody();
+        assertEquals("arn", resultGet.assumedRoleUser().arn());
+    }
+
+    @Test
+    public void stsGetSessionTokenTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:getSessionToken", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.getSessionToken);
+            }
+        });
+
+        assertMockEndpointsSatisfied();
+
+        GetSessionTokenResponse resultGet = (GetSessionTokenResponse) exchange.getIn().getBody();
+        assertEquals("xxx", resultGet.credentials().accessKeyId());
+    }
+
+    @Test
+    public void stsGetFederationTokenTest() throws Exception {
+
+        mock.expectedMessageCount(1);
+        Exchange exchange = template.request("direct:getFederationToken", new Processor() {
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.getFederationToken);
+                exchange.getIn().setHeader(EventbridgeConstants.FEDERATED_NAME, "federation-account");
+            }
+        });
+
+        assertMockEndpointsSatisfied();
+
+        GetFederationTokenResponse resultGet = (GetFederationTokenResponse) exchange.getIn().getBody();
+        assertEquals("xxx", resultGet.credentials().accessKeyId());
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                from("direct:assumeRole").to("aws2-sts://test?stsClient=#amazonStsClient&operation=assumeRole")
+                        .to("mock:result");
+                from("direct:getSessionToken").to("aws2-sts://test?stsClient=#amazonStsClient&operation=getSessionToken")
+                        .to("mock:result");
+                from("direct:getFederationToken").to("aws2-sts://test?stsClient=#amazonStsClient&operation=getFederationToken")
+                        .to("mock:result");
+            }
+        };
+    }
+}
diff --git a/components/camel-aws2-eventbridge/src/test/resources/log4j2.properties b/components/camel-aws2-eventbridge/src/test/resources/log4j2.properties
new file mode 100644
index 0000000..668bde98
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/resources/log4j2.properties
@@ -0,0 +1,28 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+
+appender.file.type = File
+appender.file.name = file
+appender.file.fileName = target/camel-aws2-sts-test.log
+appender.file.layout.type = PatternLayout
+appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+appender.out.type = Console
+appender.out.name = out
+appender.out.layout.type = PatternLayout
+appender.out.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n
+rootLogger.level = INFO
+rootLogger.appenderRef.file.ref = file
diff --git a/components/camel-aws2-eventbridge/src/test/resources/org/apache/camel/component/aws2/sts/STSComponentSpringTest-context.xml b/components/camel-aws2-eventbridge/src/test/resources/org/apache/camel/component/aws2/sts/STSComponentSpringTest-context.xml
new file mode 100644
index 0000000..9b0e2d9
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/resources/org/apache/camel/component/aws2/sts/STSComponentSpringTest-context.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="
+    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+    http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
+        <route>
+            <from uri="direct:assumeRole"/>
+            <to uri="aws2-sts://test?stsClient=#amazonStsClient&amp;operation=assumeRole"/>
+            <to uri="mock:result"/>
+        </route>
+        <route>
+            <from uri="direct:getSessionToken"/>
+            <to uri="aws2-sts://test?stsClient=#amazonStsClient&amp;operation=getSessionToken"/>
+            <to uri="mock:result"/>
+        </route>
+        <route>
+            <from uri="direct:getFederationToken"/>
+            <to uri="aws2-sts://test?stsClient=#amazonStsClient&amp;operation=getFederationToken"/>
+            <to uri="mock:result"/>
+        </route>
+    </camelContext>
+
+    <bean id="amazonStsClient" class="org.apache.camel.component.aws2.sts.AmazonSTSClientMock"/>
+</beans>
\ No newline at end of file


[camel] 04/10: CAMEL-15375 - Camel-AWS2-Eventbridge: Fixed CS

Posted by ac...@apache.org.
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 28ca63ea7c7047b23ecde0e91e73530cce7ffa42
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 11:47:54 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: Fixed CS
---
 .../eventbridge/integration/EventbridgePutRuleIntegrationTest.java  | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
index 67dcafd..5fa9636 100644
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
@@ -27,8 +27,6 @@ import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
 import software.amazon.awssdk.regions.Region;
@@ -37,10 +35,10 @@ import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
 @Disabled("Must be manually tested. Provide your own accessKey and secretKey!")
 public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
 
-
     @BindToRegistry("eventbridge-client")
     EventBridgeClient client
-            = EventBridgeClient.builder().credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("xxx", "yyy")))
+            = EventBridgeClient.builder()
+                    .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("xxx", "yyy")))
                     .region(Region.US_WEST_1).build();
 
     @EndpointInject


[camel] 10/10: CAMEL-15375 - Camel-AWS2-Eventbridge: Full Rebuild

Posted by ac...@apache.org.
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 ea71b2c787ba7eb111b2c28853eea00c0d92e288
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 18:29:38 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: Full Rebuild
---
 .../org/apache/camel/catalog/components.properties |  1 +
 .../camel/catalog/components/aws2-eventbridge.json | 59 ++++++++++++++++++++++
 .../org/apache/camel/catalog/docs.properties       |  1 +
 .../catalog/docs/aws2-eventbridge-component.adoc   |  2 +-
 docs/components/modules/ROOT/nav.adoc              |  1 +
 .../ROOT/pages/aws2-eventbridge-component.adoc     |  2 +-
 6 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
index cdb4e8a..e7eebaa 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components.properties
@@ -44,6 +44,7 @@ aws2-ddbstream
 aws2-ec2
 aws2-ecs
 aws2-eks
+aws2-eventbridge
 aws2-iam
 aws2-kinesis
 aws2-kinesis-firehose
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-eventbridge.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-eventbridge.json
new file mode 100644
index 0000000..4dbbcf5
--- /dev/null
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws2-eventbridge.json
@@ -0,0 +1,59 @@
+{
+  "component": {
+    "kind": "component",
+    "name": "aws2-eventbridge",
+    "title": "AWS 2 Eventbridge",
+    "description": "Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.6.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-eventbridge",
+    "version": "3.6.0-SNAPSHOT",
+    "scheme": "aws2-eventbridge",
+    "extendsScheme": "",
+    "syntax": "aws2-eventbridge:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
+  "componentProperties": {
+    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instanc [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "deprecated": false, "secret": false, "description": "Component configuration" },
+    "eventbridgeClient": { "kind": "property", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
+    "eventPatternFile": { "kind": "property", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
+    "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTargets" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the ST [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowe [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  },
+  "properties": {
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Logical name" },
+    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instan [...]
+    "eventbridgeClient": { "kind": "parameter", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
+    "eventPatternFile": { "kind": "parameter", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
+    "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the  [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTargets" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description" [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the S [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the low [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
+    "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+  }
+}
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
index dc1c42a..d935ca6 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs.properties
@@ -50,6 +50,7 @@ aws2-ddbstream-component
 aws2-ec2-component
 aws2-ecs-component
 aws2-eks-component
+aws2-eventbridge-component
 aws2-iam-component
 aws2-kinesis-component
 aws2-kinesis-firehose-component
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
index a319ad7..32e5212 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
@@ -19,7 +19,7 @@ https://aws.amazon.com/eventbridge/[AWS Eventbridge].
 Prerequisites
 
 You must have a valid Amazon Web Services developer account, and be
-signed up to use Amazon STS. More information is available at
+signed up to use Amazon Eventbridge. More information is available at
 https://aws.amazon.com/eventbridge/[Amazon Eventbridge].
 
 [NOTE]
diff --git a/docs/components/modules/ROOT/nav.adoc b/docs/components/modules/ROOT/nav.adoc
index 188f701..f5c3113 100644
--- a/docs/components/modules/ROOT/nav.adoc
+++ b/docs/components/modules/ROOT/nav.adoc
@@ -49,6 +49,7 @@
 *** xref:aws2-ec2-component.adoc[AWS 2 Elastic Compute Cloud (EC2)]
 *** xref:aws2-ecs-component.adoc[AWS 2 Elastic Container Service (ECS)]
 *** xref:aws2-eks-component.adoc[AWS 2 Elastic Kubernetes Service (EKS)]
+*** xref:aws2-eventbridge-component.adoc[AWS 2 Eventbridge]
 *** xref:aws2-iam-component.adoc[AWS 2 Identity and Access Management (IAM)]
 *** xref:aws2-kms-component.adoc[AWS 2 Key Management Service (KMS)]
 *** xref:aws2-kinesis-component.adoc[AWS 2 Kinesis]
diff --git a/docs/components/modules/ROOT/pages/aws2-eventbridge-component.adoc b/docs/components/modules/ROOT/pages/aws2-eventbridge-component.adoc
index ab4aa1a..b7e6c73 100644
--- a/docs/components/modules/ROOT/pages/aws2-eventbridge-component.adoc
+++ b/docs/components/modules/ROOT/pages/aws2-eventbridge-component.adoc
@@ -21,7 +21,7 @@ https://aws.amazon.com/eventbridge/[AWS Eventbridge].
 Prerequisites
 
 You must have a valid Amazon Web Services developer account, and be
-signed up to use Amazon STS. More information is available at
+signed up to use Amazon Eventbridge. More information is available at
 https://aws.amazon.com/eventbridge/[Amazon Eventbridge].
 
 [NOTE]


[camel] 07/10: CAMEL-15375 - Camel-AWS2-Eventbridge: WIP

Posted by ac...@apache.org.
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 41d759f6e6994493a7490431686d1037c6b340af
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 16:38:30 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: WIP
---
 .../aws2/eventbridge/EvenbridgeOperations.java     |  2 +-
 .../aws2/eventbridge/EventbridgeConstants.java     |  1 +
 .../aws2/eventbridge/EventbridgeProducer.java      | 79 ++++++++++++----------
 .../EventbridgePutRuleIntegrationTest.java         | 26 ++++++-
 4 files changed, 69 insertions(+), 39 deletions(-)

diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
index 9bef090..44f810f 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
@@ -19,5 +19,5 @@ package org.apache.camel.component.aws2.eventbridge;
 public enum EvenbridgeOperations {
 
     putRule,
-    putTarget
+    putTargets
 }
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 eecf9ca..e7acf29 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
@@ -23,4 +23,5 @@ public interface EventbridgeConstants {
     String OPERATION = "CamelAwsEventbridgeOperation";
     String RULE_NAME = "CamelAwsEventbridgeRuleName";
     String EVENT_PATTERN = "CamelAwsEventbridgeEventPattern";
+    String TARGETS = "CamelAwsEventbridgeTargets";
 }
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 efb947c..e4e4d05f 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
@@ -19,6 +19,7 @@ package org.apache.camel.component.aws2.eventbridge;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.Charset;
+import java.util.Collection;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
@@ -35,6 +36,9 @@ import software.amazon.awssdk.awscore.exception.AwsServiceException;
 import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
 import software.amazon.awssdk.services.eventbridge.model.PutRuleRequest;
 import software.amazon.awssdk.services.eventbridge.model.PutRuleResponse;
+import software.amazon.awssdk.services.eventbridge.model.PutTargetsRequest;
+import software.amazon.awssdk.services.eventbridge.model.PutTargetsResponse;
+import software.amazon.awssdk.services.eventbridge.model.Target;
 
 /**
  * A Producer which sends messages to the Amazon Eventbridge Service SDK v2 <a href="http://aws.amazon.com/sts/">AWS
@@ -56,6 +60,9 @@ public class EventbridgeProducer extends DefaultProducer {
             case putRule:
                 putRule(getEndpoint().getEventbridgeClient(), exchange);
                 break;
+            case putTargets:
+            	putTargets(getEndpoint().getEventbridgeClient(), exchange);
+                break;
             default:
                 throw new IllegalArgumentException("Unsupported operation");
         }
@@ -122,41 +129,43 @@ public class EventbridgeProducer extends DefaultProducer {
         }
     }
 
-    //    private void putTarget(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
-    //        if (getConfiguration().isPojoRequest()) {
-    //            Object payload = exchange.getIn().getMandatoryBody();
-    //            if (payload instanceof PutTargetsRequest) {
-    //                PutTargetsResponse result;
-    //                try {
-    //                    result = eventbridgeClient.putTargets((PutTargetsRequest) payload);
-    //                } catch (AwsServiceException ase) {
-    //                    LOG.trace("PutTargets command returned the error code {}", ase.awsErrorDetails().errorCode());
-    //                    throw ase;
-    //                }
-    //                Message message = getMessageForResponse(exchange);
-    //                message.setBody(result);
-    //            }
-    //        } else {
-    //            Put.Builder builder = PutRuleRequest.builder();
-    //            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) {
-    //                String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
-    //                builder.name(ruleName);
-    //            }
-    //            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN))) {
-    //                String eventPattern = exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN, String.class);
-    //                builder.eventPattern(eventPattern);
-    //            }
-    //            PutRuleResponse result;
-    //            try {
-    //                result = eventbridgeClient.putTargets(builder.build());
-    //            } catch (AwsServiceException ase) {
-    //                LOG.trace("Put Rule command returned the error code {}", ase.awsErrorDetails().errorCode());
-    //                throw ase;
-    //            }
-    //            Message message = getMessageForResponse(exchange);
-    //            message.setBody(result);
-    //        }
-    //    }
+        private void putTargets(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
+            if (getConfiguration().isPojoRequest()) {
+                Object payload = exchange.getIn().getMandatoryBody();
+                if (payload instanceof PutTargetsRequest) {
+                    PutTargetsResponse result;
+                    try {
+                        result = eventbridgeClient.putTargets((PutTargetsRequest) payload);
+                    } catch (AwsServiceException ase) {
+                        LOG.trace("PutTargets command returned the error code {}", ase.awsErrorDetails().errorCode());
+                        throw ase;
+                    }
+                    Message message = getMessageForResponse(exchange);
+                    message.setBody(result);
+                }
+            } else {
+                PutTargetsRequest.Builder builder = PutTargetsRequest.builder();
+                if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) {
+                    String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
+                    builder.rule(ruleName);
+                }
+                if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.TARGETS))) {
+                    Collection<Target> targets = exchange.getIn().getHeader(EventbridgeConstants.TARGETS, Collection.class);
+                    builder.targets(targets);
+                } else {
+                    throw new IllegalArgumentException("At least one targets must be specified");
+                }
+                PutTargetsResponse result;
+                try {
+                    result = eventbridgeClient.putTargets(builder.build());
+                } catch (AwsServiceException ase) {
+                    LOG.trace("Put Targets command returned the error code {}", ase.awsErrorDetails().errorCode());
+                    throw ase;
+                }
+                Message message = getMessageForResponse(exchange);
+                message.setBody(result);
+            }
+        }
 
     @Override
     public EventbridgeEndpoint getEndpoint() {
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
index 0106440..6d38748 100644
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.aws2.eventbridge.integration;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.camel.BindToRegistry;
 import org.apache.camel.EndpointInject;
 import org.apache.camel.Exchange;
@@ -31,6 +34,7 @@ import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
 import software.amazon.awssdk.regions.Region;
 import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+import software.amazon.awssdk.services.eventbridge.model.Target;
 
 @Disabled("Must be manually tested. Provide your own accessKey and secretKey!")
 public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
@@ -39,7 +43,7 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
     EventBridgeClient client
             = EventBridgeClient.builder()
                     .credentialsProvider(StaticCredentialsProvider.create(
-                            AwsBasicCredentials.create("xxxx", "yyy")))
+                            AwsBasicCredentials.create("xxxx", "yyyy")))
                     .region(Region.EU_WEST_1).build();
 
     @EndpointInject
@@ -47,10 +51,14 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
 
     @EndpointInject("mock:result")
     private MockEndpoint result;
+    
+    @EndpointInject("mock:result1")
+    private MockEndpoint result1;
 
     @Test
     public void sendIn() throws Exception {
         result.expectedMessageCount(1);
+        result1.expectedMessageCount(1);
 
         template.send("direct:evs", new Processor() {
 
@@ -59,6 +67,18 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
                 exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
             }
         });
+        
+        template.send("direct:evs-targets", new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+                Target target = Target.builder().id("sqs-queue").arn("arn:aws:sqs:eu-west-1:780410022472:camel-connector-test").build();
+                List<Target> targets = new ArrayList<Target>();
+                targets.add(target);
+                exchange.getIn().setHeader(EventbridgeConstants.TARGETS, targets);
+            }
+        });
         assertMockEndpointsSatisfied();
 
     }
@@ -69,9 +89,9 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
             @Override
             public void configure() throws Exception {
                 String awsEndpoint = "aws2-eventbridge://test?operation=putRule&eventPatternFile=file:src/test/resources/eventpattern.json";
-
+                String target = "aws2-eventbridge://test?operation=putTargets";
                 from("direct:evs").to(awsEndpoint).log("${body}").to("mock:result");
-
+                from("direct:evs-targets").to(target).log("${body}").to("mock:result1");
             }
         };
     }


[camel] 06/10: CAMEL-15375 - Camel-AWS2-Eventbridge: Give Priority to loading from file

Posted by ac...@apache.org.
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 a71dc7c5d0a189243da4de1c7113344997e90590
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 12:23:54 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: Give Priority to loading from file
---
 .../camel/component/aws2/eventbridge/EventbridgeProducer.java     | 8 ++++----
 .../integration/EventbridgePutRuleIntegrationTest.java            | 1 +
 2 files changed, 5 insertions(+), 4 deletions(-)

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 6486104..efb947c 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
@@ -101,14 +101,14 @@ public class EventbridgeProducer extends DefaultProducer {
                 String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
                 builder.name(ruleName);
             }
-            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN))) {
-                String eventPattern = exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN, String.class);
-                builder.eventPattern(eventPattern);
-            } else {
+            if (ObjectHelper.isEmpty(exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN))) {
                 InputStream s = ResourceHelper.resolveMandatoryResourceAsInputStream(this.getEndpoint().getCamelContext(),
                         getConfiguration().getEventPatternFile());
                 String eventPattern = IOUtils.toString(s, Charset.defaultCharset());
                 builder.eventPattern(eventPattern);
+            } else {
+                String eventPattern = exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN, String.class);
+                builder.eventPattern(eventPattern);
             }
             PutRuleResponse result;
             try {
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
index 7432268..0106440 100644
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
@@ -25,6 +25,7 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.aws2.eventbridge.EventbridgeConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;


[camel] 05/10: CAMEL-15375 - Camel-AWS2-Eventbridge: Support loading with ResourceHelper

Posted by ac...@apache.org.
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 c37e89b5d97b875c08eb4d9ac6da415ed71bf8f2
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 12:19:22 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: Support loading with ResourceHelper
---
 components/camel-aws2-eventbridge/pom.xml          |  4 ++
 .../EventbridgeComponentConfigurer.java            |  5 +++
 .../eventbridge/EventbridgeEndpointConfigurer.java |  5 +++
 .../aws2/eventbridge/aws2-eventbridge.json         |  2 +
 .../aws2/eventbridge/EventbridgeConfiguration.java | 12 ++++++
 .../aws2/eventbridge/EventbridgeProducer.java      | 23 ++++++++---
 .../EventbridgePutRuleIntegrationTest.java         |  9 ++---
 .../src/test/resources/eventpattern.json           |  5 +++
 .../aws2/sts/STSComponentSpringTest-context.xml    | 45 ----------------------
 .../Aws2EventbridgeComponentBuilderFactory.java    | 13 +++++++
 .../dsl/EventbridgeEndpointBuilderFactory.java     | 12 ++++++
 11 files changed, 79 insertions(+), 56 deletions(-)

diff --git a/components/camel-aws2-eventbridge/pom.xml b/components/camel-aws2-eventbridge/pom.xml
index 9bf0e28..0170ff2 100644
--- a/components/camel-aws2-eventbridge/pom.xml
+++ b/components/camel-aws2-eventbridge/pom.xml
@@ -50,6 +50,10 @@
             <artifactId>apache-client</artifactId>
             <version>${aws-java-sdk2-version}</version>
         </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+        </dependency>
 
         <!-- for testing -->
         <dependency>
diff --git a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
index 0e4966f..6865a61 100644
--- a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
+++ b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
@@ -33,6 +33,8 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
         case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration.class, value)); return true;
+        case "eventpatternfile":
+        case "eventPatternFile": getOrCreateConfiguration(target).setEventPatternFile(property(camelContext, java.lang.String.class, value)); return true;
         case "eventbridgeclient":
         case "eventbridgeClient": getOrCreateConfiguration(target).setEventbridgeClient(property(camelContext, software.amazon.awssdk.services.eventbridge.EventBridgeClient.class, value)); return true;
         case "lazystartproducer":
@@ -62,6 +64,7 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
         answer.put("autoDiscoverClient", boolean.class);
         answer.put("basicPropertyBinding", boolean.class);
         answer.put("configuration", org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration.class);
+        answer.put("eventPatternFile", java.lang.String.class);
         answer.put("eventbridgeClient", software.amazon.awssdk.services.eventbridge.EventBridgeClient.class);
         answer.put("lazyStartProducer", boolean.class);
         answer.put("operation", org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations.class);
@@ -86,6 +89,8 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
         case "basicpropertybinding":
         case "basicPropertyBinding": return target.isBasicPropertyBinding();
         case "configuration": return target.getConfiguration();
+        case "eventpatternfile":
+        case "eventPatternFile": return getOrCreateConfiguration(target).getEventPatternFile();
         case "eventbridgeclient":
         case "eventbridgeClient": return getOrCreateConfiguration(target).getEventbridgeClient();
         case "lazystartproducer":
diff --git a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
index a6b177a..f9de694 100644
--- a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
+++ b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
@@ -25,6 +25,8 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
         case "autoDiscoverClient": target.getConfiguration().setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "eventpatternfile":
+        case "eventPatternFile": target.getConfiguration().setEventPatternFile(property(camelContext, java.lang.String.class, value)); return true;
         case "eventbridgeclient":
         case "eventbridgeClient": target.getConfiguration().setEventbridgeClient(property(camelContext, software.amazon.awssdk.services.eventbridge.EventBridgeClient.class, value)); return true;
         case "lazystartproducer":
@@ -54,6 +56,7 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
         answer.put("accessKey", java.lang.String.class);
         answer.put("autoDiscoverClient", boolean.class);
         answer.put("basicPropertyBinding", boolean.class);
+        answer.put("eventPatternFile", java.lang.String.class);
         answer.put("eventbridgeClient", software.amazon.awssdk.services.eventbridge.EventBridgeClient.class);
         answer.put("lazyStartProducer", boolean.class);
         answer.put("operation", org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations.class);
@@ -78,6 +81,8 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
         case "autoDiscoverClient": return target.getConfiguration().isAutoDiscoverClient();
         case "basicpropertybinding":
         case "basicPropertyBinding": return target.isBasicPropertyBinding();
+        case "eventpatternfile":
+        case "eventPatternFile": return target.getConfiguration().getEventPatternFile();
         case "eventbridgeclient":
         case "eventbridgeClient": return target.getConfiguration().getEventbridgeClient();
         case "lazystartproducer":
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
index c2cc268..b644136 100644
--- a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
+++ b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
@@ -25,6 +25,7 @@
     "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instanc [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "deprecated": false, "secret": false, "description": "Component configuration" },
     "eventbridgeClient": { "kind": "property", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
+    "eventPatternFile": { "kind": "property", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
     "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTarget" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description":  [...]
     "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
@@ -41,6 +42,7 @@
     "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Logical name" },
     "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instan [...]
     "eventbridgeClient": { "kind": "parameter", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
+    "eventPatternFile": { "kind": "parameter", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the  [...]
     "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTarget" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": [...]
     "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
index 9b7707d..cfb4fa6 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
@@ -54,6 +54,8 @@ public class EventbridgeConfiguration implements Cloneable {
     private boolean trustAllCertificates;
     @UriParam(label = "common", defaultValue = "true")
     private boolean autoDiscoverClient = true;
+    @UriParam
+    private String eventPatternFile;
 
     public EventBridgeClient getEventbridgeClient() {
         return eventbridgeClient;
@@ -178,6 +180,16 @@ public class EventbridgeConfiguration implements Cloneable {
         this.autoDiscoverClient = autoDiscoverClient;
     }
 
+    public String getEventPatternFile() {
+        return eventPatternFile;
+    }
+
+    /**
+     * EventPattern File
+     */
+    public void setEventPatternFile(String eventPatternFile) {
+        this.eventPatternFile = eventPatternFile;
+    }
     // *************************************************
     //
     // *************************************************
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 c73bfa1..6486104 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
@@ -16,13 +16,19 @@
  */
 package org.apache.camel.component.aws2.eventbridge;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.InvalidPayloadException;
 import org.apache.camel.Message;
 import org.apache.camel.support.DefaultProducer;
+import org.apache.camel.support.ResourceHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
+import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import software.amazon.awssdk.awscore.exception.AwsServiceException;
@@ -75,7 +81,7 @@ public class EventbridgeProducer extends DefaultProducer {
         return eventbridgeProducerToString;
     }
 
-    private void putRule(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
+    private void putRule(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException, IOException {
         if (getConfiguration().isPojoRequest()) {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof PutRuleRequest) {
@@ -98,6 +104,11 @@ public class EventbridgeProducer extends DefaultProducer {
             if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN))) {
                 String eventPattern = exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN, String.class);
                 builder.eventPattern(eventPattern);
+            } else {
+                InputStream s = ResourceHelper.resolveMandatoryResourceAsInputStream(this.getEndpoint().getCamelContext(),
+                        getConfiguration().getEventPatternFile());
+                String eventPattern = IOUtils.toString(s, Charset.defaultCharset());
+                builder.eventPattern(eventPattern);
             }
             PutRuleResponse result;
             try {
@@ -114,19 +125,19 @@ public class EventbridgeProducer extends DefaultProducer {
     //    private void putTarget(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
     //        if (getConfiguration().isPojoRequest()) {
     //            Object payload = exchange.getIn().getMandatoryBody();
-    //            if (payload instanceof PutRuleRequest) {
-    //                PutRuleResponse result;
+    //            if (payload instanceof PutTargetsRequest) {
+    //                PutTargetsResponse result;
     //                try {
-    //                    result = eventbridgeClient.putRule((PutRuleRequest) payload);
+    //                    result = eventbridgeClient.putTargets((PutTargetsRequest) payload);
     //                } catch (AwsServiceException ase) {
-    //                    LOG.trace("PutRule command returned the error code {}", ase.awsErrorDetails().errorCode());
+    //                    LOG.trace("PutTargets command returned the error code {}", ase.awsErrorDetails().errorCode());
     //                    throw ase;
     //                }
     //                Message message = getMessageForResponse(exchange);
     //                message.setBody(result);
     //            }
     //        } else {
-    //            PutRuleRequest.Builder builder = PutRuleRequest.builder();
+    //            Put.Builder builder = PutRuleRequest.builder();
     //            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) {
     //                String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
     //                builder.name(ruleName);
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
index 5fa9636..7432268 100644
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
@@ -25,7 +25,6 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.aws2.eventbridge.EventbridgeConstants;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
@@ -38,8 +37,9 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
     @BindToRegistry("eventbridge-client")
     EventBridgeClient client
             = EventBridgeClient.builder()
-                    .credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("xxx", "yyy")))
-                    .region(Region.US_WEST_1).build();
+                    .credentialsProvider(StaticCredentialsProvider.create(
+                            AwsBasicCredentials.create("xxxx", "yyy")))
+                    .region(Region.EU_WEST_1).build();
 
     @EndpointInject
     private ProducerTemplate template;
@@ -56,7 +56,6 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
             @Override
             public void process(Exchange exchange) throws Exception {
                 exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
-                exchange.getIn().setHeader(EventbridgeConstants.EVENT_PATTERN, "{ \"source\": [\"aws.s3\"] }");
             }
         });
         assertMockEndpointsSatisfied();
@@ -68,7 +67,7 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                String awsEndpoint = "aws2-eventbridge://test?operation=putRule";
+                String awsEndpoint = "aws2-eventbridge://test?operation=putRule&eventPatternFile=file:src/test/resources/eventpattern.json";
 
                 from("direct:evs").to(awsEndpoint).log("${body}").to("mock:result");
 
diff --git a/components/camel-aws2-eventbridge/src/test/resources/eventpattern.json b/components/camel-aws2-eventbridge/src/test/resources/eventpattern.json
new file mode 100644
index 0000000..454ccba
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/resources/eventpattern.json
@@ -0,0 +1,5 @@
+{
+   "source":[
+      "aws.s3"
+   ]
+}
diff --git a/components/camel-aws2-eventbridge/src/test/resources/org/apache/camel/component/aws2/sts/STSComponentSpringTest-context.xml b/components/camel-aws2-eventbridge/src/test/resources/org/apache/camel/component/aws2/sts/STSComponentSpringTest-context.xml
deleted file mode 100644
index 9b0e2d9..0000000
--- a/components/camel-aws2-eventbridge/src/test/resources/org/apache/camel/component/aws2/sts/STSComponentSpringTest-context.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
-    Licensed to the Apache Software Foundation (ASF) under one or more
-    contributor license agreements.  See the NOTICE file distributed with
-    this work for additional information regarding copyright ownership.
-    The ASF licenses this file to You under the Apache License, Version 2.0
-    (the "License"); you may not use this file except in compliance with
-    the License.  You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
-
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xsi:schemaLocation="
-    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
-    http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
-
-    <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
-        <route>
-            <from uri="direct:assumeRole"/>
-            <to uri="aws2-sts://test?stsClient=#amazonStsClient&amp;operation=assumeRole"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:getSessionToken"/>
-            <to uri="aws2-sts://test?stsClient=#amazonStsClient&amp;operation=getSessionToken"/>
-            <to uri="mock:result"/>
-        </route>
-        <route>
-            <from uri="direct:getFederationToken"/>
-            <to uri="aws2-sts://test?stsClient=#amazonStsClient&amp;operation=getFederationToken"/>
-            <to uri="mock:result"/>
-        </route>
-    </camelContext>
-
-    <bean id="amazonStsClient" class="org.apache.camel.component.aws2.sts.AmazonSTSClientMock"/>
-</beans>
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
index 2eb1051..815a6ba 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
@@ -90,6 +90,18 @@ public interface Aws2EventbridgeComponentBuilderFactory {
             return this;
         }
         /**
+         * EventPattern File.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder eventPatternFile(
+                java.lang.String eventPatternFile) {
+            doSetProperty("eventPatternFile", eventPatternFile);
+            return this;
+        }
+        /**
          * Whether the producer should be started lazy (on the first message).
          * By starting lazy you can use this to allow CamelContext and routes to
          * startup in situations where a producer may otherwise fail during
@@ -269,6 +281,7 @@ public interface Aws2EventbridgeComponentBuilderFactory {
             case "autoDiscoverClient": getOrCreateConfiguration((EventbridgeComponent) component).setAutoDiscoverClient((boolean) value); return true;
             case "configuration": ((EventbridgeComponent) component).setConfiguration((org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration) value); return true;
             case "eventbridgeClient": getOrCreateConfiguration((EventbridgeComponent) component).setEventbridgeClient((software.amazon.awssdk.services.eventbridge.EventBridgeClient) value); return true;
+            case "eventPatternFile": getOrCreateConfiguration((EventbridgeComponent) component).setEventPatternFile((java.lang.String) value); return true;
             case "lazyStartProducer": ((EventbridgeComponent) component).setLazyStartProducer((boolean) value); return true;
             case "operation": getOrCreateConfiguration((EventbridgeComponent) component).setOperation((org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations) value); return true;
             case "pojoRequest": getOrCreateConfiguration((EventbridgeComponent) component).setPojoRequest((boolean) value); return true;
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
index c0f4dd4..6316c76 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
@@ -96,6 +96,18 @@ public interface EventbridgeEndpointBuilderFactory {
             return this;
         }
         /**
+         * EventPattern File.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder eventPatternFile(
+                String eventPatternFile) {
+            doSetProperty("eventPatternFile", eventPatternFile);
+            return this;
+        }
+        /**
          * Whether the producer should be started lazy (on the first message).
          * By starting lazy you can use this to allow CamelContext and routes to
          * startup in situations where a producer may otherwise fail during


[camel] 02/10: CAMEL-15375 - Camel-AWS2-Eventbridge: More work

Posted by ac...@apache.org.
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 6fc2e5650b595e081dbb4d4c73bdd214b26afc9c
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 11:15:52 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: More work
---
 ...er.java => EventbridgeComponentConfigurer.java} |  25 +-
 ...rer.java => EventbridgeEndpointConfigurer.java} |  17 +-
 .../services/org/apache/camel/component.properties |   8 +-
 .../org/apache/camel/component/aws2-eventbridge    |   2 +
 .../services/org/apache/camel/component/aws2-sts   |   2 -
 .../camel/configurer/aws2-eventbridge-component    |   2 +
 .../camel/configurer/aws2-eventbridge-endpoint     |   2 +
 .../org/apache/camel/configurer/aws2-sts-component |   2 -
 .../org/apache/camel/configurer/aws2-sts-endpoint  |   2 -
 .../sts/{aws2-sts.json => aws2-eventbridge.json}   |  64 +--
 .../{sts => eventbridge}/EvenbridgeOperations.java |   2 +-
 .../{sts => eventbridge}/EventbridgeComponent.java |   6 +-
 .../EventbridgeComponentVerifierExtension.java     |   2 +-
 .../EventbridgeConfiguration.java                  |   2 +-
 .../{sts => eventbridge}/EventbridgeConstants.java |   3 +-
 .../{sts => eventbridge}/EventbridgeEndpoint.java  |  11 +-
 .../{sts => eventbridge}/EventbridgeProducer.java  |  28 +-
 .../EventbridgeComponentConfigurationTest.java}    |  19 +-
 .../component/aws2/sts/AmazonSTSClientMock.java    |  64 ---
 .../aws2/sts/STS2ComponentClientRegistryTest.java  |  71 ----
 .../sts/STS2ComponentVerifierExtensionTest.java    |  94 -----
 .../component/aws2/sts/STS2ProducerSpringTest.java |  94 -----
 .../camel/component/aws2/sts/STS2ProducerTest.java | 109 -----
 core/camel-allcomponents/pom.xml                   |   4 +
 .../component/ComponentsBuilderFactory.java        |  11 +
 .../Aws2EventbridgeComponentBuilderFactory.java    | 288 +++++++++++++
 .../src/generated/resources/metadata.json          |  22 +
 .../builder/endpoint/EndpointBuilderFactory.java   |   1 +
 .../camel/builder/endpoint/EndpointBuilders.java   |   1 +
 .../builder/endpoint/StaticEndpointBuilders.java   |  41 ++
 .../dsl/EventbridgeEndpointBuilderFactory.java     | 458 +++++++++++++++++++++
 parent/pom.xml                                     |   5 +
 32 files changed, 935 insertions(+), 527 deletions(-)

diff --git a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurer.java b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeComponentConfigurer.java
similarity index 82%
rename from components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurer.java
rename to components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeComponentConfigurer.java
index 8b0b46a..6e7c85f 100644
--- a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurer.java
+++ b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeComponentConfigurer.java
@@ -4,6 +4,7 @@ package org.apache.camel.component.aws2.sts;
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeComponent;
 import org.apache.camel.spi.GeneratedPropertyConfigurer;
 import org.apache.camel.spi.PropertyConfigurerGetter;
 import org.apache.camel.util.CaseInsensitiveMap;
@@ -13,11 +14,11 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
  * Generated by camel build tools - do NOT edit this file!
  */
 @SuppressWarnings("unchecked")
-public class STS2ComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
 
-    private org.apache.camel.component.aws2.sts.EventbridgeConfiguration getOrCreateConfiguration(EventbridgeComponent target) {
+    private org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration getOrCreateConfiguration(EventbridgeComponent target) {
         if (target.getConfiguration() == null) {
-            target.setConfiguration(new org.apache.camel.component.aws2.sts.EventbridgeConfiguration());
+            target.setConfiguration(new org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration());
         }
         return target.getConfiguration();
     }
@@ -32,10 +33,12 @@ public class STS2ComponentConfigurer extends PropertyConfigurerSupport implement
         case "autoDiscoverClient": getOrCreateConfiguration(target).setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
-        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.sts.EventbridgeConfiguration.class, value)); return true;
+        case "configuration": target.setConfiguration(property(camelContext, org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration.class, value)); return true;
+        case "eventbridgeclient":
+        case "eventbridgeClient": getOrCreateConfiguration(target).setEventbridgeClient(property(camelContext, software.amazon.awssdk.services.eventbridge.EventBridgeClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
-        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.sts.EvenbridgeOperations.class, value)); return true;
+        case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations.class, value)); return true;
         case "pojorequest":
         case "pojoRequest": getOrCreateConfiguration(target).setPojoRequest(property(camelContext, boolean.class, value)); return true;
         case "proxyhost":
@@ -47,8 +50,6 @@ public class STS2ComponentConfigurer extends PropertyConfigurerSupport implement
         case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": getOrCreateConfiguration(target).setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "stsclient":
-        case "stsClient": getOrCreateConfiguration(target).setStsClient(property(camelContext, software.amazon.awssdk.services.sts.StsClient.class, value)); return true;
         case "trustallcertificates":
         case "trustAllCertificates": getOrCreateConfiguration(target).setTrustAllCertificates(property(camelContext, boolean.class, value)); return true;
         default: return false;
@@ -61,16 +62,16 @@ public class STS2ComponentConfigurer extends PropertyConfigurerSupport implement
         answer.put("accessKey", java.lang.String.class);
         answer.put("autoDiscoverClient", boolean.class);
         answer.put("basicPropertyBinding", boolean.class);
-        answer.put("configuration", org.apache.camel.component.aws2.sts.EventbridgeConfiguration.class);
+        answer.put("configuration", org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration.class);
+        answer.put("eventbridgeClient", software.amazon.awssdk.services.eventbridge.EventBridgeClient.class);
         answer.put("lazyStartProducer", boolean.class);
-        answer.put("operation", org.apache.camel.component.aws2.sts.EvenbridgeOperations.class);
+        answer.put("operation", org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations.class);
         answer.put("pojoRequest", boolean.class);
         answer.put("proxyHost", java.lang.String.class);
         answer.put("proxyPort", java.lang.Integer.class);
         answer.put("proxyProtocol", software.amazon.awssdk.core.Protocol.class);
         answer.put("region", java.lang.String.class);
         answer.put("secretKey", java.lang.String.class);
-        answer.put("stsClient", software.amazon.awssdk.services.sts.StsClient.class);
         answer.put("trustAllCertificates", boolean.class);
         return answer;
     }
@@ -86,6 +87,8 @@ public class STS2ComponentConfigurer extends PropertyConfigurerSupport implement
         case "basicpropertybinding":
         case "basicPropertyBinding": return target.isBasicPropertyBinding();
         case "configuration": return target.getConfiguration();
+        case "eventbridgeclient":
+        case "eventbridgeClient": return getOrCreateConfiguration(target).getEventbridgeClient();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "operation": return getOrCreateConfiguration(target).getOperation();
@@ -100,8 +103,6 @@ public class STS2ComponentConfigurer extends PropertyConfigurerSupport implement
         case "region": return getOrCreateConfiguration(target).getRegion();
         case "secretkey":
         case "secretKey": return getOrCreateConfiguration(target).getSecretKey();
-        case "stsclient":
-        case "stsClient": return getOrCreateConfiguration(target).getStsClient();
         case "trustallcertificates":
         case "trustAllCertificates": return getOrCreateConfiguration(target).isTrustAllCertificates();
         default: return null;
diff --git a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2EndpointConfigurer.java b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeEndpointConfigurer.java
similarity index 86%
rename from components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2EndpointConfigurer.java
rename to components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeEndpointConfigurer.java
index 71609fd..4dadaf8 100644
--- a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/STS2EndpointConfigurer.java
+++ b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeEndpointConfigurer.java
@@ -4,6 +4,7 @@ package org.apache.camel.component.aws2.sts;
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeEndpoint;
 import org.apache.camel.spi.GeneratedPropertyConfigurer;
 import org.apache.camel.spi.PropertyConfigurerGetter;
 import org.apache.camel.util.CaseInsensitiveMap;
@@ -13,7 +14,7 @@ import org.apache.camel.support.component.PropertyConfigurerSupport;
  * Generated by camel build tools - do NOT edit this file!
  */
 @SuppressWarnings("unchecked")
-public class STS2EndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
+public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport implements GeneratedPropertyConfigurer, PropertyConfigurerGetter {
 
     @Override
     public boolean configure(CamelContext camelContext, Object obj, String name, Object value, boolean ignoreCase) {
@@ -25,9 +26,11 @@ public class STS2EndpointConfigurer extends PropertyConfigurerSupport implements
         case "autoDiscoverClient": target.getConfiguration().setAutoDiscoverClient(property(camelContext, boolean.class, value)); return true;
         case "basicpropertybinding":
         case "basicPropertyBinding": target.setBasicPropertyBinding(property(camelContext, boolean.class, value)); return true;
+        case "eventbridgeclient":
+        case "eventbridgeClient": target.getConfiguration().setEventbridgeClient(property(camelContext, software.amazon.awssdk.services.eventbridge.EventBridgeClient.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
-        case "operation": target.getConfiguration().setOperation(property(camelContext, org.apache.camel.component.aws2.sts.EvenbridgeOperations.class, value)); return true;
+        case "operation": target.getConfiguration().setOperation(property(camelContext, org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations.class, value)); return true;
         case "pojorequest":
         case "pojoRequest": target.getConfiguration().setPojoRequest(property(camelContext, boolean.class, value)); return true;
         case "proxyhost":
@@ -39,8 +42,6 @@ public class STS2EndpointConfigurer extends PropertyConfigurerSupport implements
         case "region": target.getConfiguration().setRegion(property(camelContext, java.lang.String.class, value)); return true;
         case "secretkey":
         case "secretKey": target.getConfiguration().setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
-        case "stsclient":
-        case "stsClient": target.getConfiguration().setStsClient(property(camelContext, software.amazon.awssdk.services.sts.StsClient.class, value)); return true;
         case "synchronous": target.setSynchronous(property(camelContext, boolean.class, value)); return true;
         case "trustallcertificates":
         case "trustAllCertificates": target.getConfiguration().setTrustAllCertificates(property(camelContext, boolean.class, value)); return true;
@@ -54,15 +55,15 @@ public class STS2EndpointConfigurer extends PropertyConfigurerSupport implements
         answer.put("accessKey", java.lang.String.class);
         answer.put("autoDiscoverClient", boolean.class);
         answer.put("basicPropertyBinding", boolean.class);
+        answer.put("eventbridgeClient", software.amazon.awssdk.services.eventbridge.EventBridgeClient.class);
         answer.put("lazyStartProducer", boolean.class);
-        answer.put("operation", org.apache.camel.component.aws2.sts.EvenbridgeOperations.class);
+        answer.put("operation", org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations.class);
         answer.put("pojoRequest", boolean.class);
         answer.put("proxyHost", java.lang.String.class);
         answer.put("proxyPort", java.lang.Integer.class);
         answer.put("proxyProtocol", software.amazon.awssdk.core.Protocol.class);
         answer.put("region", java.lang.String.class);
         answer.put("secretKey", java.lang.String.class);
-        answer.put("stsClient", software.amazon.awssdk.services.sts.StsClient.class);
         answer.put("synchronous", boolean.class);
         answer.put("trustAllCertificates", boolean.class);
         return answer;
@@ -78,6 +79,8 @@ public class STS2EndpointConfigurer extends PropertyConfigurerSupport implements
         case "autoDiscoverClient": return target.getConfiguration().isAutoDiscoverClient();
         case "basicpropertybinding":
         case "basicPropertyBinding": return target.isBasicPropertyBinding();
+        case "eventbridgeclient":
+        case "eventbridgeClient": return target.getConfiguration().getEventbridgeClient();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "operation": return target.getConfiguration().getOperation();
@@ -92,8 +95,6 @@ public class STS2EndpointConfigurer extends PropertyConfigurerSupport implements
         case "region": return target.getConfiguration().getRegion();
         case "secretkey":
         case "secretKey": return target.getConfiguration().getSecretKey();
-        case "stsclient":
-        case "stsClient": return target.getConfiguration().getStsClient();
         case "synchronous": return target.isSynchronous();
         case "trustallcertificates":
         case "trustAllCertificates": return target.getConfiguration().isTrustAllCertificates();
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component.properties b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component.properties
index f52f268..4edcf47 100644
--- a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component.properties
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component.properties
@@ -1,7 +1,7 @@
 # Generated by camel build tools - do NOT edit this file!
-components=aws2-sts
+components=aws2-eventbridge
 groupId=org.apache.camel
-artifactId=camel-aws2-sts
+artifactId=camel-aws2-eventbridge
 version=3.6.0-SNAPSHOT
-projectName=Camel :: AWS2 STS
-projectDescription=A Camel Amazon STS Web Service Component Version 2
+projectName=Camel :: AWS2 Eventbridge
+projectDescription=A Camel Amazon Eventbridge Web Service Component Version 2
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-eventbridge b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-eventbridge
new file mode 100644
index 0000000..c13ec88
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-eventbridge
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.sts.EventbridgeComponent
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-sts b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-sts
deleted file mode 100644
index 4d0c549..0000000
--- a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-sts
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws2.sts.STS2Component
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-component b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-component
new file mode 100644
index 0000000..93bbb8d
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-component
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.sts.EventbridgeComponentConfigurer
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-endpoint b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-endpoint
new file mode 100644
index 0000000..ad9e1de
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-endpoint
@@ -0,0 +1,2 @@
+# Generated by camel build tools - do NOT edit this file!
+class=org.apache.camel.component.aws2.sts.EventbridgeEndpointConfigurer
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-component b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-component
deleted file mode 100644
index da92f0a..0000000
--- a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-component
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws2.sts.STS2ComponentConfigurer
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-endpoint b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-endpoint
deleted file mode 100644
index ccdf76f..0000000
--- a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-sts-endpoint
+++ /dev/null
@@ -1,2 +0,0 @@
-# Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws2.sts.STS2EndpointConfigurer
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-sts.json b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-eventbridge.json
similarity index 60%
rename from components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-sts.json
rename to components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-eventbridge.json
index e5f9498..8b1ea66 100644
--- a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-sts.json
+++ b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-eventbridge.json
@@ -1,20 +1,20 @@
 {
   "component": {
     "kind": "component",
-    "name": "aws2-sts",
-    "title": "AWS 2 Security Token Service (STS)",
-    "description": "Manage AWS STS cluster instances using AWS SDK version 2.x.",
+    "name": "aws2-eventbridge",
+    "title": "AWS 2 Eventbridge",
+    "description": "Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.",
     "deprecated": false,
-    "firstVersion": "3.5.0",
+    "firstVersion": "3.6.0",
     "label": "cloud,management",
-    "javaType": "org.apache.camel.component.aws2.sts.STS2Component",
+    "javaType": "org.apache.camel.component.aws2.sts.EventbridgeComponent",
     "supportLevel": "Preview",
     "groupId": "org.apache.camel",
-    "artifactId": "camel-aws2-sts",
+    "artifactId": "camel-aws2-eventbridge",
     "version": "3.6.0-SNAPSHOT",
-    "scheme": "aws2-sts",
+    "scheme": "aws2-eventbridge",
     "extendsScheme": "",
-    "syntax": "aws2-sts:label",
+    "syntax": "aws2-eventbridge:label",
     "async": false,
     "api": false,
     "consumerOnly": false,
@@ -22,36 +22,36 @@
     "lenientProperties": false
   },
   "componentProperties": {
-    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the regist [...]
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Configuration", "deprecated": false, "secret": false, "description": "Component configuration" },
+    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "deprecated": false, "secret": false, "description": "Component configuration" },
+    "eventbridgeClient": { "kind": "property", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Operations", "enum": [ "assumeRole", "getSessionToken", "getFederationToken" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description" [...]
-    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
-    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
-    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
-    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the STS client" },
-    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of t [...]
-    "stsClient": { "kind": "property", "displayName": "Sts Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sts.StsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS STS as client" },
-    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.EvenbridgeOperations", "enum": [ "putRule" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "The operation to perform" },
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the STS client" },
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase na [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
   },
   "properties": {
-    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Logical name" },
-    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the regis [...]
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Logical name" },
+    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in th [...]
+    "eventbridgeClient": { "kind": "parameter", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the  [...]
-    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.STS2Operations", "enum": [ "assumeRole", "getSessionToken", "getFederationToken" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description [...]
-    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
-    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
-    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
-    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the STS client" },
-    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of  [...]
-    "stsClient": { "kind": "parameter", "displayName": "Sts Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.sts.StsClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS STS as client" },
-    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.EvenbridgeOperations", "enum": [ "putRule" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "The operation to perform" },
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the STS client" },
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase n [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
     "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
-    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.STS2Configuration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
   }
 }
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EvenbridgeOperations.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
similarity index 94%
rename from components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EvenbridgeOperations.java
rename to components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
index c3e4ad5..0aa4338 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EvenbridgeOperations.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 public enum EvenbridgeOperations {
 
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponent.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponent.java
similarity index 94%
rename from components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponent.java
rename to components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponent.java
index e45edfb..6eeecbd 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponent.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponent.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 import java.util.Map;
 import java.util.Set;
@@ -27,7 +27,6 @@ import org.apache.camel.support.DefaultComponent;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-
 import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
 
 /**
@@ -53,7 +52,8 @@ public class EventbridgeComponent extends DefaultComponent {
 
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        EventbridgeConfiguration configuration = this.configuration != null ? this.configuration.copy() : new EventbridgeConfiguration();
+        EventbridgeConfiguration configuration
+                = this.configuration != null ? this.configuration.copy() : new EventbridgeConfiguration();
         EventbridgeEndpoint endpoint = new EventbridgeEndpoint(uri, this, configuration);
         setProperties(endpoint, parameters);
         if (endpoint.getConfiguration().isAutoDiscoverClient()) {
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponentVerifierExtension.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentVerifierExtension.java
similarity index 98%
rename from components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponentVerifierExtension.java
rename to components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentVerifierExtension.java
index b68adcd..dd2869b 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeComponentVerifierExtension.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentVerifierExtension.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 import java.util.Map;
 
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConfiguration.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
similarity index 99%
rename from components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConfiguration.java
rename to components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
index 15245ee..9b7707d 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConfiguration.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.Metadata;
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConstants.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
similarity index 89%
rename from components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConstants.java
rename to components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
index 3a30b23..eecf9ca 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeConstants.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 /**
  * Constants used in Camel AWS2 STS module
@@ -22,4 +22,5 @@ package org.apache.camel.component.aws2.sts;
 public interface EventbridgeConstants {
     String OPERATION = "CamelAwsEventbridgeOperation";
     String RULE_NAME = "CamelAwsEventbridgeRuleName";
+    String EVENT_PATTERN = "CamelAwsEventbridgeEventPattern";
 }
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeEndpoint.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpoint.java
similarity index 93%
rename from components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeEndpoint.java
rename to components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpoint.java
index 7e9b456..15f8a39 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeEndpoint.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpoint.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 import java.net.URI;
 
@@ -71,14 +71,15 @@ public class EventbridgeEndpoint extends DefaultEndpoint {
     public void doStart() throws Exception {
         super.doStart();
 
-        eventbridgeClient = configuration.getEventbridgeClient() != null ? configuration.getEventbridgeClient() : createStsClient();
+        eventbridgeClient
+                = configuration.getEventbridgeClient() != null ? configuration.getEventbridgeClient() : createStsClient();
     }
 
     @Override
     public void doStop() throws Exception {
         if (ObjectHelper.isEmpty(configuration.getEventbridgeClient())) {
             if (eventbridgeClient != null) {
-            	eventbridgeClient.close();
+                eventbridgeClient.close();
             }
         }
         super.doStop();
@@ -93,8 +94,8 @@ public class EventbridgeEndpoint extends DefaultEndpoint {
     }
 
     EventBridgeClient createStsClient() {
-    	EventBridgeClient client = null;
-    	EventBridgeClientBuilder clientBuilder = EventBridgeClient.builder();
+        EventBridgeClient client = null;
+        EventBridgeClientBuilder clientBuilder = EventBridgeClient.builder();
         ProxyConfiguration.Builder proxyConfig = null;
         ApacheHttpClient.Builder httpClientBuilder = null;
         boolean isClientConfigFound = false;
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeProducer.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java
similarity index 82%
rename from components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeProducer.java
rename to components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java
index 1f7bce0..74a6671 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/sts/EventbridgeProducer.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeProducer.java
@@ -14,27 +14,25 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.InvalidPayloadException;
 import org.apache.camel.Message;
-import org.apache.camel.component.aws2.eks.EKS2Constants;
 import org.apache.camel.support.DefaultProducer;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import software.amazon.awssdk.awscore.exception.AwsServiceException;
-import software.amazon.awssdk.services.eks.model.ListClustersRequest;
-import software.amazon.awssdk.services.eks.model.ListClustersResponse;
 import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
 import software.amazon.awssdk.services.eventbridge.model.PutRuleRequest;
 import software.amazon.awssdk.services.eventbridge.model.PutRuleResponse;
 
 /**
- * A Producer which sends messages to the Amazon Eventbridge Service SDK v2 <a href="http://aws.amazon.com/sts/">AWS STS</a>
+ * A Producer which sends messages to the Amazon Eventbridge Service SDK v2 <a href="http://aws.amazon.com/sts/">AWS
+ * STS</a>
  */
 public class EventbridgeProducer extends DefaultProducer {
 
@@ -57,7 +55,7 @@ public class EventbridgeProducer extends DefaultProducer {
         }
     }
 
-	private EvenbridgeOperations determineOperation(Exchange exchange) {
+    private EvenbridgeOperations determineOperation(Exchange exchange) {
         EvenbridgeOperations operation = exchange.getIn().getHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.class);
         if (operation == null) {
             operation = getConfiguration().getOperation();
@@ -72,12 +70,12 @@ public class EventbridgeProducer extends DefaultProducer {
     @Override
     public String toString() {
         if (eventbridgeProducerToString == null) {
-        	eventbridgeProducerToString = "EventbridgeProducer[" + URISupport.sanitizeUri(getEndpoint().getEndpointUri()) + "]";
+            eventbridgeProducerToString = "EventbridgeProducer[" + URISupport.sanitizeUri(getEndpoint().getEndpointUri()) + "]";
         }
         return eventbridgeProducerToString;
     }
-    
-    private void putRule(EventBridgeClient eventbridgeClient, Exchange exchange) {
+
+    private void putRule(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
         if (getConfiguration().isPojoRequest()) {
             Object payload = exchange.getIn().getMandatoryBody();
             if (payload instanceof PutRuleRequest) {
@@ -97,17 +95,21 @@ public class EventbridgeProducer extends DefaultProducer {
                 String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
                 builder.name(ruleName);
             }
-            ListClustersResponse result;
+            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN))) {
+                String eventPattern = exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN, String.class);
+                builder.eventPattern(eventPattern);
+            }
+            PutRuleResponse result;
             try {
-                result = eksClient.listClusters(builder.build());
+                result = eventbridgeClient.putRule(builder.build());
             } catch (AwsServiceException ase) {
-                LOG.trace("List Clusters command returned the error code {}", ase.awsErrorDetails().errorCode());
+                LOG.trace("Put Rule command returned the error code {}", ase.awsErrorDetails().errorCode());
                 throw ase;
             }
             Message message = getMessageForResponse(exchange);
             message.setBody(result);
         }
-	}
+    }
 
     @Override
     public EventbridgeEndpoint getEndpoint() {
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurationTest.java
similarity index 79%
rename from components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurationTest.java
rename to components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurationTest.java
index b657f75..1b9cd94 100644
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentConfigurationTest.java
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurationTest.java
@@ -14,8 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
+import org.apache.camel.component.aws2.eventbridge.EventbridgeComponent;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.core.Protocol;
@@ -23,14 +25,14 @@ import software.amazon.awssdk.regions.Region;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-public class STS2ComponentConfigurationTest extends CamelTestSupport {
+public class EventbridgeComponentConfigurationTest extends CamelTestSupport {
 
     @Test
     public void createEndpointWithComponentElements() throws Exception {
-        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
         component.getConfiguration().setAccessKey("XXX");
         component.getConfiguration().setSecretKey("YYY");
-        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint("aws2-sts://label");
+        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint("aws2-eventbridge://label");
 
         assertEquals("XXX", endpoint.getConfiguration().getAccessKey());
         assertEquals("YYY", endpoint.getConfiguration().getSecretKey());
@@ -38,12 +40,13 @@ public class STS2ComponentConfigurationTest extends CamelTestSupport {
 
     @Test
     public void createEndpointWithComponentAndEndpointElements() throws Exception {
-        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
         component.getConfiguration().setAccessKey("XXX");
         component.getConfiguration().setSecretKey("YYY");
         component.getConfiguration().setRegion(Region.US_WEST_1.toString());
         EventbridgeEndpoint endpoint
-                = (EventbridgeEndpoint) component.createEndpoint("aws2-sts://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1");
+                = (EventbridgeEndpoint) component
+                        .createEndpoint("aws2-eventbridge://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1");
 
         assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
         assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
@@ -52,13 +55,13 @@ public class STS2ComponentConfigurationTest extends CamelTestSupport {
 
     @Test
     public void createEndpointWithComponentEndpointElementsAndProxy() throws Exception {
-        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
+        EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
         component.getConfiguration().setAccessKey("XXX");
         component.getConfiguration().setSecretKey("YYY");
         component.getConfiguration().setRegion(Region.US_WEST_1.toString());
         EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component
                 .createEndpoint(
-                        "aws2-sts://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1&proxyHost=localhost&proxyPort=9000&proxyProtocol=HTTP");
+                        "aws2-eventbridge://label?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1&proxyHost=localhost&proxyPort=9000&proxyProtocol=HTTP");
 
         assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
         assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java
deleted file mode 100644
index e083368..0000000
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/AmazonSTSClientMock.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws2.sts;
-
-import software.amazon.awssdk.services.sts.StsClient;
-import software.amazon.awssdk.services.sts.model.AssumeRoleRequest;
-import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
-import software.amazon.awssdk.services.sts.model.AssumedRoleUser;
-import software.amazon.awssdk.services.sts.model.Credentials;
-import software.amazon.awssdk.services.sts.model.GetFederationTokenRequest;
-import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse;
-import software.amazon.awssdk.services.sts.model.GetSessionTokenRequest;
-import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse;
-
-public class AmazonSTSClientMock implements StsClient {
-
-    public AmazonSTSClientMock() {
-    }
-
-    @Override
-    public AssumeRoleResponse assumeRole(AssumeRoleRequest assumeRoleRequest) {
-        return AssumeRoleResponse.builder().assumedRoleUser(AssumedRoleUser.builder().arn("arn").build()).build();
-    }
-
-    @Override
-    public GetSessionTokenResponse getSessionToken(GetSessionTokenRequest getSessionTokenRequest) {
-        return GetSessionTokenResponse.builder()
-                .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test").build())
-                .build();
-    }
-
-    @Override
-    public GetFederationTokenResponse getFederationToken(GetFederationTokenRequest getFederationTokenRequest) {
-        return GetFederationTokenResponse.builder()
-                .credentials(Credentials.builder().accessKeyId("xxx").secretAccessKey("yyy").sessionToken("test").build())
-                .build();
-    }
-
-    @Override
-    public String serviceName() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public void close() {
-        // TODO Auto-generated method stub
-
-    }
-}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentClientRegistryTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentClientRegistryTest.java
deleted file mode 100644
index 9491dff..0000000
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentClientRegistryTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws2.sts;
-
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-public class STS2ComponentClientRegistryTest extends CamelTestSupport {
-
-    @Test
-    public void createEndpointWithMinimalSTSClientConfiguration() throws Exception {
-
-        AmazonSTSClientMock clientMock = new AmazonSTSClientMock();
-        context.getRegistry().bind("amazonStsClient", clientMock);
-        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
-        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint("aws2-sts://TestDomain");
-
-        assertNotNull(endpoint.getConfiguration().getStsClient());
-    }
-
-    @Test
-    public void createEndpointWithMinimalSTSClientMisconfiguration() throws Exception {
-
-        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
-        assertThrows(IllegalArgumentException.class, () -> {
-            component.createEndpoint("aws2-sts://TestDomain");
-        });
-    }
-
-    @Test
-    public void createEndpointWithAutoDiscoverClientFalse() throws Exception {
-
-        AmazonSTSClientMock clientMock = new AmazonSTSClientMock();
-        context.getRegistry().bind("amazonStsClient", clientMock);
-        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
-        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component
-                .createEndpoint("aws2-sts://TestDomain?accessKey=xxx&secretKey=yyy&autoDiscoverClient=false");
-
-        assertNotSame(clientMock, endpoint.getConfiguration().getStsClient());
-    }
-
-    @Test
-    public void createEndpointWithAutoDiscoverClientTrue() throws Exception {
-
-        AmazonSTSClientMock clientMock = new AmazonSTSClientMock();
-        context.getRegistry().bind("amazonStsClient", clientMock);
-        EventbridgeComponent component = context.getComponent("aws2-sts", EventbridgeComponent.class);
-        EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint("aws2-sts://TestDomain?accessKey=xxx&secretKey=yyy");
-
-        assertSame(clientMock, endpoint.getConfiguration().getStsClient());
-    }
-}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentVerifierExtensionTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentVerifierExtensionTest.java
deleted file mode 100644
index c4b280c..0000000
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ComponentVerifierExtensionTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws2.sts;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.Component;
-import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class STS2ComponentVerifierExtensionTest extends CamelTestSupport {
-
-    // *************************************************
-    // Tests (parameters)
-    // *************************************************
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
-
-    @Test
-    public void testParameters() throws Exception {
-        Component component = context().getComponent("aws2-sts");
-
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "l");
-        parameters.put("label", "test");
-        parameters.put("operation", EvenbridgeOperations.assumeRole);
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.OK, result.getStatus());
-    }
-
-    @Test
-    public void testConnectivity() throws Exception {
-        Component component = context().getComponent("aws2-sts");
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "US_EAST_1");
-        parameters.put("label", "test");
-        parameters.put("operation", EvenbridgeOperations.assumeRole);
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
-    }
-
-    @Test
-    public void testConnectivityAndRegion() throws Exception {
-        Component component = context().getComponent("aws2-sts");
-        ComponentVerifierExtension verifier
-                = component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("secretKey", "l");
-        parameters.put("accessKey", "k");
-        parameters.put("region", "l");
-        parameters.put("label", "test");
-        parameters.put("operation", EvenbridgeOperations.assumeRole);
-
-        ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, result.getStatus());
-    }
-
-}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerSpringTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerSpringTest.java
deleted file mode 100644
index d2b46e1..0000000
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerSpringTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws2.sts;
-
-import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.spring.junit5.CamelSpringTestSupport;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
-import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse;
-import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class STS2ProducerSpringTest extends CamelSpringTestSupport {
-
-    @EndpointInject("mock:result")
-    private MockEndpoint mock;
-
-    @Test
-    public void stsAssumeRoleTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:assumeRole", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.assumeRole);
-                exchange.getIn().setHeader(EventbridgeConstants.ROLE_ARN, "arn");
-                exchange.getIn().setHeader(EventbridgeConstants.ROLE_SESSION_NAME, "sessionarn");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        AssumeRoleResponse resultGet = (AssumeRoleResponse) exchange.getIn().getBody();
-        assertEquals("arn", resultGet.assumedRoleUser().arn());
-    }
-
-    @Test
-    public void stsGetSessionTokenTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:getSessionToken", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.getSessionToken);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        GetSessionTokenResponse resultGet = (GetSessionTokenResponse) exchange.getIn().getBody();
-        assertEquals("xxx", resultGet.credentials().accessKeyId());
-    }
-
-    public void stsGetFederationTokenTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:getFederationToken", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.getFederationToken);
-                exchange.getIn().setHeader(EventbridgeConstants.FEDERATED_NAME, "federation-account");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        GetFederationTokenResponse resultGet = (GetFederationTokenResponse) exchange.getIn().getBody();
-        assertEquals("xxx", resultGet.credentials().accessKeyId());
-    }
-
-    @Override
-    protected ClassPathXmlApplicationContext createApplicationContext() {
-        return new ClassPathXmlApplicationContext("org/apache/camel/component/aws2/sts/STSComponentSpringTest-context.xml");
-    }
-}
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java
deleted file mode 100644
index 8ed942f..0000000
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/sts/STS2ProducerTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.aws2.sts;
-
-import org.apache.camel.BindToRegistry;
-import org.apache.camel.EndpointInject;
-import org.apache.camel.Exchange;
-import org.apache.camel.Processor;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-import software.amazon.awssdk.services.sts.model.AssumeRoleResponse;
-import software.amazon.awssdk.services.sts.model.GetFederationTokenResponse;
-import software.amazon.awssdk.services.sts.model.GetSessionTokenResponse;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class STS2ProducerTest extends CamelTestSupport {
-
-    @BindToRegistry("amazonStsClient")
-    AmazonSTSClientMock clientMock = new AmazonSTSClientMock();
-
-    @EndpointInject("mock:result")
-    private MockEndpoint mock;
-
-    @Test
-    public void stsAssumeRoleTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:assumeRole", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.assumeRole);
-                exchange.getIn().setHeader(EventbridgeConstants.ROLE_ARN, "arn");
-                exchange.getIn().setHeader(EventbridgeConstants.ROLE_SESSION_NAME, "sessionarn");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        AssumeRoleResponse resultGet = (AssumeRoleResponse) exchange.getIn().getBody();
-        assertEquals("arn", resultGet.assumedRoleUser().arn());
-    }
-
-    @Test
-    public void stsGetSessionTokenTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:getSessionToken", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.getSessionToken);
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        GetSessionTokenResponse resultGet = (GetSessionTokenResponse) exchange.getIn().getBody();
-        assertEquals("xxx", resultGet.credentials().accessKeyId());
-    }
-
-    @Test
-    public void stsGetFederationTokenTest() throws Exception {
-
-        mock.expectedMessageCount(1);
-        Exchange exchange = template.request("direct:getFederationToken", new Processor() {
-            @Override
-            public void process(Exchange exchange) throws Exception {
-                exchange.getIn().setHeader(EventbridgeConstants.OPERATION, EvenbridgeOperations.getFederationToken);
-                exchange.getIn().setHeader(EventbridgeConstants.FEDERATED_NAME, "federation-account");
-            }
-        });
-
-        assertMockEndpointsSatisfied();
-
-        GetFederationTokenResponse resultGet = (GetFederationTokenResponse) exchange.getIn().getBody();
-        assertEquals("xxx", resultGet.credentials().accessKeyId());
-    }
-
-    @Override
-    protected RouteBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                from("direct:assumeRole").to("aws2-sts://test?stsClient=#amazonStsClient&operation=assumeRole")
-                        .to("mock:result");
-                from("direct:getSessionToken").to("aws2-sts://test?stsClient=#amazonStsClient&operation=getSessionToken")
-                        .to("mock:result");
-                from("direct:getFederationToken").to("aws2-sts://test?stsClient=#amazonStsClient&operation=getFederationToken")
-                        .to("mock:result");
-            }
-        };
-    }
-}
diff --git a/core/camel-allcomponents/pom.xml b/core/camel-allcomponents/pom.xml
index bcf99b1..ecf8daf 100644
--- a/core/camel-allcomponents/pom.xml
+++ b/core/camel-allcomponents/pom.xml
@@ -196,6 +196,10 @@
 		</dependency>
 		<dependency>
 			<groupId>org.apache.camel</groupId>
+			<artifactId>camel-aws2-eventbridge</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.camel</groupId>
 			<artifactId>camel-aws2-iam</artifactId>
 		</dependency>
 		<dependency>
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index e18e72f..da13164 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -538,6 +538,17 @@ public interface ComponentsBuilderFactory {
         return org.apache.camel.builder.component.dsl.Aws2EksComponentBuilderFactory.aws2Eks();
     }
     /**
+     * AWS 2 Eventbridge (camel-aws2-eventbridge)
+     * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+     * 
+     * Category: cloud,management
+     * Since: 3.6
+     * Maven coordinates: org.apache.camel:camel-aws2-eventbridge
+     */
+    static org.apache.camel.builder.component.dsl.Aws2EventbridgeComponentBuilderFactory.Aws2EventbridgeComponentBuilder aws2Eventbridge() {
+        return org.apache.camel.builder.component.dsl.Aws2EventbridgeComponentBuilderFactory.aws2Eventbridge();
+    }
+    /**
      * AWS 2 Identity and Access Management (IAM) (camel-aws2-iam)
      * Manage AWS IAM instances using AWS SDK version 2.x.
      * 
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
new file mode 100644
index 0000000..00114c8
--- /dev/null
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
@@ -0,0 +1,288 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.component.dsl;
+
+import javax.annotation.Generated;
+import org.apache.camel.Component;
+import org.apache.camel.builder.component.AbstractComponentBuilder;
+import org.apache.camel.builder.component.ComponentBuilder;
+import org.apache.camel.component.aws2.sts.EventbridgeComponent;
+
+/**
+ * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+ * 
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.ComponentDslMojo")
+public interface Aws2EventbridgeComponentBuilderFactory {
+
+    /**
+     * AWS 2 Eventbridge (camel-aws2-eventbridge)
+     * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+     * 
+     * Category: cloud,management
+     * Since: 3.6
+     * Maven coordinates: org.apache.camel:camel-aws2-eventbridge
+     */
+    static Aws2EventbridgeComponentBuilder aws2Eventbridge() {
+        return new Aws2EventbridgeComponentBuilderImpl();
+    }
+
+    /**
+     * Builder for the AWS 2 Eventbridge component.
+     */
+    interface Aws2EventbridgeComponentBuilder
+            extends
+                ComponentBuilder<EventbridgeComponent> {
+        /**
+         * Setting the autoDiscoverClient mechanism, if true, the component will
+         * look for a client instance in the registry automatically otherwise it
+         * will skip that checking.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: common
+         */
+        default Aws2EventbridgeComponentBuilder autoDiscoverClient(
+                boolean autoDiscoverClient) {
+            doSetProperty("autoDiscoverClient", autoDiscoverClient);
+            return this;
+        }
+        /**
+         * Component configuration.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.aws2.sts.EventbridgeConfiguration</code> type.
+         * 
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder configuration(
+                org.apache.camel.component.aws2.sts.EventbridgeConfiguration configuration) {
+            doSetProperty("configuration", configuration);
+            return this;
+        }
+        /**
+         * To use a existing configured AWS Eventbridge as client.
+         * 
+         * The option is a:
+         * <code>software.amazon.awssdk.services.eventbridge.EventBridgeClient</code> type.
+         * 
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder eventbridgeClient(
+                software.amazon.awssdk.services.eventbridge.EventBridgeClient eventbridgeClient) {
+            doSetProperty("eventbridgeClient", eventbridgeClient);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * The operation to perform.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.aws2.sts.EvenbridgeOperations</code>
+         * type.
+         * 
+         * Default: assumeRole
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder operation(
+                org.apache.camel.component.aws2.sts.EvenbridgeOperations operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
+        /**
+         * If we want to use a POJO request as body or not.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder pojoRequest(boolean pojoRequest) {
+            doSetProperty("pojoRequest", pojoRequest);
+            return this;
+        }
+        /**
+         * To define a proxy host when instantiating the STS client.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder proxyHost(
+                java.lang.String proxyHost) {
+            doSetProperty("proxyHost", proxyHost);
+            return this;
+        }
+        /**
+         * To define a proxy port when instantiating the STS client.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder proxyPort(
+                java.lang.Integer proxyPort) {
+            doSetProperty("proxyPort", proxyPort);
+            return this;
+        }
+        /**
+         * To define a proxy protocol when instantiating the STS client.
+         * 
+         * The option is a: <code>software.amazon.awssdk.core.Protocol</code>
+         * type.
+         * 
+         * Default: HTTPS
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder proxyProtocol(
+                software.amazon.awssdk.core.Protocol proxyProtocol) {
+            doSetProperty("proxyProtocol", proxyProtocol);
+            return this;
+        }
+        /**
+         * The region in which STS client needs to work. When using this
+         * parameter, the configuration will expect the lowercase name of the
+         * region (for example ap-east-1) You'll need to use the name
+         * Region.EU_WEST_1.id().
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: aws-global
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder region(java.lang.String region) {
+            doSetProperty("region", region);
+            return this;
+        }
+        /**
+         * If we want to trust all certificates in case of overriding the
+         * endpoint.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default Aws2EventbridgeComponentBuilder trustAllCertificates(
+                boolean trustAllCertificates) {
+            doSetProperty("trustAllCertificates", trustAllCertificates);
+            return this;
+        }
+        /**
+         * Whether the component should use basic property binding (Camel 2.x)
+         * or the newer property binding with additional capabilities.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        @Deprecated
+        default Aws2EventbridgeComponentBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Amazon AWS Access Key.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default Aws2EventbridgeComponentBuilder accessKey(
+                java.lang.String accessKey) {
+            doSetProperty("accessKey", accessKey);
+            return this;
+        }
+        /**
+         * Amazon AWS Secret Key.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default Aws2EventbridgeComponentBuilder secretKey(
+                java.lang.String secretKey) {
+            doSetProperty("secretKey", secretKey);
+            return this;
+        }
+    }
+
+    class Aws2EventbridgeComponentBuilderImpl
+            extends
+                AbstractComponentBuilder<EventbridgeComponent>
+            implements
+                Aws2EventbridgeComponentBuilder {
+        @Override
+        protected EventbridgeComponent buildConcreteComponent() {
+            return new EventbridgeComponent();
+        }
+        private org.apache.camel.component.aws2.sts.EventbridgeConfiguration getOrCreateConfiguration(
+                org.apache.camel.component.aws2.sts.EventbridgeComponent component) {
+            if (component.getConfiguration() == null) {
+                component.setConfiguration(new org.apache.camel.component.aws2.sts.EventbridgeConfiguration());
+            }
+            return component.getConfiguration();
+        }
+        @Override
+        protected boolean setPropertyOnComponent(
+                Component component,
+                String name,
+                Object value) {
+            switch (name) {
+            case "autoDiscoverClient": getOrCreateConfiguration((EventbridgeComponent) component).setAutoDiscoverClient((boolean) value); return true;
+            case "configuration": ((EventbridgeComponent) component).setConfiguration((org.apache.camel.component.aws2.sts.EventbridgeConfiguration) value); return true;
+            case "eventbridgeClient": getOrCreateConfiguration((EventbridgeComponent) component).setEventbridgeClient((software.amazon.awssdk.services.eventbridge.EventBridgeClient) value); return true;
+            case "lazyStartProducer": ((EventbridgeComponent) component).setLazyStartProducer((boolean) value); return true;
+            case "operation": getOrCreateConfiguration((EventbridgeComponent) component).setOperation((org.apache.camel.component.aws2.sts.EvenbridgeOperations) value); return true;
+            case "pojoRequest": getOrCreateConfiguration((EventbridgeComponent) component).setPojoRequest((boolean) value); return true;
+            case "proxyHost": getOrCreateConfiguration((EventbridgeComponent) component).setProxyHost((java.lang.String) value); return true;
+            case "proxyPort": getOrCreateConfiguration((EventbridgeComponent) component).setProxyPort((java.lang.Integer) value); return true;
+            case "proxyProtocol": getOrCreateConfiguration((EventbridgeComponent) component).setProxyProtocol((software.amazon.awssdk.core.Protocol) value); return true;
+            case "region": getOrCreateConfiguration((EventbridgeComponent) component).setRegion((java.lang.String) value); return true;
+            case "trustAllCertificates": getOrCreateConfiguration((EventbridgeComponent) component).setTrustAllCertificates((boolean) value); return true;
+            case "basicPropertyBinding": ((EventbridgeComponent) component).setBasicPropertyBinding((boolean) value); return true;
+            case "accessKey": getOrCreateConfiguration((EventbridgeComponent) component).setAccessKey((java.lang.String) value); return true;
+            case "secretKey": getOrCreateConfiguration((EventbridgeComponent) component).setSecretKey((java.lang.String) value); return true;
+            default: return false;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/core/camel-componentdsl/src/generated/resources/metadata.json b/core/camel-componentdsl/src/generated/resources/metadata.json
index dc1bd98..66f094f 100644
--- a/core/camel-componentdsl/src/generated/resources/metadata.json
+++ b/core/camel-componentdsl/src/generated/resources/metadata.json
@@ -576,6 +576,28 @@
     "producerOnly": true,
     "lenientProperties": false
   },
+  "Aws2EventbridgeComponentBuilderFactory": {
+    "kind": "component",
+    "name": "aws2-eventbridge",
+    "title": "AWS 2 Eventbridge",
+    "description": "Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.",
+    "deprecated": false,
+    "firstVersion": "3.6.0",
+    "label": "cloud,management",
+    "javaType": "org.apache.camel.component.aws2.sts.EventbridgeComponent",
+    "supportLevel": "Preview",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-aws2-eventbridge",
+    "version": "3.6.0-SNAPSHOT",
+    "scheme": "aws2-eventbridge",
+    "extendsScheme": "",
+    "syntax": "aws2-eventbridge:label",
+    "async": false,
+    "api": false,
+    "consumerOnly": false,
+    "producerOnly": true,
+    "lenientProperties": false
+  },
   "Aws2IamComponentBuilderFactory": {
     "kind": "component",
     "name": "aws2-iam",
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
index e91bbfc..58f0630 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilderFactory.java
@@ -116,6 +116,7 @@ public interface EndpointBuilderFactory
             org.apache.camel.builder.endpoint.dsl.EtcdWatchEndpointBuilderFactory.EtcdWatchBuilders,
             org.apache.camel.builder.endpoint.dsl.EventEndpointBuilderFactory.EventBuilders,
             org.apache.camel.builder.endpoint.dsl.EventHubsEndpointBuilderFactory.EventHubsBuilders,
+            org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeBuilders,
             org.apache.camel.builder.endpoint.dsl.ExecEndpointBuilderFactory.ExecBuilders,
             org.apache.camel.builder.endpoint.dsl.FacebookEndpointBuilderFactory.FacebookBuilders,
             org.apache.camel.builder.endpoint.dsl.FhirEndpointBuilderFactory.FhirBuilders,
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
index 8927626..7f20529 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/EndpointBuilders.java
@@ -113,6 +113,7 @@ public interface EndpointBuilders
             org.apache.camel.builder.endpoint.dsl.EtcdWatchEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EventEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.EventHubsEndpointBuilderFactory,
+            org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.ExecEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.FacebookEndpointBuilderFactory,
             org.apache.camel.builder.endpoint.dsl.FhirEndpointBuilderFactory,
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index 3a8a9b6..450e5cd 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -1121,6 +1121,47 @@ public class StaticEndpointBuilders {
         return org.apache.camel.builder.endpoint.dsl.EKS2EndpointBuilderFactory.endpointBuilder(componentName, path);
     }
     /**
+     * AWS 2 Eventbridge (camel-aws2-eventbridge)
+     * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+     * 
+     * Category: cloud,management
+     * Since: 3.6
+     * Maven coordinates: org.apache.camel:camel-aws2-eventbridge
+     * 
+     * Syntax: <code>aws2-eventbridge:label</code>
+     * 
+     * Path parameter: label (required)
+     * Logical name
+     * 
+     * @param path label
+     */
+    public static org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeEndpointBuilder aws2Eventbridge(
+            String path) {
+        return org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.endpointBuilder("aws2-eventbridge", path);
+    }
+    /**
+     * AWS 2 Eventbridge (camel-aws2-eventbridge)
+     * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+     * 
+     * Category: cloud,management
+     * Since: 3.6
+     * Maven coordinates: org.apache.camel:camel-aws2-eventbridge
+     * 
+     * Syntax: <code>aws2-eventbridge:label</code>
+     * 
+     * Path parameter: label (required)
+     * Logical name
+     * 
+     * @param componentName to use a custom component name for the endpoint
+     * instead of the default name
+     * @param path label
+     */
+    public static org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeEndpointBuilder aws2Eventbridge(
+            String componentName,
+            String path) {
+        return org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.endpointBuilder(componentName, path);
+    }
+    /**
      * AWS 2 Identity and Access Management (IAM) (camel-aws2-iam)
      * Manage AWS IAM instances using AWS SDK version 2.x.
      * 
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
new file mode 100644
index 0000000..286a9dd
--- /dev/null
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
@@ -0,0 +1,458 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.builder.endpoint.dsl;
+
+import javax.annotation.Generated;
+import org.apache.camel.builder.EndpointConsumerBuilder;
+import org.apache.camel.builder.EndpointProducerBuilder;
+import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
+
+/**
+ * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+ * 
+ * Generated by camel build tools - do NOT edit this file!
+ */
+@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
+public interface EventbridgeEndpointBuilderFactory {
+
+
+    /**
+     * Builder for endpoint for the AWS 2 Eventbridge component.
+     */
+    public interface EventbridgeEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default AdvancedEventbridgeEndpointBuilder advanced() {
+            return (AdvancedEventbridgeEndpointBuilder) this;
+        }
+        /**
+         * Setting the autoDiscoverClient mechanism, if true, the component will
+         * look for a client instance in the registry automatically otherwise it
+         * will skip that checking.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: common
+         */
+        default EventbridgeEndpointBuilder autoDiscoverClient(
+                boolean autoDiscoverClient) {
+            doSetProperty("autoDiscoverClient", autoDiscoverClient);
+            return this;
+        }
+        /**
+         * Setting the autoDiscoverClient mechanism, if true, the component will
+         * look for a client instance in the registry automatically otherwise it
+         * will skip that checking.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: true
+         * Group: common
+         */
+        default EventbridgeEndpointBuilder autoDiscoverClient(
+                String autoDiscoverClient) {
+            doSetProperty("autoDiscoverClient", autoDiscoverClient);
+            return this;
+        }
+        /**
+         * To use a existing configured AWS Eventbridge as client.
+         * 
+         * The option is a:
+         * <code>software.amazon.awssdk.services.eventbridge.EventBridgeClient</code> type.
+         * 
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder eventbridgeClient(
+                Object eventbridgeClient) {
+            doSetProperty("eventbridgeClient", eventbridgeClient);
+            return this;
+        }
+        /**
+         * To use a existing configured AWS Eventbridge as client.
+         * 
+         * The option will be converted to a
+         * <code>software.amazon.awssdk.services.eventbridge.EventBridgeClient</code> type.
+         * 
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder eventbridgeClient(
+                String eventbridgeClient) {
+            doSetProperty("eventbridgeClient", eventbridgeClient);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder lazyStartProducer(
+                boolean lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * Whether the producer should be started lazy (on the first message).
+         * By starting lazy you can use this to allow CamelContext and routes to
+         * startup in situations where a producer may otherwise fail during
+         * starting and cause the route to fail being started. By deferring this
+         * startup to be lazy then the startup failure can be handled during
+         * routing messages via Camel's routing error handlers. Beware that when
+         * the first message is processed then creating and starting the
+         * producer may take a little time and prolong the total processing time
+         * of the processing.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder lazyStartProducer(
+                String lazyStartProducer) {
+            doSetProperty("lazyStartProducer", lazyStartProducer);
+            return this;
+        }
+        /**
+         * The operation to perform.
+         * 
+         * The option is a:
+         * <code>org.apache.camel.component.aws2.sts.EvenbridgeOperations</code>
+         * type.
+         * 
+         * Required: true
+         * Default: assumeRole
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder operation(
+                EvenbridgeOperations operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
+        /**
+         * The operation to perform.
+         * 
+         * The option will be converted to a
+         * <code>org.apache.camel.component.aws2.sts.EvenbridgeOperations</code>
+         * type.
+         * 
+         * Required: true
+         * Default: assumeRole
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder operation(String operation) {
+            doSetProperty("operation", operation);
+            return this;
+        }
+        /**
+         * If we want to use a POJO request as body or not.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder pojoRequest(boolean pojoRequest) {
+            doSetProperty("pojoRequest", pojoRequest);
+            return this;
+        }
+        /**
+         * If we want to use a POJO request as body or not.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder pojoRequest(String pojoRequest) {
+            doSetProperty("pojoRequest", pojoRequest);
+            return this;
+        }
+        /**
+         * To define a proxy host when instantiating the STS client.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder proxyHost(String proxyHost) {
+            doSetProperty("proxyHost", proxyHost);
+            return this;
+        }
+        /**
+         * To define a proxy port when instantiating the STS client.
+         * 
+         * The option is a: <code>java.lang.Integer</code> type.
+         * 
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder proxyPort(Integer proxyPort) {
+            doSetProperty("proxyPort", proxyPort);
+            return this;
+        }
+        /**
+         * To define a proxy port when instantiating the STS client.
+         * 
+         * The option will be converted to a <code>java.lang.Integer</code>
+         * type.
+         * 
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder proxyPort(String proxyPort) {
+            doSetProperty("proxyPort", proxyPort);
+            return this;
+        }
+        /**
+         * To define a proxy protocol when instantiating the STS client.
+         * 
+         * The option is a: <code>software.amazon.awssdk.core.Protocol</code>
+         * type.
+         * 
+         * Default: HTTPS
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder proxyProtocol(Protocol proxyProtocol) {
+            doSetProperty("proxyProtocol", proxyProtocol);
+            return this;
+        }
+        /**
+         * To define a proxy protocol when instantiating the STS client.
+         * 
+         * The option will be converted to a
+         * <code>software.amazon.awssdk.core.Protocol</code> type.
+         * 
+         * Default: HTTPS
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder proxyProtocol(String proxyProtocol) {
+            doSetProperty("proxyProtocol", proxyProtocol);
+            return this;
+        }
+        /**
+         * The region in which STS client needs to work. When using this
+         * parameter, the configuration will expect the lowercase name of the
+         * region (for example ap-east-1) You'll need to use the name
+         * Region.EU_WEST_1.id().
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Default: aws-global
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder region(String region) {
+            doSetProperty("region", region);
+            return this;
+        }
+        /**
+         * If we want to trust all certificates in case of overriding the
+         * endpoint.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder trustAllCertificates(
+                boolean trustAllCertificates) {
+            doSetProperty("trustAllCertificates", trustAllCertificates);
+            return this;
+        }
+        /**
+         * If we want to trust all certificates in case of overriding the
+         * endpoint.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: producer
+         */
+        default EventbridgeEndpointBuilder trustAllCertificates(
+                String trustAllCertificates) {
+            doSetProperty("trustAllCertificates", trustAllCertificates);
+            return this;
+        }
+        /**
+         * Amazon AWS Access Key.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default EventbridgeEndpointBuilder accessKey(String accessKey) {
+            doSetProperty("accessKey", accessKey);
+            return this;
+        }
+        /**
+         * Amazon AWS Secret Key.
+         * 
+         * The option is a: <code>java.lang.String</code> type.
+         * 
+         * Group: security
+         */
+        default EventbridgeEndpointBuilder secretKey(String secretKey) {
+            doSetProperty("secretKey", secretKey);
+            return this;
+        }
+    }
+
+    /**
+     * Advanced builder for endpoint for the AWS 2 Eventbridge component.
+     */
+    public interface AdvancedEventbridgeEndpointBuilder
+            extends
+                EndpointProducerBuilder {
+        default EventbridgeEndpointBuilder basic() {
+            return (EventbridgeEndpointBuilder) this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AdvancedEventbridgeEndpointBuilder basicPropertyBinding(
+                boolean basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Whether the endpoint should use basic property binding (Camel 2.x) or
+         * the newer property binding with additional capabilities.
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AdvancedEventbridgeEndpointBuilder basicPropertyBinding(
+                String basicPropertyBinding) {
+            doSetProperty("basicPropertyBinding", basicPropertyBinding);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * 
+         * The option is a: <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AdvancedEventbridgeEndpointBuilder synchronous(
+                boolean synchronous) {
+            doSetProperty("synchronous", synchronous);
+            return this;
+        }
+        /**
+         * Sets whether synchronous processing should be strictly used, or Camel
+         * is allowed to use asynchronous processing (if supported).
+         * 
+         * The option will be converted to a <code>boolean</code> type.
+         * 
+         * Default: false
+         * Group: advanced
+         */
+        default AdvancedEventbridgeEndpointBuilder synchronous(
+                String synchronous) {
+            doSetProperty("synchronous", synchronous);
+            return this;
+        }
+    }
+
+    /**
+     * Proxy enum for
+     * <code>org.apache.camel.component.aws2.sts.EvenbridgeOperations</code>
+     * enum.
+     */
+    enum EvenbridgeOperations {
+        putRule;
+    }
+
+    /**
+     * Proxy enum for <code>software.amazon.awssdk.core.Protocol</code> enum.
+     */
+    enum Protocol {
+        HTTP,
+        HTTPS;
+    }
+
+    public interface EventbridgeBuilders {
+        /**
+         * AWS 2 Eventbridge (camel-aws2-eventbridge)
+         * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+         * 
+         * Category: cloud,management
+         * Since: 3.6
+         * Maven coordinates: org.apache.camel:camel-aws2-eventbridge
+         * 
+         * Syntax: <code>aws2-eventbridge:label</code>
+         * 
+         * Path parameter: label (required)
+         * Logical name
+         * 
+         * @param path label
+         */
+        default EventbridgeEndpointBuilder aws2Eventbridge(String path) {
+            return EventbridgeEndpointBuilderFactory.endpointBuilder("aws2-eventbridge", path);
+        }
+        /**
+         * AWS 2 Eventbridge (camel-aws2-eventbridge)
+         * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+         * 
+         * Category: cloud,management
+         * Since: 3.6
+         * Maven coordinates: org.apache.camel:camel-aws2-eventbridge
+         * 
+         * Syntax: <code>aws2-eventbridge:label</code>
+         * 
+         * Path parameter: label (required)
+         * Logical name
+         * 
+         * @param componentName to use a custom component name for the endpoint
+         * instead of the default name
+         * @param path label
+         */
+        default EventbridgeEndpointBuilder aws2Eventbridge(
+                String componentName,
+                String path) {
+            return EventbridgeEndpointBuilderFactory.endpointBuilder(componentName, path);
+        }
+    }
+    static EventbridgeEndpointBuilder endpointBuilder(
+            String componentName,
+            String path) {
+        class EventbridgeEndpointBuilderImpl extends AbstractEndpointBuilder implements EventbridgeEndpointBuilder, AdvancedEventbridgeEndpointBuilder {
+            public EventbridgeEndpointBuilderImpl(String path) {
+                super(componentName, path);
+            }
+        }
+        return new EventbridgeEndpointBuilderImpl(path);
+    }
+}
\ No newline at end of file
diff --git a/parent/pom.xml b/parent/pom.xml
index f0343a0..4497e40 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -959,6 +959,11 @@
 			</dependency>
 			<dependency>
 				<groupId>org.apache.camel</groupId>
+				<artifactId>camel-aws2-eventbridge</artifactId>
+				<version>${project.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>org.apache.camel</groupId>
 				<artifactId>camel-aws2-iam</artifactId>
 				<version>${project.version}</version>
 			</dependency>


[camel] 09/10: CAMEL-15375 - Camel-AWS2-Eventbridge: Added component to kit

Posted by ac...@apache.org.
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 640908f9f8e5ee943e2c576d7faa8ebbdb4a5aea
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 17:50:51 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: Added component to kit
---
 apache-camel/src/main/descriptors/common-bin.xml                     | 1 +
 bom/camel-bom/pom.xml                                                | 5 +++++
 .../src/main/docs/aws2-eventbridge-component.adoc                    | 2 +-
 components/pom.xml                                                   | 3 ++-
 4 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/apache-camel/src/main/descriptors/common-bin.xml b/apache-camel/src/main/descriptors/common-bin.xml
index b2e4ff4..0111d7f 100644
--- a/apache-camel/src/main/descriptors/common-bin.xml
+++ b/apache-camel/src/main/descriptors/common-bin.xml
@@ -94,6 +94,7 @@
         <include>org.apache.camel:camel-aws2-ec2</include>
         <include>org.apache.camel:camel-aws2-ecs</include>
         <include>org.apache.camel:camel-aws2-eks</include>
+        <include>org.apache.camel:camel-aws2-eventbridge</include>
         <include>org.apache.camel:camel-aws2-iam</include>
         <include>org.apache.camel:camel-aws2-kinesis</include>
         <include>org.apache.camel:camel-aws2-kms</include>
diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml
index cef1cfb..4060e3d 100644
--- a/bom/camel-bom/pom.xml
+++ b/bom/camel-bom/pom.xml
@@ -258,6 +258,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-aws2-eventbridge</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-aws2-iam</artifactId>
         <version>${project.version}</version>
       </dependency>
diff --git a/components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc b/components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
index a319ad7..32e5212 100644
--- a/components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
+++ b/components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
@@ -19,7 +19,7 @@ https://aws.amazon.com/eventbridge/[AWS Eventbridge].
 Prerequisites
 
 You must have a valid Amazon Web Services developer account, and be
-signed up to use Amazon STS. More information is available at
+signed up to use Amazon Eventbridge. More information is available at
 https://aws.amazon.com/eventbridge/[Amazon Eventbridge].
 
 [NOTE]
diff --git a/components/pom.xml b/components/pom.xml
index 30075a4..2773f07 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -129,6 +129,7 @@
         <module>camel-aws2-ec2</module>
         <module>camel-aws2-ecs</module>
         <module>camel-aws2-eks</module>
+        <module>camel-aws2-eventbridge</module>
         <module>camel-aws2-iam</module>
         <module>camel-aws2-kinesis</module>
         <module>camel-aws2-kms</module>
@@ -528,4 +529,4 @@
         </plugins>
     </build>
 
-</project>
\ No newline at end of file
+</project>


[camel] 03/10: CAMEL-15375 - Camel-AWS2-Eventbridge: Regen

Posted by ac...@apache.org.
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 6b9dd07515356f60b9c9d150918ea93908718eca
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 11:47:09 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: Regen
---
 .../EventbridgeComponentConfigurer.java            |  3 +-
 .../EventbridgeEndpointConfigurer.java             |  3 +-
 .../org/apache/camel/component/aws2-eventbridge    |  2 +-
 .../camel/configurer/aws2-eventbridge-component    |  2 +-
 .../camel/configurer/aws2-eventbridge-endpoint     |  2 +-
 .../{sts => eventbridge}/aws2-eventbridge.json     | 50 +++++++-------
 .../aws2/eventbridge/EvenbridgeOperations.java     |  3 +-
 .../aws2/eventbridge/EventbridgeProducer.java      | 36 ++++++++++
 .../EventbridgeComponentConfigurationTest.java     |  2 -
 .../EventbridgePutRuleIntegrationTest.java         | 80 ++++++++++++++++++++++
 .../Aws2EventbridgeComponentBuilderFactory.java    | 21 +++---
 .../src/generated/resources/metadata.json          |  2 +-
 .../dsl/EventbridgeEndpointBuilderFactory.java     | 12 ++--
 13 files changed, 164 insertions(+), 54 deletions(-)

diff --git a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeComponentConfigurer.java b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
similarity index 98%
rename from components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeComponentConfigurer.java
rename to components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
index 6e7c85f..0e4966f 100644
--- a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeComponentConfigurer.java
+++ b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
@@ -1,10 +1,9 @@
 /* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.aws2.eventbridge.EventbridgeComponent;
 import org.apache.camel.spi.GeneratedPropertyConfigurer;
 import org.apache.camel.spi.PropertyConfigurerGetter;
 import org.apache.camel.util.CaseInsensitiveMap;
diff --git a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeEndpointConfigurer.java b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
similarity index 98%
rename from components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeEndpointConfigurer.java
rename to components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
index 4dadaf8..a6b177a 100644
--- a/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/sts/EventbridgeEndpointConfigurer.java
+++ b/components/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
@@ -1,10 +1,9 @@
 /* Generated by camel build tools - do NOT edit this file! */
-package org.apache.camel.component.aws2.sts;
+package org.apache.camel.component.aws2.eventbridge;
 
 import java.util.Map;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.component.aws2.eventbridge.EventbridgeEndpoint;
 import org.apache.camel.spi.GeneratedPropertyConfigurer;
 import org.apache.camel.spi.PropertyConfigurerGetter;
 import org.apache.camel.util.CaseInsensitiveMap;
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-eventbridge b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-eventbridge
index c13ec88..3667d73 100644
--- a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-eventbridge
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/component/aws2-eventbridge
@@ -1,2 +1,2 @@
 # Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws2.sts.EventbridgeComponent
+class=org.apache.camel.component.aws2.eventbridge.EventbridgeComponent
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-component b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-component
index 93bbb8d..8ceba22 100644
--- a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-component
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-component
@@ -1,2 +1,2 @@
 # Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws2.sts.EventbridgeComponentConfigurer
+class=org.apache.camel.component.aws2.eventbridge.EventbridgeComponentConfigurer
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-endpoint b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-endpoint
index ad9e1de..b606c1d 100644
--- a/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-endpoint
+++ b/components/camel-aws2-eventbridge/src/generated/resources/META-INF/services/org/apache/camel/configurer/aws2-eventbridge-endpoint
@@ -1,2 +1,2 @@
 # Generated by camel build tools - do NOT edit this file!
-class=org.apache.camel.component.aws2.sts.EventbridgeEndpointConfigurer
+class=org.apache.camel.component.aws2.eventbridge.EventbridgeEndpointConfigurer
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-eventbridge.json b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
similarity index 65%
rename from components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-eventbridge.json
rename to components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
index 8b1ea66..c2cc268 100644
--- a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/sts/aws2-eventbridge.json
+++ b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
@@ -7,7 +7,7 @@
     "deprecated": false,
     "firstVersion": "3.6.0",
     "label": "cloud,management",
-    "javaType": "org.apache.camel.component.aws2.sts.EventbridgeComponent",
+    "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeComponent",
     "supportLevel": "Preview",
     "groupId": "org.apache.camel",
     "artifactId": "camel-aws2-eventbridge",
@@ -22,36 +22,36 @@
     "lenientProperties": false
   },
   "componentProperties": {
-    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the [...]
-    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "deprecated": false, "secret": false, "description": "Component configuration" },
-    "eventbridgeClient": { "kind": "property", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
+    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instanc [...]
+    "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "deprecated": false, "secret": false, "description": "Component configuration" },
+    "eventbridgeClient": { "kind": "property", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.EvenbridgeOperations", "enum": [ "putRule" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "The operation to perform" },
-    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
-    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
-    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
-    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the STS client" },
-    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase na [...]
-    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTarget" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description":  [...]
+    "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "property", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the ST [...]
+    "region": { "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowe [...]
+    "trustAllCertificates": { "kind": "property", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
     "basicPropertyBinding": { "kind": "property", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": true, "secret": false, "defaultValue": false, "description": "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
-    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+    "accessKey": { "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
   },
   "properties": {
-    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Logical name" },
-    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in th [...]
-    "eventbridgeClient": { "kind": "parameter", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
+    "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Logical name" },
+    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "true", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client instan [...]
+    "eventbridgeClient": { "kind": "parameter", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the  [...]
-    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.sts.EvenbridgeOperations", "enum": [ "putRule" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "The operation to perform" },
-    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
-    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
-    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
-    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the STS client" },
-    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase n [...]
-    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTarget" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": [...]
+    "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
+    "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
+    "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
+    "proxyProtocol": { "kind": "parameter", "displayName": "Proxy Protocol", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy protocol when instantiating the S [...]
+    "region": { "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "defaultValue": "aws-global", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the low [...]
+    "trustAllCertificates": { "kind": "parameter", "displayName": "Trust All Certificates", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to trust all certificates in case of overriding the endpoint" },
     "basicPropertyBinding": { "kind": "parameter", "displayName": "Basic Property Binding", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities" },
     "synchronous": { "kind": "parameter", "displayName": "Synchronous", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "description": "Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported)." },
-    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
-    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.sts.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
+    "accessKey": { "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+    "secretKey": { "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" }
   }
 }
diff --git a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
index 0aa4338..9bef090 100644
--- a/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
+++ b/components/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EvenbridgeOperations.java
@@ -18,5 +18,6 @@ package org.apache.camel.component.aws2.eventbridge;
 
 public enum EvenbridgeOperations {
 
-    putRule
+    putRule,
+    putTarget
 }
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 74a6671..c73bfa1 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
@@ -111,6 +111,42 @@ public class EventbridgeProducer extends DefaultProducer {
         }
     }
 
+    //    private void putTarget(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
+    //        if (getConfiguration().isPojoRequest()) {
+    //            Object payload = exchange.getIn().getMandatoryBody();
+    //            if (payload instanceof PutRuleRequest) {
+    //                PutRuleResponse result;
+    //                try {
+    //                    result = eventbridgeClient.putRule((PutRuleRequest) payload);
+    //                } catch (AwsServiceException ase) {
+    //                    LOG.trace("PutRule command returned the error code {}", ase.awsErrorDetails().errorCode());
+    //                    throw ase;
+    //                }
+    //                Message message = getMessageForResponse(exchange);
+    //                message.setBody(result);
+    //            }
+    //        } else {
+    //            PutRuleRequest.Builder builder = PutRuleRequest.builder();
+    //            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) {
+    //                String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
+    //                builder.name(ruleName);
+    //            }
+    //            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN))) {
+    //                String eventPattern = exchange.getIn().getHeader(EventbridgeConstants.EVENT_PATTERN, String.class);
+    //                builder.eventPattern(eventPattern);
+    //            }
+    //            PutRuleResponse result;
+    //            try {
+    //                result = eventbridgeClient.putTargets(builder.build());
+    //            } catch (AwsServiceException ase) {
+    //                LOG.trace("Put Rule command returned the error code {}", ase.awsErrorDetails().errorCode());
+    //                throw ase;
+    //            }
+    //            Message message = getMessageForResponse(exchange);
+    //            message.setBody(result);
+    //        }
+    //    }
+
     @Override
     public EventbridgeEndpoint getEndpoint() {
         return (EventbridgeEndpoint) super.getEndpoint();
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurationTest.java
index 1b9cd94..2722a82 100644
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurationTest.java
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurationTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.component.aws2.eventbridge;
 
-import org.apache.camel.component.aws2.eventbridge.EventbridgeComponent;
-import org.apache.camel.component.aws2.eventbridge.EventbridgeEndpoint;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.core.Protocol;
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
new file mode 100644
index 0000000..67dcafd
--- /dev/null
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.eventbridge.integration;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeConstants;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
+import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+
+@Disabled("Must be manually tested. Provide your own accessKey and secretKey!")
+public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
+
+
+    @BindToRegistry("eventbridge-client")
+    EventBridgeClient client
+            = EventBridgeClient.builder().credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create("xxx", "yyy")))
+                    .region(Region.US_WEST_1).build();
+
+    @EndpointInject
+    private ProducerTemplate template;
+
+    @EndpointInject("mock:result")
+    private MockEndpoint result;
+
+    @Test
+    public void sendIn() throws Exception {
+        result.expectedMessageCount(1);
+
+        template.send("direct:evs", new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
+                exchange.getIn().setHeader(EventbridgeConstants.EVENT_PATTERN, "{ \"source\": [\"aws.s3\"] }");
+            }
+        });
+        assertMockEndpointsSatisfied();
+
+    }
+
+    @Override
+    protected RouteBuilder createRouteBuilder() throws Exception {
+        return new RouteBuilder() {
+            @Override
+            public void configure() throws Exception {
+                String awsEndpoint = "aws2-eventbridge://test?operation=putRule";
+
+                from("direct:evs").to(awsEndpoint).log("${body}").to("mock:result");
+
+            }
+        };
+    }
+}
diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
index 00114c8..2eb1051 100644
--- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
+++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
@@ -20,7 +20,7 @@ import javax.annotation.Generated;
 import org.apache.camel.Component;
 import org.apache.camel.builder.component.AbstractComponentBuilder;
 import org.apache.camel.builder.component.ComponentBuilder;
-import org.apache.camel.component.aws2.sts.EventbridgeComponent;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeComponent;
 
 /**
  * Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
@@ -67,12 +67,12 @@ public interface Aws2EventbridgeComponentBuilderFactory {
          * Component configuration.
          * 
          * The option is a:
-         * <code>org.apache.camel.component.aws2.sts.EventbridgeConfiguration</code> type.
+         * <code>org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration</code> type.
          * 
          * Group: producer
          */
         default Aws2EventbridgeComponentBuilder configuration(
-                org.apache.camel.component.aws2.sts.EventbridgeConfiguration configuration) {
+                org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration configuration) {
             doSetProperty("configuration", configuration);
             return this;
         }
@@ -114,14 +114,13 @@ public interface Aws2EventbridgeComponentBuilderFactory {
          * The operation to perform.
          * 
          * The option is a:
-         * <code>org.apache.camel.component.aws2.sts.EvenbridgeOperations</code>
-         * type.
+         * <code>org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations</code> type.
          * 
          * Default: assumeRole
          * Group: producer
          */
         default Aws2EventbridgeComponentBuilder operation(
-                org.apache.camel.component.aws2.sts.EvenbridgeOperations operation) {
+                org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations operation) {
             doSetProperty("operation", operation);
             return this;
         }
@@ -254,10 +253,10 @@ public interface Aws2EventbridgeComponentBuilderFactory {
         protected EventbridgeComponent buildConcreteComponent() {
             return new EventbridgeComponent();
         }
-        private org.apache.camel.component.aws2.sts.EventbridgeConfiguration getOrCreateConfiguration(
-                org.apache.camel.component.aws2.sts.EventbridgeComponent component) {
+        private org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration getOrCreateConfiguration(
+                org.apache.camel.component.aws2.eventbridge.EventbridgeComponent component) {
             if (component.getConfiguration() == null) {
-                component.setConfiguration(new org.apache.camel.component.aws2.sts.EventbridgeConfiguration());
+                component.setConfiguration(new org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration());
             }
             return component.getConfiguration();
         }
@@ -268,10 +267,10 @@ public interface Aws2EventbridgeComponentBuilderFactory {
                 Object value) {
             switch (name) {
             case "autoDiscoverClient": getOrCreateConfiguration((EventbridgeComponent) component).setAutoDiscoverClient((boolean) value); return true;
-            case "configuration": ((EventbridgeComponent) component).setConfiguration((org.apache.camel.component.aws2.sts.EventbridgeConfiguration) value); return true;
+            case "configuration": ((EventbridgeComponent) component).setConfiguration((org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration) value); return true;
             case "eventbridgeClient": getOrCreateConfiguration((EventbridgeComponent) component).setEventbridgeClient((software.amazon.awssdk.services.eventbridge.EventBridgeClient) value); return true;
             case "lazyStartProducer": ((EventbridgeComponent) component).setLazyStartProducer((boolean) value); return true;
-            case "operation": getOrCreateConfiguration((EventbridgeComponent) component).setOperation((org.apache.camel.component.aws2.sts.EvenbridgeOperations) value); return true;
+            case "operation": getOrCreateConfiguration((EventbridgeComponent) component).setOperation((org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations) value); return true;
             case "pojoRequest": getOrCreateConfiguration((EventbridgeComponent) component).setPojoRequest((boolean) value); return true;
             case "proxyHost": getOrCreateConfiguration((EventbridgeComponent) component).setProxyHost((java.lang.String) value); return true;
             case "proxyPort": getOrCreateConfiguration((EventbridgeComponent) component).setProxyPort((java.lang.Integer) value); return true;
diff --git a/core/camel-componentdsl/src/generated/resources/metadata.json b/core/camel-componentdsl/src/generated/resources/metadata.json
index 66f094f..f7e8c15 100644
--- a/core/camel-componentdsl/src/generated/resources/metadata.json
+++ b/core/camel-componentdsl/src/generated/resources/metadata.json
@@ -584,7 +584,7 @@
     "deprecated": false,
     "firstVersion": "3.6.0",
     "label": "cloud,management",
-    "javaType": "org.apache.camel.component.aws2.sts.EventbridgeComponent",
+    "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeComponent",
     "supportLevel": "Preview",
     "groupId": "org.apache.camel",
     "artifactId": "camel-aws2-eventbridge",
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
index 286a9dd..c0f4dd4 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
@@ -141,8 +141,7 @@ public interface EventbridgeEndpointBuilderFactory {
          * The operation to perform.
          * 
          * The option is a:
-         * <code>org.apache.camel.component.aws2.sts.EvenbridgeOperations</code>
-         * type.
+         * <code>org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations</code> type.
          * 
          * Required: true
          * Default: assumeRole
@@ -157,8 +156,7 @@ public interface EventbridgeEndpointBuilderFactory {
          * The operation to perform.
          * 
          * The option will be converted to a
-         * <code>org.apache.camel.component.aws2.sts.EvenbridgeOperations</code>
-         * type.
+         * <code>org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations</code> type.
          * 
          * Required: true
          * Default: assumeRole
@@ -388,11 +386,11 @@ public interface EventbridgeEndpointBuilderFactory {
 
     /**
      * Proxy enum for
-     * <code>org.apache.camel.component.aws2.sts.EvenbridgeOperations</code>
-     * enum.
+     * <code>org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations</code> enum.
      */
     enum EvenbridgeOperations {
-        putRule;
+        putRule,
+        putTarget;
     }
 
     /**


[camel] 08/10: CAMEL-15375 - Camel-AWS2-Eventbridge: First part of documentation

Posted by ac...@apache.org.
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 82ae66c9c7ede7b03545c8ef01949b5983962acd
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Mon Sep 21 16:41:18 2020 +0200

    CAMEL-15375 - Camel-AWS2-Eventbridge: First part of documentation
---
 .../catalog/docs/aws2-eventbridge-component.adoc   | 117 ++++----------------
 .../aws2/eventbridge/aws2-eventbridge.json         |   4 +-
 ...ponent.adoc => aws2-eventbridge-component.adoc} | 117 ++++----------------
 .../aws2/eventbridge/EventbridgeProducer.java      |  58 +++++-----
 .../EventbridgePutRuleIntegrationTest.java         |  10 +-
 .../dsl/EventbridgeEndpointBuilderFactory.java     |   2 +-
 .../ROOT/pages/aws2-eventbridge-component.adoc     | 119 +++++----------------
 7 files changed, 109 insertions(+), 318 deletions(-)

diff --git a/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
similarity index 57%
copy from components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc
copy to catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
index f05455e..a319ad7 100644
--- a/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-eventbridge-component.adoc
@@ -1,9 +1,9 @@
-[[aws2-sts-component]]
-= AWS 2 Security Token Service (STS) Component
-:docTitle: AWS 2 Security Token Service (STS)
-:artifactId: camel-aws2-sts
-:description: Manage AWS STS cluster instances using AWS SDK version 2.x.
-:since: 3.5
+[[aws2-eventbridge-component]]
+= AWS 2 Eventbridge Component
+:docTitle: AWS 2 Eventbridge
+:artifactId: camel-aws2-eventbridge
+:description: Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+:since: 3.6
 :supportLevel: Preview
 :component-header: Only producer is supported
 //Manually maintained attributes
@@ -13,25 +13,25 @@
 
 *{component-header}*
 
-The AWS2 STS component supports assumeRole operation.
-https://aws.amazon.com/sts/[AWS STS].
+The AWS2 Eventbridge component supports assumeRole operation.
+https://aws.amazon.com/eventbridge/[AWS Eventbridge].
 
 Prerequisites
 
 You must have a valid Amazon Web Services developer account, and be
 signed up to use Amazon STS. More information is available at
-https://aws.amazon.com/sts/[Amazon STS].
+https://aws.amazon.com/eventbridge/[Amazon Eventbridge].
 
 [NOTE]
 ====
-The AWS2 STS component is not supported in OSGI
+The AWS2 Eventbridge component is not supported in OSGI
 ====
 
 == URI Format
 
 [source,java]
 -------------------------
-aws2-sts://label[?options]
+aws2-eventbridge://label[?options]
 -------------------------
 
 You can append query options to the URI in the following format,
@@ -41,7 +41,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 Security Token Service (STS) component supports 14 options, which are listed below.
+The AWS 2 Eventbridge component supports 15 options, which are listed below.
 
 
 
@@ -49,15 +49,16 @@ The AWS 2 Security Token Service (STS) component supports 14 options, which are
 |===
 | Name | Description | Default | Type
 | *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
-| *configuration* (producer) | Component configuration |  | STS2Configuration
+| *configuration* (producer) | Component configuration |  | EventbridgeConfiguration
+| *eventbridgeClient* (producer) | To use a existing configured AWS Eventbridge as client |  | EventBridgeClient
+| *eventPatternFile* (producer) | EventPattern File |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: assumeRole, getSessionToken, getFederationToken | assumeRole | STS2Operations
+| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: putRule, putTargets | assumeRole | EvenbridgeOperations
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the STS client |  | String
 | *proxyPort* (producer) | To define a proxy port when instantiating the STS client |  | Integer
 | *proxyProtocol* (producer) | To define a proxy protocol when instantiating the STS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
-| *stsClient* (producer) | To use a existing configured AWS STS as client |  | StsClient
 | *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
 | *basicPropertyBinding* (advanced) | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *accessKey* (security) | Amazon AWS Access Key |  | String
@@ -69,10 +70,10 @@ The AWS 2 Security Token Service (STS) component supports 14 options, which are
 
 
 // endpoint options: START
-The AWS 2 Security Token Service (STS) endpoint is configured using URI syntax:
+The AWS 2 Eventbridge endpoint is configured using URI syntax:
 
 ----
-aws2-sts:label
+aws2-eventbridge:label
 ----
 
 with the following path and query parameters:
@@ -87,21 +88,22 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (14 parameters):
+=== Query Parameters (15 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
 | *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
+| *eventbridgeClient* (producer) | To use a existing configured AWS Eventbridge as client |  | EventBridgeClient
+| *eventPatternFile* (producer) | EventPattern File |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: assumeRole, getSessionToken, getFederationToken | assumeRole | STS2Operations
+| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: putRule, putTargets | assumeRole | EvenbridgeOperations
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the STS client |  | String
 | *proxyPort* (producer) | To define a proxy port when instantiating the STS client |  | Integer
 | *proxyProtocol* (producer) | To define a proxy protocol when instantiating the STS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
-| *stsClient* (producer) | To use a existing configured AWS STS as client |  | StsClient
 | *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
@@ -110,77 +112,6 @@ with the following path and query parameters:
 |===
 // endpoint options: END
 
-
-
-Required STS component options
-
-You have to provide the amazonSTSClient in the
-Registry or your accessKey and secretKey to access
-the https://aws.amazon.com/sts/[Amazon STS] service.
-
-== Usage
-
-[NOTE]
-====
-The AWS2 STS component works on the aws-global region and it has aws-global as default region
-====
-
-=== STS Producer operations
-
-Camel-AWS STS component provides the following operation on the producer side:
-
-- assumeRole
-- getSessionToken
-- getFedeationToken
-
-== Producer Examples
-
-- assumeRole: this operation will make an AWS user assume a different role temporary
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:assumeRole")
-    .setHeader(STS2Constants.ROLE_ARN, constant("arn:123"))
-    .setHeader(STS2Constants.ROLE_SESSION_NAME, constant("groot"))
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=assumeRole")
---------------------------------------------------------------------------------
-
-- getSessionToken: this operation will return a temporary session token
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:getSessionToken")
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=getSessionToken")
---------------------------------------------------------------------------------
-
-- getFederationToken: this operation will return a temporary federation token
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:getFederationToken")
-    .setHeader(STS2Constants.FEDERATED_NAME, constant("federation-account"))
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=getSessionToken")
---------------------------------------------------------------------------------
-
-== Automatic detection of StsClient client in registry
-
-The component is capable of detecting the presence of an StsClient bean into the registry.
-If it's the only instance of that type it will be used as client and you won't have to define it as uri parameter.
-This may be really useful for smarter configuration of the endpoint.
-
-== Using a POJO as body
-
-Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
-In AWS STS, as example for Assume Role request, you can do something like:
-
-------------------------------------------------------------------------------------------------------
-from("direct:createUser")
-     .setBody(AssumeRoleRequest.builder().roleArn("arn:123").roleSessionName("groot").build())
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=assumeRole&pojoRequest=true")
-------------------------------------------------------------------------------------------------------
-
-In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
-
 == Dependencies
 
 Maven users will need to add the following dependency to their pom.xml.
@@ -191,11 +122,9 @@ Maven users will need to add the following dependency to their pom.xml.
 ---------------------------------------
 <dependency>
     <groupId>org.apache.camel</groupId>
-    <artifactId>camel-aws2-sts</artifactId>
+    <artifactId>camel-aws2-eventbridge</artifactId>
     <version>${camel-version}</version>
 </dependency>
 ---------------------------------------
 
 where `$\{camel-version}` must be replaced by the actual version of Camel.
-
-include::camel-spring-boot::page$aws2-sts-starter.adoc[]
diff --git a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
index b644136..4dbbcf5 100644
--- a/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
+++ b/components/camel-aws2-eventbridge/src/generated/resources/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
@@ -27,7 +27,7 @@
     "eventbridgeClient": { "kind": "property", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
     "eventPatternFile": { "kind": "property", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the r [...]
-    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTarget" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description":  [...]
+    "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTargets" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": [...]
     "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
     "proxyHost": { "kind": "property", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
     "proxyPort": { "kind": "property", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
@@ -44,7 +44,7 @@
     "eventbridgeClient": { "kind": "parameter", "displayName": "Eventbridge Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use a existing configured AWS Eventbridge as client" },
     "eventPatternFile": { "kind": "parameter", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the  [...]
-    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTarget" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": [...]
+    "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EvenbridgeOperations", "enum": [ "putRule", "putTargets" ], "deprecated": false, "deprecationNote": "", "secret": false, "defaultValue": "assumeRole", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description" [...]
     "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": "false", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
     "proxyHost": { "kind": "parameter", "displayName": "Proxy Host", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the STS client" },
     "proxyPort": { "kind": "parameter", "displayName": "Proxy Port", "group": "producer", "label": "", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the STS client" },
diff --git a/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc b/components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
similarity index 57%
copy from components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc
copy to components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
index f05455e..a319ad7 100644
--- a/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc
+++ b/components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
@@ -1,9 +1,9 @@
-[[aws2-sts-component]]
-= AWS 2 Security Token Service (STS) Component
-:docTitle: AWS 2 Security Token Service (STS)
-:artifactId: camel-aws2-sts
-:description: Manage AWS STS cluster instances using AWS SDK version 2.x.
-:since: 3.5
+[[aws2-eventbridge-component]]
+= AWS 2 Eventbridge Component
+:docTitle: AWS 2 Eventbridge
+:artifactId: camel-aws2-eventbridge
+:description: Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+:since: 3.6
 :supportLevel: Preview
 :component-header: Only producer is supported
 //Manually maintained attributes
@@ -13,25 +13,25 @@
 
 *{component-header}*
 
-The AWS2 STS component supports assumeRole operation.
-https://aws.amazon.com/sts/[AWS STS].
+The AWS2 Eventbridge component supports assumeRole operation.
+https://aws.amazon.com/eventbridge/[AWS Eventbridge].
 
 Prerequisites
 
 You must have a valid Amazon Web Services developer account, and be
 signed up to use Amazon STS. More information is available at
-https://aws.amazon.com/sts/[Amazon STS].
+https://aws.amazon.com/eventbridge/[Amazon Eventbridge].
 
 [NOTE]
 ====
-The AWS2 STS component is not supported in OSGI
+The AWS2 Eventbridge component is not supported in OSGI
 ====
 
 == URI Format
 
 [source,java]
 -------------------------
-aws2-sts://label[?options]
+aws2-eventbridge://label[?options]
 -------------------------
 
 You can append query options to the URI in the following format,
@@ -41,7 +41,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 Security Token Service (STS) component supports 14 options, which are listed below.
+The AWS 2 Eventbridge component supports 15 options, which are listed below.
 
 
 
@@ -49,15 +49,16 @@ The AWS 2 Security Token Service (STS) component supports 14 options, which are
 |===
 | Name | Description | Default | Type
 | *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
-| *configuration* (producer) | Component configuration |  | STS2Configuration
+| *configuration* (producer) | Component configuration |  | EventbridgeConfiguration
+| *eventbridgeClient* (producer) | To use a existing configured AWS Eventbridge as client |  | EventBridgeClient
+| *eventPatternFile* (producer) | EventPattern File |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: assumeRole, getSessionToken, getFederationToken | assumeRole | STS2Operations
+| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: putRule, putTargets | assumeRole | EvenbridgeOperations
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the STS client |  | String
 | *proxyPort* (producer) | To define a proxy port when instantiating the STS client |  | Integer
 | *proxyProtocol* (producer) | To define a proxy protocol when instantiating the STS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
-| *stsClient* (producer) | To use a existing configured AWS STS as client |  | StsClient
 | *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
 | *basicPropertyBinding* (advanced) | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *accessKey* (security) | Amazon AWS Access Key |  | String
@@ -69,10 +70,10 @@ The AWS 2 Security Token Service (STS) component supports 14 options, which are
 
 
 // endpoint options: START
-The AWS 2 Security Token Service (STS) endpoint is configured using URI syntax:
+The AWS 2 Eventbridge endpoint is configured using URI syntax:
 
 ----
-aws2-sts:label
+aws2-eventbridge:label
 ----
 
 with the following path and query parameters:
@@ -87,21 +88,22 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (14 parameters):
+=== Query Parameters (15 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
 | *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
+| *eventbridgeClient* (producer) | To use a existing configured AWS Eventbridge as client |  | EventBridgeClient
+| *eventPatternFile* (producer) | EventPattern File |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: assumeRole, getSessionToken, getFederationToken | assumeRole | STS2Operations
+| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: putRule, putTargets | assumeRole | EvenbridgeOperations
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the STS client |  | String
 | *proxyPort* (producer) | To define a proxy port when instantiating the STS client |  | Integer
 | *proxyProtocol* (producer) | To define a proxy protocol when instantiating the STS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
-| *stsClient* (producer) | To use a existing configured AWS STS as client |  | StsClient
 | *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
@@ -110,77 +112,6 @@ with the following path and query parameters:
 |===
 // endpoint options: END
 
-
-
-Required STS component options
-
-You have to provide the amazonSTSClient in the
-Registry or your accessKey and secretKey to access
-the https://aws.amazon.com/sts/[Amazon STS] service.
-
-== Usage
-
-[NOTE]
-====
-The AWS2 STS component works on the aws-global region and it has aws-global as default region
-====
-
-=== STS Producer operations
-
-Camel-AWS STS component provides the following operation on the producer side:
-
-- assumeRole
-- getSessionToken
-- getFedeationToken
-
-== Producer Examples
-
-- assumeRole: this operation will make an AWS user assume a different role temporary
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:assumeRole")
-    .setHeader(STS2Constants.ROLE_ARN, constant("arn:123"))
-    .setHeader(STS2Constants.ROLE_SESSION_NAME, constant("groot"))
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=assumeRole")
---------------------------------------------------------------------------------
-
-- getSessionToken: this operation will return a temporary session token
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:getSessionToken")
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=getSessionToken")
---------------------------------------------------------------------------------
-
-- getFederationToken: this operation will return a temporary federation token
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:getFederationToken")
-    .setHeader(STS2Constants.FEDERATED_NAME, constant("federation-account"))
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=getSessionToken")
---------------------------------------------------------------------------------
-
-== Automatic detection of StsClient client in registry
-
-The component is capable of detecting the presence of an StsClient bean into the registry.
-If it's the only instance of that type it will be used as client and you won't have to define it as uri parameter.
-This may be really useful for smarter configuration of the endpoint.
-
-== Using a POJO as body
-
-Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
-In AWS STS, as example for Assume Role request, you can do something like:
-
-------------------------------------------------------------------------------------------------------
-from("direct:createUser")
-     .setBody(AssumeRoleRequest.builder().roleArn("arn:123").roleSessionName("groot").build())
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=assumeRole&pojoRequest=true")
-------------------------------------------------------------------------------------------------------
-
-In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
-
 == Dependencies
 
 Maven users will need to add the following dependency to their pom.xml.
@@ -191,11 +122,9 @@ Maven users will need to add the following dependency to their pom.xml.
 ---------------------------------------
 <dependency>
     <groupId>org.apache.camel</groupId>
-    <artifactId>camel-aws2-sts</artifactId>
+    <artifactId>camel-aws2-eventbridge</artifactId>
     <version>${camel-version}</version>
 </dependency>
 ---------------------------------------
 
 where `$\{camel-version}` must be replaced by the actual version of Camel.
-
-include::camel-spring-boot::page$aws2-sts-starter.adoc[]
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 e4e4d05f..68a91ff 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
@@ -61,7 +61,7 @@ public class EventbridgeProducer extends DefaultProducer {
                 putRule(getEndpoint().getEventbridgeClient(), exchange);
                 break;
             case putTargets:
-            	putTargets(getEndpoint().getEventbridgeClient(), exchange);
+                putTargets(getEndpoint().getEventbridgeClient(), exchange);
                 break;
             default:
                 throw new IllegalArgumentException("Unsupported operation");
@@ -129,43 +129,43 @@ public class EventbridgeProducer extends DefaultProducer {
         }
     }
 
-        private void putTargets(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
-            if (getConfiguration().isPojoRequest()) {
-                Object payload = exchange.getIn().getMandatoryBody();
-                if (payload instanceof PutTargetsRequest) {
-                    PutTargetsResponse result;
-                    try {
-                        result = eventbridgeClient.putTargets((PutTargetsRequest) payload);
-                    } catch (AwsServiceException ase) {
-                        LOG.trace("PutTargets command returned the error code {}", ase.awsErrorDetails().errorCode());
-                        throw ase;
-                    }
-                    Message message = getMessageForResponse(exchange);
-                    message.setBody(result);
-                }
-            } else {
-                PutTargetsRequest.Builder builder = PutTargetsRequest.builder();
-                if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) {
-                    String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
-                    builder.rule(ruleName);
-                }
-                if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.TARGETS))) {
-                    Collection<Target> targets = exchange.getIn().getHeader(EventbridgeConstants.TARGETS, Collection.class);
-                    builder.targets(targets);
-                } else {
-                    throw new IllegalArgumentException("At least one targets must be specified");
-                }
+    private void putTargets(EventBridgeClient eventbridgeClient, Exchange exchange) throws InvalidPayloadException {
+        if (getConfiguration().isPojoRequest()) {
+            Object payload = exchange.getIn().getMandatoryBody();
+            if (payload instanceof PutTargetsRequest) {
                 PutTargetsResponse result;
                 try {
-                    result = eventbridgeClient.putTargets(builder.build());
+                    result = eventbridgeClient.putTargets((PutTargetsRequest) payload);
                 } catch (AwsServiceException ase) {
-                    LOG.trace("Put Targets command returned the error code {}", ase.awsErrorDetails().errorCode());
+                    LOG.trace("PutTargets command returned the error code {}", ase.awsErrorDetails().errorCode());
                     throw ase;
                 }
                 Message message = getMessageForResponse(exchange);
                 message.setBody(result);
             }
+        } else {
+            PutTargetsRequest.Builder builder = PutTargetsRequest.builder();
+            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME))) {
+                String ruleName = exchange.getIn().getHeader(EventbridgeConstants.RULE_NAME, String.class);
+                builder.rule(ruleName);
+            }
+            if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(EventbridgeConstants.TARGETS))) {
+                Collection<Target> targets = exchange.getIn().getHeader(EventbridgeConstants.TARGETS, Collection.class);
+                builder.targets(targets);
+            } else {
+                throw new IllegalArgumentException("At least one targets must be specified");
+            }
+            PutTargetsResponse result;
+            try {
+                result = eventbridgeClient.putTargets(builder.build());
+            } catch (AwsServiceException ase) {
+                LOG.trace("Put Targets command returned the error code {}", ase.awsErrorDetails().errorCode());
+                throw ase;
+            }
+            Message message = getMessageForResponse(exchange);
+            message.setBody(result);
         }
+    }
 
     @Override
     public EventbridgeEndpoint getEndpoint() {
diff --git a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
index 6d38748..e931f40 100644
--- a/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
+++ b/components/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/integration/EventbridgePutRuleIntegrationTest.java
@@ -51,7 +51,7 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
 
     @EndpointInject("mock:result")
     private MockEndpoint result;
-    
+
     @EndpointInject("mock:result1")
     private MockEndpoint result1;
 
@@ -67,13 +67,14 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
                 exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
             }
         });
-        
+
         template.send("direct:evs-targets", new Processor() {
 
             @Override
             public void process(Exchange exchange) throws Exception {
                 exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "firstrule");
-                Target target = Target.builder().id("sqs-queue").arn("arn:aws:sqs:eu-west-1:780410022472:camel-connector-test").build();
+                Target target = Target.builder().id("sqs-queue").arn("arn:aws:sqs:eu-west-1:780410022472:camel-connector-test")
+                        .build();
                 List<Target> targets = new ArrayList<Target>();
                 targets.add(target);
                 exchange.getIn().setHeader(EventbridgeConstants.TARGETS, targets);
@@ -88,7 +89,8 @@ public class EventbridgePutRuleIntegrationTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                String awsEndpoint = "aws2-eventbridge://test?operation=putRule&eventPatternFile=file:src/test/resources/eventpattern.json";
+                String awsEndpoint
+                        = "aws2-eventbridge://test?operation=putRule&eventPatternFile=file:src/test/resources/eventpattern.json";
                 String target = "aws2-eventbridge://test?operation=putTargets";
                 from("direct:evs").to(awsEndpoint).log("${body}").to("mock:result");
                 from("direct:evs-targets").to(target).log("${body}").to("mock:result1");
diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
index 6316c76..3323d3b 100644
--- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
+++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
@@ -402,7 +402,7 @@ public interface EventbridgeEndpointBuilderFactory {
      */
     enum EvenbridgeOperations {
         putRule,
-        putTarget;
+        putTargets;
     }
 
     /**
diff --git a/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc b/docs/components/modules/ROOT/pages/aws2-eventbridge-component.adoc
similarity index 57%
rename from components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc
rename to docs/components/modules/ROOT/pages/aws2-eventbridge-component.adoc
index f05455e..ab4aa1a 100644
--- a/components/camel-aws2-eventbridge/src/main/docs/aws2-sts-component.adoc
+++ b/docs/components/modules/ROOT/pages/aws2-eventbridge-component.adoc
@@ -1,9 +1,11 @@
-[[aws2-sts-component]]
-= AWS 2 Security Token Service (STS) Component
-:docTitle: AWS 2 Security Token Service (STS)
-:artifactId: camel-aws2-sts
-:description: Manage AWS STS cluster instances using AWS SDK version 2.x.
-:since: 3.5
+[[aws2-eventbridge-component]]
+= AWS 2 Eventbridge Component
+//THIS FILE IS COPIED: EDIT THE SOURCE FILE:
+:page-source: components/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
+:docTitle: AWS 2 Eventbridge
+:artifactId: camel-aws2-eventbridge
+:description: Manage AWS Eventbridge cluster instances using AWS SDK version 2.x.
+:since: 3.6
 :supportLevel: Preview
 :component-header: Only producer is supported
 //Manually maintained attributes
@@ -13,25 +15,25 @@
 
 *{component-header}*
 
-The AWS2 STS component supports assumeRole operation.
-https://aws.amazon.com/sts/[AWS STS].
+The AWS2 Eventbridge component supports assumeRole operation.
+https://aws.amazon.com/eventbridge/[AWS Eventbridge].
 
 Prerequisites
 
 You must have a valid Amazon Web Services developer account, and be
 signed up to use Amazon STS. More information is available at
-https://aws.amazon.com/sts/[Amazon STS].
+https://aws.amazon.com/eventbridge/[Amazon Eventbridge].
 
 [NOTE]
 ====
-The AWS2 STS component is not supported in OSGI
+The AWS2 Eventbridge component is not supported in OSGI
 ====
 
 == URI Format
 
 [source,java]
 -------------------------
-aws2-sts://label[?options]
+aws2-eventbridge://label[?options]
 -------------------------
 
 You can append query options to the URI in the following format,
@@ -41,7 +43,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS 2 Security Token Service (STS) component supports 14 options, which are listed below.
+The AWS 2 Eventbridge component supports 15 options, which are listed below.
 
 
 
@@ -49,15 +51,16 @@ The AWS 2 Security Token Service (STS) component supports 14 options, which are
 |===
 | Name | Description | Default | Type
 | *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
-| *configuration* (producer) | Component configuration |  | STS2Configuration
+| *configuration* (producer) | Component configuration |  | EventbridgeConfiguration
+| *eventbridgeClient* (producer) | To use a existing configured AWS Eventbridge as client |  | EventBridgeClient
+| *eventPatternFile* (producer) | EventPattern File |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: assumeRole, getSessionToken, getFederationToken | assumeRole | STS2Operations
+| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: putRule, putTargets | assumeRole | EvenbridgeOperations
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the STS client |  | String
 | *proxyPort* (producer) | To define a proxy port when instantiating the STS client |  | Integer
 | *proxyProtocol* (producer) | To define a proxy protocol when instantiating the STS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
-| *stsClient* (producer) | To use a existing configured AWS STS as client |  | StsClient
 | *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
 | *basicPropertyBinding* (advanced) | *Deprecated* Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *accessKey* (security) | Amazon AWS Access Key |  | String
@@ -69,10 +72,10 @@ The AWS 2 Security Token Service (STS) component supports 14 options, which are
 
 
 // endpoint options: START
-The AWS 2 Security Token Service (STS) endpoint is configured using URI syntax:
+The AWS 2 Eventbridge endpoint is configured using URI syntax:
 
 ----
-aws2-sts:label
+aws2-eventbridge:label
 ----
 
 with the following path and query parameters:
@@ -87,21 +90,22 @@ with the following path and query parameters:
 |===
 
 
-=== Query Parameters (14 parameters):
+=== Query Parameters (15 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
 | *autoDiscoverClient* (common) | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | boolean
+| *eventbridgeClient* (producer) | To use a existing configured AWS Eventbridge as client |  | EventBridgeClient
+| *eventPatternFile* (producer) | EventPattern File |  | String
 | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...]
-| *operation* (producer) | *Required* The operation to perform. There are 3 enums and the value can be one of: assumeRole, getSessionToken, getFederationToken | assumeRole | STS2Operations
+| *operation* (producer) | *Required* The operation to perform. There are 2 enums and the value can be one of: putRule, putTargets | assumeRole | EvenbridgeOperations
 | *pojoRequest* (producer) | If we want to use a POJO request as body or not | false | boolean
 | *proxyHost* (producer) | To define a proxy host when instantiating the STS client |  | String
 | *proxyPort* (producer) | To define a proxy port when instantiating the STS client |  | Integer
 | *proxyProtocol* (producer) | To define a proxy protocol when instantiating the STS client. There are 2 enums and the value can be one of: HTTP, HTTPS | HTTPS | Protocol
 | *region* (producer) | The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id() | aws-global | String
-| *stsClient* (producer) | To use a existing configured AWS STS as client |  | StsClient
 | *trustAllCertificates* (producer) | If we want to trust all certificates in case of overriding the endpoint | false | boolean
 | *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
@@ -110,77 +114,6 @@ with the following path and query parameters:
 |===
 // endpoint options: END
 
-
-
-Required STS component options
-
-You have to provide the amazonSTSClient in the
-Registry or your accessKey and secretKey to access
-the https://aws.amazon.com/sts/[Amazon STS] service.
-
-== Usage
-
-[NOTE]
-====
-The AWS2 STS component works on the aws-global region and it has aws-global as default region
-====
-
-=== STS Producer operations
-
-Camel-AWS STS component provides the following operation on the producer side:
-
-- assumeRole
-- getSessionToken
-- getFedeationToken
-
-== Producer Examples
-
-- assumeRole: this operation will make an AWS user assume a different role temporary
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:assumeRole")
-    .setHeader(STS2Constants.ROLE_ARN, constant("arn:123"))
-    .setHeader(STS2Constants.ROLE_SESSION_NAME, constant("groot"))
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=assumeRole")
---------------------------------------------------------------------------------
-
-- getSessionToken: this operation will return a temporary session token
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:getSessionToken")
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=getSessionToken")
---------------------------------------------------------------------------------
-
-- getFederationToken: this operation will return a temporary federation token
-
-[source,java]
---------------------------------------------------------------------------------
-from("direct:getFederationToken")
-    .setHeader(STS2Constants.FEDERATED_NAME, constant("federation-account"))
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=getSessionToken")
---------------------------------------------------------------------------------
-
-== Automatic detection of StsClient client in registry
-
-The component is capable of detecting the presence of an StsClient bean into the registry.
-If it's the only instance of that type it will be used as client and you won't have to define it as uri parameter.
-This may be really useful for smarter configuration of the endpoint.
-
-== Using a POJO as body
-
-Sometimes build an AWS Request can be complex, because of multiple options. We introduce the possibility to use a POJO as body.
-In AWS STS, as example for Assume Role request, you can do something like:
-
-------------------------------------------------------------------------------------------------------
-from("direct:createUser")
-     .setBody(AssumeRoleRequest.builder().roleArn("arn:123").roleSessionName("groot").build())
-    .to("aws2-sts://test?stsClient=#amazonSTSClient&operation=assumeRole&pojoRequest=true")
-------------------------------------------------------------------------------------------------------
-
-In this way you'll pass the request directly without the need of passing headers and options specifically related to this operation.
-
 == Dependencies
 
 Maven users will need to add the following dependency to their pom.xml.
@@ -191,11 +124,9 @@ Maven users will need to add the following dependency to their pom.xml.
 ---------------------------------------
 <dependency>
     <groupId>org.apache.camel</groupId>
-    <artifactId>camel-aws2-sts</artifactId>
+    <artifactId>camel-aws2-eventbridge</artifactId>
     <version>${camel-version}</version>
 </dependency>
 ---------------------------------------
 
 where `$\{camel-version}` must be replaced by the actual version of Camel.
-
-include::camel-spring-boot::page$aws2-sts-starter.adoc[]