---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    funktion.fabric8.io/kind: Connector
  name: consul
data:
  deployment.yml: |
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      labels:
        funktion.fabric8.io/kind: Subscription
        connector: consul
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            funktion.fabric8.io/kind: Subscription
            connector: consul
        spec:
          containers:
          - image: funktion/connector-consul:${project.version}
            name: connector
  schema.yml: |
    ---
    component:
      kind: component
      scheme: consul
      syntax: consul:apiEndpoint
      title: Consul
      description: The camel consul component allows you to work with Consul a distributed highly available datacenter-aware service discovery and configuration system.
      label: api,cloud
      deprecated: false
      async: false
      javaType: org.apache.camel.component.consul.ConsulComponent
      groupId: org.apache.camel
      artifactId: camel-consul
      version: 2.18.3
    componentProperties: {}
    properties:
      apiEndpoint:
        kind: path
        group: common
        required: true
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The API endpoint
        order: 0
      connectTimeoutMillis:
        kind: parameter
        group: common
        type: integer
        javaType: java.lang.Long
        deprecated: false
        secret: false
        description: Connect timeout for OkHttpClient
        order: 1
      dc:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The data center
        order: 2
      key:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The default key. Can be overridden by CamelConsulKey
        order: 3
      pingInstance:
        kind: parameter
        group: common
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: true
        description: Configure if the AgentClient should attempt a ping before returning the Consul instance
        order: 4
      readTimeoutMillis:
        kind: parameter
        group: common
        type: integer
        javaType: java.lang.Long
        deprecated: false
        secret: false
        description: Read timeout for OkHttpClient
        order: 5
      tags:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Set tags. You can separate multiple tags by comma.
        order: 6
      url:
        kind: parameter
        group: common
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The Consul agent URL
        order: 7
      writeTimeoutMillis:
        kind: parameter
        group: common
        type: integer
        javaType: java.lang.Long
        deprecated: false
        secret: false
        description: Write timeout for OkHttpClient
        order: 8
      bridgeErrorHandler:
        kind: parameter
        group: consumer
        label: consumer
        type: boolean
        javaType: boolean
        optionalPrefix: consumer.
        deprecated: false
        secret: false
        defaultValue: false
        description: Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
        order: 9
      exceptionHandler:
        kind: parameter
        group: consumer (advanced)
        label: consumer,advanced
        type: object
        javaType: org.apache.camel.spi.ExceptionHandler
        optionalPrefix: consumer.
        deprecated: false
        secret: false
        description: To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
        order: 10
      exchangePattern:
        kind: parameter
        group: consumer (advanced)
        label: consumer,advanced
        type: string
        javaType: org.apache.camel.ExchangePattern
        enum:
        - InOnly
        - RobustInOnly
        - InOut
        - InOptionalOut
        - OutOnly
        - RobustOutOnly
        - OutIn
        - OutOptionalIn
        deprecated: false
        secret: false
        description: Sets the exchange pattern when the consumer creates an exchange.
        order: 11
      action:
        kind: parameter
        group: producer
        label: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The default action. Can be overridden by CamelConsulAction
        order: 12
      valueAsString:
        kind: parameter
        group: producer
        label: producer
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Default to transform values retrieved from Consul i.e. on KV endpoint to string.
        order: 13
      synchronous:
        kind: parameter
        group: advanced
        label: advanced
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
        order: 14
      blockSeconds:
        kind: parameter
        group: watch
        label: consumer,watch
        type: integer
        javaType: java.lang.Integer
        deprecated: false
        secret: false
        defaultValue: "10"
        description: The second to wait for a watch event default 10 seconds
        order: 15
      firstIndex:
        kind: parameter
        group: watch
        label: consumer,watch
        type: integer
        javaType: long
        deprecated: false
        secret: false
        defaultValue: "0"
        description: The first index for watch for default 0
        order: 16
      recursive:
        kind: parameter
        group: watch
        label: consumer,watch
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Recursively watch default false
        order: 17
      aclToken:
        kind: parameter
        group: security
        label: security
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: true
        description: Sets the ACL token to be used with Consul
        order: 18
      password:
        kind: parameter
        group: security
        label: security
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: true
        description: Sets the password to be used for basic authentication
        order: 19
      sslContextParameters:
        kind: parameter
        group: security
        label: security
        type: object
        javaType: org.apache.camel.util.jsse.SSLContextParameters
        deprecated: false
        secret: false
        description: SSL configuration using an org.apache.camel.util.jsse.SSLContextParameters instance.
        order: 20
      userName:
        kind: parameter
        group: security
        label: security
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: true
        description: Sets the username to be used for basic authentication
        order: 21
  documentation.adoc: |
    [[Consul-ConsulComponent]]
    Consul Component
    ~~~~~~~~~~~~~~~~

    *Available as of Camel 2.18*

    The *Consul* component is a component for integrating your application with Consul.

    Maven users will need to add the following dependency to their pom.xml
    for this component:

    [source,java]
    -------------------------------------------------
        <dependency>
            <groupId>org.apache.camel</groupId>
            <artifactId>camel-consul</artifactId>
            <version>${camel-version}</version>
        </dependency>
    -------------------------------------------------

    [[Consul-URIformat]]
    URI format
    ^^^^^^^^^^

    [source,java]
    ---------------------------------------
        consul://domain?[options]
    ---------------------------------------

    You can append query options to the URI in the following format:

    ---------------------------------------
        ?option=value&option=value&...
    ---------------------------------------

    [[Consul-Options]]
    Options
    ^^^^^^^




    // component options: START
    The Consul component has no options.
    // component options: END






    // endpoint options: START
    The Consul component supports 22 endpoint options which are listed below:

    {% raw %}
    [width="100%",cols="2,1,1m,1m,5",options="header"]
    |=======================================================================
    | Name | Group | Default | Java Type | Description
    | apiEndpoint | common |  | String | *Required* The API endpoint
    | connectTimeoutMillis | common |  | Long | Connect timeout for OkHttpClient
    | dc | common |  | String | The data center
    | key | common |  | String | The default key. Can be overridden by CamelConsulKey
    | pingInstance | common | true | boolean | Configure if the AgentClient should attempt a ping before returning the Consul instance
    | readTimeoutMillis | common |  | Long | Read timeout for OkHttpClient
    | tags | common |  | String | Set tags. You can separate multiple tags by comma.
    | url | common |  | String | The Consul agent URL
    | writeTimeoutMillis | common |  | Long | Write timeout for OkHttpClient
    | bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
    | exceptionHandler | consumer (advanced) |  | ExceptionHandler | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this options is not in use. By default the consumer will deal with exceptions that will be logged at WARN/ERROR level and ignored.
    | exchangePattern | consumer (advanced) |  | ExchangePattern | Sets the exchange pattern when the consumer creates an exchange.
    | action | producer |  | String | The default action. Can be overridden by CamelConsulAction
    | valueAsString | producer | false | boolean | Default to transform values retrieved from Consul i.e. on KV endpoint to string.
    | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
    | blockSeconds | watch | 10 | Integer | The second to wait for a watch event default 10 seconds
    | firstIndex | watch | 0 | long | The first index for watch for default 0
    | recursive | watch | false | boolean | Recursively watch default false
    | aclToken | security |  | String | Sets the ACL token to be used with Consul
    | password | security |  | String | Sets the password to be used for basic authentication
    | sslContextParameters | security |  | SSLContextParameters | SSL configuration using an org.apache.camel.util.jsse.SSLContextParameters instance.
    | userName | security |  | String | Sets the username to be used for basic authentication
    |=======================================================================
    {% endraw %}
    // endpoint options: END




    [[Consul-Headers]]
    Headers
    ^^^^^^^

    [width="100%",cols="10%,10%,80%",options="header",]
    |=======================================================================
    |Name |Type |Description
    |CamelConsulAction|String|The Producer action
    |CamelConsulKey|String|The Key on which the action should applied
    |CamelConsulEventId|String|The event id (consumer only)
    |CamelConsulEventName|String|The event name (consumer only)
    |CamelConsulEventLTime|Long|The event LTime
    |CamelConsulNodeFilter|String|The Node filter
    |CamelConsulTagFilter|String|The tag filter
    |CamelConsulSessionFilter|String|The session filter
    |CamelConsulVersion|int|The data version
    |CamelConsulFlags|Long|Flags associated with a value
    |CamelConsulCreateIndex|Long|The internal index value that represents when the entry was created
    |CamelConsulLockIndex|Long|The number of times this key has successfully been acquired in a lock
    |CamelConsulModifyIndex|Long|The last index that modified this key
    |CamelConsulOptions|Object|Options associated to the request
    |CamelConsulResult|boolean|true if the response has a result
    |CamelConsulSession|String|The session id
    |CamelConsulValueAsString|boolean|To transform values retrieved from Consul i.e. on KV endpoint to string.
    |=======================================================================
