> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AWS CSV source

> Configuration reference for `AwsCsvSourceDescription`, which loads CSV files from an Amazon S3 bucket and prefix using an `S3Client` bean, with optional cloud fetching tuning.

The bucket and prefix to read from are set through the `bucket` and `prefix` properties.

The DLC ensures that only files within that source can be loaded.

<Note>
  To use this source, an `S3Client` bean must be defined.
  A default one can be used by enabling `dlc.create-default-cloud-client.aws`.
</Note>

### Configuration properties

Properties for an AWS CSV Source are defined by name in the `dlc.csv.aws.sources` namespace,
and are picked up as configurations for the DLC.

| Key                     | Required | Type                                   | Description                                                                                                  |
| ----------------------- | :------: | -------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| bucket                  |     Y    | `String`                               | The bucket of the directory.                                                                                 |
| prefix                  |     Y    | `String`                               | The directory. Can include [Scope Parameters](/functional/scope-parameters).<br />Example `#{SCOPE_PARAM}`   |
| source-properties       |          | `CsvSourceConfigurationProperties`     | [CSV Source Configuration](/configuration/csv/csv-source-config)                                             |
| cloud-fetching-config   |          | `CloudFetchingConfigurationProperties` | [Cloud Fetching Config](/configuration/cloud-fetching-config)                                                |
| topics-to-include       |          | `Set<String>`                          | Topics to include. See [source to topic matching](/functional/source-to-topic-matching).                     |
| topics-to-exclude       |          | `Set<String>`                          | Topics to exclude. See [source to topic matching](/functional/source-to-topic-matching).                     |
| accepts-topic-overrides |          | `Boolean`                              | Whether this source is allowed to accept Topic Overrides in the [Load Request](/operations/operations-load). |

#### YAML example

```yaml theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
dlc:
  csv:
    aws:
      sources:
        awsCsvSource:
          bucket: bucket
          prefix: dataDir
```

### Java configuration

`AwsCsvSourceDescription` Spring Beans are picked up as configurations for the DLC.

| Parameter             | Required | Type                     | Description                                                                                                  |
| --------------------- | :------: | ------------------------ | :----------------------------------------------------------------------------------------------------------- |
| name                  |     Y    | `String`                 | Name of the source.                                                                                          |
| bucket                |     Y    | `String`                 | The bucket of the directory                                                                                  |
| prefix                |     Y    | `String`                 | The directory. Can include [Scope Parameters](/functional/scope-parameters).<br />Example `#{SCOPE_PARAM}`   |
| sourceConfiguration   |          | `CsvSourceConfiguration` | [CSV Source Configuration](/configuration/csv/csv-source-config)                                             |
| cloudFetchingConfig   |          | `CloudFetchingConfig`    | [Cloud Fetching Config](/configuration/cloud-fetching-config)                                                |
| topicsToInclude       |          | `Set<String>`            | Topics to include. See [source to topic matching](/functional/source-to-topic-matching).                     |
| topicsToExclude       |          | `Set<String>`            | Topics to exclude. See [source to topic matching](/functional/source-to-topic-matching).                     |
| acceptsTopicOverrides |          | `Boolean`                | Whether this source is allowed to accept Topic Overrides in the [Load Request](/operations/operations-load). |

#### Java example

```java theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
@Bean
AwsCsvSourceDescription source() {
    return AwsCsvSourceDescription.builder(
                    "awsCsvSource",
                    "bucket",
                    "dataDir"
            )
            .build();
}
```
