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 2026/03/18 09:19:03 UTC
(camel) 01/01: CAMEL-23207: Camel-aws-eventbridge: Add EventBridge consumer implementation with SQS-backed polling
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch CAMEL-23207
in repository https://gitbox.apache.org/repos/asf/camel.git
commit e2c5c7e76ac86a51a41caf99238289b0f1bd98ee
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Mar 17 12:00:37 2026 +0100
CAMEL-23207: Camel-aws-eventbridge: Add EventBridge consumer implementation with SQS-backed polling
AWS EventBridge does not support pull-based consumption. This adds
a consumer that follows the standard AWS pattern: wire an SQS queue
as an EventBridge rule target and poll it for events.
The consumer auto-creates an SQS queue with the appropriate IAM policy,
registers it as a target on the specified EventBridge rule, and polls
for messages using long-polling. Successfully processed messages are
deleted; failed ones remain in the queue for retry. On shutdown, the
auto-provisioned queue and target are cleaned up by default.
New consumer configuration options: ruleName, queueUrl, autoCreateQueue,
deleteQueueOnShutdown, maxMessagesPerPoll, waitTimeSeconds, and
visibilityTimeout.
Includes LocalStack integration test and full AsciiDoc documentation
with configuration reference, usage examples, and IAM permissions.
Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
.../camel/catalog/components/aws2-eventbridge.json | 148 +-
.../camel-aws/camel-aws2-eventbridge/pom.xml | 11 +
.../EventbridgeComponentConfigurer.java | 48 +
.../eventbridge/EventbridgeEndpointConfigurer.java | 156 ++
.../eventbridge/EventbridgeEndpointUriFactory.java | 32 +-
.../aws2/eventbridge/aws2-eventbridge.json | 148 +-
.../src/main/docs/aws2-eventbridge-component.adoc | 112 +-
.../aws2/eventbridge/EventbridgeConfiguration.java | 100 +
.../aws2/eventbridge/EventbridgeConstants.java | 6 +
.../aws2/eventbridge/EventbridgeConsumer.java | 285 +++
.../aws2/eventbridge/EventbridgeEndpoint.java | 33 +-
.../eventbridge/EventbridgeConsumerConfigTest.java | 81 +
.../aws2/eventbridge/EventbridgeConsumerTest.java | 504 +++++
.../localstack/EventbridgeConsumerIT.java | 257 +++
.../component/ComponentsBuilderFactory.java | 3 +-
.../Aws2EventbridgeComponentBuilderFactory.java | 229 ++-
.../builder/endpoint/StaticEndpointBuilders.java | 6 +-
.../dsl/EventbridgeEndpointBuilderFactory.java | 1926 +++++++++++++++++++-
18 files changed, 3855 insertions(+), 230 deletions(-)
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
index 5957c064f34d..3b08cc5dbfa6 100644
--- 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
@@ -3,7 +3,7 @@
"kind": "component",
"name": "aws2-eventbridge",
"title": "AWS Eventbridge",
- "description": "Send events to AWS Eventbridge cluster instances.",
+ "description": "Manage AWS EventBridge cluster instances and consume events via SQS-backed polling.",
"deprecated": false,
"firstVersion": "3.6.0",
"label": "cloud,management",
@@ -18,73 +18,109 @@
"async": false,
"api": false,
"consumerOnly": false,
- "producerOnly": true,
+ "producerOnly": false,
"lenientProperties": false,
"browsable": false,
"remote": true
},
"componentProperties": {
- "configuration": { "index": 0, "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
- "eventPatternFile": { "index": 1, "kind": "property", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
- "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
- "operation": { "index": 3, "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget", "putEvent" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, [...]
- "overrideEndpoint": { "index": 4, "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in [...]
- "pojoRequest": { "index": 5, "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
- "region": { "index": 6, "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-north [...]
- "uriEndpointOverride": { "index": 7, "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with [...]
- "autowiredEnabled": { "index": 8, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
- "eventbridgeClient": { "index": 9, "kind": "property", "displayName": "Eventbridge Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use an e [...]
- "healthCheckConsumerEnabled": { "index": 10, "kind": "property", "displayName": "Health Check Consumer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all consumer based health checks from this component" },
- "healthCheckProducerEnabled": { "index": 11, "kind": "property", "displayName": "Health Check Producer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all producer based health checks from this component. Notice: Camel has by default disabled all producer based health-checks. You can turn on produce [...]
- "proxyHost": { "index": 12, "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
- "proxyPort": { "index": 13, "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
- "proxyProtocol": { "index": 14, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy p [...]
- "accessKey": { "index": 15, "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
- "profileCredentialsName": { "index": 16, "kind": "property", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider this parameter will set th [...]
- "secretKey": { "index": 17, "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
- "sessionToken": { "index": 18, "kind": "property", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
- "trustAllCertificates": { "index": 19, "kind": "property", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 overrid [...]
- "useDefaultCredentialsProvider": { "index": 20, "kind": "property", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client s [...]
- "useProfileCredentialsProvider": { "index": 21, "kind": "property", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client s [...]
- "useSessionCredentials": { "index": 22, "kind": "property", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to u [...]
+ "configuration": { "index": 0, "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+ "eventPatternFile": { "index": 1, "kind": "property", "displayName": "Event Pattern File", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
+ "operation": { "index": 2, "kind": "property", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget", "putEvent" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, " [...]
+ "overrideEndpoint": { "index": 3, "kind": "property", "displayName": "Override Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in c [...]
+ "pojoRequest": { "index": 4, "kind": "property", "displayName": "Pojo Request", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
+ "region": { "index": 5, "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northea [...]
+ "uriEndpointOverride": { "index": 6, "kind": "property", "displayName": "Uri Endpoint Override", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with o [...]
+ "autoCreateQueue": { "index": 7, "kind": "property", "displayName": "Auto Create Queue", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Whether to auto-create an SQS queue and wire it as an EventBridge r [...]
+ "bridgeErrorHandler": { "index": 8, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...]
+ "deleteQueueOnShutdown": { "index": 9, "kind": "property", "displayName": "Delete Queue On Shutdown", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Whether to delete the auto-created SQS queue and remov [...]
+ "maxMessagesPerPoll": { "index": 10, "kind": "property", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The maximum number of messages to receive per poll from SQS." },
+ "queueUrl": { "index": 11, "kind": "property", "displayName": "Queue Url", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The URL of an existing SQS queue to use as EventBridge target. If not specified, a queue is aut [...]
+ "ruleName": { "index": 12, "kind": "property", "displayName": "Rule Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The EventBridge rule name to consume events from. Required for consumer." },
+ "visibilityTimeout": { "index": 13, "kind": "property", "displayName": "Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) that received SQS messages are hidden from [...]
+ "waitTimeSeconds": { "index": 14, "kind": "property", "displayName": "Wait Time Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 20, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) for which the SQS receive call waits for messa [...]
+ "lazyStartProducer": { "index": 15, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 fai [...]
+ "autowiredEnabled": { "index": 16, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching [...]
+ "eventbridgeClient": { "index": 17, "kind": "property", "displayName": "Eventbridge Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use an [...]
+ "healthCheckConsumerEnabled": { "index": 18, "kind": "property", "displayName": "Health Check Consumer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all consumer based health checks from this component" },
+ "healthCheckProducerEnabled": { "index": 19, "kind": "property", "displayName": "Health Check Producer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all producer based health checks from this component. Notice: Camel has by default disabled all producer based health-checks. You can turn on produce [...]
+ "proxyHost": { "index": 20, "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
+ "proxyPort": { "index": 21, "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
+ "proxyProtocol": { "index": 22, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy p [...]
+ "accessKey": { "index": 23, "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+ "profileCredentialsName": { "index": 24, "kind": "property", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider this parameter will set th [...]
+ "secretKey": { "index": 25, "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+ "sessionToken": { "index": 26, "kind": "property", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+ "trustAllCertificates": { "index": 27, "kind": "property", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 overrid [...]
+ "useDefaultCredentialsProvider": { "index": 28, "kind": "property", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client s [...]
+ "useProfileCredentialsProvider": { "index": 29, "kind": "property", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client s [...]
+ "useSessionCredentials": { "index": 30, "kind": "property", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to u [...]
},
"headers": {
- "CamelAwsEventbridgeOperation": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#OPERATION" },
- "CamelAwsEventbridgeRuleName": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_NAME" },
- "CamelAwsEventbridgeRuleNamePrefix": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prefix matching the rule name.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_NAME_PREFIX" },
- "CamelAwsEventbridgeEventPattern": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The event pattern.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_PATTERN" },
- "CamelAwsEventbridgeTargets": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Collection<Target>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The targets to update or add to the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGETS" },
- "CamelAwsEventbridgeTargetsIds": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Collection<String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The IDs of the targets to remove from the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGETS_IDS" },
- "CamelAwsEventbridgeTargetArn": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the target resource.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGET_ARN" },
- "CamelAwsEventbridgeResourcesArn": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Comma separated list of Amazon Resource Names (ARN) of the resources related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_RESOURCES_ARN" },
- "CamelAwsEventbridgeSource": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The source related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_SOURCE" },
- "CamelAwsEventbridgeDetailType": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The detail type related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_DETAIL_TYPE" },
+ "CamelAwsEventbridgeOperation": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#OPERATION" },
+ "CamelAwsEventbridgeRuleName": { "index": 1, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_NAME" },
+ "CamelAwsEventbridgeRuleNamePrefix": { "index": 2, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prefix matching the rule name.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_NAME_PREFIX" },
+ "CamelAwsEventbridgeEventPattern": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The event pattern.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_PATTERN" },
+ "CamelAwsEventbridgeTargets": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Collection<Target>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The targets to update or add to the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGETS" },
+ "CamelAwsEventbridgeTargetsIds": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Collection<String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The IDs of the targets to remove from the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGETS_IDS" },
+ "CamelAwsEventbridgeTargetArn": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the target resource.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGET_ARN" },
+ "CamelAwsEventbridgeResourcesArn": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Comma separated list of Amazon Resource Names (ARN) of the resources related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_RESOURCES_ARN" },
+ "CamelAwsEventbridgeSource": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The source related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_SOURCE" },
+ "CamelAwsEventbridgeDetailType": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The detail type related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_DETAIL_TYPE" },
"CamelAwsEventbridgeNextToken": { "index": 10, "kind": "header", "displayName": "", "group": "listRules listTargetsByRule listRuleNamesByTarget", "label": "listRules listTargetsByRule listRuleNamesByTarget", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The token for the next set of results.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#NEXT_TOKEN" },
"CamelAwsEventbridgeLimit": { "index": 11, "kind": "header", "displayName": "", "group": "listRules listTargetsByRule listRuleNamesByTarget", "label": "listRules listTargetsByRule listRuleNamesByTarget", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of results to return.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#LIMIT" },
"CamelAwsEventbridgeIsTruncated": { "index": 12, "kind": "header", "displayName": "", "group": "listRules listTargetsByRule listRuleNamesByTarget", "label": "listRules listTargetsByRule listRuleNamesByTarget", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#I [...]
"CamelAwsEventbridgeRuleArn": { "index": 13, "kind": "header", "displayName": "", "group": "putRule describeRule", "label": "putRule describeRule", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_ARN" },
- "CamelAwsEventbridgeFailedEntryCount": { "index": 14, "kind": "header", "displayName": "", "group": "putEvent putTargets removeTargets", "label": "putEvent putTargets removeTargets", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of failed entries in the response.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#FAILED_ENTRY_COUNT" }
+ "CamelAwsEventbridgeFailedEntryCount": { "index": 14, "kind": "header", "displayName": "", "group": "putEvent putTargets removeTargets", "label": "putEvent putTargets removeTargets", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of failed entries in the response.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#FAILED_ENTRY_COUNT" },
+ "CamelAwsEventbridgeMessageId": { "index": 15, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SQS message ID.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#MESSAGE_ID" },
+ "CamelAwsEventbridgeReceiptHandle": { "index": 16, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SQS receipt handle for message deletion.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RECEIPT_HANDLE" }
},
"properties": {
- "eventbusNameOrArn": { "index": 0, "kind": "path", "displayName": "Eventbus Name Or Arn", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Event bus name or ARN" },
- "eventPatternFile": { "index": 1, "kind": "parameter", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
- "operation": { "index": 2, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget", "putEvent" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false [...]
- "overrideEndpoint": { "index": 3, "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used i [...]
- "pojoRequest": { "index": 4, "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
- "region": { "index": 5, "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-nort [...]
- "uriEndpointOverride": { "index": 6, "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination wit [...]
- "lazyStartProducer": { "index": 7, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 produc [...]
- "eventbridgeClient": { "index": 8, "kind": "parameter", "displayName": "Eventbridge Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use an [...]
- "proxyHost": { "index": 9, "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
- "proxyPort": { "index": 10, "kind": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
- "proxyProtocol": { "index": 11, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy [...]
- "accessKey": { "index": 12, "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
- "profileCredentialsName": { "index": 13, "kind": "parameter", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider this parameter will set t [...]
- "secretKey": { "index": 14, "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
- "sessionToken": { "index": 15, "kind": "parameter", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
- "trustAllCertificates": { "index": 16, "kind": "parameter", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 overri [...]
- "useDefaultCredentialsProvider": { "index": 17, "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client [...]
- "useProfileCredentialsProvider": { "index": 18, "kind": "parameter", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client [...]
- "useSessionCredentials": { "index": 19, "kind": "parameter", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to [...]
+ "eventbusNameOrArn": { "index": 0, "kind": "path", "displayName": "Eventbus Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Event bus name or ARN" },
+ "eventPatternFile": { "index": 1, "kind": "parameter", "displayName": "Event Pattern File", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
+ "operation": { "index": 2, "kind": "parameter", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget", "putEvent" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, [...]
+ "overrideEndpoint": { "index": 3, "kind": "parameter", "displayName": "Override Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in [...]
+ "pojoRequest": { "index": 4, "kind": "parameter", "displayName": "Pojo Request", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
+ "region": { "index": 5, "kind": "parameter", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northe [...]
+ "uriEndpointOverride": { "index": 6, "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with [...]
+ "autoCreateQueue": { "index": 7, "kind": "parameter", "displayName": "Auto Create Queue", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Whether to auto-create an SQS queue and wire it as an EventBridge [...]
+ "deleteQueueOnShutdown": { "index": 8, "kind": "parameter", "displayName": "Delete Queue On Shutdown", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Whether to delete the auto-created SQS queue and remo [...]
+ "maxMessagesPerPoll": { "index": 9, "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The maximum number of messages to receive per poll from SQS." },
+ "queueUrl": { "index": 10, "kind": "parameter", "displayName": "Queue Url", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The URL of an existing SQS queue to use as EventBridge target. If not specified, a queue is au [...]
+ "ruleName": { "index": 11, "kind": "parameter", "displayName": "Rule Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The EventBridge rule name to consume events from. Required for consumer." },
+ "sendEmptyMessageWhenIdle": { "index": 12, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." },
+ "visibilityTimeout": { "index": 13, "kind": "parameter", "displayName": "Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) that received SQS messages are hidden from [...]
+ "waitTimeSeconds": { "index": 14, "kind": "parameter", "displayName": "Wait Time Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 20, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) for which the SQS receive call waits for mess [...]
+ "bridgeErrorHandler": { "index": 15, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...]
+ "exceptionHandler": { "index": 16, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...]
+ "exchangePattern": { "index": 17, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+ "pollStrategy": { "index": 18, "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the po [...]
+ "lazyStartProducer": { "index": 19, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 produ [...]
+ "eventbridgeClient": { "index": 20, "kind": "parameter", "displayName": "Eventbridge Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use an [...]
+ "proxyHost": { "index": 21, "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
+ "proxyPort": { "index": 22, "kind": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
+ "proxyProtocol": { "index": 23, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy [...]
+ "backoffErrorThreshold": { "index": 24, "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+ "backoffIdleThreshold": { "index": 25, "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+ "backoffMultiplier": { "index": 26, "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is h [...]
+ "delay": { "index": 27, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+ "greedy": { "index": 28, "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+ "initialDelay": { "index": 29, "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+ "repeatCount": { "index": 30, "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+ "runLoggingLevel": { "index": 31, "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "enum", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the log [...]
+ "scheduledExecutorService": { "index": 32, "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+ "scheduler": { "index": 33, "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+ "schedulerProperties": { "index": 34, "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. This i [...]
+ "startScheduler": { "index": 35, "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the scheduler should be auto started." },
+ "timeUnit": { "index": 36, "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." },
+ "useFixedDelay": { "index": 37, "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+ "accessKey": { "index": 38, "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+ "profileCredentialsName": { "index": 39, "kind": "parameter", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider this parameter will set t [...]
+ "secretKey": { "index": 40, "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+ "sessionToken": { "index": 41, "kind": "parameter", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+ "trustAllCertificates": { "index": 42, "kind": "parameter", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 overri [...]
+ "useDefaultCredentialsProvider": { "index": 43, "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client [...]
+ "useProfileCredentialsProvider": { "index": 44, "kind": "parameter", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client [...]
+ "useSessionCredentials": { "index": 45, "kind": "parameter", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to [...]
}
}
diff --git a/components/camel-aws/camel-aws2-eventbridge/pom.xml b/components/camel-aws/camel-aws2-eventbridge/pom.xml
index 35027af3ecc1..c61f46a5a794 100644
--- a/components/camel-aws/camel-aws2-eventbridge/pom.xml
+++ b/components/camel-aws/camel-aws2-eventbridge/pom.xml
@@ -49,6 +49,11 @@
<artifactId>eventbridge</artifactId>
<version>${aws-java-sdk2-version}</version>
</dependency>
+ <dependency>
+ <groupId>software.amazon.awssdk</groupId>
+ <artifactId>sqs</artifactId>
+ <version>${aws-java-sdk2-version}</version>
+ </dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>sts</artifactId>
@@ -85,6 +90,12 @@
<artifactId>camel-aws2-sqs</artifactId>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-junit-jupiter</artifactId>
+ <version>${mockito-version}</version>
+ <scope>test</scope>
+ </dependency>
<!-- test infra -->
<dependency>
<groupId>org.apache.camel</groupId>
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java b/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
index 2a140ba865d9..63f757830e46 100644
--- a/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
+++ b/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeComponentConfigurer.java
@@ -32,9 +32,15 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
switch (ignoreCase ? name.toLowerCase() : name) {
case "accesskey":
case "accessKey": getOrCreateConfiguration(target).setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+ case "autocreatequeue":
+ case "autoCreateQueue": getOrCreateConfiguration(target).setAutoCreateQueue(property(camelContext, boolean.class, value)); return true;
case "autowiredenabled":
case "autowiredEnabled": target.setAutowiredEnabled(property(camelContext, boolean.class, value)); return true;
+ case "bridgeerrorhandler":
+ case "bridgeErrorHandler": target.setBridgeErrorHandler(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 "deletequeueonshutdown":
+ case "deleteQueueOnShutdown": getOrCreateConfiguration(target).setDeleteQueueOnShutdown(property(camelContext, boolean.class, value)); return true;
case "eventpatternfile":
case "eventPatternFile": getOrCreateConfiguration(target).setEventPatternFile(property(camelContext, java.lang.String.class, value)); return true;
case "eventbridgeclient":
@@ -45,6 +51,8 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
case "healthCheckProducerEnabled": target.setHealthCheckProducerEnabled(property(camelContext, boolean.class, value)); return true;
case "lazystartproducer":
case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+ case "maxmessagesperpoll":
+ case "maxMessagesPerPoll": getOrCreateConfiguration(target).setMaxMessagesPerPoll(property(camelContext, int.class, value)); return true;
case "operation": getOrCreateConfiguration(target).setOperation(property(camelContext, org.apache.camel.component.aws2.eventbridge.EventbridgeOperations.class, value)); return true;
case "overrideendpoint":
case "overrideEndpoint": getOrCreateConfiguration(target).setOverrideEndpoint(property(camelContext, boolean.class, value)); return true;
@@ -58,7 +66,11 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
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 "queueurl":
+ case "queueUrl": getOrCreateConfiguration(target).setQueueUrl(property(camelContext, java.lang.String.class, value)); return true;
case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true;
+ case "rulename":
+ case "ruleName": getOrCreateConfiguration(target).setRuleName(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 "sessiontoken":
@@ -73,6 +85,10 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
case "useProfileCredentialsProvider": getOrCreateConfiguration(target).setUseProfileCredentialsProvider(property(camelContext, boolean.class, value)); return true;
case "usesessioncredentials":
case "useSessionCredentials": getOrCreateConfiguration(target).setUseSessionCredentials(property(camelContext, boolean.class, value)); return true;
+ case "visibilitytimeout":
+ case "visibilityTimeout": getOrCreateConfiguration(target).setVisibilityTimeout(property(camelContext, int.class, value)); return true;
+ case "waittimeseconds":
+ case "waitTimeSeconds": getOrCreateConfiguration(target).setWaitTimeSeconds(property(camelContext, int.class, value)); return true;
default: return false;
}
}
@@ -87,9 +103,15 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
switch (ignoreCase ? name.toLowerCase() : name) {
case "accesskey":
case "accessKey": return java.lang.String.class;
+ case "autocreatequeue":
+ case "autoCreateQueue": return boolean.class;
case "autowiredenabled":
case "autowiredEnabled": return boolean.class;
+ case "bridgeerrorhandler":
+ case "bridgeErrorHandler": return boolean.class;
case "configuration": return org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration.class;
+ case "deletequeueonshutdown":
+ case "deleteQueueOnShutdown": return boolean.class;
case "eventpatternfile":
case "eventPatternFile": return java.lang.String.class;
case "eventbridgeclient":
@@ -100,6 +122,8 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
case "healthCheckProducerEnabled": return boolean.class;
case "lazystartproducer":
case "lazyStartProducer": return boolean.class;
+ case "maxmessagesperpoll":
+ case "maxMessagesPerPoll": return int.class;
case "operation": return org.apache.camel.component.aws2.eventbridge.EventbridgeOperations.class;
case "overrideendpoint":
case "overrideEndpoint": return boolean.class;
@@ -113,7 +137,11 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
case "proxyPort": return java.lang.Integer.class;
case "proxyprotocol":
case "proxyProtocol": return software.amazon.awssdk.core.Protocol.class;
+ case "queueurl":
+ case "queueUrl": return java.lang.String.class;
case "region": return java.lang.String.class;
+ case "rulename":
+ case "ruleName": return java.lang.String.class;
case "secretkey":
case "secretKey": return java.lang.String.class;
case "sessiontoken":
@@ -128,6 +156,10 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
case "useProfileCredentialsProvider": return boolean.class;
case "usesessioncredentials":
case "useSessionCredentials": return boolean.class;
+ case "visibilitytimeout":
+ case "visibilityTimeout": return int.class;
+ case "waittimeseconds":
+ case "waitTimeSeconds": return int.class;
default: return null;
}
}
@@ -138,9 +170,15 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
switch (ignoreCase ? name.toLowerCase() : name) {
case "accesskey":
case "accessKey": return getOrCreateConfiguration(target).getAccessKey();
+ case "autocreatequeue":
+ case "autoCreateQueue": return getOrCreateConfiguration(target).isAutoCreateQueue();
case "autowiredenabled":
case "autowiredEnabled": return target.isAutowiredEnabled();
+ case "bridgeerrorhandler":
+ case "bridgeErrorHandler": return target.isBridgeErrorHandler();
case "configuration": return target.getConfiguration();
+ case "deletequeueonshutdown":
+ case "deleteQueueOnShutdown": return getOrCreateConfiguration(target).isDeleteQueueOnShutdown();
case "eventpatternfile":
case "eventPatternFile": return getOrCreateConfiguration(target).getEventPatternFile();
case "eventbridgeclient":
@@ -151,6 +189,8 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
case "healthCheckProducerEnabled": return target.isHealthCheckProducerEnabled();
case "lazystartproducer":
case "lazyStartProducer": return target.isLazyStartProducer();
+ case "maxmessagesperpoll":
+ case "maxMessagesPerPoll": return getOrCreateConfiguration(target).getMaxMessagesPerPoll();
case "operation": return getOrCreateConfiguration(target).getOperation();
case "overrideendpoint":
case "overrideEndpoint": return getOrCreateConfiguration(target).isOverrideEndpoint();
@@ -164,7 +204,11 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
case "proxyPort": return getOrCreateConfiguration(target).getProxyPort();
case "proxyprotocol":
case "proxyProtocol": return getOrCreateConfiguration(target).getProxyProtocol();
+ case "queueurl":
+ case "queueUrl": return getOrCreateConfiguration(target).getQueueUrl();
case "region": return getOrCreateConfiguration(target).getRegion();
+ case "rulename":
+ case "ruleName": return getOrCreateConfiguration(target).getRuleName();
case "secretkey":
case "secretKey": return getOrCreateConfiguration(target).getSecretKey();
case "sessiontoken":
@@ -179,6 +223,10 @@ public class EventbridgeComponentConfigurer extends PropertyConfigurerSupport im
case "useProfileCredentialsProvider": return getOrCreateConfiguration(target).isUseProfileCredentialsProvider();
case "usesessioncredentials":
case "useSessionCredentials": return getOrCreateConfiguration(target).isUseSessionCredentials();
+ case "visibilitytimeout":
+ case "visibilityTimeout": return getOrCreateConfiguration(target).getVisibilityTimeout();
+ case "waittimeseconds":
+ case "waitTimeSeconds": return getOrCreateConfiguration(target).getWaitTimeSeconds();
default: return null;
}
}
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java b/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
index efbcd2ee260d..6b81fe2a629a 100644
--- a/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
+++ b/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointConfigurer.java
@@ -25,17 +25,41 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
switch (ignoreCase ? name.toLowerCase() : name) {
case "accesskey":
case "accessKey": target.getConfiguration().setAccessKey(property(camelContext, java.lang.String.class, value)); return true;
+ case "autocreatequeue":
+ case "autoCreateQueue": target.getConfiguration().setAutoCreateQueue(property(camelContext, boolean.class, value)); return true;
+ case "backofferrorthreshold":
+ case "backoffErrorThreshold": target.setBackoffErrorThreshold(property(camelContext, int.class, value)); return true;
+ case "backoffidlethreshold":
+ case "backoffIdleThreshold": target.setBackoffIdleThreshold(property(camelContext, int.class, value)); return true;
+ case "backoffmultiplier":
+ case "backoffMultiplier": target.setBackoffMultiplier(property(camelContext, int.class, value)); return true;
+ case "bridgeerrorhandler":
+ case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
+ case "delay": target.setDelay(property(camelContext, long.class, value)); return true;
+ case "deletequeueonshutdown":
+ case "deleteQueueOnShutdown": target.getConfiguration().setDeleteQueueOnShutdown(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 "exceptionhandler":
+ case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
+ case "exchangepattern":
+ case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
+ case "greedy": target.setGreedy(property(camelContext, boolean.class, value)); return true;
+ case "initialdelay":
+ case "initialDelay": target.setInitialDelay(property(camelContext, long.class, value)); return true;
case "lazystartproducer":
case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
+ case "maxmessagesperpoll":
+ case "maxMessagesPerPoll": target.getConfiguration().setMaxMessagesPerPoll(property(camelContext, int.class, value)); return true;
case "operation": target.getConfiguration().setOperation(property(camelContext, org.apache.camel.component.aws2.eventbridge.EventbridgeOperations.class, value)); return true;
case "overrideendpoint":
case "overrideEndpoint": target.getConfiguration().setOverrideEndpoint(property(camelContext, boolean.class, value)); return true;
case "pojorequest":
case "pojoRequest": target.getConfiguration().setPojoRequest(property(camelContext, boolean.class, value)); return true;
+ case "pollstrategy":
+ case "pollStrategy": target.setPollStrategy(property(camelContext, org.apache.camel.spi.PollingConsumerPollStrategy.class, value)); return true;
case "profilecredentialsname":
case "profileCredentialsName": target.getConfiguration().setProfileCredentialsName(property(camelContext, java.lang.String.class, value)); return true;
case "proxyhost":
@@ -44,21 +68,46 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
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 "queueurl":
+ case "queueUrl": target.getConfiguration().setQueueUrl(property(camelContext, java.lang.String.class, value)); return true;
case "region": target.getConfiguration().setRegion(property(camelContext, java.lang.String.class, value)); return true;
+ case "repeatcount":
+ case "repeatCount": target.setRepeatCount(property(camelContext, long.class, value)); return true;
+ case "rulename":
+ case "ruleName": target.getConfiguration().setRuleName(property(camelContext, java.lang.String.class, value)); return true;
+ case "runlogginglevel":
+ case "runLoggingLevel": target.setRunLoggingLevel(property(camelContext, org.apache.camel.LoggingLevel.class, value)); return true;
+ case "scheduledexecutorservice":
+ case "scheduledExecutorService": target.setScheduledExecutorService(property(camelContext, java.util.concurrent.ScheduledExecutorService.class, value)); return true;
+ case "scheduler": target.setScheduler(property(camelContext, java.lang.Object.class, value)); return true;
+ case "schedulerproperties":
+ case "schedulerProperties": target.setSchedulerProperties(property(camelContext, java.util.Map.class, value)); return true;
case "secretkey":
case "secretKey": target.getConfiguration().setSecretKey(property(camelContext, java.lang.String.class, value)); return true;
+ case "sendemptymessagewhenidle":
+ case "sendEmptyMessageWhenIdle": target.setSendEmptyMessageWhenIdle(property(camelContext, boolean.class, value)); return true;
case "sessiontoken":
case "sessionToken": target.getConfiguration().setSessionToken(property(camelContext, java.lang.String.class, value)); return true;
+ case "startscheduler":
+ case "startScheduler": target.setStartScheduler(property(camelContext, boolean.class, value)); return true;
+ case "timeunit":
+ case "timeUnit": target.setTimeUnit(property(camelContext, java.util.concurrent.TimeUnit.class, value)); return true;
case "trustallcertificates":
case "trustAllCertificates": target.getConfiguration().setTrustAllCertificates(property(camelContext, boolean.class, value)); return true;
case "uriendpointoverride":
case "uriEndpointOverride": target.getConfiguration().setUriEndpointOverride(property(camelContext, java.lang.String.class, value)); return true;
case "usedefaultcredentialsprovider":
case "useDefaultCredentialsProvider": target.getConfiguration().setUseDefaultCredentialsProvider(property(camelContext, boolean.class, value)); return true;
+ case "usefixeddelay":
+ case "useFixedDelay": target.setUseFixedDelay(property(camelContext, boolean.class, value)); return true;
case "useprofilecredentialsprovider":
case "useProfileCredentialsProvider": target.getConfiguration().setUseProfileCredentialsProvider(property(camelContext, boolean.class, value)); return true;
case "usesessioncredentials":
case "useSessionCredentials": target.getConfiguration().setUseSessionCredentials(property(camelContext, boolean.class, value)); return true;
+ case "visibilitytimeout":
+ case "visibilityTimeout": target.getConfiguration().setVisibilityTimeout(property(camelContext, int.class, value)); return true;
+ case "waittimeseconds":
+ case "waitTimeSeconds": target.getConfiguration().setWaitTimeSeconds(property(camelContext, int.class, value)); return true;
default: return false;
}
}
@@ -73,17 +122,41 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
switch (ignoreCase ? name.toLowerCase() : name) {
case "accesskey":
case "accessKey": return java.lang.String.class;
+ case "autocreatequeue":
+ case "autoCreateQueue": return boolean.class;
+ case "backofferrorthreshold":
+ case "backoffErrorThreshold": return int.class;
+ case "backoffidlethreshold":
+ case "backoffIdleThreshold": return int.class;
+ case "backoffmultiplier":
+ case "backoffMultiplier": return int.class;
+ case "bridgeerrorhandler":
+ case "bridgeErrorHandler": return boolean.class;
+ case "delay": return long.class;
+ case "deletequeueonshutdown":
+ case "deleteQueueOnShutdown": return boolean.class;
case "eventpatternfile":
case "eventPatternFile": return java.lang.String.class;
case "eventbridgeclient":
case "eventbridgeClient": return software.amazon.awssdk.services.eventbridge.EventBridgeClient.class;
+ case "exceptionhandler":
+ case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
+ case "exchangepattern":
+ case "exchangePattern": return org.apache.camel.ExchangePattern.class;
+ case "greedy": return boolean.class;
+ case "initialdelay":
+ case "initialDelay": return long.class;
case "lazystartproducer":
case "lazyStartProducer": return boolean.class;
+ case "maxmessagesperpoll":
+ case "maxMessagesPerPoll": return int.class;
case "operation": return org.apache.camel.component.aws2.eventbridge.EventbridgeOperations.class;
case "overrideendpoint":
case "overrideEndpoint": return boolean.class;
case "pojorequest":
case "pojoRequest": return boolean.class;
+ case "pollstrategy":
+ case "pollStrategy": return org.apache.camel.spi.PollingConsumerPollStrategy.class;
case "profilecredentialsname":
case "profileCredentialsName": return java.lang.String.class;
case "proxyhost":
@@ -92,21 +165,46 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
case "proxyPort": return java.lang.Integer.class;
case "proxyprotocol":
case "proxyProtocol": return software.amazon.awssdk.core.Protocol.class;
+ case "queueurl":
+ case "queueUrl": return java.lang.String.class;
case "region": return java.lang.String.class;
+ case "repeatcount":
+ case "repeatCount": return long.class;
+ case "rulename":
+ case "ruleName": return java.lang.String.class;
+ case "runlogginglevel":
+ case "runLoggingLevel": return org.apache.camel.LoggingLevel.class;
+ case "scheduledexecutorservice":
+ case "scheduledExecutorService": return java.util.concurrent.ScheduledExecutorService.class;
+ case "scheduler": return java.lang.Object.class;
+ case "schedulerproperties":
+ case "schedulerProperties": return java.util.Map.class;
case "secretkey":
case "secretKey": return java.lang.String.class;
+ case "sendemptymessagewhenidle":
+ case "sendEmptyMessageWhenIdle": return boolean.class;
case "sessiontoken":
case "sessionToken": return java.lang.String.class;
+ case "startscheduler":
+ case "startScheduler": return boolean.class;
+ case "timeunit":
+ case "timeUnit": return java.util.concurrent.TimeUnit.class;
case "trustallcertificates":
case "trustAllCertificates": return boolean.class;
case "uriendpointoverride":
case "uriEndpointOverride": return java.lang.String.class;
case "usedefaultcredentialsprovider":
case "useDefaultCredentialsProvider": return boolean.class;
+ case "usefixeddelay":
+ case "useFixedDelay": return boolean.class;
case "useprofilecredentialsprovider":
case "useProfileCredentialsProvider": return boolean.class;
case "usesessioncredentials":
case "useSessionCredentials": return boolean.class;
+ case "visibilitytimeout":
+ case "visibilityTimeout": return int.class;
+ case "waittimeseconds":
+ case "waitTimeSeconds": return int.class;
default: return null;
}
}
@@ -117,17 +215,41 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
switch (ignoreCase ? name.toLowerCase() : name) {
case "accesskey":
case "accessKey": return target.getConfiguration().getAccessKey();
+ case "autocreatequeue":
+ case "autoCreateQueue": return target.getConfiguration().isAutoCreateQueue();
+ case "backofferrorthreshold":
+ case "backoffErrorThreshold": return target.getBackoffErrorThreshold();
+ case "backoffidlethreshold":
+ case "backoffIdleThreshold": return target.getBackoffIdleThreshold();
+ case "backoffmultiplier":
+ case "backoffMultiplier": return target.getBackoffMultiplier();
+ case "bridgeerrorhandler":
+ case "bridgeErrorHandler": return target.isBridgeErrorHandler();
+ case "delay": return target.getDelay();
+ case "deletequeueonshutdown":
+ case "deleteQueueOnShutdown": return target.getConfiguration().isDeleteQueueOnShutdown();
case "eventpatternfile":
case "eventPatternFile": return target.getConfiguration().getEventPatternFile();
case "eventbridgeclient":
case "eventbridgeClient": return target.getConfiguration().getEventbridgeClient();
+ case "exceptionhandler":
+ case "exceptionHandler": return target.getExceptionHandler();
+ case "exchangepattern":
+ case "exchangePattern": return target.getExchangePattern();
+ case "greedy": return target.isGreedy();
+ case "initialdelay":
+ case "initialDelay": return target.getInitialDelay();
case "lazystartproducer":
case "lazyStartProducer": return target.isLazyStartProducer();
+ case "maxmessagesperpoll":
+ case "maxMessagesPerPoll": return target.getConfiguration().getMaxMessagesPerPoll();
case "operation": return target.getConfiguration().getOperation();
case "overrideendpoint":
case "overrideEndpoint": return target.getConfiguration().isOverrideEndpoint();
case "pojorequest":
case "pojoRequest": return target.getConfiguration().isPojoRequest();
+ case "pollstrategy":
+ case "pollStrategy": return target.getPollStrategy();
case "profilecredentialsname":
case "profileCredentialsName": return target.getConfiguration().getProfileCredentialsName();
case "proxyhost":
@@ -136,21 +258,55 @@ public class EventbridgeEndpointConfigurer extends PropertyConfigurerSupport imp
case "proxyPort": return target.getConfiguration().getProxyPort();
case "proxyprotocol":
case "proxyProtocol": return target.getConfiguration().getProxyProtocol();
+ case "queueurl":
+ case "queueUrl": return target.getConfiguration().getQueueUrl();
case "region": return target.getConfiguration().getRegion();
+ case "repeatcount":
+ case "repeatCount": return target.getRepeatCount();
+ case "rulename":
+ case "ruleName": return target.getConfiguration().getRuleName();
+ case "runlogginglevel":
+ case "runLoggingLevel": return target.getRunLoggingLevel();
+ case "scheduledexecutorservice":
+ case "scheduledExecutorService": return target.getScheduledExecutorService();
+ case "scheduler": return target.getScheduler();
+ case "schedulerproperties":
+ case "schedulerProperties": return target.getSchedulerProperties();
case "secretkey":
case "secretKey": return target.getConfiguration().getSecretKey();
+ case "sendemptymessagewhenidle":
+ case "sendEmptyMessageWhenIdle": return target.isSendEmptyMessageWhenIdle();
case "sessiontoken":
case "sessionToken": return target.getConfiguration().getSessionToken();
+ case "startscheduler":
+ case "startScheduler": return target.isStartScheduler();
+ case "timeunit":
+ case "timeUnit": return target.getTimeUnit();
case "trustallcertificates":
case "trustAllCertificates": return target.getConfiguration().isTrustAllCertificates();
case "uriendpointoverride":
case "uriEndpointOverride": return target.getConfiguration().getUriEndpointOverride();
case "usedefaultcredentialsprovider":
case "useDefaultCredentialsProvider": return target.getConfiguration().isUseDefaultCredentialsProvider();
+ case "usefixeddelay":
+ case "useFixedDelay": return target.isUseFixedDelay();
case "useprofilecredentialsprovider":
case "useProfileCredentialsProvider": return target.getConfiguration().isUseProfileCredentialsProvider();
case "usesessioncredentials":
case "useSessionCredentials": return target.getConfiguration().isUseSessionCredentials();
+ case "visibilitytimeout":
+ case "visibilityTimeout": return target.getConfiguration().getVisibilityTimeout();
+ case "waittimeseconds":
+ case "waitTimeSeconds": return target.getConfiguration().getWaitTimeSeconds();
+ default: return null;
+ }
+ }
+
+ @Override
+ public Object getCollectionValueType(Object target, String name, boolean ignoreCase) {
+ switch (ignoreCase ? name.toLowerCase() : name) {
+ case "schedulerproperties":
+ case "schedulerProperties": return java.lang.Object.class;
default: return null;
}
}
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointUriFactory.java b/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointUriFactory.java
index 944a85333913..f0acc116ffbc 100644
--- a/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointUriFactory.java
+++ b/components/camel-aws/camel-aws2-eventbridge/src/generated/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpointUriFactory.java
@@ -23,34 +23,62 @@ public class EventbridgeEndpointUriFactory extends org.apache.camel.support.comp
private static final Set<String> SECRET_PROPERTY_NAMES;
private static final Map<String, String> MULTI_VALUE_PREFIXES;
static {
- Set<String> props = new HashSet<>(20);
+ Set<String> props = new HashSet<>(46);
props.add("accessKey");
+ props.add("autoCreateQueue");
+ props.add("backoffErrorThreshold");
+ props.add("backoffIdleThreshold");
+ props.add("backoffMultiplier");
+ props.add("bridgeErrorHandler");
+ props.add("delay");
+ props.add("deleteQueueOnShutdown");
props.add("eventPatternFile");
props.add("eventbridgeClient");
props.add("eventbusNameOrArn");
+ props.add("exceptionHandler");
+ props.add("exchangePattern");
+ props.add("greedy");
+ props.add("initialDelay");
props.add("lazyStartProducer");
+ props.add("maxMessagesPerPoll");
props.add("operation");
props.add("overrideEndpoint");
props.add("pojoRequest");
+ props.add("pollStrategy");
props.add("profileCredentialsName");
props.add("proxyHost");
props.add("proxyPort");
props.add("proxyProtocol");
+ props.add("queueUrl");
props.add("region");
+ props.add("repeatCount");
+ props.add("ruleName");
+ props.add("runLoggingLevel");
+ props.add("scheduledExecutorService");
+ props.add("scheduler");
+ props.add("schedulerProperties");
props.add("secretKey");
+ props.add("sendEmptyMessageWhenIdle");
props.add("sessionToken");
+ props.add("startScheduler");
+ props.add("timeUnit");
props.add("trustAllCertificates");
props.add("uriEndpointOverride");
props.add("useDefaultCredentialsProvider");
+ props.add("useFixedDelay");
props.add("useProfileCredentialsProvider");
props.add("useSessionCredentials");
+ props.add("visibilityTimeout");
+ props.add("waitTimeSeconds");
PROPERTY_NAMES = Collections.unmodifiableSet(props);
Set<String> secretProps = new HashSet<>(3);
secretProps.add("accessKey");
secretProps.add("secretKey");
secretProps.add("sessionToken");
SECRET_PROPERTY_NAMES = Collections.unmodifiableSet(secretProps);
- MULTI_VALUE_PREFIXES = Collections.emptyMap();
+ Map<String, String> prefixes = new HashMap<>(1);
+ prefixes.put("schedulerProperties", "scheduler.");
+ MULTI_VALUE_PREFIXES = Collections.unmodifiableMap(prefixes);
}
@Override
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/generated/resources/META-INF/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json b/components/camel-aws/camel-aws2-eventbridge/src/generated/resources/META-INF/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
index 5957c064f34d..3b08cc5dbfa6 100644
--- a/components/camel-aws/camel-aws2-eventbridge/src/generated/resources/META-INF/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
+++ b/components/camel-aws/camel-aws2-eventbridge/src/generated/resources/META-INF/org/apache/camel/component/aws2/eventbridge/aws2-eventbridge.json
@@ -3,7 +3,7 @@
"kind": "component",
"name": "aws2-eventbridge",
"title": "AWS Eventbridge",
- "description": "Send events to AWS Eventbridge cluster instances.",
+ "description": "Manage AWS EventBridge cluster instances and consume events via SQS-backed polling.",
"deprecated": false,
"firstVersion": "3.6.0",
"label": "cloud,management",
@@ -18,73 +18,109 @@
"async": false,
"api": false,
"consumerOnly": false,
- "producerOnly": true,
+ "producerOnly": false,
"lenientProperties": false,
"browsable": false,
"remote": true
},
"componentProperties": {
- "configuration": { "index": 0, "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
- "eventPatternFile": { "index": 1, "kind": "property", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
- "lazyStartProducer": { "index": 2, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 [...]
- "operation": { "index": 3, "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget", "putEvent" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, [...]
- "overrideEndpoint": { "index": 4, "kind": "property", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in [...]
- "pojoRequest": { "index": 5, "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
- "region": { "index": 6, "kind": "property", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-north [...]
- "uriEndpointOverride": { "index": 7, "kind": "property", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with [...]
- "autowiredEnabled": { "index": 8, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching t [...]
- "eventbridgeClient": { "index": 9, "kind": "property", "displayName": "Eventbridge Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use an e [...]
- "healthCheckConsumerEnabled": { "index": 10, "kind": "property", "displayName": "Health Check Consumer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all consumer based health checks from this component" },
- "healthCheckProducerEnabled": { "index": 11, "kind": "property", "displayName": "Health Check Producer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all producer based health checks from this component. Notice: Camel has by default disabled all producer based health-checks. You can turn on produce [...]
- "proxyHost": { "index": 12, "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
- "proxyPort": { "index": 13, "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
- "proxyProtocol": { "index": 14, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy p [...]
- "accessKey": { "index": 15, "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
- "profileCredentialsName": { "index": 16, "kind": "property", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider this parameter will set th [...]
- "secretKey": { "index": 17, "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
- "sessionToken": { "index": 18, "kind": "property", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
- "trustAllCertificates": { "index": 19, "kind": "property", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 overrid [...]
- "useDefaultCredentialsProvider": { "index": 20, "kind": "property", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client s [...]
- "useProfileCredentialsProvider": { "index": 21, "kind": "property", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client s [...]
- "useSessionCredentials": { "index": 22, "kind": "property", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to u [...]
+ "configuration": { "index": 0, "kind": "property", "displayName": "Configuration", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
+ "eventPatternFile": { "index": 1, "kind": "property", "displayName": "Event Pattern File", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
+ "operation": { "index": 2, "kind": "property", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget", "putEvent" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, " [...]
+ "overrideEndpoint": { "index": 3, "kind": "property", "displayName": "Override Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in c [...]
+ "pojoRequest": { "index": 4, "kind": "property", "displayName": "Pojo Request", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
+ "region": { "index": 5, "kind": "property", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northea [...]
+ "uriEndpointOverride": { "index": 6, "kind": "property", "displayName": "Uri Endpoint Override", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with o [...]
+ "autoCreateQueue": { "index": 7, "kind": "property", "displayName": "Auto Create Queue", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Whether to auto-create an SQS queue and wire it as an EventBridge r [...]
+ "bridgeErrorHandler": { "index": 8, "kind": "property", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming messages, or the like [...]
+ "deleteQueueOnShutdown": { "index": 9, "kind": "property", "displayName": "Delete Queue On Shutdown", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Whether to delete the auto-created SQS queue and remov [...]
+ "maxMessagesPerPoll": { "index": 10, "kind": "property", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The maximum number of messages to receive per poll from SQS." },
+ "queueUrl": { "index": 11, "kind": "property", "displayName": "Queue Url", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The URL of an existing SQS queue to use as EventBridge target. If not specified, a queue is aut [...]
+ "ruleName": { "index": 12, "kind": "property", "displayName": "Rule Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The EventBridge rule name to consume events from. Required for consumer." },
+ "visibilityTimeout": { "index": 13, "kind": "property", "displayName": "Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) that received SQS messages are hidden from [...]
+ "waitTimeSeconds": { "index": 14, "kind": "property", "displayName": "Wait Time Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 20, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) for which the SQS receive call waits for messa [...]
+ "lazyStartProducer": { "index": 15, "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 fai [...]
+ "autowiredEnabled": { "index": 16, "kind": "property", "displayName": "Autowired Enabled", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching [...]
+ "eventbridgeClient": { "index": 17, "kind": "property", "displayName": "Eventbridge Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use an [...]
+ "healthCheckConsumerEnabled": { "index": 18, "kind": "property", "displayName": "Health Check Consumer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all consumer based health checks from this component" },
+ "healthCheckProducerEnabled": { "index": 19, "kind": "property", "displayName": "Health Check Producer Enabled", "group": "health", "label": "health", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Used for enabling or disabling all producer based health checks from this component. Notice: Camel has by default disabled all producer based health-checks. You can turn on produce [...]
+ "proxyHost": { "index": 20, "kind": "property", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
+ "proxyPort": { "index": 21, "kind": "property", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
+ "proxyProtocol": { "index": 22, "kind": "property", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy p [...]
+ "accessKey": { "index": 23, "kind": "property", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+ "profileCredentialsName": { "index": 24, "kind": "property", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider this parameter will set th [...]
+ "secretKey": { "index": 25, "kind": "property", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+ "sessionToken": { "index": 26, "kind": "property", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+ "trustAllCertificates": { "index": 27, "kind": "property", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 overrid [...]
+ "useDefaultCredentialsProvider": { "index": 28, "kind": "property", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client s [...]
+ "useProfileCredentialsProvider": { "index": 29, "kind": "property", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client s [...]
+ "useSessionCredentials": { "index": 30, "kind": "property", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to u [...]
},
"headers": {
- "CamelAwsEventbridgeOperation": { "index": 0, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#OPERATION" },
- "CamelAwsEventbridgeRuleName": { "index": 1, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_NAME" },
- "CamelAwsEventbridgeRuleNamePrefix": { "index": 2, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prefix matching the rule name.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_NAME_PREFIX" },
- "CamelAwsEventbridgeEventPattern": { "index": 3, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The event pattern.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_PATTERN" },
- "CamelAwsEventbridgeTargets": { "index": 4, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Collection<Target>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The targets to update or add to the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGETS" },
- "CamelAwsEventbridgeTargetsIds": { "index": 5, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Collection<String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The IDs of the targets to remove from the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGETS_IDS" },
- "CamelAwsEventbridgeTargetArn": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the target resource.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGET_ARN" },
- "CamelAwsEventbridgeResourcesArn": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Comma separated list of Amazon Resource Names (ARN) of the resources related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_RESOURCES_ARN" },
- "CamelAwsEventbridgeSource": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The source related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_SOURCE" },
- "CamelAwsEventbridgeDetailType": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The detail type related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_DETAIL_TYPE" },
+ "CamelAwsEventbridgeOperation": { "index": 0, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The operation we want to perform", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#OPERATION" },
+ "CamelAwsEventbridgeRuleName": { "index": 1, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The name of the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_NAME" },
+ "CamelAwsEventbridgeRuleNamePrefix": { "index": 2, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The prefix matching the rule name.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_NAME_PREFIX" },
+ "CamelAwsEventbridgeEventPattern": { "index": 3, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The event pattern.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_PATTERN" },
+ "CamelAwsEventbridgeTargets": { "index": 4, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Collection<Target>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The targets to update or add to the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGETS" },
+ "CamelAwsEventbridgeTargetsIds": { "index": 5, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "Collection<String>", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The IDs of the targets to remove from the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGETS_IDS" },
+ "CamelAwsEventbridgeTargetArn": { "index": 6, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the target resource.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#TARGET_ARN" },
+ "CamelAwsEventbridgeResourcesArn": { "index": 7, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Comma separated list of Amazon Resource Names (ARN) of the resources related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_RESOURCES_ARN" },
+ "CamelAwsEventbridgeSource": { "index": 8, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The source related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_SOURCE" },
+ "CamelAwsEventbridgeDetailType": { "index": 9, "kind": "header", "displayName": "", "group": "common", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The detail type related to Event", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#EVENT_DETAIL_TYPE" },
"CamelAwsEventbridgeNextToken": { "index": 10, "kind": "header", "displayName": "", "group": "listRules listTargetsByRule listRuleNamesByTarget", "label": "listRules listTargetsByRule listRuleNamesByTarget", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The token for the next set of results.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#NEXT_TOKEN" },
"CamelAwsEventbridgeLimit": { "index": 11, "kind": "header", "displayName": "", "group": "listRules listTargetsByRule listRuleNamesByTarget", "label": "listRules listTargetsByRule listRuleNamesByTarget", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The maximum number of results to return.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#LIMIT" },
"CamelAwsEventbridgeIsTruncated": { "index": 12, "kind": "header", "displayName": "", "group": "listRules listTargetsByRule listRuleNamesByTarget", "label": "listRules listTargetsByRule listRuleNamesByTarget", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Whether the response has more results (is truncated).", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#I [...]
"CamelAwsEventbridgeRuleArn": { "index": 13, "kind": "header", "displayName": "", "group": "putRule describeRule", "label": "putRule describeRule", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The Amazon Resource Name (ARN) of the rule.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RULE_ARN" },
- "CamelAwsEventbridgeFailedEntryCount": { "index": 14, "kind": "header", "displayName": "", "group": "putEvent putTargets removeTargets", "label": "putEvent putTargets removeTargets", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of failed entries in the response.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#FAILED_ENTRY_COUNT" }
+ "CamelAwsEventbridgeFailedEntryCount": { "index": 14, "kind": "header", "displayName": "", "group": "putEvent putTargets removeTargets", "label": "putEvent putTargets removeTargets", "required": false, "javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The number of failed entries in the response.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#FAILED_ENTRY_COUNT" },
+ "CamelAwsEventbridgeMessageId": { "index": 15, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SQS message ID.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#MESSAGE_ID" },
+ "CamelAwsEventbridgeReceiptHandle": { "index": 16, "kind": "header", "displayName": "", "group": "consumer", "label": "consumer", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The SQS receipt handle for message deletion.", "constantName": "org.apache.camel.component.aws2.eventbridge.EventbridgeConstants#RECEIPT_HANDLE" }
},
"properties": {
- "eventbusNameOrArn": { "index": 0, "kind": "path", "displayName": "Eventbus Name Or Arn", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Event bus name or ARN" },
- "eventPatternFile": { "index": 1, "kind": "parameter", "displayName": "Event Pattern File", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
- "operation": { "index": 2, "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget", "putEvent" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false [...]
- "overrideEndpoint": { "index": 3, "kind": "parameter", "displayName": "Override Endpoint", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used i [...]
- "pojoRequest": { "index": 4, "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
- "region": { "index": 5, "kind": "parameter", "displayName": "Region", "group": "producer", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-nort [...]
- "uriEndpointOverride": { "index": 6, "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination wit [...]
- "lazyStartProducer": { "index": 7, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 produc [...]
- "eventbridgeClient": { "index": 8, "kind": "parameter", "displayName": "Eventbridge Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use an [...]
- "proxyHost": { "index": 9, "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
- "proxyPort": { "index": 10, "kind": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
- "proxyProtocol": { "index": 11, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy [...]
- "accessKey": { "index": 12, "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
- "profileCredentialsName": { "index": 13, "kind": "parameter", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider this parameter will set t [...]
- "secretKey": { "index": 14, "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
- "sessionToken": { "index": 15, "kind": "parameter", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
- "trustAllCertificates": { "index": 16, "kind": "parameter", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 overri [...]
- "useDefaultCredentialsProvider": { "index": 17, "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client [...]
- "useProfileCredentialsProvider": { "index": 18, "kind": "parameter", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client [...]
- "useSessionCredentials": { "index": 19, "kind": "parameter", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to [...]
+ "eventbusNameOrArn": { "index": 0, "kind": "path", "displayName": "Eventbus Name Or Arn", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "Event bus name or ARN" },
+ "eventPatternFile": { "index": 1, "kind": "parameter", "displayName": "Event Pattern File", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "EventPattern File" },
+ "operation": { "index": 2, "kind": "parameter", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "enum", "javaType": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations", "enum": [ "putRule", "putTargets", "removeTargets", "deleteRule", "enableRule", "disableRule", "describeRule", "listRules", "listTargetsByRule", "listRuleNamesByTarget", "putEvent" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, [...]
+ "overrideEndpoint": { "index": 3, "kind": "parameter", "displayName": "Override Endpoint", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the need for overriding the endpoint. This option needs to be used in [...]
+ "pojoRequest": { "index": 4, "kind": "parameter", "displayName": "Pojo Request", "group": "common", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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" },
+ "region": { "index": 5, "kind": "parameter", "displayName": "Region", "group": "common", "label": "", "required": false, "type": "enum", "javaType": "java.lang.String", "enum": [ "ap-south-2", "ap-south-1", "eu-south-1", "eu-south-2", "us-gov-east-1", "me-central-1", "il-central-1", "ca-central-1", "eu-central-1", "us-iso-west-1", "eu-central-2", "eu-isoe-west-1", "us-west-1", "us-west-2", "af-south-1", "eu-north-1", "eu-west-3", "eu-west-2", "eu-west-1", "ap-northeast-3", "ap-northe [...]
+ "uriEndpointOverride": { "index": 6, "kind": "parameter", "displayName": "Uri Endpoint Override", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set the overriding uri endpoint. This option needs to be used in combination with [...]
+ "autoCreateQueue": { "index": 7, "kind": "parameter", "displayName": "Auto Create Queue", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Whether to auto-create an SQS queue and wire it as an EventBridge [...]
+ "deleteQueueOnShutdown": { "index": 8, "kind": "parameter", "displayName": "Delete Queue On Shutdown", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Whether to delete the auto-created SQS queue and remo [...]
+ "maxMessagesPerPoll": { "index": 9, "kind": "parameter", "displayName": "Max Messages Per Poll", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The maximum number of messages to receive per poll from SQS." },
+ "queueUrl": { "index": 10, "kind": "parameter", "displayName": "Queue Url", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The URL of an existing SQS queue to use as EventBridge target. If not specified, a queue is au [...]
+ "ruleName": { "index": 11, "kind": "parameter", "displayName": "Rule Name", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The EventBridge rule name to consume events from. Required for consumer." },
+ "sendEmptyMessageWhenIdle": { "index": 12, "kind": "parameter", "displayName": "Send Empty Message When Idle", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If the polling consumer did not poll any files, you can enable this option to send an empty message (no body) instead." },
+ "visibilityTimeout": { "index": 13, "kind": "parameter", "displayName": "Visibility Timeout", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 30, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) that received SQS messages are hidden from [...]
+ "waitTimeSeconds": { "index": 14, "kind": "parameter", "displayName": "Wait Time Seconds", "group": "consumer", "label": "consumer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 20, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "The duration (in seconds) for which the SQS receive call waits for mess [...]
+ "bridgeErrorHandler": { "index": 15, "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions (if possible) occurred while the Camel consumer is trying to pickup incoming [...]
+ "exceptionHandler": { "index": 16, "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By de [...]
+ "exchangePattern": { "index": 17, "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "enum", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." },
+ "pollStrategy": { "index": 18, "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the po [...]
+ "lazyStartProducer": { "index": 19, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 produ [...]
+ "eventbridgeClient": { "index": 20, "kind": "parameter", "displayName": "Eventbridge Client", "group": "advanced", "label": "advanced", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eventbridge.EventBridgeClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To use an [...]
+ "proxyHost": { "index": 21, "kind": "parameter", "displayName": "Proxy Host", "group": "proxy", "label": "proxy", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy host when instantiating the Eventbridge client" },
+ "proxyPort": { "index": 22, "kind": "parameter", "displayName": "Proxy Port", "group": "proxy", "label": "proxy", "required": false, "type": "integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy port when instantiating the Eventbridge client" },
+ "proxyProtocol": { "index": 23, "kind": "parameter", "displayName": "Proxy Protocol", "group": "proxy", "label": "proxy", "required": false, "type": "enum", "javaType": "software.amazon.awssdk.core.Protocol", "enum": [ "HTTP", "HTTPS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "HTTPS", "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "To define a proxy [...]
+ "backoffErrorThreshold": { "index": 24, "kind": "parameter", "displayName": "Backoff Error Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent error polls (failed due some error) that should happen before the backoffMultipler should kick-in." },
+ "backoffIdleThreshold": { "index": 25, "kind": "parameter", "displayName": "Backoff Idle Threshold", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "The number of subsequent idle polls that should happen before the backoffMultipler should kick-in." },
+ "backoffMultiplier": { "index": 26, "kind": "parameter", "displayName": "Backoff Multiplier", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "description": "To let the scheduled polling consumer backoff if there has been a number of subsequent idles\/errors in a row. The multiplier is then the number of polls that will be skipped before the next actual attempt is h [...]
+ "delay": { "index": 27, "kind": "parameter", "displayName": "Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 500, "description": "Milliseconds before the next poll." },
+ "greedy": { "index": 28, "kind": "parameter", "displayName": "Greedy", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "If greedy is enabled, then the ScheduledPollConsumer will run immediately again, if the previous run polled 1 or more messages." },
+ "initialDelay": { "index": 29, "kind": "parameter", "displayName": "Initial Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000, "description": "Milliseconds before the first poll starts." },
+ "repeatCount": { "index": 30, "kind": "parameter", "displayName": "Repeat Count", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 0, "description": "Specifies a maximum limit of number of fires. So if you set it to 1, the scheduler will only fire once. If you set it to 5, it will only fire five times. A value of zero or negative means fire forever." },
+ "runLoggingLevel": { "index": 31, "kind": "parameter", "displayName": "Run Logging Level", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "enum", "javaType": "org.apache.camel.LoggingLevel", "enum": [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "OFF" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "TRACE", "description": "The consumer logs a start\/complete log line when it polls. This option allows you to configure the log [...]
+ "scheduledExecutorService": { "index": 32, "kind": "parameter", "displayName": "Scheduled Executor Service", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.concurrent.ScheduledExecutorService", "deprecated": false, "autowired": false, "secret": false, "description": "Allows for configuring a custom\/shared thread pool to use for the consumer. By default each consumer has its own single threaded thread pool." },
+ "scheduler": { "index": 33, "kind": "parameter", "displayName": "Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.lang.Object", "deprecated": false, "autowired": false, "secret": false, "defaultValue": "none", "description": "To use a cron scheduler from either camel-spring or camel-quartz component. Use value spring or quartz for built in scheduler" },
+ "schedulerProperties": { "index": 34, "kind": "parameter", "displayName": "Scheduler Properties", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "object", "javaType": "java.util.Map<java.lang.String, java.lang.Object>", "prefix": "scheduler.", "multiValue": true, "deprecated": false, "autowired": false, "secret": false, "description": "To configure additional properties when using a custom scheduler or any of the Quartz, Spring based scheduler. This i [...]
+ "startScheduler": { "index": 35, "kind": "parameter", "displayName": "Start Scheduler", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Whether the scheduler should be auto started." },
+ "timeUnit": { "index": 36, "kind": "parameter", "displayName": "Time Unit", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "enum", "javaType": "java.util.concurrent.TimeUnit", "enum": [ "NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "MILLISECONDS", "description": "Time unit for initialDelay and delay options." },
+ "useFixedDelay": { "index": 37, "kind": "parameter", "displayName": "Use Fixed Delay", "group": "scheduler", "label": "consumer,scheduler", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "description": "Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details." },
+ "accessKey": { "index": 38, "kind": "parameter", "displayName": "Access Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Access Key" },
+ "profileCredentialsName": { "index": 39, "kind": "parameter", "displayName": "Profile Credentials Name", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "If using a profile credentials provider this parameter will set t [...]
+ "secretKey": { "index": 40, "kind": "parameter", "displayName": "Secret Key", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Secret Key" },
+ "sessionToken": { "index": 41, "kind": "parameter", "displayName": "Session Token", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": true, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Amazon AWS Session Token used when the user needs to assume an IAM role" },
+ "trustAllCertificates": { "index": 42, "kind": "parameter", "displayName": "Trust All Certificates", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": 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 overri [...]
+ "useDefaultCredentialsProvider": { "index": 43, "kind": "parameter", "displayName": "Use Default Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client [...]
+ "useProfileCredentialsProvider": { "index": 44, "kind": "parameter", "displayName": "Use Profile Credentials Provider", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client [...]
+ "useSessionCredentials": { "index": 45, "kind": "parameter", "displayName": "Use Session Credentials", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration", "configurationField": "configuration", "description": "Set whether the Eventbridge client should expect to [...]
}
}
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc b/components/camel-aws/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
index 1a66cd4c3d56..409b68b00512 100644
--- a/components/camel-aws/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
+++ b/components/camel-aws/camel-aws2-eventbridge/src/main/docs/aws2-eventbridge-component.adoc
@@ -2,11 +2,11 @@
:doctitle: AWS Eventbridge
:shortname: aws2-eventbridge
:artifactid: camel-aws2-eventbridge
-:description: Send events to AWS Eventbridge cluster instances.
+:description: Manage AWS EventBridge cluster instances and consume events via SQS-backed polling.
:since: 3.6
:supportlevel: Stable
:tabs-sync-option:
-:component-header: Only producer is supported
+:component-header: Both producer and consumer are supported
//Manually maintained attributes
:group: AWS
:camel-spring-boot-name: aws2-eventbridge
@@ -286,6 +286,114 @@ this operation will return a list of entries with related ID sent to servicebus.
To update a rule, you'll need to perform the putRule operation again.
There is no explicit update rule operation in the Java SDK.
+== Consuming Events from EventBridge
+
+Since Camel 4.19, the component supports consuming events from EventBridge rules using an SQS-backed polling pattern.
+
+AWS EventBridge is an event router, not a message queue — it does not provide a pull-based API.
+The consumer works by wiring an SQS queue as a target of the specified EventBridge rule and then polling that queue for events.
+This is the standard AWS pattern for programmatically consuming EventBridge events.
+
+=== How It Works
+
+1. On startup the consumer creates an SQS queue (unless you provide one via `queueUrl`).
+2. It sets an SQS queue policy that allows EventBridge to send messages.
+3. It adds the queue as a target of the EventBridge rule specified by `ruleName`.
+4. It polls the SQS queue on schedule, delivering each event into the Camel route.
+5. Successfully processed messages are deleted from the queue; failed messages remain for retry.
+6. On shutdown the target is removed and the auto-created queue is deleted (configurable).
+
+=== Consumer Configuration Options
+
+[width="100%",cols="2,1,1,4",options="header"]
+|===
+|Option |Default |Type |Description
+
+|`ruleName`
+|
+|String
+|**Required.** The EventBridge rule name to consume events from.
+
+|`queueUrl`
+|
+|String
+|URL of an existing SQS queue to use. If omitted, a queue is auto-created.
+
+|`autoCreateQueue`
+|`true`
+|boolean
+|Whether to auto-create an SQS queue and wire it as the rule target.
+
+|`deleteQueueOnShutdown`
+|`true`
+|boolean
+|Whether to delete the auto-created queue and remove the EventBridge target on shutdown.
+
+|`maxMessagesPerPoll`
+|`10`
+|int
+|Maximum number of SQS messages to receive per poll cycle.
+
+|`waitTimeSeconds`
+|`20`
+|int
+|SQS long-polling wait time in seconds.
+
+|`visibilityTimeout`
+|`30`
+|int
+|Seconds that received messages are hidden from subsequent polls.
+|===
+
+Standard `ScheduledPollConsumer` options (`delay`, `initialDelay`, `greedy`, etc.) are also available.
+
+=== Consumer Example — Auto-Created Queue
+
+[source,java]
+--------------------------------------------------------------------------------
+from("aws2-eventbridge://default?ruleName=my-rule&delay=5000")
+ .log("Received EventBridge event: ${body}")
+ .to("direct:process");
+--------------------------------------------------------------------------------
+
+The consumer auto-creates an SQS queue, wires it to the `my-rule` EventBridge rule, and polls every 5 seconds.
+
+=== Consumer Example — User-Provided Queue
+
+[source,java]
+--------------------------------------------------------------------------------
+from("aws2-eventbridge://default?ruleName=my-rule"
+ + "&autoCreateQueue=false"
+ + "&queueUrl=https://sqs.us-east-1.amazonaws.com/123456789012/my-queue")
+ .log("Received: ${body}")
+ .to("direct:process");
+--------------------------------------------------------------------------------
+
+Use this when you manage the SQS queue and its policy yourself.
+
+=== Consumer Example — Combined Producer and Consumer
+
+[source,java]
+--------------------------------------------------------------------------------
+// First create the rule
+from("direct:setup")
+ .to("aws2-eventbridge://default?operation=putRule"
+ + "&eventPatternFile=file:eventpattern.json");
+
+// Consume events matching the rule
+from("aws2-eventbridge://default?ruleName=my-rule&delay=2000")
+ .log("Event: ${body}")
+ .to("mock:events");
+--------------------------------------------------------------------------------
+
+=== IAM Permissions
+
+The consumer's IAM principal needs the following permissions:
+
+- `events:PutTargets` and `events:RemoveTargets` on the EventBridge rule
+- `sqs:CreateQueue`, `sqs:DeleteQueue`, `sqs:SetQueueAttributes`, `sqs:GetQueueAttributes` (if auto-creating)
+- `sqs:ReceiveMessage`, `sqs:DeleteMessage` on the SQS queue
+
== Dependencies
Maven users will need to add the following dependency to their pom.xml.
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
index 361c685b2cb5..d25af798939a 100644
--- a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
+++ b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConfiguration.java
@@ -67,6 +67,28 @@ public class EventbridgeConfiguration implements Cloneable, AwsCommonConfigurati
private boolean useSessionCredentials;
@UriParam(label = "security")
private String profileCredentialsName;
+ @UriParam(label = "consumer",
+ description = "The EventBridge rule name to consume events from. Required for consumer.")
+ private String ruleName;
+ @UriParam(label = "consumer",
+ description = "The URL of an existing SQS queue to use as EventBridge target. "
+ + "If not specified, a queue is auto-created when autoCreateQueue is true.")
+ private String queueUrl;
+ @UriParam(label = "consumer", defaultValue = "true",
+ description = "Whether to auto-create an SQS queue and wire it as an EventBridge rule target.")
+ private boolean autoCreateQueue = true;
+ @UriParam(label = "consumer", defaultValue = "true",
+ description = "Whether to delete the auto-created SQS queue and remove the EventBridge target on shutdown.")
+ private boolean deleteQueueOnShutdown = true;
+ @UriParam(label = "consumer", defaultValue = "10",
+ description = "The maximum number of messages to receive per poll from SQS.")
+ private int maxMessagesPerPoll = 10;
+ @UriParam(label = "consumer", defaultValue = "20",
+ description = "The duration (in seconds) for which the SQS receive call waits for messages (long polling).")
+ private int waitTimeSeconds = 20;
+ @UriParam(label = "consumer", defaultValue = "30",
+ description = "The duration (in seconds) that received SQS messages are hidden from subsequent receive requests.")
+ private int visibilityTimeout = 30;
public EventBridgeClient getEventbridgeClient() {
return eventbridgeClient;
@@ -281,6 +303,84 @@ public class EventbridgeConfiguration implements Cloneable, AwsCommonConfigurati
public void setProfileCredentialsName(String profileCredentialsName) {
this.profileCredentialsName = profileCredentialsName;
}
+
+ public String getRuleName() {
+ return ruleName;
+ }
+
+ /**
+ * The EventBridge rule name to consume events from
+ */
+ public void setRuleName(String ruleName) {
+ this.ruleName = ruleName;
+ }
+
+ public String getQueueUrl() {
+ return queueUrl;
+ }
+
+ /**
+ * The URL of an existing SQS queue to use as EventBridge target
+ */
+ public void setQueueUrl(String queueUrl) {
+ this.queueUrl = queueUrl;
+ }
+
+ public boolean isAutoCreateQueue() {
+ return autoCreateQueue;
+ }
+
+ /**
+ * Whether to auto-create an SQS queue and wire it as an EventBridge rule target
+ */
+ public void setAutoCreateQueue(boolean autoCreateQueue) {
+ this.autoCreateQueue = autoCreateQueue;
+ }
+
+ public boolean isDeleteQueueOnShutdown() {
+ return deleteQueueOnShutdown;
+ }
+
+ /**
+ * Whether to delete the auto-created SQS queue and remove the EventBridge target on shutdown
+ */
+ public void setDeleteQueueOnShutdown(boolean deleteQueueOnShutdown) {
+ this.deleteQueueOnShutdown = deleteQueueOnShutdown;
+ }
+
+ public int getMaxMessagesPerPoll() {
+ return maxMessagesPerPoll;
+ }
+
+ /**
+ * The maximum number of messages to receive per poll from SQS
+ */
+ public void setMaxMessagesPerPoll(int maxMessagesPerPoll) {
+ this.maxMessagesPerPoll = maxMessagesPerPoll;
+ }
+
+ public int getWaitTimeSeconds() {
+ return waitTimeSeconds;
+ }
+
+ /**
+ * The duration (in seconds) for which the SQS receive call waits for messages (long polling)
+ */
+ public void setWaitTimeSeconds(int waitTimeSeconds) {
+ this.waitTimeSeconds = waitTimeSeconds;
+ }
+
+ public int getVisibilityTimeout() {
+ return visibilityTimeout;
+ }
+
+ /**
+ * The duration (in seconds) that received SQS messages are hidden from subsequent receive requests
+ */
+ public void setVisibilityTimeout(int visibilityTimeout) {
+ this.visibilityTimeout = visibilityTimeout;
+ }
+
// *************************************************
//
// *************************************************
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
index 47d231708c4b..39f73d278fd0 100644
--- a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
+++ b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConstants.java
@@ -62,4 +62,10 @@ public interface EventbridgeConstants {
@Metadata(label = "putEvent putTargets removeTargets",
description = "The number of failed entries in the response.", javaType = "Integer")
String FAILED_ENTRY_COUNT = "CamelAwsEventbridgeFailedEntryCount";
+
+ // Consumer constants
+ @Metadata(label = "consumer", description = "The SQS message ID.", javaType = "String")
+ String MESSAGE_ID = "CamelAwsEventbridgeMessageId";
+ @Metadata(label = "consumer", description = "The SQS receipt handle for message deletion.", javaType = "String")
+ String RECEIPT_HANDLE = "CamelAwsEventbridgeReceiptHandle";
}
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumer.java b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumer.java
new file mode 100644
index 000000000000..abf4989734b2
--- /dev/null
+++ b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumer.java
@@ -0,0 +1,285 @@
+/*
+ * 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;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Queue;
+import java.util.UUID;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.ExchangePropertyKey;
+import org.apache.camel.Message;
+import org.apache.camel.Processor;
+import org.apache.camel.spi.Synchronization;
+import org.apache.camel.support.EmptyAsyncCallback;
+import org.apache.camel.support.ScheduledBatchPollingConsumer;
+import org.apache.camel.util.CastUtils;
+import org.apache.camel.util.ObjectHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+import software.amazon.awssdk.services.eventbridge.model.PutTargetsRequest;
+import software.amazon.awssdk.services.eventbridge.model.PutTargetsResponse;
+import software.amazon.awssdk.services.eventbridge.model.RemoveTargetsRequest;
+import software.amazon.awssdk.services.eventbridge.model.Target;
+import software.amazon.awssdk.services.sqs.SqsClient;
+import software.amazon.awssdk.services.sqs.model.CreateQueueRequest;
+import software.amazon.awssdk.services.sqs.model.CreateQueueResponse;
+import software.amazon.awssdk.services.sqs.model.DeleteMessageRequest;
+import software.amazon.awssdk.services.sqs.model.DeleteQueueRequest;
+import software.amazon.awssdk.services.sqs.model.GetQueueAttributesRequest;
+import software.amazon.awssdk.services.sqs.model.GetQueueAttributesResponse;
+import software.amazon.awssdk.services.sqs.model.MessageSystemAttributeName;
+import software.amazon.awssdk.services.sqs.model.QueueAttributeName;
+import software.amazon.awssdk.services.sqs.model.ReceiveMessageRequest;
+import software.amazon.awssdk.services.sqs.model.ReceiveMessageResponse;
+import software.amazon.awssdk.services.sqs.model.SetQueueAttributesRequest;
+
+/**
+ * Consumes events from an AWS EventBridge rule by using an SQS queue as a target.
+ *
+ * <p>
+ * AWS EventBridge does not support direct pull-based consumption. This consumer implements the standard AWS pattern:
+ * configure an SQS queue as an EventBridge rule target, then poll the queue for events.
+ * </p>
+ *
+ * <p>
+ * The consumer can auto-create an SQS queue and wire it to the EventBridge rule, or use a user-provided queue. On
+ * shutdown, auto-provisioned resources are cleaned up by default.
+ * </p>
+ */
+public class EventbridgeConsumer extends ScheduledBatchPollingConsumer {
+
+ private static final Logger LOG = LoggerFactory.getLogger(EventbridgeConsumer.class);
+
+ private SqsClient sqsClient;
+ private String queueUrl;
+ private String queueArn;
+ private boolean queueAutoCreated;
+ private String targetId;
+
+ public EventbridgeConsumer(EventbridgeEndpoint endpoint, Processor processor) {
+ super(endpoint, processor);
+ }
+
+ @Override
+ public EventbridgeEndpoint getEndpoint() {
+ return (EventbridgeEndpoint) super.getEndpoint();
+ }
+
+ @Override
+ protected void doStart() throws Exception {
+ super.doStart();
+ setupConsumerResources();
+ }
+
+ @Override
+ protected void doStop() throws Exception {
+ cleanupConsumerResources();
+ super.doStop();
+ }
+
+ @Override
+ protected int poll() throws Exception {
+ ReceiveMessageResponse response = sqsClient.receiveMessage(
+ ReceiveMessageRequest.builder()
+ .queueUrl(queueUrl)
+ .maxNumberOfMessages(getEndpoint().getConfiguration().getMaxMessagesPerPoll())
+ .waitTimeSeconds(getEndpoint().getConfiguration().getWaitTimeSeconds())
+ .visibilityTimeout(getEndpoint().getConfiguration().getVisibilityTimeout())
+ .messageSystemAttributeNames(MessageSystemAttributeName.ALL)
+ .build());
+
+ if (response.messages().isEmpty()) {
+ return 0;
+ }
+
+ Queue<Object> exchanges = createExchanges(response.messages());
+ return processBatch(CastUtils.cast(exchanges));
+ }
+
+ @Override
+ public int processBatch(Queue<Object> exchanges) throws Exception {
+ int total = exchanges.size();
+
+ for (int i = 0; !exchanges.isEmpty(); i++) {
+ final Exchange exchange = ObjectHelper.cast(Exchange.class, exchanges.poll());
+ exchange.setProperty(ExchangePropertyKey.BATCH_INDEX, i);
+ exchange.setProperty(ExchangePropertyKey.BATCH_SIZE, total);
+ exchange.setProperty(ExchangePropertyKey.BATCH_COMPLETE, i == total - 1);
+
+ final String receiptHandle
+ = exchange.getMessage().getHeader(EventbridgeConstants.RECEIPT_HANDLE, String.class);
+ exchange.getExchangeExtension().addOnCompletion(new Synchronization() {
+ @Override
+ public void onComplete(Exchange exchange) {
+ deleteMessage(receiptHandle);
+ }
+
+ @Override
+ public void onFailure(Exchange exchange) {
+ // Leave message in queue for retry
+ LOG.debug("Message processing failed, leaving in SQS queue for retry");
+ }
+ });
+
+ getAsyncProcessor().process(exchange, EmptyAsyncCallback.get());
+ }
+
+ return total;
+ }
+
+ private void setupConsumerResources() throws Exception {
+ EventbridgeConfiguration config = getEndpoint().getConfiguration();
+ sqsClient = getEndpoint().getSqsClient();
+
+ String ruleName = config.getRuleName();
+
+ if (ObjectHelper.isNotEmpty(config.getQueueUrl())) {
+ // User provided a queue URL
+ queueUrl = config.getQueueUrl();
+ queueAutoCreated = false;
+ queueArn = getQueueArn(queueUrl);
+ } else if (config.isAutoCreateQueue()) {
+ // Auto-create queue
+ String queueName
+ = "camel-eventbridge-" + ruleName + "-" + UUID.randomUUID().toString().substring(0, 8);
+
+ CreateQueueResponse createResponse = sqsClient.createQueue(
+ CreateQueueRequest.builder()
+ .queueName(queueName)
+ .build());
+
+ queueUrl = createResponse.queueUrl();
+ queueAutoCreated = true;
+ queueArn = getQueueArn(queueUrl);
+
+ // Set queue policy to allow EventBridge to send messages
+ String policy = buildQueuePolicy(queueArn);
+ sqsClient.setQueueAttributes(
+ SetQueueAttributesRequest.builder()
+ .queueUrl(queueUrl)
+ .attributes(Map.of(QueueAttributeName.POLICY, policy))
+ .build());
+
+ LOG.info("Auto-created SQS queue {} for EventBridge rule {}", queueName, ruleName);
+ } else {
+ throw new IllegalArgumentException(
+ "Either queueUrl must be specified or autoCreateQueue must be enabled for EventBridge consumer");
+ }
+
+ // Add queue as EventBridge target
+ targetId = "camel-eb-" + UUID.randomUUID().toString().substring(0, 8);
+ Target target = Target.builder()
+ .id(targetId)
+ .arn(queueArn)
+ .build();
+
+ EventBridgeClient ebClient = getEndpoint().getEventbridgeClient();
+ PutTargetsResponse putTargetsResponse = ebClient.putTargets(
+ PutTargetsRequest.builder()
+ .rule(ruleName)
+ .eventBusName(config.getEventbusName())
+ .targets(target)
+ .build());
+
+ if (putTargetsResponse.failedEntryCount() > 0) {
+ throw new IllegalStateException(
+ "Failed to add SQS target to EventBridge rule: " + putTargetsResponse.failedEntries());
+ }
+
+ LOG.info("Added SQS queue {} as target for EventBridge rule {}", queueArn, ruleName);
+ }
+
+ private void cleanupConsumerResources() {
+ EventbridgeConfiguration config = getEndpoint().getConfiguration();
+
+ try {
+ // Remove target from EventBridge rule
+ if (ObjectHelper.isNotEmpty(targetId)) {
+ EventBridgeClient ebClient = getEndpoint().getEventbridgeClient();
+ ebClient.removeTargets(
+ RemoveTargetsRequest.builder()
+ .rule(config.getRuleName())
+ .eventBusName(config.getEventbusName())
+ .ids(targetId)
+ .build());
+ LOG.info("Removed target {} from EventBridge rule {}", targetId, config.getRuleName());
+ }
+ } catch (Exception e) {
+ LOG.warn("Failed to remove EventBridge target: {}", e.getMessage());
+ }
+
+ try {
+ // Delete auto-created queue
+ if (queueAutoCreated && config.isDeleteQueueOnShutdown() && ObjectHelper.isNotEmpty(queueUrl)) {
+ sqsClient.deleteQueue(
+ DeleteQueueRequest.builder()
+ .queueUrl(queueUrl)
+ .build());
+ LOG.info("Deleted auto-created SQS queue {}", queueUrl);
+ }
+ } catch (Exception e) {
+ LOG.warn("Failed to delete SQS queue: {}", e.getMessage());
+ }
+ }
+
+ private Queue<Object> createExchanges(List<software.amazon.awssdk.services.sqs.model.Message> messages) {
+ Queue<Object> exchanges = new LinkedList<>();
+ for (software.amazon.awssdk.services.sqs.model.Message msg : messages) {
+ Exchange exchange = createExchange(true);
+ Message camelMessage = exchange.getMessage();
+ camelMessage.setBody(msg.body());
+ camelMessage.setHeader(EventbridgeConstants.MESSAGE_ID, msg.messageId());
+ camelMessage.setHeader(EventbridgeConstants.RECEIPT_HANDLE, msg.receiptHandle());
+ exchanges.add(exchange);
+ }
+ return exchanges;
+ }
+
+ private void deleteMessage(String receiptHandle) {
+ try {
+ sqsClient.deleteMessage(
+ DeleteMessageRequest.builder()
+ .queueUrl(queueUrl)
+ .receiptHandle(receiptHandle)
+ .build());
+ } catch (Exception e) {
+ LOG.warn("Failed to delete message from SQS queue: {}", e.getMessage());
+ }
+ }
+
+ private String getQueueArn(String queueUrl) {
+ GetQueueAttributesResponse response = sqsClient.getQueueAttributes(
+ GetQueueAttributesRequest.builder()
+ .queueUrl(queueUrl)
+ .attributeNames(QueueAttributeName.QUEUE_ARN)
+ .build());
+ return response.attributes().get(QueueAttributeName.QUEUE_ARN);
+ }
+
+ private String buildQueuePolicy(String queueArn) {
+ return "{\"Version\":\"2012-10-17\","
+ + "\"Statement\":[{\"Sid\":\"AllowEventBridgeToSendMessage\","
+ + "\"Effect\":\"Allow\","
+ + "\"Principal\":{\"Service\":\"events.amazonaws.com\"},"
+ + "\"Action\":\"sqs:SendMessage\","
+ + "\"Resource\":\"" + queueArn + "\"}]}";
+ }
+}
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpoint.java b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpoint.java
index 6571f09e1d39..a90ba69a69da 100644
--- a/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpoint.java
+++ b/components/camel-aws/camel-aws2-eventbridge/src/main/java/org/apache/camel/component/aws2/eventbridge/EventbridgeEndpoint.java
@@ -23,23 +23,26 @@ import org.apache.camel.Component;
import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
+import org.apache.camel.component.aws.common.AwsClientBuilderUtil;
import org.apache.camel.component.aws2.eventbridge.client.EventbridgeClientFactory;
import org.apache.camel.spi.*;
-import org.apache.camel.support.DefaultEndpoint;
+import org.apache.camel.support.ScheduledPollEndpoint;
import org.apache.camel.util.ObjectHelper;
import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+import software.amazon.awssdk.services.sqs.SqsClient;
/**
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via SQS-backed polling.
*/
@UriEndpoint(firstVersion = "3.6.0", scheme = "aws2-eventbridge", title = "AWS Eventbridge",
- syntax = "aws2-eventbridge://eventbusNameOrArn", producerOnly = true, category = {
+ syntax = "aws2-eventbridge://eventbusNameOrArn", category = {
Category.CLOUD,
Category.MANAGEMENT },
headersClass = EventbridgeConstants.class)
-public class EventbridgeEndpoint extends DefaultEndpoint implements EndpointServiceLocation {
+public class EventbridgeEndpoint extends ScheduledPollEndpoint implements EndpointServiceLocation {
private EventBridgeClient eventbridgeClient;
+ private SqsClient sqsClient;
@UriPath(description = "Event bus name or ARN")
@Metadata(required = true)
@@ -59,7 +62,12 @@ public class EventbridgeEndpoint extends DefaultEndpoint implements EndpointServ
@Override
public Consumer createConsumer(Processor processor) throws Exception {
- throw new UnsupportedOperationException("You cannot receive messages from this endpoint");
+ if (ObjectHelper.isEmpty(configuration.getRuleName())) {
+ throw new IllegalArgumentException("ruleName is required for EventBridge consumer");
+ }
+ EventbridgeConsumer consumer = new EventbridgeConsumer(this, processor);
+ configureConsumer(consumer);
+ return consumer;
}
@Override
@@ -83,6 +91,10 @@ public class EventbridgeEndpoint extends DefaultEndpoint implements EndpointServ
eventbridgeClient.close();
}
}
+ if (sqsClient != null) {
+ sqsClient.close();
+ sqsClient = null;
+ }
super.doStop();
}
@@ -94,6 +106,17 @@ public class EventbridgeEndpoint extends DefaultEndpoint implements EndpointServ
return eventbridgeClient;
}
+ /**
+ * Returns the SQS client used by the consumer, creating one if necessary. Uses the same credentials and region as
+ * the EventBridge client.
+ */
+ public synchronized SqsClient getSqsClient() {
+ if (sqsClient == null) {
+ sqsClient = AwsClientBuilderUtil.buildClient(configuration, SqsClient::builder);
+ }
+ return sqsClient;
+ }
+
@Override
public String getServiceUrl() {
if (!configuration.isOverrideEndpoint()) {
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumerConfigTest.java b/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumerConfigTest.java
new file mode 100644
index 000000000000..1c3c2bf29ae4
--- /dev/null
+++ b/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumerConfigTest.java
@@ -0,0 +1,81 @@
+/*
+ * 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;
+
+import org.apache.camel.Processor;
+import org.apache.camel.test.junit6.CamelTestSupport;
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * Tests for EventBridge consumer configuration parsing from endpoint URIs.
+ */
+public class EventbridgeConsumerConfigTest extends CamelTestSupport {
+
+ @Test
+ public void testConsumerConfigFromUri() throws Exception {
+ EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint(
+ "aws2-eventbridge://default?accessKey=xxx&secretKey=yyy"
+ + "&ruleName=my-rule"
+ + "&queueUrl=https://sqs.us-east-1.amazonaws.com/123456789/my-queue"
+ + "&autoCreateQueue=false"
+ + "&deleteQueueOnShutdown=false"
+ + "&maxMessagesPerPoll=5"
+ + "&waitTimeSeconds=15"
+ + "&visibilityTimeout=45");
+
+ EventbridgeConfiguration config = endpoint.getConfiguration();
+ assertEquals("my-rule", config.getRuleName());
+ assertEquals("https://sqs.us-east-1.amazonaws.com/123456789/my-queue", config.getQueueUrl());
+ assertFalse(config.isAutoCreateQueue());
+ assertFalse(config.isDeleteQueueOnShutdown());
+ assertEquals(5, config.getMaxMessagesPerPoll());
+ assertEquals(15, config.getWaitTimeSeconds());
+ assertEquals(45, config.getVisibilityTimeout());
+ }
+
+ @Test
+ public void testConsumerConfigDefaults() throws Exception {
+ EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ EventbridgeEndpoint endpoint
+ = (EventbridgeEndpoint) component.createEndpoint("aws2-eventbridge://default?accessKey=xxx&secretKey=yyy");
+
+ EventbridgeConfiguration config = endpoint.getConfiguration();
+ assertNull(config.getRuleName());
+ assertNull(config.getQueueUrl());
+ assertTrue(config.isAutoCreateQueue());
+ assertTrue(config.isDeleteQueueOnShutdown());
+ assertEquals(10, config.getMaxMessagesPerPoll());
+ assertEquals(20, config.getWaitTimeSeconds());
+ assertEquals(30, config.getVisibilityTimeout());
+ }
+
+ @Test
+ public void testRuleNameRequiredValidation() throws Exception {
+ EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ EventbridgeEndpoint endpoint
+ = (EventbridgeEndpoint) component.createEndpoint("aws2-eventbridge://default?accessKey=xxx&secretKey=yyy");
+
+ Processor noopProcessor = exchange -> {
+ };
+ IllegalArgumentException exception
+ = assertThrows(IllegalArgumentException.class, () -> endpoint.createConsumer(noopProcessor));
+ assertTrue(exception.getMessage().contains("ruleName"));
+ }
+}
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumerTest.java b/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumerTest.java
new file mode 100644
index 000000000000..e68b908a7042
--- /dev/null
+++ b/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/EventbridgeConsumerTest.java
@@ -0,0 +1,504 @@
+/*
+ * 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;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.ExchangePropertyKey;
+import org.apache.camel.Processor;
+import org.apache.camel.spi.Synchronization;
+import org.apache.camel.test.junit6.CamelTestSupport;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.jupiter.MockitoExtension;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+import software.amazon.awssdk.services.eventbridge.model.PutTargetsRequest;
+import software.amazon.awssdk.services.eventbridge.model.PutTargetsResponse;
+import software.amazon.awssdk.services.eventbridge.model.PutTargetsResultEntry;
+import software.amazon.awssdk.services.eventbridge.model.RemoveTargetsRequest;
+import software.amazon.awssdk.services.eventbridge.model.RemoveTargetsResponse;
+import software.amazon.awssdk.services.sqs.SqsClient;
+import software.amazon.awssdk.services.sqs.model.CreateQueueRequest;
+import software.amazon.awssdk.services.sqs.model.CreateQueueResponse;
+import software.amazon.awssdk.services.sqs.model.DeleteMessageRequest;
+import software.amazon.awssdk.services.sqs.model.DeleteQueueRequest;
+import software.amazon.awssdk.services.sqs.model.GetQueueAttributesRequest;
+import software.amazon.awssdk.services.sqs.model.GetQueueAttributesResponse;
+import software.amazon.awssdk.services.sqs.model.Message;
+import software.amazon.awssdk.services.sqs.model.QueueAttributeName;
+import software.amazon.awssdk.services.sqs.model.ReceiveMessageRequest;
+import software.amazon.awssdk.services.sqs.model.ReceiveMessageResponse;
+import software.amazon.awssdk.services.sqs.model.SetQueueAttributesRequest;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
+
+/**
+ * Unit tests for {@link EventbridgeConsumer} using Mockito mocks for SQS and EventBridge clients.
+ */
+@ExtendWith(MockitoExtension.class)
+public class EventbridgeConsumerTest extends CamelTestSupport {
+
+ private static final String TEST_QUEUE_URL = "https://sqs.us-east-1.amazonaws.com/123456789/camel-eventbridge-test";
+ private static final String TEST_QUEUE_ARN = "arn:aws:sqs:us-east-1:123456789:camel-eventbridge-test";
+ private static final String USER_QUEUE_URL = "https://sqs.us-east-1.amazonaws.com/123456789/user-queue";
+ private static final String USER_QUEUE_ARN = "arn:aws:sqs:us-east-1:123456789:user-queue";
+
+ @Mock
+ private SqsClient sqsClient;
+ @Mock
+ private EventBridgeClient eventBridgeClient;
+
+ private List<Exchange> receivedExchanges;
+
+ @BeforeEach
+ public void setupExchangeList() {
+ receivedExchanges = new ArrayList<>();
+ }
+
+ // -- Setup / Target wiring tests --
+
+ @Test
+ public void testAutoCreateQueueAndWireAsTarget() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+ consumer.start();
+
+ verify(sqsClient).createQueue(any(CreateQueueRequest.class));
+ verify(sqsClient).setQueueAttributes(any(SetQueueAttributesRequest.class));
+
+ ArgumentCaptor<PutTargetsRequest> captor = ArgumentCaptor.forClass(PutTargetsRequest.class);
+ verify(eventBridgeClient).putTargets(captor.capture());
+ assertEquals("test-rule", captor.getValue().rule());
+ assertEquals(TEST_QUEUE_ARN, captor.getValue().targets().get(0).arn());
+
+ consumer.stop();
+ }
+
+ @Test
+ public void testUserProvidedQueueUrl() throws Exception {
+ stubGetQueueAttributes(USER_QUEUE_URL, USER_QUEUE_ARN);
+ stubPutTargetsSuccess();
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", USER_QUEUE_URL, true, true);
+ consumer.start();
+
+ verify(sqsClient, never()).createQueue(any(CreateQueueRequest.class));
+ verify(sqsClient).getQueueAttributes(any(GetQueueAttributesRequest.class));
+
+ ArgumentCaptor<PutTargetsRequest> captor = ArgumentCaptor.forClass(PutTargetsRequest.class);
+ verify(eventBridgeClient).putTargets(captor.capture());
+ assertEquals(USER_QUEUE_ARN, captor.getValue().targets().get(0).arn());
+
+ consumer.stop();
+ }
+
+ @Test
+ public void testAutoCreateDisabledWithoutQueueUrlFails() throws Exception {
+ EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ String uri = "aws2-eventbridge://default?accessKey=test&secretKey=test&ruleName=test-rule"
+ + "&autoCreateQueue=false";
+ EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint(uri);
+ endpoint.getConfiguration().setEventbridgeClient(eventBridgeClient);
+
+ EventbridgeEndpoint spyEndpoint = Mockito.spy(endpoint);
+ doReturn(sqsClient).when(spyEndpoint).getSqsClient();
+
+ Processor processor = exchange -> {
+ };
+ EventbridgeConsumer consumer = new EventbridgeConsumer(spyEndpoint, processor);
+ consumer.setStartScheduler(false);
+
+ assertThrows(IllegalArgumentException.class, consumer::start);
+ }
+
+ @Test
+ public void testRuleNameRequiredForConsumer() throws Exception {
+ EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint(
+ "aws2-eventbridge://default?accessKey=test&secretKey=test");
+
+ Processor noop = exchange -> {
+ };
+ assertThrows(IllegalArgumentException.class, () -> endpoint.createConsumer(noop));
+ }
+
+ @Test
+ public void testPutTargetsFailureThrows() throws Exception {
+ stubAutoCreateQueue();
+
+ when(eventBridgeClient.putTargets(any(PutTargetsRequest.class)))
+ .thenReturn(PutTargetsResponse.builder()
+ .failedEntryCount(1)
+ .failedEntries(PutTargetsResultEntry.builder()
+ .errorCode("InternalError")
+ .errorMessage("Something went wrong")
+ .build())
+ .build());
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+
+ IllegalStateException exception = assertThrows(IllegalStateException.class, consumer::start);
+ assertTrue(exception.getMessage().contains("Failed to add SQS target"));
+ }
+
+ // -- Polling tests --
+
+ @Test
+ public void testPollReceivesMessages() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ stubReceiveMessages(
+ createSqsMessage("msg-1", "rh-1", "{\"source\":\"camel.test\",\"detail\":{\"key\":\"value1\"}}"),
+ createSqsMessage("msg-2", "rh-2", "{\"source\":\"camel.test\",\"detail\":{\"key\":\"value2\"}}"));
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+ consumer.start();
+
+ int count = consumer.poll();
+
+ assertEquals(2, count);
+ assertEquals(2, receivedExchanges.size());
+
+ consumer.stop();
+ }
+
+ @Test
+ public void testPollReturnsZeroWhenNoMessages() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ stubReceiveMessages();
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+ consumer.start();
+
+ int count = consumer.poll();
+
+ assertEquals(0, count);
+ assertEquals(0, receivedExchanges.size());
+
+ consumer.stop();
+ }
+
+ @Test
+ public void testConsumerHeadersSet() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ stubReceiveMessages(createSqsMessage("msg-123", "rh-456", "{\"detail\":\"test\"}"));
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+ consumer.start();
+ consumer.poll();
+
+ assertEquals(1, receivedExchanges.size());
+ Exchange exchange = receivedExchanges.get(0);
+ assertEquals("msg-123", exchange.getMessage().getHeader(EventbridgeConstants.MESSAGE_ID, String.class));
+ assertEquals("rh-456", exchange.getMessage().getHeader(EventbridgeConstants.RECEIPT_HANDLE, String.class));
+
+ consumer.stop();
+ }
+
+ @Test
+ public void testBatchProperties() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ stubReceiveMessages(
+ createSqsMessage("msg-1", "rh-1", "body1"),
+ createSqsMessage("msg-2", "rh-2", "body2"),
+ createSqsMessage("msg-3", "rh-3", "body3"));
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+ consumer.start();
+ consumer.poll();
+
+ assertEquals(3, receivedExchanges.size());
+
+ assertEquals(0, receivedExchanges.get(0).getProperty(ExchangePropertyKey.BATCH_INDEX, Integer.class));
+ assertEquals(3, receivedExchanges.get(0).getProperty(ExchangePropertyKey.BATCH_SIZE, Integer.class));
+ assertFalse(receivedExchanges.get(0).getProperty(ExchangePropertyKey.BATCH_COMPLETE, Boolean.class));
+
+ assertEquals(1, receivedExchanges.get(1).getProperty(ExchangePropertyKey.BATCH_INDEX, Integer.class));
+ assertEquals(3, receivedExchanges.get(1).getProperty(ExchangePropertyKey.BATCH_SIZE, Integer.class));
+ assertFalse(receivedExchanges.get(1).getProperty(ExchangePropertyKey.BATCH_COMPLETE, Boolean.class));
+
+ assertEquals(2, receivedExchanges.get(2).getProperty(ExchangePropertyKey.BATCH_INDEX, Integer.class));
+ assertEquals(3, receivedExchanges.get(2).getProperty(ExchangePropertyKey.BATCH_SIZE, Integer.class));
+ assertTrue(receivedExchanges.get(2).getProperty(ExchangePropertyKey.BATCH_COMPLETE, Boolean.class));
+
+ consumer.stop();
+ }
+
+ @Test
+ public void testPollPassesConfigToReceiveRequest() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ stubReceiveMessages();
+
+ EventbridgeConsumer consumer = createConsumerWithCustomConfig("test-rule", 5, 10, 60);
+ consumer.start();
+ consumer.poll();
+
+ ArgumentCaptor<ReceiveMessageRequest> captor = ArgumentCaptor.forClass(ReceiveMessageRequest.class);
+ verify(sqsClient).receiveMessage(captor.capture());
+ assertEquals(5, captor.getValue().maxNumberOfMessages());
+ assertEquals(10, captor.getValue().waitTimeSeconds());
+ assertEquals(60, captor.getValue().visibilityTimeout());
+
+ consumer.stop();
+ }
+
+ // -- Message deletion tests --
+
+ @Test
+ public void testMessageDeletedOnSuccess() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ stubReceiveMessages(createSqsMessage("msg-1", "receipt-success", "body"));
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+ consumer.start();
+ consumer.poll();
+
+ assertEquals(1, receivedExchanges.size());
+ Exchange exchange = receivedExchanges.get(0);
+
+ // Manually fire onCompletion since there is no UnitOfWork in a direct poll() unit test
+ List<Synchronization> completions = exchange.getExchangeExtension().handoverCompletions();
+ assertNotNull(completions);
+ assertFalse(completions.isEmpty());
+ for (Synchronization sync : completions) {
+ sync.onComplete(exchange);
+ }
+
+ ArgumentCaptor<DeleteMessageRequest> captor = ArgumentCaptor.forClass(DeleteMessageRequest.class);
+ verify(sqsClient).deleteMessage(captor.capture());
+ assertEquals("receipt-success", captor.getValue().receiptHandle());
+
+ consumer.stop();
+ }
+
+ @Test
+ public void testMessageLeftInQueueOnFailure() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ stubReceiveMessages(createSqsMessage("msg-1", "receipt-fail", "body"));
+
+ // Use a processor that captures the exchange and marks it as failed
+ List<Exchange> failedExchanges = new ArrayList<>();
+ Processor failingProcessor = exchange -> {
+ failedExchanges.add(exchange);
+ throw new RuntimeException("Processing failed");
+ };
+ EventbridgeConsumer consumer = createConsumerWithProcessor("test-rule", failingProcessor);
+ consumer.start();
+ consumer.poll();
+
+ assertEquals(1, failedExchanges.size());
+ Exchange exchange = failedExchanges.get(0);
+
+ // Manually fire onFailure since there is no UnitOfWork in a direct poll() unit test
+ List<Synchronization> completions = exchange.getExchangeExtension().handoverCompletions();
+ assertNotNull(completions);
+ for (Synchronization sync : completions) {
+ sync.onFailure(exchange);
+ }
+
+ // deleteMessage should NOT have been called
+ verify(sqsClient, never()).deleteMessage(any(DeleteMessageRequest.class));
+
+ consumer.stop();
+ }
+
+ // -- Cleanup / shutdown tests --
+
+ @Test
+ public void testCleanupRemovesTargetAndDeletesQueue() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ when(eventBridgeClient.removeTargets(any(RemoveTargetsRequest.class)))
+ .thenReturn(RemoveTargetsResponse.builder().build());
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+ consumer.start();
+ consumer.stop();
+
+ verify(eventBridgeClient).removeTargets(any(RemoveTargetsRequest.class));
+ verify(sqsClient).deleteQueue(any(DeleteQueueRequest.class));
+ }
+
+ @Test
+ public void testDeleteQueueOnShutdownFalseKeepsQueue() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ when(eventBridgeClient.removeTargets(any(RemoveTargetsRequest.class)))
+ .thenReturn(RemoveTargetsResponse.builder().build());
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, false);
+ consumer.start();
+ consumer.stop();
+
+ // Target is still removed
+ verify(eventBridgeClient).removeTargets(any(RemoveTargetsRequest.class));
+ // But queue is NOT deleted
+ verify(sqsClient, never()).deleteQueue(any(DeleteQueueRequest.class));
+ }
+
+ @Test
+ public void testUserProvidedQueueNotDeletedOnShutdown() throws Exception {
+ stubGetQueueAttributes(USER_QUEUE_URL, USER_QUEUE_ARN);
+ stubPutTargetsSuccess();
+ when(eventBridgeClient.removeTargets(any(RemoveTargetsRequest.class)))
+ .thenReturn(RemoveTargetsResponse.builder().build());
+
+ // deleteQueueOnShutdown=true, but queue was user-provided so should NOT be deleted
+ EventbridgeConsumer consumer = createConsumer("test-rule", USER_QUEUE_URL, true, true);
+ consumer.start();
+ consumer.stop();
+
+ verify(eventBridgeClient).removeTargets(any(RemoveTargetsRequest.class));
+ verify(sqsClient, never()).deleteQueue(any(DeleteQueueRequest.class));
+ }
+
+ @Test
+ public void testCleanupSwallowsExceptions() throws Exception {
+ stubAutoCreateQueue();
+ stubPutTargetsSuccess();
+ when(eventBridgeClient.removeTargets(any(RemoveTargetsRequest.class)))
+ .thenThrow(new RuntimeException("EventBridge cleanup error"));
+ doThrow(new RuntimeException("SQS cleanup error"))
+ .when(sqsClient).deleteQueue(any(DeleteQueueRequest.class));
+
+ EventbridgeConsumer consumer = createConsumer("test-rule", null, true, true);
+ consumer.start();
+
+ // Should not throw despite cleanup failures
+ assertDoesNotThrow(consumer::stop);
+ }
+
+ // -- Helper methods --
+
+ private EventbridgeConsumer createConsumer(
+ String ruleName, String queueUrl, boolean autoCreateQueue, boolean deleteQueueOnShutdown)
+ throws Exception {
+ EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ component.getConfiguration().setAccessKey("test");
+ component.getConfiguration().setSecretKey("test");
+
+ String uri = "aws2-eventbridge://default?accessKey=test&secretKey=test&ruleName=" + ruleName
+ + "&autoCreateQueue=" + autoCreateQueue
+ + "&deleteQueueOnShutdown=" + deleteQueueOnShutdown;
+ if (queueUrl != null) {
+ uri += "&queueUrl=" + queueUrl;
+ }
+
+ EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint(uri);
+ endpoint.getConfiguration().setEventbridgeClient(eventBridgeClient);
+
+ EventbridgeEndpoint spyEndpoint = Mockito.spy(endpoint);
+ doReturn(sqsClient).when(spyEndpoint).getSqsClient();
+ doReturn(eventBridgeClient).when(spyEndpoint).getEventbridgeClient();
+
+ Processor processor = exchange -> receivedExchanges.add(exchange);
+ EventbridgeConsumer consumer = new EventbridgeConsumer(spyEndpoint, processor);
+ consumer.setStartScheduler(false);
+ return consumer;
+ }
+
+ private EventbridgeConsumer createConsumerWithCustomConfig(
+ String ruleName, int maxMessages, int waitTime, int visibilityTimeout)
+ throws Exception {
+ EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ component.getConfiguration().setAccessKey("test");
+ component.getConfiguration().setSecretKey("test");
+
+ String uri = "aws2-eventbridge://default?accessKey=test&secretKey=test&ruleName=" + ruleName
+ + "&maxMessagesPerPoll=" + maxMessages
+ + "&waitTimeSeconds=" + waitTime
+ + "&visibilityTimeout=" + visibilityTimeout;
+
+ EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint(uri);
+ endpoint.getConfiguration().setEventbridgeClient(eventBridgeClient);
+
+ EventbridgeEndpoint spyEndpoint = Mockito.spy(endpoint);
+ doReturn(sqsClient).when(spyEndpoint).getSqsClient();
+ doReturn(eventBridgeClient).when(spyEndpoint).getEventbridgeClient();
+
+ Processor processor = exchange -> receivedExchanges.add(exchange);
+ EventbridgeConsumer consumer = new EventbridgeConsumer(spyEndpoint, processor);
+ consumer.setStartScheduler(false);
+ return consumer;
+ }
+
+ private EventbridgeConsumer createConsumerWithProcessor(String ruleName, Processor processor) throws Exception {
+ EventbridgeComponent component = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ component.getConfiguration().setAccessKey("test");
+ component.getConfiguration().setSecretKey("test");
+
+ String uri = "aws2-eventbridge://default?accessKey=test&secretKey=test&ruleName=" + ruleName;
+ EventbridgeEndpoint endpoint = (EventbridgeEndpoint) component.createEndpoint(uri);
+ endpoint.getConfiguration().setEventbridgeClient(eventBridgeClient);
+
+ EventbridgeEndpoint spyEndpoint = Mockito.spy(endpoint);
+ doReturn(sqsClient).when(spyEndpoint).getSqsClient();
+ doReturn(eventBridgeClient).when(spyEndpoint).getEventbridgeClient();
+
+ EventbridgeConsumer consumer = new EventbridgeConsumer(spyEndpoint, processor);
+ consumer.setStartScheduler(false);
+ return consumer;
+ }
+
+ private void stubAutoCreateQueue() {
+ when(sqsClient.createQueue(any(CreateQueueRequest.class)))
+ .thenReturn(CreateQueueResponse.builder().queueUrl(TEST_QUEUE_URL).build());
+ stubGetQueueAttributes(TEST_QUEUE_URL, TEST_QUEUE_ARN);
+ }
+
+ private void stubGetQueueAttributes(String queueUrl, String queueArn) {
+ when(sqsClient.getQueueAttributes(any(GetQueueAttributesRequest.class)))
+ .thenReturn(GetQueueAttributesResponse.builder()
+ .attributes(Map.of(QueueAttributeName.QUEUE_ARN, queueArn))
+ .build());
+ }
+
+ private void stubPutTargetsSuccess() {
+ when(eventBridgeClient.putTargets(any(PutTargetsRequest.class)))
+ .thenReturn(PutTargetsResponse.builder().failedEntryCount(0).build());
+ }
+
+ private void stubReceiveMessages(Message... messages) {
+ when(sqsClient.receiveMessage(any(ReceiveMessageRequest.class)))
+ .thenReturn(ReceiveMessageResponse.builder().messages(messages).build());
+ }
+
+ private Message createSqsMessage(String messageId, String receiptHandle, String body) {
+ return Message.builder()
+ .messageId(messageId)
+ .receiptHandle(receiptHandle)
+ .body(body)
+ .build();
+ }
+}
diff --git a/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/localstack/EventbridgeConsumerIT.java b/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/localstack/EventbridgeConsumerIT.java
new file mode 100644
index 000000000000..bec81b2b4011
--- /dev/null
+++ b/components/camel-aws/camel-aws2-eventbridge/src/test/java/org/apache/camel/component/aws2/eventbridge/localstack/EventbridgeConsumerIT.java
@@ -0,0 +1,257 @@
+/*
+ * 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.localstack;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.EndpointInject;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeComponent;
+import org.apache.camel.component.aws2.eventbridge.EventbridgeConstants;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.infra.aws.common.services.AWSService;
+import org.apache.camel.test.infra.aws2.clients.AWSSDKClientUtils;
+import org.apache.camel.test.infra.aws2.services.AWSServiceFactory;
+import org.apache.camel.test.junit6.CamelTestSupport;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.jupiter.api.extension.RegisterExtension;
+import software.amazon.awssdk.services.eventbridge.EventBridgeClient;
+import software.amazon.awssdk.services.eventbridge.model.PutRuleRequest;
+import software.amazon.awssdk.services.sqs.SqsClient;
+import software.amazon.awssdk.services.sqs.model.CreateQueueResponse;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@Disabled("Doesn't work with Localstack v4")
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+public class EventbridgeConsumerIT extends CamelTestSupport {
+
+ @RegisterExtension
+ public static AWSService service = AWSServiceFactory.createSingletonEventBridgeService();
+
+ @EndpointInject
+ private ProducerTemplate template;
+
+ @EndpointInject("mock:consumed")
+ private MockEndpoint resultConsumed;
+
+ @EndpointInject("mock:consumedMultiple")
+ private MockEndpoint resultConsumedMultiple;
+
+ @EndpointInject("mock:consumedHeaders")
+ private MockEndpoint resultConsumedHeaders;
+
+ @EndpointInject("mock:consumedUserQueue")
+ private MockEndpoint resultConsumedUserQueue;
+
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ CamelContext context = super.createCamelContext();
+ EventbridgeComponent eventbridgeComponent = context.getComponent("aws2-eventbridge", EventbridgeComponent.class);
+ eventbridgeComponent.getConfiguration().setEventbridgeClient(AWSSDKClientUtils.newEventBridgeClient());
+ return context;
+ }
+
+ @Test
+ public void testConsumeEventsFromEventBridge() throws Exception {
+ // Create a rule first via the EventBridge client
+ EventBridgeClient ebClient = AWSSDKClientUtils.newEventBridgeClient();
+ ebClient.putRule(PutRuleRequest.builder()
+ .name("consumer-test-rule")
+ .eventBusName("default")
+ .eventPattern("{\"source\":[\"camel.test\"]}")
+ .build());
+
+ resultConsumed.expectedMinimumMessageCount(1);
+
+ // Send an event that matches the rule
+ template.send("direct:putEvent", exchange -> {
+ exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "consumer-test-rule");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_RESOURCES_ARN,
+ "arn:aws:sqs:eu-west-1:123456789012:test");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_SOURCE, "camel.test");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_DETAIL_TYPE, "CamelTestEvent");
+ exchange.getIn().setBody("{\"message\":\"Hello from EventBridge\"}");
+ });
+
+ boolean satisfied = resultConsumed.await(30, TimeUnit.SECONDS);
+ assertTrue(satisfied, "Consumer should have received at least one event");
+
+ ebClient.close();
+ }
+
+ @Test
+ public void testConsumeMultipleEvents() throws Exception {
+ EventBridgeClient ebClient = AWSSDKClientUtils.newEventBridgeClient();
+ ebClient.putRule(PutRuleRequest.builder()
+ .name("consumer-multi-rule")
+ .eventBusName("default")
+ .eventPattern("{\"source\":[\"camel.multi\"]}")
+ .build());
+
+ resultConsumedMultiple.expectedMinimumMessageCount(3);
+
+ // Send 3 events
+ for (int i = 1; i <= 3; i++) {
+ final int idx = i;
+ template.send("direct:putEventMulti", exchange -> {
+ exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "consumer-multi-rule");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_RESOURCES_ARN,
+ "arn:aws:sqs:eu-west-1:123456789012:test");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_SOURCE, "camel.multi");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_DETAIL_TYPE, "CamelTestEvent");
+ exchange.getIn().setBody("{\"message\":\"Event " + idx + "\"}");
+ });
+ }
+
+ boolean satisfied = resultConsumedMultiple.await(30, TimeUnit.SECONDS);
+ assertTrue(satisfied, "Consumer should have received at least 3 events");
+ assertTrue(resultConsumedMultiple.getExchanges().size() >= 3);
+
+ ebClient.close();
+ }
+
+ @Test
+ public void testConsumerHeadersAreSet() throws Exception {
+ EventBridgeClient ebClient = AWSSDKClientUtils.newEventBridgeClient();
+ ebClient.putRule(PutRuleRequest.builder()
+ .name("consumer-headers-rule")
+ .eventBusName("default")
+ .eventPattern("{\"source\":[\"camel.headers\"]}")
+ .build());
+
+ resultConsumedHeaders.expectedMinimumMessageCount(1);
+
+ template.send("direct:putEventHeaders", exchange -> {
+ exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "consumer-headers-rule");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_RESOURCES_ARN,
+ "arn:aws:sqs:eu-west-1:123456789012:test");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_SOURCE, "camel.headers");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_DETAIL_TYPE, "CamelTestEvent");
+ exchange.getIn().setBody("{\"message\":\"Header test\"}");
+ });
+
+ boolean satisfied = resultConsumedHeaders.await(30, TimeUnit.SECONDS);
+ assertTrue(satisfied, "Consumer should have received at least one event");
+
+ // Verify consumer-specific headers are set
+ assertNotNull(
+ resultConsumedHeaders.getExchanges().get(0).getMessage()
+ .getHeader(EventbridgeConstants.MESSAGE_ID, String.class));
+ assertNotNull(
+ resultConsumedHeaders.getExchanges().get(0).getMessage()
+ .getHeader(EventbridgeConstants.RECEIPT_HANDLE, String.class));
+
+ ebClient.close();
+ }
+
+ @Test
+ public void testConsumeWithUserProvidedQueue() throws Exception {
+ // Pre-create an SQS queue
+ SqsClient sqsClient = AWSSDKClientUtils.newSQSClient();
+ CreateQueueResponse createResp = sqsClient.createQueue(b -> b.queueName("user-provided-eb-queue"));
+ String userQueueUrl = createResp.queueUrl();
+
+ EventBridgeClient ebClient = AWSSDKClientUtils.newEventBridgeClient();
+ ebClient.putRule(PutRuleRequest.builder()
+ .name("consumer-userq-rule")
+ .eventBusName("default")
+ .eventPattern("{\"source\":[\"camel.userq\"]}")
+ .build());
+
+ resultConsumedUserQueue.expectedMinimumMessageCount(1);
+
+ template.send("direct:putEventUserQueue", exchange -> {
+ exchange.getIn().setHeader(EventbridgeConstants.RULE_NAME, "consumer-userq-rule");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_RESOURCES_ARN,
+ "arn:aws:sqs:eu-west-1:123456789012:test");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_SOURCE, "camel.userq");
+ exchange.getIn().setHeader(EventbridgeConstants.EVENT_DETAIL_TYPE, "CamelTestEvent");
+ exchange.getIn().setBody("{\"message\":\"User queue test\"}");
+ });
+
+ boolean satisfied = resultConsumedUserQueue.await(30, TimeUnit.SECONDS);
+ assertTrue(satisfied, "Consumer should have received event via user-provided queue");
+
+ sqsClient.close();
+ ebClient.close();
+ }
+
+ @Test
+ public void testAutoCreateQueueDisabledWithoutQueueUrlFails() {
+ // This test verifies that the consumer throws when autoCreateQueue=false and no queueUrl
+ // The route should fail to start
+ assertThrows(Exception.class, () -> {
+ context.addRoutes(new RouteBuilder() {
+ @Override
+ public void configure() {
+ from("aws2-eventbridge://default?ruleName=fail-rule&autoCreateQueue=false&delay=1000")
+ .to("mock:shouldNotReach");
+ }
+ });
+ });
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ @Override
+ public void configure() {
+ // Producer route to put events
+ from("direct:putEvent")
+ .to("aws2-eventbridge://default?operation=putEvent");
+
+ from("direct:putEventMulti")
+ .to("aws2-eventbridge://default?operation=putEvent");
+
+ from("direct:putEventHeaders")
+ .to("aws2-eventbridge://default?operation=putEvent");
+
+ from("direct:putEventUserQueue")
+ .to("aws2-eventbridge://default?operation=putEvent");
+
+ // Consumer route that polls EventBridge rule via SQS
+ from("aws2-eventbridge://default?ruleName=consumer-test-rule"
+ + "&autoCreateQueue=true&deleteQueueOnShutdown=true"
+ + "&delay=1000")
+ .log("Received EventBridge event: ${body}")
+ .to("mock:consumed");
+
+ from("aws2-eventbridge://default?ruleName=consumer-multi-rule"
+ + "&autoCreateQueue=true&deleteQueueOnShutdown=true"
+ + "&delay=1000")
+ .to("mock:consumedMultiple");
+
+ from("aws2-eventbridge://default?ruleName=consumer-headers-rule"
+ + "&autoCreateQueue=true&deleteQueueOnShutdown=true"
+ + "&delay=1000")
+ .to("mock:consumedHeaders");
+
+ from("aws2-eventbridge://default?ruleName=consumer-userq-rule"
+ + "&autoCreateQueue=false"
+ + "&queueUrl=PLACEHOLDER_WILL_OVERRIDE"
+ + "&deleteQueueOnShutdown=false"
+ + "&delay=1000")
+ .to("mock:consumedUserQueue");
+ }
+ };
+ }
+}
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
index f494ea4a99e8..f2d41840f684 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/ComponentsBuilderFactory.java
@@ -363,7 +363,8 @@ public interface ComponentsBuilderFactory {
}
/**
* AWS Eventbridge (camel-aws2-eventbridge)
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via
+ * SQS-backed polling.
*
* Category: cloud,management
* Since: 3.6
diff --git a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
index 570be41f204c..9c239e5f67d0 100644
--- a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
+++ b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2EventbridgeComponentBuilderFactory.java
@@ -24,7 +24,8 @@ import org.apache.camel.builder.component.ComponentBuilder;
import org.apache.camel.component.aws2.eventbridge.EventbridgeComponent;
/**
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via SQS-backed
+ * polling.
*
* Generated by camel build tools - do NOT edit this file!
*/
@@ -33,7 +34,8 @@ public interface Aws2EventbridgeComponentBuilderFactory {
/**
* AWS Eventbridge (camel-aws2-eventbridge)
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via
+ * SQS-backed polling.
*
* Category: cloud,management
* Since: 3.6
@@ -56,7 +58,7 @@ public interface Aws2EventbridgeComponentBuilderFactory {
* The option is a:
* <code>org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration</code> type.
*
- * Group: producer
+ * Group: common
*
* @param configuration the value to set
* @return the dsl builder
@@ -74,7 +76,7 @@ public interface Aws2EventbridgeComponentBuilderFactory {
*
* The option is a: <code>java.lang.String</code> type.
*
- * Group: producer
+ * Group: common
*
* @param eventPatternFile the value to set
* @return the dsl builder
@@ -85,31 +87,6 @@ public interface Aws2EventbridgeComponentBuilderFactory {
}
- /**
- * 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
- *
- * @param lazyStartProducer the value to set
- * @return the dsl builder
- */
- default Aws2EventbridgeComponentBuilder lazyStartProducer(boolean lazyStartProducer) {
- doSetProperty("lazyStartProducer", lazyStartProducer);
- return this;
- }
-
-
/**
* The operation to perform.
*
@@ -117,7 +94,7 @@ public interface Aws2EventbridgeComponentBuilderFactory {
* <code>org.apache.camel.component.aws2.eventbridge.EventbridgeOperations</code> type.
*
* Default: putRule
- * Group: producer
+ * Group: common
*
* @param operation the value to set
* @return the dsl builder
@@ -135,7 +112,7 @@ public interface Aws2EventbridgeComponentBuilderFactory {
* The option is a: <code>boolean</code> type.
*
* Default: false
- * Group: producer
+ * Group: common
*
* @param overrideEndpoint the value to set
* @return the dsl builder
@@ -152,7 +129,7 @@ public interface Aws2EventbridgeComponentBuilderFactory {
* The option is a: <code>boolean</code> type.
*
* Default: false
- * Group: producer
+ * Group: common
*
* @param pojoRequest the value to set
* @return the dsl builder
@@ -170,7 +147,7 @@ public interface Aws2EventbridgeComponentBuilderFactory {
*
* The option is a: <code>java.lang.String</code> type.
*
- * Group: producer
+ * Group: common
*
* @param region the value to set
* @return the dsl builder
@@ -186,7 +163,7 @@ public interface Aws2EventbridgeComponentBuilderFactory {
*
* The option is a: <code>java.lang.String</code> type.
*
- * Group: producer
+ * Group: common
*
* @param uriEndpointOverride the value to set
* @return the dsl builder
@@ -197,6 +174,180 @@ public interface Aws2EventbridgeComponentBuilderFactory {
}
+ /**
+ * Whether to auto-create an SQS queue and wire it as an EventBridge
+ * rule target.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: consumer
+ *
+ * @param autoCreateQueue the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder autoCreateQueue(boolean autoCreateQueue) {
+ doSetProperty("autoCreateQueue", autoCreateQueue);
+ return this;
+ }
+
+
+ /**
+ * Allows for bridging the consumer to the Camel routing Error Handler,
+ * which mean any exceptions (if possible) occurred while the Camel
+ * consumer is trying to pickup incoming messages, or the likes, will
+ * now be processed as a message and handled by the routing Error
+ * Handler. Important: This is only possible if the 3rd party component
+ * allows Camel to be alerted if an exception was thrown. Some
+ * components handle this internally only, and therefore
+ * bridgeErrorHandler is not possible. In other situations we may
+ * improve the Camel component to hook into the 3rd party component and
+ * make this possible for future releases. By default the consumer will
+ * use the org.apache.camel.spi.ExceptionHandler to deal with
+ * exceptions, that will be logged at WARN or ERROR level and ignored.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: consumer
+ *
+ * @param bridgeErrorHandler the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
+ doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+ return this;
+ }
+
+
+ /**
+ * Whether to delete the auto-created SQS queue and remove the
+ * EventBridge target on shutdown.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: consumer
+ *
+ * @param deleteQueueOnShutdown the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder deleteQueueOnShutdown(boolean deleteQueueOnShutdown) {
+ doSetProperty("deleteQueueOnShutdown", deleteQueueOnShutdown);
+ return this;
+ }
+
+
+ /**
+ * The maximum number of messages to receive per poll from SQS.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 10
+ * Group: consumer
+ *
+ * @param maxMessagesPerPoll the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder maxMessagesPerPoll(int maxMessagesPerPoll) {
+ doSetProperty("maxMessagesPerPoll", maxMessagesPerPoll);
+ return this;
+ }
+
+ /**
+ * The URL of an existing SQS queue to use as EventBridge target. If not
+ * specified, a queue is auto-created when autoCreateQueue is true.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: consumer
+ *
+ * @param queueUrl the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder queueUrl(java.lang.String queueUrl) {
+ doSetProperty("queueUrl", queueUrl);
+ return this;
+ }
+
+ /**
+ * The EventBridge rule name to consume events from. Required for
+ * consumer.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: consumer
+ *
+ * @param ruleName the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder ruleName(java.lang.String ruleName) {
+ doSetProperty("ruleName", ruleName);
+ return this;
+ }
+
+
+ /**
+ * The duration (in seconds) that received SQS messages are hidden from
+ * subsequent receive requests.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 30
+ * Group: consumer
+ *
+ * @param visibilityTimeout the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder visibilityTimeout(int visibilityTimeout) {
+ doSetProperty("visibilityTimeout", visibilityTimeout);
+ return this;
+ }
+
+
+ /**
+ * The duration (in seconds) for which the SQS receive call waits for
+ * messages (long polling).
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 20
+ * Group: consumer
+ *
+ * @param waitTimeSeconds the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder waitTimeSeconds(int waitTimeSeconds) {
+ doSetProperty("waitTimeSeconds", waitTimeSeconds);
+ 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
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default Aws2EventbridgeComponentBuilder lazyStartProducer(boolean lazyStartProducer) {
+ doSetProperty("lazyStartProducer", lazyStartProducer);
+ return this;
+ }
+
+
/**
* Whether autowiring is enabled. This is used for automatic autowiring
* options (the option must be marked as autowired) by looking up in the
@@ -478,12 +629,20 @@ public interface Aws2EventbridgeComponentBuilderFactory {
switch (name) {
case "configuration": ((EventbridgeComponent) component).setConfiguration((org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration) 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.EventbridgeOperations) value); return true;
case "overrideEndpoint": getOrCreateConfiguration((EventbridgeComponent) component).setOverrideEndpoint((boolean) value); return true;
case "pojoRequest": getOrCreateConfiguration((EventbridgeComponent) component).setPojoRequest((boolean) value); return true;
case "region": getOrCreateConfiguration((EventbridgeComponent) component).setRegion((java.lang.String) value); return true;
case "uriEndpointOverride": getOrCreateConfiguration((EventbridgeComponent) component).setUriEndpointOverride((java.lang.String) value); return true;
+ case "autoCreateQueue": getOrCreateConfiguration((EventbridgeComponent) component).setAutoCreateQueue((boolean) value); return true;
+ case "bridgeErrorHandler": ((EventbridgeComponent) component).setBridgeErrorHandler((boolean) value); return true;
+ case "deleteQueueOnShutdown": getOrCreateConfiguration((EventbridgeComponent) component).setDeleteQueueOnShutdown((boolean) value); return true;
+ case "maxMessagesPerPoll": getOrCreateConfiguration((EventbridgeComponent) component).setMaxMessagesPerPoll((int) value); return true;
+ case "queueUrl": getOrCreateConfiguration((EventbridgeComponent) component).setQueueUrl((java.lang.String) value); return true;
+ case "ruleName": getOrCreateConfiguration((EventbridgeComponent) component).setRuleName((java.lang.String) value); return true;
+ case "visibilityTimeout": getOrCreateConfiguration((EventbridgeComponent) component).setVisibilityTimeout((int) value); return true;
+ case "waitTimeSeconds": getOrCreateConfiguration((EventbridgeComponent) component).setWaitTimeSeconds((int) value); return true;
+ case "lazyStartProducer": ((EventbridgeComponent) component).setLazyStartProducer((boolean) value); return true;
case "autowiredEnabled": ((EventbridgeComponent) component).setAutowiredEnabled((boolean) value); return true;
case "eventbridgeClient": getOrCreateConfiguration((EventbridgeComponent) component).setEventbridgeClient((software.amazon.awssdk.services.eventbridge.EventBridgeClient) value); return true;
case "healthCheckConsumerEnabled": ((EventbridgeComponent) component).setHealthCheckConsumerEnabled((boolean) value); return true;
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
index f012a3b38c69..d7e0a8d26b33 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/StaticEndpointBuilders.java
@@ -1060,7 +1060,8 @@ public class StaticEndpointBuilders {
}
/**
* AWS Eventbridge (camel-aws2-eventbridge)
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via
+ * SQS-backed polling.
*
* Category: cloud,management
* Since: 3.6
@@ -1079,7 +1080,8 @@ public class StaticEndpointBuilders {
}
/**
* AWS Eventbridge (camel-aws2-eventbridge)
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via
+ * SQS-backed polling.
*
* Category: cloud,management
* Since: 3.6
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
index d0c3512a6625..4f1cc4177a1c 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/EventbridgeEndpointBuilderFactory.java
@@ -27,19 +27,1821 @@ import org.apache.camel.builder.EndpointProducerBuilder;
import org.apache.camel.builder.endpoint.AbstractEndpointBuilder;
/**
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via SQS-backed
+ * polling.
*
* Generated by camel build tools - do NOT edit this file!
*/
@Generated("org.apache.camel.maven.packaging.EndpointDslMojo")
public interface EventbridgeEndpointBuilderFactory {
+ /**
+ * Builder for endpoint consumers for the AWS Eventbridge component.
+ */
+ public interface EventbridgeEndpointConsumerBuilder
+ extends
+ EndpointConsumerBuilder {
+ default AdvancedEventbridgeEndpointConsumerBuilder advanced() {
+ return (AdvancedEventbridgeEndpointConsumerBuilder) this;
+ }
+ /**
+ * EventPattern File.
+ *
+ * This option can also be loaded from an existing file, by prefixing
+ * with file: or classpath: followed by the location of the file.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param eventPatternFile the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder eventPatternFile(String eventPatternFile) {
+ doSetProperty("eventPatternFile", eventPatternFile);
+ return this;
+ }
+ /**
+ * The operation to perform.
+ *
+ * The option is a:
+ * <code>org.apache.camel.component.aws2.eventbridge.EventbridgeOperations</code> type.
+ *
+ * Required: true
+ * Default: putRule
+ * Group: common
+ *
+ * @param operation the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder operation(org.apache.camel.component.aws2.eventbridge.EventbridgeOperations operation) {
+ doSetProperty("operation", operation);
+ return this;
+ }
+ /**
+ * The operation to perform.
+ *
+ * The option will be converted to a
+ * <code>org.apache.camel.component.aws2.eventbridge.EventbridgeOperations</code> type.
+ *
+ * Required: true
+ * Default: putRule
+ * Group: common
+ *
+ * @param operation the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder operation(String operation) {
+ doSetProperty("operation", operation);
+ return this;
+ }
+ /**
+ * Set the need for overriding the endpoint. This option needs to be
+ * used in combination with the uriEndpointOverride option.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: common
+ *
+ * @param overrideEndpoint the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder overrideEndpoint(boolean overrideEndpoint) {
+ doSetProperty("overrideEndpoint", overrideEndpoint);
+ return this;
+ }
+ /**
+ * Set the need for overriding the endpoint. This option needs to be
+ * used in combination with the uriEndpointOverride option.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: common
+ *
+ * @param overrideEndpoint the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder overrideEndpoint(String overrideEndpoint) {
+ doSetProperty("overrideEndpoint", overrideEndpoint);
+ 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: common
+ *
+ * @param pojoRequest the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder 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: common
+ *
+ * @param pojoRequest the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder pojoRequest(String pojoRequest) {
+ doSetProperty("pojoRequest", pojoRequest);
+ return this;
+ }
+ /**
+ * The region in which the Eventbridge 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.
+ *
+ * Group: common
+ *
+ * @param region the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder region(String region) {
+ doSetProperty("region", region);
+ return this;
+ }
+ /**
+ * Set the overriding uri endpoint. This option needs to be used in
+ * combination with overrideEndpoint option.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param uriEndpointOverride the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder uriEndpointOverride(String uriEndpointOverride) {
+ doSetProperty("uriEndpointOverride", uriEndpointOverride);
+ return this;
+ }
+ /**
+ * Whether to auto-create an SQS queue and wire it as an EventBridge
+ * rule target.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: consumer
+ *
+ * @param autoCreateQueue the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder autoCreateQueue(boolean autoCreateQueue) {
+ doSetProperty("autoCreateQueue", autoCreateQueue);
+ return this;
+ }
+ /**
+ * Whether to auto-create an SQS queue and wire it as an EventBridge
+ * rule target.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: consumer
+ *
+ * @param autoCreateQueue the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder autoCreateQueue(String autoCreateQueue) {
+ doSetProperty("autoCreateQueue", autoCreateQueue);
+ return this;
+ }
+ /**
+ * Whether to delete the auto-created SQS queue and remove the
+ * EventBridge target on shutdown.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: consumer
+ *
+ * @param deleteQueueOnShutdown the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder deleteQueueOnShutdown(boolean deleteQueueOnShutdown) {
+ doSetProperty("deleteQueueOnShutdown", deleteQueueOnShutdown);
+ return this;
+ }
+ /**
+ * Whether to delete the auto-created SQS queue and remove the
+ * EventBridge target on shutdown.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: consumer
+ *
+ * @param deleteQueueOnShutdown the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder deleteQueueOnShutdown(String deleteQueueOnShutdown) {
+ doSetProperty("deleteQueueOnShutdown", deleteQueueOnShutdown);
+ return this;
+ }
+ /**
+ * The maximum number of messages to receive per poll from SQS.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 10
+ * Group: consumer
+ *
+ * @param maxMessagesPerPoll the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder maxMessagesPerPoll(int maxMessagesPerPoll) {
+ doSetProperty("maxMessagesPerPoll", maxMessagesPerPoll);
+ return this;
+ }
+ /**
+ * The maximum number of messages to receive per poll from SQS.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Default: 10
+ * Group: consumer
+ *
+ * @param maxMessagesPerPoll the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder maxMessagesPerPoll(String maxMessagesPerPoll) {
+ doSetProperty("maxMessagesPerPoll", maxMessagesPerPoll);
+ return this;
+ }
+ /**
+ * The URL of an existing SQS queue to use as EventBridge target. If not
+ * specified, a queue is auto-created when autoCreateQueue is true.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: consumer
+ *
+ * @param queueUrl the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder queueUrl(String queueUrl) {
+ doSetProperty("queueUrl", queueUrl);
+ return this;
+ }
+ /**
+ * The EventBridge rule name to consume events from. Required for
+ * consumer.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: consumer
+ *
+ * @param ruleName the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder ruleName(String ruleName) {
+ doSetProperty("ruleName", ruleName);
+ return this;
+ }
+ /**
+ * If the polling consumer did not poll any files, you can enable this
+ * option to send an empty message (no body) instead.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: consumer
+ *
+ * @param sendEmptyMessageWhenIdle the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder sendEmptyMessageWhenIdle(boolean sendEmptyMessageWhenIdle) {
+ doSetProperty("sendEmptyMessageWhenIdle", sendEmptyMessageWhenIdle);
+ return this;
+ }
+ /**
+ * If the polling consumer did not poll any files, you can enable this
+ * option to send an empty message (no body) instead.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: consumer
+ *
+ * @param sendEmptyMessageWhenIdle the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder sendEmptyMessageWhenIdle(String sendEmptyMessageWhenIdle) {
+ doSetProperty("sendEmptyMessageWhenIdle", sendEmptyMessageWhenIdle);
+ return this;
+ }
+ /**
+ * The duration (in seconds) that received SQS messages are hidden from
+ * subsequent receive requests.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 30
+ * Group: consumer
+ *
+ * @param visibilityTimeout the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder visibilityTimeout(int visibilityTimeout) {
+ doSetProperty("visibilityTimeout", visibilityTimeout);
+ return this;
+ }
+ /**
+ * The duration (in seconds) that received SQS messages are hidden from
+ * subsequent receive requests.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Default: 30
+ * Group: consumer
+ *
+ * @param visibilityTimeout the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder visibilityTimeout(String visibilityTimeout) {
+ doSetProperty("visibilityTimeout", visibilityTimeout);
+ return this;
+ }
+ /**
+ * The duration (in seconds) for which the SQS receive call waits for
+ * messages (long polling).
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Default: 20
+ * Group: consumer
+ *
+ * @param waitTimeSeconds the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder waitTimeSeconds(int waitTimeSeconds) {
+ doSetProperty("waitTimeSeconds", waitTimeSeconds);
+ return this;
+ }
+ /**
+ * The duration (in seconds) for which the SQS receive call waits for
+ * messages (long polling).
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Default: 20
+ * Group: consumer
+ *
+ * @param waitTimeSeconds the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder waitTimeSeconds(String waitTimeSeconds) {
+ doSetProperty("waitTimeSeconds", waitTimeSeconds);
+ return this;
+ }
+ /**
+ * To define a proxy host when instantiating the Eventbridge client.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyHost the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder proxyHost(String proxyHost) {
+ doSetProperty("proxyHost", proxyHost);
+ return this;
+ }
+ /**
+ * To define a proxy port when instantiating the Eventbridge client.
+ *
+ * The option is a: <code>java.lang.Integer</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyPort the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder proxyPort(Integer proxyPort) {
+ doSetProperty("proxyPort", proxyPort);
+ return this;
+ }
+ /**
+ * To define a proxy port when instantiating the Eventbridge client.
+ *
+ * The option will be converted to a <code>java.lang.Integer</code>
+ * type.
+ *
+ * Group: proxy
+ *
+ * @param proxyPort the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder proxyPort(String proxyPort) {
+ doSetProperty("proxyPort", proxyPort);
+ return this;
+ }
+ /**
+ * To define a proxy protocol when instantiating the Eventbridge client.
+ *
+ * The option is a: <code>software.amazon.awssdk.core.Protocol</code>
+ * type.
+ *
+ * Default: HTTPS
+ * Group: proxy
+ *
+ * @param proxyProtocol the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder proxyProtocol(software.amazon.awssdk.core.Protocol proxyProtocol) {
+ doSetProperty("proxyProtocol", proxyProtocol);
+ return this;
+ }
+ /**
+ * To define a proxy protocol when instantiating the Eventbridge client.
+ *
+ * The option will be converted to a
+ * <code>software.amazon.awssdk.core.Protocol</code> type.
+ *
+ * Default: HTTPS
+ * Group: proxy
+ *
+ * @param proxyProtocol the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder proxyProtocol(String proxyProtocol) {
+ doSetProperty("proxyProtocol", proxyProtocol);
+ return this;
+ }
+ /**
+ * The number of subsequent error polls (failed due some error) that
+ * should happen before the backoffMultipler should kick-in.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Group: scheduler
+ *
+ * @param backoffErrorThreshold the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder backoffErrorThreshold(int backoffErrorThreshold) {
+ doSetProperty("backoffErrorThreshold", backoffErrorThreshold);
+ return this;
+ }
+ /**
+ * The number of subsequent error polls (failed due some error) that
+ * should happen before the backoffMultipler should kick-in.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Group: scheduler
+ *
+ * @param backoffErrorThreshold the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder backoffErrorThreshold(String backoffErrorThreshold) {
+ doSetProperty("backoffErrorThreshold", backoffErrorThreshold);
+ return this;
+ }
+ /**
+ * The number of subsequent idle polls that should happen before the
+ * backoffMultipler should kick-in.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Group: scheduler
+ *
+ * @param backoffIdleThreshold the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder backoffIdleThreshold(int backoffIdleThreshold) {
+ doSetProperty("backoffIdleThreshold", backoffIdleThreshold);
+ return this;
+ }
+ /**
+ * The number of subsequent idle polls that should happen before the
+ * backoffMultipler should kick-in.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Group: scheduler
+ *
+ * @param backoffIdleThreshold the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder backoffIdleThreshold(String backoffIdleThreshold) {
+ doSetProperty("backoffIdleThreshold", backoffIdleThreshold);
+ return this;
+ }
+ /**
+ * To let the scheduled polling consumer backoff if there has been a
+ * number of subsequent idles/errors in a row. The multiplier is then
+ * the number of polls that will be skipped before the next actual
+ * attempt is happening again. When this option is in use then
+ * backoffIdleThreshold and/or backoffErrorThreshold must also be
+ * configured.
+ *
+ * The option is a: <code>int</code> type.
+ *
+ * Group: scheduler
+ *
+ * @param backoffMultiplier the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder backoffMultiplier(int backoffMultiplier) {
+ doSetProperty("backoffMultiplier", backoffMultiplier);
+ return this;
+ }
+ /**
+ * To let the scheduled polling consumer backoff if there has been a
+ * number of subsequent idles/errors in a row. The multiplier is then
+ * the number of polls that will be skipped before the next actual
+ * attempt is happening again. When this option is in use then
+ * backoffIdleThreshold and/or backoffErrorThreshold must also be
+ * configured.
+ *
+ * The option will be converted to a <code>int</code> type.
+ *
+ * Group: scheduler
+ *
+ * @param backoffMultiplier the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder backoffMultiplier(String backoffMultiplier) {
+ doSetProperty("backoffMultiplier", backoffMultiplier);
+ return this;
+ }
+ /**
+ * Milliseconds before the next poll.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 500
+ * Group: scheduler
+ *
+ * @param delay the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder delay(long delay) {
+ doSetProperty("delay", delay);
+ return this;
+ }
+ /**
+ * Milliseconds before the next poll.
+ *
+ * The option will be converted to a <code>long</code> type.
+ *
+ * Default: 500
+ * Group: scheduler
+ *
+ * @param delay the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder delay(String delay) {
+ doSetProperty("delay", delay);
+ return this;
+ }
+ /**
+ * If greedy is enabled, then the ScheduledPollConsumer will run
+ * immediately again, if the previous run polled 1 or more messages.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: scheduler
+ *
+ * @param greedy the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder greedy(boolean greedy) {
+ doSetProperty("greedy", greedy);
+ return this;
+ }
+ /**
+ * If greedy is enabled, then the ScheduledPollConsumer will run
+ * immediately again, if the previous run polled 1 or more messages.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: scheduler
+ *
+ * @param greedy the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder greedy(String greedy) {
+ doSetProperty("greedy", greedy);
+ return this;
+ }
+ /**
+ * Milliseconds before the first poll starts.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 1000
+ * Group: scheduler
+ *
+ * @param initialDelay the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder initialDelay(long initialDelay) {
+ doSetProperty("initialDelay", initialDelay);
+ return this;
+ }
+ /**
+ * Milliseconds before the first poll starts.
+ *
+ * The option will be converted to a <code>long</code> type.
+ *
+ * Default: 1000
+ * Group: scheduler
+ *
+ * @param initialDelay the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder initialDelay(String initialDelay) {
+ doSetProperty("initialDelay", initialDelay);
+ return this;
+ }
+ /**
+ * Specifies a maximum limit of number of fires. So if you set it to 1,
+ * the scheduler will only fire once. If you set it to 5, it will only
+ * fire five times. A value of zero or negative means fire forever.
+ *
+ * The option is a: <code>long</code> type.
+ *
+ * Default: 0
+ * Group: scheduler
+ *
+ * @param repeatCount the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder repeatCount(long repeatCount) {
+ doSetProperty("repeatCount", repeatCount);
+ return this;
+ }
+ /**
+ * Specifies a maximum limit of number of fires. So if you set it to 1,
+ * the scheduler will only fire once. If you set it to 5, it will only
+ * fire five times. A value of zero or negative means fire forever.
+ *
+ * The option will be converted to a <code>long</code> type.
+ *
+ * Default: 0
+ * Group: scheduler
+ *
+ * @param repeatCount the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder repeatCount(String repeatCount) {
+ doSetProperty("repeatCount", repeatCount);
+ return this;
+ }
+ /**
+ * The consumer logs a start/complete log line when it polls. This
+ * option allows you to configure the logging level for that.
+ *
+ * The option is a: <code>org.apache.camel.LoggingLevel</code> type.
+ *
+ * Default: TRACE
+ * Group: scheduler
+ *
+ * @param runLoggingLevel the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder runLoggingLevel(org.apache.camel.LoggingLevel runLoggingLevel) {
+ doSetProperty("runLoggingLevel", runLoggingLevel);
+ return this;
+ }
+ /**
+ * The consumer logs a start/complete log line when it polls. This
+ * option allows you to configure the logging level for that.
+ *
+ * The option will be converted to a
+ * <code>org.apache.camel.LoggingLevel</code> type.
+ *
+ * Default: TRACE
+ * Group: scheduler
+ *
+ * @param runLoggingLevel the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder runLoggingLevel(String runLoggingLevel) {
+ doSetProperty("runLoggingLevel", runLoggingLevel);
+ return this;
+ }
+ /**
+ * Allows for configuring a custom/shared thread pool to use for the
+ * consumer. By default each consumer has its own single threaded thread
+ * pool.
+ *
+ * The option is a:
+ * <code>java.util.concurrent.ScheduledExecutorService</code> type.
+ *
+ * Group: scheduler
+ *
+ * @param scheduledExecutorService the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder scheduledExecutorService(ScheduledExecutorService scheduledExecutorService) {
+ doSetProperty("scheduledExecutorService", scheduledExecutorService);
+ return this;
+ }
+ /**
+ * Allows for configuring a custom/shared thread pool to use for the
+ * consumer. By default each consumer has its own single threaded thread
+ * pool.
+ *
+ * The option will be converted to a
+ * <code>java.util.concurrent.ScheduledExecutorService</code> type.
+ *
+ * Group: scheduler
+ *
+ * @param scheduledExecutorService the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder scheduledExecutorService(String scheduledExecutorService) {
+ doSetProperty("scheduledExecutorService", scheduledExecutorService);
+ return this;
+ }
+ /**
+ * To use a cron scheduler from either camel-spring or camel-quartz
+ * component. Use value spring or quartz for built in scheduler.
+ *
+ * The option is a: <code>java.lang.Object</code> type.
+ *
+ * Default: none
+ * Group: scheduler
+ *
+ * @param scheduler the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder scheduler(Object scheduler) {
+ doSetProperty("scheduler", scheduler);
+ return this;
+ }
+ /**
+ * To use a cron scheduler from either camel-spring or camel-quartz
+ * component. Use value spring or quartz for built in scheduler.
+ *
+ * The option will be converted to a <code>java.lang.Object</code> type.
+ *
+ * Default: none
+ * Group: scheduler
+ *
+ * @param scheduler the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder scheduler(String scheduler) {
+ doSetProperty("scheduler", scheduler);
+ return this;
+ }
+ /**
+ * To configure additional properties when using a custom scheduler or
+ * any of the Quartz, Spring based scheduler. This is a multi-value
+ * option with prefix: scheduler.
+ *
+ * The option is a: <code>java.util.Map<java.lang.String,
+ * java.lang.Object></code> type.
+ * The option is multivalued, and you can use the
+ * schedulerProperties(String, Object) method to add a value (call the
+ * method multiple times to set more values).
+ *
+ * Group: scheduler
+ *
+ * @param key the option key
+ * @param value the option value
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder schedulerProperties(String key, Object value) {
+ doSetMultiValueProperty("schedulerProperties", "scheduler." + key, value);
+ return this;
+ }
+ /**
+ * To configure additional properties when using a custom scheduler or
+ * any of the Quartz, Spring based scheduler. This is a multi-value
+ * option with prefix: scheduler.
+ *
+ * The option is a: <code>java.util.Map<java.lang.String,
+ * java.lang.Object></code> type.
+ * The option is multivalued, and you can use the
+ * schedulerProperties(String, Object) method to add a value (call the
+ * method multiple times to set more values).
+ *
+ * Group: scheduler
+ *
+ * @param values the values
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder schedulerProperties(Map values) {
+ doSetMultiValueProperties("schedulerProperties", "scheduler.", values);
+ return this;
+ }
+ /**
+ * Whether the scheduler should be auto started.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: scheduler
+ *
+ * @param startScheduler the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder startScheduler(boolean startScheduler) {
+ doSetProperty("startScheduler", startScheduler);
+ return this;
+ }
+ /**
+ * Whether the scheduler should be auto started.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: scheduler
+ *
+ * @param startScheduler the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder startScheduler(String startScheduler) {
+ doSetProperty("startScheduler", startScheduler);
+ return this;
+ }
+ /**
+ * Time unit for initialDelay and delay options.
+ *
+ * The option is a: <code>java.util.concurrent.TimeUnit</code> type.
+ *
+ * Default: MILLISECONDS
+ * Group: scheduler
+ *
+ * @param timeUnit the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder timeUnit(TimeUnit timeUnit) {
+ doSetProperty("timeUnit", timeUnit);
+ return this;
+ }
+ /**
+ * Time unit for initialDelay and delay options.
+ *
+ * The option will be converted to a
+ * <code>java.util.concurrent.TimeUnit</code> type.
+ *
+ * Default: MILLISECONDS
+ * Group: scheduler
+ *
+ * @param timeUnit the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder timeUnit(String timeUnit) {
+ doSetProperty("timeUnit", timeUnit);
+ return this;
+ }
+ /**
+ * Controls if fixed delay or fixed rate is used. See
+ * ScheduledExecutorService in JDK for details.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: scheduler
+ *
+ * @param useFixedDelay the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder useFixedDelay(boolean useFixedDelay) {
+ doSetProperty("useFixedDelay", useFixedDelay);
+ return this;
+ }
+ /**
+ * Controls if fixed delay or fixed rate is used. See
+ * ScheduledExecutorService in JDK for details.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: true
+ * Group: scheduler
+ *
+ * @param useFixedDelay the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder useFixedDelay(String useFixedDelay) {
+ doSetProperty("useFixedDelay", useFixedDelay);
+ return this;
+ }
+ /**
+ * Amazon AWS Access Key.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param accessKey the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder accessKey(String accessKey) {
+ doSetProperty("accessKey", accessKey);
+ return this;
+ }
+ /**
+ * If using a profile credentials provider this parameter will set the
+ * profile name.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param profileCredentialsName the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder profileCredentialsName(String profileCredentialsName) {
+ doSetProperty("profileCredentialsName", profileCredentialsName);
+ return this;
+ }
+ /**
+ * Amazon AWS Secret Key.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param secretKey the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder secretKey(String secretKey) {
+ doSetProperty("secretKey", secretKey);
+ return this;
+ }
+ /**
+ * Amazon AWS Session Token used when the user needs to assume an IAM
+ * role.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param sessionToken the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder sessionToken(String sessionToken) {
+ doSetProperty("sessionToken", sessionToken);
+ 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: security
+ *
+ * @param trustAllCertificates the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder 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: security
+ *
+ * @param trustAllCertificates the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder trustAllCertificates(String trustAllCertificates) {
+ doSetProperty("trustAllCertificates", trustAllCertificates);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to load credentials
+ * through a default credentials provider or to expect static
+ * credentials to be passed in.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useDefaultCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder useDefaultCredentialsProvider(boolean useDefaultCredentialsProvider) {
+ doSetProperty("useDefaultCredentialsProvider", useDefaultCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to load credentials
+ * through a default credentials provider or to expect static
+ * credentials to be passed in.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useDefaultCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder useDefaultCredentialsProvider(String useDefaultCredentialsProvider) {
+ doSetProperty("useDefaultCredentialsProvider", useDefaultCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to load credentials
+ * through a profile credentials provider.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useProfileCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder useProfileCredentialsProvider(boolean useProfileCredentialsProvider) {
+ doSetProperty("useProfileCredentialsProvider", useProfileCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to load credentials
+ * through a profile credentials provider.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useProfileCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder useProfileCredentialsProvider(String useProfileCredentialsProvider) {
+ doSetProperty("useProfileCredentialsProvider", useProfileCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to use Session
+ * Credentials. This is useful in a situation in which the user needs to
+ * assume an IAM role for doing operations in Eventbridge.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useSessionCredentials the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder useSessionCredentials(boolean useSessionCredentials) {
+ doSetProperty("useSessionCredentials", useSessionCredentials);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to use Session
+ * Credentials. This is useful in a situation in which the user needs to
+ * assume an IAM role for doing operations in Eventbridge.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useSessionCredentials the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointConsumerBuilder useSessionCredentials(String useSessionCredentials) {
+ doSetProperty("useSessionCredentials", useSessionCredentials);
+ return this;
+ }
+ }
+
+ /**
+ * Advanced builder for endpoint consumers for the AWS Eventbridge component.
+ */
+ public interface AdvancedEventbridgeEndpointConsumerBuilder
+ extends
+ EndpointConsumerBuilder {
+ default EventbridgeEndpointConsumerBuilder basic() {
+ return (EventbridgeEndpointConsumerBuilder) this;
+ }
+ /**
+ * Allows for bridging the consumer to the Camel routing Error Handler,
+ * which mean any exceptions (if possible) occurred while the Camel
+ * consumer is trying to pickup incoming messages, or the likes, will
+ * now be processed as a message and handled by the routing Error
+ * Handler. Important: This is only possible if the 3rd party component
+ * allows Camel to be alerted if an exception was thrown. Some
+ * components handle this internally only, and therefore
+ * bridgeErrorHandler is not possible. In other situations we may
+ * improve the Camel component to hook into the 3rd party component and
+ * make this possible for future releases. By default the consumer will
+ * use the org.apache.camel.spi.ExceptionHandler to deal with
+ * exceptions, that will be logged at WARN or ERROR level and ignored.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: consumer (advanced)
+ *
+ * @param bridgeErrorHandler the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder bridgeErrorHandler(boolean bridgeErrorHandler) {
+ doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+ return this;
+ }
+ /**
+ * Allows for bridging the consumer to the Camel routing Error Handler,
+ * which mean any exceptions (if possible) occurred while the Camel
+ * consumer is trying to pickup incoming messages, or the likes, will
+ * now be processed as a message and handled by the routing Error
+ * Handler. Important: This is only possible if the 3rd party component
+ * allows Camel to be alerted if an exception was thrown. Some
+ * components handle this internally only, and therefore
+ * bridgeErrorHandler is not possible. In other situations we may
+ * improve the Camel component to hook into the 3rd party component and
+ * make this possible for future releases. By default the consumer will
+ * use the org.apache.camel.spi.ExceptionHandler to deal with
+ * exceptions, that will be logged at WARN or ERROR level and ignored.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: consumer (advanced)
+ *
+ * @param bridgeErrorHandler the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder bridgeErrorHandler(String bridgeErrorHandler) {
+ doSetProperty("bridgeErrorHandler", bridgeErrorHandler);
+ return this;
+ }
+ /**
+ * To let the consumer use a custom ExceptionHandler. Notice if the
+ * option bridgeErrorHandler is enabled then this option is not in use.
+ * By default the consumer will deal with exceptions, that will be
+ * logged at WARN or ERROR level and ignored.
+ *
+ * The option is a: <code>org.apache.camel.spi.ExceptionHandler</code>
+ * type.
+ *
+ * Group: consumer (advanced)
+ *
+ * @param exceptionHandler the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder exceptionHandler(org.apache.camel.spi.ExceptionHandler exceptionHandler) {
+ doSetProperty("exceptionHandler", exceptionHandler);
+ return this;
+ }
+ /**
+ * To let the consumer use a custom ExceptionHandler. Notice if the
+ * option bridgeErrorHandler is enabled then this option is not in use.
+ * By default the consumer will deal with exceptions, that will be
+ * logged at WARN or ERROR level and ignored.
+ *
+ * The option will be converted to a
+ * <code>org.apache.camel.spi.ExceptionHandler</code> type.
+ *
+ * Group: consumer (advanced)
+ *
+ * @param exceptionHandler the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder exceptionHandler(String exceptionHandler) {
+ doSetProperty("exceptionHandler", exceptionHandler);
+ return this;
+ }
+ /**
+ * Sets the exchange pattern when the consumer creates an exchange.
+ *
+ * The option is a: <code>org.apache.camel.ExchangePattern</code> type.
+ *
+ * Group: consumer (advanced)
+ *
+ * @param exchangePattern the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder exchangePattern(org.apache.camel.ExchangePattern exchangePattern) {
+ doSetProperty("exchangePattern", exchangePattern);
+ return this;
+ }
+ /**
+ * Sets the exchange pattern when the consumer creates an exchange.
+ *
+ * The option will be converted to a
+ * <code>org.apache.camel.ExchangePattern</code> type.
+ *
+ * Group: consumer (advanced)
+ *
+ * @param exchangePattern the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder exchangePattern(String exchangePattern) {
+ doSetProperty("exchangePattern", exchangePattern);
+ return this;
+ }
+ /**
+ * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
+ * you to provide your custom implementation to control error handling
+ * usually occurred during the poll operation before an Exchange have
+ * been created and being routed in Camel.
+ *
+ * The option is a:
+ * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type.
+ *
+ * Group: consumer (advanced)
+ *
+ * @param pollStrategy the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder pollStrategy(org.apache.camel.spi.PollingConsumerPollStrategy pollStrategy) {
+ doSetProperty("pollStrategy", pollStrategy);
+ return this;
+ }
+ /**
+ * A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing
+ * you to provide your custom implementation to control error handling
+ * usually occurred during the poll operation before an Exchange have
+ * been created and being routed in Camel.
+ *
+ * The option will be converted to a
+ * <code>org.apache.camel.spi.PollingConsumerPollStrategy</code> type.
+ *
+ * Group: consumer (advanced)
+ *
+ * @param pollStrategy the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder pollStrategy(String pollStrategy) {
+ doSetProperty("pollStrategy", pollStrategy);
+ return this;
+ }
+ /**
+ * To use an existing configured AWS Eventbridge client.
+ *
+ * The option is a:
+ * <code>software.amazon.awssdk.services.eventbridge.EventBridgeClient</code> type.
+ *
+ * Group: advanced
+ *
+ * @param eventbridgeClient the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder eventbridgeClient(software.amazon.awssdk.services.eventbridge.EventBridgeClient eventbridgeClient) {
+ doSetProperty("eventbridgeClient", eventbridgeClient);
+ return this;
+ }
+ /**
+ * To use an existing configured AWS Eventbridge client.
+ *
+ * The option will be converted to a
+ * <code>software.amazon.awssdk.services.eventbridge.EventBridgeClient</code> type.
+ *
+ * Group: advanced
+ *
+ * @param eventbridgeClient the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointConsumerBuilder eventbridgeClient(String eventbridgeClient) {
+ doSetProperty("eventbridgeClient", eventbridgeClient);
+ return this;
+ }
+ }
+
+ /**
+ * Builder for endpoint producers for the AWS Eventbridge component.
+ */
+ public interface EventbridgeEndpointProducerBuilder
+ extends
+ EndpointProducerBuilder {
+ default AdvancedEventbridgeEndpointProducerBuilder advanced() {
+ return (AdvancedEventbridgeEndpointProducerBuilder) this;
+ }
+
+ /**
+ * EventPattern File.
+ *
+ * This option can also be loaded from an existing file, by prefixing
+ * with file: or classpath: followed by the location of the file.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param eventPatternFile the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder eventPatternFile(String eventPatternFile) {
+ doSetProperty("eventPatternFile", eventPatternFile);
+ return this;
+ }
+ /**
+ * The operation to perform.
+ *
+ * The option is a:
+ * <code>org.apache.camel.component.aws2.eventbridge.EventbridgeOperations</code> type.
+ *
+ * Required: true
+ * Default: putRule
+ * Group: common
+ *
+ * @param operation the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder operation(org.apache.camel.component.aws2.eventbridge.EventbridgeOperations operation) {
+ doSetProperty("operation", operation);
+ return this;
+ }
+ /**
+ * The operation to perform.
+ *
+ * The option will be converted to a
+ * <code>org.apache.camel.component.aws2.eventbridge.EventbridgeOperations</code> type.
+ *
+ * Required: true
+ * Default: putRule
+ * Group: common
+ *
+ * @param operation the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder operation(String operation) {
+ doSetProperty("operation", operation);
+ return this;
+ }
+ /**
+ * Set the need for overriding the endpoint. This option needs to be
+ * used in combination with the uriEndpointOverride option.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: common
+ *
+ * @param overrideEndpoint the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder overrideEndpoint(boolean overrideEndpoint) {
+ doSetProperty("overrideEndpoint", overrideEndpoint);
+ return this;
+ }
+ /**
+ * Set the need for overriding the endpoint. This option needs to be
+ * used in combination with the uriEndpointOverride option.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: common
+ *
+ * @param overrideEndpoint the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder overrideEndpoint(String overrideEndpoint) {
+ doSetProperty("overrideEndpoint", overrideEndpoint);
+ 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: common
+ *
+ * @param pojoRequest the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder 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: common
+ *
+ * @param pojoRequest the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder pojoRequest(String pojoRequest) {
+ doSetProperty("pojoRequest", pojoRequest);
+ return this;
+ }
+ /**
+ * The region in which the Eventbridge 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.
+ *
+ * Group: common
+ *
+ * @param region the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder region(String region) {
+ doSetProperty("region", region);
+ return this;
+ }
+ /**
+ * Set the overriding uri endpoint. This option needs to be used in
+ * combination with overrideEndpoint option.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: common
+ *
+ * @param uriEndpointOverride the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder uriEndpointOverride(String uriEndpointOverride) {
+ doSetProperty("uriEndpointOverride", uriEndpointOverride);
+ return this;
+ }
+ /**
+ * To define a proxy host when instantiating the Eventbridge client.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyHost the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder proxyHost(String proxyHost) {
+ doSetProperty("proxyHost", proxyHost);
+ return this;
+ }
+ /**
+ * To define a proxy port when instantiating the Eventbridge client.
+ *
+ * The option is a: <code>java.lang.Integer</code> type.
+ *
+ * Group: proxy
+ *
+ * @param proxyPort the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder proxyPort(Integer proxyPort) {
+ doSetProperty("proxyPort", proxyPort);
+ return this;
+ }
+ /**
+ * To define a proxy port when instantiating the Eventbridge client.
+ *
+ * The option will be converted to a <code>java.lang.Integer</code>
+ * type.
+ *
+ * Group: proxy
+ *
+ * @param proxyPort the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder proxyPort(String proxyPort) {
+ doSetProperty("proxyPort", proxyPort);
+ return this;
+ }
+ /**
+ * To define a proxy protocol when instantiating the Eventbridge client.
+ *
+ * The option is a: <code>software.amazon.awssdk.core.Protocol</code>
+ * type.
+ *
+ * Default: HTTPS
+ * Group: proxy
+ *
+ * @param proxyProtocol the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder proxyProtocol(software.amazon.awssdk.core.Protocol proxyProtocol) {
+ doSetProperty("proxyProtocol", proxyProtocol);
+ return this;
+ }
+ /**
+ * To define a proxy protocol when instantiating the Eventbridge client.
+ *
+ * The option will be converted to a
+ * <code>software.amazon.awssdk.core.Protocol</code> type.
+ *
+ * Default: HTTPS
+ * Group: proxy
+ *
+ * @param proxyProtocol the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder proxyProtocol(String proxyProtocol) {
+ doSetProperty("proxyProtocol", proxyProtocol);
+ return this;
+ }
+ /**
+ * Amazon AWS Access Key.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param accessKey the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder accessKey(String accessKey) {
+ doSetProperty("accessKey", accessKey);
+ return this;
+ }
+ /**
+ * If using a profile credentials provider this parameter will set the
+ * profile name.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param profileCredentialsName the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder profileCredentialsName(String profileCredentialsName) {
+ doSetProperty("profileCredentialsName", profileCredentialsName);
+ return this;
+ }
+ /**
+ * Amazon AWS Secret Key.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param secretKey the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder secretKey(String secretKey) {
+ doSetProperty("secretKey", secretKey);
+ return this;
+ }
+ /**
+ * Amazon AWS Session Token used when the user needs to assume an IAM
+ * role.
+ *
+ * The option is a: <code>java.lang.String</code> type.
+ *
+ * Group: security
+ *
+ * @param sessionToken the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder sessionToken(String sessionToken) {
+ doSetProperty("sessionToken", sessionToken);
+ 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: security
+ *
+ * @param trustAllCertificates the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder 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: security
+ *
+ * @param trustAllCertificates the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder trustAllCertificates(String trustAllCertificates) {
+ doSetProperty("trustAllCertificates", trustAllCertificates);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to load credentials
+ * through a default credentials provider or to expect static
+ * credentials to be passed in.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useDefaultCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder useDefaultCredentialsProvider(boolean useDefaultCredentialsProvider) {
+ doSetProperty("useDefaultCredentialsProvider", useDefaultCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to load credentials
+ * through a default credentials provider or to expect static
+ * credentials to be passed in.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useDefaultCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder useDefaultCredentialsProvider(String useDefaultCredentialsProvider) {
+ doSetProperty("useDefaultCredentialsProvider", useDefaultCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to load credentials
+ * through a profile credentials provider.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useProfileCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder useProfileCredentialsProvider(boolean useProfileCredentialsProvider) {
+ doSetProperty("useProfileCredentialsProvider", useProfileCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to load credentials
+ * through a profile credentials provider.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useProfileCredentialsProvider the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder useProfileCredentialsProvider(String useProfileCredentialsProvider) {
+ doSetProperty("useProfileCredentialsProvider", useProfileCredentialsProvider);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to use Session
+ * Credentials. This is useful in a situation in which the user needs to
+ * assume an IAM role for doing operations in Eventbridge.
+ *
+ * The option is a: <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useSessionCredentials the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder useSessionCredentials(boolean useSessionCredentials) {
+ doSetProperty("useSessionCredentials", useSessionCredentials);
+ return this;
+ }
+ /**
+ * Set whether the Eventbridge client should expect to use Session
+ * Credentials. This is useful in a situation in which the user needs to
+ * assume an IAM role for doing operations in Eventbridge.
+ *
+ * The option will be converted to a <code>boolean</code> type.
+ *
+ * Default: false
+ * Group: security
+ *
+ * @param useSessionCredentials the value to set
+ * @return the dsl builder
+ */
+ default EventbridgeEndpointProducerBuilder useSessionCredentials(String useSessionCredentials) {
+ doSetProperty("useSessionCredentials", useSessionCredentials);
+ return this;
+ }
+ }
+
+ /**
+ * Advanced builder for endpoint producers for the AWS Eventbridge component.
+ */
+ public interface AdvancedEventbridgeEndpointProducerBuilder extends EndpointProducerBuilder {
+ default EventbridgeEndpointProducerBuilder basic() {
+ return (EventbridgeEndpointProducerBuilder) 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 (advanced)
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointProducerBuilder 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 (advanced)
+ *
+ * @param lazyStartProducer the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointProducerBuilder lazyStartProducer(String lazyStartProducer) {
+ doSetProperty("lazyStartProducer", lazyStartProducer);
+ return this;
+ }
+ /**
+ * To use an existing configured AWS Eventbridge client.
+ *
+ * The option is a:
+ * <code>software.amazon.awssdk.services.eventbridge.EventBridgeClient</code> type.
+ *
+ * Group: advanced
+ *
+ * @param eventbridgeClient the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointProducerBuilder eventbridgeClient(software.amazon.awssdk.services.eventbridge.EventBridgeClient eventbridgeClient) {
+ doSetProperty("eventbridgeClient", eventbridgeClient);
+ return this;
+ }
+ /**
+ * To use an existing configured AWS Eventbridge client.
+ *
+ * The option will be converted to a
+ * <code>software.amazon.awssdk.services.eventbridge.EventBridgeClient</code> type.
+ *
+ * Group: advanced
+ *
+ * @param eventbridgeClient the value to set
+ * @return the dsl builder
+ */
+ default AdvancedEventbridgeEndpointProducerBuilder eventbridgeClient(String eventbridgeClient) {
+ doSetProperty("eventbridgeClient", eventbridgeClient);
+ return this;
+ }
+ }
+
/**
* Builder for endpoint for the AWS Eventbridge component.
*/
public interface EventbridgeEndpointBuilder
extends
- EndpointProducerBuilder {
+ EventbridgeEndpointConsumerBuilder,
+ EventbridgeEndpointProducerBuilder {
default AdvancedEventbridgeEndpointBuilder advanced() {
return (AdvancedEventbridgeEndpointBuilder) this;
}
@@ -52,7 +1854,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: <code>java.lang.String</code> type.
*
- * Group: producer
+ * Group: common
*
* @param eventPatternFile the value to set
* @return the dsl builder
@@ -69,7 +1871,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* Required: true
* Default: putRule
- * Group: producer
+ * Group: common
*
* @param operation the value to set
* @return the dsl builder
@@ -86,7 +1888,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* Required: true
* Default: putRule
- * Group: producer
+ * Group: common
*
* @param operation the value to set
* @return the dsl builder
@@ -102,7 +1904,7 @@ public interface EventbridgeEndpointBuilderFactory {
* The option is a: <code>boolean</code> type.
*
* Default: false
- * Group: producer
+ * Group: common
*
* @param overrideEndpoint the value to set
* @return the dsl builder
@@ -118,7 +1920,7 @@ public interface EventbridgeEndpointBuilderFactory {
* The option will be converted to a <code>boolean</code> type.
*
* Default: false
- * Group: producer
+ * Group: common
*
* @param overrideEndpoint the value to set
* @return the dsl builder
@@ -133,7 +1935,7 @@ public interface EventbridgeEndpointBuilderFactory {
* The option is a: <code>boolean</code> type.
*
* Default: false
- * Group: producer
+ * Group: common
*
* @param pojoRequest the value to set
* @return the dsl builder
@@ -148,7 +1950,7 @@ public interface EventbridgeEndpointBuilderFactory {
* The option will be converted to a <code>boolean</code> type.
*
* Default: false
- * Group: producer
+ * Group: common
*
* @param pojoRequest the value to set
* @return the dsl builder
@@ -165,7 +1967,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: <code>java.lang.String</code> type.
*
- * Group: producer
+ * Group: common
*
* @param region the value to set
* @return the dsl builder
@@ -180,7 +1982,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: <code>java.lang.String</code> type.
*
- * Group: producer
+ * Group: common
*
* @param uriEndpointOverride the value to set
* @return the dsl builder
@@ -461,57 +2263,12 @@ public interface EventbridgeEndpointBuilderFactory {
*/
public interface AdvancedEventbridgeEndpointBuilder
extends
- EndpointProducerBuilder {
+ AdvancedEventbridgeEndpointConsumerBuilder,
+ AdvancedEventbridgeEndpointProducerBuilder {
default EventbridgeEndpointBuilder basic() {
return (EventbridgeEndpointBuilder) 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 (advanced)
- *
- * @param lazyStartProducer the value to set
- * @return the dsl builder
- */
- default AdvancedEventbridgeEndpointBuilder 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 (advanced)
- *
- * @param lazyStartProducer the value to set
- * @return the dsl builder
- */
- default AdvancedEventbridgeEndpointBuilder lazyStartProducer(String lazyStartProducer) {
- doSetProperty("lazyStartProducer", lazyStartProducer);
- return this;
- }
/**
* To use an existing configured AWS Eventbridge client.
*
@@ -547,7 +2304,8 @@ public interface EventbridgeEndpointBuilderFactory {
public interface EventbridgeBuilders {
/**
* AWS Eventbridge (camel-aws2-eventbridge)
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via
+ * SQS-backed polling.
*
* Category: cloud,management
* Since: 3.6
@@ -560,7 +2318,8 @@ public interface EventbridgeEndpointBuilderFactory {
}
/**
* AWS Eventbridge (camel-aws2-eventbridge)
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via
+ * SQS-backed polling.
*
* Category: cloud,management
* Since: 3.6
@@ -579,7 +2338,8 @@ public interface EventbridgeEndpointBuilderFactory {
}
/**
* AWS Eventbridge (camel-aws2-eventbridge)
- * Send events to AWS Eventbridge cluster instances.
+ * Manage AWS EventBridge cluster instances and consume events via
+ * SQS-backed polling.
*
* Category: cloud,management
* Since: 3.6
@@ -615,7 +2375,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code String} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeOperation}.
*/
@@ -627,7 +2387,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code String} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeRuleName}.
*/
@@ -639,7 +2399,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code String} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeRuleNamePrefix}.
*/
@@ -651,7 +2411,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code String} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeEventPattern}.
*/
@@ -663,7 +2423,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code Collection<Target>} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeTargets}.
*/
@@ -675,7 +2435,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code Collection<String>} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeTargetsIds}.
*/
@@ -687,7 +2447,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code String} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeTargetArn}.
*/
@@ -700,7 +2460,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code String} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeResourcesArn}.
*/
@@ -712,7 +2472,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code String} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeSource}.
*/
@@ -724,7 +2484,7 @@ public interface EventbridgeEndpointBuilderFactory {
*
* The option is a: {@code String} type.
*
- * Group: producer
+ * Group: common
*
* @return the name of the header {@code AwsEventbridgeDetailType}.
*/
@@ -792,6 +2552,30 @@ public interface EventbridgeEndpointBuilderFactory {
public String awsEventbridgeFailedEntryCount() {
return "CamelAwsEventbridgeFailedEntryCount";
}
+ /**
+ * The SQS message ID.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: consumer
+ *
+ * @return the name of the header {@code AwsEventbridgeMessageId}.
+ */
+ public String awsEventbridgeMessageId() {
+ return "CamelAwsEventbridgeMessageId";
+ }
+ /**
+ * The SQS receipt handle for message deletion.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: consumer
+ *
+ * @return the name of the header {@code AwsEventbridgeReceiptHandle}.
+ */
+ public String awsEventbridgeReceiptHandle() {
+ return "CamelAwsEventbridgeReceiptHandle";
+ }
}
static EventbridgeEndpointBuilder endpointBuilder(String componentName, String path) {
class EventbridgeEndpointBuilderImpl extends AbstractEndpointBuilder implements EventbridgeEndpointBuilder, AdvancedEventbridgeEndpointBuilder {