Saltar a contenido

Documentación de la API de Inventario

El módulo Inventario permite gestionar los activos físicos y lógicos de la infraestructura, como racks, contactos, equipos de alimentación, redes inalámbricas y más; todo a través de la misma API REST descrita en la introducción a la API de Redborder. Resulta especialmente útil para crear, actualizar o eliminar muchos elementos a la vez, ya que cualquier acción disponible en la interfaz web puede también ser automatizada.

Todos los endpoints de Inventario siguen el mismo patrón:

https://<hostname>/api/v1/inventory/<inventory_type>?auth_token=<API_key>

Donde <inventory_type> es el modelo específico con el que se desea trabajar (racks, contacts, tags, power_feeds, wireless_lans, etc.). La lista completa de tipos de inventario admitidos se muestra en la Tabla de contenidos más abajo.

Como con el resto de la API, cada solicitud debe incluir el parámetro auth_token descrito en Autenticación. Para facilitar la legibilidad, los ejemplos en esta página usan dos variables de shell:

export HOST="https://<hostname>"
export TOKEN="<API_key>"

de manera que $HOST siempre representa https://<hostname> y $TOKEN la <API_key> correspondiente. Estas variables pueden exportarse una vez en la terminal y reutilizarse copiando y pegando los ejemplos tal cual.

POST y PATCH deben incluir el encabezado:

Content-Type: application/json

y la carga útil (payload) JSON se envía con -d @<input_json_path>, siguiendo la misma convención usada en la Introducción a la API de Redborder. La carga útil mostrada antes de cada ejemplo debe guardarse en un archivo (por ejemplo input.json) y referenciarse desde el comando curl.


Tabla de contenidos


Racks

URL base: https://$HOST/api/v1/inventory/racks?auth_token=$TOKEN

Los racks representan estructuras físicas en un centro de datos.

Listar todos los racks

GET /api/v1/inventory/racks?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/racks?auth_token=$TOKEN"

Obtener información del rack

GET /api/v1/inventory/racks/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/racks/1?auth_token=$TOKEN"

Crear un rack

POST /api/v1/inventory/racks?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre del rack
u_height integer Sí Altura del rack en unidades U
width integer Sí Anchura del rack (en pulgadas)

input.json

    {
      "rack": {
        "name": "Rack de Prueba",
        "u_height": 42,
        "width": 19
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/racks?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un rack

PATCH /api/v1/inventory/racks/ID?auth_token=TOKEN

input.json

    {
      "rack": {
        "name": "Rack Actualizado"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/racks/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un rack

DELETE /api/v1/inventory/racks/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/racks/1?auth_token=$TOKEN"

Roles de rack

URL base: https://$HOST/api/v1/inventory/rack_roles?auth_token=$TOKEN

Los roles de rack permiten categorizar los racks por su función (p. ej., almacenamiento, cómputo, redes).

Listar todos los roles de rack

GET /api/v1/inventory/rack_roles?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/rack_roles?auth_token=$TOKEN"

Obtener información del rol de rack

GET /api/v1/inventory/rack_roles/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/rack_roles/1?auth_token=$TOKEN"

Crear un rol de rack

POST /api/v1/inventory/rack_roles?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre del rol del rack
color string No Código de color hexadecimal (sin #)
description string No Descripción del rol del rack

input.json

    {
      "rack_role": {
        "name": "Almacenamiento",
        "color": "ff0000",
        "description": "Rol de rack de almacenamiento"
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/rack_roles?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un rol de rack

PATCH /api/v1/inventory/rack_roles/ID?auth_token=TOKEN

input.json

    {
      "rack_role": {
        "name": "Almacenamiento Actualizado",
        "color": "00ff00"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/rack_roles/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un rol de rack

DELETE /api/v1/inventory/rack_roles/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/rack_roles/1?auth_token=$TOKEN"

Tipos de rack

URL base: https://$HOST/api/v1/inventory/rack_types?auth_token=$TOKEN

Los tipos de rack definen el modelo físico y las especificaciones de un rack, asociados a un fabricante.

Listar todos los tipos de rack

GET /api/v1/inventory/rack_types?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/rack_types?auth_token=$TOKEN"

Obtener información del tipo de rack

GET /api/v1/inventory/rack_types/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/rack_types/1?auth_token=$TOKEN"

Crear un tipo de rack

POST /api/v1/inventory/rack_types?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
model string Sí Nombre del modelo del rack
manufacturer_id integer Sí ID del fabricante asociado
u_height integer Sí Altura en unidades U
width integer Sí Anchura en pulgadas

input.json

    {
      "rack_type": {
        "model": "APC AR3100",
        "manufacturer_id": 1,
        "u_height": 42,
        "width": 19
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/rack_types?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un tipo de rack

PATCH /api/v1/inventory/rack_types/ID?auth_token=TOKEN

input.json

    {
      "rack_type": {
        "model": "APC AR3100 Actualizado"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/rack_types/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un tipo de rack

DELETE /api/v1/inventory/rack_types/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/rack_types/1?auth_token=$TOKEN"

Reservas de rack

URL base: https://$HOST/api/v1/inventory/rack_reservations?auth_token=$TOKEN

Las reservas de rack marcan unidades específicas del rack como reservadas, vinculándolas a un rack en particular.

Listar todas las reservas de rack

GET /api/v1/inventory/rack_reservations?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/rack_reservations?auth_token=$TOKEN"

Obtener información de la reserva de rack

GET /api/v1/inventory/rack_reservations/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/rack_reservations/1?auth_token=$TOKEN"

Crear una reserva de rack

POST /api/v1/inventory/rack_reservations?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
rack_id integer Sí ID del rack donde se reservan unidades
units string Sí Lista separada por comas de números de unidad del rack
description string No Descripción de la reserva

input.json

    {
      "rack_reservation": {
        "units": "1,2,3",
        "description": "Reservado para servidor",
        "rack_id": 1
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/rack_reservations?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar una reserva de rack

PATCH /api/v1/inventory/rack_reservations/ID?auth_token=TOKEN

input.json

    {
      "rack_reservation": {
        "description": "Reserva actualizada"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/rack_reservations/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar una reserva de rack

DELETE /api/v1/inventory/rack_reservations/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/rack_reservations/1?auth_token=$TOKEN"

Contactos

URL base: https://$HOST/api/v1/inventory/contacts?auth_token=$TOKEN

Los contactos almacenan información sobre las personas asociadas a los activos del inventario.

Listar todos los contactos

GET /api/v1/inventory/contacts?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/contacts?auth_token=$TOKEN"

Obtener información del contacto

GET /api/v1/inventory/contacts/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/contacts/1?auth_token=$TOKEN"

Crear un contacto

POST /api/v1/inventory/contacts?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre completo del contacto
email string No Dirección de correo electrónico
phone string No Número de teléfono
company string No Empresa u organización
job_title string No Título profesional

input.json

    {
      "contact": {
        "name": "Juan Pérez",
        "email": "juan@ejemplo.com",
        "phone": "+34600000000",
        "company": "ACME"
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/contacts?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un contacto

PATCH /api/v1/inventory/contacts/ID?auth_token=TOKEN

input.json

    {
      "contact": {
        "phone": "+34611111111",
        "job_title": "Ingeniero"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/contacts/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un contacto

DELETE /api/v1/inventory/contacts/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/contacts/1?auth_token=$TOKEN"

Grupos de Contactos

URL base: https://$HOST/api/v1/inventory/contact_groups?auth_token=$TOKEN

Los grupos de contactos permiten organizar contactos en equipos o departamentos jerárquicos. Los grupos pueden tener opcionalmente un grupo padre.

Listar todos los grupos de contactos

GET /api/v1/inventory/contact_groups?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/contact_groups?auth_token=$TOKEN"

Obtener información del grupo de contactos

GET /api/v1/inventory/contact_groups/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/contact_groups/1?auth_token=$TOKEN"

Crear un grupo de contactos

POST /api/v1/inventory/contact_groups?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre del grupo de contactos
description string No Descripción del grupo
parent_id integer No ID del grupo padre (para grupos anidados)

input.json — grupo principal

    {
      "contact_group": {
        "name": "Equipo de Red",
        "description": "Ingenieros de red"
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/contact_groups?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

input.json — grupo anidado

    {
      "contact_group": {
        "name": "Equipo NOC",
        "description": "Ingenieros NOC",
        "parent_id": 1
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/contact_groups?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un grupo de contactos

PATCH /api/v1/inventory/contact_groups/ID?auth_token=TOKEN

input.json

    {
      "contact_group": {
        "name": "Equipo de Red Actualizado"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/contact_groups/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un grupo de contactos

DELETE /api/v1/inventory/contact_groups/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/contact_groups/1?auth_token=$TOKEN"

Roles de Contacto

URL base: https://$HOST/api/v1/inventory/contact_roles?auth_token=$TOKEN

Los roles de contacto definen los roles funcionales que pueden tener los contactos (por ejemplo, Administrador, Técnico).

Listar todos los roles de contacto

GET /api/v1/inventory/contact_roles?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/contact_roles?auth_token=$TOKEN"

Obtener información del rol de contacto

GET /api/v1/inventory/contact_roles/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/contact_roles/1?auth_token=$TOKEN"

Crear un rol de contacto

POST /api/v1/inventory/contact_roles?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre del rol
description string No Descripción del rol

input.json

    {
      "contact_role": {
        "name": "Administrador",
        "description": "Rol de administrador"
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/contact_roles?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un rol de contacto

PATCH /api/v1/inventory/contact_roles/ID?auth_token=TOKEN

input.json

    {
      "contact_role": {
        "description": "Descripción actualizada"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/contact_roles/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un rol de contacto

DELETE /api/v1/inventory/contact_roles/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/contact_roles/1?auth_token=$TOKEN"

Paneles de alimentación

URL base: https://$HOST/api/v1/inventory/power_panels?auth_token=$TOKEN

Los paneles de alimentación representan paneles de distribución eléctrica en la infraestructura del centro de datos.

Listar todos los paneles de alimentación

GET /api/v1/inventory/power_panels?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/power_panels?auth_token=$TOKEN"

Obtener información del panel de alimentación

GET /api/v1/inventory/power_panels/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/power_panels/1?auth_token=$TOKEN"

Crear un panel de alimentación

POST /api/v1/inventory/power_panels?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre del panel de alimentación
description string No Descripción del panel de alimentación

input.json

    {
      "power_panel": {
        "name": "Panel A",
        "description": "Panel de alimentación principal"
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/power_panels?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un panel de alimentación

PATCH /api/v1/inventory/power_panels/ID?auth_token=TOKEN

input.json

    {
      "power_panel": {
        "name": "Panel A Actualizado"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/power_panels/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un panel de alimentación

DELETE /api/v1/inventory/power_panels/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/power_panels/1?auth_token=$TOKEN"

Circuitos de alimentación

URL base: https://$HOST/api/v1/inventory/power_feeds?auth_token=$TOKEN

Los circuitos de alimentación representan circuitos de energía individuales procedentes de un panel de alimentación.

Listar todos los circuitos de alimentación

GET /api/v1/inventory/power_feeds?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/power_feeds?auth_token=$TOKEN"

Obtener información del circuito de alimentación

GET /api/v1/inventory/power_feeds/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/power_feeds/1?auth_token=$TOKEN"

Crear un circuito de alimentación

POST /api/v1/inventory/power_feeds?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre del circuito de alimentación
power_panel_id integer Sí ID del panel de alimentación asociado
voltage integer No Voltaje en voltios
amperage integer No Amperaje en amperios
max_utilization integer No Porcentaje de utilización máxima (0–100)
power_feed_status_id integer No ID del estado del circuito
power_feed_type_id integer No ID del tipo de circuito
power_feed_supply_id integer No ID del tipo de suministro del circuito
power_feed_phase_id integer No ID de la fase del circuito

input.json

    {
      "power_feed": {
        "name": "Circuito A",
        "power_panel_id": 1,
        "voltage": 220,
        "amperage": 16,
        "max_utilization": 80,
        "power_feed_status_id": 1,
        "power_feed_type_id": 1,
        "power_feed_supply_id": 1,
        "power_feed_phase_id": 1
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/power_feeds?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un circuito de alimentación

PATCH /api/v1/inventory/power_feeds/ID?auth_token=TOKEN

input.json

    {
      "power_feed": {
        "amperage": 32,
        "max_utilization": 90
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/power_feeds/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un circuito de alimentación

DELETE /api/v1/inventory/power_feeds/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/power_feeds/1?auth_token=$TOKEN"

Etiquetas

URL base: https://$HOST/api/v1/inventory/tags?auth_token=$TOKEN

Las etiquetas son marcadores que se aplican a los objetos del inventario para su clasificación y filtrado. Opcionalmente, las etiquetas pueden restringirse a tipos específicos de objetos.

Listar todas las etiquetas

GET /api/v1/inventory/tags?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/tags?auth_token=$TOKEN"

Obtener información de la etiqueta

GET /api/v1/inventory/tags/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/tags/1?auth_token=$TOKEN"

Crear una etiqueta

POST /api/v1/inventory/tags?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre de la etiqueta
color string Sí Código de color hexadecimal (sin #)
weight integer No Peso de ordenación (valores mayores indican prioridad)
allowed_object_types array No Lista de tipos de objeto a los que se puede aplicar (p. ej., DcimRack)

input.json — sin restricción de tipo

    {
      "tag": {
        "name": "crítico",
        "color": "ff0000",
        "weight": 100
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/tags?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

input.json — restringido a tipos específicos

    {
      "tag": {
        "name": "etiqueta-rack",
        "color": "0000ff",
        "weight": 50,
        "allowed_object_types": [
          "DcimRack",
          "RackRole"
        ]
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/tags?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar una etiqueta

PATCH /api/v1/inventory/tags/ID?auth_token=TOKEN

input.json

    {
      "tag": {
        "color": "00ff00",
        "weight": 200
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/tags/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar una etiqueta

DELETE /api/v1/inventory/tags/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/tags/1?auth_token=$TOKEN"

Configuraciones de tablas

URL base: https://$HOST/api/v1/inventory/table_configs?auth_token=$TOKEN

Las configuraciones de tablas almacenan preferencias de diseño de columnas definidas por el usuario o compartidas para las vistas de lista de inventario.

Listar todas las configuraciones de tablas

GET /api/v1/inventory/table_configs?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/table_configs?auth_token=$TOKEN"

Obtener información de la configuración de tabla

GET /api/v1/inventory/table_configs/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/table_configs/1?auth_token=$TOKEN"

Crear una configuración de tabla

POST /api/v1/inventory/table_configs?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre para mostrar de la configuración
inventory_type string Sí Modelo de inventario al que se aplica esta configuración (p. ej., DcimRack)
column_order string Sí Lista separada por punto y coma de nombres de campos de columna
enabled boolean No Si la configuración está activa (por defecto: true)
shared boolean No Si la configuración es visible para todos los usuarios (por defecto: false)

input.json — configuración personal

    {
      "table_config": {
        "name": "Vista de mis racks",
        "inventory_type": "DcimRack",
        "column_order": "id;name;u_height;width;rack_status_id",
        "enabled": true,
        "shared": false
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/table_configs?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

input.json — configuración compartida

    {
      "table_config": {
        "name": "Vista de racks compartida",
        "inventory_type": "DcimRack",
        "column_order": "id;name;u_height;width",
        "enabled": true,
        "shared": true
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/table_configs?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar una configuración de tabla

PATCH /api/v1/inventory/table_configs/ID?auth_token=TOKEN

input.json

    {
      "table_config": {
        "name": "Vista de mis racks Actualizada",
        "column_order": "id;name;u_height"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/table_configs/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar una configuración de tabla

DELETE /api/v1/inventory/table_configs/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/table_configs/1?auth_token=$TOKEN"

Claves de cuenta

URL base: https://$HOST/api/v1/inventory/account_keys?auth_token=$TOKEN

Las claves de cuenta almacenan credenciales (contraseñas, claves SSH, tokens) asociadas con los activos del inventario.

!!! warning "Nota de seguridad" Los datos de las claves de cuenta deben tratarse con cuidado. Debe evitarse registrar o exponer respuestas que puedan contener información sensible de credenciales.

Listar todas las claves de cuenta

GET /api/v1/inventory/account_keys?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/account_keys?auth_token=$TOKEN"

Obtener información de la clave de cuenta

GET /api/v1/inventory/account_keys/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/account_keys/1?auth_token=$TOKEN"

Crear una clave de cuenta

POST /api/v1/inventory/account_keys?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre para mostrar de la clave
username string Sí Nombre de usuario asociado con la credencial
key_type string No Tipo de credencial (p. ej., terminal_password, ssh_key)
password string Sí Contraseña o valor secreto
description string No Descripción de la clave de cuenta

input.json

    {
      "account_key": {
        "name": "Mi clave SSH",
        "username": "admin",
        "key_type": "terminal_password",
        "password": "miContraseñaSecreta",
        "description": "Credenciales principales del administrador"
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/account_keys?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar una clave de cuenta

PATCH /api/v1/inventory/account_keys/ID?auth_token=TOKEN

input.json

    {
      "account_key": {
        "password": "nuevaContraseña123",
        "description": "Credenciales actualizadas"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/account_keys/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar una clave de cuenta

DELETE /api/v1/inventory/account_keys/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/account_keys/1?auth_token=$TOKEN"

LAN inalámbricas

URL base: https://$HOST/api/v1/inventory/wireless_lans?auth_token=$TOKEN

Las LANs inalámbricas representan redes Wi-Fi administradas dentro del sistema de inventario. Se agrupan bajo un Grupo de LAN inalámbricas y pueden asociarse a VLAN.

Listar todas las LANs inalámbricas

GET /api/v1/inventory/wireless_lans?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/wireless_lans?auth_token=$TOKEN"

Obtener información de la LAN inalámbrica

GET /api/v1/inventory/wireless_lans/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/wireless_lans/1?auth_token=$TOKEN"

Crear una LAN inalámbrica

POST /api/v1/inventory/wireless_lans?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
ssid string Sí SSID (nombre de la red)
wireless_lan_group_id integer Sí ID del grupo de LAN inalámbricas
description string No Descripción de la red inalámbrica
wireless_status_id integer No ID del estado inalámbrico
wireless_auth_type_id integer No ID del tipo de autenticación inalámbrica
vlan_id integer No ID de la VLAN asociada

input.json

    {
      "wireless_lan": {
        "ssid": "CorpWifi",
        "description": "Red corporativa",
        "wireless_lan_group_id": 1,
        "wireless_status_id": 1,
        "wireless_auth_type_id": 1,
        "vlan_id": 1
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/wireless_lans?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar una LAN inalámbrica

PATCH /api/v1/inventory/wireless_lans/ID?auth_token=TOKEN

input.json

    {
      "wireless_lan": {
        "description": "Descripción actualizada",
        "wireless_status_id": 2
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/wireless_lans/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar una LAN inalámbrica

DELETE /api/v1/inventory/wireless_lans/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/wireless_lans/1?auth_token=$TOKEN"

Grupos de LAN inalámbricas

URL base: https://$HOST/api/v1/inventory/wireless_lan_groups?auth_token=$TOKEN

Los grupos de LAN inalámbricas organizan las redes inalámbricas en una jerarquía. Los grupos pueden ser anidados especificando un grupo padre.

Listar todos los grupos de LAN inalámbricas

GET /api/v1/inventory/wireless_lan_groups?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/wireless_lan_groups?auth_token=$TOKEN"

Obtener información del grupo de LAN inalámbricas

GET /api/v1/inventory/wireless_lan_groups/ID?auth_token=TOKEN
curl -k -X GET "$HOST/api/v1/inventory/wireless_lan_groups/1?auth_token=$TOKEN"

Crear un grupo de LAN inalámbricas

POST /api/v1/inventory/wireless_lan_groups?auth_token=TOKEN

Parámetros del cuerpo:

Campo Tipo Obligatorio Descripción
name string Sí Nombre del grupo de LAN inalámbricas
description string No Descripción del grupo
parent_id integer No ID del grupo padre (para agrupación jerárquica)

input.json — grupo principal

    {
      "wireless_lan_group": {
        "name": "Redes de Oficina",
        "description": "Todas las redes inalámbricas de la oficina"
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/wireless_lan_groups?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

input.json — grupo anidado

    {
      "wireless_lan_group": {
        "name": "Redes del piso 2",
        "description": "Redes del segundo piso",
        "parent_id": 1
      }
    }
curl -k -X POST "$HOST/api/v1/inventory/wireless_lan_groups?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Actualizar un grupo de LAN inalámbricas

PATCH /api/v1/inventory/wireless_lan_groups/ID?auth_token=TOKEN

input.json

    {
      "wireless_lan_group": {
        "name": "Redes de Oficina Actualizadas"
      }
    }
curl -k -X PATCH "$HOST/api/v1/inventory/wireless_lan_groups/1?auth_token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d @input.json

Eliminar un grupo de LAN inalámbricas

DELETE /api/v1/inventory/wireless_lan_groups/ID?auth_token=TOKEN
curl -k -X DELETE "$HOST/api/v1/inventory/wireless_lan_groups/1?auth_token=$TOKEN"