{ "apiVersion": "camel.apache.org/v1", "kind": "Kamelet", "metadata": { "name": "aws-redshift-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,PHN2ZyBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxNjE1IDE3ODMuNyIgdmlld0JveD0iMCAwIDE2MTUgMTc4My43IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Im04MDcuNSAxMzYzLjggNjc4LjMgMTYxLjV2LTEyNzAuNWwtNjc4LjMgMTYxLjV6IiBmaWxsPSIjMjA1Yjk3Ii8+PHBhdGggZD0ibTE0ODUuOCAyNTQuOCAxMjkuMiA2NC42djExNDEuM2wtMTI5LjIgNjQuNnptLTY3OC4zIDExMDktNjc4LjMgMTYxLjV2LTEyNzAuNWw2NzguMyAxNjEuNXoiIGZpbGw9IiM1MTkzY2UiLz48cGF0aCBkPSJtMTI5LjIgMjU0LjgtMTI5LjIgNjQuNnYxMTQxLjNsMTI5LjIgNjQuNnoiIGZpbGw9IiMyMDViOTciLz48cGF0aCBkPSJtOTc5LjggMTc4My43IDI1OC40LTEyOS4ydi0xNTI1LjNsLTI1OC40LTEyOS4yLTc5IDg0N3oiIGZpbGw9IiM1MTkzY2UiLz48cGF0aCBkPSJtNjM1LjIgMTc4My43LTI1OC40LTEyOS4ydi0xNTI1LjNsMjU4LjQtMTI5LjIgNzkgODQ3eiIgZmlsbD0iIzIwNWI5NyIvPjxwYXRoIGQ9Im02MzUuMiAwaDM0OC4xdjE3ODAuMWgtMzQ4LjF6IiBmaWxsPSIjMmU3M2I3Ii8+PC9zdmc+", "camel.apache.org/provider": "Apache Software Foundation", "camel.apache.org/kamelet.group": "AWS Redshift", "camel.apache.org/kamelet.namespace": "AWS" }, "labels": { "camel.apache.org/kamelet.type": "source" } }, "spec": { "definition": { "title": "AWS Redshift Source", "description": "Query data from an AWS Redshift Database.", "required": [ "serverName", "username", "password", "query", "databaseName" ], "type": "object", "properties": { "serverName": { "title": "Server Name", "description": "The server name for the data source.", "type": "string", "example": "localhost" }, "serverPort": { "title": "Server Port", "description": "The server port for the data source.", "type": "string", "default": 5439 }, "username": { "title": "Username", "description": "The username to access a secured AWS Redshift Database.", "type": "string", "x-descriptors": [ "urn:camel:group:credentials" ] }, "password": { "title": "Password", "description": "The password to access a secured AWS Redshift Database.", "type": "string", "format": "password", "x-descriptors": [ "urn:camel:group:credentials" ] }, "query": { "title": "Query", "description": "The query to execute against the AWS Redshift Database.", "type": "string", "example": "INSERT INTO accounts (username,city) VALUES (:#username,:#city)" }, "databaseName": { "title": "Database Name", "description": "The name of the AWS Redshift Database.", "type": "string" }, "consumedQuery": { "title": "Consumed Query", "description": "A query to run on a tuple consumed.", "type": "string", "example": "DELETE FROM accounts where user_id = :#user_id" }, "delay": { "title": "Delay", "description": "The number of milliseconds before the next poll from the AWS Redshift database.", "type": "integer", "default": 500 } } }, "types": { "out": { "mediaType": "application/json" } }, "dependencies": [ "camel:jackson", "camel:kamelet", "camel:sql", "mvn:com.amazon.redshift:redshift-jdbc42:2.2.7", "mvn:org.apache.commons:commons-dbcp2:2.14.0" ], "template": { "beans": [ { "name": "local-sql-redshift-source", "type": "#class:org.apache.camel.component.sql.SqlComponent", "properties": { "autowiredEnabled": "false" } }, { "name": "dsBean", "type": "#class:org.apache.commons.dbcp2.BasicDataSource", "properties": { "username": "{{username}}", "password": "{{password}}", "url": "jdbc:redshift://{{serverName}}:{{serverPort}}/{{databaseName}}", "driverClassName": "com.amazon.redshift.jdbc.Driver" } } ], "from": { "uri": "{{local-sql-redshift-source}}:{{query}}", "parameters": { "dataSource": "#bean:{{dsBean}}", "onConsume": "{{?consumedQuery}}", "delay": "{{delay}}" }, "steps": [ { "marshal": { "json": { "library": "Jackson" } } }, { "to": "kamelet:sink" } ] } } }, "propertiesSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "title": "AWS Redshift Source", "description": "Query data from an AWS Redshift Database.", "required": [ "serverName", "username", "password", "query", "databaseName" ], "properties": { "serverName": { "type": "string", "title": "Server Name", "description": "The server name for the data source." }, "serverPort": { "type": "string", "title": "Server Port", "description": "The server port for the data source.", "default": 5439 }, "username": { "type": "string", "title": "Username", "description": "The username to access a secured AWS Redshift Database." }, "password": { "type": "string", "title": "Password", "description": "The password to access a secured AWS Redshift Database.", "format": "password" }, "query": { "type": "string", "title": "Query", "description": "The query to execute against the AWS Redshift Database." }, "databaseName": { "type": "string", "title": "Database Name", "description": "The name of the AWS Redshift Database." }, "consumedQuery": { "type": "string", "title": "Consumed Query", "description": "A query to run on a tuple consumed." }, "delay": { "type": "integer", "title": "Delay", "description": "The number of milliseconds before the next poll from the AWS Redshift database.", "default": 500 } } } }