azure-cosmosdb-source/kamelet.json

230 lines
11 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"apiVersion": "camel.apache.org/v1",
"kind": "Kamelet",
"metadata": {
"name": "azure-cosmosdb-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,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": "source"
}
},
"spec": {
"definition": {
"title": "Azure CosmosDB Source",
"description": "Consume Changes from a 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"
]
},
"leaseDatabaseName": {
"title": "Lease Database Name",
"description": "Sets the lease container which acts as a state storage and coordinates processing the change feed across multiple workers.",
"type": "string"
},
"leaseContainerName": {
"title": "Lease Container Name",
"description": "Sets the lease database where the `leaseContainerName` is stored.",
"type": "string"
},
"createLeaseDatabaseIfNotExists": {
"title": "Autocreate Lease Database",
"description": "Sets if the component should create Cosmos lease database for the consumer automatically in case it doesn’t exist in Cosmos account.",
"type": "boolean",
"default": false
},
"createLeaseContainerIfNotExists": {
"title": "Autocreate Lease Container",
"description": "Sets if the component should create Cosmos lease container for the consumer automatically in case it doesn’t exist in Cosmos database.",
"type": "boolean",
"default": false
},
"databaseEndpoint": {
"title": "Database Endpoint",
"description": "Sets the Azure Cosmos database endpoint the component will connect to.",
"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"
}
}
},
"dataTypes": {
"out": {
"default": "json",
"headers": null,
"types": {
"json": {
"format": "application-json",
"description": "Json mapping of Change Feed records",
"mediaType": "application/json"
},
"cloudevents": {
"format": "azure-cosmosdb:application-cloudevents",
"description": "Data type transformer converts Azure CosmosDB Change Feed processor response to CloudEvent v1_0 data format. The data type sets Camel specific CloudEvent headers with values extracted from Azure CosmosDB Change Feed processor response.",
"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.azure.cosmosdb.changes",
"type": "string"
},
"CamelCloudEventSource": {
"title": "CloudEvent Source",
"description": "The event source.",
"type": "string",
"default": "org.apache.camel.event.azure.cosmosdb.changefeed"
},
"CamelCloudEventSubject": {
"title": "CloudEvent Subject",
"description": "The event subject.",
"type": "string",
"default": "org.apache.camel.event.azure.cosmosdb.changefeed"
},
"CamelCloudEventTime": {
"title": "CloudEvent Time",
"description": "The exchange creation timestamp as event time.",
"type": "string"
}
}
}
}
}
},
"dependencies": [
"camel:azure-cosmosdb",
"camel:kamelet",
"camel:jackson"
],
"template": {
"from": {
"uri": "azure-cosmosdb:{{databaseName}}/{{containerName}}",
"parameters": {
"leaseDatabaseName": "{{?leaseDatabaseName}}",
"leaseContainerName": "{{?leaseContainerName}}",
"accountKey": "{{?accountKey}}",
"createLeaseDatabaseIfNotExists": "{{createLeaseDatabaseIfNotExists}}",
"createLeaseContainerIfNotExists": "{{createLeaseContainerIfNotExists}}",
"databaseEndpoint": "{{databaseEndpoint}}",
"credentialType": "{{credentialType}}"
},
"steps": [
{
"marshal": {
"json": {}
}
},
{
"to": "kamelet:sink"
}
]
}
}
},
"propertiesSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "Azure CosmosDB Source",
"description": "Consume Changes from a 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"
},
"leaseDatabaseName": {
"type": "string",
"title": "Lease Database Name",
"description": "Sets the lease container which acts as a state storage and coordinates processing the change feed across multiple workers."
},
"leaseContainerName": {
"type": "string",
"title": "Lease Container Name",
"description": "Sets the lease database where the `leaseContainerName` is stored."
},
"createLeaseDatabaseIfNotExists": {
"type": "boolean",
"title": "Autocreate Lease Database",
"description": "Sets if the component should create Cosmos lease database for the consumer automatically in case it doesn’t exist in Cosmos account.",
"default": false
},
"createLeaseContainerIfNotExists": {
"type": "boolean",
"title": "Autocreate Lease Container",
"description": "Sets if the component should create Cosmos lease container for the consumer automatically in case it doesn’t exist in Cosmos database.",
"default": false
},
"databaseEndpoint": {
"type": "string",
"title": "Database Endpoint",
"description": "Sets the Azure Cosmos database endpoint the component will connect to."
},
"credentialType": {
"type": "string",
"title": "Credential Type",
"description": "Determines the credential strategy to adopt.",
"enum": [
"SHARED_ACCOUNT_KEY",
"AZURE_IDENTITY"
],
"default": "SHARED_ACCOUNT_KEY"
}
}
}
}