generated from camel.apache.org/kamelet
170 lines
8.9 KiB
YAML
170 lines
8.9 KiB
YAML
|
|
apiVersion: camel.apache.org/v1
|
|
kind: Kamelet
|
|
metadata:
|
|
name: aws-sns-fifo-sink
|
|
annotations:
|
|
camel.apache.org/kamelet.support.level: "Stable"
|
|
camel.apache.org/catalog.version: "4.10.2"
|
|
camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnICAgdmlld0JveD0iMCAwIDI1NiAyNTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQiPg0KCTxnPg0KCQk8cGF0aCBkPSJNOTguODc1LDIzMi4wMzMgTDcyLjQ0MiwyMjQuNjI1IEw0Ny40NDEsMTk2LjExNyBMNzguNzEzLDE5NS4yNTQgTDk4Ljg3NSwyMzIuMDMzIiBmaWxsPSIjOTk1QjgwIj48L3BhdGg+DQoJCTxwYXRoIGQ9Ik0zNy43NSwyMTMuMjMzIEwyMi44NzUsMjA5LjA2NyBMOC44MTcsMTkzLjAzMyBMMjUuODk5LDE5MC4yMjQgTDM3Ljc1LDIxMy4yMzMiIGZpbGw9IiM5OTVCODAiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTAsMTkxLjAxNyBMMTUuMjA0LDE5NC4xMDggTDE3LjQxMSwxOTAuMjI2IEwxNy40MTEsNTguNTAzIEwxNS4yMDQsNTUuOTQyIEwwLDY0LjYgTDAsMTkxLjAxNyIgZmlsbD0iIzdCM0Y2NSI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNNzMuOTMzLDY5LjcwOCBMMTUuMjA4LDU1Ljk0MiBMMTUuMjA4LDE5NC4xMDggTDI0LjAwNiwxOTMuMjkgTDM3Ljc1LDIxMy4yMzMgTDQ4LjM1LDE5MS4wMjggTDczLjkzMywxODguNjUgTDczLjkzMyw2OS43MDgiIGZpbGw9IiNDMTdCOUQiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTMzLjk1OCwxOTguMTMzIEw2MC4wMjEsMjAzLjM4MyBMNjEuNzM3LDE5OS4zMzggTDYxLjczNywzNy40NCBMNjAuMDIxLDMzLjc3NSBMMzMuOTU4LDQ2Ljk4MyBMMzMuOTU4LDE5OC4xMzMiIGZpbGw9IiM3QjNGNjUiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTIwOC43MzQsODEuNTE2IEw2MC4wMjEsMzMuNzc1IEw2MC4wMjEsMjAzLjM4NyBMNzcuMjQyLDIwMS4xNzEgTDk4Ljg3NSwyMzIuMDMzIEwxMTYuMDAxLDE5Ni4xODMgTDIwOC43MzQsMTg0LjI1IEwyMDguNzM0LDgxLjUxNiIgZmlsbD0iI0MxN0I5RCI+PC9wYXRoPg0KCQk8cGF0aCBkPSJNMTgxLjgzMywyNTYuNDkyIEwxNDQuMjY3LDI0NS45NjcgTDEwOC43NTgsMjA1LjQ2NyBMMTU0Ljc5MSwyMDQuOTk5IEwxODEuODMzLDI1Ni40OTIiIGZpbGw9IiM5OTVCODAiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTg5LjU5MSwyMDguOTUgTDEyNy45MjEsMjE2LjM2NyBMMTMwLjg5OCwyMTMuODAxIEwxMzAuODk4LDQuMTE3IEwxMjcuOTIxLDAgTDg5LjU5MSwxOS4xNTggTDg5LjU5MSwyMDguOTUiIGZpbGw9IiM3QjNGNjUiPjwvcGF0aD4NCgkJPHBhdGggZD0iTTI1Niw2NC4wMzMgTDEyNy45MjUsMCBMMTI3LjkyNSwyMTYuMzY3IEwxNTAuNTIyLDIxMS44MzkgTDE4MS44MzMsMjU2LjQ5MiBMMjA4LjczNCwyMDAuMTgzIEwyMDguNzE3LDIwMC4xODEgTDI1NiwxOTAuNzA4IEwyNTYsNjQuMDMzIiBmaWxsPSIjQzE3QjlEIj48L3BhdGg+DQoJPC9nPg0KPC9zdmc+DQo="
|
|
camel.apache.org/provider: "Apache Software Foundation"
|
|
camel.apache.org/kamelet.group: "AWS SNS"
|
|
camel.apache.org/kamelet.namespace: "AWS"
|
|
labels:
|
|
camel.apache.org/kamelet.type: sink
|
|
spec:
|
|
definition:
|
|
title: AWS SNS FIFO Sink
|
|
description: Send message to an AWS SNS FIFO Topic.
|
|
required:
|
|
- topicNameOrArn
|
|
- region
|
|
type: object
|
|
properties:
|
|
topicNameOrArn:
|
|
title: Topic Name
|
|
description: The SNS Topic name or 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"]
|
|
contentBasedDeduplication:
|
|
title: Content-Based Deduplication
|
|
description: Use content-based deduplication (should be enabled in the SQS FIFO queue first)
|
|
type: boolean
|
|
default: false
|
|
autoCreateTopic:
|
|
title: Autocreate Topic
|
|
description: Setting the autocreation of the SNS topic.
|
|
type: boolean
|
|
default: false
|
|
useDefaultCredentialsProvider:
|
|
title: Default Credentials Provider
|
|
description: Set whether the SNS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.
|
|
type: boolean
|
|
default: false
|
|
useProfileCredentialsProvider:
|
|
title: Profile Credentials Provider
|
|
description: Set whether the SNS client should expect to load credentials through a profile credentials provider.
|
|
type: boolean
|
|
default: false
|
|
useSessionCredentials:
|
|
title: Session Credentials
|
|
description: Set whether the SNS 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 SNS.
|
|
type: boolean
|
|
default: false
|
|
profileCredentialsName:
|
|
title: Profile Credentials Name
|
|
description: If using a profile credentials provider this parameter will set 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
|
|
dependencies:
|
|
- "camel:aws2-sns"
|
|
- "camel:core"
|
|
- "camel:kamelet"
|
|
template:
|
|
from:
|
|
uri: kamelet:source
|
|
steps:
|
|
- choice:
|
|
when:
|
|
- simple: "${header[subject]}"
|
|
steps:
|
|
- setHeader:
|
|
name: CamelAwsSnsSubject
|
|
simple: "${header[subject]}"
|
|
- simple: "${header[ce-subject]}"
|
|
steps:
|
|
- setHeader:
|
|
name: CamelAwsSnsSubject
|
|
simple: "${header[ce-subject]}"
|
|
- setProperty:
|
|
name: contentBasedDeduplication
|
|
constant: "{{contentBasedDeduplication}}"
|
|
- choice:
|
|
when:
|
|
- simple: "${header[group]}"
|
|
steps:
|
|
- setProperty:
|
|
name: CamelAwsSnsMessageGroupId
|
|
simple: "${header[group]}"
|
|
- simple: "${header[ce-group]}"
|
|
steps:
|
|
- setProperty:
|
|
name: CamelAwsSnsMessageGroupId
|
|
simple: "${header[ce-group]}"
|
|
otherwise:
|
|
steps:
|
|
- setProperty:
|
|
name: CamelAwsSnsMessageGroupId
|
|
simple: "${exchangeId}"
|
|
- choice:
|
|
when:
|
|
- simple: "${exchangeProperty.contentBasedDeduplication} == 'true'"
|
|
steps:
|
|
- to:
|
|
uri: "aws2-sns:{{topicNameOrArn}}"
|
|
parameters:
|
|
autoCreateTopic: "{{autoCreateTopic}}"
|
|
accessKey: "{{?accessKey}}"
|
|
secretKey: "{{?secretKey}}"
|
|
region: "{{region}}"
|
|
useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
|
|
useProfileCredentialsProvider: "{{useProfileCredentialsProvider}}"
|
|
useSessionCredentials: "{{useSessionCredentials}}"
|
|
messageGroupIdStrategy: "usePropertyValue"
|
|
messageDeduplicationIdStrategy: "useContentBasedDeduplication"
|
|
profileCredentialsName: "{{?profileCredentialsName}}"
|
|
sessionToken: "{{?sessionToken}}"
|
|
uriEndpointOverride: "{{?uriEndpointOverride}}"
|
|
overrideEndpoint: "{{overrideEndpoint}}"
|
|
otherwise:
|
|
steps:
|
|
- to:
|
|
uri: "aws2-sns:{{topicNameOrArn}}"
|
|
parameters:
|
|
autoCreateTopic: "{{autoCreateTopic}}"
|
|
accessKey: "{{?accessKey}}"
|
|
secretKey: "{{?secretKey}}"
|
|
region: "{{region}}"
|
|
useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
|
|
useProfileCredentialsProvider: "{{useProfileCredentialsProvider}}"
|
|
useSessionCredentials: "{{useSessionCredentials}}"
|
|
messageGroupIdStrategy: "usePropertyValue"
|
|
messageDeduplicationIdStrategy: "useExchangeId"
|
|
profileCredentialsName: "{{?profileCredentialsName}}"
|
|
sessionToken: "{{?sessionToken}}"
|
|
uriEndpointOverride: "{{?uriEndpointOverride}}"
|
|
overrideEndpoint: "{{overrideEndpoint}}"
|