---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    funktion.fabric8.io/kind: Connector
  name: aws-ses
data:
  deployment.yml: |
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      labels:
        funktion.fabric8.io/kind: Subscription
        connector: aws-ses
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            funktion.fabric8.io/kind: Subscription
            connector: aws-ses
        spec:
          containers:
          - image: funktion/connector-aws-ses:${project.version}
            name: connector
  schema.yml: |
    ---
    component:
      kind: component
      scheme: aws-ses
      syntax: aws-ses:from
      title: AWS Simple Email Service
      description: The aws-ses component is used for sending emails with Amazon's SES service.
      label: cloud,mail
      deprecated: false
      async: false
      producerOnly: true
      javaType: org.apache.camel.component.aws.ses.SesComponent
      groupId: org.apache.camel
      artifactId: camel-aws
      version: 2.18.3
    componentProperties: {}
    properties:
      from:
        kind: path
        group: producer
        required: true
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The sender's email address.
        order: 0
      accessKey:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Amazon AWS Access Key
        order: 1
      amazonSESClient:
        kind: parameter
        group: producer
        type: object
        javaType: com.amazonaws.services.simpleemail.AmazonSimpleEmailService
        deprecated: false
        secret: false
        description: To use the AmazonSimpleEmailService as the client
        order: 2
      amazonSESEndpoint:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The region with which the AWS-SES client wants to work with.
        order: 3
      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
        order: 4
      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
        order: 5
      replyToAddresses:
        kind: parameter
        group: producer
        type: array
        javaType: java.util.List<java.lang.String>
        deprecated: false
        secret: false
        description: List of reply-to email address(es) for the message override it using 'CamelAwsSesReplyToAddresses' header.
        order: 6
      returnPath:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The email address to which bounce notifications are to be forwarded override it using 'CamelAwsSesReturnPath' header.
        order: 7
      secretKey:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Amazon AWS Secret Key
        order: 8
      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 'CamelAwsSesSubject' is not present.
        order: 9
      to:
        kind: parameter
        group: producer
        type: array
        javaType: java.util.List<java.lang.String>
        deprecated: false
        secret: false
        description: List of destination email address. Can be overriden with 'CamelAwsSesTo' header.
        order: 10
      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: 11
  documentation.adoc: |+
    [[AWS-SES-SESComponent]]
    SES Component
    ~~~~~~~~~~~~~

    *Available as of Camel 2.8.4*

    The ses component supports sending emails with
    http://aws.amazon.com/ses[Amazon's SES] service.

    Prerequisites

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

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

    [source,java]
    ------------------------
    aws-ses://from[?options]
    ------------------------

    You can append query options to the URI in the following format,
    ?options=value&option2=value&...

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


    // component options: START
    The AWS Simple Email Service component has no options.
    // component options: END




    // endpoint options: START
    The AWS Simple Email Service component supports 12 endpoint options which are listed below:

    {% raw %}
    [width="100%",cols="2,1,1m,1m,5",options="header"]
    |=======================================================================
    | Name | Group | Default | Java Type | Description
    | from | producer |  | String | *Required* The sender's email address.
    | accessKey | producer |  | String | Amazon AWS Access Key
    | amazonSESClient | producer |  | AmazonSimpleEmailService | To use the AmazonSimpleEmailService as the client
    | amazonSESEndpoint | producer |  | String | The region with which the AWS-SES client wants to work with.
    | 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
    | replyToAddresses | producer |  | List | List of reply-to email address(es) for the message override it using 'CamelAwsSesReplyToAddresses' header.
    | returnPath | producer |  | String | The email address to which bounce notifications are to be forwarded override it using 'CamelAwsSesReturnPath' header.
    | secretKey | producer |  | String | Amazon AWS Secret Key
    | subject | producer |  | String | The subject which is used if the message header 'CamelAwsSesSubject' is not present.
    | to | producer |  | List | List of destination email address. Can be overriden with 'CamelAwsSesTo' header.
    | 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 SES component options

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

    [[AWS-SES-Usage]]
    Usage
    ^^^^^

    [[AWS-SES-MessageheadersevaluatedbytheSESproducer]]
    Message headers evaluated by the SES producer
    +++++++++++++++++++++++++++++++++++++++++++++

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

    |`CamelAwsSesFrom` |`String` |The sender's email address.

    |`CamelAwsSesTo` |`List<String>` |The destination(s) for this email.

    |`CamelAwsSesSubject` |`String` |The subject of the message.

    |`CamelAwsSesReplyToAddresses` |`List<String>` |The reply-to email address(es) for the message.

    |`CamelAwsSesReturnPath` |`String` |The email address to which bounce notifications are to be forwarded.

    |`CamelAwsSesHtmlEmail` |`Boolean` |*Since Camel 2.12.3* The flag to show if email content is HTML.
    |=======================================================================

    [[AWS-SES-MessageheaderssetbytheSESproducer]]
    Message headers set by the SES producer
    +++++++++++++++++++++++++++++++++++++++

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

    |`CamelAwsSesMessageId` |`String` |The Amazon SES message ID.
    |=======================================================================

    [[AWS-SES-AdvancedAmazonSimpleEmailServiceconfiguration]]
    Advanced AmazonSimpleEmailService configuration
    +++++++++++++++++++++++++++++++++++++++++++++++

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

    [source,java]
    -------------------------------------------------------------
    from("direct:start")
    .to("aws-ses://example@example.com?amazonSESClient=#client");
    -------------------------------------------------------------

    The `#client` refers to a `AmazonSimpleEmailService` 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);
    AmazonSimpleEmailService client = new AmazonSimpleEmailServiceClient(awsCredentials, clientConfiguration);

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

    [[AWS-SES-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.4 or higher).

    [[AWS-SES-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]

