openapi: 3.1.0 info: title: AFM Access Profiles User API version: 0.1.0 tags: - name: User paths: /app/v1/users/{user_id}: put: tags: - User summary: Update User Password description: Update a user's information, requires admin privileges operationId: update_user_password_app_v1_users__user_id__put security: - HTTPBearer: [] parameters: - name: user_id in: path required: true schema: type: string title: User Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserUpdateRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /app/v1/users: get: tags: - User summary: Get All Users description: Get all users in the system, requires admin privileges operationId: get_all_users_app_v1_users_get responses: '200': description: Successful Response content: application/json: schema: {} security: - HTTPBearer: [] /app/v1/users/app_roles: get: tags: - User summary: Get Users App Roles Entries description: 'Get paginated list of users with their app roles, requires admin privileges include_deleted: If True, includes deleted/anonymized accounts (default: False)' operationId: get_users_app_roles_entries_app_v1_users_app_roles_get security: - HTTPBearer: [] parameters: - name: page in: query required: false schema: type: integer default: 1 title: Page - name: page_size in: query required: false schema: type: integer default: 20 title: Page Size - name: search in: query required: false schema: anyOf: - type: string - type: 'null' title: Search - name: include_deleted in: query required: false schema: type: boolean default: false title: Include Deleted responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PaginatedAppRoleResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /app/v1/users/app_role: put: tags: - User summary: Update User App Role description: Update a user's app role, requires internal privileges. operationId: update_user_app_role_app_v1_users_app_role_put requestBody: content: application/json: schema: $ref: '#/components/schemas/UserAppRoleUpdateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /app/v1/users/role: post: tags: - User summary: Update User Role description: Update a user's role, requires admin privileges." operationId: update_user_role_app_v1_users_role_post requestBody: content: application/json: schema: $ref: '#/components/schemas/UserRoleUpdateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /app/v1/users/profile: put: tags: - User summary: Update User Profile operationId: update_user_profile_app_v1_users_profile_put requestBody: content: application/json: schema: $ref: '#/components/schemas/UserUpdateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /app/v1/me: get: tags: - User summary: Get Current User Info description: Get current authenticated user information operationId: get_current_user_info_app_v1_me_get responses: '200': description: Successful Response content: application/json: schema: {} security: - HTTPBearer: [] /app/v1/users/theme: put: tags: - User summary: Update Theme description: Update user's theme mode preference operationId: update_theme_app_v1_users_theme_put requestBody: content: application/json: schema: $ref: '#/components/schemas/ThemeUpdateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /app/v1/users/language: put: tags: - User summary: Update Language description: Update user's language preference operationId: update_language_app_v1_users_language_put requestBody: content: application/json: schema: $ref: '#/components/schemas/LanguageUpdateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /app/v1/users/balance-visibility: put: tags: - User summary: Update Balance Visibility description: Update user's balance visibility preference operationId: update_balance_visibility_app_v1_users_balance_visibility_put requestBody: content: application/json: schema: $ref: '#/components/schemas/BalanceVisibilityRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /app/v1/users/github-email-mismatch-banner-home: put: tags: - User summary: Update Github Email Mismatch Banner Home description: Update user's GitHub email mismatch home-banner preference. operationId: update_github_email_mismatch_banner_home_app_v1_users_github_email_mismatch_banner_home_put requestBody: content: application/json: schema: $ref: '#/components/schemas/GitHubEmailMismatchBannerHomeRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - HTTPBearer: [] /app/v1/delete-my-account: delete: tags: - User summary: Delete My Account description: 'Delete current user''s account (self-deletion). Synchronously processes deletion.' operationId: delete_my_account_app_v1_delete_my_account_delete responses: '200': description: Successful Response content: application/json: schema: {} security: - HTTPBearer: [] components: schemas: AppRoleEntry: properties: id: type: string format: uuid title: Id email: type: string title: Email first_name: type: string title: First Name last_name: anyOf: - type: string - type: 'null' title: Last Name app_role: type: string title: App Role type: object required: - id - email - first_name - last_name - app_role title: AppRoleEntry HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError AppRole: type: string enum: - int_user - int_editor - int_admin - ext_user - ext_tester - ext_partner title: AppRole description: Roles for role-based access control. LanguageUpdateRequest: properties: language: type: string title: Language type: object required: - language title: LanguageUpdateRequest UserRoleUpdateRequest: properties: user_id: type: string title: User Id new_role: type: string title: New Role type: object required: - user_id - new_role title: UserRoleUpdateRequest ThemeUpdateRequest: properties: theme: type: string title: Theme type: object required: - theme title: ThemeUpdateRequest PaginatedAppRoleResponse: properties: entries: items: $ref: '#/components/schemas/AppRoleEntry' type: array title: Entries total: type: integer title: Total page: type: integer title: Page page_size: type: integer title: Page Size total_pages: type: integer title: Total Pages has_next: type: boolean title: Has Next has_prev: type: boolean title: Has Prev type: object required: - entries - total - page - page_size - total_pages - has_next - has_prev title: PaginatedAppRoleResponse ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError GitHubEmailMismatchBannerHomeRequest: properties: show_mismatch_banner_home: type: boolean title: Show Mismatch Banner Home type: object required: - show_mismatch_banner_home title: GitHubEmailMismatchBannerHomeRequest UserUpdateRequest: properties: first_name: anyOf: - type: string - type: 'null' title: First Name last_name: anyOf: - type: string - type: 'null' title: Last Name preferences: anyOf: - additionalProperties: true type: object - type: 'null' title: Preferences password: anyOf: - type: string - type: 'null' title: Password type: object required: - first_name - last_name - preferences - password title: UserUpdateRequest UserAppRoleUpdateRequest: properties: user_id: type: string title: User Id new_role: $ref: '#/components/schemas/AppRole' type: object required: - user_id - new_role title: UserAppRoleUpdateRequest BalanceVisibilityRequest: properties: show_balance_in_sidebar: type: boolean title: Show Balance In Sidebar type: object required: - show_balance_in_sidebar title: BalanceVisibilityRequest securitySchemes: HTTPBearer: type: http scheme: bearer