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"
info:
info:
version: "1.2.0"
title: "SOL002 - VNF Indicator interface"
description: >
VNF Indicator interface of ETSI NFV SOL002.
This API allows the EM/VNF to provide information on value changes of VNF related indicators.
VNF related indicators are declared in the VNFD.
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/bugzilla/buglist.cgi?component=Nfv-Openapis
license:
name: "ETSI Forge copyright notice"
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
......@@ -27,17 +24,16 @@ externalDocs:
basePath: /vnfind/v1
schemes:
schemes:
- http
- https
consumes:
consumes:
- application/json
produces:
produces:
- application/json
paths:
###############################################################################
# API Versions #
......@@ -56,472 +52,605 @@ 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
get:
summary: Query multiple indicators
description: Get a list of indicators. Support of attribute based filtering via query parameters.
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 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
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).
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 match the attribute-based filtering parameters,
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,
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' }
summary: Query multiple indicators
description: Get a list of indicators. Support of attribute based filtering via query parameters.
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 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
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).
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: >
200 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 match the attribute-based filtering parameters,
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,
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/404"
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}:
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.
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.
parameters:
- name: vnfInstanceId
in: path
description: >
Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query parameters.
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' }
Service Unavailable
/indicators/{vnfInstanceId}/{indicatorId}:
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.
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
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.
responses:
200:
description: >
OK
The VNF indicator was read successfully.
The response body shall contain the representation of the VNF indicator.
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
schema:
$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}:
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
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
get:
summary: Query multiple indicators related to a VNF instance.
description: >
Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query parameters.
parameters:
- name: indicatorId
in: path
- name: filter
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
required: true
- name: Version
- name: nextpage_opaque_marker
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
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
get:
summary: Read an inidividual VNF indicator related to a VNF instance.
description: >
Reads a VNF indicator.
responses:
200:
description: >
OK
The VNF indicator was read successfully.
The response body shall contain the representation of the VNF indicator.
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
schema:
responses:
200:
description: >
200 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' }
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/404"
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:
- 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.
type: string
required: true
- name: indicatorId
in: path