{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "/Matz/Patrice/Master-Thesis/Service.schema.json", "title": "Profile", "description": "An Applicarions measure Profile in different Scenarios", "type": "object", "properties": { "id":{ "description": "name of the schema used to validate, optinal", "type": "string" }, "name": { "description": "user defined name, optinal", "type": "string" }, "scenarios": { "description": "", "type": "array", "minItems": 1, "uniqueItems": true, "items": { "type": "object", "properties": { "serviceID": { "description": "user defined name, optinal", "type": "string" }, "scales": { "description": "Does this service scale", "type": "boolean" }, "scaleUpAt": { "description": "average load to send the scale up command", "type": "number" }, "scaleTime": { "description": "amount of time in seconds needed for the deployment of another replic", "type": "number" }, "scaleDownAt": { "description": "avergae load to sclae down at", "type": "number" }, "scale": { "description": "initial scale of a service", "type": "number" }, "scalingDelay":{ "description": "how long a service need to scale up in seconds", "type": "number" }, "scalingMetric": { "description": "which metric usage to go by CPU, RAM, IO, NET", "type" : "object", "required" : ["metric"], "properties" : { "metric" : { "type" : "string", "enum" : ["CPU", "RAM", "IO", "NET"] } } }, "defaultServer": { "description": "The unique identifier for a scenario", "type": "object", "properties": { "maxCPU": { "description": "which metric usage to go by CPU, RAM, IO, NET", "type": "integer" }, "maxRAM": { "description": "which metric usage to go by CPU, RAM, IO, NET", "type": "integer" }, "maxIO": { "description": "which metric usage to go by CPU, RAM, IO, NET", "type": "integer" }, "maxNET": { "description": "which metric usage to go by CPU, RAM, IO, NET", "type": "integer" } }, "required": [ "maxCPU", "maxRAM", "maxIO", "maxNET" ] } }, "required": [ "defaultServer", "serviceID", "scales" ] } } } }