1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/// Response struct returning an \[Object\] on success and \[ValidationResult\] if invalid fields were provided
#[derive(Serialize, Deserialize)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Response {
    /// struct with field -> error pairs to provide feedback about invalid fields
    #[prost(message, optional, tag = "1")]
    pub validation_result: ::core::option::Option<super::ValidationResult>,
    /// Object struct with id \[`String`\] in [`Uuid`](uuid::Uuid) format and \[`Data`\] struct with user data
    #[prost(message, optional, tag = "2")]
    pub object: ::core::option::Option<Object>,
}
/// Object struct with `id` and `data` field
///
/// * `id` \[`String`\] in [`Uuid`](uuid::Uuid) format
/// * `data` \[`Data`\] struct with user data
#[derive(Serialize, Deserialize)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Object {
    /// id UUID v4
    #[prost(string, tag = "1")]
    pub id: ::prost::alloc::string::String,
    /// data
    #[prost(message, optional, tag = "2")]
    pub data: ::core::option::Option<Data>,
}
/// UpdateObject struct with `id`, `data` and `mask` fields
///
/// * `id` \[`String`\] in [`Uuid`](uuid::Uuid) format
/// * `data` \[`Data`\] struct with user data which should be used for update
/// * `mask` \[`FieldMask`\] struct with user fields that should be updated
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateObject {
    /// `id` \[`String`\] in [`Uuid`](uuid::Uuid) format
    #[prost(string, tag = "1")]
    pub id: ::prost::alloc::string::String,
    /// struct with user data which should be used for update
    #[prost(message, optional, tag = "2")]
    pub data: ::core::option::Option<Data>,
    /// struct with user fields that should be updated
    #[prost(message, optional, tag = "3")]
    pub mask: ::core::option::Option<::prost_types::FieldMask>,
}
/// Data struct with user data
/// PI data will be stored in a separate database/ service
#[derive(Serialize, Deserialize)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Data {
    /// the User's authentication method
    #[prost(enumeration = "AuthMethod", tag = "1")]
    pub auth_method: i32,
    /// the User's preferred display name
    #[prost(string, tag = "2")]
    pub display_name: ::prost::alloc::string::String,
    /// the User's email
    #[prost(string, tag = "3")]
    pub email: ::prost::alloc::string::String,
}
/// Struct containing a `list` of user \[`Vec\<Object\>`\]
#[derive(Serialize, Deserialize)]
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct List {
    /// array/vector of user items
    #[prost(message, repeated, tag = "1")]
    pub list: ::prost::alloc::vec::Vec<Object>,
}
/// Struct used to link groups to an user
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UserGroups {
    /// `id` \[`String`\] in [`Uuid`](uuid::Uuid) format. Must be a valid user_id
    #[prost(string, tag = "1")]
    pub id: ::prost::alloc::string::String,
    /// group ids as \[`Vec\<String\>`\] in [`Uuid`](uuid::Uuid) format
    #[prost(message, optional, tag = "2")]
    pub other_id_list: ::core::option::Option<super::IdList>,
}
/// Vehicle Model Type Enum
#[derive(num_derive::FromPrimitive)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum AuthMethod {
    /// OAUTH Google
    OauthGoogle = 0,
    /// OAUTH Facebook
    OauthFacebook = 1,
    /// OAUTH Azure ID
    OauthAzureAd = 2,
    /// LOCAL / Password
    Local = 3,
}
impl AuthMethod {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            AuthMethod::OauthGoogle => "OAUTH_GOOGLE",
            AuthMethod::OauthFacebook => "OAUTH_FACEBOOK",
            AuthMethod::OauthAzureAd => "OAUTH_AZURE_AD",
            AuthMethod::Local => "LOCAL",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "OAUTH_GOOGLE" => Some(Self::OauthGoogle),
            "OAUTH_FACEBOOK" => Some(Self::OauthFacebook),
            "OAUTH_AZURE_AD" => Some(Self::OauthAzureAd),
            "LOCAL" => Some(Self::Local),
            _ => None,
        }
    }
}