Skip to main content
func (datasetClient) CreateOrUpdate(
    ctx context.Context,
    kind datasets.DatasetKind,
    codeName string,
    name string,
    fields []datasets.Field,
    options ...datasets.DatasetOption,
) (*datasets.Dataset, error)
Create a dataset or update an existing dataset if a dataset with the given codeName already exists. If the dataset already exists, Tilebox applies the same schema update rules as a direct update. New fields can be added to non-empty datasets. Breaking schema changes are only allowed for empty datasets.

Parameters

kind
datasets.DatasetKind
required
The dataset kind.
codeName
string
required
The stable code identifier for the dataset.
name
string
required
The display name of the dataset.
fields
[]datasets.Field
required
The custom fields in the dataset schema.
options
[]datasets.DatasetOption
Options for dataset metadata.

Options

datasets.WithSummary(summary string)
Set a short dataset summary.
datasets.WithDescription(description string)
Set the dataset’s markdown description.

Dataset kinds

KindTemporal
datasets.DatasetKind
A dataset that contains timestamp, ID, and ingestion time fields.
KindSpatiotemporal
datasets.DatasetKind
A dataset that contains timestamp, ID, ingestion time, and geometry fields.

Field types

field.String(name string)
Field
A string field
field.Bytes(name string)
Field
A bytes field
field.Bool(name string)
Field
A boolean field
field.Int64(name string)
Field
A 64-bit signed integer field
field.Uint64(name string)
Field
A 64-bit unsigned integer field
field.Float64(name string)
Field
A 64-bit floating-point number field
field.Duration(name string)
Field
A duration field
field.Timestamp(name string)
Field
A timestamp field
field.UUID(name string)
Field
A UUID field
field.Geometry(name string)
Field
A geometry field

Field options

Repeated()
Indicate that the field is an array
Description(description string)
Set the description of the field to provide more context and details about the data
ExampleValue(exampleValue string)
Set the example value of the field for documentation purposes

Returns

The created or updated dataset object.
dataset, err := client.Datasets.CreateOrUpdate(ctx,
    datasets.KindSpatiotemporal,
    "my_catalog",
    "My catalog",
    []datasets.Field{
        field.String("field1"),
        field.Int64("field2").Repeated(),
        field.Geometry("field3").Description("Field 3").ExampleValue("Value 3"),
    },
    datasets.WithSummary("Scenes prepared for analysis"),
)