Commit d9e7a446 authored by Francesca Moscatelli's avatar Francesca Moscatelli
Browse files

SOL005 modifications according to v03004

parent f1c66de3
Pipeline #4537 failed with stage
in 0 seconds
......@@ -13,7 +13,7 @@ info:
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 005 V3.3.1
......@@ -160,6 +160,8 @@ paths:
$ref: ../responses/SOL005_resp.yaml#/components/responses/405
"406":
$ref: ../responses/SOL005_resp.yaml#/components/responses/406
"422":
$ref: ../responses/SOL005_resp.yaml#/components/responses/422
"500":
$ref: ../responses/SOL005_resp.yaml#/components/responses/500
"503":
......@@ -202,6 +204,40 @@ paths:
"504":
$ref: ../responses/SOL005_resp.yaml#/components/responses/504
patch:
summary: Modify an "Individual capacity threshold" resource
description: |
This method iallows to modify an "Individual capacity threshold" resource.
This method shall follow the provisions specified in the Tables 10.4.5.3.4-1 and 10.4.5.3.4-2 for URI query
parameters, request and response data structures, and response codes.
requestBody:
$ref: '#/components/requestBodies/IndividualNfviCapacityThresholdRequest'
responses:
"200":
$ref: '#/components/responses/IndividualCapacityThreshold.Patch'
"400":
$ref: ../responses/SOL005_resp.yaml#/components/responses/400
"401":
$ref: ../responses/SOL005_resp.yaml#/components/responses/401
"403":
$ref: ../responses/SOL005_resp.yaml#/components/responses/403
"404":
$ref: ../responses/SOL005_resp.yaml#/components/responses/404
"405":
$ref: ../responses/SOL005_resp.yaml#/components/responses/405
"406":
$ref: ../responses/SOL005_resp.yaml#/components/responses/406
"412":
$ref: ../responses/SOL005_resp.yaml#/components/responses/412
"422":
$ref: ../responses/SOL005_resp.yaml#/components/responses/422
"500":
$ref: ../responses/SOL005_resp.yaml#/components/responses/500
"503":
$ref: ../responses/SOL005_resp.yaml#/components/responses/503
"504":
$ref: ../responses/SOL005_resp.yaml#/components/responses/504
delete:
summary: Delete an NFVI capacity threshold
description: |
......@@ -421,6 +457,16 @@ components:
$ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CreateCapacityThresholdRequest
required: true
IndividualNfviCapacityThresholdRequest:
description: |
Parameters for the capacity threshold modification.
The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396.
content:
application/json:
schema:
$ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications
required: true
NfviCapacitySubscriptionRequest:
description: |
Details of the subscription to be created.
......@@ -611,6 +657,38 @@ components:
schema:
$ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThreshold
IndividualCapacityThreshold.Patch:
description: |
200 OK
Shall be returned when the request has been processed successfully.
The response body shall contain a data structure of type "CapacityThresholdModifications".
headers:
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications
IndividualCapacityThreshold.Delete:
description: |
Shall be returned when the NFVI capacity threshold has been deleted successfully.
......@@ -832,12 +910,12 @@ components:
description: >-
This resource represents a notification endpoint for NFVI capacity information.
The API producer can use this resource to send notifications related to log management events to a
subscribed API consumer, which has provided the URI of this resource during the subscription process.
subscribed API consumer, which has provided the URI of this resource during the capacity threshold
creation process.
post:
description: >-
The POST method delivers a notification regarding an NFVI capacity information event from the API producer
to an API consumer. The API consumer shall have previously created an "individual subscription resource"
with a matching filter.
to an API consumer. The API consumer shall have previously created an "Individual capacity threshold" resource"
parameters:
- $ref: ../components/SOL005_params.yaml#/components/parameters/Version
- $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
......@@ -870,7 +948,7 @@ components:
get:
description: >-
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during subscription.
e.g. during creation of the capacity threshold resource.
parameters:
- $ref: ../components/SOL005_params.yaml#/components/parameters/Version
- $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
......
......@@ -24,6 +24,10 @@ components:
type: array
items:
$ref: '#/components/schemas/NfviCapacityInfoPerZone'
totalCapacityInfo:
description: |
Total capacity information associated to the VIM.
$ref: '#/components/schemas/NfviCapacityMeasurement'
timeInterval:
description: |
Time interval of the NFVI capacity information.
......@@ -37,6 +41,7 @@ components:
- id
- objectInstanceId
- criteria
- callbackUri
- _links
properties:
id:
......@@ -47,10 +52,21 @@ components:
description: |
Identifier of the VIM instance associated with the capacity threshold.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
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.
type: array
items:
$ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim
criteria:
description: |
Criteria that define this capacity threshold.
$ref: '#/components/schemas/CapacityThresholdCriteria'
callbackUri:
description: |
The URI of the endpoint to send the notification to.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Uri
_links:
type: object
description: |
......@@ -81,10 +97,27 @@ components:
description: |
Identifier of the VIM instance associated with this capacity threshold.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
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
criteria:
description: |
Criteria that define this capacity threshold.
$ref: '#/components/schemas/CapacityThresholdCriteria'
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
NfviCapacityInfoSubscription:
type: object
......@@ -151,10 +184,11 @@ components:
required:
- id
- notificationType
- subscriptionId
- thresholdId
- timeStamp
- direction
- capacityInformation
- objectInstanceId
properties:
id:
description: |
......@@ -166,26 +200,24 @@ components:
Discriminator for the different notification types.
Shall be set to "CapacityShortageNotification" for this notification type.
type: string
subscriptionId:
thresholdId:
description: |
Identifier of the subscription that this notification relates to.
Identifier of the threshold which has been crossed
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
timeStamp:
description: |
Date and time of the generation of the notification.
$ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime
resourceZoneId:
objectInstanceId:
description: |
Identifies the resource zone in which the available NFVI capacity has crossed a threshold value.
Cardinality is 0 if the subscription does not specify a particular resource zone and the overall available
NFVI capacity has crossed the threshold.
Identifies the VIM’s NFVI capacity information instance (measured object instance) in which the available
NFVI capacity has crossed a threshold value.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
vimId:
subObjectInstanceId:
description: |
Identifies the VIM in which the available NFVI capacity has crossed a threshold value.
Cardinality is 0 if the subscription does not specify a particular VIM and the overall available NFVI capacity
has crossed the threshold.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
Identifier of the sub-object of the measured object to which the measurement applies.
Refer to the definition of the "CapacityThreshold" in clause 10.5.2.7.
$ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim
direction:
description: |
Specifies if the threshold has been crossed in UP or DOWN direction.
......@@ -196,13 +228,26 @@ components:
capacityInformation:
description: |
Information about the available, reserved, allocated/used, and total capacity of the NFVI.
If the subscription does specify a resource zone and/or vimId, the information is provided for the resource
zone/vimId where the NFVI capacity has crossed the threshold.
type: object
If the threshold creation process does specify a resource zone and/or vimId, the information is provided
for the resource zone/vimId where the NFVI capacity has crossed the thresholdas indicated by the
"subObjectInstanceId" and "objectInstanceId" attributes.
$ref: "#/components/schemas/NfviCapacityMeasurement"
_links:
description: |
Links to resources related to this notification.
type: object
required:
- threshold
properties:
objectInstance:
description: |
Link to the resource representing the measured object instance to which the notified change applies.
Shall be present if the measured object instance information is accessible as a resource.
$ref: ../../definitions/SOL005_def.yaml#/definitions/NotificationLink
threshold:
description: |
Link to the resource that represents the threshold that was crossed.
$ref: ../../definitions/SOL005_def.yaml#/definitions/NotificationLink
NfviCapacityInfoNotificationsFilter:
type: object
......@@ -230,10 +275,6 @@ components:
- capacityMetric
- thresholdType
properties:
resourceZoneId:
description: |
Defines the resource zone of the NFVI capacity information for which the capacity threshold applies.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
capacityMetric:
description: |
Defines the capacity metric for which the threshold applies.
......@@ -271,6 +312,8 @@ components:
Type of capacity threshold. This attribute determines which other attributes are present in the data structure.
Permitted values:
- SIMPLE: Single-valued static threshold.
In the present document, simple thresholds are defined. The definition of additional threshold types is left
for future specification.
type: string
enum:
- SIMPLE
......@@ -360,6 +403,8 @@ components:
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.
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.
type: string
totalCapacity:
description: |
......@@ -392,3 +437,21 @@ components:
- VR_NETWORK
- VR_STORAGE
- 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.
type: object
properties:
callbackUri:
description: |
New value of the "callbackUri" attribute. The value "null" is not permitted.
At least one of the attributes defined in this type shall be present in request bodies.
$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).
This attribute shall not be present in response bodies.
At least one of the attributes defined in this type shall be present in request bodies.
$ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication
\ No newline at end of file
......@@ -13,7 +13,7 @@ info:
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 005 V3.3.1
......
......@@ -201,7 +201,7 @@ definitions:
type: string
nsdId:
description: >
Identifier of the NSD on which the NS instance is based.
Identifier of the NSD on which the NS instance is based. The value is copied from the NSD.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
nsdInfoId:
description: >
......@@ -386,16 +386,17 @@ definitions:
vnfInstanceName:
description: >
Name of the VNF instance.
This attribute can be modified with the PATCH method.
Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure.
type: string
vnfInstanceDescription:
description: >
Human-readable description of the VNF instance.
This attribute can be modified with the PATCH method.
Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure.
type: string
vnfdId:
description: >
Identifier of the VNFD on which the VNF instance is based.
Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
vnfProvider:
description: >
......@@ -418,8 +419,6 @@ definitions:
Identifier of information held by the NFVO about
the specific VNF package on which the VNF is
based. This identifier has been allocated by the NFVO.
This attribute can be modified with the PATCH
method.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
vnfConfigurableProperties:
description: >
......@@ -457,7 +456,7 @@ definitions:
set to true, auto-healing is currently enabled. If set to false,
auto-healing is currently disabled.
These attributea can be modified with the PATCH method.
Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure.
$ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
vimId:
description: >
......@@ -507,6 +506,9 @@ definitions:
extCpInfo:
description: >
Information about the external CPs exposed by the VNF instance.
When trunking is enabled, the list of entries includes both,
external CPs corresponding to parent ports of a trunk, and external
CPs associated to sub-ports of a trunk.
type: array
minItems: 1
items:
......@@ -567,8 +569,6 @@ definitions:
description: >
Additional VNF-specific attributes that provide
metadata describing the VNF instance.
Metadata that are writeable are declared in the
VNFD (see note 2).
These attributes represent values that are
stored persistently in the VnfInstance structure
for consumption by functional blocks that
......@@ -579,10 +579,8 @@ definitions:
effect on the VNF instance, it only affects the
information represented in the VnfInstance
structure.
Metadata that are writeable are declared in the
VNFD (see note 2).
These attributes can be modified with the
PATCH method
Metadata that the VNF provider foresees are expected to be declared in the VNFD.
Modifications to these attributes can be requested using the "ModifyVnfInfoData" structure.
$ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
......@@ -593,9 +591,8 @@ definitions:
Modifying the values of these attributes has no direct effect on the VNF instance; however,
the modified attribute values can be considered during subsequent VNF lifecycle management
operations, which means that the modified values can indirectly affect the configuration of the VNF instance.
Extensions that are writeable are declared in the VNFD.
This attribute These attributes can be modified with the PATCH method.
ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
Extensions that are allowed for the VNF are declared in the VNFD.
Modifications to these attributes can be requested using the "ModifyVnfInfoData" structure.
$ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
LccnLinks:
......@@ -1016,16 +1013,22 @@ definitions:
description: >
Identifier of the external CP instance and the related information instance.
$ref: "#/definitions/IdentifierInVnf"
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: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
cpdId:
description: >
Identifier of the external CPD, VnfExtCpd, in the VNFD.
$ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
cpConfigId:
description: >
Identifier that references the applied "VnfExtCpConfig" entry in the "cpConfig"
map of the "currentVnfExtCpData" in the "ExtVirtualLinkInfo" structure.
$ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
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: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
cpProtocolInfo:
description: >
Network protocol information for this CP.
......@@ -1049,7 +1052,7 @@ definitions:
Shall be present in case this CP instance maps to a VNFC CP(s).
The attributes "associatedVnfcCpId" and "associatedVnfVirtualLinkId" are
mutually exclusive. One and only one shall be present.
$ref: "#/definitions/IdentifierInVnf"
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
associatedVnfVirtualLinkId:
description: >
Identifier of the "VnfVirtualLinkResourceInfo" structure that represents
......@@ -1057,7 +1060,7 @@ definitions:
present in case this CP instance maps to an internal VL.
The attributes "associatedVnfcCpId" and "associatedVnfVirtualLinkId" are
mutually exclusive. One and only one shall be present.
$ref: "#/definitions/IdentifierInVnf"
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
CpGroupInfo:
description: >
......@@ -1362,6 +1365,12 @@ definitions:
type: array
items:
$ref: "#/definitions/ExtLinkPortInfo"
currentVnfExtCpData:
description: >
Allows the API consumer to read the current CP configuration information
for the connection of external CPs to the external virtual link, as
specified in clause 5.5.3.2 of ETSI GS NFV-SOL 003.
$ref: "#/definitions/VnfExtCpData"
ExtLinkPortInfo:
description: >
......@@ -1549,8 +1558,12 @@ definitions:
description: >
CPs of the VNFC instance.
Shall be present when that particular CP of the VNFC instance is
associated to an external CP of the VNF instance.
May be present otherwise.
exposed as an external CP of the VNF instance or is connected to
an external CP of the VNF instance.
A VNFC CP is "connected to" an external CP if the VNFC CP is
connected to an internal VL that exposes an external CP. A VNFC
CP is "exposed as" an external CP if it is connected directly to
an external VL. May be present otherwise.
type: array
items:
type: object
......@@ -1569,20 +1582,23 @@ definitions:
$ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
vnfExtCpId:
description: >
When the VNFC CP is exposed as external CP of the VNF, the
identifier of this external VNF CP.
Identifier of the related external CP. Shall be present when the VNFC CP is exposed as an external CP
of the VNF instance or connected to an external CP of the VNF instance and shall be absent otherwise.
A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an internal VL that exposes
an external CP. A VNFC CP is "exposed as" an external CP if it is connected directly to an external VL.
$ref: "#/definitions/IdentifierInVnf"
cpProtocolInfo:
description: >
Network protocol information for this CP.
May be omitted if the VNFC CP is exposed as an external CP.
The information can be omitted because it is already available as part of the external CP information.
type: array
items:
$ref: "#/definitions/CpProtocolInfo"
vnfLinkPortId:
description: >
Identifier of the "vnfLinkPorts" structure in the
"VnfVirtualLinkResourceInfo" structure. Shall be present if
the CP is associated to a link port.
Identifier of the "vnfLinkPorts" structure in the "VnfVirtualLinkResourceInfo" structure. Shall be present if
the CP is associated to a link port on an internal VL of the VNF instance and shall be absent otherwise.
$ref: "#/definitions/IdentifierInVnf"
metadata:
description: >
......@@ -2546,6 +2562,10 @@ definitions:
extManagedVirtualLinks:
description: >
information about internal VLs that are managed by NFVO.
The indication of externally-managed internal VLs is needed in case networks have been pre-configured for use
with certain VNFs, for instance to ensure that these networks have certain properties such as security or
acceleration features, or to address particular network topologies. The present document assumes that
xternally-managed internal VLs are managed by the NFVO and created towards the VIM.
It is possible to have several ExtManagedVirtualLinkData for the same VNF internal VL in case of a multi-site
VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same VNF internal VL shall
indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance
......@@ -2561,13 +2581,13 @@ definitions:
$ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
This attribute provides values for the "vnfConfigurableProperties" input parameter of the Change VNF Flavour
This attribute provides values for the "extensions" input parameter of the Change VNF Flavour
operation defined in ETSI GS NFV-SOL 003.
$ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
vnfConfigurableProperties:
description: >
This attribute provides values for the "extensions" input parameter of the Change VNF Flavour operation defined
in ETSI GS NFV-SOL 003.
This attribute provides values for the "vnfConfigurableProperties" input parameter of the Change VNF Flavour
operation defined in ETSI GS NFV-SOL 003.
$ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs"
OperateVnfData:
......@@ -3123,10 +3143,13 @@ definitions:
- LINK_PORT_REMOVED
linkPortIds:
description: >
Identifiers of the link ports of the affected VL (reference to the nsLinkPortInfo) related to the change.
Shall be set when changeType is equal to "ADD_LINK_PORT" or "REMOVE_LINK_PORT", and the related linkPort
Identifiers of the link ports of the affected VL related to the change.
Each identifier references an "NsLinkPortInfo" structure.
Shall be set when changeType is equal to "ADD_LINK_PORT" or "REMOVE_LINK_PORT", and the related "NsLinkPortInfo"
structures are present (case "add") or have been present (case "remove") in the NsVirtualLinkInfo structure
that is represented by the "virtualLink¬Info" attribute in the "NsInstance" structure.
The resource handles of the affected NS link ports can be found by dereferencing the identifiers in the
"linkPortIds" attribute.
type: array
items:
$ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs"
......@@ -3647,6 +3670,11 @@ definitions:
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication"
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"
LccnSubscription:
description: >
......@@ -3673,6 +3701,10 @@ definitions:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Uri"
verbosity:
description: >
This attribute signals the verbosity of LCM operation occurrence notifications.
$ref: "#/definitions/LcmOpOccNotificationVerbosityType"
_links:
description: >
Links to resources related to this resource.
......@@ -4547,8 +4579,19 @@ definitions:
$ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd"
cpConfig: