axum_containerssh/
lib.rs

1#![allow(missing_docs, trivial_casts, unused_variables, unused_mut, unused_imports, unused_extern_crates, non_camel_case_types)]
2#![allow(unused_imports, unused_attributes)]
3#![allow(clippy::derive_partial_eq_without_eq, clippy::disallowed_names)]
4
5use async_trait::async_trait;
6use axum::extract::*;
7use axum_extra::extract::{CookieJar, Multipart};
8use bytes::Bytes;
9use http::Method;
10use serde::{Deserialize, Serialize};
11
12use types::*;
13
14pub const BASE_PATH: &str = "";
15pub const API_VERSION: &str = "0.5.0";
16
17        #[derive(Debug, PartialEq, Serialize, Deserialize)]
18#[must_use]
19#[allow(clippy::large_enum_variant)]
20pub enum AuthPasswordResponse {
21    /// Response is the full HTTP authentication response.
22    Status200_ResponseIsTheFullHTTPAuthenticationResponse
23    (std::collections::HashMap<String, models::BinaryMetadataValue>)
24}
25
26        #[derive(Debug, PartialEq, Serialize, Deserialize)]
27#[must_use]
28#[allow(clippy::large_enum_variant)]
29pub enum AuthPubKeyResponse {
30    /// Response is the full HTTP authentication response.
31    Status200_ResponseIsTheFullHTTPAuthenticationResponse
32    (std::collections::HashMap<String, models::BinaryMetadataValue>)
33}
34
35        #[derive(Debug, PartialEq, Serialize, Deserialize)]
36#[must_use]
37#[allow(clippy::large_enum_variant)]
38pub enum AuthzResponse {
39    /// Response is the full HTTP authentication response.
40    Status200_ResponseIsTheFullHTTPAuthenticationResponse
41    (std::collections::HashMap<String, models::BinaryMetadataValue>)
42}
43
44        #[derive(Debug, PartialEq, Serialize, Deserialize)]
45#[must_use]
46#[allow(clippy::large_enum_variant)]
47pub enum GetUserConfigurationResponse {
48    /// Response is the entire response from the config server
49    Status200_ResponseIsTheEntireResponseFromTheConfigServer
50    (models::ConfigResponseBody)
51}
52
53
54/// API
55#[async_trait]
56#[allow(clippy::ptr_arg)]
57pub trait Api {
58
59                /// AuthPassword - POST /password
60                async fn auth_password(
61                &self,
62                method: Method,
63                host: Host,
64                cookies: CookieJar,
65                        body: models::PasswordAuthRequest,
66                ) -> Result<AuthPasswordResponse, String>;
67
68
69                /// AuthPubKey - POST /pubkey
70                async fn auth_pub_key(
71                &self,
72                method: Method,
73                host: Host,
74                cookies: CookieJar,
75                        body: models::PublicKeyAuthRequest,
76                ) -> Result<AuthPubKeyResponse, String>;
77
78
79                /// Authz - POST /authz
80                async fn authz(
81                &self,
82                method: Method,
83                host: Host,
84                cookies: CookieJar,
85                        body: models::AuthorizationRequest,
86                ) -> Result<AuthzResponse, String>;
87
88
89                /// GetUserConfiguration - POST /config
90                async fn get_user_configuration(
91                &self,
92                method: Method,
93                host: Host,
94                cookies: CookieJar,
95                        body: Option<models::ConfigRequest>,
96                ) -> Result<GetUserConfigurationResponse, String>;
97
98}
99
100#[cfg(feature = "server")]
101pub mod server;
102
103pub mod models;
104pub mod types;
105
106#[cfg(feature = "server")]
107pub(crate) mod header;