# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------

apiVersion: camel.apache.org/v1alpha1
kind: Kamelet
metadata:
  name: aws-eventbridge-sink
  annotations:
    camel.apache.org/kamelet.support.level: "Preview"
    camel.apache.org/catalog.version: "main-SNAPSHOT"
    camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMWVtIiBoZWlnaHQ9IjFlbSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCIgdmlld0JveD0iMCAwIDI1NiAyNTYiIHN0eWxlPSItbXMtdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJJY29uaWZ5SWQtMTgyM2Y2NTU1NjktYWYxZGQ1LTIwMzYiIHgxPSIwJSIgeDI9IjEwMCUiIHkxPSIxMDAlIiB5Mj0iMCUiPjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNCMDA4NEQiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNGRjRGOEIiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBmaWxsPSJ1cmwoI0ljb25pZnlJZC0xODIzZjY1NTU2OS1hZjFkZDUtMjAzNikiIGQ9Ik0wIDBoMjU2djI1NkgweiIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0xNzEuNzAyIDIxMS4yYy02Ljg1OCAwLTEyLjQ0LTUuNjEtMTIuNDQtMTIuNTA5czUuNTgyLTEyLjUwOSAxMi40NC0xMi41MDljNi44NTcgMCAxMi40MzggNS42MSAxMi40MzggMTIuNTFjMCA2Ljg5OC01LjU4MSAxMi41MDgtMTIuNDM4IDEyLjUwOFptLTI3LjI3OC01NC40aC0zMy4wNzFMOTQuODE1IDEyOGwxNi41MzgtMjguOGgzMy4wNzFMMTYwLjk2IDEyOGwtMTYuNTM1IDI4LjhaTTg4LjM4NyA2OS44MThjLTYuODU3IDAtMTIuNDM4LTUuNjEtMTIuNDM4LTEyLjUxYzAtNi44OTggNS41ODEtMTIuNTA4IDEyLjQzOC0xMi41MDhjNi44NjEgMCAxMi40NDMgNS42MSAxMi40NDMgMTIuNTA5cy01LjU4MiAxMi41MDktMTIuNDQzIDEyLjUwOVptODMuMzE1IDEwOS45NjRjLTIuMzYyIDAtNC42MTQuNDU4LTYuNjk5IDEuMjYxbC0xMy41MTQtMjIuOTMxbC0uNzEzLjQyNkwxNjcuMzkgMTI5LjZhMy4yMjYgMy4yMjYgMCAwIDAgMC0zLjJsLTE4LjM3NC0zMmEzLjE3NyAzLjE3NyAwIDAgMC0yLjc1NS0xLjZoLTMzLjQzNWwuMTMtLjA3N2wtMTIuMzktMjEuMDNjNC4wNDctMy40NjkgNi42MjgtOC42MjcgNi42MjgtMTQuMzg0YzAtMTAuNDI2LTguNDM2LTE4LjkwOS0xOC44MDctMTguOTA5Yy0xMC4zNjcgMC0xOC44MDMgOC40ODMtMTguODAzIDE4LjkwOWMwIDEwLjQyNSA4LjQzNiAxOC45MDkgMTguODAzIDE4LjkwOWMyLjM2NSAwIDQuNjE4LS40NTggNi43MDItMS4yNjFsMTEuNTY3IDE5LjYyNUw4OC4zODQgMTI2LjRhMy4yMjYgMy4yMjYgMCAwIDAgMCAzLjJsMTguMzc3IDMyYy41Ny45OTIgMS42MiAxLjYgMi43NTYgMS42aDM2Ljc0NGMuMjY0IDAgLjUyMS0uMDQyLjc3LS4xMDJsMTIuNDk2IDIxLjIxYy00LjA1MSAzLjQ2OC02LjYyOSA4LjYyNi02LjYyOSAxNC4zODNjMCAxMC40MjYgOC40MzMgMTguOTA5IDE4LjgwNCAxOC45MDljMTAuMzcgMCAxOC44MDMtOC40ODMgMTguODAzLTE4LjkwOWMwLTEwLjQyNS04LjQzMy0xOC45MDktMTguODAzLTE4LjkwOVptMTguOTY4LTc3LjA1Yy02Ljg1NyAwLTEyLjQzNi01LjYwOS0xMi40MzYtMTIuNTA4YzAtNi45IDUuNTc5LTEyLjUwOSAxMi40MzYtMTIuNTA5YzYuODU4IDAgMTIuNDQgNS42MSAxMi40NCAxMi41MDljMCA2LjktNS41ODIgMTIuNTA5LTEyLjQ0IDEyLjUwOVptMjMuMzAzIDIzLjY2OGwtMTIuMDgtMjEuMDRjNC41OTItMy40NTMgNy41OC04Ljk0NCA3LjU4LTE1LjEzNmMwLTEwLjQyNi04LjQzMi0xOC45MDktMTguODAzLTE4LjkwOWMtMi42MzggMC01LjE1Mi41NTQtNy40MzMgMS41NDlsLTkuODQ5LTE3LjE1NWEzLjE4IDMuMTggMCAwIDAtMi43NTYtMS42aC0zOS40NDh2Ni40aDM3LjYxMmw5LjExIDE1Ljg3MmMtMy43MDMgMy40NTYtNi4wMzYgOC4zNzQtNi4wMzYgMTMuODQzYzAgMTAuNDI2IDguNDMzIDE4LjkwOSAxOC44IDE4LjkwOWMxLjkzMiAwIDMuOC0uMjk4IDUuNTU2LS44NDVMMjA3LjU0NSAxMjhsLTE1Ljg5MiAyNy42NzRsNS41MTIgMy4ybDE2LjgwOC0yOS4yNzRhMy4yMSAzLjIxIDAgMCAwIDAtMy4yWm0tMTQ2LjA0IDUwLjM5Yy02Ljg2IDAtMTIuNDQyLTUuNjEyLTEyLjQ0Mi0xMi41MDhjMC02LjkgNS41ODEtMTIuNTEgMTIuNDQyLTEyLjUxYzYuODU3IDAgMTIuNDM5IDUuNjEgMTIuNDM5IDEyLjUxYzAgNi44OTYtNS41ODIgMTIuNTA4LTEyLjQ0IDEyLjUwOFptMTAuMzkzIDMuMjM2YzUuMDYyLTMuMzkyIDguNDEtOS4xODEgOC40MS0xNS43NDRjMC0xMC40MjYtOC40MzYtMTguOTEtMTguODAzLTE4LjkxYy0zLjAwNCAwLTUuODMzLjczLTguMzUzIDEuOTk0TDQ4LjQ1OCAxMjhsMTguNDI4LTMyLjA5M2wtNS41MTUtMy4yTDQyLjAyNyAxMjYuNGEzLjIxIDMuMjEgMCAwIDAgMCAzLjJsMTIuMzg4IDIxLjU2OGMtMy4yNjggMy40MDUtNS4yODkgOC4wMjItNS4yODkgMTMuMTE0YzAgMTAuNDI1IDguNDM2IDE4LjkwOCAxOC44MDcgMTguOTA4YzEuNTYyIDAgMy4wNzQtLjIxNCA0LjUyOC0uNTc5bDEwLjE1IDE3LjY4Yy41Ny45ODkgMS42MiAxLjYgMi43NTcgMS42aDM5LjQ1MXYtNi40SDg3LjIwNGwtOC44NzgtMTUuNDY1WiIvPjwvc3ZnPg=="
    camel.apache.org/provider: "Apache Software Foundation"
    camel.apache.org/kamelet.group: "AWS Eventbridge"
  labels:
    camel.apache.org/kamelet.type: "sink"
spec:
  definition:
    title: "AWS Eventbridge Sink"
    description: |-
      Send events to an Amazon Eventbridge Eventbus.

      The basic authentication method for the Eventbridge service is to specify an access key and a secret key. These parameters are optional because the Kamelet provides a default credentials provider.
      
      If you use the default credentials provider, the Eventbridge client loads the credentials through this provider and doesn't use the basic authentication method.

      In the headers, you need to set the `resources-arn` / `ce-resources-arn` property to specify the ARN of resources related to the event.

      In the headers, you need to set the `detail-type` / `ce-detail-type` property to specify the detail type related to the event.

      In the headers, you need to set the `event-source` / `ce-event-source` property to specify the event source related to the event.

      If you do not set the property in the header, the Kamelet uses the exchange ID for the file name.
    required:
      - eventbusNameOrArn
      - region
    type: object
    properties:
      eventbusNameOrArn:
        title: Eventbus Name
        description: The Eventbridge Eventbus 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:alm:descriptor:com.tectonic.ui:password
        - urn:camel:group:credentials
      secretKey:
        title: Secret Key
        description: The secret key obtained from AWS.
        type: string
        format: password
        x-descriptors:
        - urn:alm:descriptor:com.tectonic.ui:password
        - urn:camel:group:credentials
      region:
        title: AWS Region
        description: The AWS region to access.
        type: string
        example: eu-west-1
        enum: ["af-south-1", "ap-east-1", "ap-northeast-1", "ap-northeast-2", "ap-northeast-3", "ap-south-1", "ap-southeast-1", "ap-southeast-2", "ap-southeast-3", "ca-central-1", "eu-central-1", "eu-north-1", "eu-south-1", "eu-west-1", "eu-west-2", "eu-west-3", "fips-us-east-1", "fips-us-east-2", "fips-us-west-1", "fips-us-west-2", "me-south-1", "sa-east-1", "us-east-1", "us-east-2", "us-west-1", "us-west-2", "cn-north-1", "cn-northwest-1", "us-gov-east-1", "us-gov-west-1", "us-iso-east-1", "us-iso-west-1", "us-isob-east-1"]
      useDefaultCredentialsProvider:
        title: Default Credentials Provider
        description: If true, the Eventbridge client loads credentials through a default credentials provider. If false, it uses the basic authentication method (access key and secret key).
        type: boolean
        x-descriptors:
        - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
        default: false
      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
        x-descriptors:
          - 'urn:alm:descriptor:com.tectonic.ui:checkbox'
        default: false
  dependencies:
    - "camel:core"
    - "camel:aws2-eventbridge"
    - "camel:kamelet"
  template:
    from:
      uri: "kamelet:source"
      steps:
      - choice:
          when:
          - simple: "${header[resources-arn]}"
            steps:
            - set-header:
                name: CamelAwsEventbridgeResourcesArn
                simple: "${header[resources-arn]}"
          - simple: "${header[ce-resources-arn]}"
            steps:
            - set-header:
                name: CamelAwsEventbridgeResourcesArn
                simple: "${header[ce-resources-arn]}"
      - choice:
          when:
          - simple: "${header[detail-type]}"
            steps:
            - set-header:
                name: CamelAwsEventbridgeDetailType
                simple: "${header[detail-type]}"
          - simple: "${header[ce-detail-type]}"
            steps:
            - set-header:
                name: CamelAwsEventbridgeDetailType
                simple: "${header[ce-detail-type]}"
      - choice:
          when:
          - simple: "${header[event-source]}"
            steps:
            - set-header:
                name: CamelAwsEventbridgeSource
                simple: "${header[event-source]}"
          - simple: "${header[ce-event-source]}"
            steps:
            - set-header:
                name: CamelAwsEventbridgeSource
                simple: "${header[ce-event-source]}"            
      - to:
          uri: "aws2-eventbridge:{{eventbusNameOrArn}}"
          parameters:
            secretKey: "{{?secretKey}}"
            accessKey: "{{?accessKey}}"
            region: "{{region}}"
            useDefaultCredentialsProvider: "{{useDefaultCredentialsProvider}}"
            uriEndpointOverride: "{{?uriEndpointOverride}}"
            overrideEndpoint: "{{overrideEndpoint}}"
            operation: "putEvent"
