From 22eb6f879ee0be8fbd37805ef90eab88f9ae4116 Mon Sep 17 00:00:00 2001 From: apuente Date: Wed, 15 May 2024 15:28:54 +0200 Subject: [PATCH] Add Api definitions for ogBoot and ogDHCP --- APIs/web-core-ogboot.yaml | 169 +++++++++++++++++++ APIs/web-core-ogdhcp.yaml | 347 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 516 insertions(+) create mode 100644 APIs/web-core-ogboot.yaml create mode 100644 APIs/web-core-ogdhcp.yaml diff --git a/APIs/web-core-ogboot.yaml b/APIs/web-core-ogboot.yaml new file mode 100644 index 0000000..0e997b7 --- /dev/null +++ b/APIs/web-core-ogboot.yaml @@ -0,0 +1,169 @@ +openapi: 3.0.3 +info: + title: Core - ogBoot - OpenAPI 3.0 + description: |- + API for ogBOOT service. Used by OGweb. + + Some useful links: + - [The ogBOOT repository](https://ognproject.evlt.uma.es/gitea/opengnsys/ogboot) + contact: + name: ogn-qindel + email: seguimiento-ogn-quindel@listas.unizar.es + version: 1.0.0 +paths: + /opengnsys3/rest/core/clients: + get: + summary: Obtener Lista de Clientes + description: Obtiene la lista de clientes registrados en el sistema. + responses: + '200': + description: Lista de clientes + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Client' + '401': + description: No autorizado + /opengnsys3/rest/core/wol: + post: + summary: Encender Equipos Remotamente (Wake-on-LAN) + description: Envía comandos de encendido remoto a uno o varios equipos utilizando Wake-on-LAN. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/WOLRequest' + responses: + '200': + description: Comando de encendido enviado correctamente + '401': + description: No autorizado + /opengnsys3/rest/core/session: + post: + summary: Gestión de Sesión + description: Gestiona las sesiones de usuario en el sistema. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/SessionRequest' + responses: + '200': + description: Sesión gestionada correctamente + '401': + description: No autorizado + /opengnsys3/rest/core/poweroff: + post: + summary: Apagar Equipos + description: Envía comandos de apagado a uno o varios equipos. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PowerOffRequest' + responses: + '200': + description: Comando de apagado enviado correctamente + '401': + description: No autorizado + /opengnsys3/rest/core/reboot: + post: + summary: Reiniciar Equipos + description: Envía comandos de reinicio a uno o varios equipos. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RebootRequest' + responses: + '200': + description: Comando de reinicio enviado correctamente + '401': + description: No autorizado + /opengnsys3/rest/core/stop: + post: + summary: Detener Operaciones en Curso + description: Detiene las operaciones en curso en los equipos. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/StopRequest' + responses: + '200': + description: Operaciones detenidas correctamente + '401': + description: No autorizado +components: + schemas: + Client: + type: object + properties: + id: + type: integer + description: ID del cliente + name: + type: string + description: Nombre del cliente + ip_address: + type: string + description: Dirección IP del cliente + mac_address: + type: string + description: Dirección MAC del cliente + WOLRequest: + type: object + properties: + type: + type: string + description: Tipo de envío de paquetes Wake-on-LAN + clients: + type: array + items: + $ref: '#/components/schemas/Client' + SessionRequest: + type: object + properties: + clients: + type: array + items: + type: string + description: Direcciones IP de los clientes + disk: + type: string + description: Número del disco duro + partition: + type: string + description: Número de la partición + PowerOffRequest: + type: object + properties: + clients: + type: array + items: + type: string + description: Direcciones IP de los clientes + RebootRequest: + type: object + properties: + clients: + type: array + items: + type: string + description: Direcciones IP de los clientes + StopRequest: + type: object + properties: + clients: + type: array + items: + type: string + description: Direcciones IP de los clientes + \ No newline at end of file diff --git a/APIs/web-core-ogdhcp.yaml b/APIs/web-core-ogdhcp.yaml new file mode 100644 index 0000000..4272105 --- /dev/null +++ b/APIs/web-core-ogdhcp.yaml @@ -0,0 +1,347 @@ +openapi: 3.0.3 +info: + title: Core - ogDHCP - OpenAPI 3.0 + description: |- + API for DHCP service. Used by OGweb. + + Some useful links: + - [The ogDHCP repository](https://ognproject.evlt.uma.es/gitea/opengnsys/ogdhcp) + contact: + name: ogn-qindel + email: seguimiento-ogn-quindel@listas.unizar.es + version: 1.0.0 +paths: + /opengnsys3/rest/core/subnets: + get: + operationId: 8f92a1cbcb8cd176bdc4ae272b3ad303 + responses: + '200': + description: Devuelve todas las subredes + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Subnet' + '400': + description: Error al obtener las subredes + post: + summary: Add a new DHCP subnet + operationId: 88949bae5e7784ce2721ffafe7c88c0a + requestBody: + description: JSON payload + required: true + content: + application/json: + schema: + properties: + subnetId: + type: integer + example: 2 + mask: + type: string + example: 255.255.255.0 + address: + type: string + example: 192.168.1.0 + nextServer: + type: string + example: 192.168.1.1 + bootFileName: + type: string + example: pxelinux.0 + type: object + responses: + '200': + description: Subnet added successfully + content: + application/json: + schema: + properties: + success: + type: string + type: object + '400': + description: Error occurred + content: + application/json: + schema: + properties: + error: + type: string + type: object + /opengnsys3/rest/core/subnets/{subnetId}: + put: + summary: Modify a DHCP subnet + operationId: 548b55fc0e1ad59ea5b5c909dfd07c71 + parameters: + - name: subnetId + in: path + description: ID of the subnet to modify + required: true + schema: + type: integer + requestBody: + description: Data to modify the subnet + required: true + content: + application/json: + schema: + properties: + mask: + type: string + address: + type: string + nextServer: + type: string + bootFileName: + type: string + type: object + responses: + '200': + description: Subnet modified successfully + content: + application/json: + schema: + properties: + success: + type: string + type: object + '400': + description: Error occurred + content: + application/json: + schema: + properties: + error: + type: string + type: object + delete: + summary: Delete a DHCP subnet + operationId: c1c1c34729bdd85857b22e6e2bdc41de + parameters: + - name: subnetId + in: path + description: ID of the subnet to delete + required: true + schema: + type: integer + responses: + '200': + description: Subnet deleted successfully + content: + application/json: + schema: + properties: + success: + type: string + type: object + '400': + description: Error occurred + content: + application/json: + schema: + properties: + error: + type: string + type: object + /opengnsys3/rest/core/subnets/{subnetId}/hosts: + get: + summary: Get all hosts in a subnet + operationId: 0989ca622a6a7e23f5af8e3bdd6f6b05 + parameters: + - name: subnetId + in: path + description: The ID of the subnet + required: true + schema: + type: integer + responses: + '200': + description: List of hosts in the subnet + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Host' + '400': + description: Error occurred + content: + application/json: + schema: + properties: + error: + type: string + type: object + '500': + description: Server error + content: + application/json: + schema: + properties: + error: + type: string + type: object + put: + summary: Update a DHCP host + operationId: 1541441cd53685aaf6df45ab48befaa8 + parameters: + - name: subnetId + in: path + description: The ID of the subnet + required: true + schema: + type: integer + requestBody: + description: Data for the host to update + required: true + content: + application/json: + schema: + properties: + host: + type: string + example: pc11 + oldMacAddress: + type: string + example: 56:6f:c7:4f:00:4f + oldAddress: + type: string + example: 192.168.1.11 + macAddress: + type: string + example: 56:6f:c7:4f:01:01 + address: + type: string + example: 192.168.1.11 + type: object + responses: + '200': + description: Host updated successfully + content: + application/json: + schema: + properties: + success: + type: string + type: object + '400': + description: Error occurred + content: + application/json: + schema: + properties: + error: + type: string + type: object + post: + summary: Add a DHCP host to a subnet + operationId: 3f897dcd7c04787ac9c42ddbb57cb800 + parameters: + - name: subnetId + in: path + description: ID of the subnet to add the host to + required: true + schema: + type: integer + requestBody: + description: Data for the new host + required: true + content: + application/json: + schema: + properties: + host: + type: string + example: pc11 + macAddress: + type: string + example: 56:6f:c7:4f:00:4f + address: + type: string + example: 172.30.4.11 + type: object + responses: + '200': + description: Host added successfully + content: + application/json: + schema: + properties: + success: + type: string + type: object + '400': + description: Error occurred + content: + application/json: + schema: + properties: + error: + type: string + type: object + delete: + summary: Delete a DHCP host from a specific subnet + operationId: f652c52b39d57d283401df66a7930b5f + parameters: + - name: subnetId + in: path + description: The ID of the subnet + required: true + schema: + type: integer + responses: + '200': + description: Host deleted successfully + content: + application/json: + schema: + properties: + success: + type: string + type: object + '400': + description: Error occurred + content: + application/json: + schema: + properties: + error: + type: string + type: object +components: + schemas: + Subnet: + properties: + id: + description: The ID of the subnet + type: integer + subnet: + description: The name of the subnet + type: string + next-server: + description: The next server in the subnet + type: string + boot-file-name: + description: The boot file name for the subnet + type: string + reservations: + type: array + items: + description: The reservations in the subnet + type: object + type: object + Host: + properties: + host: + type: string + example: pc11 + macAddress: + type: string + example: 56:6f:c7:4f:00:4f + address: + type: string + example: 172.30.4.11 + type: object + \ No newline at end of file