From ea45dc8cf1a52957a56a85fa0509df7737214166 Mon Sep 17 00:00:00 2001 From: gitea_admin Date: Mon, 12 Oct 2026 02:31:54 +0000 Subject: [PATCH] Add kamelet definition: aws-kinesis-sink --- kamelet.json | 351 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 351 insertions(+) create mode 100644 kamelet.json diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..c596468 --- /dev/null +++ b/kamelet.json @@ -0,0 +1,351 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "aws-kinesis-sink", + "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,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMzA4LjIzNDAxIj48dGl0bGU+YXdzLWtpbmVzaXM8L3RpdGxlPjxwYXRoIGQ9Ik0wLDE3Mi4wODdsMTI3Ljc1NCw1OC44MSwxMjcuNzUyLTU4LjgxLTEyNy43NTItNS4yOTNaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjZmNiZjkyIi8+PHBhdGggZD0iTTEyOC4xNDcsMCwuMDU5LDYzLjg4MXY5MC4xMzZIMTUzLjY0OFYxMi43NTFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTS4wNTksMjE3LjU1OWwxMjguMTYyLDkwLjY3NUwyNTYsMjE3LjU1OSwxMjcuOTQ1LDE5OC45MjZaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjZmNiZjkyIi8+PHBhdGggZD0iTTEyOC4xNDYsMTU0LjAxN2g2Ny41NzdWNTcuODM2TDE3NS45OSw0OS45NDMsMTI4LjE0Niw2My44OThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTTE3NS45OSwxNTQuMDE3aDUyLjIzM1Y5MS42MzJsLTE0Ljk0LTQuNDgxLTM3LjI5Myw2LjMzWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik0yMTMuMjgyLDgyLjI2djcxLjc1N2g0Mi4yMjRMMjU2LDgxLjk0MWwtMTIuODI2LTUuMTI0WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iIzlkNTAyNSIvPjxwYXRoIGQ9Ik0xMjguMTQ3LDBWMTU0LjAxN2gyNS41VjEyLjc1MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMTk1LjcyNCw1Ny44MzZsLTE5LjczMy03Ljg5NFYxNTQuMDE3aDE5LjczMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMjI4LjIyNCw5MS42MzJsLTE0Ljk0MS00LjQ4djY2Ljg2NWgxNC45NFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMjQzLjE3NCwxNTQuMDE3SDI1NlY4MS45NDFsLTEyLjgyNi01LjEyNFoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNMTI3Ljc1NCwxODQuODYzdjQ2LjAzM2wxMjcuNzUyLTMxLjg0NFYxNzIuMDg3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwLjAwMDA1KSIgZmlsbD0iI2Y2ODUzNCIvPjxwYXRoIGQ9Ik0xMjcuNzU0LDI2Mi43ODF2NDUuNDUzTDI1NiwyNDQuMTE0VjIxNy41NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiNmNjg1MzQiLz48cGF0aCBkPSJNLjA1OSwyNDQuMzlsMTI3LjY5NSw2My44NDRWMjYyLjQ0OEwuMDU4LDIxNy41NThaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDAuMDAwMDUpIiBmaWxsPSIjOWQ1MDI1Ii8+PHBhdGggZD0iTTAsMTk5LjA1MWwxMjcuNzU0LDMxLjg0NVYxODQuODYyTDAsMTcyLjA4NloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMC4wMDAwNSkiIGZpbGw9IiM5ZDUwMjUiLz48L3N2Zz4=", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "AWS Kinesis", + "camel.apache.org/kamelet.namespace": "AWS" + }, + "labels": { + "camel.apache.org/kamelet.type": "sink", + "camel.apache.org/kamelet.verified": "true" + } + }, + "spec": { + "definition": { + "title": "AWS Kinesis Sink", + "description": "Send data to AWS Kinesis.", + "required": [ + "stream", + "region" + ], + "type": "object", + "properties": { + "stream": { + "title": "Stream Name", + "description": "The Kinesis stream that you want to access. The Kinesis stream that you specify must already exist.", + "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" + ] + }, + "useDefaultCredentialsProvider": { + "title": "Default Credentials Provider", + "description": "If true, the Kinesis 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 Kinesis client should expect to load credentials through a profile credentials provider.", + "type": "boolean", + "default": false + }, + "useSessionCredentials": { + "title": "Session Credentials", + "description": "Set whether the Kinesis 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 Kinesis.", + "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 + } + } + }, + "types": { + "in": { + "mediaType": "application/octet-stream" + } + }, + "dependencies": [ + "camel:core", + "camel:aws2-kinesis", + "camel:kamelet" + ], + "template": { + "from": { + "uri": "kamelet:source", + "steps": [ + { + "choice": { + "when": [ + { + "simple": "${header[partition]}", + "steps": [ + { + "setHeader": { + "name": "CamelAwsKinesisPartitionKey", + "simple": "${header[partition]}" + } + } + ] + }, + { + "simple": "${header[ce-partition]}", + "steps": [ + { + "setHeader": { + "name": "CamelAwsKinesisPartitionKey", + "simple": "${header[ce-partition]}" + } + } + ] + } + ], + "otherwise": { + "steps": [ + { + "setHeader": { + "name": "CamelAwsKinesisPartitionKey", + "simple": "${exchangeId}" + } + } + ] + } + } + }, + { + "choice": { + "when": [ + { + "simple": "${header[sequence-number]}", + "steps": [ + { + "setHeader": { + "name": "CamelAwsKinesisSequenceNumber", + "simple": "${header[sequence-number]}" + } + } + ] + }, + { + "simple": "${header[ce-sequencenumber]}", + "steps": [ + { + "setHeader": { + "name": "CamelAwsKinesisSequenceNumber", + "simple": "${header[ce-sequencenumber]}" + } + } + ] + } + ] + } + }, + { + "to": { + "uri": "aws2-kinesis:{{stream}}", + "parameters": { + "secretKey": "{{?secretKey}}", + "accessKey": "{{?accessKey}}", + "region": "{{region}}", + "useDefaultCredentialsProvider": "{{useDefaultCredentialsProvider}}", + "useProfileCredentialsProvider": "{{useProfileCredentialsProvider}}", + "useSessionCredentials": "{{useSessionCredentials}}", + "uriEndpointOverride": "{{?uriEndpointOverride}}", + "profileCredentialsName": "{{?profileCredentialsName}}", + "sessionToken": "{{?sessionToken}}", + "overrideEndpoint": "{{overrideEndpoint}}" + } + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "AWS Kinesis Sink", + "description": "Send data to AWS Kinesis.", + "required": [ + "stream", + "region" + ], + "properties": { + "stream": { + "type": "string", + "title": "Stream Name", + "description": "The Kinesis stream that you want to access. The Kinesis stream that you specify must already exist." + }, + "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" + ] + }, + "useDefaultCredentialsProvider": { + "type": "boolean", + "title": "Default Credentials Provider", + "description": "If true, the Kinesis 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 Kinesis client should expect to load credentials through a profile credentials provider.", + "default": false + }, + "useSessionCredentials": { + "type": "boolean", + "title": "Session Credentials", + "description": "Set whether the Kinesis 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 Kinesis.", + "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 + } + } + } +} \ No newline at end of file