DataSourceSpec

Access the general settings of an existing data source spec. To access data source spec for
certain type, use `as...()` method. To create a new data source spec, use `https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#newDataSourceSpec()`.


**Only use this class with data that's connected to a database.**


This example shows how to get information from a BigQuery data source spec.

```javascript
const dataSourceTable = SpreadsheetApp.getActive()
                            .getSheetByName('Data Sheet 1')
                            .getDataSourceTables()[0];
const spec = dataSourceTable.getDataSource().getSpec();
if (spec.getType() === SpreadsheetApp.DataSourceType.BIGQUERY) {
  const bqSpec = spec.asBigQuery();
  Logger.log('Project ID: %s\n', bqSpec.getProjectId());
  Logger.log('Raw query string: %s\n', bqSpec.getRawQuery());
}
```

This example shows how to get information from a Looker data source spec. Using `asLooker()` returns a `https://developers.google.com/apps-script/reference/spreadsheet/looker-data-source-spec` object.

```javascript
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl(
    'https://docs.google.com/spreadsheets/d/abc123456/edit',
);
const spec = ss.getDataSources()[0].getSpec().asLooker();

if (spec.getType() === SpreadsheetApp.DataSourceType.LOOKER) {
  const lookerSpec = spec.asLooker();
  Logger.log('Looker instance URL: %s\n', lookerSpec.getInstanceUrl());
}
```

### Methods

| Method | Return type | Brief description |
|---|---|---|
| `https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec#asBigQuery()` | `https://developers.google.com/apps-script/reference/spreadsheet/big-query-data-source-spec` | Gets the spec for BigQuery data source. |
| `https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec#asLooker()` | `https://developers.google.com/apps-script/reference/spreadsheet/looker-data-source-spec` | Gets the spec for Looker data source. |
| `https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec#copy()` | `https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec-builder` | Creates a `https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec-builder` based on this data source's settings. |
| `https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec#getParameters()` | `https://developers.google.com/apps-script/reference/spreadsheet/data-source-parameter` | Gets the parameters of the data source. |
| `https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec#getType()` | `https://developers.google.com/apps-script/reference/spreadsheet/data-source-type` | Gets the type of the data source. |

## Detailed documentation

### `asBigQuery()`

Gets the spec for BigQuery data source.

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/big-query-data-source-spec` --- The BigQuery data source spec.

*** ** * ** ***

### `asLooker()`

Gets the spec for Looker data source.

```javascript
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl(
    'https://docs.google.com/spreadsheets/d/abc123456/edit',
);
const spec = ss.getDataSources()[0].getSpec().asLooker();
```

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/looker-data-source-spec` --- The Looker data source spec.

*** ** * ** ***

### `copy()`

Creates a `https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec-builder` based on this data source's settings.

```javascript
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl(
    'https://docs.google.com/spreadsheets/d/abc123456/edit',
);
const spec = ss.getDataSources()[0].getSpec();

const newSpec = spec.copy();
```

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/data-source-spec-builder` --- The builder.

*** ** * ** ***

### `getParameters()`

Gets the parameters of the data source.

```javascript
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl(
    'https://docs.google.com/spreadsheets/d/abc123456/edit',
);
const spec = ss.getDataSources()[0].getSpec();
const parameters = spec.getParameters();
```

This method is only available for BigQuery data sources.

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/data-source-parameter` --- The parameter list.

*** ** * ** ***

### `getType()`

Gets the type of the data source.

```javascript
// TODO(developer): Replace the URL with your own.
const ss = SpreadsheetApp.openByUrl(
    'https://docs.google.com/spreadsheets/d/abc123456/edit',
);
const spec = ss.getDataSources()[0].getSpec();
const type = spec.getType();
```

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/data-source-type` --- The data source type.