diff --git a/kamelet.json b/kamelet.json new file mode 100644 index 0000000..b56ffb8 --- /dev/null +++ b/kamelet.json @@ -0,0 +1,367 @@ +{ + "apiVersion": "camel.apache.org/v1", + "kind": "Kamelet", + "metadata": { + "name": "aws-s3-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,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjAiIHk9IjAiIHZpZXdCb3g9IjAgMCAyNDguMiAzMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZT4uc3QyOHtmaWxsOiM4YzMxMjN9LnN0Mjl7ZmlsbDojZTA1MjQzfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MjgiIGQ9Ik0yMCA1Mi4xTDAgNjJ2MTc1LjVsMjAgOS45LjEtLjFWNTIuMmwtLjEtLjEiLz48cGF0aCBjbGFzcz0ic3QyOSIgZD0iTTEyNyAyMjJMMjAgMjQ3LjVWNTIuMUwxMjcgNzd2MTQ1Ii8+PHBhdGggY2xhc3M9InN0MjgiIGQ9Ik03OC43IDE4Mi4xbDQ1LjQgNS44LjMtLjcuMy03NC40LS41LS42LTQ1LjQgNS43LS4xIDY0LjIiLz48cGF0aCBjbGFzcz0ic3QyOCIgZD0iTTEyNC4xIDIyMi4zbDEwNC4xIDI1LjIuMi0uM1Y1Mi4xbC0uMi0uMi0xMDQuMSAyNS40djE0NSIvPjxwYXRoIGNsYXNzPSJzdDI5IiBkPSJNMTY5LjUgMTgyLjFsLTQ1LjQgNS44di03NS43bDQ1LjQgNS43djY0LjIiLz48cGF0aCBkPSJNMTY5LjUgODYuOWwtNDUuNCA4LjMtNDUuNC04LjNMMTI0IDc1bDQ1LjUgMTEuOSIgZmlsbD0iIzVlMWYxOCIvPjxwYXRoIGQ9Ik0xNjkuNSAyMTMuMWwtNDUuNC04LjMtNDUuNCA4LjMgNDUuMyAxMi43IDQ1LjUtMTIuNyIgZmlsbD0iI2YyYjBhOSIvPjxwYXRoIGNsYXNzPSJzdDI4IiBkPSJNNzguNyA4Ni45bDQ1LjQtMTEuMi40LS4xVi4zbC0uNC0uMy00NS40IDIyLjd2NjQuMiIvPjxwYXRoIGNsYXNzPSJzdDI5IiBkPSJNMTY5LjUgODYuOWwtNDUuNC0xMS4yVjBsNDUuNCAyMi43djY0LjIiLz48cGF0aCBjbGFzcz0ic3QyOCIgZD0iTTEyNC4xIDMwMGwtNDUuNC0yMi43di02NC4ybDQ1LjQgMTEuMi43LjgtLjIgNzMuNi0uNSAxLjMiLz48cGF0aCBjbGFzcz0ic3QyOSIgZD0iTTEyNC4xIDMwMGw0NS40LTIyLjd2LTY0LjJsLTQ1LjQgMTEuMlYzMDBNMjI4LjIgNTIuMWwyMCAxMHYxNzUuNWwtMjAgMTBWNTIuMSIvPjwvc3ZnPg==", + "camel.apache.org/provider": "Apache Software Foundation", + "camel.apache.org/kamelet.group": "AWS S3", + "camel.apache.org/kamelet.namespace": "AWS" + }, + "labels": { + "camel.apache.org/kamelet.type": "sink", + "camel.apache.org/kamelet.verified": "true" + } + }, + "spec": { + "definition": { + "title": "AWS S3 Sink", + "description": "Upload data to an Amazon S3 Bucket.", + "required": [ + "bucketNameOrArn", + "region" + ], + "type": "object", + "properties": { + "bucketNameOrArn": { + "title": "Bucket Name", + "description": "The S3 Bucket name or Amazon Resource Name (ARN).", + "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" + ] + }, + "autoCreateBucket": { + "title": "Autocreate Bucket", + "description": "Specifies to automatically create the S3 bucket.", + "type": "boolean", + "default": false + }, + "useDefaultCredentialsProvider": { + "title": "Default Credentials Provider", + "description": "If true, the S3 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 S3 client should expect to load credentials through a profile credentials provider.", + "type": "boolean", + "default": false + }, + "useSessionCredentials": { + "title": "Session Credentials", + "description": "Set whether the S3 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 S3.", + "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 + }, + "forcePathStyle": { + "title": "Force Path Style", + "description": "Forces path style when accessing AWS S3 buckets.", + "type": "boolean", + "default": false + }, + "keyName": { + "title": "Key Name", + "description": "The key name for saving an element in the bucket.", + "type": "string" + } + } + }, + "dependencies": [ + "camel:core", + "camel:aws2-s3", + "camel:kamelet" + ], + "template": { + "from": { + "uri": "kamelet:source", + "steps": [ + { + "choice": { + "precondition": true, + "when": [ + { + "simple": "${propertiesExist:!keyName}", + "steps": [ + { + "choice": { + "when": [ + { + "simple": "${header[file]}", + "steps": [ + { + "setHeader": { + "name": "CamelAwsS3Key", + "simple": "${header[file]}" + } + } + ] + }, + { + "simple": "${header[ce-file]}", + "steps": [ + { + "setHeader": { + "name": "CamelAwsS3Key", + "simple": "${header[ce-file]}" + } + } + ] + } + ], + "otherwise": { + "steps": [ + { + "setHeader": { + "name": "CamelAwsS3Key", + "simple": "${exchangeId}" + } + } + ] + } + } + } + ] + } + ] + } + }, + { + "to": { + "uri": "aws2-s3:{{bucketNameOrArn}}", + "parameters": { + "secretKey": "{{?secretKey}}", + "accessKey": "{{?accessKey}}", + "region": "{{region}}", + "autoCreateBucket": "{{autoCreateBucket}}", + "useDefaultCredentialsProvider": "{{useDefaultCredentialsProvider}}", + "useProfileCredentialsProvider": "{{useProfileCredentialsProvider}}", + "useSessionCredentials": "{{useSessionCredentials}}", + "uriEndpointOverride": "{{?uriEndpointOverride}}", + "profileCredentialsName": "{{?profileCredentialsName}}", + "sessionToken": "{{?sessionToken}}", + "overrideEndpoint": "{{overrideEndpoint}}", + "forcePathStyle": "{{forcePathStyle}}", + "keyName": "{{?keyName}}" + } + } + } + ] + } + } + }, + "propertiesSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "title": "AWS S3 Sink", + "description": "Upload data to an Amazon S3 Bucket.", + "required": [ + "bucketNameOrArn", + "region" + ], + "properties": { + "bucketNameOrArn": { + "type": "string", + "title": "Bucket Name", + "description": "The S3 Bucket name or Amazon Resource Name (ARN)." + }, + "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" + ] + }, + "autoCreateBucket": { + "type": "boolean", + "title": "Autocreate Bucket", + "description": "Specifies to automatically create the S3 bucket.", + "default": false + }, + "useDefaultCredentialsProvider": { + "type": "boolean", + "title": "Default Credentials Provider", + "description": "If true, the S3 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 S3 client should expect to load credentials through a profile credentials provider.", + "default": false + }, + "useSessionCredentials": { + "type": "boolean", + "title": "Session Credentials", + "description": "Set whether the S3 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 S3.", + "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 + }, + "forcePathStyle": { + "type": "boolean", + "title": "Force Path Style", + "description": "Forces path style when accessing AWS S3 buckets.", + "default": false + }, + "keyName": { + "type": "string", + "title": "Key Name", + "description": "The key name for saving an element in the bucket." + } + } + } +} \ No newline at end of file