---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    funktion.fabric8.io/kind: Connector
  name: aws-ec2
data:
  deployment.yml: |
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      labels:
        funktion.fabric8.io/kind: Subscription
        connector: aws-ec2
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            funktion.fabric8.io/kind: Subscription
            connector: aws-ec2
        spec:
          containers:
          - image: funktion/connector-aws-ec2:${project.version}
            name: connector
  schema.yml: |
    ---
    component:
      kind: component
      scheme: aws-ec2
      syntax: aws-ec2:label
      title: AWS EC2
      description: The aws-ec2 is used for managing Amazon EC2 instances.
      label: cloud,management
      deprecated: false
      async: false
      producerOnly: true
      javaType: org.apache.camel.component.aws.ec2.EC2Component
      groupId: org.apache.camel
      artifactId: camel-aws
      version: 2.18.3
    componentProperties: {}
    properties:
      label:
        kind: path
        group: producer
        required: true
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Logical name
        order: 0
      accessKey:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Amazon AWS Access Key
        order: 1
      amazonEc2Client:
        kind: parameter
        group: producer
        type: object
        javaType: com.amazonaws.services.ec2.AmazonEC2Client
        deprecated: false
        secret: false
        description: To use a existing configured AmazonEC2Client as client
        order: 2
      amazonEc2Endpoint:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The region with which the AWS-EC2 client wants to work with.
        order: 3
      operation:
        kind: parameter
        group: producer
        label: producer
        required: true
        type: string
        javaType: org.apache.camel.component.aws.ec2.EC2Operations
        enum:
        - createAndRunInstances
        - startInstances
        - stopInstances
        - terminateInstances
        - describeInstances
        - describeInstancesStatus
        - rebootInstances
        - monitorInstances
        - unmonitorInstances
        - createTags
        - deleteTags
        deprecated: false
        secret: false
        description: The operation to perform. It can be createAndRunInstances startInstances stopInstances terminateInstances describeInstances describeInstancesStatus rebootInstances monitorInstances unmonitorInstances createTags or deleteTags
        order: 4
      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: 5
      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: 6
      secretKey:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Amazon AWS Secret Key
        order: 7
      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: 8
  documentation.adoc: |+
    [[AWS-EC2-EC2Component]]
    EC2 Component
    ~~~~~~~~~~~~~

    *Available as of Camel 2.16*

    The EC2 component supports create, run, start, stop and terminate
    https://aws.amazon.com/it/ec2/[AWS EC2] instances.

    Prerequisites

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

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

    [source,java]
    -------------------------
    aws-ec2://label[?options]
    -------------------------

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

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


    // component options: START
    The AWS EC2 component has no options.
    // component options: END




    // endpoint options: START
    The AWS EC2 component supports 9 endpoint options which are listed below:

    {% raw %}
    [width="100%",cols="2,1,1m,1m,5",options="header"]
    |=======================================================================
    | Name | Group | Default | Java Type | Description
    | label | producer |  | String | *Required* Logical name
    | accessKey | producer |  | String | Amazon AWS Access Key
    | amazonEc2Client | producer |  | AmazonEC2Client | To use a existing configured AmazonEC2Client as client
    | amazonEc2Endpoint | producer |  | String | The region with which the AWS-EC2 client wants to work with.
    | operation | producer |  | EC2Operations | *Required* The operation to perform. It can be createAndRunInstances startInstances stopInstances terminateInstances describeInstances describeInstancesStatus rebootInstances monitorInstances unmonitorInstances createTags or deleteTags
    | 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
    | 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 EC2 component options

    You have to provide the amazonEc2Client in the
    link:registry.html[Registry] or your accessKey and secretKey to access
    the https://aws.amazon.com/it/ec2/[Amazon EC2] service.

    [[AWS-EC2-Usage]]
    Usage
    ^^^^^

    [[AWS-EC2-MessageheadersevaluatedbytheEC2producer]]
    Message headers evaluated by the EC2 producer
    +++++++++++++++++++++++++++++++++++++++++++++

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

    |`CamelAwsEC2ImageId` |`String` |An image ID of the AWS marketplace

    |`CamelAwsEC2InstanceType` |com.amazonaws.services.ec2.model.InstanceType |The instance type we want to create and run

    |`CamelAwsEC2Operation` |`String` |The operation we want to perform

    |`CamelAwsEC2InstanceMinCount` |`Int` |The mininum number of instances we want to run.

    |`CamelAwsEC2InstanceMaxCount` |`Int` |The maximum number of instances we want to run.

    |`CamelAwsEC2InstanceMonitoring` |Boolean |Define if we want the running instances to be monitored

    |`CamelAwsEC2InstanceEbsOptimized` |`Boolean` |Define if the creating instance is optimized for EBS I/O.

    |`CamelAwsEC2InstanceSecurityGroups` |Collection |The security groups to associate to the instances

    |`CamelAwsEC2InstancesIds` |`Collection` |A collection of instances IDS to execute start, stop, describe and
    terminate operations on.

    |`CamelAwsEC2InstancesTags` |`Collection` |A collection of tags to add or remove from EC2 resources
    |=======================================================================

    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.16 or higher).

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

