> ## 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.

# GCP CSV source

> Configuration reference for `GcpCsvSourceDescription`, which loads CSV files from a Google Cloud Storage bucket and prefix using a `Storage` bean.

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, a `Storage` bean must be defined.
  A default one can be used by enabling `dlc.create-default-cloud-client.gcp`.
</Note>

### Configuration properties

Properties for a GCP CSV Source are defined by name in the `dlc.csv.gcp.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](./csv-source-config) |
| cloud-fetching-config | | `CloudFetchingConfigurationProperties` | [Cloud Fetching Config](../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/6.2/languages/pycon.tmLanguage.json"]}}
dlc:
  csv:
    gcp:
      sources:
        gcpCsvSource:
          bucket: bucket
          prefix: dataDir
```

### Java configuration

`GcpCsvSourceDescription` 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](./csv-source-config) |
| cloudFetchingConfig | | `CloudFetchingConfig` | [Cloud Fetching Config](../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/6.2/languages/pycon.tmLanguage.json"]}}
@Bean
GcpCsvSourceDescription source() {
    return GcpCsvSourceDescription.builder(
                    "gcpCsvSource",
                    "bucket",
                    "dataDir"
            )
            .build();
}
```
