use utoipa::OpenApi; use crate::api::auth::regenerate_2fa_backup_codes::{ Regenerate2FABackupCodesRequest, Regenerate2FABackupCodesResponse, }; use crate::api::auth::register::RegisterResponse; use crate::api::response::{ApiEmptyResponse, ApiErrorResponse, ApiResponse}; use crate::service::auth::captcha::{CaptchaQuery, CaptchaResponse}; use crate::service::auth::email::{EmailChangeRequest, EmailResponse, EmailVerifyRequest}; use crate::service::auth::login::LoginParams; use crate::service::auth::me::ContextMe; use crate::service::auth::register::{ RegisterEmailCodeParams, RegisterEmailCodeResponse, RegisterParams, }; use crate::service::auth::reset_pass::{ResetPasswordRequest, ResetPasswordVerifyParams}; use crate::service::auth::rsa::RsaResponse; use crate::service::auth::totp::{ Disable2FAParams, Enable2FAResponse, Get2FAStatusResponse, Verify2FAParams, }; #[derive(OpenApi)] #[openapi( info( title = "AppKS API", version = "0.1.0", description = "AppKS collaborative development platform HTTP API. Auth endpoints use server-side sessions backed by Redis and a signed/encrypted session cookie. Sensitive password fields are RSA-OAEP-SHA256 encrypted per session before transmission." ), tags( (name = "Auth", description = "Authentication, registration, session and email security endpoints."), (name = "Auth / 2FA", description = "TOTP two-factor authentication management endpoints.") ), paths( crate::api::auth::rsa::handle, crate::api::auth::captcha::handle, crate::api::auth::login::handle, crate::api::auth::logout::handle, crate::api::auth::me::handle, crate::api::auth::register_email_code::handle, crate::api::auth::register::handle, crate::api::auth::get_email::handle, crate::api::auth::request_email_change::handle, crate::api::auth::verify_email::handle, crate::api::auth::request_reset_password::handle, crate::api::auth::verify_reset_password::handle, crate::api::auth::get_2fa_status::handle, crate::api::auth::enable_2fa::handle, crate::api::auth::verify_2fa::handle, crate::api::auth::disable_2fa::handle, crate::api::auth::regenerate_2fa_backup_codes::handle ), components(schemas( ApiEmptyResponse, ApiErrorResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse, RsaResponse, CaptchaQuery, CaptchaResponse, LoginParams, ContextMe, RegisterEmailCodeParams, RegisterEmailCodeResponse, RegisterParams, RegisterResponse, EmailResponse, EmailChangeRequest, EmailVerifyRequest, ResetPasswordRequest, ResetPasswordVerifyParams, Get2FAStatusResponse, Enable2FAResponse, Verify2FAParams, Disable2FAParams, Regenerate2FABackupCodesRequest, Regenerate2FABackupCodesResponse )) )] pub struct OpenApiDoc;