last demo import - cleaned
This commit is contained in:
140
doc/datacenter.json
Normal file
140
doc/datacenter.json
Normal file
@@ -0,0 +1,140 @@
|
||||
{
|
||||
"$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"
|
||||
}
|
||||
}
|
||||
}
|
||||
84
doc/processing.json
Normal file
84
doc/processing.json
Normal file
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"$id": "Processing",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Name of the stream that acts as identifier",
|
||||
"$comment": "Must have some regex"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "General description of the processing unit"
|
||||
},
|
||||
"repository": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"credentials": {
|
||||
"type": "object"
|
||||
},
|
||||
"url": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"owner": {
|
||||
"type": "object"
|
||||
},
|
||||
"license": {
|
||||
"type": "object"
|
||||
},
|
||||
"price": {
|
||||
"type": "object"
|
||||
},
|
||||
"execution_requirements": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"parallel": {
|
||||
"type": "object",
|
||||
"description": "Defines if can be parallelized"
|
||||
},
|
||||
"GPU": {
|
||||
"type": "object"
|
||||
},
|
||||
"scanling_model": {
|
||||
"type": "object",
|
||||
"description": "List of different configuration options"
|
||||
},
|
||||
"RAM": {
|
||||
"type": "object"
|
||||
},
|
||||
"DISK_IO": {
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
},
|
||||
"inputs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "stream.json#/definitions/file"
|
||||
},
|
||||
{
|
||||
"$ref": "stream.json#/definitions/url"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "stream.json#/definitions/file"
|
||||
},
|
||||
{
|
||||
"$ref": "stream.json#/definitions/url"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
61
doc/storage.json
Normal file
61
doc/storage.json
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"$id": "Storage",
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the stream that acts as identifier",
|
||||
"type": "string",
|
||||
"$comment": "Must have some regex"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "General description of the processing unit"
|
||||
},
|
||||
"size": {
|
||||
"type": "object"
|
||||
},
|
||||
"encryption": {
|
||||
"type": "object"
|
||||
},
|
||||
"redundancy": {
|
||||
"type": "object"
|
||||
},
|
||||
"throughput": {
|
||||
"description": "The available performance for the storage",
|
||||
"type": "object"
|
||||
},
|
||||
"booking_price": {
|
||||
"type": "object"
|
||||
},
|
||||
"type": {
|
||||
"type": "object"
|
||||
},
|
||||
"inputs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "stream.json#/definitions/file"
|
||||
},
|
||||
{
|
||||
"$ref": "stream.json#/definitions/url"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"outputs": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "stream.json#/definitions/file"
|
||||
},
|
||||
{
|
||||
"$ref": "stream.json#/definitions/url"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
86
doc/stream.json
Normal file
86
doc/stream.json
Normal file
@@ -0,0 +1,86 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/schema#",
|
||||
"$id": "Stream",
|
||||
"definitions": {
|
||||
"file": {
|
||||
"type": "object",
|
||||
"description": "A stream coming from a file",
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "A user friendly description of the stream"
|
||||
},
|
||||
"ftype": {
|
||||
"type": "string"
|
||||
},
|
||||
"example": {
|
||||
"type": "string",
|
||||
"description": "A example of the stream. Could be a png file, text example, etc."
|
||||
},
|
||||
"location": {
|
||||
"description": "System path to the file",
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"url": {
|
||||
"type": "object",
|
||||
"description": "A URL pointing to some external resource",
|
||||
"properties": {
|
||||
"description": {
|
||||
"type": "string",
|
||||
"description": "A user friendly description of the resource"
|
||||
},
|
||||
"protocol": {
|
||||
"type": "array",
|
||||
"description": "The protocol used to connect to the resource",
|
||||
"$comment": "Probably just using a enum will not be enough. Some protocols could require extra stuff (like certificates, tokens, etc.)",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"ftp",
|
||||
"http",
|
||||
"https",
|
||||
"ftps",
|
||||
"rstp"
|
||||
]
|
||||
}
|
||||
},
|
||||
"example": {
|
||||
"type": "string"
|
||||
},
|
||||
"location": {
|
||||
"type": "string",
|
||||
"description": "The endpoint itself"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "Name of the stream that acts as identifier",
|
||||
"type": "string",
|
||||
"$comment": "Must have some regex"
|
||||
},
|
||||
"feature": {
|
||||
"description": "A similar stream could have different features. Describing the features of the stream assures the correct results when processing it",
|
||||
"type": "object"
|
||||
},
|
||||
"format": {
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/file"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/url"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"feature",
|
||||
"format"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user