= discord
:type: input
:status: experimental
:categories: ["Services","Social"]



////
     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::[]


Consumes messages posted in a Discord channel.


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

```yml
# Common config fields, showing default values
input:
  label: ""
  discord:
    channel_id: "" # No default (required)
    bot_token: "" # No default (required)
    cache: "" # No default (required)
    auto_replay_nacks: true
```

--
Advanced::
+
--

```yml
# All config fields, showing default values
input:
  label: ""
  discord:
    channel_id: "" # No default (required)
    bot_token: "" # No default (required)
    cache: "" # No default (required)
    cache_key: last_message_id
    auto_replay_nacks: true
```

--
======

This input works by authenticating as a bot using token based authentication. The ID of the newest message consumed and acked is stored in a cache in order to perform a backfill of unread messages each time the input is initialised. Ideally this cache should be persisted across restarts.

== Fields

=== `channel_id`

A discord channel ID to consume messages from.


*Type*: `string`


=== `bot_token`

A bot token used for authentication.


*Type*: `string`


=== `cache`

A cache resource to use for performing unread message backfills, the ID of the last message received will be stored in this cache and used for subsequent requests.


*Type*: `string`


=== `cache_key`

The key identifier used when storing the ID of the last message received.


*Type*: `string`

*Default*: `"last_message_id"`

=== `auto_replay_nacks`

Whether messages that are rejected (nacked) at the output level should be automatically replayed indefinitely, eventually resulting in back pressure if the cause of the rejections is persistent. If set to `false` these messages will instead be deleted. Disabling auto replays can greatly improve memory efficiency of high throughput streams as the original shape of the data can be discarded immediately upon consumption and mutation.


*Type*: `bool`

*Default*: `true`


