google-storage-source/kamelet.json

198 lines
9.4 KiB
JSON

{
"apiVersion": "camel.apache.org/v1",
"kind": "Kamelet",
"metadata": {
"name": "google-storage-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,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBoZWlnaHQ9IjgwMCIgd2lkdGg9IjEyMDAiIHZpZXdCb3g9Ii0xOS4yMDAxNSAtMjguNDgzIDE2Ni40MDEzIDE3MC44OTgiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTcuMDM0KSI+PGxpbmVhckdyYWRpZW50IHkyPSIxMjAuNzg5IiB4Mj0iNjQiIHkxPSI3LjAzNCIgeDE9IjY0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgaWQ9ImEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzQzODdmZCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzQ2ODNlYSIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZD0iTTI3Ljc5IDExNS4yMTdMMS41NCA2OS43NDlhMTEuNDk5IDExLjQ5OSAwIDAxMC0xMS40OTlsMjYuMjUtNDUuNDY3YTExLjUgMTEuNSAwIDAxOS45Ni01Ljc1aDUyLjVhMTEuNSAxMS41IDAgMDE5Ljk1OSA1Ljc1bDI2LjI1IDQ1LjQ2N2ExMS40OTkgMTEuNDk5IDAgMDEwIDExLjVsLTI2LjI1IDQ1LjQ2NmExMS41IDExLjUgMCAwMS05Ljk1OSA1Ljc1aC01Mi41YTExLjQ5OSAxMS40OTkgMCAwMS05Ljk2LTUuNzV6IiBmaWxsPSJ1cmwoI2EpIi8+PC9nPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTcuMDM0KSI+PGRlZnM+PHBhdGggZD0iTTI3Ljc5MSAxMTUuMjE3TDEuNTQxIDY5Ljc0OWExMS40OTkgMTEuNDk5IDAgMDEwLTExLjQ5OWwyNi4yNS00NS40NjdhMTEuNDk5IDExLjQ5OSAwIDAxOS45NTktNS43NWg1Mi41YTExLjUgMTEuNSAwIDAxOS45NiA1Ljc1bDI2LjI1IDQ1LjQ2N2ExMS40OTkgMTEuNDk5IDAgMDEwIDExLjVsLTI2LjI1IDQ1LjQ2NmExMS40OTkgMTEuNDk5IDAgMDEtOS45NiA1Ljc1aC01Mi41YTExLjQ5OSAxMS40OTkgMCAwMS05Ljk1OS01Ljc1eiIgaWQ9ImIiLz48L2RlZnM+PGNsaXBQYXRoIGlkPSJjIj48dXNlIGhlaWdodD0iMTAwJSIgd2lkdGg9IjEwMCUiIHhsaW5rOmhyZWY9IiNiIiBvdmVyZmxvdz0idmlzaWJsZSIvPjwvY2xpcFBhdGg+PHBhdGggY2xpcC1wYXRoPSJ1cmwoI2MpIiBvcGFjaXR5PSIuMDciIGQ9Ik00OS4zMTMgNTMuODc1bC03LjAxIDYuOTkgNS45NTcgNS45NTgtNS44OTggMTAuNDc2IDQ0LjYzNSA0NC42MzYgMTAuODE2LjAwMkwxMTguOTM2IDg0IDg1LjQ4OSA1MC41NXoiLz48L2c+PHBhdGggZD0iTTg0LjcgNDMuMjM2SDQzLjI2NGMtLjY2NyAwLTEuMjEyLjU0Ni0xLjIxMiAxLjIxNHY4LjU2NmMwIC42NjYuNTQ2IDEuMjEyIDEuMjEyIDEuMjEySDg0LjdjLjY2NyAwIDEuMjEzLS41NDYgMS4yMTMtMS4yMTJ2LTguNTY4YzAtLjY2Ni0uNTQ1LTEuMjEzLTEuMjEyLTEuMjEzbS02LjQxNiA3Ljk3NmEyLjQ4NCAyLjQ4NCAwIDAxLTIuNDc3LTIuNDggMi40NzUgMi40NzUgMCAwMTIuNDc3LTIuNDc3YzEuMzcgMCAyLjQ4IDEuMTAzIDIuNDggMi40NzdhMi40OCAyLjQ4IDAgMDEtMi40OCAyLjQ4bTYuNDE1IDguNDkxbC00MS40MzYuMDAyYy0uNjY3IDAtMS4yMTIuNTQ2LTEuMjEyIDEuMjE0djguNTY1YzAgLjY2Ni41NDYgMS4yMTMgMS4yMTIgMS4yMTNIODQuN2MuNjY3IDAgMS4yMTMtLjU0NyAxLjIxMy0xLjIxM3YtOC41NjdjMC0uNjY2LS41NDUtMS4yMTQtMS4yMTItMS4yMTRtLTYuNDE2IDcuOTc2YTIuNDgzIDIuNDgzIDAgMDEtMi40NzctMi40OCAyLjQ3NSAyLjQ3NSAwIDAxMi40NzctMi40NzcgMi40OCAyLjQ4IDAgMTEwIDQuOTU2IiBmaWxsPSIjZmZmIi8+PC9zdmc+",
"camel.apache.org/provider": "Apache Software Foundation",
"camel.apache.org/kamelet.group": "Google Storage",
"camel.apache.org/kamelet.namespace": "GCP"
},
"labels": {
"camel.apache.org/kamelet.type": "source"
}
},
"spec": {
"definition": {
"title": "Google Storage Source",
"description": "Consume objects from Google Cloud Storage.",
"required": [
"bucketNameOrArn"
],
"type": "object",
"properties": {
"bucketNameOrArn": {
"title": "Bucket Name Or ARN",
"description": "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN).",
"type": "string"
},
"serviceAccountKey": {
"title": "Service Account Key",
"description": "The service account key to use as credentials for Google Cloud Storage access. You must encode this value in base64.",
"type": "binary",
"x-descriptors": [
"urn:camel:group:credentials"
]
},
"deleteAfterRead": {
"title": "Auto-delete Objects",
"description": "Specifies to delete objects after consuming them.",
"type": "boolean",
"default": true
},
"autoCreateBucket": {
"title": "Autocreate Bucket",
"description": "Specifies to automatically create the Google Cloud Storage bucket.",
"type": "boolean",
"default": false
},
"prefix": {
"title": "Prefix",
"description": "The prefix which is used in the BlobListOptions to only consume objects we are interested in.",
"type": "string"
},
"filter": {
"title": "Filter",
"description": "A regular expression to include only blobs with name matching it.",
"type": "string"
}
}
},
"dataTypes": {
"out": {
"default": "binary",
"headers": {
"CamelGoogleCloudStorageBucketName": {
"title": "Google Cloud Storage Bucket Name",
"description": "The bucket name which has been used to retrieve objects",
"type": "string"
},
"CamelGoogleCloudStorageObjectName": {
"title": "Google Cloud Storage Object Name",
"description": "The object name under which the retrieved object is stored",
"type": "string"
},
"CamelGoogleCloudStorageContentType": {
"title": "Content Type",
"description": "The content type of the retrieved object.",
"default": "application/octet-stream",
"type": "string"
},
"CamelGoogleCloudStorageETag": {
"title": "ETag Value",
"description": "The hex encoded 128-bit MD5 digest of the associated object according to RFC 1864.",
"type": "string"
}
},
"types": {
"binary": {
"format": "application-octet-stream",
"description": "Default binary representation of the Google Storage Cloud object retrieved from the bucket.",
"mediaType": "application/octet-stream"
},
"cloudevents": {
"format": "aws2-s3:application-cloudevents",
"description": "Output data type represents Google Storage download response as CloudEvent V1. The data type sets Camel specific CloudEvent headers on the exchange with respective data from the Google Storage bucket and its derived object.",
"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.google.storage.downloadTo",
"type": "string"
},
"CamelCloudEventSource": {
"title": "CloudEvent Source",
"description": "The event source. By default, the Google Cloud Storage bucket name with prefix \"google.storage.bucket.\".",
"type": "string"
},
"CamelCloudEventSubject": {
"title": "CloudEvent Subject",
"description": "The event subject. Usually the Google Cloud Storage object name.",
"type": "string"
},
"CamelCloudEventTime": {
"title": "CloudEvent Time",
"description": "The exchange creation timestamp as event time.",
"type": "string"
}
}
}
}
}
},
"dependencies": [
"camel:kamelet",
"camel:google-storage",
"camel:jackson"
],
"template": {
"from": {
"uri": "google-storage://{{bucketNameOrArn}}",
"parameters": {
"autoCreateBucket": "{{autoCreateBucket}}",
"serviceAccountKey": "base64:{{?serviceAccountKey}}",
"deleteAfterRead": "{{deleteAfterRead}}",
"filter": "{{?filter}}",
"prefix": "{{?prefix}}"
},
"steps": [
{
"to": "kamelet:sink"
}
]
}
}
},
"propertiesSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"title": "Google Storage Source",
"description": "Consume objects from Google Cloud Storage.",
"required": [
"bucketNameOrArn"
],
"properties": {
"bucketNameOrArn": {
"type": "string",
"title": "Bucket Name Or ARN",
"description": "The Google Cloud Storage bucket name or Bucket Amazon Resource Name (ARN)."
},
"serviceAccountKey": {
"type": "string",
"$comment": "type:binary",
"title": "Service Account Key",
"description": "The service account key to use as credentials for Google Cloud Storage access. You must encode this value in base64."
},
"deleteAfterRead": {
"type": "boolean",
"title": "Auto-delete Objects",
"description": "Specifies to delete objects after consuming them.",
"default": true
},
"autoCreateBucket": {
"type": "boolean",
"title": "Autocreate Bucket",
"description": "Specifies to automatically create the Google Cloud Storage bucket.",
"default": false
},
"prefix": {
"type": "string",
"title": "Prefix",
"description": "The prefix which is used in the BlobListOptions to only consume objects we are interested in."
},
"filter": {
"type": "string",
"title": "Filter",
"description": "A regular expression to include only blobs with name matching it."
}
}
}
}