Skip to main content

turnkey_client/generated/
external.data.v1.rs

1#[derive(Debug)]
2#[derive(::serde::Serialize, ::serde::Deserialize)]
3#[serde(rename_all = "camelCase")]
4#[derive(Clone, PartialEq)]
5pub struct Timestamp {
6    /// Stringified int
7    pub seconds: ::prost::alloc::string::String,
8    /// Stringified int
9    pub nanos: ::prost::alloc::string::String,
10}
11#[derive(Debug)]
12/// This proto definition is used in our external-facing APIs.
13/// It's important to leverage annotations because they're used in our external interfaces.
14#[derive(::serde::Serialize, ::serde::Deserialize)]
15#[serde(rename_all = "camelCase")]
16#[derive(Clone, PartialEq)]
17pub struct OrganizationData {
18    pub organization_id: ::prost::alloc::string::String,
19    pub name: ::prost::alloc::string::String,
20    #[serde(default)]
21    pub users: ::prost::alloc::vec::Vec<User>,
22    #[serde(default)]
23    pub policies: ::prost::alloc::vec::Vec<Policy>,
24    #[serde(default)]
25    pub private_keys: ::prost::alloc::vec::Vec<PrivateKey>,
26    #[serde(default)]
27    pub invitations: ::prost::alloc::vec::Vec<Invitation>,
28    #[serde(default)]
29    pub tags: ::prost::alloc::vec::Vec<Tag>,
30    #[serde(default)]
31    pub root_quorum: ::core::option::Option<Quorum>,
32    #[serde(default)]
33    pub features: ::prost::alloc::vec::Vec<
34        super::super::super::immutable::data::v1::Feature,
35    >,
36    #[serde(default)]
37    pub wallets: ::prost::alloc::vec::Vec<Wallet>,
38    #[serde(default)]
39    pub smart_contract_interface_references: ::prost::alloc::vec::Vec<
40        super::super::super::immutable::data::v1::SmartContractInterfaceReference,
41    >,
42}
43#[derive(Debug)]
44#[derive(::serde::Serialize, ::serde::Deserialize)]
45#[serde(rename_all = "camelCase")]
46#[derive(Clone, PartialEq)]
47pub struct OauthProvider {
48    pub provider_id: ::prost::alloc::string::String,
49    pub provider_name: ::prost::alloc::string::String,
50    pub issuer: ::prost::alloc::string::String,
51    pub audience: ::prost::alloc::string::String,
52    pub subject: ::prost::alloc::string::String,
53    #[serde(default)]
54    pub created_at: ::core::option::Option<Timestamp>,
55    #[serde(default)]
56    pub updated_at: ::core::option::Option<Timestamp>,
57}
58#[derive(Debug)]
59#[derive(::serde::Serialize, ::serde::Deserialize)]
60#[serde(rename_all = "camelCase")]
61#[derive(Clone, PartialEq)]
62pub struct User {
63    pub user_id: ::prost::alloc::string::String,
64    pub user_name: ::prost::alloc::string::String,
65    /// some users do not have emails (programmatic users)
66    #[serde(default)]
67    pub user_email: ::core::option::Option<::prost::alloc::string::String>,
68    #[serde(default)]
69    pub user_phone_number: ::core::option::Option<::prost::alloc::string::String>,
70    #[serde(default)]
71    pub authenticators: ::prost::alloc::vec::Vec<Authenticator>,
72    #[serde(default)]
73    pub api_keys: ::prost::alloc::vec::Vec<ApiKey>,
74    #[serde(default)]
75    pub user_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
76    #[serde(default)]
77    pub oauth_providers: ::prost::alloc::vec::Vec<OauthProvider>,
78    #[serde(default)]
79    pub created_at: ::core::option::Option<Timestamp>,
80    #[serde(default)]
81    pub updated_at: ::core::option::Option<Timestamp>,
82    #[serde(default)]
83    pub mfa_policies: ::prost::alloc::vec::Vec<MfaPolicy>,
84}
85#[derive(Debug)]
86#[serde_with::serde_as]
87#[derive(::serde::Serialize, ::serde::Deserialize)]
88#[serde(rename_all = "camelCase")]
89#[derive(Clone, PartialEq)]
90pub struct ApiKey {
91    #[serde(default)]
92    pub credential: ::core::option::Option<Credential>,
93    pub api_key_id: ::prost::alloc::string::String,
94    pub api_key_name: ::prost::alloc::string::String,
95    #[serde(default)]
96    pub created_at: ::core::option::Option<Timestamp>,
97    #[serde(default)]
98    pub updated_at: ::core::option::Option<Timestamp>,
99    #[serde(default)]
100    #[serde_as(as = "Option<serde_with::DisplayFromStr>")]
101    pub expiration_seconds: ::core::option::Option<u64>,
102}
103#[derive(Debug)]
104#[derive(::serde::Serialize, ::serde::Deserialize)]
105#[serde(rename_all = "camelCase")]
106#[derive(Clone, PartialEq)]
107pub struct Authenticator {
108    #[serde(default)]
109    pub transports: Vec<
110        super::super::super::immutable::webauthn::v1::AuthenticatorTransport,
111    >,
112    pub attestation_type: ::prost::alloc::string::String,
113    pub aaguid: ::prost::alloc::string::String,
114    pub credential_id: ::prost::alloc::string::String,
115    pub model: ::prost::alloc::string::String,
116    #[serde(default)]
117    pub credential: ::core::option::Option<Credential>,
118    pub authenticator_id: ::prost::alloc::string::String,
119    pub authenticator_name: ::prost::alloc::string::String,
120    #[serde(default)]
121    pub created_at: ::core::option::Option<Timestamp>,
122    #[serde(default)]
123    pub updated_at: ::core::option::Option<Timestamp>,
124}
125#[derive(Debug)]
126#[derive(::serde::Serialize, ::serde::Deserialize)]
127#[serde(rename_all = "camelCase")]
128#[derive(Clone, PartialEq)]
129pub struct Credential {
130    pub public_key: ::prost::alloc::string::String,
131    /// To distinguish the credential type (webauthn, API key)
132    pub r#type: super::super::super::immutable::common::v1::CredentialType,
133    /// The session profile associated with this credential, if any (only CREDENTIAL_TYPE_LOGIN credentials)
134    #[serde(default)]
135    pub session_profile_id: ::core::option::Option<::prost::alloc::string::String>,
136}
137#[derive(Debug)]
138#[derive(::serde::Serialize, ::serde::Deserialize)]
139#[serde(rename_all = "camelCase")]
140#[derive(Clone, PartialEq)]
141pub struct Policy {
142    pub policy_id: ::prost::alloc::string::String,
143    pub policy_name: ::prost::alloc::string::String,
144    pub effect: super::super::super::immutable::common::v1::Effect,
145    #[serde(default)]
146    pub created_at: ::core::option::Option<Timestamp>,
147    #[serde(default)]
148    pub updated_at: ::core::option::Option<Timestamp>,
149    pub notes: ::prost::alloc::string::String,
150    #[serde(default)]
151    pub consensus: ::core::option::Option<::prost::alloc::string::String>,
152    #[serde(default)]
153    pub condition: ::core::option::Option<::prost::alloc::string::String>,
154}
155#[derive(Debug)]
156#[derive(::serde::Serialize, ::serde::Deserialize)]
157#[serde(rename_all = "camelCase")]
158#[derive(Clone, PartialEq)]
159pub struct PrivateKey {
160    pub private_key_id: ::prost::alloc::string::String,
161    pub public_key: ::prost::alloc::string::String,
162    pub private_key_name: ::prost::alloc::string::String,
163    pub curve: super::super::super::immutable::common::v1::Curve,
164    #[serde(default)]
165    pub addresses: ::prost::alloc::vec::Vec<Address>,
166    #[serde(default)]
167    pub private_key_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
168    #[serde(default)]
169    pub created_at: ::core::option::Option<Timestamp>,
170    #[serde(default)]
171    pub updated_at: ::core::option::Option<Timestamp>,
172    #[serde(default)]
173    pub exported: bool,
174    #[serde(default)]
175    pub imported: bool,
176}
177#[derive(Debug)]
178#[derive(::serde::Serialize, ::serde::Deserialize)]
179#[serde(rename_all = "camelCase")]
180#[derive(Clone, PartialEq)]
181pub struct Address {
182    pub format: super::super::super::immutable::common::v1::AddressFormat,
183    pub address: ::prost::alloc::string::String,
184}
185#[derive(Debug)]
186#[derive(::serde::Serialize, ::serde::Deserialize)]
187#[serde(rename_all = "camelCase")]
188#[derive(Clone, PartialEq)]
189pub struct Invitation {
190    pub invitation_id: ::prost::alloc::string::String,
191    pub receiver_user_name: ::prost::alloc::string::String,
192    pub receiver_email: ::prost::alloc::string::String,
193    #[serde(default)]
194    pub receiver_user_tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
195    pub access_type: super::super::super::immutable::common::v1::AccessType,
196    pub status: InvitationStatus,
197    #[serde(default)]
198    pub created_at: ::core::option::Option<Timestamp>,
199    #[serde(default)]
200    pub updated_at: ::core::option::Option<Timestamp>,
201    pub sender_user_id: ::prost::alloc::string::String,
202}
203#[derive(Debug)]
204#[derive(::serde::Serialize, ::serde::Deserialize)]
205#[serde(rename_all = "camelCase")]
206#[derive(Clone, PartialEq)]
207pub struct Tag {
208    pub tag_id: ::prost::alloc::string::String,
209    pub tag_name: ::prost::alloc::string::String,
210    pub tag_type: TagType,
211    #[serde(default)]
212    pub created_at: ::core::option::Option<Timestamp>,
213    #[serde(default)]
214    pub updated_at: ::core::option::Option<Timestamp>,
215}
216#[derive(Debug)]
217#[derive(::serde::Serialize, ::serde::Deserialize)]
218#[serde(rename_all = "camelCase")]
219#[derive(Clone, PartialEq)]
220pub struct Quorum {
221    #[serde(default)]
222    pub threshold: i32,
223    #[serde(default)]
224    pub user_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
225}
226#[derive(Debug)]
227#[derive(::serde::Serialize, ::serde::Deserialize)]
228#[serde(rename_all = "camelCase")]
229#[derive(Clone, PartialEq)]
230pub struct Wallet {
231    pub wallet_id: ::prost::alloc::string::String,
232    pub wallet_name: ::prost::alloc::string::String,
233    #[serde(default)]
234    pub created_at: ::core::option::Option<Timestamp>,
235    #[serde(default)]
236    pub updated_at: ::core::option::Option<Timestamp>,
237    #[serde(default)]
238    pub exported: bool,
239    #[serde(default)]
240    pub imported: bool,
241}
242#[derive(Debug)]
243#[derive(::serde::Serialize, ::serde::Deserialize)]
244#[serde(rename_all = "camelCase")]
245#[derive(Clone, PartialEq)]
246pub struct Config {
247    #[serde(default)]
248    pub features: ::prost::alloc::vec::Vec<
249        super::super::super::immutable::data::v1::Feature,
250    >,
251    #[serde(default)]
252    pub quorum: ::core::option::Option<Quorum>,
253}
254#[derive(Debug)]
255#[derive(::serde::Serialize, ::serde::Deserialize)]
256#[serde(rename_all = "camelCase")]
257#[derive(Clone, PartialEq)]
258pub struct Oauth2Credential {
259    pub oauth2_credential_id: ::prost::alloc::string::String,
260    pub organization_id: ::prost::alloc::string::String,
261    pub provider: super::super::super::immutable::common::v1::Oauth2Provider,
262    pub client_id: ::prost::alloc::string::String,
263    pub encrypted_client_secret: ::prost::alloc::string::String,
264    #[serde(default)]
265    pub created_at: ::core::option::Option<Timestamp>,
266    #[serde(default)]
267    pub updated_at: ::core::option::Option<Timestamp>,
268}
269#[derive(Debug)]
270#[derive(::serde::Serialize, ::serde::Deserialize)]
271#[serde(rename_all = "camelCase")]
272#[derive(Clone, PartialEq)]
273pub struct FiatOnRampCredential {
274    pub fiat_onramp_credential_id: ::prost::alloc::string::String,
275    pub organization_id: ::prost::alloc::string::String,
276    pub onramp_provider: super::super::super::immutable::common::v1::FiatOnRampProvider,
277    /// @inject_tag: validate:"omitempty"
278    #[serde(default)]
279    pub project_id: ::core::option::Option<::prost::alloc::string::String>,
280    /// @inject_tag: validate:"required"
281    pub publishable_api_key: ::prost::alloc::string::String,
282    /// @inject_tag: validate:"required"
283    pub encrypted_secret_api_key: ::prost::alloc::string::String,
284    /// @inject_tag: validate:"omitempty"
285    #[serde(default)]
286    pub encrypted_private_api_key: ::core::option::Option<
287        ::prost::alloc::string::String,
288    >,
289    /// @inject_tag: validate:"omitempty"
290    #[serde(default)]
291    pub sandbox_mode: bool,
292    #[serde(default)]
293    pub created_at: ::core::option::Option<Timestamp>,
294    #[serde(default)]
295    pub updated_at: ::core::option::Option<Timestamp>,
296}
297#[derive(Debug)]
298#[derive(::serde::Serialize, ::serde::Deserialize)]
299#[serde(rename_all = "camelCase")]
300#[derive(Clone, PartialEq)]
301pub struct MfaPolicy {
302    pub mfa_policy_id: ::prost::alloc::string::String,
303    pub mfa_policy_name: ::prost::alloc::string::String,
304    pub condition: ::prost::alloc::string::String,
305    #[serde(default)]
306    pub required_authentication_methods: ::prost::alloc::vec::Vec<
307        RequiredAuthenticationMethod,
308    >,
309    #[serde(default)]
310    pub order: u32,
311    #[serde(default)]
312    pub notes: ::core::option::Option<::prost::alloc::string::String>,
313    #[serde(default)]
314    pub created_at: ::core::option::Option<Timestamp>,
315    #[serde(default)]
316    pub updated_at: ::core::option::Option<Timestamp>,
317}
318#[derive(Debug)]
319#[derive(::serde::Serialize, ::serde::Deserialize)]
320#[serde(rename_all = "camelCase")]
321#[derive(Clone, PartialEq)]
322pub struct RequiredAuthenticationMethod {
323    #[serde(default)]
324    pub any: ::prost::alloc::vec::Vec<AuthenticationMethod>,
325}
326#[derive(Debug)]
327#[derive(::serde::Serialize, ::serde::Deserialize)]
328#[serde(rename_all = "camelCase")]
329#[derive(Clone, PartialEq)]
330pub struct AuthenticationMethod {
331    pub r#type: super::super::super::immutable::common::v1::AuthenticationType,
332    #[serde(default)]
333    pub id: ::core::option::Option<::prost::alloc::string::String>,
334}
335#[derive(::serde::Serialize, ::serde::Deserialize)]
336#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
337pub enum InvitationStatus {
338    #[serde(rename = "INVITATION_STATUS_UNSPECIFIED")]
339    Unspecified = 0,
340    #[serde(rename = "INVITATION_STATUS_CREATED")]
341    Created = 1,
342    #[serde(rename = "INVITATION_STATUS_ACCEPTED")]
343    Accepted = 2,
344    #[serde(rename = "INVITATION_STATUS_REVOKED")]
345    Revoked = 3,
346}
347impl InvitationStatus {
348    /// String value of the enum field names used in the ProtoBuf definition.
349    ///
350    /// The values are not transformed in any way and thus are considered stable
351    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
352    pub fn as_str_name(&self) -> &'static str {
353        match self {
354            Self::Unspecified => "INVITATION_STATUS_UNSPECIFIED",
355            Self::Created => "INVITATION_STATUS_CREATED",
356            Self::Accepted => "INVITATION_STATUS_ACCEPTED",
357            Self::Revoked => "INVITATION_STATUS_REVOKED",
358        }
359    }
360    /// Creates an enum from field names used in the ProtoBuf definition.
361    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
362        match value {
363            "INVITATION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
364            "INVITATION_STATUS_CREATED" => Some(Self::Created),
365            "INVITATION_STATUS_ACCEPTED" => Some(Self::Accepted),
366            "INVITATION_STATUS_REVOKED" => Some(Self::Revoked),
367            _ => None,
368        }
369    }
370}
371#[derive(::serde::Serialize, ::serde::Deserialize)]
372#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
373pub enum TagType {
374    #[serde(rename = "TAG_TYPE_UNSPECIFIED")]
375    Unspecified = 0,
376    #[serde(rename = "TAG_TYPE_USER")]
377    User = 1,
378    #[serde(rename = "TAG_TYPE_PRIVATE_KEY")]
379    PrivateKey = 3,
380}
381impl TagType {
382    /// String value of the enum field names used in the ProtoBuf definition.
383    ///
384    /// The values are not transformed in any way and thus are considered stable
385    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
386    pub fn as_str_name(&self) -> &'static str {
387        match self {
388            Self::Unspecified => "TAG_TYPE_UNSPECIFIED",
389            Self::User => "TAG_TYPE_USER",
390            Self::PrivateKey => "TAG_TYPE_PRIVATE_KEY",
391        }
392    }
393    /// Creates an enum from field names used in the ProtoBuf definition.
394    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
395        match value {
396            "TAG_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
397            "TAG_TYPE_USER" => Some(Self::User),
398            "TAG_TYPE_PRIVATE_KEY" => Some(Self::PrivateKey),
399            _ => None,
400        }
401    }
402}
403#[derive(Debug)]
404#[derive(::serde::Serialize, ::serde::Deserialize)]
405#[serde(rename_all = "camelCase")]
406#[derive(Clone, PartialEq)]
407pub struct BootProof {
408    pub ephemeral_public_key_hex: ::prost::alloc::string::String,
409    pub aws_attestation_doc_b64: ::prost::alloc::string::String,
410    pub qos_manifest_b64: ::prost::alloc::string::String,
411    pub qos_manifest_envelope_b64: ::prost::alloc::string::String,
412    pub deployment_label: ::prost::alloc::string::String,
413    pub enclave_app: ::prost::alloc::string::String,
414    pub owner: ::prost::alloc::string::String,
415    #[serde(default)]
416    pub created_at: ::core::option::Option<Timestamp>,
417    #[serde(default)]
418    pub qos_manifest_version: ::core::option::Option<::prost::alloc::string::String>,
419}
420#[derive(Debug)]
421#[derive(::serde::Serialize, ::serde::Deserialize)]
422#[serde(rename_all = "camelCase")]
423#[derive(Clone, PartialEq)]
424pub struct AppProof {
425    pub scheme: SignatureScheme,
426    pub public_key: ::prost::alloc::string::String,
427    pub proof_payload: ::prost::alloc::string::String,
428    pub signature: ::prost::alloc::string::String,
429}
430#[derive(Debug)]
431#[derive(::serde::Serialize, ::serde::Deserialize)]
432#[serde(rename_all = "camelCase")]
433#[derive(Clone, PartialEq)]
434pub struct AppProofPayload {
435    pub r#type: AppProofType,
436    pub timestamp_ms: ::prost::alloc::string::String,
437    #[serde(default)]
438    pub proof_payload: ::core::option::Option<app_proof_payload::ProofPayload>,
439}
440/// Nested message and enum types in `AppProofPayload`.
441pub mod app_proof_payload {
442    #[derive(::serde::Serialize, ::serde::Deserialize)]
443    #[derive(Clone, PartialEq)]
444    #[derive(Debug)]
445    pub enum ProofPayload {
446        #[serde(rename = "PROOF_PAYLOAD_ADDRESS_DERIVATION_PROOF")]
447        AddressDerivationProof(super::AddressDerivationProofPayload),
448        #[serde(rename = "PROOF_PAYLOAD_POLICY_OUTCOME_PROOF")]
449        PolicyOutcomeProof(super::PolicyOutcomeProofPayload),
450    }
451}
452#[derive(Debug)]
453#[derive(::serde::Serialize, ::serde::Deserialize)]
454#[serde(rename_all = "camelCase")]
455#[derive(Clone, PartialEq)]
456pub struct AddressDerivationProofPayload {
457    pub organization_id: ::prost::alloc::string::String,
458    #[serde(default)]
459    pub wallet_id: ::core::option::Option<::prost::alloc::string::String>,
460    #[serde(default)]
461    pub derivation_path: ::core::option::Option<::prost::alloc::string::String>,
462    pub address: ::prost::alloc::string::String,
463}
464#[derive(Debug)]
465#[derive(::serde::Serialize, ::serde::Deserialize)]
466#[serde(rename_all = "camelCase")]
467#[derive(Clone, PartialEq)]
468pub struct PolicyOutcomeProofPayload {
469    pub organization_id: ::prost::alloc::string::String,
470    pub outcome: super::super::super::immutable::common::v1::Outcome,
471    pub decision_context_digest: ::prost::alloc::string::String,
472    pub organization_data_digest: ::prost::alloc::string::String,
473    pub parent_organization_data_digest: ::prost::alloc::string::String,
474    #[serde(default)]
475    pub user_request_approvals: ::prost::alloc::vec::Vec<
476        super::super::super::immutable::models::v1::Signature,
477    >,
478}
479#[derive(::serde::Serialize, ::serde::Deserialize)]
480#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
481pub enum SignatureScheme {
482    #[serde(rename = "SIGNATURE_SCHEME_UNSPECIFIED")]
483    Unspecified = 0,
484    /// Scheme used by our enclave applications
485    #[serde(rename = "SIGNATURE_SCHEME_EPHEMERAL_KEY_P256")]
486    EphemeralKeyP256 = 1,
487}
488impl SignatureScheme {
489    /// String value of the enum field names used in the ProtoBuf definition.
490    ///
491    /// The values are not transformed in any way and thus are considered stable
492    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
493    pub fn as_str_name(&self) -> &'static str {
494        match self {
495            Self::Unspecified => "SIGNATURE_SCHEME_UNSPECIFIED",
496            Self::EphemeralKeyP256 => "SIGNATURE_SCHEME_EPHEMERAL_KEY_P256",
497        }
498    }
499    /// Creates an enum from field names used in the ProtoBuf definition.
500    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
501        match value {
502            "SIGNATURE_SCHEME_UNSPECIFIED" => Some(Self::Unspecified),
503            "SIGNATURE_SCHEME_EPHEMERAL_KEY_P256" => Some(Self::EphemeralKeyP256),
504            _ => None,
505        }
506    }
507}
508#[derive(::serde::Serialize, ::serde::Deserialize)]
509#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
510pub enum AppProofType {
511    #[serde(rename = "APP_PROOF_TYPE_UNSPECIFIED")]
512    Unspecified = 0,
513    #[serde(rename = "APP_PROOF_TYPE_ADDRESS_DERIVATION")]
514    AddressDerivation = 1,
515    #[serde(rename = "APP_PROOF_TYPE_POLICY_OUTCOME")]
516    PolicyOutcome = 2,
517}
518impl AppProofType {
519    /// String value of the enum field names used in the ProtoBuf definition.
520    ///
521    /// The values are not transformed in any way and thus are considered stable
522    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
523    pub fn as_str_name(&self) -> &'static str {
524        match self {
525            Self::Unspecified => "APP_PROOF_TYPE_UNSPECIFIED",
526            Self::AddressDerivation => "APP_PROOF_TYPE_ADDRESS_DERIVATION",
527            Self::PolicyOutcome => "APP_PROOF_TYPE_POLICY_OUTCOME",
528        }
529    }
530    /// Creates an enum from field names used in the ProtoBuf definition.
531    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
532        match value {
533            "APP_PROOF_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
534            "APP_PROOF_TYPE_ADDRESS_DERIVATION" => Some(Self::AddressDerivation),
535            "APP_PROOF_TYPE_POLICY_OUTCOME" => Some(Self::PolicyOutcome),
536            _ => None,
537        }
538    }
539}
540#[derive(Debug)]
541#[derive(::serde::Serialize, ::serde::Deserialize)]
542#[serde(rename_all = "camelCase")]
543#[derive(Clone, PartialEq)]
544pub struct MfaStatus {
545    pub mfa_policy_id: ::prost::alloc::string::String,
546    pub user_id: ::prost::alloc::string::String,
547    #[serde(default)]
548    pub satisfied: bool,
549    #[serde(default)]
550    pub satisfied_methods: ::prost::alloc::vec::Vec<AuthenticationMethod>,
551    #[serde(default)]
552    pub required_methods: ::prost::alloc::vec::Vec<RequiredAuthenticationMethod>,
553}
554#[derive(Debug)]
555/// SessionProfile defines the constraints and capabilities of a session that can be created by a user.
556#[derive(::serde::Serialize, ::serde::Deserialize)]
557#[serde(rename_all = "camelCase")]
558#[derive(Clone, PartialEq)]
559pub struct SessionProfile {
560    pub session_profile_id: ::prost::alloc::string::String,
561    pub session_profile_name: ::prost::alloc::string::String,
562    pub scope: ::prost::alloc::string::String,
563    #[serde(default)]
564    pub expiration_seconds: ::core::option::Option<::prost::alloc::string::String>,
565    #[serde(default)]
566    pub notes: ::core::option::Option<::prost::alloc::string::String>,
567    #[serde(default)]
568    pub created_at: ::core::option::Option<Timestamp>,
569    #[serde(default)]
570    pub updated_at: ::core::option::Option<Timestamp>,
571}
572#[derive(Debug)]
573#[derive(::serde::Serialize, ::serde::Deserialize)]
574#[serde(rename_all = "camelCase")]
575#[derive(Clone, PartialEq)]
576pub struct SmartContractInterface {
577    pub organization_id: ::prost::alloc::string::String,
578    pub smart_contract_interface_id: ::prost::alloc::string::String,
579    pub smart_contract_address: ::prost::alloc::string::String,
580    pub smart_contract_interface: ::prost::alloc::string::String,
581    pub r#type: ::prost::alloc::string::String,
582    pub label: ::prost::alloc::string::String,
583    pub notes: ::prost::alloc::string::String,
584    #[serde(default)]
585    pub created_at: ::core::option::Option<Timestamp>,
586    #[serde(default)]
587    pub updated_at: ::core::option::Option<Timestamp>,
588}
589#[derive(Debug)]
590#[derive(::serde::Serialize, ::serde::Deserialize)]
591#[serde(rename_all = "camelCase")]
592#[derive(Clone, PartialEq)]
593pub struct TvcApp {
594    pub id: ::prost::alloc::string::String,
595    pub organization_id: ::prost::alloc::string::String,
596    pub name: ::prost::alloc::string::String,
597    pub quorum_public_key: ::prost::alloc::string::String,
598    #[serde(default)]
599    pub manifest_set: ::core::option::Option<TvcOperatorSet>,
600    #[serde(default)]
601    pub share_set: ::core::option::Option<TvcOperatorSet>,
602    #[serde(default)]
603    pub enable_egress: bool,
604    #[serde(default)]
605    pub created_at: ::core::option::Option<Timestamp>,
606    #[serde(default)]
607    pub updated_at: ::core::option::Option<Timestamp>,
608    #[serde(default)]
609    pub live_deployment_id: ::core::option::Option<::prost::alloc::string::String>,
610    pub public_domain: ::prost::alloc::string::String,
611    #[serde(default)]
612    pub enable_debug_mode_deployments: bool,
613}
614#[derive(Debug)]
615#[derive(::serde::Serialize, ::serde::Deserialize)]
616#[serde(rename_all = "camelCase")]
617#[derive(Clone, PartialEq)]
618pub struct TvcDeployment {
619    pub id: ::prost::alloc::string::String,
620    pub organization_id: ::prost::alloc::string::String,
621    pub app_id: ::prost::alloc::string::String,
622    #[serde(default)]
623    pub manifest_set: ::core::option::Option<TvcOperatorSet>,
624    #[serde(default)]
625    pub share_set: ::core::option::Option<TvcOperatorSet>,
626    #[serde(default)]
627    pub manifest: ::core::option::Option<TvcManifest>,
628    #[serde(default)]
629    pub manifest_approvals: ::prost::alloc::vec::Vec<TvcOperatorApproval>,
630    pub qos_version: ::prost::alloc::string::String,
631    #[serde(default)]
632    pub pivot_container: ::core::option::Option<TvcContainerSpec>,
633    #[serde(default)]
634    pub created_at: ::core::option::Option<Timestamp>,
635    #[serde(default)]
636    pub updated_at: ::core::option::Option<Timestamp>,
637    #[serde(default)]
638    pub delete: bool,
639    #[serde(default)]
640    pub debug_mode: bool,
641}
642#[derive(Debug)]
643#[derive(::serde::Serialize, ::serde::Deserialize)]
644#[serde(rename_all = "camelCase")]
645#[derive(Clone, PartialEq)]
646pub struct TvcContainerSpec {
647    pub container_url: ::prost::alloc::string::String,
648    pub path: ::prost::alloc::string::String,
649    #[serde(default)]
650    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
651    #[serde(default)]
652    pub has_pull_secret: bool,
653    pub health_check_type: super::super::super::immutable::common::v1::TvcHealthCheckType,
654    #[serde(default)]
655    pub health_check_port: u32,
656    #[serde(default)]
657    pub public_ingress_port: u32,
658}
659#[derive(Debug)]
660#[serde_with::serde_as]
661#[derive(::serde::Serialize, ::serde::Deserialize)]
662#[serde(rename_all = "camelCase")]
663#[derive(Clone, PartialEq)]
664pub struct TvcOperatorApproval {
665    pub id: ::prost::alloc::string::String,
666    pub manifest_id: ::prost::alloc::string::String,
667    #[serde(default)]
668    pub operator: ::core::option::Option<TvcOperator>,
669    #[serde(default)]
670    #[serde_as(as = "serde_with::base64::Base64")]
671    pub approval: ::prost::alloc::vec::Vec<u8>,
672    #[serde(default)]
673    pub created_at: ::core::option::Option<Timestamp>,
674    #[serde(default)]
675    pub updated_at: ::core::option::Option<Timestamp>,
676}
677#[derive(Debug)]
678#[derive(::serde::Serialize, ::serde::Deserialize)]
679#[serde(rename_all = "camelCase")]
680#[derive(Clone, PartialEq)]
681pub struct TvcOperatorSet {
682    pub id: ::prost::alloc::string::String,
683    pub name: ::prost::alloc::string::String,
684    pub organization_id: ::prost::alloc::string::String,
685    #[serde(default)]
686    pub operators: ::prost::alloc::vec::Vec<TvcOperator>,
687    #[serde(default)]
688    pub threshold: u32,
689    #[serde(default)]
690    pub created_at: ::core::option::Option<Timestamp>,
691    #[serde(default)]
692    pub updated_at: ::core::option::Option<Timestamp>,
693}
694#[derive(Debug)]
695#[derive(::serde::Serialize, ::serde::Deserialize)]
696#[serde(rename_all = "camelCase")]
697#[derive(Clone, PartialEq)]
698pub struct TvcOperator {
699    pub id: ::prost::alloc::string::String,
700    pub name: ::prost::alloc::string::String,
701    pub public_key: ::prost::alloc::string::String,
702    #[serde(default)]
703    pub created_at: ::core::option::Option<Timestamp>,
704    #[serde(default)]
705    pub updated_at: ::core::option::Option<Timestamp>,
706}
707#[derive(Debug)]
708#[serde_with::serde_as]
709#[derive(::serde::Serialize, ::serde::Deserialize)]
710#[serde(rename_all = "camelCase")]
711#[derive(Clone, PartialEq)]
712pub struct TvcManifest {
713    pub id: ::prost::alloc::string::String,
714    #[serde(default)]
715    #[serde_as(as = "serde_with::base64::Base64")]
716    pub manifest: ::prost::alloc::vec::Vec<u8>,
717    #[serde(default)]
718    pub created_at: ::core::option::Option<Timestamp>,
719    #[serde(default)]
720    pub updated_at: ::core::option::Option<Timestamp>,
721}
722#[derive(Debug)]
723#[derive(::serde::Serialize, ::serde::Deserialize)]
724#[serde(rename_all = "camelCase")]
725#[derive(Clone, PartialEq)]
726pub struct DeploymentStatus {
727    pub deployment_id: ::prost::alloc::string::String,
728    #[serde(default)]
729    pub ready_replicas: i32,
730    #[serde(default)]
731    pub desired_replicas: i32,
732    #[serde(default)]
733    pub last_updated_time: ::core::option::Option<Timestamp>,
734}
735#[derive(Debug)]
736#[derive(::serde::Serialize, ::serde::Deserialize)]
737#[serde(rename_all = "camelCase")]
738#[derive(Clone, PartialEq)]
739pub struct AppStatus {
740    pub app_id: ::prost::alloc::string::String,
741    #[serde(default)]
742    pub deployments: ::prost::alloc::vec::Vec<DeploymentStatus>,
743    pub targeted_deployment_id: ::prost::alloc::string::String,
744}
745#[derive(Debug)]
746#[derive(::serde::Serialize, ::serde::Deserialize)]
747#[serde(rename_all = "camelCase")]
748#[derive(Clone, PartialEq)]
749pub struct LogLine {
750    pub content: ::prost::alloc::string::String,
751    #[serde(default)]
752    pub ts: ::core::option::Option<Timestamp>,
753}
754#[derive(Debug)]
755/// An account derived from a Wallet
756#[derive(::serde::Serialize, ::serde::Deserialize)]
757#[serde(rename_all = "camelCase")]
758#[derive(Clone, PartialEq)]
759pub struct WalletAccount {
760    pub wallet_account_id: ::prost::alloc::string::String,
761    pub organization_id: ::prost::alloc::string::String,
762    pub wallet_id: ::prost::alloc::string::String,
763    pub curve: super::super::super::immutable::common::v1::Curve,
764    pub path_format: super::super::super::immutable::common::v1::PathFormat,
765    pub path: ::prost::alloc::string::String,
766    pub address_format: super::super::super::immutable::common::v1::AddressFormat,
767    pub address: ::prost::alloc::string::String,
768    #[serde(default)]
769    pub created_at: ::core::option::Option<Timestamp>,
770    #[serde(default)]
771    pub updated_at: ::core::option::Option<Timestamp>,
772    #[serde(default)]
773    pub public_key: ::core::option::Option<::prost::alloc::string::String>,
774    #[serde(default)]
775    pub wallet_details: ::core::option::Option<Wallet>,
776    /// TODO(tim): temporarily removing this since it's always "false"
777    /// bool exported = 12 [
778    ///   (google.api.field_behavior) = REQUIRED,
779    ///   (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field) = {description: "True when a given Account is exported, false otherwise."}
780    /// ];
781    #[serde(default)]
782    pub name: ::core::option::Option<::prost::alloc::string::String>,
783}