summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/shapes/index.js110
1 files changed, 110 insertions, 0 deletions
diff --git a/src/shapes/index.js b/src/shapes/index.js
index 770e8d76..1938032e 100644
--- a/src/shapes/index.js
+++ b/src/shapes/index.js
@@ -25,4 +25,114 @@ Shapes.Authorization = PropTypes.shape({
authorizationLevel: PropTypes.string.isRequired,
});
+Shapes.FailureModel = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ rate: PropTypes.number.isRequired,
+});
+
+Shapes.ProcessingUnit = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ manufacturer: PropTypes.string.isRequired,
+ family: PropTypes.string.isRequired,
+ generation: PropTypes.string.isRequired,
+ model: PropTypes.string.isRequired,
+ clockRateMhz: PropTypes.number.isRequired,
+ numberOfCores: PropTypes.number.isRequired,
+ energyConsumptionW: PropTypes.number.isRequired,
+ failureModelId: PropTypes.number.isRequired,
+ failureModel: Shapes.FailureModel,
+});
+
+Shapes.StorageUnit = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ manufacturer: PropTypes.string.isRequired,
+ family: PropTypes.string.isRequired,
+ generation: PropTypes.string.isRequired,
+ model: PropTypes.string.isRequired,
+ speedMbPerS: PropTypes.number.isRequired,
+ sizeMb: PropTypes.number.isRequired,
+ energyConsumptionW: PropTypes.number.isRequired,
+ failureModelId: PropTypes.number.isRequired,
+ failureModel: Shapes.FailureModel,
+});
+
+Shapes.Machine = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ rackId: PropTypes.number.isRequired,
+ position: PropTypes.number.isRequired,
+ cpuIds: PropTypes.arrayOf(PropTypes.number.isRequired),
+ cpus: PropTypes.arrayOf(Shapes.ProcessingUnit),
+ gpuIds: PropTypes.arrayOf(PropTypes.number.isRequired),
+ gpus: PropTypes.arrayOf(Shapes.ProcessingUnit),
+ memoryIds: PropTypes.arrayOf(PropTypes.number.isRequired),
+ memories: PropTypes.arrayOf(Shapes.StorageUnit),
+ storageIds: PropTypes.arrayOf(PropTypes.number.isRequired),
+ storages: PropTypes.arrayOf(Shapes.StorageUnit),
+});
+
+Shapes.Rack = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ capacity: PropTypes.number.isRequired,
+ powerCapacityW: PropTypes.number.isRequired,
+ machines: PropTypes.arrayOf(Shapes.Machine),
+});
+
+Shapes.CoolingItem = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ energyConsumptionW: PropTypes.number.isRequired,
+ type: PropTypes.string.isRequired,
+ failureModelId: PropTypes.number.isRequired,
+ failureModel: Shapes.FailureModel,
+});
+
+Shapes.PSU = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ energyKwh: PropTypes.number.isRequired,
+ type: PropTypes.string.isRequired,
+ failureModelId: PropTypes.number.isRequired,
+ failureModel: Shapes.FailureModel,
+});
+
+Shapes.Tile = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ roomId: PropTypes.number.isRequired,
+ positionX: PropTypes.number.isRequired,
+ positionY: PropTypes.number.isRequired,
+ objectId: PropTypes.number,
+ objectType: PropTypes.number,
+ rack: Shapes.Rack,
+ coolingItem: Shapes.CoolingItem,
+ psu: Shapes.PSU,
+});
+
+Shapes.Room = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ datacenterId: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ roomType: PropTypes.string.isRequired,
+ tiles: PropTypes.arrayOf(Shapes.Tile),
+});
+
+Shapes.Datacenter = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ rooms: PropTypes.arrayOf(Shapes.Room),
+});
+
+Shapes.Section = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ pathId: PropTypes.number.isRequired,
+ datacenterId: PropTypes.number.isRequired,
+ datacenter: Shapes.Datacenter,
+});
+
+Shapes.Path = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ simulationId: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ datetimeCreated: PropTypes.string.isRequired,
+ sections: PropTypes.arrayOf(Shapes.Section),
+});
+
export default Shapes;