Commit c3f1cf98 authored by moscatelli's avatar moscatelli
Browse files

SOL002: VNF Lifecycle mgmt data types consolidation

parent 14c66f2f
Pipeline #898 passed with stage
in 0 seconds
......@@ -59,7 +59,6 @@ paths:
required: false
type: string
post:
#TODO: Add headers defined in 4.3.4.2
description: >
The POST method creates a new VNF instance resource.
parameters:
......@@ -93,7 +92,6 @@ paths:
The response body shall contain a representation of the created VNF instance, as defined in clause 5.5.2.2.
The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created VNF instance.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: >
The MIME type of the body of the response.
......@@ -122,7 +120,7 @@ paths:
maximum: 1
minimum: 1
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
$ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
......@@ -254,7 +252,7 @@ paths:
schema:
type: array
items:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
$ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
......@@ -340,7 +338,7 @@ paths:
maximum: 1
minimum: 1
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
$ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
......@@ -463,7 +461,6 @@ paths:
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
delete:
#SOL003 location: 5.4.3.3.5
description: >
This method deletes an individual VNF instance resource.
responses:
......@@ -561,7 +558,7 @@ paths:
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest"
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest"
responses:
202:
description: >
......@@ -901,7 +898,7 @@ paths:
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest"
$ref: "definitions/SOl002VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest"
responses:
202:
description: >
......@@ -1013,7 +1010,7 @@ paths:
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest"
$ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest"
responses:
202:
description: >
......@@ -1125,7 +1122,7 @@ paths:
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest"
$ref: "definitions/SOl002VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest"
responses:
202:
description: >
......@@ -1237,7 +1234,7 @@ paths:
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest"
$ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest"
responses:
202:
description: >
......@@ -1351,7 +1348,7 @@ paths:
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest"
$ref: "definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest"
responses:
202:
description: >
......@@ -1535,7 +1532,6 @@ paths:
If the VNFM supports alternative 2 (paging) according to clause 4.7.2.1 for this resource,
inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: The MIME type of the body of the response.
type: string
......@@ -1563,7 +1559,7 @@ paths:
minimum: 0
schema:
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
......@@ -1634,7 +1630,6 @@ paths:
information about a VNF lifecycle management operation
occurrence.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: The MIME type of the body of the response.
type: string
......@@ -1654,7 +1649,7 @@ paths:
maximum: 1
minimum: 1
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
......@@ -1816,7 +1811,6 @@ paths:
The request was accepted for processing, but processing has not been completed.
The response shall have an empty payload body.
headers:
#TODO: Add headers defined in 4.3.4.3
WWW-Authenticate:
description: >
Challenge if the corresponding HTTP request has not provided
......@@ -1930,7 +1924,7 @@ paths:
minimum: 1
schema:
schema:
$ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
$ref: "../../definitions/SOL002SOl003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
......
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
VnfInstance:
description: >
This type represents a VNF instance.
type: object
required:
- id
- vnfdId
- vnfProvider
- vnfProductName
- vnfSoftwareVersion
- vnfdVersion
- vnfPkgInfoId
- instantiationState
properties:
id:
description: >
Identifier of the VNF instance.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
vnfInstanceName:
description: >
Name of the VNF instance.
This attribute can be modified with the PATCH method.
type: string
vnfInstanceDescription:
description: >
Human-readable description of the VNF instance.
This attribute can be modified with the PATCH method.
type: string
vnfdId:
description: >
Identifier of the VNFD on which the VNF instance is based.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
vnfProvider:
description: >
Provider of the VNF and the VNFD. The value is copied from the VNFD.
type: string
vnfProductName:
description: >
Name to identify the VNF Product. The value is copied from the VNFD.
type: string
vnfSoftwareVersion:
description: >
Software version of the VNF. The value is copied from the VNFD.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version"
vnfdVersion:
description: >
Identifies the version of the VNFD. The value is copied from the VNFD.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version"
vnfPkgInfoId:
description: >
Identifier of information held by the NFVO about the specific VNF
package on which the VNF is based. This identifier was allocated by the
NFVO. This attribute can be modified with the PATCHmethod.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
vnfConfigurableProperties:
description: >
Current values of the configurable properties of the VNF instance.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
instantiationState:
description: >
The instantiation state of the VNF.
type: string
enum:
- NOT_INSTANTIATED
- INSTANTIATED
instantiatedVnfInfo:
description: >
Information specific to an instantiated VNF instance. This attribute
shall be present if the instantiateState attribute value is
INSTANTIATED.
type: object
required:
- flavourId
- vnfState
- extCpInfo
properties:
flavourId:
description: >
Identifier of the VNF deployment flavour applied to this VNF instance.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfState:
description: >
The state of the VNF instance.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType"
scaleStatus:
description: >
Scale status of the VNF, one entry per aspect. Represents for every
scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo"
extCpInfo:
description: >
Information about the external CPs exposed by the VNF instance.
type: array
minItems: 1
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfExtCpInfo"
extVirtualLinkInfo:
description: >
Information about the external VLs the VNF instance is connected to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo"
extManagedVirtualLinkInfo:
description: >
External virtual links the VNF instance is connected to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkInfo"
monitoringParameters:
description: >
Active monitoring parameters.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/MonitoringParameter"
localizationLanguage:
description: >
Information about localization language of the VNF (includes e.g.
strings in the VNFD). The localization languages supported by a VNF
can be declared in the VNFD, and localization language selection can
take place at instantiation time.
The value shall comply with the format defined in IETF RFC 5646.
type: string
vnfcResourceInfo:
description: >
Information about the virtualised compute and storage resources used
by the VNFCs of the VNF instance.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcResourceInfo"
virtualLinkResourceInfo:
description: >
Information about the virtualised network resources used by the VLs
of the VNF instance.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfVirtualLinkResourceInfo"
virtualStorageResourceInfo:
description: >
Information on the virtualised storage resource(s) used as storage for the VNF instance.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VirtualStorageResourceInfo"
metadata:
description: >
Additional VNF-specific metadata describing the VNF instance.
Metadata that are writeable are declared in the VNFD.
This attribute can be modified with the PATCH method.
ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
VNF specific attributes that affect the lifecycle management of this VNF instance by the VNFM,
or the lifecycle management scripts. Extensions that are writeable are declared in the VNFD.
This attribute can be modified with the PATCH method.
ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
properties:
self:
description: URI of this resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
indicators:
description: Indicators related to this VNF instance, if applicable.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
instantiate:
description: >
Link to the "instantiate" task resource, if the related operation
is possible based on the current status of this VNF instance
resource (i.e. VNF instance in NOT_INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
terminate:
description: >
Link to the "terminate" task resource, if the related operation
is possible based on the current status of this VNF instance
resource (i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
scale:
description: >
Link to the "scale" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource (i.e. VNF instance
is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
scaleToLevel:
description: >
Link to the "scale_to_level" task resource, if the related
operation is supported for this VNF instance, and is possible
based on the current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
changeFlavour:
description: >
Link to the "change_flavour" task resource, if the related
operation is supported for this VNF instance, and is possible
based on the current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
heal:
description: >
Link to the "heal" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
operate:
description: >
Link to the "operate" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
changeExtConn:
description: >
Link to the "change_ext_conn" task resource, if the related
operation is possible based on the current status of this VNF
instance resource (i.e. VNF instance is in INSTANTIATED state).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
ChangeExtVnfConnectivityRequest:
description: >
This type represents request parameters for the
"Change external VNF connectivity" operation to modify the external
connectivity of a VNF instance.
type: object
required:
- extVirtualLinks
properties:
extVirtualLinks:
description: >
Information about external VLs to change (e.g. connect the VNF to).
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
to the VNF being instantiated, as declared in the VNFD as part of
"ChangeExtVnfConnectivityOpConfig".".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
ChangeVnfFlavourRequest:
description: >
This type represents request parameters for the "Change VNF flavour" operation.
type: object
required:
- newFlavourId
properties:
newFlavourId:
description: >
Identifier of the VNF deployment flavour to be instantiated.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
instantiationLevelId:
description: >
Identifier of the instantiation level of the deployment flavour to
be instantiated. If not present, the default instantiation level as
declared in the VNFD is instantiated.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
extVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
to the VNF being instantiated, as declared in the VNFD as part of
"InstantiateVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
HealVnfRequest:
type: object
properties:
vnfcInstanceId:
description: >
List of VNFC instances requiring a healing action.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
cause:
description: >
Indicates the reason why a healing procedure is required.
type: string
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the healing
process, specific to the VNF being healed, as declared in the VNFD
as part of "HealVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
healScript:
description: >
Provides link to a script that should be executed as part
of the healing action or a set of rules for healing procedure.
type: string
OperateVnfRequest:
description: >
This type represents request parameters for the "Operate VNF" operation.
type: object
required:
- changeStateTo
properties:
vnfcInstanceId:
description: >
Identifier of VNFC instances. Cardinality can be "0" to denote
that the request applies to the whole VNF and not a specific VNFC instance.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
changeStateTo:
description: >
The desired operational state (i.e. started or stopped) to change
the VNF to.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType"
stopType:
description: >
It signals whether forceful or graceful stop is requested.
Ignored if changeStateTo=STARTED.
Permitted values:
FORCEFUL: The VNFM will stop down the VNF or the affected VNFCs immediately after accepting the request.
type: string
enum:
- FORCEFUL
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the process,
specific to the VNF of which the operation status is changed, as
declared in the VNFD as part of "OperateVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
TerminateVnfRequest:
type: object
required:
- terminationType
properties:
terminationType:
description: >
Indicates the type of termination is requested.
Permitted values:
* FORCEFUL: The VNFM will shut down the VNF and release the
resources immediately after accepting the request.
type: string
enum:
- FORCEFUL
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the termination
process, specific to the VNF being terminated, as declared in the
VNFD as part of "TerminateVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
\ No newline at end of file
......@@ -2,6 +2,248 @@
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
InstantiateVnfRequest:
type: object
required:
- flavourId
properties:
flavourId:
description: >
Identifier of the VNF deployment flavour to be instantiated.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
instantiationLevelId:
description: >
Identifier of the instantiation level of the deployment flavour to be
instantiated. If not present, the default instantiation level as
declared in the VNFD is instantiated.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
extVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
localizationLanguage:
description: >
Localization language of the VNF to be instantiated. The value shall
comply with the format defined in IETF RFC 5646.
type: string
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
to the VNF being instantiated, as declared in the VNFD as part of
"InstantiateVnfOpConfig".
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
VnfLcmOpOcc:
description: >
This type represents a VNF lifecycle management operation occurrence.
type: object
required:
- id
- operationState
- stateEnteredTime
- startTime
- vnfInstanceId
- operation
- isAutomaticInvocation
- isCancelPending
properties:
id:
description: >
Identifier of this VNF lifecycle management operation occurrence.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
operationState:
description: >
The state of the LCM operation.
$ref: "#/definitions/LcmOperationStateType"
stateEnteredTime:
description: >
Date-time when the current state was entered.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
startTime:
description: >
Date-time of the start of the operation.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
vnfInstanceId:
description: >
Identifier of the VNF instance to which the operation applies
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
grantId: