From 9e139fbb4d4c01561e479daa4f2984aced493be4 Mon Sep 17 00:00:00 2001 From: uginu9in Date: Thu, 8 Jan 2026 04:24:50 +0500 Subject: [PATCH] first commit --- README.md | 0 oapi_scheme.yml | 127 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 README.md create mode 100644 oapi_scheme.yml 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..028a874 --- /dev/null +++ b/oapi_scheme.yml @@ -0,0 +1,127 @@ +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 + username: + type: string + + ConfigMetaDTO: + type: object + properties: + id: + type: string + description: Configuration file identifier + userId: + type: string + description: Owner user 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: + - file + - fileName + properties: + fileName: + type: string + description: Configuration file name + file: + type: string + format: binary + description: Binary contents of the file + 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