= aws_dynamodb_partiql
:type: processor
:status: experimental
:categories: ["Integration"]



////
     THIS FILE IS AUTOGENERATED!

     To make changes, edit the corresponding source file under:

     https://github.com/redpanda-data/connect/tree/main/internal/impl/<provider>.

     And:

     https://github.com/redpanda-data/connect/tree/main/cmd/tools/docs_gen/templates/plugin.adoc.tmpl
////

// © 2024 Redpanda Data Inc.


component_type_dropdown::[]


Executes a PartiQL expression against a DynamoDB table for each message.

Introduced in version 3.48.0.


[tabs]
======
Common::
+
--

```yml
# Common config fields, showing default values
label: ""
aws_dynamodb_partiql:
  query: "" # No default (required)
  args_mapping: ""
```

--
Advanced::
+
--

```yml
# All config fields, showing default values
label: ""
aws_dynamodb_partiql:
  query: "" # No default (required)
  unsafe_dynamic_query: false
  args_mapping: ""
  region: ""
  endpoint: ""
  credentials:
    profile: ""
    id: ""
    secret: ""
    token: ""
    from_ec2_role: false
    role: ""
    role_external_id: ""
```

--
======

Both writes or reads are supported, when the query is a read the contents of the message will be replaced with the result. This processor is more efficient when messages are pre-batched as the whole batch will be executed in a single call.

== Examples

[tabs]
======
Insert::
+
--

The following example inserts rows into the table footable with the columns foo, bar and baz populated with values extracted from messages:

```yaml
pipeline:
  processors:
    - aws_dynamodb_partiql:
        query: "INSERT INTO footable VALUE {'foo':'?','bar':'?','baz':'?'}"
        args_mapping: |
          root = [
            { "S": this.foo },
            { "S": meta("kafka_topic") },
            { "S": this.document.content },
          ]
```

--
======

== Fields

=== `query`

A PartiQL query to execute for each message.


*Type*: `string`


=== `unsafe_dynamic_query`

Whether to enable dynamic queries that support interpolation functions.


*Type*: `bool`

*Default*: `false`

=== `args_mapping`

A xref:guides:bloblang/about.adoc[Bloblang mapping] that, for each message, creates a list of arguments to use with the query.


*Type*: `string`

*Default*: `""`

=== `region`

The AWS region to target.


*Type*: `string`

*Default*: `""`

=== `endpoint`

Allows you to specify a custom endpoint for the AWS API.


*Type*: `string`

*Default*: `""`

=== `credentials`

Optional manual configuration of AWS credentials to use. More information can be found in xref:guides:cloud/aws.adoc[].


*Type*: `object`


=== `credentials.profile`

A profile from `~/.aws/credentials` to use.


*Type*: `string`

*Default*: `""`

=== `credentials.id`

The ID of credentials to use.


*Type*: `string`

*Default*: `""`

=== `credentials.secret`

The secret for the credentials being used.
[CAUTION]
====
This field contains sensitive information that usually shouldn't be added to a config directly, read our xref:configuration:secrets.adoc[secrets page for more info].
====



*Type*: `string`

*Default*: `""`

=== `credentials.token`

The token for the credentials being used, required when using short term credentials.


*Type*: `string`

*Default*: `""`

=== `credentials.from_ec2_role`

Use the credentials of a host EC2 machine configured to assume https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html[an IAM role associated with the instance^].


*Type*: `bool`

*Default*: `false`
Requires version 4.2.0 or newer

=== `credentials.role`

A role ARN to assume.


*Type*: `string`

*Default*: `""`

=== `credentials.role_external_id`

An external ID to provide when assuming a role.


*Type*: `string`

*Default*: `""`


