Add kamelet definition: aws-ddb-streams-source

This commit is contained in:
gitea_admin 2026-10-12 02:31:48 +00:00
parent 3262d6f8af
commit a0ad05f28b

364
kamelet.json Normal file
View File

@ -0,0 +1,364 @@
{
"apiVersion": "camel.apache.org/v1",
"kind": "Kamelet",
"metadata": {
"name": "aws-ddb-streams-source",
"annotations": {
"camel.apache.org/kamelet.support.level": "Stable",
"camel.apache.org/catalog.version": "4.22.1",
"camel.apache.org/kamelet.icon": "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjEwMCIgd2lkdGg9IjEwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjMkQ3MkI4IiBkPSJNNzQuMTc0IDMxLjgwN2w3LjQzNyA1LjM2N3YtNy42MDJsLTcuNDgtOC43NjV2MTAuOTU3bC4wNDMuMDE1eiIvPjxwYXRoIGZpbGw9IiM1Mjk0Q0YiIGQ9Ik01OS44MzggODUuNjY2bDE0LjI5My03LjE0NlYyMC43OTFsLTE0LjMwMy03LjEyNHoiLz48cGF0aCBmaWxsPSIjMjA1Qjk4IiBkPSJNMzkuNDk2IDg1LjY2NkwyNS4yMDMgNzguNTJWMjAuNzkxbDE0LjMwMy03LjEyNHoiLz48cGF0aCBmaWxsPSIjMkQ3MkI4IiBkPSJNMzkuNTA2IDEzLjY2N2gyMC4zMjF2NzEuOTk5SDM5LjUwNnpNNzQuMTMxIDY3LjU2NFY3OC41Mmw3LjQ4LTguNzY0di03LjYwMmwtNy40MzcgNS4zOTd6TTc0LjEzMSA2Mi45MzZsLjA0My0uMDEgNy40MzctNHYtNy42NDlsLTcuNDguNjg4ek03NC4xNzQgMzYuNDI5bC0uMDQzLS4wMVY0Ny4zNWw3LjQ4LjY5OXYtNy42NDV6Ii8+PHBhdGggZmlsbD0iIzFBNDc2RiIgZD0iTTgxLjYxMSA0OC4wNDlsLTcuNDgtLjY5OS0xNC4zMDMtLjU3MkgzOS41MDZsLTE0LjMwMy41NzJWMzYuNDQzbC0uMDE1LjAwOC4wMTUtLjAzMiAxNC4zMDMtMy4zMTRINTkuODI4bDE0LjMwMyAzLjMxNCA1LjI1OCAyLjc5NXYtMS43OTdsMi4yMjItLjI0My03LjQ4LTUuNDEtMTQuMzAzLTQuNDMySDM5LjUwNmwtMTQuMzAzIDQuNDMyVjIwLjgwN2wtNy40OCA4Ljc2M3Y3LjY1M2wuMDU4LS4wNDIgMi4xNjQuMjM2djEuODM0bC0yLjIyMiAxLjE4OXY3LjYxNWwuMDU4LS4wMDYgMi4xNjQuMDMydjMuMTk2bC0xLjg2Ny4wMjgtLjM1NS0uMDM0djcuNjE4bDIuMjIyIDEuMTk1djEuODU1bC0yLjEyOS4yMzUtLjA5My0uMDd2Ny42NTJsNy40OCA4Ljc2NFY2Ny41NjRsMTQuMzAzIDQuNDMySDU5LjgyOGwxNC4zNDUtNC40NDUgNy40MzgtNS4zNjctMi4yMjItLjI0NXYtMS44MThsLTUuMjE2IDIuODA1LTE0LjM0NSAzLjI5NXYuMDA0SDM5LjUwNnYtLjAwNGwtMTQuMzQ4LTMuMjk1LS4wMjUtLjA1MS4wNy4wMzdWNTEuOTY1bDE0LjMwMy41N3YuMDE0SDU5LjgyOHYtLjAxNGwxNC4zMDMtLjU3IDcuNDgtLjY1Ni0yLjIyMi0uMDMydi0zLjE5NnoiLz48L3N2Zz4=",
"camel.apache.org/provider": "Apache Software Foundation",
"camel.apache.org/kamelet.group": "AWS DynamoDB Streams",
"camel.apache.org/kamelet.namespace": "AWS"
},
"labels": {
"camel.apache.org/kamelet.type": "source"
}
},
"spec": {
"definition": {
"title": "AWS DynamoDB Streams Source",
"description": "Receive events from Amazon DynamoDB Streams.",
"required": [
"table",
"region"
],
"type": "object",
"properties": {
"table": {
"title": "Table",
"description": "The name of the DynamoDB table.",
"type": "string"
},
"accessKey": {
"title": "Access Key",
"description": "The access key obtained from AWS.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"secretKey": {
"title": "Secret Key",
"description": "The secret key obtained from AWS.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"region": {
"title": "AWS Region",
"description": "The AWS region to access.",
"type": "string",
"enum": [
"ap-south-1",
"eu-south-1",
"us-gov-east-1",
"me-central-1",
"ca-central-1",
"eu-central-1",
"us-iso-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-northeast-2",
"ap-northeast-1",
"me-south-1",
"sa-east-1",
"ap-east-1",
"cn-north-1",
"us-gov-west-1",
"ap-southeast-1",
"ap-southeast-2",
"us-iso-east-1",
"ap-southeast-3",
"us-east-1",
"us-east-2",
"cn-northwest-1",
"us-isob-east-1",
"aws-global",
"aws-cn-global",
"aws-us-gov-global",
"aws-iso-global",
"aws-iso-b-global"
]
},
"streamIteratorType": {
"title": "Stream Iterator Type",
"description": "Defines where in the DynamoDB stream to start getting records. There are two enums and the value can be one of FROM_LATEST and FROM_START. Note that using FROM_START can cause a significant delay before the stream has caught up to real-time.",
"type": "string",
"default": "FROM_LATEST"
},
"useDefaultCredentialsProvider": {
"title": "Default Credentials Provider",
"description": "If `true`, the DynamoDB client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
"type": "boolean",
"default": false
},
"useProfileCredentialsProvider": {
"title": "Profile Credentials Provider",
"description": "Set whether the DynamoDB client should expect to load credentials through a profile credentials provider.",
"type": "boolean",
"default": false
},
"useSessionCredentials": {
"title": "Session Credentials",
"description": "Set whether the DynamoDB client should expect to use Session Credentials. This is useful in situation in which the user needs to assume a IAM role for doing operations in DynamoDB.",
"type": "boolean",
"default": false
},
"profileCredentialsName": {
"title": "Profile Credentials Name",
"description": "If using a profile credentials provider this parameter sets the profile name.",
"type": "string"
},
"sessionToken": {
"title": "Session Token",
"description": "Amazon AWS Session Token used when the user needs to assume a IAM role.",
"type": "string",
"format": "password",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"uriEndpointOverride": {
"title": "Overwrite Endpoint URI",
"description": "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option.",
"type": "string"
},
"overrideEndpoint": {
"title": "Endpoint Overwrite",
"description": "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
"type": "boolean",
"default": false
},
"delay": {
"title": "Delay",
"description": "The number of milliseconds before the next poll from the database.",
"type": "integer",
"default": 500
}
}
},
"dataTypes": {
"out": {
"default": "json",
"headers": {
"CamelAwsDdbStreamEventSource": {
"title": "The DDB Stream Event Source",
"description": "The Amazon Web Services service from which the stream record originated. For DynamoDB Streams, this is aws:dynamodb.",
"type": "string"
},
"CamelAwsDdbStreamEventId": {
"title": "The DDB Stream Event Id",
"description": "A globally unique identifier for the event that was recorded in this stream record.",
"type": "string"
}
},
"types": {
"json": {
"format": "application-json",
"description": "Default Json representation of a DDB Stream Event.",
"mediaType": "application/json"
},
"cloudevents": {
"format": "aws2-ddbstream:application-cloudevents",
"description": "Data type transformer converts AWS Dynamo DB Streams get records response to CloudEvent v1_0 data format. The data type sets Camel specific CloudEvent headers with values extracted from AWS Dynamo DB Streams get records.",
"headers": {
"CamelCloudEventID": {
"title": "CloudEvent ID",
"description": "The Camel exchange id set as event id.",
"type": "string"
},
"CamelCloudEventType": {
"title": "CloudEvent Type",
"description": "The event type.",
"default": "org.apache.camel.event.aws.ddbstream.getRecords",
"type": "string"
},
"CamelCloudEventSource": {
"title": "CloudEvent Source",
"description": "The event source. By default, the DDB Stream Event source receipt handle with prefix \"aws.ddbstream.\".",
"type": "string"
},
"CamelCloudEventSubject": {
"title": "CloudEvent Subject",
"description": "The event subject. The DDB Stream Event Id.",
"type": "string"
},
"CamelCloudEventTime": {
"title": "CloudEvent Time",
"description": "The exchange creation timestamp as event time.",
"type": "string"
}
}
}
}
}
},
"dependencies": [
"camel:gson",
"camel:aws2-ddb",
"camel:kamelet"
],
"template": {
"from": {
"uri": "aws2-ddbstream:{{table}}",
"parameters": {
"secretKey": "{{?secretKey}}",
"accessKey": "{{?accessKey}}",
"region": "{{region}}",
"streamIteratorType": "{{streamIteratorType}}",
"useDefaultCredentialsProvider": "{{useDefaultCredentialsProvider}}",
"useProfileCredentialsProvider": "{{useProfileCredentialsProvider}}",
"useSessionCredentials": "{{useSessionCredentials}}",
"uriEndpointOverride": "{{?uriEndpointOverride}}",
"profileCredentialsName": "{{?profileCredentialsName}}",
"sessionToken": "{{?sessionToken}}",
"overrideEndpoint": "{{overrideEndpoint}}",
"delay": "{{delay}}"
},
"steps": [
{
"transformDataType": {
"toType": "aws2-ddb:application-x-struct"
}
},
{
"to": "kamelet:sink"
}
]
}
}
},
"propertiesSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "AWS DynamoDB Streams Source",
"description": "Receive events from Amazon DynamoDB Streams.",
"required": [
"table",
"region"
],
"properties": {
"table": {
"type": "string",
"title": "Table",
"description": "The name of the DynamoDB table."
},
"accessKey": {
"type": "string",
"title": "Access Key",
"description": "The access key obtained from AWS.",
"format": "password"
},
"secretKey": {
"type": "string",
"title": "Secret Key",
"description": "The secret key obtained from AWS.",
"format": "password"
},
"region": {
"type": "string",
"title": "AWS Region",
"description": "The AWS region to access.",
"enum": [
"ap-south-1",
"eu-south-1",
"us-gov-east-1",
"me-central-1",
"ca-central-1",
"eu-central-1",
"us-iso-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-northeast-2",
"ap-northeast-1",
"me-south-1",
"sa-east-1",
"ap-east-1",
"cn-north-1",
"us-gov-west-1",
"ap-southeast-1",
"ap-southeast-2",
"us-iso-east-1",
"ap-southeast-3",
"us-east-1",
"us-east-2",
"cn-northwest-1",
"us-isob-east-1",
"aws-global",
"aws-cn-global",
"aws-us-gov-global",
"aws-iso-global",
"aws-iso-b-global"
]
},
"streamIteratorType": {
"type": "string",
"title": "Stream Iterator Type",
"description": "Defines where in the DynamoDB stream to start getting records. There are two enums and the value can be one of FROM_LATEST and FROM_START. Note that using FROM_START can cause a significant delay before the stream has caught up to real-time.",
"default": "FROM_LATEST"
},
"useDefaultCredentialsProvider": {
"type": "boolean",
"title": "Default Credentials Provider",
"description": "If `true`, the DynamoDB client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).",
"default": false
},
"useProfileCredentialsProvider": {
"type": "boolean",
"title": "Profile Credentials Provider",
"description": "Set whether the DynamoDB client should expect to load credentials through a profile credentials provider.",
"default": false
},
"useSessionCredentials": {
"type": "boolean",
"title": "Session Credentials",
"description": "Set whether the DynamoDB client should expect to use Session Credentials. This is useful in situation in which the user needs to assume a IAM role for doing operations in DynamoDB.",
"default": false
},
"profileCredentialsName": {
"type": "string",
"title": "Profile Credentials Name",
"description": "If using a profile credentials provider this parameter sets the profile name."
},
"sessionToken": {
"type": "string",
"title": "Session Token",
"description": "Amazon AWS Session Token used when the user needs to assume a IAM role.",
"format": "password"
},
"uriEndpointOverride": {
"type": "string",
"title": "Overwrite Endpoint URI",
"description": "The overriding endpoint URI. To use this option, you must also select the `overrideEndpoint` option."
},
"overrideEndpoint": {
"type": "boolean",
"title": "Endpoint Overwrite",
"description": "Select this option to override the endpoint URI. To use this option, you must also provide a URI for the `uriEndpointOverride` option.",
"default": false
},
"delay": {
"type": "integer",
"title": "Delay",
"description": "The number of milliseconds before the next poll from the database.",
"default": 500
}
}
}
}