---
apiVersion: v1
kind: List
items:
- apiVersion: v1
  kind: ConfigMap
  metadata:
    labels:
      funktion.fabric8.io/kind: Connector
      provider: fabric8
      project: connector-dns
      version: 1.1.9
      group: io.fabric8.funktion.connector
    name: dns
  data:
    deployment.yml: |
      ---
      apiVersion: extensions/v1beta1
      kind: Deployment
      metadata:
        labels:
          funktion.fabric8.io/kind: Subscription
          connector: dns
      spec:
        replicas: 1
        template:
          metadata:
            labels:
              funktion.fabric8.io/kind: Subscription
              connector: dns
          spec:
            containers:
            - image: fabric8/connector-dns:1.1.9
              name: connector
    schema.yml: |
      ---
      component:
        kind: component
        scheme: dns
        syntax: dns:dnsType
        title: DNS
        description: To lookup domain information and run DNS queries using DNSJava.
        label: networking
        deprecated: false
        async: false
        producerOnly: true
        javaType: org.apache.camel.component.dns.DnsComponent
        groupId: org.apache.camel
        artifactId: camel-dns
        version: 2.18.1
      componentProperties: {}
      properties:
        dnsType:
          kind: path
          group: producer
          required: true
          type: string
          javaType: org.apache.camel.component.dns.DnsType
          enum:
          - dig
          - ip
          - lookup
          - wikipedia
          deprecated: false
          secret: false
          description: The type of the lookup.
        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).
    documentation.adoc: |+
      [[DNS-DNS]]
      DNS
      ~~~

      *Available as of Camel 2.7*

      This is an additional component for Camel to run DNS queries, using
      DNSJava. The component is a thin layer on top of
      http://www.xbill.org/dnsjava/[DNSJava]. +
       The component offers the following operations:

      * ip, to resolve a domain by its ip
      * lookup, to lookup information about the domain
      * dig, to run DNS queries

      INFO:*Requires SUN JVM*
      The DNSJava library requires running on the SUN JVM. +
       If you use Apache ServiceMix or Apache Karaf, you'll need to adjust the
      `etc/jre.properties` file, to add `sun.net.spi.nameservice` to the list
      of Java platform packages exported. The server will need restarting
      before this change takes effect.

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

      [source,xml]
      ------------------------------------------------------------
      <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-dns</artifactId>
          <version>x.x.x</version>
          <!-- use the same version as your Camel core version -->
      </dependency>
      ------------------------------------------------------------

      [[DNS-URIformat]]
      URI format
      ^^^^^^^^^^

      The URI scheme for a DNS component is as follows

      [source,java]
      -------------------------
      dns://operation[?options]
      -------------------------

      This component only supports producers.

      [[DNS-Options]]
      Options
      ^^^^^^^


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



      // endpoint options: START
      The DNS component supports 2 endpoint options which are listed below:

      {% raw %}
      [width="100%",cols="2,1,1m,1m,5",options="header"]
      |=======================================================================
      | Name | Group | Default | Java Type | Description
      | dnsType | producer |  | DnsType | *Required* The type of the lookup.
      | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
      |=======================================================================
      {% endraw %}
      // endpoint options: END


      [[DNS-Headers]]
      Headers
      ^^^^^^^
      [width="100%",cols="10%,10%,10%,70%",options="header",]
      |=======================================================================

      |Header |Type |Operations |Description

      |dns.domain |String |ip |The domain name. Mandatory.

      |dns.name |String |lookup |The name to lookup. Mandatory.

      |dns.type |   | lookup, dig |The type of the lookup. Should match the values of `org.xbill.dns.Type`.
      Optional.

      |dns.class |   | lookup, dig |The DNS class of the lookup. Should match the values of
      `org.xbill.dns.DClass`. Optional.

      |dns.query |String |dig |The query itself. Mandatory.

      |dns.server |String |dig |The server in particular for the query. If none is given, the default
      one specified by the OS will be used. Optional.
      |=======================================================================

      [[DNS-Examples]]
      Examples
      ^^^^^^^^

      [[DNS-IPlookup]]
      IP lookup
      +++++++++

      [source,xml]
      --------------------------------------
              <route id="IPCheck">
                  <from uri="direct:start"/>
                  <to uri="dns:ip"/>
              </route>
      --------------------------------------

      This looks up a domain's IP. For example, www.example.com resolves to
      192.0.32.10. +
       The IP address to lookup must be provided in the header with key
      `"dns.domain"`.

      [[DNS-DNSlookup]]
      DNS lookup
      ++++++++++

      [source,xml]
      --------------------------------------
              <route id="IPCheck">
                  <from uri="direct:start"/>
                  <to uri="dns:lookup"/>
              </route>
      --------------------------------------

      This returns a set of DNS records associated with a domain. +
       The name to lookup must be provided in the header with key
      `"dns.name"`.

      [[DNS-DNSDig]]
      DNS Dig
      +++++++

      Dig is a Unix command-line utility to run DNS queries.

      [source,xml]
      --------------------------------------
              <route id="IPCheck">
                  <from uri="direct:start"/>
                  <to uri="dns:dig"/>
              </route>
      --------------------------------------

      The query must be provided in the header with key `"dns.query"`.

      [[DNS-SeeAlso]]
      See Also
      ^^^^^^^^

      * link:configuring-camel.html[Configuring Camel]
      * link:component.html[Component]
      * link:endpoint.html[Endpoint]
      * link:getting-started.html[Getting Started]

