skeleton schemas

This commit is contained in:
Harivansh Rathi 2026-04-01 03:11:43 +00:00
parent 0032487ca1
commit 4f174ec3a8
9 changed files with 470 additions and 42 deletions

View file

@ -0,0 +1,30 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://betternas.local/schemas/cloud-profile.schema.json",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"exportId",
"provider",
"baseUrl",
"path"
],
"properties": {
"id": {
"type": "string"
},
"exportId": {
"type": "string"
},
"provider": {
"const": "nextcloud"
},
"baseUrl": {
"type": "string"
},
"path": {
"type": "string"
}
}
}

View file

@ -0,0 +1,41 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://betternas.local/schemas/mount-profile.schema.json",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"exportId",
"protocol",
"displayName",
"mountUrl",
"readonly",
"credentialMode"
],
"properties": {
"id": {
"type": "string"
},
"exportId": {
"type": "string"
},
"protocol": {
"const": "webdav"
},
"displayName": {
"type": "string"
},
"mountUrl": {
"type": "string"
},
"readonly": {
"type": "boolean"
},
"credentialMode": {
"enum": [
"session-token",
"app-password"
]
}
}
}

View file

@ -0,0 +1,52 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://betternas.local/schemas/nas-node.schema.json",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"machineId",
"displayName",
"agentVersion",
"status",
"lastSeenAt",
"directAddress",
"relayAddress"
],
"properties": {
"id": {
"type": "string"
},
"machineId": {
"type": "string"
},
"displayName": {
"type": "string"
},
"agentVersion": {
"type": "string"
},
"status": {
"enum": [
"online",
"offline",
"degraded"
]
},
"lastSeenAt": {
"type": "string"
},
"directAddress": {
"type": [
"string",
"null"
]
},
"relayAddress": {
"type": [
"string",
"null"
]
}
}
}

View file

@ -0,0 +1,47 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://betternas.local/schemas/storage-export.schema.json",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"nasNodeId",
"label",
"path",
"protocols",
"capacityBytes",
"tags"
],
"properties": {
"id": {
"type": "string"
},
"nasNodeId": {
"type": "string"
},
"label": {
"type": "string"
},
"path": {
"type": "string"
},
"protocols": {
"type": "array",
"items": {
"const": "webdav"
}
},
"capacityBytes": {
"type": [
"number",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
}