Commit 8a244c24 authored by vreck's avatar vreck
Browse files

Merge branch '3.5.1-dev' into 'master'

3.5.1 dev

Closes #18, #4, #17, #11, #12, and #5

See merge request !18
parents daeef6b1 d433d1d6
Pipeline #9376 passed with stage
in 0 seconds
...@@ -3,10 +3,14 @@ openapi: 3.0.2 ...@@ -3,10 +3,14 @@ openapi: 3.0.2
info: info:
title: SOL005 - API version interface title: SOL005 - API version interface
description: | description: |
SOL005 - API version Interface IMPORTANT: Please note that this file might be not aligned to the current version of SOL005 - API version Interface
the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the
published ETSI Group Specification takes precedence. IMPORTANT: Please note that this file might be not aligned to the current
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues Please report bugs to Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues
contact: contact:
name: NFV-SOL WG name: NFV-SOL WG
license: license:
...@@ -15,8 +19,8 @@ info: ...@@ -15,8 +19,8 @@ info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs: externalDocs:
description: ETSI GS NFV-SOL 005 V3.3.1 description: ETSI GS NFV-SOL 005 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.03.01_60/gs_nfv-sol005v030301p.pdf url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.05.01_60/gs_nfv-sol005v030501p.pdf
servers: servers:
- url: http://127.0.0.1/ - url: http://127.0.0.1/
......
...@@ -37,6 +37,10 @@ components: ...@@ -37,6 +37,10 @@ components:
type: object type: object
description: | description: |
This type represents a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. This type represents a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1.
NOTE 1: The "objectInstanceId" aims to identify the "Individual VIM's NFVI capacity information", which is
associated to a VIM instance.
NOTE 2: The "subObjectInstanceIds" aim to identify the resource zones in which the available NFVI capacity
crosses a threshold value.
required: required:
- id - id
- objectInstanceId - objectInstanceId
...@@ -50,12 +54,13 @@ components: ...@@ -50,12 +54,13 @@ components:
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
objectInstanceId: objectInstanceId:
description: | description: |
Identifier of the VIM instance associated with the capacity threshold. Identifier of the VIM instance associated with the capacity threshold. See note 1.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
subObjectInstanceIds: subObjectInstanceIds:
description: | description: |
Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold. 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. If this attribute is absent, measurements are taken for all sub-object instances of the measured object instance.
See note 2.
type: array type: array
items: items:
$ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim
...@@ -119,158 +124,17 @@ components: ...@@ -119,158 +124,17 @@ components:
This attribute shall only be present if the API consumer requires authorization of notifications. This attribute shall only be present if the API consumer requires authorization of notifications.
$ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication
NfviCapacityInfoSubscription:
type: object
description: |
This type represents a subscription. It shall comply with the provisions defined in Table 10.5.2.9-1.
required:
- id
- callbackUri
- _links
properties:
id:
description: |
Identifier that identifies the subscription.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
filter:
description: |
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: '#/components/schemas/NfviCapacityInfoNotificationsFilter'
callbackUri:
description: |
The URI of the endpoint to send the notification to.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Uri
_links:
type: object
description: |
Links to resources related to this resource.
required:
- self
properties:
self:
description: |
URI of this resource.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Link
NfviCapacityInfoSubscriptionRequest:
type: object
description: |
This type represents a subscription request. It shall comply with the provisions defined in Table 10.5.2.2-1.
required:
- callbackUri
properties:
filter:
description: |
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: '#/components/schemas/NfviCapacityInfoNotificationsFilter'
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 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: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication
CapacityShortageNotification:
type: object
description: |
This notification informs the receiver that the available NFVI capacity has crossed below a threshold value or
has re-covered from a capacity shortage. It shall comply with the provisions defined in Table 10.5.2.10-1.
required:
- id
- notificationType
- thresholdId
- timeStamp
- direction
- capacityInformation
- objectInstanceId
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: ../../definitions/SOL005_def.yaml#/definitions/Identifier
notificationType:
description: |
Discriminator for the different notification types.
Shall be set to "CapacityShortageNotification" for this notification type.
type: string
thresholdId:
description: |
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
objectInstanceId:
description: |
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
subObjectInstanceId:
description: |
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.
type: string
enum:
- UP
- DOWN
capacityInformation:
description: |
Information about the available, reserved, allocated/used, and total capacity of the NFVI.
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
description: |
This type represents a filter that can be used to subscribe for notifications related to NFVI capacity information events.
It shall comply with the provisions defined in Table 10.5.3.2-1.
properties:
notificationTypes:
description: |
Match particular notification types.
Permitted values:
- CapacityShortageNotification
type: array
items:
type: string
enum:
- CapacityShortageNotification
CapacityThresholdCriteria: CapacityThresholdCriteria:
type: object type: object
description: | description: |
This type represents criteria that define a capacity threshold. This type represents criteria that define a capacity threshold.
It shall comply with the provisions defined in table 10.5.3.3-1. It shall comply with the provisions defined in table 10.5.3.3-1.
NOTE 1: In the present document, simple thresholds are defined.
The definition of additional threshold types is left for future specification.
NOTE 2: The hysteresis is defined to prevent storms of threshold crossing
notifications. When processing a request to create a threshold, implementations
should enforce a suitable minimum value for this attribute (e.g. override the
value or reject the request).
required: required:
- capacityMetric - capacityMetric
- thresholdType - thresholdType
...@@ -312,8 +176,7 @@ components: ...@@ -312,8 +176,7 @@ components:
Type of capacity threshold. This attribute determines which other attributes are present in the data structure. Type of capacity threshold. This attribute determines which other attributes are present in the data structure.
Permitted values: Permitted values:
- SIMPLE: Single-valued static threshold. - SIMPLE: Single-valued static threshold.
In the present document, simple thresholds are defined. The definition of additional threshold types is left See note 1.
for future specification.
type: string type: string
enum: enum:
- SIMPLE - SIMPLE
...@@ -338,9 +201,7 @@ components: ...@@ -338,9 +201,7 @@ components:
A notification with crossing direction "UP" will be generated if the measured value reaches or A notification with crossing direction "UP" will be generated if the measured value reaches or
exceeds "thresholdValue" + "hysteresis". A notification with crossing direction "DOWN" will be exceeds "thresholdValue" + "hysteresis". A notification with crossing direction "DOWN" will be
generated if the measured value reaches or undercuts "thresholdValue" - "hysteresis". generated if the measured value reaches or undercuts "thresholdValue" - "hysteresis".
The hysteresis is defined to prevent storms of threshold crossing notifications. See note 2.
When processing a request to create a threshold, implementations should enforce a suitable minimum
value for this attribute (e.g. override the value or reject the request).
type: number type: number
NfviCapacityInfoPerZone: NfviCapacityInfoPerZone:
...@@ -366,21 +227,20 @@ components: ...@@ -366,21 +227,20 @@ components:
type: object type: object
description: | description: |
This type defines the format of a time interval. The type shall comply with the provisions defined in table 10.5.2.7-1. This type defines the format of a time interval. The type shall comply with the provisions defined in table 10.5.2.7-1.
NOTE: When only the startTime is present, there is no time interval being defined, and therefore the provided timing
information refers to a specific point in time.
required: required:
- aTime - aTime
properties: properties:
aTime: aTime:
description: | description: |
First date and time of the interval. First date and time of the interval. See note.
When only the startTime is present, there is no time interval being defined, and therefore the provided timing
information refers to a specific point in time.
$ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime
bTime: bTime:
description: | description: |
Second date and time of the interval. Shall be present when a time interval is provided, and absent otherwise. Second date and time of the interval. Shall be present when a time interval is provided, and absent otherwise.
When provided, the bTime shall be greater than aTime. When provided, the bTime shall be greater than aTime.
When only the startTime is present, there is no time interval being defined, and therefore the provided timing See note.
information refers to a specific point in time.
$ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime
NfviCapacityMeasurement: NfviCapacityMeasurement:
...@@ -388,6 +248,8 @@ components: ...@@ -388,6 +248,8 @@ components:
description: | description: |
This type defines the format of the NFVI capacity information on a per resource type basis. This type defines the format of the NFVI capacity information on a per resource type basis.
The type shall comply with the provisions defined in table 10.5.2.6-1. The type shall comply with the provisions defined in table 10.5.2.6-1.
NOTE: The present document and referred documents do not specify the capacity measurements,
thus the capacity measurement names are not specified in the present document version.
required: required:
- resourceType - resourceType
- capacityMeasurementName - capacityMeasurementName
...@@ -403,8 +265,7 @@ components: ...@@ -403,8 +265,7 @@ components:
description: | description: |
Name of the capacity measurement. Different resource types can have different associated capacity measurements, Name of the capacity measurement. Different resource types can have different associated capacity measurements,
typically associated to different sub-types of the resource type. 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 See note.
measurement names are not specified in the present document version.
type: string type: string
totalCapacity: totalCapacity:
description: | description: |
...@@ -441,17 +302,19 @@ components: ...@@ -441,17 +302,19 @@ components:
CapacityThresholdModifications: CapacityThresholdModifications:
description: | description: |
This type represents modifications to a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. This type represents modifications to a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1.
NOTE: At least one of the attributes defined in this type shall be present in request bodies.
type: object type: object
properties: properties:
callbackUri: callbackUri:
description: | description: |
New value of the "callbackUri" attribute. The value "null" is not permitted. 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. See note.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Uri $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri
authentication: authentication:
description: | description: |
New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, 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). 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. 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. See note.
$ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication
\ No newline at end of file
openapi: 3.0.2
info:
title: SOL005 - NFVI Capacity Information Notification Interface
description: |
SOL005 - NFVI Capacity Information Notification Interface
IMPORTANT: Please note that this file might be not aligned to the current
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/rep/nfv/SOL005/issues
contact:
name: NFV-SOL WG
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 005 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.05.01_60/gs_nfv-sol005v030501p.pdf
servers:
- url: http://127.0.0.1/callback/v1
- url: https://127.0.0.1/callback/v1
paths:
###############################################################################
# Notification endpoint NsdOnBoardingNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-CapacityShortageNotification:
parameters:
- $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
- $ref: ../components/SOL005_params.yaml#/components/parameters/Version
- $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
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 capacity threshold" resource.
See clause 10.4.6.3.1.
parameters:
- $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/CapacityShortageNotification'
responses:
204:
$ref: '#/components/responses/CapacityShortageNotification.Post.204'
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"
500:
$ref: "../responses/SOL005_resp.yaml#/components/responses/500"
503:
$ref: "../responses/SOL005_resp.yaml#/components/responses/503"
get:
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during creation of the capacity threshold resource. See clause 10.4.6.3.2.
responses:
204:
$ref: '#/components/responses/CapacityShortageNotification.Get.204'
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"
500:
$ref: "../responses/SOL005_resp.yaml#/components/responses/500"
503:
$ref: "../responses/SOL005_resp.yaml#/components/responses/503"
components:
requestBodies:
CapacityShortageNotification:
description: |
A notification about the successful on-boarding of an NSD.
content:
application/json:
schema:
$ref: "definitions/SOL005NFVICapacityInformationNotification_def.yaml#/components/schemas/CapacityShortageNotification"
required: true
responses:
CapacityShortageNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered successfully.
headers:
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
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
CapacityShortageNotification.Get.204:
description: |
204 NO CONTENT
Shall be returned when the notification endpoint has been tested successfully.
The response body shall be empty.
headers:
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
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
components:
schemas:
CapacityShortageNotification:
type: object
description: |
This notification informs the receiver that the available NFVI capacity has crossed below a threshold value or
has re-covered from a capacity shortage. It shall comply with the provisions defined in Table 10.5.2.10-1.
NOTE: Refer to the definition of the "CapacityThreshold" in clause 10.5.2.7
required:
- id
- notificationType
- thresholdId
- timeStamp
- direction
- capacityInformation
- objectInstanceId
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: ../../definitions/SOL005_def.yaml#/definitions/Identifier
notificationType:
description: |
Discriminator for the different notification types.
Shall be set to "CapacityShortageNotification" for this notification type.
type: string
thresholdId:
description: |
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
objectInstanceId:
description: |
Identifies the VIM’s NFVI capacity information instance (measured object instance) in which the available
NFVI capacity has crossed a threshold value. See note.
$ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier
subObjectInstanceId:
description: |
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.
type: string
enum: