SOL002SOL003VNFLifecycleManagement_def.yaml 47.9 KB
Newer Older
1
2
3
4
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt

definitions:
5
  CreateVnfRequest:
6
7
    type: object
    required:
8
      - vnfdId
9
    properties:
10
      vnfdId:
11
        description: >
12
13
14
15
          Identifier that identifies the VNFD which defines the VNF instance to
          be created.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      vnfInstanceName:
16
        description: >
17
18
19
          Human-readable name of the VNF instance to be created.
        type: string
      vnfInstanceDescription:
20
        description: >
21
22
23
          Human-readable description of the VNF instance to be created.
        type: string
      metadata:
24
        description: >
25
26
27
          If present, this attribute provides additional initial values, overriding those obtained from the VNFD, for
          the "metadata" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling metadata
          during the operation are defined in clause 5.4.2.3.1.
28
29
30
31
32
33
34
35
36
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"

  ScaleVnfRequest:
    type: object
    required:
      - type
      - aspectId
    properties:
      type:
37
        description: >
38
39
40
41
42
43
          Indicates the type of the scale operation requested.
          Permitted values:
          * SCALE_OUT: adding additional VNFC instances to the VNF to increase
            capacity
          * SCALE_IN: removing VNFC instances from the VNF in order to release
            unused capacity.
44
        type: string
45
46
47
48
49
50
51
52
53
54
55
56
57
58
        enum:
          - SCALE_OUT
          - SCALE_IN
      aspectId:
        description: >
          Identifier of the scaling aspect.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
      numberOfSteps:
        description: >
          Number of scaling steps to be executed as part of this Scale VNF
          operation. It shall be a positive number and the default value
          shall be 1.
        type: integer
        default: 1
59
60
      additionalParams:
        description: >
61
62
63
          Additional parameters passed by the NFVO as input to the scaling
          process, specific to the VNF being scaled, as declared in the VNFD
          as part of "ScaleVnfOpConfig".
64
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
65
66
67

  ScaleVnfToLevelRequest:
    description: >
68
69
70
71
72
73
      This type represents request parameters for the "Scale VNF to Level" operation. 
      It shall comply with the provisions defined in table 5.5.2.6-1. See clause B.2 
      for an explanation of VNF scaling.

      NOTE:	Either the instantiationLevelId attribute or the scaleInfo attribute shall 
            be included.
74
    type: object
75
76
77
78
79
80
    anyOf:
      - oneOf:
          - required:
              - instantiationLevelId
          - required:
              - scaleInfo
81
82
    properties:
      instantiationLevelId:
83
        description: >
84
85
          Identifier of the target instantiation level of the current
          deployment flavour to which the VNF is requested to be scaled.
86
          See note.
87
88
89
90
91
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
      scaleInfo:
        description: >
          For each scaling aspect of the current deployment flavour, indicates
          the target scale level to which the VNF is to be scaled.
92
          See note.
93
94
95
96
97
98
99
100
        type: array
        items:
          $ref: "#/definitions/ScaleInfo"
      additionalParams:
        description: >
          Additional parameters passed by the NFVO as input to the scaling
          process, specific to the VNF being scaled, as declared in the
          VNFD as part of "ScaleVnfToLevelOpConfig".
101
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
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
  VnfInfoModificationRequest:
    description: >
      This type represents attribute modifications for an "Individual VNF instance" resource,
      i.e. modifications to a resource representation based on the "VnfInstance" data type.
      The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2
      are included in the "VnfInfoModificationRequest" data type.
      The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1.
    type: object
    properties:
      vnfInstanceName:
        description: >
          New value of the "vnfInstanceName" attribute in "VnfInstance", or "null" to remove the attribute.
        type: string
      vnfInstanceDescription:
        description: >
          New value of the "vnfInstanceDescription" attribute in "VnfInstance", or "null" to remove the attribute.
        type: string
      vnfdId:
        description: >
          New value of the "vnfdId" attribute in "VnfInstance". The value "null" is not permitted.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      vnfConfigurableProperties:
        description: >
          Modifications of the "vnfConfigurableProperties" attribute in "VnfInstance".
          If present, these modifications shall be applied according to the rules of
          JSON Merge PATCH (see IETF RFC 7396 [15]).
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
      metadata:
        description: >
          Modifications of the "metadattametadata" attribute in "VnfInstance".
          If present, these modifications shall be applied according to the rules of
          JSON Merge PATCH (see IETF  RFC  7396  [15]).
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
      extensions:
        description: >
          Modifications of the "extensions" attribute in "VnfInstance".
          If present, these modifications shall be applied according to the rules of
          JSON Merge PATCH (see IETF  RFC  7396  [15]).
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
      vnfcInfoModifications:
        description: >
          Modifications of certain entries in the "vnfcInfo" attribute array in the
          "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table.
        type: array
        items:
          $ref: "#/definitions/VnfcInfoModifications"
      vnfcInfoModificationsDeleteIds:
        description: >
          List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array
          to be used as "deleteIdList" as defined below this table.
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
          The following provisions shall apply when modifying an attribute that is an array of objects of type
          "VnfcInfo" by supplying an array of objects of type "VnfcInfoModifications".
          Assumptions:
            1)	"oldList" is the "VnfcInfo" array to be modified and "newList" is the "VnfcInfoModifications"
                array that contains the changes.
            2)	"oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList".
            3)	A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that has the same content
                of the "id" attribute as the "newEntry"; a "newEntry" has no corresponding entry if no such
                "oldEntry" exists.
            4)	In any array of "VnfcInfo" resp. "VnfcInfoModifications" structures, the content of "id" is unique
                (i.e. there are no two entries with the same content of "id").
          Provisions:
            1)	For each "newEntry" in "newList" that has no corresponding entry in "oldList", the "oldList" array
                shall be modified by adding that "newEntry".
            2)	For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList",
                the value of "oldEntry" shall be updated with the content of "newEntry" as specified
                for the data type of "newEntry (refer to clause 5.5.3.24 for the data type "VnfcInfoModifications").
170
171
172
173
174
        type: array
        items:
          $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"

  CancelMode:
175
    description: >
176
177
178
179
180
181
182
183
184
185
      This type represents a parameter to select the mode of cancelling an
      ongoing VNF LCM operation occurrence.
    type: object
    required:
      - cancelMode
    properties:
      cancelMode:
        description: >
          Cancellation mode to apply.
        $ref: "#/definitions/CancelModeType"
186

187
  LccnSubscriptionRequest:
188
    description: >
189
190
      This type represents a subscription request related to notifications
      about VNF lifecycle changes.
191
192
    type: object
    required:
193
      - callbackUri
194
    properties:
195
      filter:
196
        description: >
197
198
199
200
201
202
          Filter settings for this subscription, to define the subset of all
          notifications this subscription relates to. A particular
          notification is sent to the subscriber if the filter matches, or if
          there is no filter.
        $ref: "#/definitions/LifecycleChangeNotificationsFilter"
      callbackUri:
203
        description: >
204
205
206
          The URI of the endpoint to send the notification to.
        $ref: "SOL002SOL003_def.yaml#/definitions/Uri"
      authentication:
207
        description: >
208
209
210
211
212
213
          Authentication parameters to configure the use of Authorization when
          sending notifications corresponding to this subscription, as defined
          in clause 8.3.4 of ETSI GS NFV-SOL 013.
          This attribute shall only be present if the subscriber requires
          authorization of notifications.
        $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
214
215
216
217
218
      verbosity:
        description: >
          This attribute signals the requested verbosity of LCM operation occurrence notifications. If it is not present,
          it shall default to the value "FULL".
        $ref: "#/definitions/LcmOpOccNotificationVerbosityType"
219

220
  LccnSubscription:
221
    description: >
222
223
      This type represents a subscription related to notifications about VNF
      lifecycle changes.
224
225
226
    type: object
    required:
      - id
227
      - callbackUri
228
      - verbosity
229
      - _links
230
231
232
    properties:
      id:
        description: >
233
234
235
          Identifier of this subscription resource.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      filter:
236
        description: >
237
238
239
240
241
242
          Filter settings for this subscription, to define the subset of all
          notifications this subscription relates to. A particular
          notification is sent to the subscriber if the filter matches, or if
          there is no filter.
        $ref: "#/definitions/LifecycleChangeNotificationsFilter"
      callbackUri:
243
        description: >
244
245
          The URI of the endpoint to send the notification to.
        $ref: "SOL002SOL003_def.yaml#/definitions/Uri"
246
247
248
249
      verbosity:
        description: >
          This attribute signals the verbosity of LCM operation occurrence notifications.
        $ref: "#/definitions/LcmOpOccNotificationVerbosityType"
250
      _links:
251
        description: >
252
253
254
255
256
257
258
259
260
          Links to resources related to this resource.
        type: object
        required:
          - self
        properties:
          self:
            description: >
              URI of this resource.
            $ref: "SOL002SOL003_def.yaml#/definitions/Link"
261
  
262
  ExtVirtualLinkInfo:
263
264
265
266
267
268
269
270
271
    description: >
      This type represents information about an external VL. It shall comply with the provisions defined in table 5.5.3.2-1.

      NOTE:	This attribute reflects the current configuration information that has resulted from merging into this attribute 
            the "VnfExtCpData" information which was passed as part of the "ExtVirtualLinkData" structure in the input of the 
            most recent VNF LCM operation such as "InstantiateVnfRequest", "ChangeExtVnfConnectivityRequest", "ChangeVnfFlavourRequest" 
            or "ChangeCurrentVnfPkgRequest", or in the Grant response. If applying such change results in an empty list of 
            "currentVnfExtCpData" structure instances, the affected instance of "ExtVirtualLinkInfo" shall be removed from its 
            parent data structure.
272
    type: object
273
    required:
274
275
      - id
      - resourceHandle
276
      - currentVnfExtCpData
277
    properties:
278
      id:
279
        description: >
280
281
282
283
284
285
          Identifier of the external VL and the related external VL
          information instance.
          The identifier is assigned by the NFV-MANO entity that manages this
          VL instance.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      resourceHandle:
286
        description: >
287
288
289
290
291
292
293
294
          Reference to the resource realizing this VL.
        $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
      extLinkPorts:
        description: >
          Link ports of this VL.
        type: array
        items:
          $ref: "#/definitions/ExtLinkPortInfo"
295
296
      currentVnfExtCpData:
        description: >
297
298
          Allows the API consumer to read the current CP configuration information for the connection of external CPs 
          to the external virtual link. See note.
299
300
301
        type: array
        items:
          $ref: "SOL002SOL003_def.yaml#/definitions/VnfExtCpData"
302

303
  ScaleInfo:
304
    required:
305
306
307
      - aspectId
      - scaleLevel
    type: object
308
    properties:
309
      aspectId:
310
        description: >
311
312
          Identifier of the scaling aspect.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
313
314
315
316
317
318
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
          current VNF package" operation or due to its final failure).
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
319
      scaleLevel:
320
        description: >
321
322
323
          Indicates the scale level. The minimum value shall be 0 and the
          maximum value shall be <= maxScaleLevel as described in the VNFD.
        type: integer
324

325
  VnfLinkPortInfo:
326
327
328
329
    description: >
      This type represents a link port of an internal VL of a VNF. It shall comply with the provisions 
      defined in table 5.5.3.8 1.

330
      NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId
331
332
333
              with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be 
              present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" 
              and vipCpInstanceId are present, the two different CP instances share the linkport.
334
      NOTE 2: Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId
335
336
              and vnfcCpInstanceId are present (UC#5 and UC#5-b), only vnfcCpInstanceId is present (UC#2), or 
              only vipCpInstanceId is present (UC6 and UC#6-b).
337
      NOTE 3: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle"
338
              attribute.
339
340
341
342
343
344
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
345
        description: >
346
347
348
349
          Identifier of this link port as provided by the entity that has created the link port.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      resourceHandle:
        description: >
350
          Reference to the virtualised resource realizing this link
351
352
353
354
          port.
        $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
      cpInstanceId:
        description: >
355
356
357
358
359
360
361
          When the link port is used for external connectivity by the VNF, this attribute represents the 
          identifier of the external CP associated with this link port.
          
          When the link port is used for internal connectivity in the VNF, this attribute represents the 
          identifier of the VNFC CP to be connected to this link port.
          
          Shall be present when the link port is used for external connectivity by the VNF.
362
          May be present if used to reference a VNFC CP instance.
363
364
365
366
          There shall be at most one link port associated with any external connection point instance or 
          internal connection point (i.e. VNFC CP) instance.
          The value refers to an "extCpInfo" item in the VnfInstance or a "vnfcCpInfo" item of a "vnfcResourceInfo" 
          item in the VnfInstance. See note 1.
367
368
369
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpInstanceType:
        description: >
370
371
372
          Type of the CP instance that is identified by cpInstanceId. 
          Shall be present if "cpInstanceId" is present and shall be absent otherwise.
          
373
          Permitted values:
374
375
376
          - VNFC_CP: The link port is connected to a VNFC CP.
          -	EXT_CP: The link port is associated to an external CP.
          See note 1.
377
378
        type: string
        enum:
379
380
          - VNFC_CP
          - EXT_CP
381
382
      vipCpInstanceId:
        description: >
383
384
          VIP CP instance of the VNF connected to this link port. May be present. 
          See notes 1, and 2.
385
386
387
388
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      trunkResourceId:
        description: >
          Identifier of the trunk resource in the VIM.
389
390
          Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. 
          See note 3.
391
392
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim"

393
394
  ExtLinkPortInfo:
    description: >
395
396
397
398
399
      This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to 
      an NS VL. It shall comply with the provisions defined in table 5.5.3.9-1.

      NOTE 1:	The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples for such a configuration.
      NOTE 2:	The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute.
400
401
402
403
404
405
    type: object
    required:
      - id
      - resourceHandle
    properties:
      id:
406
        description: >
407
408
          Identifier of this link port as provided by the entity that has
          created the link port.
409
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
410
      resourceHandle:
411
        description: >
412
413
414
415
          Reference to the virtualised resource realizing this link
          port.
        $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
      cpInstanceId:
416
        description: >
417
418
419
420
421
          Identifier of the external CP of the VNF connected to this link
          port. There shall be at most one link port associated with any
          external connection point instance. The value refers to an
          "extCpInfo" item in the VnfInstance.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
422
423
424
      secondaryCpInstanceId:
        description: >
          Additional external CP of the VNF connected to this link port.
425
426
427
          If present, this attribute shall refer to a "secondary" ExtCpInfo item in the VNF instance that exposes a virtual 
          IP CP instance which shares this linkport with the external CP instance referenced by the "cpInstanceId" attribute. 
          See note 1.
428
429
430
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      trunkResourceId:
        description: >
431
432
433
         Identifier of the trunk resource in the VIM.
         Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. 
         See note 2.
434
435
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim"

436
437
  CpProtocolInfo:
    description: >
438
439
440
441
442
443
      This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses. 
      It shall comply with the provisions defined in table 5.5.3.9b-1.

      NOTE:	This attribute allows to signal the addition of further types of layer and protocol in future versions of the 
            present document in a backwards-compatible way. In the current version of the present document, only IP over 
            Ethernet is supported.
444
    type: object
445
446
447
448
    required:
      - layerProtocol
    properties:
      layerProtocol:
449
        description: >
450
451
          The identifier of layer(s) and protocol(s) associated to the network address information.
          
452
          Permitted values: IP_OVER_ETHERNET
453
          See note.
454
455
456
457
        type: string
        enum:
          - IP_OVER_ETHERNET
      ipOverEthernet:
458
        description: >
459
460
461
462
463
464
465
          IP addresses over Ethernet to assign to the extCP instance. Shall be
          present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall
          be absent otherwise.
        $ref: "#/definitions/IpOverEthernetAddressInfo"

  IpOverEthernetAddressInfo:
    description: >
466
467
468
469
470
471
472
473
474
475
476
477
478
      This type represents information about a network address that has been assigned. 
      It shall comply with the provisions defined in table 5.5.3.10-1.

      NOTE 1:	At least one of "macAddress" or "ipAddresses" shall be present.
      NOTE 2:	Exactly one of "addresses" or "addressRange" shall be present.
      NOTE 3:	If the Cp instance represents a subport in a trunk, segmentationId shall be present. 
              Otherwise it shall not be present.
      NOTE 4:	Depending on the NFVI networking infrastructure, the segmentationId may indicate the 
              actual network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the 
              transport header of the packets or it may be an identifier used between the application 
              and the NFVI networking infrastructure to identify the network sub-interface of the trunk 
              port in question. In the latter case the NFVI infrastructure will map this local segmentationId 
              to whatever segmentationId is actually used by the NFVI’s transport technology.
479
    type: object
480
481
482
483
484
485
486
487
488
489
    anyOf:
      - required:
          - macAddress
      - required:
          - ipAddresses
    oneOf:
      - required:
          - addresses
      - required:
          - addressRange
490
491
    properties:
      macAddress:
492
        description: >
493
          MAC address, if assigned. See note 1.
494
        $ref: "SOL002SOL003_def.yaml#/definitions/MacAddress"
495
496
      segmentationId:
        description: >
497
          Identification of the network segment to which the Cp instance connects to. See notes 3 and 4.
498
        type: string
499
      ipAddresses:
500
        description: >
501
502
          Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or 
          dynamic IP address assignment per subnet. See note 1.
503
504
        type: array
        items:
505
506
507
508
509
510
511
512
513
514
515
516
517
518
          type: object
          required:
            - type
          properties:
            type:
              description: >
                The type of the IP addresses.
                Permitted values: IPV4, IPV6.
              type: string
              enum:
                - IPV4
                - IPV6
            addresses:
              description: >
519
                Fixed addresses assigned (from the subnet defined by "subnetId" if provided). See note 2.
520
521
522
523
524
525
526
527
528
529
530
531
              type: array
              items:
                $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress"
            isDynamic:
              description: >
                Indicates whether this set of addresses was assigned
                dynamically (true) or based on address information provided as
                input from the API consumer (false). Shall be present if
                "addresses" is present and shall be absent otherwise.
              type: boolean
            addressRange:
              description: >
532
                An IP address range used, e.g. in case of egress connections. See note 2.
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
              type: object
              required:
                - minAddress
                - maxAddress
              properties:
                minAddress:
                  description: >
                    Lowest IP address belonging to the range.
                  $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress"
                maxAddress:
                  description: >
                    Highest IP address belonging to the range
                  $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress"
            subnetId:
              description: >
                Subnet defined by the identifier of the subnet resource in
                the VIM.
                In case this attribute is present, IP addresses are bound
                to that subnet.
552
              $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
553

554
  MonitoringParameter:
555
556
    type: object
    required:
557
558
      - id
      - performanceMetric
559
    properties:
560
      id:
561
        description: >
562
563
          Identifier of the monitoring parameter defined in the VNFD.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
564
565
566
567
568
569
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
          current VNF package" operation or due to its final failure).
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
570
      name:
571
        description: >
572
573
574
575
          Human readable name of the monitoring parameter, as defined in the
          VNFD.
        type: string
      performanceMetric:
576
        description: >
577
578
579
          Performance metric that is monitored. This attribute shall contain the
          related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
        type: string
580
581
582

  LifecycleChangeNotificationsFilter:
    description: >
583
584
585
586
587
588
589
590
591
      This type represents a subscription filter related to notifications about VNF lifecycle changes. 
      It shall comply with the provisions defined in table 5.5.3.12-1. 
      At a particular nesting level in the filter structure, the following applies: All attributes shall 
      match in order for the filter to match (logical "and" between different filter attributes). 
      If an attribute is an array, the attribute shall match if at least one of the values in the array 
      matches (logical "or" between the values of one filter attribute).

      NOTE:	The permitted values of the "notificationTypes" attribute are spelled exactly as the names of 
            the notification types to facilitate automated code generation systems.
592
593
594
595
596
    type: object
    properties:
      vnfInstanceSubscriptionFilter:
        description: >
          Filter criteria to select VNF instances about which to notify.
597
        $ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
598
599
      notificationTypes:
        description: >
600
601
          Match particular notification types. 
          
602
          Permitted values:
603
604
605
606
          -	VnfLcmOperationOccurrenceNotification
          -	VnfIdentifierCreationNotification
          -	VnfIdentifierDeletionNotification
          See note.
607
608
609
610
611
612
613
        type: array
        items:
          type: string
          enum:
            - VnfLcmOperationOccurrenceNotification
            - VnfIdentifierCreationNotification
            - VnfIdentifierDeletionNotification
614
615
616
617
618
619
620
621
      operationTypes:
        description: >
          Match particular VNF lifecycle operation types for the notification
          of type VnfLcmOperationOccurrenceNotification.
          May be present if the "notificationTypes" attribute contains the
          value "VnfLcmOperationOccurrenceNotification", and shall be absent
          otherwise.
        type: array
622
        items:
623
          $ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType"
624
625
626
627
628
629
630
631
      operationStates:
        description: >
          Match particular LCM operation state values as reported in
          notifications of type VnfLcmOperationOccurrenceNotification.
          May be present if the "notificationTypes" attribute contains the
          value "VnfLcmOperationOccurrenceNotification", and shall be absent
          otherwise.
        type: array
632
        items:
633
634
          $ref: "#/definitions/LcmOperationStateType"

635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
  LccnLinks:
    description: >
      This type represents the links to resources that a notification can
      contain.
    type: object
    required:
      - vnfInstance
      - subscription
    properties:
      vnfInstance:
        description: >
          Link to the resource representing the VNF instance to which the
          notified change applies.
        $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
      subscription:
650
        description: >
651
652
653
          Link to the related subscription.
        $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
      vnfLcmOpOcc:
654
        description: >
655
656
657
658
          Link to the VNF lifecycle management operation occurrence that this
          notification is related to. Shall be present if there is a related
          lifecycle operation occurrence.
        $ref: "SOL002SOL003_def.yaml#/definitions/NotificationLink"
659

660
661
  VnfExtCpInfo:
    description: >
662
663
664
665
666
667
      This type represents information about an external CP of a VNF. 
      It shall comply with the provisions defined in table 5.5.3.17 1.

      NOTE 1:	The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" 
              are mutually exclusive. Exactly one shall be present.
      NOTE 2:	An external CP instance is not associated to a link port in the cases indicated for the 
Sana Zulfiqar's avatar
Sana Zulfiqar committed
668
              “extLinkPorts” attribute in clause 5.5.3.2.
669
670
671
672
    type: object
    required:
      - id
      - cpdId
673
      - cpConfigId
674
      - cpProtocolInfo
675
676
677
    oneOf:
      - required:
          - associatedVnfcCpId
Sana Zulfiqar's avatar
Sana Zulfiqar committed
678
679
      - required:
          - associatedVipCpId
680
681
      - required:
          - associatedVnfVirtualLinkId
682
683
684
685
686
687
688
689
690
    properties:
      id:
        description: >
          Identifier of the external CP instance and the related information instance.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      cpdId:
        description: >
          Identifier of the external CPD, VnfExtCpd, in the VNFD.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
691
692
693
694
695
      cpConfigId:
        description: >
          Identifier that references the applied "VnfExtCpConfig" entry in the "cpConfig" map of the "currentVnfExtCpData"
          in the "ExtVirtualLinkInfo" structure.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
696
697
698
699
700
701
      vnfdId:
        description: >
          Identifier of the VNFD.
          Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
          current VNF package" operation or due to its final failure).
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
702
703
704
705
706
707
708
709
      cpProtocolInfo:
        description: >
          Network protocol information for this CP.
        type: array
        items:
          $ref: "#/definitions/CpProtocolInfo"
      extLinkPortId:
        description: >
710
711
          Identifier of the "ExtLinkPortInfo" structure inside the "ExtVirtualLinkInfo" structure. 
          Shall be present if the CP is associated to a link port. See note 2.
712
713
714
715
716
717
718
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      metadata:
        description: >
          Metadata about this external CP.
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
      associatedVnfcCpId:
        description: >
719
720
721
          Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents the VNFC CP 
          which is exposed by this external CP instance, either directly or via a floating IP address. 
          Shall be present in case this CP instance maps to a VNFC CP. See note 1.
722
723
724
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      associatedVipCpId:
        description: >
725
726
727
          Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either directly or via a 
          floating IP address, and the related "VipCpInfo" structure in "VnfInstance". Shall be present if the 
          cpdId of this VnfExtCp has a vipCpd attribute. See note 1.
728
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
729
730
      associatedVnfVirtualLinkId:
        description: >
731
732
733
734
          Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL or of the 
          "ExtManagedVirtualLinkInfo" structure that represents the externally-managed internal VL which is 
          exposed by this external CP instance. Shall be present in case this CP instance maps to an internal 
          VL (including externally-managed internal VL). See note 1. 
735
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
736

737
  VnfOperationalStateType:
738
    description: >
739
740
741
742
743
744
      STARTED: The VNF instance is up and running.
      STOPPED: The VNF instance has been shut down.
    type: string
    enum:
      - STARTED
      - STOPPED
745

746
  LcmOperationStateType:
747
    description: >
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
      STARTING: The LCM operation is starting.
      PROCESSING: The LCM operation is currently in execution.
      COMPLETED: The LCM operation has been completed successfully.
      FAILED_TEMP: The LCM operation has failed and execution has stopped,
      but the execution of the operation is not considered to be closed.
      FAILED: The LCM operation has failed and it cannot be retried or rolled back,
      as it is determined that such action won't succeed.
      ROLLING_BACK: The LCM operation is currently being rolled back.
      ROLLED_BACK: The LCM operation has been successfully rolled back,
      i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
    type: string
    enum:
      - STARTING
      - PROCESSING
      - COMPLETED
      - FAILED_TEMP
      - FAILED
      - ROLLING_BACK
      - ROLLED_BACK

  CancelModeType:
    description: >
      Cancellation mode.
      GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
      "ROLLING_BACK" state, the VNFM shall not start any new resource
      management operation and shall wait for the ongoing resource management
      operations in the underlying system, typically the VIM, to finish
      execution or to time out. After that, the VNFM shall put the operation
      occurrence into the FAILED_TEMP state.
      If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
      shall not start any resource management operation and shall wait for
      the granting request to finish execution or time out. After that, the
      VNFM shall put the operation occurrence into the ROLLED_BACK state.
      FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
      "ROLLING_BACK" state, the VNFM shall not start any new resource
      management operation, shall cancel the ongoing resource management
      operations in the underlying system, typically the VIM, and shall wait
      for the cancellation to finish or to time out. After that, the VNFM
      shall put the operation occurrence into the FAILED_TEMP state.
      If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
      shall not start any resource management operation and put the operation
      occurrence into the ROLLED_BACK state.
    type: string
    enum:
      - GRACEFUL
      - FORCEFUL

########################################################################################################################
796
797
798
  VnfIdentifierCreationNotification:
    description: >
      This type represents a VNF identifier creation notification, which
799
      informs the receiver of the creation of a new "Individual VNF instance" resource and
800
      the associated VNF instance identifier.
801
802
      This notification shall be triggered by the VNFM when it has created an
      "Individual VNF instance" resource and the associated VNF instance identifier.
803
    type: object
804
    required:
805
806
      - id
      - notificationType
807
      - subscriptionId
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
      - timeStamp
      - vnfInstanceId
      - _links
    properties:
      id:
        description: >
          Identifier of the VNF instance.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      notificationType:
        description: >
          Discriminator for the different notification types. Shall be set to
          "VnfIdentifierCreationNotification" for this notification type.
        type: string
        enum:
          - VnfIdentifierCreationNotification
      subscriptionId:
        description: >
          Identifier of the subscription that this notification relates to.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      timeStamp:
        description: >
          Date-time of the generation of the notification.
        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
      vnfInstanceId:
        description: >
          The created VNF instance identifier.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      _links:
        description: >
          Links to resources related to this notification.
        $ref: "#/definitions/LccnLinks"

  VnfIdentifierDeletionNotification:
    description: >
      This type represents a VNF identifier deletion notification, which
843
      informs the receiver of the deletion of a new "Individual VNF instance" resource and
844
      the associated VNF instance identifier.
845
846
      This notification shall be triggered by the VNFM when it has deleted an
      "Individual VNF instance" resource and the associated VNF instance identifier.
847
    type: object
848
    required:
849
850
      - id
      - notificationType
851
      - subscriptionId
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
      - timeStamp
      - vnfInstanceId
      - _links
    properties:
      id:
        description: >
          Identifier of this notification. If a notification is sent multiple
          times due to multiple subscriptions, the "id" attribute of all these
          notifications shall have the same value.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      notificationType:
        description: >
          Discriminator for the different notification types. Shall be set to
          "VnfIdentifierDeletionNotification" for this notification type.
        type: string
        enum:
          - VnfIdentifierDeletionNotification
      subscriptionId:
        description: >
          Identifier of the subscription that this notification relates to.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      timeStamp:
        description: >
          Date-time of the generation of the notification.
        $ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
      vnfInstanceId:
        description: >
          The deleted VNF instance identifier.
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      _links:
        description: >
          Links to resources related to this notification.
        $ref: "#/definitions/LccnLinks"
885

886
  VnfcInfoModifications:
887
    description: >
888
      This type represents modifications of an entry in an array of "VnfcInfo" objects.
889
890
891
      * NOTE:	The attribute "id" in this data type represents the same identifier as the attribute
                "vnfcInstanceId" in other related data types in the present document. For reasons of backward
                compatibility, this misalignment is not corrected.
892
893
894
    type: object
    required:
      - id
895
      - vnfcConfigurableProperties
896
897
898
    properties:
      id:
        description: >
899
          Identifier of the VNFC instance of which the information is to be modified.
900
          The identifier references the "id" attribute in a "VnfcInfo" structure. See note.
901
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
902
      vnfcConfigurableProperties:
903
        description: >
904
          Changes of the configurable properties of the VNFC instance.
905
906
          When this structure is part of a request, the modifications signalled in this attribute
          shall be applied according to the rules of JSON Merge Patch (see IETF RFC 7396).
907
          In addition, the provisions in clause 5.7 shall apply.
908
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
909

910
911
  VnfcInfo:
    description: >
912
913
      This type represents the information about a VNFC instance that is part of a VNF instance.
      * NOTE:	This allows to represent the error condition that a VNFC instance has lost its resources.
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
    type: object
    required:
      - id
      - vduId
      - vnfcState
    properties:
      id:
        description: >
          Identifier of the VNFC instance.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      vduId:
        description: >
          Reference to the applicable VDU information element in
          the VNFD.
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      vnfcResourceInfoId:
        description: >
          Identifier of the VnfcResourceInfo instance representing
932
          the virtualised resources used by this VNFC instance. See note.
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      vnfcState:
        description: >
          Identifier of the VnfcResourceInfo instance representing
          the virtualised resources used by this VNFC instance.
          State of the VNFC instance.
          Permitted values:
          • STARTED: The VNFC instance is up and
          running.
          • STOPPED: The VNFC instance has been shut down
        type: string
        enum:
          - STARTED
          - STOPPED
        $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
      vnfcConfigurableProperties:
        description: >
          Current values of the configurable properties of the
          VNFC instance.
          Configurable properties referred in this attribute are
          declared in the VNFD.
954
955
          This attribute can be modified with the PATCH method.
          In addition, the provisions in clause 5.7 shall apply.
956
957
958
959
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"

  ModificationsTriggeredByVnfPkgChange:
    description: >
960
961
962
963
964
965
966
967
968
969
970
971
      This type represents attribute modifications that were performed on an "Individual VNF instance" resource 
      when changing the current VNF package. The attributes that can be included consist of those requested to 
      be modified explicitly in the "ChangeCurrentVnfPkgRequest" data structure, and additional attributes of the 
      "VnfInstance" data structure that were modified implicitly during the operation.
      The "ModificationsTriggeredByVnfPkgChange" data type shall comply with the provisions defined in table 5.5.3.21-1.

      NOTE 1:	This attribute represents the delta (semantics as per IETF RFC 7396, JSON Merge Patch) between the value 
              of the attribute at the start of the "Change current VNF package" operation and the value of the attribute 
              at its completion.
      NOTE 2:	If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly 
              during the related operation and contains a copy of the value of the related attribute from the VNFD in the 
              VNF Package identified by the "vnfdId" attribute.
972
973
974
975
    type: object
    properties:
      vnfConfigurableProperties:
        description: >
976
977
          This attribute signals the modifications of the "vnfConfigurableProperties" attribute in "VnfInstance" performed 
          by the operation and shall be present if that attribute was modified during the operation. See note 1.
978
          In addition, the provisions in clause 5.7 shall apply.
979
980
981
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
      metadata:
        description: >
982
983
          This attribute signals the modifications of the "metadata" attribute in "VnfInstance" performed by the operation and 
          shall be present if that attribute was modified during the operation. See note 1.
984
985
986
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
      extensions:
        description: >
987
988
          This attribute signals the modifications of the "extensions" attribute in "VnfInstance" performed by the operation and 
          shall be present if that attribute was modified during the operation. See note 1.
989
          In addition, the provisions in clause 5.7 shall apply.
990
991
992
993
994
995
996
        $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
      vnfdId:
        description: >
          If present, this attribute signals the new value of the "vnfdId" attribute in "VnfInstance".
        $ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
      vnfProvider:
        description: >
997
          If present, this attribute signals the new value of the "vnfProvider" attribute in "VnfInstance". See note 2.
998
999
1000
        type: string
      vnfProductName:
        description: >
For faster browsing, not all history is shown. View entire blame