openapi: 3.0.0 info: title: Register Service API description: API for user registration and configuration management in CAPIF. version: 1.0.0 servers: - url: https://localhost:8084 description: Local development server paths: /login: post: summary: Admin login description: Logs in an admin user and returns access and refresh tokens. tags: - Authentication security: - basicAuth: [] responses: "200": description: Successfully logged in content: application/json: schema: type: object properties: access_token: type: string refresh_token: type: string "401": description: Unauthorized /refresh: post: summary: Refresh access token description: Generates a new access token using a refresh token. tags: - Authentication security: - bearerAuth: [] responses: "200": description: New access token generated content: application/json: schema: type: object properties: access_token: type: string "401": description: Unauthorized /createUser: post: summary: Register a new user description: Allows an admin to create a new user. tags: - Users security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: username: type: string password: type: string enterprise: type: string country: type: string email: type: string purpose: type: string responses: "201": description: User registered successfully "400": description: Missing or invalid fields "409": description: User already exists /getauth: get: summary: Get user authorization description: Retrieves authorization information for a user. tags: - Users security: - basicAuth: [] responses: "200": description: Authorization details returned "400": description: User not found /deleteUser/{uuid}: delete: summary: Delete a user description: Removes a user from the system. tags: - Users security: - bearerAuth: [] parameters: - name: uuid in: path required: true schema: type: string responses: "204": description: User deleted successfully "400": description: Invalid UUID /getUsers: get: summary: Get all users description: Retrieves a list of all registered users. tags: - Users security: - bearerAuth: [] responses: "200": description: Users retrieved successfully /configuration: get: summary: Retrieve register configuration description: Fetches the current configuration of the register service. tags: - Configuration security: - bearerAuth: [] responses: "200": description: Configuration retrieved successfully content: application/json: schema: type: object properties: config_name: type: string description: type: string version: type: string settings: type: object properties: certificates_expiry: type: object properties: ttl_superadmin_cert: type: string "404": description: Configuration not found patch: summary: Update register configuration description: Updates a specific parameter in the register configuration. tags: - Configuration security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: param_path: type: string example: "settings.certificates_expiry.hola" new_value: type: string example: "2500h" responses: "200": description: Parameter updated successfully content: application/json: schema: type: object properties: message: type: string example: "Parameter 'settings.certificates_expiry.ttl_superadmin_cert' updated successfully" "400": description: Invalid request body put: summary: Replace register configuration description: Replaces the entire configuration with a new one. tags: - Configuration security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: config_name: type: string example: "default" description: type: string example: "Updated Register Configuration" version: type: string example: "1.1" settings: type: object properties: certificates_expiry: type: object properties: ttl_superadmin_cert: type: string example: "4300h" responses: "200": description: Configuration replaced successfully content: application/json: schema: type: object properties: message: type: string example: "Register configuration replaced successfully" "400": description: Invalid request body /configuration/addNewCategory: post: summary: Add new configuration category description: Adds a new category inside the register configuration. tags: - Configuration security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: category_name: type: string example: "new_category" category_values: type: object example: {"config1": 1, "config2": "xxxx"} responses: "200": description: Category added successfully content: application/json: schema: type: object properties: message: type: string example: "Category 'new_category' added successfully" "400": description: Invalid request body /configuration/addNewParamConfigSetting: patch: summary: Add new configuration setting description: Adds a new parameter inside a category in settings. tags: - Configuration security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: param_path: type: string example: "certificates_expiry.new_config_ttl" new_value: type: string example: "1000h" responses: "200": description: Parameter added successfully content: application/json: schema: type: object properties: message: type: string example: "Parameter 'certificates_expiry.new_config_ttl' added successfully" "400": description: Invalid request body /configuration/removeConfigParam: delete: summary: Remove a configuration parameter description: Deletes a specific parameter in the register configuration. tags: - Configuration security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: param_path: type: string example: "settings.certificates_expiry.some_config" responses: "200": description: Parameter removed successfully content: application/json: schema: type: object properties: message: type: string example: "Parameter 'settings.certificates_expiry.some_config' removed successfully" "400": description: Missing 'param_path' in request body "404": description: Parameter not found /configuration/removeConfigCategory: delete: summary: Remove a configuration category description: Deletes an entire category in the register configuration. tags: - Configuration security: - bearerAuth: [] requestBody: required: true content: application/json: schema: type: object properties: category_name: type: string example: "deprecated_category" responses: "200": description: Category removed successfully content: application/json: schema: type: object properties: message: type: string example: "Category 'deprecated_category' removed successfully" "400": description: Missing 'category_name' in request body "404": description: Category not found components: securitySchemes: basicAuth: type: http scheme: basic bearerAuth: type: http scheme: bearer bearerFormat: JWT