Commit 94d75a0e authored by moscatelli's avatar moscatelli
Browse files

SOL002: VNF Indicator interface consolidation

parent a382051f
Pipeline #890 passed with stage
in 0 seconds
swagger: "2.0" swagger: "2.0"
info: info:
version: "1.2.0" version: "1.2.0"
title: "SOL002 - VNF Indicator interface" title: "SOL002 - VNF Indicator interface"
description: > description: >
VNF Indicator interface of ETSI NFV SOL002. VNF Indicator interface of ETSI NFV SOL002.
This API allows the EM/VNF to provide information on value changes of VNF related indicators. This API allows the EM/VNF to provide information on value changes of VNF related indicators.
VNF related indicators are declared in the VNFD. VNF related indicators are declared in the VNFD.
IMPORTANT: Please note that this file might be not aligned to the current 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 version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence. discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
license: license:
name: "ETSI Forge copyright notice" name: "ETSI Forge copyright notice"
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
...@@ -27,17 +24,16 @@ externalDocs: ...@@ -27,17 +24,16 @@ externalDocs:
basePath: /vnfind/v1 basePath: /vnfind/v1
schemes: schemes:
- http - http
- https - https
consumes: consumes:
- application/json - application/json
produces: produces:
- application/json - application/json
paths: paths:
############################################################################### ###############################################################################
# API Versions # # API Versions #
...@@ -56,472 +52,605 @@ paths: ...@@ -56,472 +52,605 @@ paths:
in: header in: header
required: true required: true
type: string type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
get: get:
summary: Query multiple indicators summary: Query multiple indicators
description: Get a list of indicators. Support of attribute based filtering via query parameters. description: Get a list of indicators. Support of attribute based filtering via query parameters.
parameters: parameters:
- name: filter - name: filter
description: > description: >
Attribute-based filtering expression according to clause 4.3.2. Attribute-based filtering expression according to clause 4.3.2.
The VNFM shall support receiving this parameter as part of the URI query string. The VNFM shall support receiving this parameter as part of the URI query string.
The EM/VNF may supply this parameter. The VNF may supply its instance Id as an attribute filter. The EM/VNF may supply this parameter. The VNF may supply its instance Id as an attribute filter.
All attribute names that appear in the VnfIndicator data type and in data types referenced from All attribute names that appear in the VnfIndicator data type and in data types referenced from
it shall be supported by the VNFM in the filter expression. If receiving, this parameter is not it shall be supported by the VNFM in the filter expression. If receiving, this parameter is not
supported a 400 Bad Request response shall be returned (See table 8.4.2.3.2-2). supported a 400 Bad Request response shall be returned (See table 8.4.2.3.2-2).
EXAMPLE EXAMPLE
objects objects
obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]} obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]} obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
Request 1: Request 1:
GET …/container GET …/container
Response 1: Response 1:
[ [
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}, {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
{"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]} {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
] ]
Request 2: Request 2:
GET …/container?filter=(eq.weight,100) GET …/container?filter=(eq.weight,100)
Response 2: Response 2:
[ [
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]} {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
] ]
#Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
in: query in: query
required: false required: false
type: string type: string
- name: nextpage_opaque_marker - name: nextpage_opaque_marker
description: > description: >
Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF
if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource
in: query in: query
required: false required: false
type: string type: string
responses: responses:
200: 200:
description: > description: >
OK 200 OK
Information about zero or more VNF indicators was queried successfully. Information about zero or more VNF indicators was queried successfully.
The response body shall contain in an array the representations of all The response body shall contain in an array the representations of all
VNF indicators that match the attribute-based filtering parameters, VNF indicators that match the attribute-based filtering parameters,
i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2. i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2.
If the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource, If the EM/VNF 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. inclusion of the Link HTTP header in this response shall follow the provisions in clause 4.7.2.3.
headers: headers:
Content-Type: Content-Type:
description: The MIME type of the body of the response. description: The MIME type of the body of the response.
type: string type: string
maximum: 1 maximum: 1
minimum: 1 minimum: 1
Version: Version:
description: The used API version. description: The used API version.
type: string type: string
maximum: 1 maximum: 1
minimum: 1 minimum: 1
Link: Link:
description: > description: >
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
type: string type: string
maximum: 1 maximum: 1
minimum: 0 minimum: 0
schema: schema:
type: array type: array
items: items:
$ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator' $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'
400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' } 400:
401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' } 401:
404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' } 403:
406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' } 404:
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' } 405:
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' } 406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
429:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# VNF indicators related to a VNF instance #
###############################################################################
/indicators/{vnfInstanceId}: /indicators/{vnfInstanceId}:
parameters: parameters:
- name: vnfInstanceId - name: vnfInstanceId
in: path in: path
description: >
Service Unavailable
Identifier of the VNF instance to which the VNF indicators applies.
NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a
POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body
of that response.
type: string
required: true
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
get:
summary: Query multiple indicators related to a VNF instance.
description: > description: >
Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query parameters. Service Unavailable
parameters:
- name: filter
description: >
Attribute-based filtering expression according to clause 4.3.2.
The VNFM shall support receiving this parameter as part of the URI query string.
The EM/VNF shall support receiving filtering parameters as part of the URI query string.
The VNFM may supply filtering parameters.
All attribute names that appear in the VnfIndicator data type and in data types referenced
from it shall be supported in attribute-based filtering parameters.
EXAMPLE
objects
obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
Request 1:
GET …/container
Response 1:
[
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
{"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
]
Request 2:
GET …/container?filter=(eq.weight,100)
Response 2:
[
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
]
#Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
in: query
required: false
type: string
- name: nextpage_opaque_marker
description: >
Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF
if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource.
in: query
required: false
type: string
responses:
200:
description: >
OK
Information about zero or more VNF indicators was queried successfully.
The response body shall contain in an array the representations of all
VNF indicators that are related to the particular VNF instance and that
match the attribute filter., i.e. zero or more representations of VNF
indicators as defined in clause 8.5.2.2.
If the EM/VMF 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:
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
Link:
description: >
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
type: string
maximum: 1
minimum: 0
schema:
type: array
items:
$ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'
400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
/indicators/{vnfInstanceId}/{indicatorId}: Identifier of the VNF instance to which the VNF indicators applies.
parameters: NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a
- name: vnfInstanceId POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body
in: path
description: >
Service Unavailable
Identifier of the VNF instance to which the VNF indicators applies.
NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a
POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body
of that response.
type: string
required: true
- name: indicatorId
in: path
description: >
Identifier of the VNF indicator.
# LEH NOTE from SOL002 is strange
type: string
required: true
- 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 inidividual VNF indicator related to a VNF instance.
description: >
Read an individual VNF indicator related to a specific VNF instance.
NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a
POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body
of that response. of that response.
responses: type: string
200: required: true
description: > - name: Version
OK description: >
Version of the API requested to use when responding to this request.
The VNF indicator was read successfully. in: header
The response body shall contain the representation of the VNF indicator. required: true
headers: type: string
Content-Type: - name: Authorization
description: The MIME type of the body of the response. description: >
type: string The authorization token for the request.
maximum: 1 Reference: IETF RFC 7235
minimum: 1 in: header
Version: required: false
description: The used API version. type: string
type: string get:
maximum: 1 summary: Query multiple indicators related to a VNF instance.
minimum: 1 description: >
schema: Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query parameters.
$ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'
400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' }
401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' }
403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' }
404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' }
405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' }
406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' }
409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' }
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' }
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' }
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' }
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' }
/indicators/{indicatorId}:
parameters: parameters:
- name: indicatorId - name: filter
in: path
description: > description: >
Identifier of the VNF indicator. Attribute-based filtering expression according to clause 4.3.2.
The VNFM shall support receiving this parameter as part of the URI query string.
The EM/VNF shall support receiving filtering parameters as part of the URI query string.
The VNFM may supply filtering parameters.
All attribute names that appear in the VnfIndicator data type and in data types referenced
from it shall be supported in attribute-based filtering parameters.
EXAMPLE
objects
obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
Request 1:
GET …/container
Response 1:
[
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
{"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
]
Request 2:
GET …/container?filter=(eq.weight,100)
Response 2:
[
{"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
]
#Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
in: query
required: false
type: string type: string
required: true - name: nextpage_opaque_marker
- name: Version
description: > description: >
Version of the API requested to use when responding to this request. Marker to obtain the next page of a paged response. Shall be supported by the EM/VNF
in: header if the EM/VNF supports alternative 2 (paging) according to clause 4.7.2.1 for this resource.
required: true in: query
required: false
type: string type: string
get: responses:
summary: Read an inidividual VNF indicator related to a VNF instance. 200:
description: > description: >
Reads a VNF indicator. 200 OK
responses:
200: Information about zero or more VNF indicators was queried successfully.
description: > The response body shall contain in an array the representations of all
OK VNF indicators that are related to the particular VNF instance and that
match the attribute filter., i.e. zero or more representations of VNF
The VNF indicator was read successfully. indicators as defined in clause 8.5.2.2.
The response body shall contain the representation of the VNF indicator. If the EM/VMF supports alternative 2 (paging) according to clause 4.7.2.1
headers: for this resource, inclusion of the Link HTTP header in this response shall
Content-Type: follow the provisions in clause 4.7.2.3.
description: The MIME type of the body of the response. headers:
type: string Content-Type:
maximum: 1 description: The MIME type of the body of the response.
minimum: 1 type: string
Version: maximum: 1
description: The used API version. minimum: 1
type: string Version:
maximum: 1 description: The used API version.
minimum: 1 type: string
schema: maximum: 1
minimum: 1
Link:
description: >
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
type: string
maximum: 1
minimum: 0
schema:
type: array
items:
$ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator' $ref: 'definitions/VnfIndicator_def.yaml#/definitions/VnfIndicator'
400: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/400' } 400:
401: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/401' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
403: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/403' } 401:
404: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/404' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
405: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/405' } 403:
406: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/406' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
409: { $ref: 'responses/VNFIndicator_resp.yaml#/responses/409' } 404:
416: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/416' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
422: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/422' } 405:
500: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/500' } $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
503: { $ref: '../../responses/SOL002SOL003_resp.yaml#/responses/503' } 406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
429:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/429"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
/subscriptions: ###############################################################################
# Individual VNF indicator #
###############################################################################
/indicators/{vnfInstanceId}/{indicatorId}:
parameters: parameters:
- name: vnfInstanceId
in: path
description: >
Service Unavailable
Identifier of the VNF instance to which the VNF indicators applies.
NOTE: This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a
POST request creating a new VNF instance resource. It can also be retrieved from the "id" attribute in the payload body
of that response.