Table Service OpenAPI Spec
OpenHouse Tables APIs (v0.1)
Download OpenAPI specification:Download
API description for OpenHouse Tables API
List Tables in a Database
Returns a list of Table resources present in a database identified by databaseId.
path Parameters
databaseId required | string Database ID |
Responses
Response samples
- 200
- 401
- 404
{- "results": [
- {
- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
]
}
Create a Table
Creates and returns a Table resource in a database identified by databaseId
path Parameters
databaseId required | string Database ID |
Request Body schema: application/jsonrequired
tableId required | string [ 0 .. 128 ] characters ^[a-zA-Z0-9_]+$ Unique Resource identifier for a table within a Database |
databaseId required | string [ 0 .. 128 ] characters ^[a-zA-Z0-9_]+$ Unique Resource identifier for the Database containing the Table |
clusterId required | string^[a-zA-Z0-9-_]+$ Unique Resource identifier for the Cluster containing the Database |
schema required | string Schema of the table. OpenHouse tables use Iceberg schema specification |
object or null (TimePartitionSpec) Time partitioning of the table | |
Array of objects or null or null (ClusteringColumn) Clustering columns for the table | |
required | object Table properties |
object or null (Policies) Policies of the table | |
stageCreate | boolean Default: false Boolean that determines creating a staged table |
baseTableVersion required | string The version of table that the current update is based upon |
tableType | string Enum: "PRIMARY_TABLE" "REPLICA_TABLE" The type of a table |
Responses
Request samples
- Payload
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"},{\"id\":3,\"required\":true,\"name\":\"timestampColumn\",\"type\":\"timestamp\"}]}",
- "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]",
- "tableProperties": {
- "key": "value"
}, - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "stageCreate": false,
- "baseTableVersion": "string",
- "tableType": "PRIMARY_TABLE"
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 409
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
Get Table in a Database
Returns a Table resource identified by tableId in the database identified by databaseId.
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
Update a Table
Updates or creates a Table and returns the Table resources. If the table does not exist, it will be created. If the table exists, it will be updated.
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Request Body schema: application/jsonrequired
tableId required | string [ 0 .. 128 ] characters ^[a-zA-Z0-9_]+$ Unique Resource identifier for a table within a Database |
databaseId required | string [ 0 .. 128 ] characters ^[a-zA-Z0-9_]+$ Unique Resource identifier for the Database containing the Table |
clusterId required | string^[a-zA-Z0-9-_]+$ Unique Resource identifier for the Cluster containing the Database |
schema required | string Schema of the table. OpenHouse tables use Iceberg schema specification |
object or null (TimePartitionSpec) Time partitioning of the table | |
Array of objects or null or null (ClusteringColumn) Clustering columns for the table | |
required | object Table properties |
object or null (Policies) Policies of the table | |
stageCreate | boolean Default: false Boolean that determines creating a staged table |
baseTableVersion required | string The version of table that the current update is based upon |
tableType | string Enum: "PRIMARY_TABLE" "REPLICA_TABLE" The type of a table |
Responses
Request samples
- Payload
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"},{\"id\":3,\"required\":true,\"name\":\"timestampColumn\",\"type\":\"timestamp\"}]}",
- "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]",
- "tableProperties": {
- "key": "value"
}, - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "stageCreate": false,
- "baseTableVersion": "string",
- "tableType": "PRIMARY_TABLE"
}
Response samples
- 200
- 201
- 400
- 401
- 403
- 404
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
Search Tables in a Database
Returns a list of Table resources present in a database. Only filter supported is 'database_id'.
path Parameters
databaseId required | string Database ID |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
{- "results": [
- {
- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
]
}
Get AclPolicies for Table
Returns principal to role mappings on Table resource identified by databaseId and tableId.
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
{- "results": [
- {
- "principal": "string",
- "role": "string",
- "expirationEpochTimeSeconds": 0,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Update AclPolicies for Table
Updates role for principal on Table identified by databaseId and tableId
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Request Body schema: application/jsonrequired
role required | string Role that is being granted/revoked. |
principal required | string Grantee principal whose role is being updated |
operation required | string Enum: "GRANT" "REVOKE" Whether this is a grant/revoke request |
expirationEpochTimeSeconds | integer <int64> Optional epoch time in seconds for the role to expire |
object Optional properties to accept key-value pair |
Responses
Request samples
- Payload
{- "role": "string",
- "principal": "string",
- "operation": "GRANT",
- "expirationEpochTimeSeconds": 1707791165,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
Get AclPolicies for user principal on a table
Returns role mappings, access information for a principal on resource identified by databaseId and tableId.
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
principal required | string Principal |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
{- "results": [
- {
- "principal": "string",
- "role": "string",
- "expirationEpochTimeSeconds": 0,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
List Tables in a Database
Returns a list of Table resources present in a database identified by databaseId.
path Parameters
databaseId required | string Database ID |
Responses
Response samples
- 200
- 401
- 404
{- "results": [
- {
- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
]
}
Create a Table
Creates and returns a Table resource in a database identified by databaseId
path Parameters
databaseId required | string Database ID |
Request Body schema: application/jsonrequired
tableId required | string [ 0 .. 128 ] characters ^[a-zA-Z0-9_]+$ Unique Resource identifier for a table within a Database |
databaseId required | string [ 0 .. 128 ] characters ^[a-zA-Z0-9_]+$ Unique Resource identifier for the Database containing the Table |
clusterId required | string^[a-zA-Z0-9-_]+$ Unique Resource identifier for the Cluster containing the Database |
schema required | string Schema of the table. OpenHouse tables use Iceberg schema specification |
object or null (TimePartitionSpec) Time partitioning of the table | |
Array of objects or null or null (ClusteringColumn) Clustering columns for the table | |
required | object Table properties |
object or null (Policies) Policies of the table | |
stageCreate | boolean Default: false Boolean that determines creating a staged table |
baseTableVersion required | string The version of table that the current update is based upon |
tableType | string Enum: "PRIMARY_TABLE" "REPLICA_TABLE" The type of a table |
Responses
Request samples
- Payload
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"},{\"id\":3,\"required\":true,\"name\":\"timestampColumn\",\"type\":\"timestamp\"}]}",
- "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]",
- "tableProperties": {
- "key": "value"
}, - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "stageCreate": false,
- "baseTableVersion": "string",
- "tableType": "PRIMARY_TABLE"
}
Response samples
- 201
- 400
- 401
- 403
- 404
- 409
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
Get Table in a Database
Returns a Table resource identified by tableId in the database identified by databaseId.
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
Update a Table
Updates or creates a Table and returns the Table resources. If the table does not exist, it will be created. If the table exists, it will be updated.
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Request Body schema: application/jsonrequired
tableId required | string [ 0 .. 128 ] characters ^[a-zA-Z0-9_]+$ Unique Resource identifier for a table within a Database |
databaseId required | string [ 0 .. 128 ] characters ^[a-zA-Z0-9_]+$ Unique Resource identifier for the Database containing the Table |
clusterId required | string^[a-zA-Z0-9-_]+$ Unique Resource identifier for the Cluster containing the Database |
schema required | string Schema of the table. OpenHouse tables use Iceberg schema specification |
object or null (TimePartitionSpec) Time partitioning of the table | |
Array of objects or null or null (ClusteringColumn) Clustering columns for the table | |
required | object Table properties |
object or null (Policies) Policies of the table | |
stageCreate | boolean Default: false Boolean that determines creating a staged table |
baseTableVersion required | string The version of table that the current update is based upon |
tableType | string Enum: "PRIMARY_TABLE" "REPLICA_TABLE" The type of a table |
Responses
Request samples
- Payload
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"},{\"id\":3,\"required\":true,\"name\":\"timestampColumn\",\"type\":\"timestamp\"}]}",
- "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]",
- "tableProperties": {
- "key": "value"
}, - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "stageCreate": false,
- "baseTableVersion": "string",
- "tableType": "PRIMARY_TABLE"
}
Response samples
- 200
- 201
- 400
- 401
- 403
- 404
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
Search Tables in a Database
Returns a list of Table resources present in a database. Only filter supported is 'database_id'.
path Parameters
databaseId required | string Database ID |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
{- "results": [
- {
- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
]
}
Get AclPolicies for Table
Returns principal to role mappings on Table resource identified by databaseId and tableId.
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
{- "results": [
- {
- "principal": "string",
- "role": "string",
- "expirationEpochTimeSeconds": 0,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Update AclPolicies for Table
Updates role for principal on Table identified by databaseId and tableId
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Request Body schema: application/jsonrequired
role required | string Role that is being granted/revoked. |
principal required | string Grantee principal whose role is being updated |
operation required | string Enum: "GRANT" "REVOKE" Whether this is a grant/revoke request |
expirationEpochTimeSeconds | integer <int64> Optional epoch time in seconds for the role to expire |
object Optional properties to accept key-value pair |
Responses
Request samples
- Payload
{- "role": "string",
- "principal": "string",
- "operation": "GRANT",
- "expirationEpochTimeSeconds": 1707791165,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
Get AclPolicies for user principal on a table
Returns role mappings, access information for a principal on resource identified by databaseId and tableId.
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
principal required | string Principal |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
{- "results": [
- {
- "principal": "string",
- "role": "string",
- "expirationEpochTimeSeconds": 0,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Puts Iceberg snapshots to Table
Puts Iceberg snapshots to Table
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Request Body schema: application/jsonrequired
baseTableVersion required | string Base Table Version |
jsonSnapshots | Array of strings List of json serialized snapshots to put |
object Map of branch name to json serialized SnapshotRef. Key is the branch name, and value is the SnapshotRef. | |
object (CreateUpdateTableRequestBody) Request containing details of the Table to be created |
Responses
Request samples
- Payload
{- "baseTableVersion": "Base table version to apply the change to",
- "jsonSnapshots": [
- "string"
], - "snapshotRefs": {
- "property1": "string",
- "property2": "string"
}, - "createUpdateTableRequestBody": {
- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"},{\"id\":3,\"required\":true,\"name\":\"timestampColumn\",\"type\":\"timestamp\"}]}",
- "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]",
- "tableProperties": {
- "key": "value"
}, - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "stageCreate": false,
- "baseTableVersion": "string",
- "tableType": "PRIMARY_TABLE"
}
}
Response samples
- 200
- 201
- 400
- 409
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
Puts Iceberg snapshots to Table
Puts Iceberg snapshots to Table
path Parameters
databaseId required | string Database ID |
tableId required | string Table ID |
Request Body schema: application/jsonrequired
baseTableVersion required | string Base Table Version |
jsonSnapshots | Array of strings List of json serialized snapshots to put |
object Map of branch name to json serialized SnapshotRef. Key is the branch name, and value is the SnapshotRef. | |
object (CreateUpdateTableRequestBody) Request containing details of the Table to be created |
Responses
Request samples
- Payload
{- "baseTableVersion": "Base table version to apply the change to",
- "jsonSnapshots": [
- "string"
], - "snapshotRefs": {
- "property1": "string",
- "property2": "string"
}, - "createUpdateTableRequestBody": {
- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"},{\"id\":3,\"required\":true,\"name\":\"timestampColumn\",\"type\":\"timestamp\"}]}",
- "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]",
- "tableProperties": {
- "key": "value"
}, - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "stageCreate": false,
- "baseTableVersion": "string",
- "tableType": "PRIMARY_TABLE"
}
}
Response samples
- 200
- 201
- 400
- 409
{- "tableId": "my_table",
- "databaseId": "my_database",
- "clusterId": "my_cluster",
- "tableUri": "my_cluster.my_database.my_table",
- "tableUUID": "73ea0d21-3c89-4987-a6cf-26e4f86bdcee",
- "tableLocation": "<fs>://<hostname>/<openhouse_namespace>/<database_name>/<tableUUID>/metadata/<uuid>.metadata.json",
- "tableVersion": "string",
- "tableCreator": "bob",
- "schema": "{\"type\":\"struct\",\"fields\":[{\"id\":1,\"required\":true,\"name\":\"id\",\"type\":\"string\"},{\"id\":2,\"required\":true,\"name\":\"name\",\"type\":\"string\"}]}",
- "lastModifiedTime": 1651002318265,
- "creationTime": 1651002318265,
- "tableProperties": {
- "key": "value"
}, - "timePartitioning": "\"timePartitioning\":{\"columnName\":\"timestampCol\",\"granularity\":\"HOUR\"}",
- "clustering": [
- "\"clustering\":[{\"columnName\":\"country\"},{\"columnName\":\"city\",\"transform\":{\"transformType\":\"TRUNCATE\",\"transformParams\":[\"1000\"]}}]"
], - "policies": {
- "retention": "{retention:{count:3, granularity: 'day'}}",
- "sharingEnabled": false,
- "columnTags": "{'colName': [PII, HC]}"
}, - "tableType": "PRIMARY_TABLE"
}
Get AclPolicies on Database
Returns principal to role mappings on resource identified by databaseId.
path Parameters
databaseId required | string Database ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "results": [
- {
- "principal": "string",
- "role": "string",
- "expirationEpochTimeSeconds": 0,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Update AclPolicies on database
Updates role for principal on database identified by databaseId
path Parameters
databaseId required | string Database ID |
Request Body schema: application/jsonrequired
role required | string Role that is being granted/revoked. |
principal required | string Grantee principal whose role is being updated |
operation required | string Enum: "GRANT" "REVOKE" Whether this is a grant/revoke request |
expirationEpochTimeSeconds | integer <int64> Optional epoch time in seconds for the role to expire |
object Optional properties to accept key-value pair |
Responses
Request samples
- Payload
{- "role": "string",
- "principal": "string",
- "operation": "GRANT",
- "expirationEpochTimeSeconds": 1707791165,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
Get AclPolicies on Database
Returns principal to role mappings on resource identified by databaseId.
path Parameters
databaseId required | string Database ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "results": [
- {
- "principal": "string",
- "role": "string",
- "expirationEpochTimeSeconds": 0,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Update AclPolicies on database
Updates role for principal on database identified by databaseId
path Parameters
databaseId required | string Database ID |
Request Body schema: application/jsonrequired
role required | string Role that is being granted/revoked. |
principal required | string Grantee principal whose role is being updated |
operation required | string Enum: "GRANT" "REVOKE" Whether this is a grant/revoke request |
expirationEpochTimeSeconds | integer <int64> Optional epoch time in seconds for the role to expire |
object Optional properties to accept key-value pair |
Responses
Request samples
- Payload
{- "role": "string",
- "principal": "string",
- "operation": "GRANT",
- "expirationEpochTimeSeconds": 1707791165,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
Get AclPolicies on Database
Returns principal to role mappings on resource identified by databaseId.
path Parameters
databaseId required | string Database ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "results": [
- {
- "principal": "string",
- "role": "string",
- "expirationEpochTimeSeconds": 0,
- "properties": {
- "property1": "string",
- "property2": "string"
}
}
]
}