Commit 8fe76a84 authored by moscatelli's avatar moscatelli

SOl005: Notification interfaces added

parent 5051b771
Pipeline #754 failed with stage
in 0 seconds
......@@ -17,7 +17,6 @@ info:
externalDocs:
description: ETSI GS NFV-SOL 005 V2.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.05.01_60/gs_NFV-SOL005v020501p.pdf
basePath: /{apiName}
schemes:
- http
- https
......@@ -29,51 +28,17 @@ paths:
###############################################################################
# API Versions #
###############################################################################
'/api-versions':
get:
summary: Retrieve API version information
description: >
The GET method reads API version information. This method shall follow the provisions specified in
table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
supported.
parameters:
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: false
type: string
responses:
200:
description: >
200 OK
'/nsd/api-versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
API version information was read successfully.
The response body shall contain API version information, as defined in clause 4.4.1.7.
schema:
$ref: '../definitions/SOL005_def.yaml#/definitions/ApiVersionInformation'
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
400: { $ref: '../responses/SOL005_resp.yaml#/responses/400' }
401: { $ref: '../responses/SOL005_resp.yaml#/responses/401' }
403: { $ref: '../responses/SOL005_resp.yaml#/responses/403' }
404: { $ref: '../responses/SOL005_resp.yaml#/responses/404' }
405: { $ref: '../responses/SOL005_resp.yaml#/responses/405' }
406: { $ref: '../responses/SOL005_resp.yaml#/responses/406' }
413: { $ref: '../responses/SOL005_resp.yaml#/responses/413' }
414: { $ref: '../responses/SOL005_resp.yaml#/responses/414' }
416: { $ref: '../responses/SOL005_resp.yaml#/responses/416' }
422: { $ref: '../responses/SOL005_resp.yaml#/responses/422' }
429: { $ref: '../responses/SOL005_resp.yaml#/responses/429' }
500: { $ref: '../responses/SOL005_resp.yaml#/responses/500' }
503: { $ref: '../responses/SOL005_resp.yaml#/responses/503' }
504: { $ref: '../responses/SOL005_resp.yaml#/responses/504' }
\ No newline at end of file
'/nsfm/api-versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
'/nslcm/api-versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
'/nspm/api-versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
'/vnfpkgm/api-versions':
$ref: '../endpoints/SOL005_endpoints.yaml#/endpoints/api-versions'
\ No newline at end of file
This diff is collapsed.
responses:
409-alarm-state-conflict:
description: >
Conflict
Error: The operation cannot be executed currently, due
to a conflict with the state of the "Individual alarm" resource.
Typically, this is due to the fact that the alarm is already
in the state that is requested to be set (such as trying to
acknowledge an already-acknowledged alarm).
The response body shall contain a ProblemDetails
structure, in which the "detail" attribute shall convey
more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
responses:
303:
description: >
See Other
A subscription with the same callbackURI and the same
filter already exits and the policy of the NFVO is to not
create redundant subscriptions.
The HTTP response shall include a "Location" HTTP
eader that contains the resource URI of the existing
subscription resource.
The response body shall be empty.
400:
description: >
Bad Request
Error: Invalid attribute-based filtering parameters.
The response body shall contain a ProblemDetails
structure, in which the "detail" attribute should convey
more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
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.
type: string
maximum: 1
minimum: 0
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
400-attr-based-filtering-error:
description: >
Bad Request
Invalid attribute-based filtering parameters or Invalid attribute
selector.
It the request is malformed or syntactically incorrect (e.g. if the
request URI contains incorrect query parameters or a syntactically
incorrect payload body), the API producer shall respond with this
response code. The "ProblemDetails" structure shall be provided,
and should include in the "detail" attribute more information about
the source of the problem.
If the request contains a malformed access token, the API producer
should respond with this response. The details of the error shall
be returned in the WWW-Authenticate HTTP header, as defined in
IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be
provided.
If there is an application error related to the client's input that
cannot be easily mapped to any other HTTP response code ("catch all
error"), the API producer shall respond with this response code.The
"ProblemDetails" structure shall be provided, and shall include in
the "detail" attribute more information about the source of the
problem.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
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.
type: string
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
401:
description: >
Unauthorized.
If the request contains no access token even though one is
required, or if the request contains an authorization token that
is invalid (e.g. expired or revoked), the API producer should
respond with this response. The details of the error shall be
returned in the WWW-Authenticate HTTP header, as defined in
IETF RFC 6750 and IETF RFC 7235. The ProblemDetails
structure may be provided.
headers:
Content-Type:
type: string
description: The MIME type of the body of the response.
WWW-Authenticate:
type: string
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.
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
403:
description: >
Forbidden
If the API consumer is not allowed to perform a particular request
to a particular resource, the API producer shall respond with this
response code. The "ProblemDetails" structure shall be provided.
It should include in the "detail" attribute information about the
source of the problem, and may indicate how to solve it.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
405:
description: >
Method Not Allowed
If a particular HTTP method is not supported for a particular
resource, the API producer shall respond with this response code.
The "ProblemDetails" structure may be omitted in that case.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
406:
description: >
If the "Accept" header does not contain at least one
name of a content type for which the NFVO can
provide a representation of the NSD, the NFVO shall
respond with this response code.
The "ProblemDetails" structure may be included with
the "detail" attribute providing more information about
the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
412:
description: >
Precondition Failed.
Error: A precondition given in an HTTP request header
is not fulfilled.
Typically, this is due to an ETag mismatch, indicating
that the resource was modified by another entity.
The response body should contain a ProblemDetails
structure, in which the "detail" attribute should convey
more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
500:
description: >
Internal Server Error
If there is an application error not related to the client's input
that cannot be easily mapped to any other HTTP response code
("catch all error"), the API producer shall respond withthis
response code. The ProblemDetails structure shall be provided,
and shall include in the "detail" attribute more information about
the source of the problem.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
503:
description: >
Service Unavailable
If the API producer encounters an internal overload situation of
itself or of a system it relies on, it should respond with this
response code, following the provisions in IETF RFC 7231 [13] for
the use of the Retry-After HTTP header and for the alternative
to refuse the connection. The "ProblemDetails" structure may be omitted.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
AlarmNotification:
description: >
This type represents an alarm notification about NS faults.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarm
- _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: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types.
Shall be set to "AlarmNotification" for this notification type.
type: string
enum:
- AlarmClearedNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
alarm:
description: >
Information about an alarm including AlarmId, affected
NS identifier, and FaultDetails.
$ref: "../../NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm"
alarmClearedTime:
description: >
The time stamp indicating when the alarm was cleared.
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarm
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
alarm:
description: >
Link to the resource that represents the related alarm.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Link"
AlarmClearedNotification:
description: >
This type represents an alarm cleared notification about VNF faults.
The notification shall be triggered by the VNFM when an alarm has been
cleared.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarmId
- alarmClearedTime
- _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: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmClearedNotification" for this notification type.
type: string
enum:
- AlarmClearedNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
alarmId:
description: >
Alarm identifier.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
alarmClearedTime:
description: >
The time stamp indicating when the alarm was cleared.
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarm
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
alarm:
description: >
Link to the resource that represents the related alarm.
$ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
AlarmListRebuiltNotification:
description: >
This type represents a notification that the alarm list has been
rebuilt, e.g. if the VNFM detects its storage holding the alarm
list is corrupted.
The notification shall be triggered by the VNFM when the alarm list has
been rebuilt.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- _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: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmListRebuiltNotification" for this notification type.
type: string
enum:
- AlarmListRebuiltNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarms
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
alarms:
description: >
Link to the alarm list, i.e. the "Alarms" resource.
$ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
......@@ -22,202 +22,7 @@ definitions:
items:
$ref: "#/definitions/HealVnfData"
NsLcmOpOcc:
description: >
This type represents a request a NS lifecycle operation occurrence.
It shall comply with the provisions defined in Table 6.5.2.3-1.
type: object
required:
- id
- operationState
- stateEnteredTime
- nsInstanceId
- lcmOperationType
- startTime
- isAutomaticInvocation
- isCancelPending
- _links
properties:
id:
description: >
Identifier of this NS lifecycle operation occurrence.
$ref: "SOL005_def.yaml#/definitions/Identifier"
operationState:
description: >
The state of the NS LCM operation.
$ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOperationStateType"
stateEnteredTime:
description: >
Date-time when the current state was entered.
type: string
format: date-time
nsInstanceId:
description: >
Identifier of the NS instance to which the operation applies.
$ref: "SOL005_def.yaml#/definitions/Identifier"
lcmOperationType:
description: >
Type of the actual LCM operation represented by this
lcm operation occurrence.
$ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpType"
startTime:
description: >
Date-time of the start of the operation.
type: string
format: date-time
isAutomaticInvocation:
description: >
Set to true if this NS LCM operation occurrence has
been automatically triggered by the NFVO. This occurs
in the case of auto-scaling, auto-healing and when a
nested NS is modified as a result of an operation on its
composite NS. Set to false otherwise.
type: boolean
operationParams:
description: >
Input parameters of the LCM operation. This attribute
shall be formatted according to the request data type of
the related LCM operation.
The following mapping between lcmOperationType and
the data type of this attribute shall apply:
- INSTANTIATE: InstantiateNsRequest
- SCALE: ScaleNsRequest
- UPDATE: UpdateNsRequest
- HEAL: HealNsRequest
- TERMINATE: TerminateNsRequest
This attribute shall be present if this data type is returned
in a response to reading an individual resource, and may
be present according to the chosen attribute selector
parameter if this data type is returned in a response to a
query of a container resource.
type: string
enum:
- INSTANTIATE
- SCALE
- UPDATE
- HEAL
- TERMINATE
isCancelPending:
description: >
If the LCM operation occurrence is in "PROCESSING"
or "ROLLING_BACK" state and the operation is being
cancelled, this attribute shall be set to true. Otherwise, it
shall be set to false.
type: boolean
cancelMode:
description: >
The mode of an ongoing cancellation. Shall be present
when isCancelPending=true, and shall be absent otherwise.
$ref: "#/definitions/CancelModeType"
error:
description: >
If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState"
is "PROCESSING" or "ROLLING_BACK" and previous value of
"operationState" was "FAILED_TEMP", this attribute shall be present
and contain error information, unless it has been requested to be
excluded via an attribute selector.
$ref: "#/definitions/ProblemDetails"
resourceChanges:
description: >
This attribute contains information about the cumulative
changes to virtualised resources that were performed so
far by the LCM operation since its start, if applicable
type: object
properties:
affectedVnfs:
description: >
Information about the VNF instances that were affected
during the lifecycle operation, if this notification
represents the result of a lifecycle operation.
type: array
items:
$ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnf"
affectedPnfs:
description: >
Information about the PNF instances that were affected
during the lifecycle operation, if this notification
represents the result of a lifecycle operation.
type: array
items:
$ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedPnf"
affectedVls:
description: >
Information about the VL instances that were affected
during the lifecycle operation, if this notification
represents the result of a lifecycle operation.
type: array
items:
$ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVl"
affectedVnffgs:
description: >
Information about the VNFFG instances that were
affected during the lifecycle operation, if this notification
represents the result of a lifecycle operation. See note
type: array
items:
$ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnffg"
affectedNss:
description: >
Information about the nested NS instances that were
affected during the lifecycle operation, if this notification
represents the result of a lifecycle operation. See note.
type: array
items:
$ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedNs"
affectedSaps:
description: >
Information about the nested NS instances that were
affected during the lifecycle operation, if this notification
represents the result of a lifecycle operation. See note.
type: array
items:
$ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedSap"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
- nsInstance
properties:
self:
description: >
URI of this resource.
$ref: "SOL005_def.yaml#/definitions/Link"
nsInstance:
description: >
Link to the NS instance that the operation applies to.
$ref: "SOL005_def.yaml#/definitions/Link"
cancel:
description: >
Link to the task resource that represents the "cancel"
operation for this LCM operation occurrence, if
cancelling is currently allowed.
$ref: "SOL005_def.yaml#/definitions/Link"
retry:
description: >
Link to the task resource that represents the "cancel"
operation for this LCM operation occurrence,
if cancelling is currently allowed.
$ref: "SOL005_def.yaml#/definitions/Link"
rollback:
description: >
Link to the task resource that represents the "rollback"
operation for this LCM operation occurrence, if rolling
back is currently allowed.
$ref: "SOL005_def.yaml#/definitions/Link"
continue:
description: >
Link to the task resource that represents the "continue"
operation for this LCM operation occurrence, if rolling
back is currently allowed.
$ref: "SOL005_def.yaml#/definitions/Link"
fail:
description: >
Link to the task resource that represents the "fail"