openapi: 3.0.0 info: title: rcond API description: API for managing network connections through NetworkManager version: 1.0.0 servers: - url: http://localhost:8080 description: Local development server components: securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-API-Token description: API token for authentication security: - ApiKeyAuth: [] paths: /health: get: summary: Health check endpoint description: Returns the health status of the service responses: '200': description: Service is healthy content: application/json: schema: type: object properties: status: type: string example: "healthy" /network/up: post: summary: Create and activate WiFi access point description: Creates and activates a WiFi access point on the specified interface requestBody: required: true content: application/json: schema: type: object required: - interface - ssid - password properties: interface: type: string description: Network interface name example: "wlan0" ssid: type: string description: WiFi network SSID example: "MyNetworkSSID" password: type: string description: WiFi network password example: "SuperSecretPassword" responses: '200': description: Network interface brought up successfully '400': description: Invalid request payload '401': description: Unauthorized - invalid or missing API token '500': description: Internal server error /network/down: post: summary: Deactivate network interface description: Deactivates the specified network interface requestBody: required: true content: application/json: schema: type: object required: - interface properties: interface: type: string description: Network interface name example: "wlan0" responses: '200': description: Network interface brought down successfully '400': description: Invalid request payload '401': description: Unauthorized - invalid or missing API token '500': description: Internal server error /network/remove: post: summary: Remove stored connection profile description: Removes the stored NetworkManager connection profile responses: '200': description: Connection profile removed successfully '401': description: Unauthorized - invalid or missing API token '500': description: Internal server error /hostname: get: summary: Get system hostname description: Returns the current system hostname responses: '200': description: Hostname retrieved successfully content: text/plain: schema: type: string description: Current hostname example: "MyHostname" '401': description: Unauthorized - invalid or missing API token '500': description: Internal server error post: summary: Set system hostname description: Sets a new system hostname requestBody: required: true content: application/json: schema: type: object required: - hostname properties: hostname: type: string description: New hostname to set example: "MyHostname" responses: '200': description: Hostname set successfully '400': description: Invalid request payload '401': description: Unauthorized - invalid or missing API token '500': description: Internal server error