bitwarden_core/client/
login_method.rs

1#[cfg(feature = "secrets")]
2use std::path::PathBuf;
3
4use bitwarden_crypto::Kdf;
5
6#[cfg(feature = "secrets")]
7use crate::{OrganizationId, auth::AccessToken};
8
9#[derive(Debug)]
10pub(crate) enum LoginMethod {
11    #[allow(dead_code)]
12    User(UserLoginMethod),
13    // TODO: Organizations supports api key
14    // Organization(OrganizationLoginMethod),
15    #[cfg(feature = "secrets")]
16    ServiceAccount(ServiceAccountLoginMethod),
17}
18
19#[allow(dead_code)]
20#[derive(Debug)]
21pub(crate) enum UserLoginMethod {
22    Username {
23        client_id: String,
24        email: String,
25        kdf: Kdf,
26    },
27    ApiKey {
28        client_id: String,
29        client_secret: String,
30
31        email: String,
32        kdf: Kdf,
33    },
34}
35
36#[cfg(feature = "secrets")]
37#[derive(Debug)]
38pub(crate) enum ServiceAccountLoginMethod {
39    AccessToken {
40        access_token: AccessToken,
41        organization_id: OrganizationId,
42        state_file: Option<PathBuf>,
43    },
44}