TableArgs

data class TableArgs(val clusterings: Output<List<String>>? = null, val datasetId: Output<String>? = null, val deletionProtection: Output<Boolean>? = null, val description: Output<String>? = null, val encryptionConfiguration: Output<TableEncryptionConfigurationArgs>? = null, val expirationTime: Output<Int>? = null, val externalDataConfiguration: Output<TableExternalDataConfigurationArgs>? = null, val friendlyName: Output<String>? = null, val labels: Output<Map<String, String>>? = null, val materializedView: Output<TableMaterializedViewArgs>? = null, val project: Output<String>? = null, val rangePartitioning: Output<TableRangePartitioningArgs>? = null, val schema: Output<String>? = null, val tableId: Output<String>? = null, val timePartitioning: Output<TableTimePartitioningArgs>? = null, val view: Output<TableViewArgs>? = null) : ConvertibleToJava<TableArgs>

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.bigquery.Dataset;
import com.pulumi.gcp.bigquery.DatasetArgs;
import com.pulumi.gcp.bigquery.Table;
import com.pulumi.gcp.bigquery.TableArgs;
import com.pulumi.gcp.bigquery.inputs.TableTimePartitioningArgs;
import com.pulumi.gcp.bigquery.inputs.TableExternalDataConfigurationArgs;
import com.pulumi.gcp.bigquery.inputs.TableExternalDataConfigurationGoogleSheetsOptionsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var defaultDataset = new Dataset("defaultDataset", DatasetArgs.builder()
.datasetId("foo")
.friendlyName("test")
.description("This is a test description")
.location("EU")
.defaultTableExpirationMs(3600000)
.labels(Map.of("env", "default"))
.build());
var defaultTable = new Table("defaultTable", TableArgs.builder()
.datasetId(defaultDataset.datasetId())
.tableId("bar")
.timePartitioning(TableTimePartitioningArgs.builder()
.type("DAY")
.build())
.labels(Map.of("env", "default"))
.schema("""
[
{
"name": "permalink",
"type": "STRING",
"mode": "NULLABLE",
"description": "The Permalink"
},
{
"name": "state",
"type": "STRING",
"mode": "NULLABLE",
"description": "State where the head office is located"
}
]
""")
.build());
var sheet = new Table("sheet", TableArgs.builder()
.datasetId(defaultDataset.datasetId())
.tableId("sheet")
.externalDataConfiguration(TableExternalDataConfigurationArgs.builder()
.autodetect(true)
.sourceFormat("GOOGLE_SHEETS")
.googleSheetsOptions(TableExternalDataConfigurationGoogleSheetsOptionsArgs.builder()
.skipLeadingRows(1)
.build())
.sourceUris("https://docs.google.com/spreadsheets/d/123456789012345")
.build())
.build());
}
}

Import

BigQuery tables imported using any of these accepted formats

$ pulumi import gcp:bigquery/table:Table default projects/{{project}}/datasets/{{dataset_id}}/tables/{{table_id}}
$ pulumi import gcp:bigquery/table:Table default {{project}}/{{dataset_id}}/{{table_id}}
$ pulumi import gcp:bigquery/table:Table default {{dataset_id}}/{{table_id}}

Constructors

Link copied to clipboard
fun TableArgs(clusterings: Output<List<String>>? = null, datasetId: Output<String>? = null, deletionProtection: Output<Boolean>? = null, description: Output<String>? = null, encryptionConfiguration: Output<TableEncryptionConfigurationArgs>? = null, expirationTime: Output<Int>? = null, externalDataConfiguration: Output<TableExternalDataConfigurationArgs>? = null, friendlyName: Output<String>? = null, labels: Output<Map<String, String>>? = null, materializedView: Output<TableMaterializedViewArgs>? = null, project: Output<String>? = null, rangePartitioning: Output<TableRangePartitioningArgs>? = null, schema: Output<String>? = null, tableId: Output<String>? = null, timePartitioning: Output<TableTimePartitioningArgs>? = null, view: Output<TableViewArgs>? = null)

Functions

Link copied to clipboard
open override fun toJava(): TableArgs

Properties

Link copied to clipboard
val clusterings: Output<List<String>>? = null

Specifies column names to use for data clustering. Up to four top-level columns are allowed, and should be specified in descending priority order.

Link copied to clipboard
val datasetId: Output<String>? = null

The dataset ID to create the table in. Changing this forces a new resource to be created.

Link copied to clipboard
val deletionProtection: Output<Boolean>? = null

Whether or not to allow Terraform to destroy the instance. Unless this field is set to false in Terraform state, a terraform destroy or terraform apply that would delete the instance will fail.

Link copied to clipboard
val description: Output<String>? = null

The field description.

Link copied to clipboard

Specifies how the table should be encrypted. If left blank, the table will be encrypted with a Google-managed key; that process is transparent to the user. Structure is documented below.

Link copied to clipboard
val expirationTime: Output<Int>? = null

The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.

Link copied to clipboard

Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table. Structure is documented below.

Link copied to clipboard
val friendlyName: Output<String>? = null

A descriptive name for the table.

Link copied to clipboard
val labels: Output<Map<String, String>>? = null

A mapping of labels to assign to the resource.

Link copied to clipboard

If specified, configures this table as a materialized view. Structure is documented below.

Link copied to clipboard
val project: Output<String>? = null

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard

If specified, configures range-based partitioning for this table. Structure is documented below.

Link copied to clipboard
val schema: Output<String>? = null

A JSON schema for the table.

Link copied to clipboard
val tableId: Output<String>? = null

A unique ID for the resource. Changing this forces a new resource to be created.

Link copied to clipboard

If specified, configures time-based partitioning for this table. Structure is documented below.

Link copied to clipboard
val view: Output<TableViewArgs>? = null

If specified, configures this table as a view. Structure is documented below.