diff --git a/kamelet.yaml b/kamelet.yaml new file mode 100644 index 0000000..bfe36ff --- /dev/null +++ b/kamelet.yaml @@ -0,0 +1,112 @@ +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.10.2" + 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"