#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TableSummary {
#[prost(string, tag="1")]
pub full_name: ::prost::alloc::string::String,
#[prost(enumeration="TableType", tag="2")]
pub table_type: i32,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Column {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub type_text: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub type_json: ::prost::alloc::string::String,
#[prost(int32, optional, tag="4")]
pub position: ::core::option::Option<i32>,
#[prost(enumeration="ColumnTypeName", tag="5")]
pub type_name: i32,
#[prost(int32, optional, tag="6")]
pub type_precision: ::core::option::Option<i32>,
#[prost(int32, optional, tag="7")]
pub type_scale: ::core::option::Option<i32>,
#[prost(string, optional, tag="8")]
pub type_interval_type: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="9")]
pub comment: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag="10")]
pub nullable: ::core::option::Option<bool>,
#[prost(int32, optional, tag="11")]
pub partition_index: ::core::option::Option<i32>,
#[prost(string, optional, tag="12")]
pub column_id: ::core::option::Option<::prost::alloc::string::String>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TableDependency {
#[prost(string, tag="1")]
pub table_full_name: ::prost::alloc::string::String,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct FunctionDependency {
#[prost(string, tag="1")]
pub function_full_name: ::prost::alloc::string::String,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Dependency {
#[prost(oneof="dependency::Dependency", tags="1, 2")]
pub dependency: ::core::option::Option<dependency::Dependency>,
}
pub mod dependency {
#[cfg_attr(feature = "python", ::pyo3::pyclass)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Dependency {
#[prost(message, tag="1")]
Table(super::TableDependency),
#[prost(message, tag="2")]
Function(super::FunctionDependency),
}
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DependencyList {
#[prost(message, repeated, tag="1")]
pub dependencies: ::prost::alloc::vec::Vec<Dependency>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Table {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub catalog_name: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub schema_name: ::prost::alloc::string::String,
#[prost(enumeration="TableType", tag="4")]
pub table_type: i32,
#[prost(enumeration="DataSourceFormat", tag="5")]
pub data_source_format: i32,
#[prost(message, repeated, tag="6")]
pub columns: ::prost::alloc::vec::Vec<Column>,
#[prost(string, optional, tag="7")]
pub storage_location: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="8")]
pub view_definition: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="9")]
pub view_dependencies: ::core::option::Option<DependencyList>,
#[prost(string, optional, tag="11")]
pub owner: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="12")]
pub comment: ::core::option::Option<::prost::alloc::string::String>,
#[prost(map="string, string", tag="13")]
pub properties: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, optional, tag="14")]
pub storage_credential_name: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, tag="17")]
pub full_name: ::prost::alloc::string::String,
#[prost(int64, optional, tag="18")]
pub created_at: ::core::option::Option<i64>,
#[prost(string, optional, tag="19")]
pub created_by: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int64, optional, tag="20")]
pub updated_at: ::core::option::Option<i64>,
#[prost(string, optional, tag="21")]
pub updated_by: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int64, optional, tag="22")]
pub deleted_at: ::core::option::Option<i64>,
#[prost(string, optional, tag="23")]
pub table_id: ::core::option::Option<::prost::alloc::string::String>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TableType {
Unspecified = 0,
Managed = 1,
External = 2,
View = 3,
MaterializedView = 4,
StreamingTable = 5,
MetricView = 9,
}
impl TableType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "TABLE_TYPE_UNSPECIFIED",
Self::Managed => "MANAGED",
Self::External => "EXTERNAL",
Self::View => "VIEW",
Self::MaterializedView => "MATERIALIZED_VIEW",
Self::StreamingTable => "STREAMING_TABLE",
Self::MetricView => "METRIC_VIEW",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"TABLE_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"MANAGED" => Some(Self::Managed),
"EXTERNAL" => Some(Self::External),
"VIEW" => Some(Self::View),
"MATERIALIZED_VIEW" => Some(Self::MaterializedView),
"STREAMING_TABLE" => Some(Self::StreamingTable),
"METRIC_VIEW" => Some(Self::MetricView),
_ => None,
}
}
}
#[cfg_attr(feature = "python", ::pyo3::pyclass)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum DataSourceFormat {
Unspecified = 0,
Delta = 1,
Iceberg = 2,
Hudi = 3,
Parquet = 4,
Csv = 5,
Json = 6,
Orc = 7,
Avro = 8,
Text = 9,
UnityCatalog = 10,
Deltasharing = 11,
}
impl DataSourceFormat {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "DATA_SOURCE_FORMAT_UNSPECIFIED",
Self::Delta => "DELTA",
Self::Iceberg => "ICEBERG",
Self::Hudi => "HUDI",
Self::Parquet => "PARQUET",
Self::Csv => "CSV",
Self::Json => "JSON",
Self::Orc => "ORC",
Self::Avro => "AVRO",
Self::Text => "TEXT",
Self::UnityCatalog => "UNITY_CATALOG",
Self::Deltasharing => "DELTASHARING",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"DATA_SOURCE_FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
"DELTA" => Some(Self::Delta),
"ICEBERG" => Some(Self::Iceberg),
"HUDI" => Some(Self::Hudi),
"PARQUET" => Some(Self::Parquet),
"CSV" => Some(Self::Csv),
"JSON" => Some(Self::Json),
"ORC" => Some(Self::Orc),
"AVRO" => Some(Self::Avro),
"TEXT" => Some(Self::Text),
"UNITY_CATALOG" => Some(Self::UnityCatalog),
"DELTASHARING" => Some(Self::Deltasharing),
_ => None,
}
}
}
#[cfg_attr(feature = "python", ::pyo3::pyclass)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ColumnTypeName {
Unspecified = 0,
Boolean = 1,
Byte = 2,
Short = 3,
Int = 4,
Long = 5,
Float = 6,
Double = 7,
Date = 8,
Timestamp = 9,
String = 10,
Binary = 11,
Decimal = 12,
Interval = 13,
Array = 14,
Struct = 15,
Map = 16,
Char = 17,
Null = 18,
UserDefinedType = 19,
TimestampNtz = 20,
Variant = 21,
TableType = 22,
}
impl ColumnTypeName {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "COLUMN_TYPE_NAME_UNSPECIFIED",
Self::Boolean => "BOOLEAN",
Self::Byte => "BYTE",
Self::Short => "SHORT",
Self::Int => "INT",
Self::Long => "LONG",
Self::Float => "FLOAT",
Self::Double => "DOUBLE",
Self::Date => "DATE",
Self::Timestamp => "TIMESTAMP",
Self::String => "STRING",
Self::Binary => "BINARY",
Self::Decimal => "DECIMAL",
Self::Interval => "INTERVAL",
Self::Array => "ARRAY",
Self::Struct => "STRUCT",
Self::Map => "MAP",
Self::Char => "CHAR",
Self::Null => "NULL",
Self::UserDefinedType => "USER_DEFINED_TYPE",
Self::TimestampNtz => "TIMESTAMP_NTZ",
Self::Variant => "VARIANT",
Self::TableType => "TABLE_TYPE",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"COLUMN_TYPE_NAME_UNSPECIFIED" => Some(Self::Unspecified),
"BOOLEAN" => Some(Self::Boolean),
"BYTE" => Some(Self::Byte),
"SHORT" => Some(Self::Short),
"INT" => Some(Self::Int),
"LONG" => Some(Self::Long),
"FLOAT" => Some(Self::Float),
"DOUBLE" => Some(Self::Double),
"DATE" => Some(Self::Date),
"TIMESTAMP" => Some(Self::Timestamp),
"STRING" => Some(Self::String),
"BINARY" => Some(Self::Binary),
"DECIMAL" => Some(Self::Decimal),
"INTERVAL" => Some(Self::Interval),
"ARRAY" => Some(Self::Array),
"STRUCT" => Some(Self::Struct),
"MAP" => Some(Self::Map),
"CHAR" => Some(Self::Char),
"NULL" => Some(Self::Null),
"USER_DEFINED_TYPE" => Some(Self::UserDefinedType),
"TIMESTAMP_NTZ" => Some(Self::TimestampNtz),
"VARIANT" => Some(Self::Variant),
"TABLE_TYPE" => Some(Self::TableType),
_ => None,
}
}
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListTableSummariesRequest {
#[prost(string, tag="1")]
pub catalog_name: ::prost::alloc::string::String,
#[prost(string, optional, tag="2")]
pub schema_name_pattern: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="3")]
pub table_name_pattern: ::core::option::Option<::prost::alloc::string::String>,
#[prost(int32, optional, tag="100")]
pub max_results: ::core::option::Option<i32>,
#[prost(string, optional, tag="101")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag="102")]
pub include_manifest_capabilities: ::core::option::Option<bool>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTableSummariesResponse {
#[prost(message, repeated, tag="1")]
pub tables: ::prost::alloc::vec::Vec<TableSummary>,
#[prost(string, optional, tag="2")]
pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ListTablesRequest {
#[prost(string, tag="1")]
pub catalog_name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub schema_name: ::prost::alloc::string::String,
#[prost(int32, optional, tag="3")]
pub max_results: ::core::option::Option<i32>,
#[prost(string, optional, tag="4")]
pub page_token: ::core::option::Option<::prost::alloc::string::String>,
#[prost(bool, optional, tag="5")]
pub include_delta_metadata: ::core::option::Option<bool>,
#[prost(bool, optional, tag="6")]
pub omit_columns: ::core::option::Option<bool>,
#[prost(bool, optional, tag="7")]
pub omit_properties: ::core::option::Option<bool>,
#[prost(bool, optional, tag="8")]
pub omit_username: ::core::option::Option<bool>,
#[prost(bool, optional, tag="9")]
pub include_browse: ::core::option::Option<bool>,
#[prost(bool, optional, tag="10")]
pub include_manifest_capabilities: ::core::option::Option<bool>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTablesResponse {
#[prost(message, repeated, tag="1")]
pub tables: ::prost::alloc::vec::Vec<Table>,
#[prost(string, optional, tag="2")]
pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateTableRequest {
#[prost(string, tag="1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag="2")]
pub schema_name: ::prost::alloc::string::String,
#[prost(string, tag="3")]
pub catalog_name: ::prost::alloc::string::String,
#[prost(enumeration="TableType", tag="4")]
pub table_type: i32,
#[prost(enumeration="DataSourceFormat", tag="5")]
pub data_source_format: i32,
#[prost(message, repeated, tag="6")]
pub columns: ::prost::alloc::vec::Vec<Column>,
#[prost(string, optional, tag="7")]
pub storage_location: ::core::option::Option<::prost::alloc::string::String>,
#[prost(string, optional, tag="8")]
pub comment: ::core::option::Option<::prost::alloc::string::String>,
#[prost(map="string, string", tag="9")]
pub properties: ::std::collections::HashMap<::prost::alloc::string::String, ::prost::alloc::string::String>,
#[prost(string, optional, tag="10")]
pub view_definition: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag="11")]
pub view_dependencies: ::core::option::Option<DependencyList>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetTableRequest {
#[prost(string, tag="1")]
pub full_name: ::prost::alloc::string::String,
#[prost(bool, optional, tag="2")]
pub include_delta_metadata: ::core::option::Option<bool>,
#[prost(bool, optional, tag="3")]
pub include_browse: ::core::option::Option<bool>,
#[prost(bool, optional, tag="4")]
pub include_manifest_capabilities: ::core::option::Option<bool>,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetTableExistsRequest {
#[prost(string, tag="1")]
pub full_name: ::prost::alloc::string::String,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetTableExistsResponse {
#[prost(bool, tag="1")]
pub table_exists: bool,
}
#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct DeleteTableRequest {
#[prost(string, tag="1")]
pub full_name: ::prost::alloc::string::String,
}
include!("unitycatalog.tables.v1.serde.rs");