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::api::workspace::accept_invitation::AcceptInvitationRequest; use crate::api::workspace::review_approval::ReviewApprovalRequest; use crate::api::workspace::transfer_owner::TransferOwnerRequest; use crate::models::workspaces::{ Workspace, WorkspaceAuditLog, WorkspaceBilling, WorkspaceCustomBranding, WorkspaceDomain, WorkspaceIntegration, WorkspaceInvitation, WorkspaceMember, WorkspacePendingApproval, WorkspaceSettings, WorkspaceStats, WorkspaceWebhook, }; 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, }; use crate::service::workspace::approvals::RequestApprovalParams; use crate::service::workspace::billing::UpdateBillingParams; use crate::service::workspace::branding::UpdateBrandingParams; use crate::service::workspace::core::{CreateWorkspaceParams, UpdateWorkspaceParams}; use crate::service::workspace::domains::AddDomainParams; use crate::service::workspace::integrations::{CreateIntegrationParams, UpdateIntegrationParams}; use crate::service::workspace::invitations::{CreateInvitationParams, CreateInvitationResponse}; use crate::service::workspace::members::{AddMemberParams, UpdateMemberRoleParams}; use crate::service::workspace::settings::UpdateWorkspaceSettingsParams; use crate::service::workspace::webhooks::{CreateWebhookParams, UpdateWebhookParams}; #[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 = "Workspaces", description = "Workspace CRUD, archiving, ownership transfer, and avatar management."), ), paths( // Auth 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, // Workspaces crate::api::workspace::list::handle, crate::api::workspace::get::handle, crate::api::workspace::create::handle, crate::api::workspace::update::handle, crate::api::workspace::archive::handle, crate::api::workspace::unarchive::handle, crate::api::workspace::delete::handle, crate::api::workspace::transfer_owner::handle, crate::api::workspace::upload_avatar::handle, crate::api::workspace::list_members::handle, crate::api::workspace::add_member::handle, crate::api::workspace::update_member_role::handle, crate::api::workspace::remove_member::handle, crate::api::workspace::leave::handle, crate::api::workspace::list_invitations::handle, crate::api::workspace::create_invitation::handle, crate::api::workspace::revoke_invitation::handle, crate::api::workspace::accept_invitation::handle, crate::api::workspace::get_billing::handle, crate::api::workspace::update_billing::handle, crate::api::workspace::get_branding::handle, crate::api::workspace::update_branding::handle, crate::api::workspace::get_settings::handle, crate::api::workspace::update_settings::handle, crate::api::workspace::get_stats::handle, crate::api::workspace::refresh_stats::handle, crate::api::workspace::list_integrations::handle, crate::api::workspace::create_integration::handle, crate::api::workspace::update_integration::handle, crate::api::workspace::delete_integration::handle, crate::api::workspace::list_webhooks::handle, crate::api::workspace::create_webhook::handle, crate::api::workspace::update_webhook::handle, crate::api::workspace::delete_webhook::handle, crate::api::workspace::list_domains::handle, crate::api::workspace::add_domain::handle, crate::api::workspace::verify_domain::handle, crate::api::workspace::set_primary_domain::handle, crate::api::workspace::delete_domain::handle, crate::api::workspace::list_approvals::handle, crate::api::workspace::request_approval::handle, crate::api::workspace::review_approval::handle, crate::api::workspace::audit_logs::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, ApiResponse, ApiResponse>, ApiResponse, ApiResponse>, ApiResponse, ApiResponse>, ApiResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse, ApiResponse>, ApiResponse, ApiResponse>, ApiResponse, ApiResponse>, ApiResponse, ApiResponse>, ApiResponse>, Workspace, CreateWorkspaceParams, UpdateWorkspaceParams, TransferOwnerRequest, WorkspaceMember, AddMemberParams, UpdateMemberRoleParams, WorkspaceInvitation, CreateInvitationParams, CreateInvitationResponse, AcceptInvitationRequest, WorkspaceBilling, UpdateBillingParams, WorkspaceCustomBranding, UpdateBrandingParams, WorkspaceSettings, UpdateWorkspaceSettingsParams, WorkspaceStats, WorkspaceIntegration, CreateIntegrationParams, UpdateIntegrationParams, WorkspaceWebhook, CreateWebhookParams, UpdateWebhookParams, WorkspaceDomain, AddDomainParams, WorkspacePendingApproval, RequestApprovalParams, ReviewApprovalRequest, WorkspaceAuditLog, )) )] pub struct OpenApiDoc;