---
title: "Update a Data Source"
method: PUT
path: "/gdc/dataload/dataSources/{dataSourceId}"
tags: ["cloudresource"]
---

# Update a Data Source

`PUT /gdc/dataload/dataSources/{dataSourceId}`

## Request

- Base URL: `https://secure.gooddata.com`
- URL: `https://secure.gooddata.com/gdc/dataload/dataSources/{dataSourceId}`
- Auth: none declared

Only the owner of the Data Source or a user with whom this Data Source is shared with the `manage` access can update its information.

**Request body parameters**
* `name` (string) specifies the name of the Data Source.
* `prefix` (Snowflake, Redshift, BigQuery, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics; string) specifies the prefix that defines what tables and views will be populated to the GoodData platform. **Example:** `pre_`
* `alias` (string) specifies the alias of the Data Source; can be considered a secondary identifier.
* `connectionInfo` (string) specifies the type of the data warehouse or object storage service. Can be `redshift`, `snowflake`, `bigQuery`, `postgres`, `mssql`, `mysql`, `s3`, `blobStorage`, or `generic`.
* `url` (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, Azure SQL Database, or Azure Synapse Analytics; string) specifies the JDBC connection string that is used to connect to the data warehouse.
* `authentication` specifies authentication information that is used to connect to the data warehouse.
    * (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics) Basic user-password authentication
        * `userName` (string) specifies the user who is used for the connection.
        * `password` (string) specifies the user's password.
    * (Redshift only) IAM key-based access control authentication
        * `dbUser` (string) specifies the Redshift database user.
        * `accessKeyId` (string) specifies the access key ID for the IAM user who is authorized to access the Redshift data warehouse.
        * `secretAccessKey` (string) specifies the secret access key for the IAM user.
    * (BigQuery only) Service account authentication
        * `clientEmail` (string) specifies the BigQuery user email.
        * `privateKey` (string) specifies the private key for the BigQuery user.
    * (Azure SQL Database or Azure Synapse Analytics) Azure Active Directory user-password authentication
        * `userName` (string) specifies the user who is used for the connection.
        * `password` (string) specifies the user's password.
* `database` (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics; string) specifies the name of the database where the schema you want to use is located.
* `schema` (Snowflake, Redshift, BigQuery, PostgreSQL, Microsoft SQL Server, Azure SQL Database, or Azure Synapse Analytics; string) specifies the name of the schema where data marts are located.
* `warehouse` (string; Snowflake only) specifies the name of the Snowflake data warehouse (computing unit) for integrating queries.
* `project` (string; BigQuery only) specifies the name of the BigQuery project.
* `params` (generic only) specifies parameters as a key/value pair.
* `secureParams` (generic only) specifies secure parameters as a key/value pair.
* `s3` (S3 only) specifies the S3 location where your configuration file is stored (you may or may not also use this S3 location to store the source data).
    * `bucket` (string) specifies the name of the S3 bucket.
    * `accessKey` (string) specifies the access key to the S3 bucket.
    * `secretKey` (string) specifies the secret key to the S3 bucket.
    * `region` (string; optional) specifies the code of the region of the S3 bucket. For the list of the region codes, see [AWS service endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints).
    * `serverSideEncryption` (boolean) specifies whether server-side encryption is enabled.
* `blobStorage` (Azure Blob Storage only) specifies the Azure Blob Storage location and authentication information that is used to connect to the object storage service.
    * `container` (string) specifies the name of the container.
    * `rootPath` (string) specifies the path to the source data.
    * `connectionString` (string) specifies the connection string to the Azure Blob Storage location.
* `sslMode` (PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics) specifies the SSL mode to use when connecting to the database.
    * `prefer` enables encryption if the server supports encryption.
    * `require` connects only if the server supports encryption.
    * `verify-full` connects to a server you specify only if it supports encryption and is trusted.
 * `databaseType` Specifies which SQL product to use depending on what value is used for `connectionInfo`. (string)
    * To use Microsoft SQL Server, Azure SQL Database, or Azure Synapse Analytics Data Sources, `connectionInfo` must be to `mssql`. The value of databaseType can be one of either `SQLServer`, `AzureSQL`, or `SynapseSQL`.
    * To use a MongoDB BI Connector data source, `connectionInfo` must be set to `mysql` and the value of `databaseType` must be set to `MongoDBConnector`.

## Request body

- DataSource1
  - `dataSource` DataSourceCommon, required
    - `name` string, required
    - `prefix` string
    - `alias` string
    - `connectionInfo` union, required
      - Snowflake
        - `snowflake` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - KeyPairConnectionAuthentication
              - …
          - `database` string, required
          - `schema` string, required
          - `warehouse` string, required
      - Redshift
        - `redshift` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - RedshiftIAMAuthentication
              - …
          - `database` string, required
          - `schema` string, required
      - BigQuery
        - `bigQuery` object, required
          - `project` string, required
          - `schema` string, required
          - `authentication` BigQueryServiceAccountAuthentication, required
            - `serviceAccount` object, required
              - …
      - Postgres
        - `postgres` object, required
          - `url` string, required
          - `authentication` BasicAuthentication, required
            - `basic` object, required
              - …
          - `database` string, required
          - `schema` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-ca' | 'verify-full'
      - MSSQL
        - `mssql` object, required
          - `url` string, required
          - `authentication` union, required
            - BasicAuthentication
              - …
            - ActiveDirectoryPasswordAuthentication
              - …
          - `database` string, required
          - `schema` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-full'
          - `databaseType` 'SQLServer' | 'AzureSQL' | 'SynapseSQL', required
      - MySQL
        - `mysql` object, required
          - `url` string, required
          - `authentication` BasicAuthentication, required
            - `basic` object, required
              - …
          - `database` string, required
          - `sslMode` 'prefer' | 'require' | 'verify-full'
          - `databaseType` 'MongoDBConnector' | 'MySQL'
      - Generic
        - `generic` object, required
          - `params` object
          - `secureParams` object
      - S3
        - `s3` object, required
          - `bucket` string, required
          - `accessKey` string, required
          - `secretKey` string
          - `region` string
          - `serverSideEncryption` boolean, required
      - BlobStorage
        - `blobStorage` object, required
          - `connectionString` string, required
          - `container` string, required
          - `path` string
      - ADS
        - `ads` object, required
          - `instance` string, required
          - `exportable` boolean, required

## Response `200`

OK - update data source

## Other responses

- `302`: Found
- `400`: Bad Request
- `403`: Forbidden - if current user is not the owner of the data source
- `404`: Not Found - if the data source does not exist

---

[API](https://skmtc.dev/gooddata/apis/gooddata-api-documentation.md) - [All operations](https://skmtc.dev/gooddata/apis/gooddata-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/gooddata/apis/gooddata-api-documentation/revisions/e5dc0ee6ab00?raw)
