140 lines
4.8 KiB
JSON
140 lines
4.8 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/schema#",
|
|
"$id": "Storage",
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Name of the datacenter that acts as identifier",
|
|
"type": "string",
|
|
"$comment": "Maybe we should use a different tag as id"
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "General description of the processing unit"
|
|
},
|
|
"cpu": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"$comment": "If we use array to define multiple types of CPU (separated through motherboards?), we should use a id to be able to reffer to them"
|
|
},
|
|
"cores": {
|
|
"type": "integer"
|
|
},
|
|
"architecture": {
|
|
"type": "string",
|
|
"enum": [
|
|
"amd64",
|
|
"i386",
|
|
"armv5",
|
|
"armv7",
|
|
"amr64v8",
|
|
"s390x",
|
|
"ppc64le"
|
|
]
|
|
},
|
|
"shared": {
|
|
"type": "boolean"
|
|
},
|
|
"minimum_memory": {
|
|
"type": "integer",
|
|
"$comment": "I'm not sure if a CPU requires a minimum RAM to work or is just limited to the motherboard where it's installed"
|
|
},
|
|
"platform": {
|
|
"type": "object",
|
|
"$comment": "Some CPU extensions are related to CPU platform"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"memory": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"$comment": "Same problem as with cpu[].id"
|
|
},
|
|
"size": {
|
|
"type": "integer",
|
|
"description": "Amount of memory in GiB"
|
|
},
|
|
"ecc": {
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"gpu": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"type": "string",
|
|
"$comment": "Same problem as with cpu[].id"
|
|
},
|
|
"memory": {
|
|
"type": "integer",
|
|
"description": "Amount of memory in GiB"
|
|
},
|
|
"cores": {
|
|
"type": "integer",
|
|
"description": "Amount of core units"
|
|
},
|
|
"model": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"disk": {
|
|
"$comment": "Should a datacenter have it's own definition of storage or directly refer to storage.json# ?"
|
|
},
|
|
"network": {
|
|
"type": "object",
|
|
"properties": {
|
|
"wan": {
|
|
"type": "array",
|
|
"$comment": "Not sure if we need expose to the user the IP address, since we are inside virtualized network/cloud",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"ip": {
|
|
"type": "integer",
|
|
"description": "IP address expressed in deciman notation"
|
|
},
|
|
"ipv6": {
|
|
"type": "boolean"
|
|
},
|
|
"bandwitch": {
|
|
"type": "integer",
|
|
"description": "Bandwith described in Mbps"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"lan": {
|
|
"$comment": "Should be described?"
|
|
}
|
|
}
|
|
},
|
|
"booking_price": {
|
|
"type": "object"
|
|
},
|
|
"processing_units": {
|
|
"type": "array",
|
|
"$comment": "A datacenter object can have multiple process units associated to him",
|
|
"items": {
|
|
"$ref": "processing.json#"
|
|
}
|
|
},
|
|
"owner": {
|
|
"type": "object"
|
|
}
|
|
}
|
|
} |