# ---------------------------------------------------------------------------
# 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: delay-action
  annotations:
    camel.apache.org/kamelet.support.level: "Stable"
    camel.apache.org/catalog.version: "main-SNAPSHOT"
    camel.apache.org/kamelet.icon: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTIyLjg4IDEwMC42IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxMjIuODggMTAwLjYiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+LnN0MHtmaWxsOiMyNzI3Mjc7fSAuc3Qxe2ZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO2ZpbGw6I0Q4NDUzRTt9PC9zdHlsZT48Zz48cGF0aCBjbGFzcz0ic3QwIiBkPSJNNzIuNTgsMGM2LjgsMCwxMy4zLDEuMzYsMTkuMjMsMy44MWM2LjE2LDIuNTUsMTEuNyw2LjI5LDE2LjMzLDEwLjkybDAsMGM0LjYzLDQuNjMsOC4zNywxMC4xNywxMC45MiwxNi4zNCBjMi40Niw1LjkzLDMuODEsMTIuNDMsMy44MSwxOS4yM2MwLDYuOC0xLjM2LDEzLjMtMy44MSwxOS4yM2MtMi41NSw2LjE2LTYuMjksMTEuNy0xMC45MiwxNi4zM2wwLDAgYy00LjYzLDQuNjMtMTAuMTcsOC4zNy0xNi4zNCwxMC45MmMtNS45MywyLjQ2LTEyLjQzLDMuODEtMTkuMjMsMy44MWMtNi44LDAtMTMuMy0xLjM2LTE5LjIzLTMuODEgYy02LjE1LTIuNTUtMTEuNjktNi4yOC0xNi4zMy0xMC45MmwtMC4wMS0wLjAxYy00LjY0LTQuNjQtOC4zNy0xMC4xNy0xMC45Mi0xNi4zM2MtMC43OS0xLjkxLTEuNDctMy44Ny0yLjAyLTUuODkgYzEuMDUsMC4xLDIuMTIsMC4xNSwzLjIsMC4xNWMyLjA1LDAsNC4wNS0wLjE5LDYtMC41NGMwLjMyLDAuOTcsMC42NywxLjkzLDEuMDYsMi44N2MyLjA5LDUuMDUsNS4xNyw5LjYsOC45OSwxMy40MyBjMy44MiwzLjgyLDguMzgsNi45LDEzLjQzLDguOTljNC44NywyLjAyLDEwLjIxLDMuMTMsMTUuODMsMy4xM2M1LjYyLDAsMTAuOTYtMS4xMSwxNS44My0zLjEzYzUuMDUtMi4wOSw5LjYtNS4xNywxMy40My04Ljk5IGMzLjgyLTMuODIsNi45LTguMzgsOC45OS0xMy40M2MyLjAyLTQuODcsMy4xMy0xMC4yMSwzLjEzLTE1LjgzYzAtNS42Mi0xLjExLTEwLjk2LTMuMTMtMTUuODNjLTIuMDktNS4wNS01LjE3LTkuNi04Ljk5LTEzLjQzIGMtMy44Mi0zLjgyLTguMzgtNi45LTEzLjQzLTguOTljLTQuODctMi4wMi0xMC4yMS0zLjEzLTE1LjgzLTMuMTNjLTUuNjIsMC0xMC45NiwxLjExLTE1LjgzLDMuMTNjLTAuNDQsMC4xOC0wLjg3LDAuMzctMS4zLDAuNTYgYy0xLjY1LTIuNjEtMy42Ni00Ljk3LTUuOTUtNy4wMmMxLjI1LTAuNjUsMi41My0xLjI0LDMuODQtMS43OUM1OS4yOCwxLjM2LDY1Ljc4LDAsNzIuNTgsMEw3Mi41OCwweiBNNjYuOCwyNi4zOSBjMC0xLjIzLDAuNS0yLjM1LDEuMzEtMy4xNmMwLjgxLTAuODEsMS45My0xLjMxLDMuMTYtMS4zMWMxLjIzLDAsMi4zNSwwLjUsMy4xNiwxLjMxYzAuODEsMC44MSwxLjMxLDEuOTMsMS4zMSwzLjE2djIzLjQ3IGwxNy41NCwxMC40YzEuMDUsMC42MiwxLjc2LDEuNjIsMi4wNSwyLjczYzAuMjgsMS4xLDAuMTUsMi4zMS0wLjQ3LDMuMzdsMCwwLjAxbDAsMGMtMC42MiwxLjA1LTEuNjIsMS43Ni0yLjczLDIuMDUgYy0xLjEsMC4yOC0yLjMxLDAuMTUtMy4zNy0wLjQ3bC0wLjAxLDBsMCwwTDY5LjEsNTYuMjljLTAuNjctMC4zOC0xLjI0LTAuOTItMS42NC0xLjU3Yy0wLjQyLTAuNjgtMC42Ni0xLjQ4LTAuNjYtMi4zMlYyNi4zOSBMNjYuOCwyNi4zOXoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjcuMjcsMy4xOGMxNS4wNiwwLDI3LjI3LDEyLjIxLDI3LjI3LDI3LjI3YzAsMTUuMDYtMTIuMjEsMjcuMjctMjcuMjcsMjcuMjdDMTIuMjEsNTcuNzMsMCw0NS41MiwwLDMwLjQ1IEMwLDE1LjM5LDEyLjIxLDMuMTgsMjcuMjcsMy4xOEwyNy4yNywzLjE4eiBNMjQuMzUsNDEuMzRoNS44MnY1LjE2aC01LjgyVjQxLjM0TDI0LjM1LDQxLjM0TDI0LjM1LDQxLjM0eiBNMzAuMTcsMzcuNzdoLTUuODIgYy0wLjU4LTcuMDctMS44LTExLjU2LTEuOC0xOC42M2MwLTIuNjEsMi4xMi00LjcyLDQuNzItNC43MmMyLjYxLDAsNC43MiwyLjEyLDQuNzIsNC43MkMzMiwyNi4yLDMwLjc2LDMwLjcsMzAuMTcsMzcuNzcgTDMwLjE3LDM3Ljc3TDMwLjE3LDM3Ljc3TDMwLjE3LDM3Ljc3eiIvPjwvZz48L3N2Zz4="
    camel.apache.org/provider: "Apache Software Foundation"
    camel.apache.org/kamelet.group: "Delay"
  labels:
    camel.apache.org/kamelet.type: "action"
spec:
  definition:
    title: "Delay Action"
    description: |-
      Delay the processing using a specific amount of time
    required:
      - milliseconds
    type: object
    properties:
      milliseconds:
        title: Milliseconds
        description: The number of milliseconds of delay
        type: integer
        example: 1000
  dependencies:
  - "camel:core"
  - "camel:kamelet"
  template:
    from:
      uri: "kamelet:source"
      steps:
      - delay:
          constant: "{{milliseconds}}"
