---
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    funktion.fabric8.io/kind: Connector
  name: aws-ddb
data:
  deployment.yml: |
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      labels:
        funktion.fabric8.io/kind: Subscription
        connector: aws-ddb
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            funktion.fabric8.io/kind: Subscription
            connector: aws-ddb
        spec:
          containers:
          - image: funktion/connector-aws-ddb:${project.version}
            name: connector
  schema.yml: |
    ---
    component:
      kind: component
      scheme: aws-ddb
      syntax: aws-ddb:tableName
      title: AWS DynamoDB
      description: The aws-ddb component is used for storing and retrieving data from Amazon's DynamoDB service.
      label: cloud,database,nosql
      deprecated: false
      async: false
      producerOnly: true
      javaType: org.apache.camel.component.aws.ddb.DdbComponent
      groupId: org.apache.camel
      artifactId: camel-aws
      version: 2.18.3
    componentProperties: {}
    properties:
      tableName:
        kind: path
        group: producer
        required: true
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The name of the table currently worked with.
        order: 0
      accessKey:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Amazon AWS Access Key
        order: 1
      amazonDDBClient:
        kind: parameter
        group: producer
        type: object
        javaType: com.amazonaws.services.dynamodbv2.AmazonDynamoDB
        deprecated: false
        secret: false
        description: To use the AmazonDynamoDB as the client
        order: 2
      amazonDdbEndpoint:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: The region with which the AWS-DDB client wants to work with.
        order: 3
      consistentRead:
        kind: parameter
        group: producer
        type: boolean
        javaType: boolean
        deprecated: false
        secret: false
        defaultValue: false
        description: Determines whether or not strong consistency should be enforced when data is read.
        order: 4
      keyAttributeName:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Attribute name when creating table
        order: 5
      keyAttributeType:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Attribute type when creating table
        order: 6
      operation:
        kind: parameter
        group: producer
        type: string
        javaType: org.apache.camel.component.aws.ddb.DdbOperations
        enum:
        - BatchGetItems
        - DeleteItem
        - DeleteTable
        - DescribeTable
        - GetItem
        - PutItem
        - Query
        - Scan
        - UpdateItem
        - UpdateTable
        deprecated: false
        secret: false
        defaultValue: PutItem
        description: What operation to perform
        order: 7
      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: 8
      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: 9
      readCapacity:
        kind: parameter
        group: producer
        type: integer
        javaType: java.lang.Long
        deprecated: false
        secret: false
        description: The provisioned throughput to reserve for reading resources from your table
        order: 10
      secretKey:
        kind: parameter
        group: producer
        type: string
        javaType: java.lang.String
        deprecated: false
        secret: false
        description: Amazon AWS Secret Key
        order: 11
      writeCapacity:
        kind: parameter
        group: producer
        type: integer
        javaType: java.lang.Long
        deprecated: false
        secret: false
        description: The provisioned throughput to reserved for writing resources to your table
        order: 12
      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: 13
  documentation.adoc: "[[AWS-DDB-DDBComponent]]\nDDB Component\n~~~~~~~~~~~~~\n\n\
    *Available as of Camel 2.10*\n\nThe DynamoDB component supports storing and retrieving\
    \ data from/to\nhttp://aws.amazon.com/dynamodb[Amazon's DynamoDB] service.\n\n\
    Prerequisites\n\nYou must have a valid Amazon Web Services developer account,\
    \ and be\nsigned up to use Amazon DynamoDB. More information are available at\n\
    http://aws.amazon.com/dynamodb[Amazon DynamoDB].\n\n[[AWS-DDB-URIFormat]]\nURI\
    \ Format\n^^^^^^^^^^\n\n[source,java]\n------------------------------\naws-ddb://domainName[?options]\n\
    ------------------------------\n\nYou can append query options to the URI in the\
    \ following format,\n?options=value&option2=value&...\n\n[[AWS-DDB-URIOptions]]\n\
    URI Options\n^^^^^^^^^^^\n\n\n// component options: START\nThe AWS DynamoDB component\
    \ has no options.\n// component options: END\n\n\n\n\n// endpoint options: START\n\
    The AWS DynamoDB component supports 14 endpoint options which are listed below:\n\
    \n{% raw %}\n[width=\"100%\",cols=\"2,1,1m,1m,5\",options=\"header\"]\n|=======================================================================\n\
    | Name | Group | Default | Java Type | Description\n| tableName | producer | \
    \ | String | *Required* The name of the table currently worked with.\n| accessKey\
    \ | producer |  | String | Amazon AWS Access Key\n| amazonDDBClient | producer\
    \ |  | AmazonDynamoDB | To use the AmazonDynamoDB as the client\n| amazonDdbEndpoint\
    \ | producer |  | String | The region with which the AWS-DDB client wants to work\
    \ with.\n| consistentRead | producer | false | boolean | Determines whether or\
    \ not strong consistency should be enforced when data is read.\n| keyAttributeName\
    \ | producer |  | String | Attribute name when creating table\n| keyAttributeType\
    \ | producer |  | String | Attribute type when creating table\n| operation | producer\
    \ | PutItem | DdbOperations | What operation to perform\n| proxyHost | producer\
    \ |  | String | To define a proxy host when instantiating the SQS client\n| proxyPort\
    \ | producer |  | Integer | To define a proxy port when instantiating the SQS\
    \ client\n| readCapacity | producer |  | Long | The provisioned throughput to\
    \ reserve for reading resources from your table\n| secretKey | producer |  | String\
    \ | Amazon AWS Secret Key\n| writeCapacity | producer |  | Long | The provisioned\
    \ throughput to reserved for writing resources to your table\n| synchronous |\
    \ advanced | false | boolean | Sets whether synchronous processing should be strictly\
    \ used or Camel is allowed to use asynchronous processing (if supported).\n|=======================================================================\n\
    {% endraw %}\n// endpoint options: END\n\n\n\nRequired DDB component options\n\
    \nYou have to provide the amazonDDBClient in the\nlink:registry.html[Registry]\
    \ or your accessKey and secretKey to access\nthe http://aws.amazon.com/dynamodb[Amazon's\
    \ DynamoDB].\n\n[[AWS-DDB-Usage]]\nUsage\n^^^^^\n\n[[AWS-DDB-MessageheadersevaluatedbytheDDBproducer]]\n\
    Message headers evaluated by the DDB producer\n+++++++++++++++++++++++++++++++++++++++++++++\n\
    \n[width=\"100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbBatchItems` |`Map<String, KeysAndAttributes>`\
    \ |A map of the table name and corresponding items to get by primary key.\n\n\
    |`CamelAwsDdbTableName` |`String` |Table Name for this operation.\n\n|`CamelAwsDdbKey`\
    \ |`Key` |The primary key that uniquely identifies each item in a table. *From\
    \ Camel 2.16.0 the type of this header is Map<String,\nAttributeValue> and not\
    \ Key*\n\n|`CamelAwsDdbReturnValues` |`String` |Use this parameter if you want\
    \ to get the attribute name-value pairs\nbefore or after they are modified(NONE,\
    \ ALL_OLD, UPDATED_OLD, ALL_NEW,\nUPDATED_NEW).\n\n|`CamelAwsDdbUpdateCondition`\
    \ |`Map<String, ExpectedAttributeValue>` |Designates an attribute for a conditional\
    \ modification.\n\n|`CamelAwsDdbAttributeNames` |`Collection<String>` |If attribute\
    \ names are not specified then all attributes will be\nreturned.\n\n|`CamelAwsDdbConsistentRead`\
    \ |`Boolean` |If set to true, then a consistent read is issued, otherwise eventually\n\
    consistent is used.\n\n|`CamelAwsDdbItem` |`Map<String, AttributeValue>` |A map\
    \ of the attributes for the item, and must include the primary key\nvalues that\
    \ define the item.\n\n|`CamelAwsDdbExactCount` |`Boolean` |If set to true, Amazon\
    \ DynamoDB returns a total number of items that\nmatch the query parameters, instead\
    \ of a list of the matching items and\ntheir attributes. *From Camel 2.16.0 this\
    \ header doesn't exist anymore.*\n\n|`CamelAwsDdbKeyConditions` |`Map<String,\
    \ Condition>` |*From Camel 2.16.0*. This header specify the selection criteria\
    \ for the\nquery, and merge together the two old headers *CamelAwsDdbHashKeyValue*\n\
    and *CamelAwsDdbScanRangeKeyCondition*\n\n|`CamelAwsDdbStartKey` |`Key` |Primary\
    \ key of the item from which to continue an earlier query.\n\n|`CamelAwsDdbHashKeyValue`\
    \ |`AttributeValue` |Value of the hash component of the composite primary key.\n\
    *From Camel 2.16.0 this header doesn't exist anymore.*\n\n|`CamelAwsDdbLimit`\
    \ |`Integer` |The maximum number of items to return.\n\n|`CamelAwsDdbScanRangeKeyCondition`\
    \ |`Condition` |A container for the attribute values and comparison operators\
    \ to use for\nthe query.*From Camel 2.16.0 this header doesn't exist anymore.*\n\
    \n|`CamelAwsDdbScanIndexForward` |`Boolean` |Specifies forward or backward traversal\
    \ of the index.\n\n|`CamelAwsDdbScanFilter` |`Map<String, Condition>` |Evaluates\
    \ the scan results and returns only the desired values.\n\n|`CamelAwsDdbUpdateValues`\
    \ |`Map<String, AttributeValueUpdate>` |Map of attribute name to the new value\
    \ and action for the update.\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringBatchGetItemsoperation]]\nMessage headers set\
    \ during BatchGetItems operation\n++++++++++++++++++++++++++++++++++++++++++++++++++\n\
    \n[width=\"100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbBatchResponse` |`Map<String,BatchResponse>`\
    \ |Table names and the respective item attributes from the tables.\n\n|`CamelAwsDdbUnprocessedKeys`\
    \ |`Map<String,KeysAndAttributes>` |Contains a map of tables and their respective\
    \ keys that were not\nprocessed with the current response.\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringDeleteItemoperation]]\nMessage headers set\
    \ during DeleteItem operation\n+++++++++++++++++++++++++++++++++++++++++++++++\n\
    \n[width=\"100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>`\
    \ |The list of attributes returned by the operation.\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringDeleteTableoperation]]\nMessage headers set\
    \ during DeleteTable operation\n++++++++++++++++++++++++++++++++++++++++++++++++\n\
    \n[width=\"100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbProvisionedThroughput`| | \n\n|`ProvisionedThroughputDescription`\
    \ | |The value of the ProvisionedThroughput property for this table\n\n|`CamelAwsDdbCreationDate`\
    \ |`Date` |Creation DateTime of this table.\n\n|`CamelAwsDdbTableItemCount` |`Long`\
    \ |Item count for this table.\n\n|`CamelAwsDdbKeySchema` |`KeySchema` |The KeySchema\
    \ that identifies the primary key for this table. \n*From Camel 2.16.0 the type\
    \ of this header is List<KeySchemaElement> and not KeySchema*\n\n|`CamelAwsDdbTableName`\
    \ |`String` |The table name. \n\n|`CamelAwsDdbTableSize` |`Long` |The table size\
    \ in bytes. \n\n|`CamelAwsDdbTableStatus` |`String` |The status of the table:\
    \ CREATING, UPDATING, DELETING, ACTIVE\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringDescribeTableoperation]]\nMessage headers set\
    \ during DescribeTable operation\n++++++++++++++++++++++++++++++++++++++++++++++++++\n\
    \n[width=\"100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbProvisionedThroughput` |{{ProvisionedThroughputDescription}}\
    \ |The value of the ProvisionedThroughput property for this table\n\n|`CamelAwsDdbCreationDate`\
    \ |`Date` |Creation DateTime of this table.\n\n|`CamelAwsDdbTableItemCount` |`Long`\
    \ |Item count for this table.\n\n|`CamelAwsDdbKeySchema` |{{KeySchema}} |The KeySchema\
    \ that identifies the primary key for this table.\n*From Camel 2.16.0 the type\
    \ of this header is List<KeySchemaElement> and\nnot KeySchema*\n\n|`CamelAwsDdbTableName`\
    \ |`String` |The table name.\n\n|`CamelAwsDdbTableSize` |`Long` |The table size\
    \ in bytes.\n\n|`CamelAwsDdbTableStatus` |`String` |The status of the table: CREATING,\
    \ UPDATING, DELETING, ACTIVE\n\n|`CamelAwsDdbReadCapacity` |`Long` |ReadCapacityUnits\
    \ property of this table.\n\n|`CamelAwsDdbWriteCapacity` |`Long` |WriteCapacityUnits\
    \ property of this table.\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringGetItemoperation]]\nMessage headers set during\
    \ GetItem operation\n++++++++++++++++++++++++++++++++++++++++++++\n\n[width=\"\
    100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>`\
    \ |The list of attributes returned by the operation.\n\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringPutItemoperation]]\nMessage headers set during\
    \ PutItem operation\n++++++++++++++++++++++++++++++++++++++++++++\n\n[width=\"\
    100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>`\
    \ |The list of attributes returned by the operation.\n\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringQueryoperation]]\nMessage headers set during\
    \ Query operation\n++++++++++++++++++++++++++++++++++++++++++\n\n[width=\"100%\"\
    ,cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbItems` |`List<java.util.Map<String,AttributeValue>>`\
    \ |The list of attributes returned by the operation.\n\n|`CamelAwsDdbLastEvaluatedKey`\
    \ |`Key` |Primary key of the item where the query operation stopped, inclusive\
    \ of\nthe previous result set.\n\n|`CamelAwsDdbConsumedCapacity` |`Double` |The\
    \ number of Capacity Units of the provisioned throughput of the table\nconsumed\
    \ during the operation.\n\n|`CamelAwsDdbCount` |`Integer` |Number of items in\
    \ the response.\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringScanoperation]]\nMessage headers set during\
    \ Scan operation\n+++++++++++++++++++++++++++++++++++++++++\n\n[width=\"100%\"\
    ,cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbItems` |`List<java.util.Map<String,AttributeValue>>`\
    \ |The list of attributes returned by the operation.\n\n|`CamelAwsDdbLastEvaluatedKey`\
    \ |`Key` |Primary key of the item where the query operation stopped, inclusive\
    \ of\nthe previous result set.\n\n|`CamelAwsDdbConsumedCapacity` |`Double` |The\
    \ number of Capacity Units of the provisioned throughput of the table\nconsumed\
    \ during the operation.\n\n|`CamelAwsDdbCount` |`Integer` |Number of items in\
    \ the response.\n\n|`CamelAwsDdbScannedCount` |`Integer` |Number of items in the\
    \ complete scan before any filters are applied.\n|=======================================================================\n\
    \n[[AWS-DDB-MessageheaderssetduringUpdateItemoperation]]\nMessage headers set\
    \ during UpdateItem operation\n+++++++++++++++++++++++++++++++++++++++++++++++\n\
    \n[width=\"100%\",cols=\"10%,10%,80%\",options=\"header\",]\n|=======================================================================\n\
    |Header |Type |Description\n\n|`CamelAwsDdbAttributes` |`Map<String, AttributeValue>`\
    \ |The list of attributes returned by the operation.\n\n|=======================================================================\n\
    \n[[AWS-DDB-AdvancedAmazonDynamoDBconfiguration]]\nAdvanced AmazonDynamoDB configuration\n\
    +++++++++++++++++++++++++++++++++++++\n\nIf you need more control over the `AmazonDynamoDB`\
    \ instance\nconfiguration you can create your own instance and refer to it from\
    \ the\nURI:\n\n[source,java]\n----------------------------------------------------\n\
    from(\"direct:start\")\n.to(\"aws-ddb://domainName?amazonDDBClient=#client\");\n\
    ----------------------------------------------------\n\nThe `#client` refers to\
    \ a `AmazonDynamoDB` in the\nlink:registry.html[Registry].\n\nFor example if your\
    \ Camel Application is running behind a firewall:\n\n[source,java]\n--------------------------------------------------------------------------------------\n\
    AWSCredentials awsCredentials = new BasicAWSCredentials(\"myAccessKey\", \"mySecretKey\"\
    );\nClientConfiguration clientConfiguration = new ClientConfiguration();\nclientConfiguration.setProxyHost(\"\
    http://myProxyHost\");\nclientConfiguration.setProxyPort(8080);\n\nAmazonDynamoDB\
    \ client = new AmazonDynamoDBClient(awsCredentials, clientConfiguration);\n\n\
    registry.bind(\"client\", client);\n--------------------------------------------------------------------------------------\n\
    \n[[AWS-DDB-Dependencies]]\nDependencies\n^^^^^^^^^^^^\n\nMaven users will need\
    \ to add the following dependency to their pom.xml.\n\n*pom.xml*\n\n[source,xml]\n\
    ---------------------------------------\n<dependency>\n    <groupId>org.apache.camel</groupId>\n\
    \    <artifactId>camel-aws</artifactId>\n    <version>${camel-version}</version>\n\
    </dependency>\n---------------------------------------\n\nwhere `${camel-version`}\
    \ must be replaced by the actual version of Camel\n(2.10 or higher).\n\n[[AWS-DDB-SeeAlso]]\n\
    See Also\n^^^^^^^^\n\n* link:configuring-camel.html[Configuring Camel]\n* link:component.html[Component]\n\
    * link:endpoint.html[Endpoint]\n* link:getting-started.html[Getting Started]\n\
    \n* link:aws.html[AWS Component]\n\n"
