-
Notifications
You must be signed in to change notification settings - Fork 1
/
simulation-elements.yaml
154 lines (154 loc) · 4.36 KB
/
simulation-elements.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
openapi: "3.0.0"
info:
title: "Building Blocks for CloudSim Express"
description: "This document provides schema definitions for simulation components. For example, it defines a global
datacenter network, which has a set of zones, and an inter-zone network. It then continues to define rest of the
components of global datacenter network in a top-down approach, such as a zone made up with a broker and a
datacenter, etc. The definitions in this document are available for CloudSim Express users to script their scenarios.
Concretely, if the user A designs a datacenter network with five zones, and the user B designs a datacenter network
with three zones, both these users can use the global datacenter network component definition. For a specific
component that is not present with CloudSim Express, can be easily added by defining its schematic in this document."
version: "0.1-SNAPSHOT"
license:
name: "gpl-3.0"
url: "https://www.gnu.org/licenses/gpl-3.0.en.html"
paths:
/simulate:
post:
description: ""
responses:
"501":
description: "Not Implemented"
components:
schemas:
# 'SimulationSystemModel' is a reserved component that identifies the system model.
SimulationSystemModel:
type: object
properties:
name:
type: string
GlobalDatacenterNetwork:
type: object
properties:
zoneCount:
type: integer
interZoneNetworkDescriptionFilePath:
type: string
zones:
type: array
items:
$ref: '#/components/schemas/Zone'
Zone:
type: object
properties:
name:
type: string
datacenter:
$ref: '#/components/schemas/Datacenter'
broker:
$ref: '#/components/schemas/Broker'
workloadGenerator:
$ref: '#/components/schemas/WorkloadGenerator'
Broker:
type: object
properties:
variant:
$ref: '#/components/schemas/Extension'
name:
type: string
WorkloadGenerator:
type: object
properties:
variant:
$ref: '#/components/schemas/Extension'
Datacenter:
type: object
properties:
variant:
$ref: '#/components/schemas/Extension'
characteristics:
$ref: '#/components/schemas/DatacenterCharacteristics'
vmAllocationPolicy:
$ref: '#/components/schemas/Extension'
storage:
type: string
schedulingInterval:
type: integer
name:
type: string
Host:
type: object
properties:
variant:
$ref: '#/components/schemas/Extension'
id:
type: integer
ramProvisioner:
$ref: '#/components/schemas/Extension'
bwProvisioner:
$ref: '#/components/schemas/Extension'
storage:
type: integer
processingElementList:
type: array
items:
$ref: '#/components/schemas/ProcessingElement'
vmScheduler:
$ref: '#/components/schemas/Extension'
ProcessingElement:
type: object
properties:
variant:
$ref: '#/components/schemas/Extension'
id:
type: string
processingElementProvisioner:
$ref: '#/components/schemas/ProcessingElementProvisioner'
ProcessingElementProvisioner:
type: object
properties:
variant:
$ref: '#/components/schemas/Extension'
mips:
type: double
DatacenterCharacteristics:
type: object
properties:
arch:
type: string
os:
type: string
vmm:
type: string
timeZone:
type: double
cost:
type: double
costPerMemory:
type: double
costPerStorage:
type: double
costPerBandwidth:
type: double
hostList:
type: array
items:
$ref: '#/components/schemas/Host'
Extension:
type: object
properties:
className:
type: string
copies:
type: integer
extensionProperties:
type: array
items:
$ref: '#/components/schemas/Property'
Property:
type: object
properties:
key:
type: string
value:
type: string