1#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
6#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
7pub struct MatchColumn {
8 #[prost(string, tag="1")]
11 pub alias: ::prost::alloc::string::String,
12 #[prost(string, tag="2")]
14 pub condition: ::prost::alloc::string::String,
15}
16#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
18#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
19pub struct FunctionArg {
20 #[prost(oneof="function_arg::Value", tags="1, 2")]
21 pub value: ::core::option::Option<function_arg::Value>,
22}
23pub mod function_arg {
25 #[cfg_attr(feature = "python", ::pyo3::pyclass)]
26 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
27 pub enum Value {
28 #[prost(string, tag="1")]
30 Alias(::prost::alloc::string::String),
31 #[prost(string, tag="2")]
33 Constant(::prost::alloc::string::String),
34 }
35}
36#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
39#[derive(Clone, PartialEq, ::prost::Message)]
40pub struct FunctionRef {
41 #[prost(string, tag="1")]
43 pub function_name: ::prost::alloc::string::String,
44 #[prost(message, repeated, tag="2")]
46 pub using: ::prost::alloc::vec::Vec<FunctionArg>,
47}
48#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
54#[derive(Clone, PartialEq, ::prost::Message)]
55pub struct PolicyInfo {
56 #[prost(string, tag="1")]
58 pub name: ::prost::alloc::string::String,
59 #[prost(string, optional, tag="2")]
61 pub id: ::core::option::Option<::prost::alloc::string::String>,
62 #[prost(string, tag="3")]
66 pub on_securable_type: ::prost::alloc::string::String,
67 #[prost(string, tag="4")]
69 pub on_securable_fullname: ::prost::alloc::string::String,
70 #[prost(enumeration="PolicyType", tag="5")]
72 pub policy_type: i32,
73 #[prost(string, repeated, tag="6")]
75 pub to_principals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
76 #[prost(string, repeated, tag="7")]
78 pub except_principals: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
79 #[prost(string, optional, tag="8")]
82 pub when_condition: ::core::option::Option<::prost::alloc::string::String>,
83 #[prost(message, repeated, tag="9")]
86 pub match_columns: ::prost::alloc::vec::Vec<MatchColumn>,
87 #[prost(string, optional, tag="12")]
89 pub comment: ::core::option::Option<::prost::alloc::string::String>,
90 #[prost(int64, optional, tag="13")]
92 pub created_at: ::core::option::Option<i64>,
93 #[prost(int64, optional, tag="14")]
95 pub updated_at: ::core::option::Option<i64>,
96 #[prost(oneof="policy_info::Function", tags="10, 11")]
97 pub function: ::core::option::Option<policy_info::Function>,
98}
99pub mod policy_info {
101 #[cfg_attr(feature = "python", ::pyo3::pyclass)]
102 #[derive(Clone, PartialEq, ::prost::Oneof)]
103 pub enum Function {
104 #[prost(message, tag="10")]
106 RowFilter(super::FunctionRef),
107 #[prost(message, tag="11")]
109 ColumnMask(super::FunctionRef),
110 }
111}
112#[cfg_attr(feature = "python", ::pyo3::pyclass)]
114#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
115#[repr(i32)]
116pub enum PolicyType {
117 Unspecified = 0,
118 RowFilter = 1,
120 ColumnMask = 2,
122}
123impl PolicyType {
124 pub fn as_str_name(&self) -> &'static str {
129 match self {
130 Self::Unspecified => "POLICY_TYPE_UNSPECIFIED",
131 Self::RowFilter => "POLICY_TYPE_ROW_FILTER",
132 Self::ColumnMask => "POLICY_TYPE_COLUMN_MASK",
133 }
134 }
135 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
137 match value {
138 "POLICY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
139 "POLICY_TYPE_ROW_FILTER" => Some(Self::RowFilter),
140 "POLICY_TYPE_COLUMN_MASK" => Some(Self::ColumnMask),
141 _ => None,
142 }
143 }
144}
145#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
147#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
148pub struct ListPoliciesRequest {
149 #[prost(string, tag="1")]
153 pub on_securable_type: ::prost::alloc::string::String,
154 #[prost(string, tag="2")]
156 pub on_securable_fullname: ::prost::alloc::string::String,
157 #[prost(bool, optional, tag="3")]
162 pub include_inherited: ::core::option::Option<bool>,
163 #[prost(int32, optional, tag="4")]
165 pub max_results: ::core::option::Option<i32>,
166 #[prost(string, optional, tag="5")]
168 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
169}
170#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
172#[derive(Clone, PartialEq, ::prost::Message)]
173pub struct ListPoliciesResponse {
174 #[prost(message, repeated, tag="1")]
176 pub policies: ::prost::alloc::vec::Vec<PolicyInfo>,
177 #[prost(string, optional, tag="2")]
179 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
180}
181#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
183#[derive(Clone, PartialEq, ::prost::Message)]
184pub struct CreatePolicyRequest {
185 #[prost(string, tag="1")]
189 pub on_securable_type: ::prost::alloc::string::String,
190 #[prost(string, tag="2")]
192 pub on_securable_fullname: ::prost::alloc::string::String,
193 #[prost(message, optional, tag="3")]
195 pub policy_info: ::core::option::Option<PolicyInfo>,
196}
197#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
199#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
200pub struct GetPolicyRequest {
201 #[prost(string, tag="1")]
205 pub on_securable_type: ::prost::alloc::string::String,
206 #[prost(string, tag="2")]
208 pub on_securable_fullname: ::prost::alloc::string::String,
209 #[prost(string, tag="3")]
211 pub name: ::prost::alloc::string::String,
212}
213#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
215#[derive(Clone, PartialEq, ::prost::Message)]
216pub struct UpdatePolicyRequest {
217 #[prost(string, tag="1")]
221 pub on_securable_type: ::prost::alloc::string::String,
222 #[prost(string, tag="2")]
224 pub on_securable_fullname: ::prost::alloc::string::String,
225 #[prost(string, tag="3")]
227 pub name: ::prost::alloc::string::String,
228 #[prost(message, optional, tag="4")]
230 pub policy_info: ::core::option::Option<PolicyInfo>,
231 #[prost(string, optional, tag="5")]
233 pub update_mask: ::core::option::Option<::prost::alloc::string::String>,
234}
235#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
237#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
238pub struct DeletePolicyRequest {
239 #[prost(string, tag="1")]
243 pub on_securable_type: ::prost::alloc::string::String,
244 #[prost(string, tag="2")]
246 pub on_securable_fullname: ::prost::alloc::string::String,
247 #[prost(string, tag="3")]
249 pub name: ::prost::alloc::string::String,
250}
251include!("unitycatalog.policies.v1.serde.rs");
252