# The name of the Kamelet
kameletMetadataName=my-sample-sink
# The icon for the Kamelet
kameletMetadataIcon=
# All of the kamelets are in Preview support level at the moment
kameletMetadataSupportLevel=Preview

# The provider
kameletMetadataProvider=Apache Software Foundation

# The catalog version
kameletMetadataCataLogVersion=main-SNAPSHOT
# The group for the kamelet
kameletMetadataKameletGroup=
# One of sink, source or action
kameletMetadataKameletType=sink

# The required runtime
kameletMetadataRequiresRuntime=

# The title for the Kamelet
kameletSpecTitle=

# The description for the Kamelet
kameletSpecDescription=

# Properties
kameletProperties=myProperty1,myProperty2,myProperty3
requiredKameletProperties=myProperty1,myProperty2

# (Optional) Beans used in the kamelet
kameletBeans=myBean1,myBean2

# The from URI
kameletFromUri=kamelet:source
fromParameters=fromParam1,fromParam2

# The to URI
kameletToUri=log:info
toParameters=toParam1,toParam2