{ "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.22.1", "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. Supports Oauth and Basic authentication.", "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" }, "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" ] }, "oauth2ClientId": { "title": "Oauth2 Client Id", "description": "Oauth2 Client Id", "type": "string", "format": "password", "x-descriptors": [ "urn:camel:group:credentials" ] }, "oauth2ClientSecret": { "title": "Oauth2 Client Secret", "description": "Oauth2 Client Secret", "type": "string", "format": "password", "x-descriptors": [ "urn:camel:group:credentials" ] }, "oauth2TokenEndpoint": { "title": "Oauth2 Token Endpoint", "description": "Oauth2 Token Endpoint", "type": "string", "x-descriptors": [ "urn:camel:group:credentials" ] }, "oauth2Scope": { "title": "Oauth2 Scope", "description": "Oauth2 Scope", "type": "string", "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}}", "oauth2ClientId": "{{?oauth2ClientId}}", "oauth2ClientSecret": "{{?oauth2ClientSecret}}", "oauth2Scope": "{{?oauth2Scope}}", "oauth2TokenEndpoint": "{{?oauth2TokenEndpoint}}", "authenticationPreemptive": "{{authenticationPreemptive}}" } } }, { "to": "kamelet:sink" } ] } } }, "propertiesSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "title": "HTTP Secured Source", "description": "Periodically fetches a secured HTTP resource and provides the content as output. Supports Oauth and Basic authentication.", "required": [ "url" ], "properties": { "period": { "type": "integer", "title": "Period between Updates", "description": "The interval between fetches in milliseconds", "default": 10000 }, "contentType": { "type": "string", "title": "Content Type", "description": "The content type accepted for the resource", "default": "application/json" }, "url": { "type": "string", "title": "URL", "description": "The URL to fetch for data" }, "authMethod": { "type": "string", "title": "Authentication Method", "description": "Authentication methods allowed to use as a comma separated list of values Basic, Digest or NTLM." }, "authenticationPreemptive": { "type": "boolean", "title": "Authentication Preemptive", "description": "If this option is true, camel-http sends preemptive basic authentication to the server.", "default": false }, "authUsername": { "type": "string", "title": "Authentication Username", "description": "Authentication username" }, "authPassword": { "type": "string", "title": "Authentication Password", "description": "Authentication password", "format": "password" }, "oauth2ClientId": { "type": "string", "title": "Oauth2 Client Id", "description": "Oauth2 Client Id", "format": "password" }, "oauth2ClientSecret": { "type": "string", "title": "Oauth2 Client Secret", "description": "Oauth2 Client Secret", "format": "password" }, "oauth2TokenEndpoint": { "type": "string", "title": "Oauth2 Token Endpoint", "description": "Oauth2 Token Endpoint" }, "oauth2Scope": { "type": "string", "title": "Oauth2 Scope", "description": "Oauth2 Scope" } } } }