Skip to content

Limber Timber Datatypes

Below are all the datatypes that make up operation data structures.

Operation Types

The KIND class constant is the string value to use in the operation file to specify that operation.

CreateSchema

Bases: Operation

Semantics: CREATE SCHEMA

KIND: str = 'create_schema'

schema_object: Schema

DropSchema

Bases: Operation

Semantics: DROP TABLE

KIND: str = 'drop_schema'

schema_name: QualifiedName

SetDefaultTableExpiration

Bases: Operation

KIND: str = 'set_default_table_expiration'

schema_name: QualifiedName

expiration: timedelta | None = None

SetDefaultPartitionExpiration

Bases: Operation

KIND: str = 'set_default_partition_expiration'

schema_name: QualifiedName

expiration: timedelta | None = None

SetDefaultKmsKeyName

Bases: Operation

KIND: str = 'set_default_kms_key_name'

schema_name: QualifiedName

key_name: str | None = None

SetFailoverReservation

Bases: Operation

KIND: str = 'set_failover_reservation'

schema_name: QualifiedName

reservation: str | None = None

SetCaseSensitive

Bases: Operation

KIND: str = 'set_case_sensitive'

schema_name: QualifiedName

case_sensitive: bool

SetIsPrimaryReplica

Bases: Operation

KIND: str = 'set_is_primary_replica'

schema_name: QualifiedName

is_primary: bool

SetPrimaryReplica

Bases: Operation

KIND: str = 'set_primary_replica'

schema_name: QualifiedName

replica: str | None = None

SetMaxTimeTravel

Bases: Operation

KIND: str = 'set_max_time_travel'

schema_name: QualifiedName

duration: timedelta | None = None

SetStorageBilling

Bases: Operation

KIND: str = 'set_storage_billing'

schema_name: QualifiedName

storage_billing: StorageBilling

CreateTable

Bases: Operation

Semantics: CREATE TABLE

KIND: str = 'create_table'

table: Table

DropTable

Bases: Operation

Semantics: DROP TABLE

KIND: str = 'drop_table'

table_name: QualifiedName

RenameTable

Bases: Operation

KIND: str = 'rename_table'

from_name: QualifiedName

to_name: Identifier

SetPrimaryKey

Bases: Operation

KIND: str = 'set_primary_key'

table_name: QualifiedName

primary_key: PrimaryKey | None = None

AddForeignKey

Bases: Operation

KIND: str = 'add_foreign_key'

table_name: QualifiedName

foreign_key: ForeignKey

DropConstraint

Bases: Operation

KIND: str = 'drop_constraint'

table_name: QualifiedName

constraint_name: ConstraintName

SetPartitionExpiration

Bases: Operation

KIND: str = 'set_partition_expiration'

table_name: QualifiedName

expiration: timedelta | None = None

SetRequirePartitionFilter

Bases: Operation

KIND: str = 'set_require_partition_filter'

table_name: QualifiedName

require_filter: bool

SetClustering

Bases: Operation

KIND: str = 'set_clustering'

table_name: QualifiedName

column_names: list[ColumnName] | None = None

SetFriendlyName

Bases: Operation

KIND: str = 'set_friendly_name'

entity_name: QualifiedName

friendly_name: str | None = None

SetDescription

Bases: Operation

KIND: str = 'set_description'

entity_name: QualifiedName

description: str | None = None

SetLabels

Bases: Operation

KIND: str = 'set_labels'

entity_name: QualifiedName

labels: dict[str, str] | None = None

SetTags

Bases: Operation

KIND: str = 'set_tags'

entity_name: QualifiedName

tags: dict[str, str] | None = None

SetExpirationTimestamp

Bases: Operation

KIND: str = 'set_expiration_timestamp'

entity_name: QualifiedName

expiration_timestamp: datetime | None = None

SetDefaultRoundingMode

Bases: Operation

KIND: str = 'set_default_rounding_mode'

entity_name: QualifiedName

rounding_mode: RoundingMode | None = None

SetMaxStaleness

Bases: Operation

KIND: str = 'set_max_staleness'

entity_name: QualifiedName

max_staleness: IntervalLiteral | None = None

SetEnableChangeHistory

Bases: Operation

KIND: str = 'set_enable_change_history'

table_name: QualifiedName

enabled: bool

SetEnableFineGrainedMutations

Bases: Operation

KIND: str = 'set_enable_fine_grained_mutations'

table_name: QualifiedName

enabled: bool

SetKmsKeyName

Bases: Operation

KIND: str = 'set_kms_key_name'

table_name: QualifiedName

key_name: str | None = None

CreateView

Bases: Operation

Semantics: CREATE OR REPLACE VIEW

KIND: str = 'create_view'

view: View

DropView

Bases: Operation

Semantics: DROP VIEW

KIND: str = 'drop_view'

view_name: QualifiedName

CreateMaterializedView

Bases: Operation

Semantics: CREATE OR REPLACE MATERIALIZED VIEW

KIND: str = 'create_materialized_view'

materialized_view: MaterializedView

DropMaterializedView

Bases: Operation

Semantics: DROP MATERIALIZED VIEW

KIND: str = 'drop_materialized_view'

materialized_view_name: QualifiedName

AddColumn

Bases: Operation

KIND: str = 'add_column'

table_name: QualifiedName

column: Column

DropColumn

Bases: Operation

KIND: str = 'drop_column'

table_name: QualifiedName

column_name: ColumnName

RenameColumn

Bases: Operation

KIND: str = 'rename_column'

table_name: QualifiedName

from_name: ColumnName

to_name: ColumnName

SetColumnDatatype

Bases: Operation

KIND: str = 'set_column_datatype'

table_name: QualifiedName

column_name: ColumnName

datatype: Datatype

AddColumnField

Bases: Operation

KIND: str = 'add_column_field'

table_name: QualifiedName

field_path: FieldPath

datatype: Datatype

DropColumnField

Bases: Operation

KIND: str = 'drop_column_field'

table_name: QualifiedName

field_path: FieldPath

SetColumnNullable

Bases: Operation

KIND: str = 'set_column_nullable'

table_name: QualifiedName

table_name: QualifiedName

SetColumnDescription

Bases: Operation

KIND: str = 'set_column_description'

column_name: ColumnName

table_name: QualifiedName

SetColumnRoundingMode

Bases: Operation

KIND: str = 'set_column_rounding_mode'

column_name: ColumnName

table_name: QualifiedName

Schema Types

IntervalLiteral

Bases: LitiModel

year: int = 0

month: int = 0

day: int = 0

hour: int = 0

minute: int = 0

second: int = 0

microsecond: int = 0

sign: Literal['+', '-'] = '+'

RoundingMode

Bases: LitiModel

string: RoundingModeLiteral

ValidatedString

Bases: LitiModel

string: str

DatabaseName

Identifier

FieldPath

Bases: ValidatedString

. delimited path to the field (e.g. 'column_name.sub_field_1.sub_field_2')

SchemaName

Bases: Identifier

ColumnName

Bases: Identifier

QualifiedName

Bases: LitiModel

database: DatabaseName | None = None

schema_name: SchemaName | None = None

name: Identifier | None = None

PrimaryKey

Bases: LitiModel

column_names: list[ColumnName] = Field(min_length=1)

enforced: bool | None = None

ForeignReference

Bases: LitiModel

local_column_name: ColumnName

foreign_column_name: ColumnName

ForeignKey

Bases: LitiModel

name: ConstraintName | None = None

foreign_table_name: QualifiedName

references: list[ForeignReference] = Field(min_length=1)

enforced: bool | None = None

Column

Bases: LitiModel

name: ColumnName

datatype: Datatype | None = None

default_expression: str | None = None

nullable: bool = False

description: str | None = None

rounding_mode: RoundingMode | None = None

Partitioning

Bases: LitiModel

kind: Literal['TIME', 'INT']

column: ColumnName | None = None

column_datatype: Datatype | None = None

time_unit: Literal['YEAR', 'MONTH', 'DAY', 'HOUR'] | None = None

int_start: int | None = None

int_end: int | None = None

int_step: int | None = None

expiration: timedelta | None = None

require_filter: bool = False

BigLake

Bases: LitiModel

connection_id: str

storage_uri: str

file_format: Literal['PARQUET'] = 'PARQUET'

table_format: Literal['ICEBERG'] = 'ICEBERG'

Entity

Bases: LitiModel

name: QualifiedName

friendly_name: str | None = None

description: str | None = None

labels: dict[str, str] | None = None

tags: dict[str, str] | None = None

Schema

Bases: Entity

location: str | None = None

default_collate: str | None = None

default_table_expiration: timedelta | None = None

default_partition_expiration: timedelta | None = None

default_rounding_mode: RoundingMode | None = None

default_kms_key_name: str | None = None

failover_reservation: str | None = None

is_case_sensitive: bool | None = None

is_primary_replica: bool | None = None

primary_replica: str | None = None

max_time_travel: timedelta | None = None

storage_billing: StorageBilling | None = None

Relation

Bases: Entity

expiration_timestamp: datetime | None = None

Table

Bases: Relation

columns: list[Column] | None = None

default_collate: str | None = None

primary_key: PrimaryKey | None = None

foreign_keys: list[ForeignKey] | None = None

partitioning: Partitioning | None = None

clustering: list[ColumnName] | None = None

default_rounding_mode: RoundingMode | None = None

max_staleness: IntervalLiteral | None = None

enable_change_history: bool | None = None

enable_fine_grained_mutations: bool | None = None

kms_key_name: str | None = None

big_lake: BigLake | None = None

ViewLike

Bases: LitiModel

select_sql: str | None = None

select_file: str | None = None

entity_names: dict[str, QualifiedName] | None = None

View

Bases: Relation, ViewLike

columns: list[Column] | None = None

privacy_policy: dict[str, Any] | None = None

MaterializedView

Bases: Relation, ViewLike

partitioning: Partitioning | None = None

clustering: list[ColumnName] | None = None

allow_non_incremental_definition: bool | None = None

enable_refresh: bool | None = None

refresh_interval: timedelta | None = None

Datatypes

Datatype

Bases: LitiModel

type: str

Bool

Bases: Datatype

type: Literal['BOOL'] = 'BOOL'

Int

Bases: Datatype

type: Literal['INT'] = 'INT'

bits: int | None = None

Float

Bases: Datatype

type: Literal['FLOAT'] = 'FLOAT'

bits: int | None = None

Geography

Bases: Datatype

type: Literal['GEOGRAPHY'] = 'GEOGRAPHY'

Numeric

Bases: Datatype

type: Literal['NUMERIC'] = 'NUMERIC'

precision: int | None = None

scale: int | None = None

BigNumeric

Bases: Datatype

type: Literal['BIGNUMERIC'] = 'BIGNUMERIC'

precision: int | None = None

scale: int | None = None

String

Bases: Datatype

type: Literal['STRING'] = 'STRING'

characters: int | None = None

Bytes

Bases: Datatype

type: Literal['BYTES'] = 'BYTES'

bytes: int | None = None

Json

Bases: Datatype

type: Literal['JSON'] = 'JSON'

Date

Bases: Datatype

type: Literal['DATE'] = 'DATE'

Time

Bases: Datatype

type: Literal['TIME'] = 'TIME'

DateTime

Bases: Datatype

type: Literal['DATETIME'] = 'DATETIME'

Timestamp

Bases: Datatype

type: Literal['TIMESTAMP'] = 'TIMESTAMP'

Range

Bases: Datatype

type: Literal['RANGE'] = 'RANGE'

kind: Literal['DATE', 'DATETIME', 'TIMESTAMP']

Interval

Bases: Datatype

type: Literal['INTERVAL'] = 'INTERVAL'

Array

Bases: Datatype

type: Literal['ARRAY'] = 'ARRAY'

inner: Datatype

Struct

Bases: Datatype

type: Literal['STRUCT'] = 'STRUCT'

fields: dict[FieldName, Datatype]