Bulk-upsert device types (admin)
POST
/api/admin/seed/device-types
const url = 'http://localhost:3000/api/admin/seed/device-types';const options = { method: 'POST', headers: {cookie: 'session=<session>', 'Content-Type': 'application/json'}, body: '{"items":[{"name":"example","slug":"example","manufacturerId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","manufacturerSlug":"example","description":"example","modelFamily":"example","formFactor":"example","rackUnits":1,"airflow":"example","weightKg":1,"powerIdleW":1,"powerMaxW":1,"poeBudgetW":1,"keyFeatures":"example","typicalDeployment":"example","asicChipset":"example","defaultPlatformId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","defaultPlatformSlug":"example","defaultRoleId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","defaultRoleSlug":"example","popular":true}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/api/admin/seed/device-types \ --header 'Content-Type: application/json' \ --cookie session=<session> \ --data '{ "items": [ { "name": "example", "slug": "example", "manufacturerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "manufacturerSlug": "example", "description": "example", "modelFamily": "example", "formFactor": "example", "rackUnits": 1, "airflow": "example", "weightKg": 1, "powerIdleW": 1, "powerMaxW": 1, "poeBudgetW": 1, "keyFeatures": "example", "typicalDeployment": "example", "asicChipset": "example", "defaultPlatformId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "defaultPlatformSlug": "example", "defaultRoleId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "defaultRoleSlug": "example", "popular": true } ] }'Upsert device types keyed on slug. Resolves manufacturer/default platform/default role by slug when ids are not supplied. Numeric fields (rackUnits, weightKg) accept numbers and are stored as numeric.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ” Media type application/json
object
items
required
Array<object>
object
name
required
string
slug
string
manufacturerId
string format: uuid
manufacturerSlug
string
description
string
modelFamily
string
formFactor
string
rackUnits
number
airflow
string
weightKg
number
powerIdleW
integer
powerMaxW
integer
poeBudgetW
integer
keyFeatures
string
typicalDeployment
string
asicChipset
string
defaultPlatformId
string format: uuid
defaultPlatformSlug
string
defaultRoleId
string format: uuid
defaultRoleSlug
string
popular
boolean
Example generated
{ "items": [ { "name": "example", "slug": "example", "manufacturerId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "manufacturerSlug": "example", "description": "example", "modelFamily": "example", "formFactor": "example", "rackUnits": 1, "airflow": "example", "weightKg": 1, "powerIdleW": 1, "powerMaxW": 1, "poeBudgetW": 1, "keyFeatures": "example", "typicalDeployment": "example", "asicChipset": "example", "defaultPlatformId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "defaultPlatformSlug": "example", "defaultRoleId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "defaultRoleSlug": "example", "popular": true } ]}Responses
Section titled “ Responses ”Seed report
Media type application/json
object
data
object
created
required
integer
updated
required
integer
skipped
required
integer
errors
required
Array<object>
object
index
required
integer
key
string
message
required
string
Example generated
{ "data": { "created": 1, "updated": 1, "skipped": 1, "errors": [ { "index": 1, "key": "example", "message": "example" } ] }}Body must include items array
Media type application/json
object
error
required
string
Example
{ "error": "Not found"}Not authenticated
Media type application/json
object
error
required
string
Example
{ "error": "Not found"}Admin access required
Media type application/json
object
error
required
string
Example
{ "error": "Not found"}