---
apiVersion: v1
kind: List
items:
- apiVersion: v1
  kind: ConfigMap
  metadata:
    labels:
      funktion.fabric8.io/kind: Connector
      provider: fabric8
      project: connector-aws-sns
      version: 1.1.31
      group: io.fabric8.funktion.connector
    name: aws-sns
  data:
    deployment.yml: |
      ---
      apiVersion: extensions/v1beta1
      kind: Deployment
      metadata:
        labels:
          funktion.fabric8.io/kind: Subscription
          connector: aws-sns
      spec:
        replicas: 1
        template:
          metadata:
            labels:
              funktion.fabric8.io/kind: Subscription
              connector: aws-sns
          spec:
            containers:
            - image: fabric8/connector-aws-sns:1.1.31
              name: connector
    schema.yml: |
      ---
      component:
        kind: component
        scheme: aws-sns
        syntax: aws-sns:topicNameOrArn
        title: AWS Simple Notification System
        description: The aws-sns component is used for sending messages to an Amazon Simple Notification Topic.
        label: cloud,mobile,messaging
        deprecated: false
        async: false
        producerOnly: true
        javaType: org.apache.camel.component.aws.sns.SnsComponent
        groupId: org.apache.camel
        artifactId: camel-aws
        version: 2.18.1
      componentProperties: {}
      properties:
        topicNameOrArn:
          kind: path
          group: producer
          required: true
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Topic name or ARN
        accessKey:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Amazon AWS Access Key
        amazonSNSClient:
          kind: parameter
          group: producer
          type: object
          javaType: com.amazonaws.services.sns.AmazonSNS
          deprecated: false
          secret: false
          description: To use the AmazonSNS as the client
        amazonSNSEndpoint:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: The region with which the AWS-SNS client wants to work with.
        messageStructure:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: The message structure to use such as json
        policy:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: The policy for this queue
        proxyHost:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: To define a proxy host when instantiating the SQS client
        proxyPort:
          kind: parameter
          group: producer
          type: integer
          javaType: java.lang.Integer
          deprecated: false
          secret: false
          description: To define a proxy port when instantiating the SQS client
        secretKey:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: Amazon AWS Secret Key
        subject:
          kind: parameter
          group: producer
          type: string
          javaType: java.lang.String
          deprecated: false
          secret: false
          description: The subject which is used if the message header 'CamelAwsSnsSubject' is not present.
        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: |+
      [[AWS-SNS-SNSComponent]]
      SNS Component
      ~~~~~~~~~~~~~

      *Available as of Camel 2.8*

      The SNS component allows messages to be sent to an
      http://aws.amazon.com/sns[Amazon Simple Notification] Topic. The
      implementation of the Amazon API is provided by
      the??http://aws.amazon.com/sdkforjava/[AWS SDK].

      Prerequisites

      You must have a valid Amazon Web Services developer account, and be
      signed up to use Amazon SNS. More information are available at
      http://aws.amazon.com/sns[Amazon SNS].

      [[AWS-SNS-URIFormat]]
      URI Format
      ^^^^^^^^^^

      [source,java]
      -----------------------------
      aws-sns://topicNameOrArn[?options]
      -----------------------------

      The topic will be created if they don't already exists. +
       You can append query options to the URI in the following format,
      `?options=value&option2=value&...`

      [[AWS-SNS-URIOptions]]
      URI Options
      ^^^^^^^^^^^


      // component options: START
      The AWS Simple Notification System component has no options.
      // component options: END





      // endpoint options: START
      The AWS Simple Notification System component supports 11 endpoint options which are listed below:

      {% raw %}
      [width="100%",cols="2,1,1m,1m,5",options="header"]
      |=======================================================================
      | Name | Group | Default | Java Type | Description
      | topicNameOrArn | producer |  | String | *Required* Topic name or ARN
      | accessKey | producer |  | String | Amazon AWS Access Key
      | amazonSNSClient | producer |  | AmazonSNS | To use the AmazonSNS as the client
      | amazonSNSEndpoint | producer |  | String | The region with which the AWS-SNS client wants to work with.
      | messageStructure | producer |  | String | The message structure to use such as json
      | policy | producer |  | String | The policy for this queue
      | proxyHost | producer |  | String | To define a proxy host when instantiating the SQS client
      | proxyPort | producer |  | Integer | To define a proxy port when instantiating the SQS client
      | secretKey | producer |  | String | Amazon AWS Secret Key
      | subject | producer |  | String | The subject which is used if the message header 'CamelAwsSnsSubject' is not present.
      | 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




      Required SNS component options

      You have to provide the amazonSNSClient in the
      link:registry.html[Registry] or your accessKey and secretKey to access
      the http://aws.amazon.com/sns[Amazon's SNS].

      [[AWS-SNS-Usage]]
      Usage
      ^^^^^

      [[AWS-SNS-MessageheadersevaluatedbytheSNSproducer]]
      Message headers evaluated by the SNS producer
      +++++++++++++++++++++++++++++++++++++++++++++

      [width="100%",cols="10%,10%,80%",options="header",]
      |=======================================================================
      |Header |Type |Description

      |`CamelAwsSnsSubject` |`String` |The Amazon SNS message subject. If not set, the subject from the
      `SnsConfiguration` is used.
      |=======================================================================

      [[AWS-SNS-MessageheaderssetbytheSNSproducer]]
      Message headers set by the SNS producer
      +++++++++++++++++++++++++++++++++++++++

      [width="100%",cols="10%,10%,80%",options="header",]
      |=======================================================================
      |Header |Type |Description

      |`CamelAwsSnsMessageId` |`String` |The Amazon SNS message ID.
      |=======================================================================

      [[AWS-SNS-AdvancedAmazonSNSconfiguration]]
      Advanced AmazonSNS configuration
      ++++++++++++++++++++++++++++++++

      If you need more control over the `AmazonSNS` instance configuration you
      can create your own instance and refer to it from the URI:

      [source,java]
      -------------------------------------------------
      from("direct:start")
      .to("aws-sns://MyTopic?amazonSNSClient=#client");
      -------------------------------------------------

      The `#client` refers to a `AmazonSNS` in the
      link:registry.html[Registry].

      For example if your Camel Application is running behind a firewall:

      [source,java]
      --------------------------------------------------------------------------------------
      AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey");
      ClientConfiguration clientConfiguration = new ClientConfiguration();
      clientConfiguration.setProxyHost("http://myProxyHost");
      clientConfiguration.setProxyPort(8080);
      AmazonSNS client = new AmazonSNSClient(awsCredentials, clientConfiguration);

      registry.bind("client", client);
      --------------------------------------------------------------------------------------

      [[AWS-SNS-Dependencies]]
      Dependencies
      ^^^^^^^^^^^^

      Maven users will need to add the following dependency to their pom.xml.

      *pom.xml*

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

      where `${camel-version`} must be replaced by the actual version of Camel
      (2.8 or higher).

      [[AWS-SNS-SeeAlso]]
      See Also
      ^^^^^^^^

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

      * link:aws.html[AWS Component]

