1#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
5#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
6pub struct AzureServicePrincipal {
7 #[prost(string, tag="1")]
9 pub directory_id: ::prost::alloc::string::String,
10 #[prost(string, tag="2")]
12 pub application_id: ::prost::alloc::string::String,
13 #[prost(oneof="azure_service_principal::Credential", tags="3, 5")]
14 pub credential: ::core::option::Option<azure_service_principal::Credential>,
15}
16pub mod azure_service_principal {
18 #[cfg_attr(feature = "python", ::pyo3::pyclass)]
19 #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
20 pub enum Credential {
21 #[prost(string, tag="3")]
23 ClientSecret(::prost::alloc::string::String),
24 #[prost(string, tag="5")]
28 FederatedTokenFile(::prost::alloc::string::String),
29 }
30}
31#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
33#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
34pub struct AzureManagedIdentity {
35 #[prost(string, tag="1")]
39 pub access_connector_id: ::prost::alloc::string::String,
40 #[prost(string, optional, tag="2")]
42 pub credential_id: ::core::option::Option<::prost::alloc::string::String>,
43 #[prost(string, optional, tag="3")]
51 pub managed_identity_id: ::core::option::Option<::prost::alloc::string::String>,
52}
53#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
55#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
56pub struct AzureStorageKey {
57 #[prost(string, tag="1")]
59 pub account_name: ::prost::alloc::string::String,
60 #[prost(string, tag="2")]
62 pub account_key: ::prost::alloc::string::String,
63}
64#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
70#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
71pub struct AwsIamRoleConfig {
72 #[prost(string, tag="1")]
74 pub role_arn: ::prost::alloc::string::String,
75 #[prost(string, optional, tag="2")]
77 pub region: ::core::option::Option<::prost::alloc::string::String>,
78 #[prost(string, optional, tag="3")]
84 pub access_key_id: ::core::option::Option<::prost::alloc::string::String>,
85 #[prost(string, optional, tag="4")]
87 pub secret_access_key: ::core::option::Option<::prost::alloc::string::String>,
88 #[prost(string, optional, tag="5")]
91 pub session_token: ::core::option::Option<::prost::alloc::string::String>,
92}
93#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
95#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
96pub struct AwsIamRole {
97 #[prost(string, tag="1")]
99 pub external_id: ::prost::alloc::string::String,
100 #[prost(string, tag="2")]
102 pub role_arn: ::prost::alloc::string::String,
103 #[prost(string, tag="3")]
106 pub unity_catalog_iam_arn: ::prost::alloc::string::String,
107}
108#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
110#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
111pub struct DatabricksGcpServiceAccount {
112 #[prost(string, optional, tag="1")]
114 pub credential_id: ::core::option::Option<::prost::alloc::string::String>,
115 #[prost(string, optional, tag="2")]
117 pub email: ::core::option::Option<::prost::alloc::string::String>,
118 #[prost(string, optional, tag="3")]
120 pub private_key_id: ::core::option::Option<::prost::alloc::string::String>,
121}
122#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
124#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
125pub struct Credential {
126 #[prost(string, tag="1")]
130 pub name: ::prost::alloc::string::String,
131 #[prost(string, optional, tag="2")]
133 pub id: ::core::option::Option<::prost::alloc::string::String>,
134 #[prost(enumeration="Purpose", tag="3")]
136 pub purpose: i32,
137 #[prost(bool, tag="4")]
141 pub read_only: bool,
142 #[prost(string, optional, tag="5")]
144 pub comment: ::core::option::Option<::prost::alloc::string::String>,
145 #[prost(string, optional, tag="6")]
147 pub owner: ::core::option::Option<::prost::alloc::string::String>,
148 #[prost(int64, optional, tag="7")]
150 pub created_at: ::core::option::Option<i64>,
151 #[prost(string, optional, tag="8")]
153 pub created_by: ::core::option::Option<::prost::alloc::string::String>,
154 #[prost(int64, optional, tag="9")]
156 pub updated_at: ::core::option::Option<i64>,
157 #[prost(string, optional, tag="10")]
159 pub updated_by: ::core::option::Option<::prost::alloc::string::String>,
160 #[prost(bool, tag="11")]
164 pub used_for_managed_storage: bool,
165 #[prost(string, optional, tag="12")]
167 pub full_name: ::core::option::Option<::prost::alloc::string::String>,
168 #[prost(message, optional, tag="100")]
173 pub azure_service_principal: ::core::option::Option<AzureServicePrincipal>,
174 #[prost(message, optional, tag="101")]
176 pub azure_managed_identity: ::core::option::Option<AzureManagedIdentity>,
177 #[prost(message, optional, tag="102")]
179 pub azure_storage_key: ::core::option::Option<AzureStorageKey>,
180 #[prost(message, optional, tag="103")]
182 pub aws_iam_role: ::core::option::Option<AwsIamRoleConfig>,
183 #[prost(message, optional, tag="104")]
185 pub databricks_gcp_service_account: ::core::option::Option<DatabricksGcpServiceAccount>,
186}
187#[cfg_attr(feature = "python", ::pyo3::pyclass)]
189#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
190#[repr(i32)]
191pub enum Purpose {
192 Unspecified = 0,
193 Storage = 1,
195 Service = 2,
197}
198impl Purpose {
199 pub fn as_str_name(&self) -> &'static str {
204 match self {
205 Self::Unspecified => "PURPOSE_UNSPECIFIED",
206 Self::Storage => "STORAGE",
207 Self::Service => "SERVICE",
208 }
209 }
210 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
212 match value {
213 "PURPOSE_UNSPECIFIED" => Some(Self::Unspecified),
214 "STORAGE" => Some(Self::Storage),
215 "SERVICE" => Some(Self::Service),
216 _ => None,
217 }
218 }
219}
220#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
221#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
222pub struct ListCredentialsRequest {
223 #[prost(enumeration="Purpose", optional, tag="1")]
225 pub purpose: ::core::option::Option<i32>,
226 #[prost(int32, optional, tag="2")]
228 pub max_results: ::core::option::Option<i32>,
229 #[prost(string, optional, tag="3")]
231 pub page_token: ::core::option::Option<::prost::alloc::string::String>,
232}
233#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
234#[derive(Clone, PartialEq, ::prost::Message)]
235pub struct ListCredentialsResponse {
236 #[prost(message, repeated, tag="1")]
238 pub credentials: ::prost::alloc::vec::Vec<Credential>,
239 #[prost(string, optional, tag="2")]
241 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
242}
243#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
245#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
246pub struct CreateCredentialRequest {
247 #[prost(string, tag="1")]
249 pub name: ::prost::alloc::string::String,
250 #[prost(enumeration="Purpose", tag="2")]
252 pub purpose: i32,
253 #[prost(string, optional, tag="3")]
255 pub comment: ::core::option::Option<::prost::alloc::string::String>,
256 #[prost(bool, optional, tag="4")]
258 pub read_only: ::core::option::Option<bool>,
259 #[prost(bool, optional, tag="5")]
261 pub skip_validation: ::core::option::Option<bool>,
262 #[prost(message, optional, tag="100")]
264 pub azure_service_principal: ::core::option::Option<AzureServicePrincipal>,
265 #[prost(message, optional, tag="101")]
267 pub azure_managed_identity: ::core::option::Option<AzureManagedIdentity>,
268 #[prost(message, optional, tag="102")]
270 pub azure_storage_key: ::core::option::Option<AzureStorageKey>,
271 #[prost(message, optional, tag="103")]
273 pub aws_iam_role: ::core::option::Option<AwsIamRoleConfig>,
274 #[prost(message, optional, tag="104")]
276 pub databricks_gcp_service_account: ::core::option::Option<DatabricksGcpServiceAccount>,
277}
278#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
280#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
281pub struct GetCredentialRequest {
282 #[prost(string, tag="1")]
284 pub name: ::prost::alloc::string::String,
285}
286#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
288#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
289pub struct UpdateCredentialRequest {
290 #[prost(string, tag="1")]
292 pub name: ::prost::alloc::string::String,
293 #[prost(string, optional, tag="2")]
295 pub new_name: ::core::option::Option<::prost::alloc::string::String>,
296 #[prost(string, optional, tag="3")]
298 pub comment: ::core::option::Option<::prost::alloc::string::String>,
299 #[prost(bool, optional, tag="4")]
301 pub read_only: ::core::option::Option<bool>,
302 #[prost(string, optional, tag="5")]
304 pub owner: ::core::option::Option<::prost::alloc::string::String>,
305 #[prost(bool, optional, tag="6")]
307 pub skip_validation: ::core::option::Option<bool>,
308 #[prost(bool, optional, tag="7")]
311 pub force: ::core::option::Option<bool>,
312 #[prost(message, optional, tag="100")]
314 pub azure_service_principal: ::core::option::Option<AzureServicePrincipal>,
315 #[prost(message, optional, tag="101")]
317 pub azure_managed_identity: ::core::option::Option<AzureManagedIdentity>,
318 #[prost(message, optional, tag="102")]
320 pub azure_storage_key: ::core::option::Option<AzureStorageKey>,
321 #[prost(message, optional, tag="103")]
323 pub aws_iam_role: ::core::option::Option<AwsIamRoleConfig>,
324 #[prost(message, optional, tag="104")]
326 pub databricks_gcp_service_account: ::core::option::Option<DatabricksGcpServiceAccount>,
327}
328#[cfg_attr(feature = "python", ::pyo3::pyclass(get_all, set_all))]
330#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
331pub struct DeleteCredentialRequest {
332 #[prost(string, tag="1")]
334 pub name: ::prost::alloc::string::String,
335}
336include!("unitycatalog.credentials.v1.serde.rs");
337