## API de DHCP

La API de DHCP proporciona una interfaz para interactuar con el servidor DHCP de Kea. Esta API permite realizar operaciones como obtener la configuración actual del servidor DHCP, actualizar la configuración y obtener información sobre las reservas de direcciones IP.

Los endpoints están agrupados en el recurso al que hace referencia. Actualmente se gestionan dos recursos:

- `/dhcp/subnets/`: CRUD de subredes de Kea DHCP. Las subredes serán donde se organizarán los hosts y hacen referencia a las subredes montadas por el aula.
- `/dhcp/subnets/hosts/`: CRUD de hosts en la configuración de Kea DHCP. Los hosts hacen referencia a los ordenadores dados de alta en las aulas. Esta sección en Kea DHCP se encarga de asignar, dada la MAC del dispositivo, la IP y el boot-file-name del ordenador. 

El presente documento detalla los endpoints del API con sus respectivos parámetros de entrada así como los cambios que aplican sobre la configuración de Kea DHCP.



### Recurso `/dhcp/subnets`

#### Obtener configuración de las subredes

Devuelve las subredes dadas de alta en la configuración de Kea DHCP. 


**Método HTTP:** GET

**URL:** `/dhcp/subnets`


#### Añadir subred

Añade un nueva subred a la configuración de Kea DHCP.

**Método HTTP:** POST

**URL:** `/dhcp/subnets`

**Parámetros de entrada:**

- `name`: Nombre de la subred.
- `subnet`: DirecciónIP de la subred.
- `boot-file-name`: Archivo de arranque de la subred.
- `nextServer`: Dirección IP del next-server.

#### Borrar subred DHCP

Borrar una subred de la configuración de Kea DHCP.

**Método HTTP:** DELETE

**URL:** `/dhcp/subnets/{id_subnet}`


#### Modificar Host DHCP

Modificar la subred en la configuración de Kea DHCP.

**Método HTTP:** PUT

**URL:** `/dhcp/subnets/{id_subnet}`

**Parámetros de entrada:**

- `name`: Nombre de la subred.
- `subnet`: DirecciónIP de la subred.
- `boot-file-name`: Archivo de arranque de la subred.
- `nextServer`: Dirección IP del next-server.


### Recurso `/dhcp/subnets/hosts`

#### Obtener configuración de los hosts

Devuelve la configuración de los hosts que se encuentran bajo una subred en la configuración de Kea DHCP. 


**Método HTTP:** GET

**URL:** `/dhcp/subnets/{id_subnet}/hosts`


#### Añadir Host DHCP

Añade un nuevo host a la subnet especificada.

**Método HTTP:** POST

**URL:** `/dhcp/subnets/{id_subnet}/hosts`

**Parámetros de entrada:**

- `host`: Nombre del host.
- `macAddress`: Dirección MAC del host.
- `address`: Dirección IP del host.
- `nextServer`: Dirección IP del next-server.

#### Borrar Host DHCP

Borrar un host de la subnet especificada.

**Método HTTP:** DELETE

**URL:** `/dhcp/subnets/{id_subnet}/hosts`

**Parámetros de entrada:**

- `host`: Nombre del host.

#### Modificar Host DHCP

Modificar la configuración de un host en la subnet especificada.

**Método HTTP:** PUT

**URL:** `/dhcp/subnets/{id_subnet}/hosts`

**Parámetros de entrada:**

- `host`: Nombre del host.
- `oldMacAddress`: Dirección MAC antigua del host.
- `oldAddress`: Dirección IP antigua del host.
- `macAddress`: Nueva dirección MAC del host.
- `address`: Nueva dirección IP del host.
- `nextServer`: Nueva dirección IP del servidor siguiente.

