Add kamelet definition: azure-cosmosdb-sink
This commit is contained in:
parent
14ef5e72f4
commit
1f8e591521
197
kamelet.json
Normal file
197
kamelet.json
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
{
|
||||||
|
"apiVersion": "camel.apache.org/v1",
|
||||||
|
"kind": "Kamelet",
|
||||||
|
"metadata": {
|
||||||
|
"name": "azure-cosmosdb-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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxOCAxOCI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJhIiBjeD0iLTEwNS4wMDYiIGN5PSItMTAuNDA5IiByPSI1Ljk1NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLjAzNiAwIDAgMS4wMjcgMTE3LjczOSAxOS42NDQpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIuMTgzIiBzdG9wLWNvbG9yPSIjNWVhMGVmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDA3OGQ0Ii8+PC9yYWRpYWxHcmFkaWVudD48Y2xpcFBhdGggaWQ9ImIiPjxwYXRoIGQ9Ik0xNC45NjkgNy41M2E2LjEzNyA2LjEzNyAwIDExLTcuMzk1LTQuNTQzIDYuMTM3IDYuMTM3IDAgMDE3LjM5NSA0LjU0M3oiIGZpbGw9Im5vbmUiLz48L2NsaXBQYXRoPjwvZGVmcz48cGF0aCBkPSJNMi45NTQgNS4yNjZhLjE3NS4xNzUgMCAwMS0uMTc2LS4xNzZBMi4wMTIgMi4wMTIgMCAwMC43NjkgMy4wODFhLjE3Ni4xNzYgMCAwMS0uMTc2LS4xNzUuMTc2LjE3NiAwIDAxLjE3Ni0uMTc2QTIuMDEyIDIuMDEyIDAgMDAyLjc3OC43MmEuMTc1LjE3NSAwIDAxLjE3Ni0uMTc2LjE3NS4xNzUgMCAwMS4xNzYuMTc2IDIuMDEyIDIuMDEyIDAgMDAyLjAwOSAyLjAwOS4xNzUuMTc1IDAgMDEuMTc2LjE3Ni4xNzUuMTc1IDAgMDEtLjE3Ni4xNzZBMi4wMTEgMi4wMTEgMCAwMDMuMTMgNS4wOWEuMTc3LjE3NyAwIDAxLS4xNzYuMTc2ek0xNS42MTEgMTcuNDU2YS4xNDEuMTQxIDAgMDEtLjE0MS0uMTQxIDEuNjA5IDEuNjA5IDAgMDAtMS42MDctMS42MDcuMTQxLjE0MSAwIDAxLS4xNDEtLjE0LjE0MS4xNDEgMCAwMS4xNDEtLjE0MSAxLjYwOCAxLjYwOCAwIDAwMS42MDctMS42MDcuMTQxLjE0MSAwIDAxLjE0MS0uMTQxLjE0MS4xNDEgMCAwMS4xNDEuMTQxIDEuNjA4IDEuNjA4IDAgMDAxLjYwNyAxLjYwNy4xNDEuMTQxIDAgMTEwIC4yODIgMS42MDkgMS42MDkgMCAwMC0xLjYwNyAxLjYwNy4xNDEuMTQxIDAgMDEtLjE0MS4xNHoiIGZpbGw9IiM1MGU2ZmYiLz48cGF0aCBkPSJNMTQuOTY5IDcuNTNhNi4xMzcgNi4xMzcgMCAxMS03LjM5NS00LjU0MyA2LjEzNyA2LjEzNyAwIDAxNy4zOTUgNC41NDN6IiBmaWxsPSJ1cmwoI2EpIi8+PGcgY2xpcC1wYXRoPSJ1cmwoI2IpIiBmaWxsPSIjZjJmMmYyIj48cGF0aCBkPSJNNS43MDkgMTMuMTE1YTEuNjM4IDEuNjM4IDAgMTAuMDA1LTMuMjc1IDEuMzA3IDEuMzA3IDAgMDAuMDA3LS4xNEExLjY1MSAxLjY1MSAwIDAwNC4wNiA4LjA2NEgyLjgzMmE2LjI1MSA2LjI1MSAwIDAwMS41OTUgNS4wNTF6TTE1LjA0NSA3LjgxNWMwLS4wMTUgMC0uMDMtLjAwNy0uMDQ0YTUuOTc4IDUuOTc4IDAgMDAtMS40MDYtMi44OCAxLjgyNSAxLjgyNSAwIDAwLS4yODktLjA5IDEuODA2IDEuODA2IDAgMDAtMi4zIDEuNjYzIDIgMiAwIDAwLS4yLS4wMTMgMS43MzcgMS43MzcgMCAwMC0uNTgxIDMuMzc0IDEuNDUxIDEuNDUxIDAgMDAuNTQxLjFoMi4wM2ExMy40NTMgMTMuNDUzIDAgMDAyLjIxMi0yLjExeiIvPjwvZz48cGF0aCBkPSJNMTcuMTkxIDMuODMyYy0uNjI5LTEuMDQ3LTIuMS0xLjQ1NS00LjE1NS0xLjE0OWExNC42MDYgMTQuNjA2IDAgMDAtMi4wODIuNDUyIDYuNDU2IDYuNDU2IDAgMDExLjUyOC43NjdjLjI0MS0uMDUzLjQ4My0uMTE2LjcxNS0uMTUxYTcuNDkgNy40OSAwIDAxMS4xMDMtLjA4OSAyLjE4OCAyLjE4OCAwIDAxMS45NTkuNzI1Yy4zODMuNjM4LjA2IDEuNzI5LS44ODYgM2ExNi43MjMgMTYuNzIzIDAgMDEtNC43NDkgNC4wNTFBMTYuNzU4IDE2Ljc1OCAwIDAxNC44IDEzLjdjLTEuNTY0LjIzNC0yLjY4MiAwLTMuMDY1LS42MzZzLS4wNi0xLjczLjg4Ni0yLjk5NWMuMTE3LS4xNTcuMTQ2LS4yMzQuMjc5LS4zOTJhNi4yNTIgNi4yNTIgMCAwMS4wMjYtMS42MyAxMS41NTIgMTEuNTUyIDAgMDAtMS4xNyAxLjM3MkMuNTE3IDExLjA3Ni4xODEgMTIuNTY2LjgwOSAxMy42MTNhMy4xNjUgMy4xNjUgMCAwMDIuOSAxLjI0OSA4LjQzNCA4LjQzNCAwIDAwMS4yNTEtLjEgMTcuODU1IDE3Ljg1NSAwIDAwNi4yMTktMi40QTE3LjgwOCAxNy44MDggMCAwMDE2LjI0IDguMDNjMS4yNDMtMS42NjEgMS41NzktMy4xNS45NTEtNC4xOTh6IiBmaWxsPSIjNTBlNmZmIi8+PC9zdmc+",
|
||||||
|
"camel.apache.org/provider": "Apache Software Foundation",
|
||||||
|
"camel.apache.org/kamelet.group": "Azure CosmosDB",
|
||||||
|
"camel.apache.org/kamelet.namespace": "Azure"
|
||||||
|
},
|
||||||
|
"labels": {
|
||||||
|
"camel.apache.org/kamelet.type": "sink"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
"definition": {
|
||||||
|
"title": "Azure CosmosDB Sink",
|
||||||
|
"description": "Send Data to an Azure CosmosDB instance",
|
||||||
|
"required": [
|
||||||
|
"databaseName",
|
||||||
|
"containerName",
|
||||||
|
"databaseEndpoint"
|
||||||
|
],
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"databaseName": {
|
||||||
|
"title": "Database Name",
|
||||||
|
"description": "The Azure Cosmos database name.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"containerName": {
|
||||||
|
"title": "Container Name",
|
||||||
|
"description": "The Azure Cosmos container name.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"accountKey": {
|
||||||
|
"title": "Account Key",
|
||||||
|
"description": "The Azure Cosmos account Key.",
|
||||||
|
"type": "string",
|
||||||
|
"format": "password",
|
||||||
|
"x-descriptors": [
|
||||||
|
"urn:camel:group:credentials"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"databaseEndpoint": {
|
||||||
|
"title": "Database Endpoint",
|
||||||
|
"description": "Sets the Azure Cosmos database endpoint the component will connect to.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"itemPartitionKey": {
|
||||||
|
"title": "Item Partition Key",
|
||||||
|
"description": "Represents a partition key value in the Azure Cosmos DB database service. A partition key identifies the partition where the item is stored in.",
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"credentialType": {
|
||||||
|
"title": "Credential Type",
|
||||||
|
"description": "Determines the credential strategy to adopt.",
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"SHARED_ACCOUNT_KEY",
|
||||||
|
"AZURE_IDENTITY"
|
||||||
|
],
|
||||||
|
"default": "SHARED_ACCOUNT_KEY"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"types": {
|
||||||
|
"in": {
|
||||||
|
"mediaType": "application/json"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dependencies": [
|
||||||
|
"camel:azure-cosmosdb",
|
||||||
|
"camel:kamelet",
|
||||||
|
"camel:jackson",
|
||||||
|
"camel:core"
|
||||||
|
],
|
||||||
|
"template": {
|
||||||
|
"from": {
|
||||||
|
"uri": "kamelet:source",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"choice": {
|
||||||
|
"precondition": true,
|
||||||
|
"when": [
|
||||||
|
{
|
||||||
|
"simple": "${propertiesExist:!itemPartitionKey}",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"choice": {
|
||||||
|
"when": [
|
||||||
|
{
|
||||||
|
"simple": "${header[itemPartitionKey]}",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"setHeader": {
|
||||||
|
"name": "CamelAzureCosmosDbItemPartitionKey",
|
||||||
|
"simple": "${header[itemPartitionKey]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"simple": "${header[ce-itemPartitionKey]}",
|
||||||
|
"steps": [
|
||||||
|
{
|
||||||
|
"setHeader": {
|
||||||
|
"name": "CamelAzureCosmosDbItemPartitionKey",
|
||||||
|
"simple": "${header[ce-itemPartitionKey]}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"unmarshal": {
|
||||||
|
"json": {
|
||||||
|
"library": "Jackson"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"to": {
|
||||||
|
"uri": "azure-cosmosdb:{{databaseName}}/{{containerName}}",
|
||||||
|
"parameters": {
|
||||||
|
"accountKey": "{{?accountKey}}",
|
||||||
|
"databaseEndpoint": "{{databaseEndpoint}}",
|
||||||
|
"itemPartitionKey": "{{?itemPartitionKey}}",
|
||||||
|
"operation": "createItem",
|
||||||
|
"credentialType": "{{credentialType}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"propertiesSchema": {
|
||||||
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||||
|
"type": "object",
|
||||||
|
"title": "Azure CosmosDB Sink",
|
||||||
|
"description": "Send Data to an Azure CosmosDB instance",
|
||||||
|
"required": [
|
||||||
|
"databaseName",
|
||||||
|
"containerName",
|
||||||
|
"databaseEndpoint"
|
||||||
|
],
|
||||||
|
"properties": {
|
||||||
|
"databaseName": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "Database Name",
|
||||||
|
"description": "The Azure Cosmos database name."
|
||||||
|
},
|
||||||
|
"containerName": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "Container Name",
|
||||||
|
"description": "The Azure Cosmos container name."
|
||||||
|
},
|
||||||
|
"accountKey": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "Account Key",
|
||||||
|
"description": "The Azure Cosmos account Key.",
|
||||||
|
"format": "password"
|
||||||
|
},
|
||||||
|
"databaseEndpoint": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "Database Endpoint",
|
||||||
|
"description": "Sets the Azure Cosmos database endpoint the component will connect to."
|
||||||
|
},
|
||||||
|
"itemPartitionKey": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "Item Partition Key",
|
||||||
|
"description": "Represents a partition key value in the Azure Cosmos DB database service. A partition key identifies the partition where the item is stored in."
|
||||||
|
},
|
||||||
|
"credentialType": {
|
||||||
|
"type": "string",
|
||||||
|
"title": "Credential Type",
|
||||||
|
"description": "Determines the credential strategy to adopt.",
|
||||||
|
"enum": [
|
||||||
|
"SHARED_ACCOUNT_KEY",
|
||||||
|
"AZURE_IDENTITY"
|
||||||
|
],
|
||||||
|
"default": "SHARED_ACCOUNT_KEY"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user