# ---------------------------------------------------------------------------
# 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: http-secured-source
  annotations:
    camel.apache.org/kamelet.support.level: "Stable"
    camel.apache.org/catalog.version: "4.6.0-SNAPSHOT"
    camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjAiCmhlaWdodD0iNDIwIiBzdHJva2U9IiMwMDAiIGZpbGw9Im5vbmUiPgo8cGF0aCBzdHJva2Utd2lkdGg9IjI2IgpkPSJNMjA5LDE1YTE5NSwxOTUgMCAxLDAgMiwweiIvPgo8cGF0aCBzdHJva2Utd2lkdGg9IjE4IgpkPSJtMjEwLDE1djM5MG0xOTUtMTk1SDE1TTU5LDkwYTI2MCwyNjAgMCAwLDAgMzAyLDAgbTAsMjQwIGEyNjAsMjYwIDAgMCwwLTMwMiwwTTE5NSwyMGEyNTAsMjUwIDAgMCwwIDAsMzgyIG0zMCwwIGEyNTAsMjUwIDAgMCwwIDAtMzgyIi8+Cjwvc3ZnPg=="
    camel.apache.org/provider: "Apache Software Foundation"
    camel.apache.org/kamelet.group: "HTTP"
    camel.apache.org/kamelet.namespace: "HTTP"
  labels:
    camel.apache.org/kamelet.type: "source"
spec:
  definition:
    title: "HTTP Secured Source"
    description: |-
      Periodically fetches a secured HTTP resource and provides the content as output.
    required:
    - url
    type: object
    properties:
      period:
        title: Period between Updates
        description: The interval between fetches in milliseconds
        type: integer
        default: 10000
      contentType:
        title: Content Type
        description: The content type accepted for the resource
        type: string
        default: "application/json"
      url:
        title: URL
        description: The URL to fetch for data
        type: string
        example: "https://gist.githubusercontent.com/nicolaferraro/e3c72ace3c751f9f88273896611ce5fe/raw/3b6f54060bacb56b6719b7386a4645cb59ad6cc1/quote.json"
        pattern: "^(http|https)://.*"
      authMethod:
        title: Authentication Method
        description: Authentication methods allowed to use as a comma separated list of values Basic, Digest or NTLM.
        type: string
        default: "Basic"
      authenticationPreemptive:
        title: Authentication Preemptive
        description: If this option is true, camel-http sends preemptive basic authentication to the server.
        type: boolean
        default: false
      authUsername:
        title: Authentication Username
        description: Authentication username
        type: string
        x-descriptors:
        - urn:camel:group:credentials
      authPassword:
        title: Authentication Password
        description: Authentication password
        type: string
        format: password
        x-descriptors:
        - urn:camel:group:credentials
  dependencies:
    - "camel:http"
    - "camel:kamelet"
    - "camel:core"
    - "camel:timer"
  template:
    from:
      uri: "timer:fetch"
      parameters:
        period: "{{period}}"
      steps:
      - setHeader:
          name: "Accept"
          constant: "{{contentType}}"
      - to:
          uri: "{{url}}"
          parameters: 
            authMethod: "{{authMethod}}"
            authUsername: "{{authUsername}}"
            authPassword: "{{authPassword}}"
            authenticationPreemptive: "{{authenticationPreemptive}}"
      - to: "kamelet:sink"
