Camel-AWS2-Eventbridge: Implementation
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml
index 9e67e36..fc4a236 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/pom.xml
@@ -64,7 +64,7 @@
         <!-- we use these 2 camel components in this example -->
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-bean</artifactId>
+            <artifactId>camel-timer</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java
index 206ea2c..690ba44 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/java/org/apache/camel/example/MyRouteBuilder.java
@@ -16,7 +16,16 @@
  */
 package org.apache.camel.example;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
 import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
+import org.apache.camel.builder.endpoint.dsl.EventbridgeEndpointBuilderFactory.EventbridgeOperations;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeConstants;
+
+import software.amazon.awssdk.services.eventbridge.model.Target;
 
 /**
  * To use the endpoint DSL then we must extend EndpointRouteBuilder instead of RouteBuilder
@@ -26,7 +35,25 @@
     @Override
     public void configure() throws Exception {
 
-        from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false))
-            .log("The content is ${body}");
+        from(timer("fire").repeatCount("1"))
+        .setHeader(EventbridgeConstants.RULE_NAME, constant("s3-events-rule"))
+        .to(aws2Eventbridge("default")
+        		.operation(EventbridgeOperations.putRule)
+        		.eventPatternFile("file:src/main/resources/eventpattern.json"))
+        .process(new Processor() {
+
+            @Override
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "s3-events-rule");
+                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);
+            }
+        })
+        .to(aws2Eventbridge("default")
+        		.operation(EventbridgeOperations.putTargets))
+        .log("All set, enjoy!");
     }
 }
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties
index 77bc0d3..085166c 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/application.properties
@@ -17,10 +17,11 @@
 
 # to configure camel main
 # here you can configure options on camel main (see MainConfigurationProperties class)
-camel.main.name = AWS2-S3-Consumer
+camel.main.name = AWS2-Eventbridge-rule-creator
 
 # properties used in the route
-camel.component.aws2-s3.accessKey=xxxx
-camel.component.aws2-s3.secretKey=yyyy
-camel.component.aws2-s3.region=region
-bucketName=camel
+camel.component.aws2-eventbridge.accessKey=xxxx
+camel.component.aws2-eventbridge.secretKey=yyyy
+camel.component.aws2-eventbridge.region=region
+sqs-target=target-sqs-arn
+sqs-target-id=sqs-queue
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/eventpattern.json b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/eventpattern.json
new file mode 100644
index 0000000..96cd573
--- /dev/null
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-eventbridge-creator/src/main/resources/eventpattern.json
@@ -0,0 +1,35 @@
+{
+  "source": [
+    "aws.s3"
+  ],
+  "detail": {
+    "eventSource": [
+      "s3.amazonaws.com"
+    ],
+    "eventName": [
+      "DeleteBucket",
+      "DeleteBucketCors",
+      "DeleteBucketLifecycle",
+      "DeleteBucketPolicy",
+      "DeleteBucketReplication",
+      "DeleteBucketTagging",
+      "DeleteBucketWebsite",
+      "CreateBucket",
+      "PutBucketAcl",
+      "PutBucketCors",
+      "PutBucketLifecycle",
+      "PutBucketPolicy",
+      "PutBucketLogging",
+      "PutBucketNotification",
+      "PutBucketReplication",
+      "PutBucketTagging",
+      "PutBucketRequestPayment",
+      "PutBucketVersioning",
+      "PutBucketWebsite",
+      "PutBucketEncryption",
+      "DeleteBucketEncryption",
+      "DeleteBucketPublicAccessBlock",
+      "PutBucketPublicAccessBlock"
+    ]
+  }
+}
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml
index 2e02f1b..4f19b01 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/pom.xml
@@ -64,7 +64,7 @@
         <!-- we use these 2 camel components in this example -->
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-bean</artifactId>
+            <artifactId>camel-timer</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel</groupId>
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java
index 206ea2c..2e3a781 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/java/org/apache/camel/example/MyRouteBuilder.java
@@ -26,7 +26,9 @@
     @Override
     public void configure() throws Exception {
 
-        from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false))
-            .log("The content is ${body}");
+    	from(timer("fire").repeatCount("1"))
+    	.setBody(constant("Camel rocks"))
+    	.to(aws2S3("{{bucketName}}").keyName("firstfile"))
+    	.stop();
     }
 }
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties
index 77bc0d3..2317b2f 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-s3-events-inject/src/main/resources/application.properties
@@ -17,10 +17,10 @@
 
 # to configure camel main
 # here you can configure options on camel main (see MainConfigurationProperties class)
-camel.main.name = AWS2-S3-Consumer
+camel.main.name = AWS2-S3-Events-Inject
 
 # properties used in the route
-camel.component.aws2-s3.accessKey=xxxx
-camel.component.aws2-s3.secretKey=yyyy
+camel.component.aws2-s3.accessKey=xxxxx
+camel.component.aws2-s3.secretKey=yyyyy
 camel.component.aws2-s3.region=region
-bucketName=camel
+bucketName=camel-bucket
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml
index 44a94f3..1c543d0 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/pom.xml
@@ -64,10 +64,6 @@
         <!-- we use these 2 camel components in this example -->
         <dependency>
             <groupId>org.apache.camel</groupId>
-            <artifactId>camel-bean</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel</groupId>
             <artifactId>camel-aws2-sqs</artifactId>
         </dependency>
 
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java
index 206ea2c..caa2048 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/java/org/apache/camel/example/MyRouteBuilder.java
@@ -26,7 +26,7 @@
     @Override
     public void configure() throws Exception {
 
-        from(aws2S3("{{bucketName}}").delay(1000L).deleteAfterRead(false))
-            .log("The content is ${body}");
+        from(aws2Sqs("{{sqs-queue-name}}").deleteAfterRead(true))
+        .log("${body}");
     }
 }
diff --git a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties
index 77bc0d3..57c38c9 100644
--- a/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties
+++ b/examples/camel-example-main-endpointdsl-aws2/aws2-sqs-consumer/src/main/resources/application.properties
@@ -17,10 +17,10 @@
 
 # to configure camel main
 # here you can configure options on camel main (see MainConfigurationProperties class)
-camel.main.name = AWS2-S3-Consumer
+camel.main.name = AWS2-SQS-Consumer
 
 # properties used in the route
-camel.component.aws2-s3.accessKey=xxxx
-camel.component.aws2-s3.secretKey=yyyy
-camel.component.aws2-s3.region=region
-bucketName=camel
+camel.component.aws2-sqs.accessKey=xxxx
+camel.component.aws2-sqs.secretKey=yyyy
+camel.component.aws2-sqs.regionregion
+sqs-queue-name=queue-name