NFVICapacityInformation_def.yaml 13.4 KB
Newer Older
1
2
3
components:
  schemas:
    NfviCapacityInfo:
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
      type: object
      description: |
        This type defines the format of the NFVI capacity information. The type shall comply with the provisions defined
        in Table 10.5.2.4-1.
      required:
        - id
        - vimId
        - capacityInfoPerZone
      properties:
        id:
          description: |
            Identifier of this NFVI capacity information. Its value shall be the same as vimId.
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
        vimId:
          description: |
            Identifies the VIM to which the NFVI capacity information is associated.
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
        capacityInfoPerZone:
          description: |
            Capacity information on a per resource zone basis under control by the associated VIM.
24
25
26
          type: array
          items:
            $ref: '#/components/schemas/NfviCapacityInfoPerZone'
27
28
29
30
        totalCapacityInfo:
          description: |
            Total capacity information associated to the VIM.
          $ref: '#/components/schemas/NfviCapacityMeasurement'
31
32
33
34
        timeInterval:
          description: |
            Time interval of the NFVI capacity information.
          $ref: '#/components/schemas/TimeInterval'
35
36

    CapacityThreshold:
37
38
39
      type: object
      description: |
        This type represents a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1.
piscione's avatar
piscione committed
40
41
42
43
        NOTE 1:	The "objectInstanceId" aims to identify the "Individual VIM's NFVI capacity information", which is
        associated to a VIM instance.
        NOTE 2:	The "subObjectInstanceIds" aim to identify the resource zones in which the available NFVI capacity
        crosses a threshold value.
44
45
46
47
      required:
        - id
        - objectInstanceId
        - criteria
48
        - callbackUri
49
50
51
52
53
54
55
56
        - _links
      properties:
        id:
          description: |
            Identifier of this capacity threshold resource.
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
        objectInstanceId:
          description: |
piscione's avatar
piscione committed
57
            Identifier of the VIM instance associated with the capacity threshold. See note 1.
58
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
59
60
61
62
        subObjectInstanceIds:
          description: |
            Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold.
            If this attribute is absent, measurements are taken for all sub-object instances of the measured object instance.
piscione's avatar
piscione committed
63
            See note 2.
64
65
66
          type: array
          items:
            $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim
67
68
69
70
        criteria:
          description: |
            Criteria that define this capacity threshold.
          $ref: '#/components/schemas/CapacityThresholdCriteria'
71
72
73
74
        callbackUri:
          description: |
            The URI of the endpoint to send the notification to.
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
        _links:
          type: object
          description: |
            Links for this resource.
          required:
            - self
          properties:
            self:
              description: |
                URI of this resource.
              $ref: ../../definitions/SOL005_def.yaml#/definitions/Link
            object:
              description: |
                Link to a resource representing the VIM’s NFVI capacity information. Shall be present if the VIM’s NFVI
                capacity information is accessible as a resource.
              $ref: ../../definitions/SOL005_def.yaml#/definitions/Link
91
92

    CreateCapacityThresholdRequest:
93
94
95
96
97
98
99
100
101
102
103
104
      type: object
      description: |
        This type represents a request to create a capacity threshold. It shall comply with the provisions defined in
        table 10.5.2.3-1.
      required:
        - objectInstanceId
        - criteria
      properties:
        objectInstanceId:
          description: |
            Identifier of the VIM instance associated with this capacity threshold.
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
105
106
107
108
109
110
111
        subObjectInstanceIds:
          description: |
            Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold.
            If this attribute is absent, measurements will be taken for all sub-object instances of the measured object instance.
          type: array
          items:
            $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim
112
113
114
115
        criteria:
          description: |
            Criteria that define this capacity threshold.
          $ref: '#/components/schemas/CapacityThresholdCriteria'
116
117
118
119
120
121
122
123
124
125
        callbackUri:
          description: |
            The URI of the endpoint to send the notification to.
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri
        authentication:
          description: |
            Authentication parameters to configure the use of Authorization when sending notifications corresponding to
            this capacity threshold, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013.
            This attribute shall only be present if the API consumer requires authorization of notifications.
          $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication
126

127
128
129
130
131
    CapacityThresholdCriteria:
      type: object
      description: |
        This type represents criteria that define a capacity threshold.
        It shall comply with the provisions defined in table 10.5.3.3-1.
piscione's avatar
piscione committed
132
133
134
135
136
137
        NOTE 1:	In the present document, simple thresholds are defined.
        The definition of additional threshold types is left for future specification.
        NOTE 2:	The hysteresis is defined to prevent storms of threshold crossing
        notifications. When processing a request to create a threshold, implementations
        should enforce a suitable minimum value for this attribute (e.g. override the
        value or reject the request).
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
      required:
        - capacityMetric
        - thresholdType
      properties:
        capacityMetric:
          description: |
            Defines the capacity metric for which the threshold applies.
          type: object
          required:
            - resourceType
            - capacityMeasurementName
            - capacityType
          properties:
            resourceType:
              description: |
                Type of resource.
              $ref: '#/components/schemas/NfviCapacityResourceTypeEnumeration'
            capacityMeasurementName:
              description: |
                Name of the capacity measurement. Different resource types can have different associated capacity measurements,
                typically associated to different sub-types of the resource type.
159
              type: string
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
            capacityType:
              description: |
                The type of capacity for the threshold.
                Permitted values:
                -	TOTAL: for total capacity.
                -	ALLOCATED: for allocated/used capacity.
                -	RESERVED: for reserved capacity.
                -	AVAILABLE: for available capacity.
              type: string
              enum:
                - TOTAL
                - ALLOCATED
                - RESERVED
                - AVAILABLE
        thresholdType:
          description: |
            Type of capacity threshold. This attribute determines which other attributes are present in the data structure.
            Permitted values:
            -	SIMPLE: Single-valued static threshold.
piscione's avatar
piscione committed
179
            See note 1.
180
181
182
183
184
185
          type: string
          enum:
            - SIMPLE
        simpleThresholdDetails:
          description: |
            Details of a simple threshold. Shall be present if thresholdType="SIMPLE".
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
          type: array
          items:
            type: object
            required:
              - thresholdValue
              - hysteresis
            properties:
              thresholdValue:
                description: |
                  The threshold value. Shall be represented as a floating point number.
                type: number
              hysteresis:
                description: |
                  The hysteresis of the threshold.
                  Shall be represented as a non-negative floating point number.
                  A notification with crossing direction "UP" will be generated if the measured value reaches or
                  exceeds "thresholdValue" + "hysteresis". A notification with crossing direction "DOWN" will be
                  generated if the measured value reaches or undercuts "thresholdValue" - "hysteresis".
piscione's avatar
piscione committed
204
                  See note 2.
205
                type: number
206

207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
    NfviCapacityInfoPerZone:
      type: object
      description: |
        This type defines the format of the NFVI capacity information on a per resource zone basis.
        The type shall comply with the provisions defined in table 10.5.2.5-1.
      required:
        - capacityMeasurements
      properties:
        resourceZoneId:
          description: |
            Identifies the resource zone of the applicable NFVI capacity information.
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
        capacityMeasurements:
          description: |
            Capacity measurement on a per resource type basis.
222
223
224
          type: array
          items:
            $ref: '#/components/schemas/NfviCapacityMeasurement'
225
226
227
228
229

    TimeInterval:
      type: object
      description: |
        This type defines the format of a time interval. The type shall comply with the provisions defined in table 10.5.2.7-1.
piscione's avatar
piscione committed
230
231
        NOTE:	When only the startTime is present, there is no time interval being defined, and therefore the provided timing
        information refers to a specific point in time.
232
233
234
235
236
      required:
        - aTime
      properties:
        aTime:
          description: |
piscione's avatar
piscione committed
237
            First date and time of the interval. See note.
238
239
240
241
242
          $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime
        bTime:
          description: |
            Second date and time of the interval. Shall be present when a time interval is provided, and absent otherwise.
            When provided, the bTime shall be greater than aTime.
piscione's avatar
piscione committed
243
            See note.
244
245
246
247
248
249
250
          $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime

    NfviCapacityMeasurement:
      type: object
      description: |
        This type defines the format of the NFVI capacity information on a per resource type basis.
        The type shall comply with the provisions defined in table 10.5.2.6-1.
piscione's avatar
piscione committed
251
252
        NOTE:	The present document and referred documents do not specify the capacity measurements,
        thus the capacity measurement names are not specified in the present document version.
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
      required:
        - resourceType
        - capacityMeasurementName
        - totalCapacity
        - allocatedCapacity
        - availableCapacity
      properties:
        resourceType:
          description: |
            Type of resource.
          $ref: '#/components/schemas/NfviCapacityResourceTypeEnumeration'
        capacityMeasurementName:
          description: |
            Name of the capacity measurement. Different resource types can have different associated capacity measurements,
            typically associated to different sub-types of the resource type.
piscione's avatar
piscione committed
268
            See note.
269
          type: string
270
271
272
        totalCapacity:
          description: |
            The total capacity.
273
          type: object
274
275
276
        allocatedCapacity:
          description: |
            The allocated/used capacity.
277
          type: object
278
279
280
281
        reservedCapacity:
          description: |
            The reserved capacity. Shall be present if the capacity measurement relates to a resource type and
            (and sub-type) that is reservable.
282
          type: object
283
284
285
        availableCapacity:
          description: |
            The available capacity.
286
          type: object
287
288
289
290
291
292
293
294
295
296
297
298
299

    NfviCapacityResourceTypeEnumeration:
      type: string
      description: |
        The enumeration NfviCapacityResourceTypeEnumeration shall comply with the provisions in table 10.5.4.3-1.
        * VR_COMPUTE: For virtualised compute resource.
        * VR_NETWORK: For virtualised network resource.
        * VR_STORAGE: For virtualised storage resource.
        * HOST_COMPUTE: For host compute resource.
      enum:
        - VR_COMPUTE
        - VR_NETWORK
        - VR_STORAGE
300
301
302
303
304
        - HOST_COMPUTE

    CapacityThresholdModifications:
      description: |
        This type represents modifications to a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1.
piscione's avatar
piscione committed
305
        NOTE:	At least one of the attributes defined in this type shall be present in request bodies.
306
307
308
309
310
      type: object
      properties:
        callbackUri:
          description: |
            New value of the "callbackUri" attribute. The value "null" is not permitted.
piscione's avatar
piscione committed
311
            See note.
312
313
314
315
316
          $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri
        authentication:
          description: |
            New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body,
            these modifications shall be applied according to the rules of JSON Merge Patch (see IETF RFC 7396).
piscione's avatar
piscione committed
317

318
            This attribute shall not be present in response bodies.
piscione's avatar
piscione committed
319
            See note.
320
          $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication