# ---------------------------------------------------------------------------
# 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/v1
kind: Kamelet
metadata:
  name: azure-eventhubs-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,PHN2ZyBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9Ii0uMDc1IC0uMTc0IDE1OC40IDE2My4xMDEiIHdpZHRoPSIyNDM5IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxnIGZpbGw9IiMwMDZmZDQiPjxwYXRoIGQ9Im02LjIyNS4wMjZoMTQ2LjZjMS4zIDAgMy0uMiA0LjEuNS45LjYuOCAxLjUuOCAyLjR2MzEuOGMwIC45LS4xIDEuOC0uOCAyLjQtLjguOC0xLjcuOC0yLjguOGgtMTQuMWMtMS4yIDAtMi40LS4xLTMuMi0xLS43LS44LS43LTEuOS0uNy0yLjl2LTEyLjVoLTExNHYxMi44YzAgMS0uMSAyLS44IDIuOC0uOC44LTEuOC44LTIuOC44aC0xNC44Yy0xIDAtMiAwLTIuOC0uOC0uOC0uOC0uOC0xLjctLjktMi44di0yOC44YzAtMS4xLS4xLTIuMy4xLTMuNC4yLTEgMS4xLTEuOCAyLjEtMiAxLjQtLjIgMi43LS4xIDQtLjF6Ii8+PHBhdGggZD0ibTM2LjYyNSAzNy42MjdoMTkuNGMxLjIgMCAyLjYuMSAzLjQgMS4xLjcuOC43IDEuOC43IDIuOHYxNC40YzAgMS4xIDAgMi4xLS44IDMtLjguOC0xLjkuOC0zIC44aC0xNy43Yy0xLjMgMC0yLjcuMS0zLjktLjItMS4yLS41LTEuNy0xLjYtMS43LTIuOXYtMTUuMWMwLTEuMSAwLTIuMS43LTIuOS44LS45IDEuOS0xIDIuOS0xem0zOC4yIDE3LjJoMTkuOGMxIDAgMS45IDAgMi43LjdzLjkgMS42LjkgMi42djE0LjhjMCAxLjItLjQgMi4yLTEuNSAyLjgtMS4yLjUtMi44LjMtNC4xLjNoLTE3LjRjLTEuMSAwLTIuMSAwLTIuOS0uOHMtLjgtMS45LS44LTIuOXYtMTMuN2MwLTEuMS4xLTIuMS45LTIuOS42LS44IDEuNC0uOCAyLjQtLjl6bS0zNi4xIDE2aDE3LjdjMSAwIDEuOS4xIDIuNi44LjguOC44IDEuOS44IDIuOXYxNC4xYzAgMS0uMSAxLjgtLjggMi41LS44LjgtMS44LjgtMi45LjhoLTE5LjRjLTEgMC0xLjkgMC0yLjctLjdzLS45LTEuNi0xLTIuNnYtMTQuMWMwLTEuMSAwLTIuMi45LTMgMS4xLTEgMy4zLS42IDQuOC0uN3ptNzMuOSAwaDIwLjFjMSAwIDEuOS4xIDIuNi44LjkuOC44IDEuOS44IDN2MTQuMWMwIDEtLjEgMS45LS45IDIuNi0uOC44LTEuOC44LTIuOS44aC0xNy4xYy0xLjQgMC0yLjkuMS00LjItLjItMS4yLS41LTEuNy0xLjYtMS43LTIuOHYtMTQuNGMwLTEuMSAwLTIgLjgtMi45LjctLjggMS42LTEgMi41LTF6bS0zNy44IDE2LjRoMTkuOGMxIDAgMS45IDAgMi43LjdzLjkgMS43LjkgMi43djE0LjhjMCAxLjEtLjQgMi0xLjMgMi42LTEuMi42LTIuOS40LTQuMy40aC0xNy40Yy0xLjEgMC0yLjEgMC0yLjktLjhzLS44LTEuOC0uOS0yLjl2LTEzLjdjMC0xLjEgMC0yLjIuOC0yLjkuNy0uOCAxLjYtLjggMi42LS45em0tMzYuMSAxNmgxNy44YzEgMCAxLjkuMSAyLjYuOXMuNyAxLjcuNyAyLjd2MTQuMWMwIDEgMCAxLjktLjcgMi43cy0xLjcuOS0yLjcuOWgtMTkuOGMtMS4xIDAtMi4yIDAtMi45LTEtLjctLjktLjctMS45LS43LTN2LTE0LjFjMC0xLjMuNS0yLjQgMS43LTIuOSAxLjItLjQgMi43LS4yIDQtLjN6bS0zNC41IDIxLjZoMTQuNGMxLjEgMCAyLjIuMSAzIDEgLjcuOC42IDEuNy43IDIuN3YxMi43aDExNC40di0xMi40YzAtMSAwLTIgLjgtMi44LjktLjkgMS45LS45IDMuMS0uOWgxMy40YzEgMCAyLjIgMCAzIC42LjkuNyAxLjMgMS45IDEuMyAzdjMwLjVjMCAxLjEtLjEgMi0uOSAyLjctMSAxLTIuOC42LTQuMS43aC0xNDkuM2MtLjkgMC0xLjctLjEtMi4zLS43LS44LS43LS45LTEuNy0uOS0yLjd2LTMwLjhjMC0xLjIuMi0yLjMgMS4xLTMuMS41LS41IDEuNC0uNCAyLjMtLjV6Ii8+PC9nPjwvc3ZnPg=="
    camel.apache.org/provider: "Apache Software Foundation"
    camel.apache.org/kamelet.group: "Azure Eventhubs"
    camel.apache.org/kamelet.namespace: "Azure"
  labels:
    camel.apache.org/kamelet.type: "sink"
spec:
  definition:
    title: "Azure Eventhubs Sink"
    description: Send events to Azure Event Hubs.        
    required:
      - namespaceName
      - eventhubName
    type: object
    properties:
      namespaceName:
        title: Eventhubs Namespace
        description: The Event Hubs namespace.
        type: string
      eventhubName:
        title: Eventhubs Name
        description: The Event Hub name.
        type: string
      sharedAccessName:
        title: Share Access Name
        description: The Event Hubs SAS key name.
        type: string
        x-descriptors:
        - urn:camel:group:credentials
      sharedAccessKey:
        title: Share Access Key
        description: The key for the Event Hubs SAS key name.
        type: string
        format: password
        x-descriptors:
        - urn:camel:group:credentials
      credentialType:
        title: Credential Type
        description: Determines the credential strategy to adopt.
        type: string
        enum: ["CONNECTION_STRING", "AZURE_IDENTITY"]
        default: "CONNECTION_STRING"
  dependencies:
    - "camel:core"
    - "camel:azure-eventhubs"
    - "camel:kamelet"
  template:
    from:
      uri: "kamelet:source"
      steps:
      - choice:
          when:
          - simple: "${header[partition-id]}"
            steps:
            - setHeader:
                name: CamelAzureEventHubsPartitionId
                simple: "${header[partition-id]}"
          - simple: "${header[ce-partition-id]}"
            steps:
            - setHeader:
                name: CamelAzureEventHubsPartitionId
                simple: "${header[ce-partition-id]}"
      - to:
          uri: "azure-eventhubs://{{namespaceName}}/{{eventhubName}}"
          parameters:
            sharedAccessName: "{{?sharedAccessName}}"
            sharedAccessKey: "{{?sharedAccessKey}}"
            credentialType: "{{credentialType}}"