commit 32b154796fe3c9702cee22b1d4b58177d640906e Author: uginu9in Date: Thu Jan 8 05:05:31 2026 +0500 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/oapi_scheme.yml b/oapi_scheme.yml new file mode 100644 index 0000000..3f01a15 --- /dev/null +++ b/oapi_scheme.yml @@ -0,0 +1,117 @@ +openapi: 3.0.4 +info: + title: VPN Core API + version: 1.0.0 + +servers: + - url: https://api.yourdomain.com/v1 + +components: + schemas: + + UserCreateRequestDTO: + type: object + required: + - username + properties: + username: + type: string + description: Unique username + + UserResponseDTO: + type: object + properties: + id: + type: string + description: Internal user identifier + + ConfigMetaDTO: + type: object + properties: + id: + type: string + description: Configuration file identifier + name: + type: string + description: Configuration name + +paths: + + /users: + post: + summary: Create user + description: | + Creates a user on first request. + If a user with this username already exists — + returns the existing user. + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/UserCreateRequestDTO" + responses: + "201": + description: User created + content: + application/json: + schema: + $ref: "#/components/schemas/UserResponseDTO" + "200": + description: User already exists + content: + application/json: + schema: + $ref: "#/components/schemas/UserResponseDTO" + "400": + description: Bad request + + /configs: + post: + summary: Upload binary configuration file + description: | + Uploads a binary configuration file + associated with a user. + requestBody: + required: true + content: + multipart/form-data: + schema: + type: object + required: + - fileName + properties: + fileName: + type: string + description: Configuration file name + responses: + "201": + description: File successfully uploaded + content: + application/json: + schema: + $ref: "#/components/schemas/ConfigMetaDTO" + "400": + description: Invalid input + + get: + summary: Get user configuration files + description: Returns a list of all configuration files for the given user. + parameters: + - in: query + name: userId + required: true + schema: + type: string + description: User identifier + responses: + "200": + description: List of configuration files + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/ConfigMetaDTO" + "400": + description: Bad request \ No newline at end of file