Commit 95ad2a8c authored by Samir Medjiah's avatar Samir Medjiah

SOL005: Consolidation of common data types, endpoint parameters, and responses...

SOL005: Consolidation of common data types, endpoint parameters, and responses in VNF PM and NS LCM.
parent 0c4b6456
Pipeline #837 failed with stage
in 0 seconds
......@@ -38,6 +38,20 @@ paths:
###############################################################################
'/alarms':
#ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.2
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235.
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
get:
summary: Query alarms related to NS instances.
description: >
......@@ -78,19 +92,6 @@ paths:
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
200:
description: >
......@@ -164,6 +165,19 @@ paths:
in: path
type: string
required: true
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235.
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
get:
summary: Read individual alarm.
description: >
......@@ -183,19 +197,6 @@ paths:
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
200:
description: >
......@@ -263,13 +264,6 @@ paths:
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Content-Type
description: >
The Content-Type header shall be set to
......@@ -280,12 +274,6 @@ paths:
type: string
enum:
- application/merge-patch+json
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
200:
description: >
......@@ -342,6 +330,20 @@ paths:
##############################################################################
'/subscriptions':
#ETSI GS NFV-SOL 005 V2.4.1 location: 8.4.4
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235.
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
post:
summary: Subscribe to alarms related to NSs.
description: >
......@@ -362,13 +364,6 @@ paths:
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
......@@ -376,12 +371,6 @@ paths:
in: header
required: true
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
- name: body
in: body
required: true
......@@ -475,13 +464,6 @@ paths:
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
......@@ -489,12 +471,6 @@ paths:
in: header
required: true
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
200:
description: >
......@@ -571,6 +547,19 @@ paths:
in: path
type: string
required: true
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235.
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
get:
summary: Read an individual subscription.
description: >
......@@ -587,13 +576,6 @@ paths:
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
......@@ -601,12 +583,6 @@ paths:
in: header
required: true
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
200:
description: >
......@@ -659,20 +635,6 @@ paths:
Terminate Subscription
This method terminates an individual subscription.
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
204:
description: >
......
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
HealNsRequest:
description: >
This operation supports the healing of an NS instance,
either by healing the complete NS instance or by healing one of
more of the VNF instances that are part of this NS.
It shall comply with the provisions defined in Table 6.5.2.13-1.
type: object
properties:
healNsData:
description: >
Indicates the reason why a healing procedure is required.
$ref: "#/definitions/HealNsData"
healVnfData:
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".
type: array
items:
$ref: "#/definitions/HealVnfData"
CancelMode:
description: >
This type represents a parameter to select the mode of canceling an ongoing NS LCM operation occurrence.
It shall comply with the provisions defined in Table 6.5.2.16-1.
type: object
required:
- cancelMode
properties:
cancelMode:
description: >
Cancellation mode to apply.
$ref: "#/definitions/CancelModeType"
CancelModeType:
description: >
The enumeration CancelModeType defines the valid modes of cancelling a NS LCM operation occurrence.
It shall comply with the provisions defined in Table 6.5.4.10-1.
type: string
enum:
- GRACEFUL
- FORCEFUL
HealNsData:
description: >
This type represents the information used to heal a NS.
It shall comply with the provisions defined in Table 6.5.3.43-1.
type: object
required:
- degreeHealing
properties:
degreeHealing:
description: >
Indicates the degree of healing. Possible values
include:
- HEAL_RESTORE: Complete the healing of
the NS restoring the state of the NS before
the failure occurred
- HEAL_QOS: Complete the healing of the NS
based on the newest QoS values
- HEAL_RESET: Complete the healing of the
NS resetting to the original instantiation state of the NS
- PARTIAL_HEALING
type: string
enum:
- HEAL_RESTORE
- HEAL_QOS
- HEAL_RESET
- PARTIAL_HEALING
actionsHealing:
description: >
Used to specify dedicated healing actions in a
particular order (e.g. as a script). The actionsHealing
attribute can be used to provide a specific script whose
content and actions might only be possible to be
derived during runtime.
type: array
items:
$ref: "SOL005_def.yaml#/definitions/String"
healScript:
description: >
Reference to a script from the NSD that shall be used
to execute dedicated healing actions in a particular
order. The healScript, since it refers to a script in the
NSD, can be used to execute healing actions which
are defined during NS design time.
$ref: "SOL005_def.yaml#/definitions/IdentifierInNsd"
additionalParamsforNs:
description: >
Allows the OSS/BSS to provide additional
parameter(s) to the healing process at the NS level.
$ref: "SOL005_def.yaml#/definitions/KeyValuePairs"
HealVnfData:
description: >
This type represents the information to heal a VNF that is part of an NS.
The NFVO shall then invoke the HealVNF
operation towards the appropriate VNFM.
It shall comply with the provisions defined in Table 6.5.3.44-1.
type: object
required:
- vnfInstanceId
properties:
vnfInstanceId:
description: >
Identifies the VNF instance, part of the NS, requiring a
healing action.
$ref: "SOL005_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.
EXAMPLE: Input parameters to VNF-specific healing procedures.
$ref: "SOL005_def.yaml#/definitions/KeyValuePairs"
TerminateNsRequest:
description: >
This type represents a NS termination request.
It shall comply with the provisions defined in Table 6.5.2.15-1.
type: object
properties:
terminationTime:
description: >
Timestamp indicating the end time of the NS, i.e. the NS
will be terminated automatically at this timestamp.
Cardinality "0" indicates the NS termination takes place immediately
$ref: "SOL005_def.yaml#/definitions/DateTime"
ProblemDetails:
description: >
The definition of the general "ProblemDetails" data structure from
IETF RFC 7807 [19] is reproduced inthis structure. Compared to the
general framework defined in IETF RFC 7807 [19], the "status" and
"detail" attributes are mandated to be included by the present document,
to ensure that the response contains additional textual information about
an error. IETF RFC 7807 [19] foresees extensibility of the
"ProblemDetails" type. It is possible that particular APIs in the present
document, or particular implementations, define extensions to define
additional attributes that provide more information about the error.
The description column only provides some explanation of the meaning to
Facilitate understanding of the design. For a full description, see
IETF RFC 7807 [19].
type: object
required:
- status
- detail
properties:
type:
description: >
A URI reference according to IETF RFC 3986 [5] that identifies the
problem type. It is encouraged that the URI provides human-readable
documentation for the problem (e.g. using HTML) when dereferenced.
When this member is not present, its value is assumed to be
"about:blank".
type: string
format: URI
title:
description: >
A short, human-readable summary of the problem type. It should not
change from occurrence to occurrence of the problem, except for
purposes of localization. If type is given and other than
"about:blank", this attribute shall also be provided.
A short, human-readable summary of the problem
type. It SHOULD NOT change from occurrence to occurrence of the
problem, except for purposes of localization (e.g., using
proactive content negotiation; see [RFC7231], Section 3.4).
type: string
status:
description: >
The HTTP status code for this occurrence of the problem.
The HTTP status code ([RFC7231], Section 6) generated by the origin
server for this occurrence of the problem.
type: integer
detail:
description: >
A human-readable explanation specific to this occurrence of the
problem.
type: string
instance:
description: >
A URI reference that identifies the specific occurrence of the
problem. It may yield further information if dereferenced.
type: string
format: URI
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
responses:
202-with-Location:
description: >
202 ACCEPTED
The request was accepted for processing, but the processing has not
been completed.
The response body shall be empty.
The HTTP response shall include a "Location" HTTP
header that contains the URI of the newly-created
"NS lifecycle operation occurrence" resource
corresponding to the operation.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Location:
description: The resource URI of the created NS instance
type: string
format: url
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/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance"
202-with-Location-empty:
description: >
202 ACCEPTED
The request was accepted for processing, but the processing has not
been completed. On success, the HTTP response shall include a
"Location" HTTP header that contains the URI of the newly-created
"NS LCM operation occurrence" resource corresponding to the
operation.
The response body shall be empty.
headers:
Location:
description: The resource URI of the created NS instance
type: string
format: url
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
\ No newline at end of file
definitions:
Identifier:
description: >
An identifier with the intention of being globally unique.
type: string
Link:
description: >
This type represents a link to a resource.
type: object
required:
- href
properties:
href:
description: >
URI of the referenced resource.
type: string
format: url
DateTime:
description: >
Date-time stamp.
Representation: String formatted according to IETF RFC 3339.
type: string
format: "date-time"
String:
description: >
This type represents stack of string values
type: string
Object:
description: >
This type represents stack of object values
type: object
KeyValuePairs:
description: >
This type represents a list of key-value pairs. The order of the pairs in the list is not significant.
In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions
defined in clause 4 of IETF RFC 7159.
type: object
ProblemDetails:
description: >
The definition of the general "ProblemDetails" data structure from
IETF RFC 7807 [19] is reproduced inthis structure. Compared to the
general framework defined in IETF RFC 7807 [19], the "status" and
"detail" attributes are mandated to be included by the present document,
to ensure that the response contains additional textual information about
an error. IETF RFC 7807 [19] foresees extensibility of the
"ProblemDetails" type. It is possible that particular APIs in the present
document, or particular implementations, define extensions to define
additional attributes that provide more information about the error.
The description column only provides some explanation of the meaning to
Facilitate understanding of the design. For a full description, see
IETF RFC 7807 [19].
type: object
required:
- status
- detail
properties:
type:
description: >
A URI reference according to IETF RFC 3986 [5] that identifies the
problem type. It is encouraged that the URI provides human-readable
documentation for the problem (e.g. using HTML) when dereferenced.
When this member is not present, its value is assumed to be
"about:blank".
type: string
format: URI
title:
description: >
A short, human-readable summary of the problem type. It should not
change from occurrence to occurrence of the problem, except for
purposes of localization. If type is given and other than
"about:blank", this attribute shall also be provided.
A short, human-readable summary of the problem
type. It SHOULD NOT change from occurrence to occurrence of the
problem, except for purposes of localization (e.g., using
proactive content negotiation; see [RFC7231], Section 3.4).
type: string
status:
description: >
The HTTP status code for this occurrence of the problem.
The HTTP status code ([RFC7231], Section 6) generated by the origin
server for this occurrence of the problem.
type: integer
detail:
description: >
A human-readable explanation specific to this occurrence of the
problem.
type: string
instance:
description: >
A URI reference that identifies the specific occurrence of the
problem. It may yield further information if dereferenced.
type: string
format: URI
IdentifierInVnfd:
description: >
Identifier of the software image.
type: string
Uri:
description: >
String formatted according to IETF RFC 3986.
type: string
Version:
description: >
Software version of the VNF. This is
changed when there is any change to the
software included in the VNF package.
This information is copied from the VNFD.
It shall be present after the VNF package
content has been on-boarded and absent otherwise.
type: string
Checksum:
description: >
This type represents the checksum of a VNF package or an artifact file.
required:
- algorithm
- hash
type: object
properties:
algorithm:
description: >
Name of the algorithm used to generate the checksum,
as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512.
type: string
hash:
description: >
The hexadecimal value of the checksum.
type: string
SubscriptionAuthentication:
type: object
required:
- authType
properties:
authType:
description: >
Defines the types of Authentication / Authorization which the API
consumer is willing to accept when receiving a notification.
Permitted values:
* BASIC: In every HTTP request to the notification endpoint, use
HTTP Basic authentication with the client credentials.
* OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the
notification endpoint, use an OAuth 2.0 Bearer token, obtained
using the client credentials grant type.
* TLS_CERT: Every HTTP request to the notification endpoint is sent
over a mutually authenticated TLS session, i.e. not only the
server is authenticated, but also the client is authenticated
during the TLS tunnel setup.
type: array
items:
type: string
enum:
- BASIC
- OAUTH2_CLIENT_CREDENTIALS
- TLS_CERT
paramsBasic:
description: >
Parameters for authentication/authorization using BASIC.
Shall be present if authType is "BASIC" and the contained
information has not been provisioned out of band.
Shall be absent otherwise.
type: object
properties:
userName:
description: >
Username to be used in HTTP Basic authentication. Shall be
present if it has not been provisioned out of band.
type: string
password:
description: >
Password to be used in HTTP Basic authentication. Shall be
present if it has not been provisioned out of band.
type: string
paramsOauth2ClientCredentials:
description: >
Parameters for authentication/authorization using
OAUTH2_CLIENT_CREDENTIALS.
Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the
contained information has not been provisioned out of band.
Shall be absent otherwise.
type: object
properties:
clientId:
description: >
Client identifier to be used in the access token request of the
OAuth 2.0 client credentials grant type.
Shall be present if it has not been provisioned out of band.
The clientId and clientPassword passed in a subscription shall
not be the same as the clientId and clientPassword that are used
to obtain authorization for API requests. Client credentials may
differ between subscriptions. The value of clientPassword should
be generated by a random process.
type: string
clientPassword:
description: >
Client password to be used in the access token request of the
OAuth 2.0 client credentials grant type.
Shall be present if it has not been provisioned out of band.
The clientId and clientPassword passed in a subscription shall
not be the same as the clientId and clientPassword that are used