Commits (51)
# NFV SOL009 - OpenAPIs for the management of NFV-MANO # NFV SOL009 - OpenAPIs for the management of NFV-MANO
This repository contains OpenAPIs for ETSI GS NFV-SOL 009, RESTful protocols This repository contains OpenAPIs for ETSI GS NFV-SOL 009 v3.5.1, RESTful protocols
specification for the management of NFV-MANO. specification for the management of NFV-MANO functional entities.
**IMPORTANT: In case of discrepancies the published ETSI Group Specification takes precedence.** **IMPORTANT: These [OpenAPI](https://www.openapis.org/) specifications are in development phase. In case of discrepancies the published ETSI Group Specification takes precedence.**
More information at [NFV Solutions wiki](https://nfvwiki.etsi.org/index.php?title=NFV_Solutions). More information at [NFV Solutions wiki](https://nfvwiki.etsi.org/index.php?title=NFV_Solutions).
......
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - API version interface title: SOL009 - API version interface
description: |
description: >
SOL009 - API version Interface SOL009 - API version Interface
IMPORTANT: Please note that this file might IMPORTANT: Please note that this file might be not aligned to the current
be not aligned to the current version of the ETSI Group Specification it version of the ETSI Group Specification it refers to. In case of
refers to and has not been approved by the ETSI NFV ISG. 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
license: Please report bugs to https://forge.etsi.org/rep/nfv/SOL009/issues
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact: contact:
name: NFV-SOL WG name: NFV-SOL WG
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs: externalDocs:
description: ETSI GS NFV-SOL 009 V3.3.1 description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
paths: paths:
/nfvmanocim/api_versions: /nfvmanocim/api_versions:
......
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Configuration and Information Management Interface title: SOL009 - NFV-MANO Configuration and Information Management Interface
description: > description: |
SOL009 - NFV-MANO Configuration and Information Management Interface SOL009 - NFV-MANO Configuration and Information Management Interface
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 and has not been version of the ETSI Group Specification it refers to. In case of
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI discrepancies the published ETSI Group Specification takes precedence.
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/rep/nfv/SOL009/issues
contact:
name: NFV-SOL WG
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
contact: version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
name: NFV-SOL WG
externalDocs: externalDocs:
description: ETSI GS NFV-SOL 009 V3.3.1 description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers: servers:
- url: http://0.0.0.0/nfvmanocim/v1 - url: http://127.0.0.1/nfvmanocim/v2
description: > - url: https://127.0.0.1/nfvmanocim/v2
API HTTP Server
- url: https://0.0.0.0/nfvmanocim/v1
description: >
API HTTPS Server
paths: paths:
/api_versions: /api_versions:
...@@ -34,18 +33,15 @@ paths: ...@@ -34,18 +33,15 @@ paths:
/mano_entity: /mano_entity:
get: get:
description: > description: >
Retrives information about an NFV-MANO functional entity The GET method retrieves information about an NFV-MANO functional entity by reading the NFV-MANO entity resource.
by reading the NFV-MANO entity resource. See clause 5.5.3.3.2.
This method shall follow the provisions specified in the
tables 5.5.3.3.2-1 and 5.5.3.3.2-2 for URI query parameters,
request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/mano_entity.get.200" $ref: "#/components/responses/ManoEntity.Get.200"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -68,13 +64,7 @@ paths: ...@@ -68,13 +64,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
patch: patch:
description: > description: >
Modifies the NFV-MANO entity resource. The PATCH method modifies the NFV-MANO entity resource. See clause 5.5.3.3.4.
Changes to the various configuration and information
attributes are applied to the NFV-MANO functional entity,
and are reflected in the representation of this resource.
This method shall follow the provisions specified in the
tables 5.5.3.3.4-1 and 5.5.3.3.4-2 for URI query parameters,
request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -83,11 +73,11 @@ paths: ...@@ -83,11 +73,11 @@ paths:
$ref: "#/components/requestBodies/ModifyManoEntityRequest" $ref: "#/components/requestBodies/ModifyManoEntityRequest"
responses: responses:
"200": "200":
$ref: "#/components/responses/mano_entity.patch.200" $ref: "#/components/responses/ManoEntity.Patch.200"
"409": "409":
$ref: "#/components/responses/mano_entity.patch.409" $ref: "#/components/responses/ManoEntity.Patch.409"
"412": "412":
$ref: "#/components/responses/mano_entity.patch.412" $ref: "#/components/responses/ManoEntity.Patch.412"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -112,12 +102,8 @@ paths: ...@@ -112,12 +102,8 @@ paths:
/mano_entity/change_state: /mano_entity/change_state:
post: post:
description: > description: >
Requests to change the state of the NFV-MANO functional The POST method requests to change the state of the NFV-MANO functional entity application.
entity application. See clause 5.5.7.3.1.
This method shall follow the provisions specified in the tables
5.5.7.3.1-1 and 5.5.7.3.1-2 for URI query parameters, request and
response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -126,9 +112,9 @@ paths: ...@@ -126,9 +112,9 @@ paths:
$ref: "#/components/requestBodies/ChangeManoEntityStateRequest" $ref: "#/components/requestBodies/ChangeManoEntityStateRequest"
responses: responses:
"202": "202":
$ref: "#/components/responses/mano_entity-change_state.post.202" $ref: "#/components/responses/ChangeState.Post.202"
"409": "409":
$ref: "#/components/responses/mano_entity-change_state.post.409" $ref: "#/components/responses/ChangeState.Post.409"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -153,11 +139,8 @@ paths: ...@@ -153,11 +139,8 @@ paths:
/mano_entity/mano_interfaces: /mano_entity/mano_interfaces:
get: get:
description: > description: >
Queries information about multiple NFV-MANO service interfaces of The GET method queries information about multiple NFV-MANO service interfaces
the NFV-MANO functional entity. of the NFV-MANO functional entity. See clause 5.5.10.3.2.
This method shall follow the provisions specified in the tables
5.5.10.3.2-1 and 5.5.10.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "#/components/parameters/filter.ManoServiceInterface" - $ref: "#/components/parameters/filter.ManoServiceInterface"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
...@@ -170,9 +153,9 @@ paths: ...@@ -170,9 +153,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/mano_entity-mano_interfaces.get.200" $ref: "#/components/responses/ManoInterfaces.Get.200"
"400": "400":
$ref: "#/components/responses/mano_entity-mano_interfaces.get.400" $ref: "#/components/responses/ManoInterfaces.Get.400"
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -191,25 +174,22 @@ paths: ...@@ -191,25 +174,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
"504": "504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
/mano_entity/mano_interfaces/{manoServiceInterfaceId}: /mano_entity/mano_interfaces/{manoServiceInterfaceId}:
parameters: parameters:
- $ref: "#/components/parameters/manoServiceInterfaceId" - $ref: "#/components/parameters/manoServiceInterfaceId"
get: get:
description: > description: >
retrieves information about an NFV-MANO service interface of the The GET method retrieves information about an NFV-MANO service interface of the producer
producer NFV-MANO functional entity by reading an "Individual NFV-MANO functional entity by reading an "Individual NFV-MANO service interface" resource.
NFV-MANO service interface" resource. See clause 5.5.11.3.2.
This method shall follow the provisions specified in the tables
5.5.11.3.2-1 and 5.5.11.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/mano_entity-mano_interface.get.200" $ref: "#/components/responses/IndividualManoInterface.Get.200"
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -230,16 +210,7 @@ paths: ...@@ -230,16 +210,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
patch: patch:
description: > description: >
Modifies an "Individual NFV-MANO service interface" resource. This method is used to modify an "Individual NFV-MANO service interface" resource. See clause 5.5.11.3.4.
Changes to the configurable parameters of the corresponding
NFV-MANO service interface are applied to the information managed
by the producer NFV-MANO functional entity and reflected in the
representation of this resource.
This method shall follow the provisions specified in the tables
5.5.11.3.4-1 and 5.5.11.3.4-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -248,11 +219,11 @@ paths: ...@@ -248,11 +219,11 @@ paths:
$ref: "#/components/requestBodies/ModifyManoEnityInterfaceRequest" $ref: "#/components/requestBodies/ModifyManoEnityInterfaceRequest"
responses: responses:
"200": "200":
$ref: "#/components/responses/mano_entity-mano_interface.patch.200" $ref: "#/components/responses/IndividualManoInterface.Patch.200"
"409": "409":
$ref: "#/components/responses/mano_entity-mano_interface.patch.409" $ref: "#/components/responses/IndividualManoInterface.Patch.409"
"412": "412":
$ref: "#/components/responses/mano_entity-mano_interface.patch.412" $ref: "#/components/responses/IndividualManoInterface.Patch.412"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -279,12 +250,8 @@ paths: ...@@ -279,12 +250,8 @@ paths:
- $ref: "#/components/parameters/manoServiceInterfaceId" - $ref: "#/components/parameters/manoServiceInterfaceId"
post: post:
description: > description: >
Requests to change the state of the NFV-MANO service interface The POST method requests to change the state of the NFV-MANO service interface
produced by the NFV-MANO functional entity. produced by the NFV-MANO functional entity. See clause 5.5.12.3.1.
This method shall follow the provisions specified in the tables
5.5.12.3.1-1 and 5.5.12.3.1-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -293,9 +260,9 @@ paths: ...@@ -293,9 +260,9 @@ paths:
$ref: "#/components/requestBodies/ChangeManoEntityInterfaceStateRequest" $ref: "#/components/requestBodies/ChangeManoEntityInterfaceStateRequest"
responses: responses:
"202": "202":
$ref: "#/components/responses/mano_entity-mano_interface-change_state.post.202" $ref: "#/components/responses/ManoInterfaceChangeState.Post.202"
"409": "409":
$ref: "#/components/responses/mano_entity-mano_interface-change_state.post.409" $ref: "#/components/responses/ManoInterfaceChangeState.Post.409"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -320,11 +287,7 @@ paths: ...@@ -320,11 +287,7 @@ paths:
/subscriptions: /subscriptions:
post: post:
description: > description: >
Creates a new subscription. The POST method creates a new subscription. See clause 5.5.4.3.1.
This method shall follow the provisions specified in the tables
5.5.4.3.1-1 and 5.5.4.3.1-2 for URI query parameters, request and
response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -333,9 +296,11 @@ paths: ...@@ -333,9 +296,11 @@ paths:
$ref: "#/components/requestBodies/CimSubscriptionRequest" $ref: "#/components/requestBodies/CimSubscriptionRequest"
responses: responses:
"201": "201":
$ref: "#/components/responses/subscriptions.post.201" $ref: "#/components/responses/Subscriptions.Post.201"
"303": "303":
$ref: "#/components/responses/subscriptions.post.303" $ref: "#/components/responses/Subscriptions.Post.303"
"422":
$ref: "#/components/responses/Subscriptions.Post.422"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -348,8 +313,6 @@ paths: ...@@ -348,8 +313,6 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/405 $ref: ../components/SOL009_resp.yaml#/components/responses/405
"406": "406":
$ref: ../components/SOL009_resp.yaml#/components/responses/406 $ref: ../components/SOL009_resp.yaml#/components/responses/406
"422":
$ref: ../components/SOL009_resp.yaml#/components/responses/422
"500": "500":
$ref: ../components/SOL009_resp.yaml#/components/responses/500 $ref: ../components/SOL009_resp.yaml#/components/responses/500
"503": "503":
...@@ -358,13 +321,9 @@ paths: ...@@ -358,13 +321,9 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
get: get:
description: > description: >
queries the list of active subscriptions of the API consumer that The GET method queries the list of active subscriptions of the API consumer that
invokes the method. It can be used, e.g., for resynchronization invokes the method. It can be used, e.g. for resynchronization after error situations.
after error situations. See clause 5.5.4.3.2.
This method shall follow the provisions specified in the tables
5.5.4.3.2-1 and 5.5.4.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "#/components/parameters/filter.CimSubscription" - $ref: "#/components/parameters/filter.CimSubscription"
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
...@@ -373,9 +332,9 @@ paths: ...@@ -373,9 +332,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/subscriptions.get.200" $ref: "#/components/responses/Subscriptions.Get.200"
"400": "400":
$ref: "#/components/responses/subscriptions.get.400" $ref: "#/components/responses/Subscriptions.Get.400"
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -400,19 +359,15 @@ paths: ...@@ -400,19 +359,15 @@ paths:
- $ref: "#/components/parameters/subscriptionId" - $ref: "#/components/parameters/subscriptionId"
get: get:
description: > description: >
Retrieves information about a subscription by reading an "Individual The GET method retrieves information about a subscription by reading an "Individual subscription" resource.
subscription" resource. See clause 5.5.5.3.2.
This method shall follow the provisions specified in the tables
5.5.5.3.2-1 and 5.5.5.3.2-2 for URI query parameters, request and
response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/subscription.get.200" $ref: "#/components/responses/Subscription.Get.200"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -435,18 +390,14 @@ paths: ...@@ -435,18 +390,14 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
delete: delete:
description: > description: >
Terminates an individual subscription. The DELETE method terminates an individual subscription. See clause 5.5.5.3.5.
This method shall follow the provisions specified in the tables
5.5.5.3.5-1 and 5.5.5.3.5-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: "#/components/responses/subscription.delete.204" $ref: "#/components/responses/Subscription.Delete.204"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -472,11 +423,7 @@ paths: ...@@ -472,11 +423,7 @@ paths:
get: get:
description: > description: >
The API consumer can use the GET method to query status information The API consumer can use the GET method to query status information
about multiple change state operation occurrences. about multiple change state operation occurrences. See clause 5.5.8.3.2.
This method shall follow the provisions specified in the tables
5.5.8.3.2-1 and 5.5.8.3.2-2 for URI query parameters, request and
response data structures, and response codes.
parameters: parameters:
- $ref: "#/components/parameters/filter.ChangeStateOpOcc" - $ref: "#/components/parameters/filter.ChangeStateOpOcc"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
...@@ -489,9 +436,9 @@ paths: ...@@ -489,9 +436,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/change_state_ops.get.200" $ref: "#/components/responses/ChangeStateOpOcc.Get.200"
"400": "400":
$ref: "#/components/responses/change_state_ops.get.400" $ref: "#/components/responses/ChangeStateOpOcc.Get.400"
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -518,18 +465,14 @@ paths: ...@@ -518,18 +465,14 @@ paths:
description: > description: >
The API consumer can use the GET method to retrieve status The API consumer can use the GET method to retrieve status
information about a change state operation occurrence by reading information about a change state operation occurrence by reading
an "Individual change state operation occurrence" resource. an "Individual change state operation occurrence" resource. See clause 5.5.9.3.2.
This method shall follow the provisions specified in the tables
5.5.9.3.2-1 and 5.5.9.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/change_state_op.get.200" $ref: "#/components/responses/IndividualChangeStateOpOcc.Get.200"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -554,13 +497,9 @@ paths: ...@@ -554,13 +497,9 @@ paths:
/peer_entities: /peer_entities:
post: post:
description: > description: >
Creates in the producer NFV-MANO functional entity a new peer The POST method creates in the producer NFV-MANO functional entity a new peer
entity resource which contains configuration and information entity resource which contains configuration and information with regards to the
with regards to the peer functional entity. peer functional entity. See clause 5.5.13.3.1
This method shall follow the provisions specified in the tables
5.5.13.3.1-1 and 5.5.13.3.1-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -569,7 +508,7 @@ paths: ...@@ -569,7 +508,7 @@ paths:
$ref: "#/components/requestBodies/CreatePeerEntityRequest" $ref: "#/components/requestBodies/CreatePeerEntityRequest"
responses: responses:
"201": "201":
$ref: "#/components/responses/peer_entities.post.201" $ref: "#/components/responses/PeerEntities.Post.201"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -592,12 +531,8 @@ paths: ...@@ -592,12 +531,8 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
get: get:
description: > description: >
Queries information and configuration in the producer NFV-MANO The GET method queries information and configuration in the producer NFV-MANO functional
functional entity with regards to multiple peer entities. entity with regards to multiple peer entities. See clause 5.5.13.3.2.
This method shall follow the provisions specified in the tables
5.5.13.3.2-1 and 5.5.13.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "#/components/parameters/filter.PeerEntity" - $ref: "#/components/parameters/filter.PeerEntity"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
...@@ -610,9 +545,9 @@ paths: ...@@ -610,9 +545,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/peer_entities.get.200" $ref: "#/components/responses/PeerEntities.Get.200"
"400": "400":
$ref: "#/components/responses/peer_entities.get.400" $ref: "#/components/responses/PeerEntities.Get.400"
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -637,20 +572,15 @@ paths: ...@@ -637,20 +572,15 @@ paths:
- $ref: "#/components/parameters/peerEntityId" - $ref: "#/components/parameters/peerEntityId"
get: get:
description: > description: >
Retrieves information and configuration hold in the producer NFV-MANO The GET method retrieves information and configuration hold in the producer NFV-MANO functional entity
functional entity with regards to a peer entity by reading an individual with regards to a peer entity by reading an individual peer entity resource. See clause 5.5.14.3.2.
peer entity resource.
This method shall follow the provisions specified in the tables
5.5.14.3.2-1 and 5.5.14.3.2-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/peer_entitie.get.200" $ref: "#/components/responses/IndividualPeerEntity.Get.200"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -673,18 +603,9 @@ paths: ...@@ -673,18 +603,9 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
patch: patch:
description: > description: >
Modifies configuration and information of the producer NFV-MANO This method modifies configuration and information of the producer NFV-MANO functional
functional entity with regards to a peer functional entity by entity with regards to a peer functional entity by updating the corresponding
updating the corresponding "Individual peer entity" resource. "Individual peer entity" resource. See clause 5.5.14.3.4.
Changes to the configurable parameters of the corresponding peer
entity are applied to the information managed by the producer
NFV-MANO functional entity and reflected in the representation
of this resource.
This method shall follow the provisions specified in the tables
5.5.14.3.4-1 and 5.5.14.3.4-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -693,11 +614,11 @@ paths: ...@@ -693,11 +614,11 @@ paths:
$ref: "#/components/requestBodies/ModifyPeerEntityRequest" $ref: "#/components/requestBodies/ModifyPeerEntityRequest"
responses: responses:
"200": "200":
$ref: "#/components/responses/peer_entitie.patch.200" $ref: "#/components/responses/IndividualPeerEntity.Patch.200"
"409": "409":
$ref: "#/components/responses/peer_entitie.patch.409" $ref: "#/components/responses/IndividualPeerEntity.Patch.409"
"412": "412":
$ref: "#/components/responses/peer_entitie.patch.412" $ref: "#/components/responses/IndividualPeerEntity.Patch.412"
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -718,29 +639,21 @@ paths: ...@@ -718,29 +639,21 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
delete: delete:
description: > description: >
Ddeletes an individual peer entity resource. By deleting such This method deletes an individual peer entity resource. By deleting such a resource in the
a resource in the producer NFV-MANO functional entity representing producer NFV-MANO functional entity representing a peer NFV-MANO entity, the configuration
a peer NFV-MANO entity, the configuration and information with and information with regards to such peer entity is deleted. Consequently, the peering relationship
regards to such peer entity is deleted. Consequently, the peering between the producer NFV-MANO functional entity and the peer entity is terminated, i.e.
relationship between the producer NFV-MANO functional entity and the producer NFV-MANO functional entity does not have the necessary information to
the peer entity is terminated, i.e., the producer NFV-MANO functional communicate/interact with the peer entity. See clause 5.5.14.3.5.
entity does not have the necessary information to communicate/interact
with the peer entity.
This method shall follow the provisions specified in the tables
5.5.14.3.5-1 and 5.5.14.3.5-2 for URI query parameters, request
and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: "#/components/responses/peer_entitie.delete.204" $ref: "#/components/responses/IndividualPeerEntity.Delete.204"
"409": "409":
$ref: "#/components/responses/peer_entitie.delete.409" $ref: "#/components/responses/IndividualPeerEntity.Delete.409"
"412":
$ref: "#/components/responses/peer_entitie.delete.412"
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -751,6 +664,8 @@ paths: ...@@ -751,6 +664,8 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/405 $ref: ../components/SOL009_resp.yaml#/components/responses/405
"406": "406":
$ref: ../components/SOL009_resp.yaml#/components/responses/406 $ref: ../components/SOL009_resp.yaml#/components/responses/406
"412":
$ref: ../components/SOL009_resp.yaml#/components/responses/412
"422": "422":
$ref: ../components/SOL009_resp.yaml#/components/responses/422 $ref: ../components/SOL009_resp.yaml#/components/responses/422
"500": "500":
...@@ -765,6 +680,13 @@ components: ...@@ -765,6 +680,13 @@ components:
ManoEntity: ManoEntity:
description: > description: >
This type represents an NFV-MANO functional entity. This type represents an NFV-MANO functional entity.
* NOTE 1: It shall be present when "type" attribute is "NFVO", and it shall be absent in any other case.
* NOTE 2: It shall be present when "type" attribute is "VNFM", and it shall be absent in any other case.
* NOTE 3: It shall be present when "type" attribute is "VIM", and it shall be absent in any other case.
* NOTE 4: The information about the NFV-MANO services offered by a specific type of NFV-MANO functional
entity is specified by the manoServices attribute.
* NOTE 5: It is optional for the API producer to support the "manoEntityComponents" attribute.
* NOTE 6: It shall be present when "type" attribute is "WIM", and it shall be absent in any other case.
type: object type: object
required: required:
- id - id
...@@ -808,14 +730,11 @@ components: ...@@ -808,14 +730,11 @@ components:
softwareVersion: softwareVersion:
description: > description: >
The version of the software of the NFV-MANO functional entity. The version of the software of the NFV-MANO functional entity.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
manoEntityComponents: manoEntityComponents:
description: > description: >
The deployed NFV-MANO functional entity components which realize the The deployed NFV-MANO functional entity components which realize the
NFV-MANO functional entity. NFV-MANO functional entity. See note 5.
NOTE: It is optional for the API producer to support the "manoEntityComponents"
attribute.
type: array type: array
items: items:
$ref: "#/components/schemas/ManoEntityComponent" $ref: "#/components/schemas/ManoEntityComponent"
...@@ -857,35 +776,20 @@ components: ...@@ -857,35 +776,20 @@ components:
$ref: "#/components/schemas/UsageStateEnumType" $ref: "#/components/schemas/UsageStateEnumType"
nfvoSpecificInfo: nfvoSpecificInfo:
description: > description: >
The information specific to an NFVO entity. The information specific to an NFVO entity. See note 1 and not 4.
NOTE: It shall be present when "type" attribute is "NFVO", and it
shall be absent in any other case.
NOTE: The information about the NFV-MANO services offered by a
specific type of NFV-MANO functional entity is specified by the
manoServices attribute.
$ref: "#/components/schemas/NfvoSpecificInfo" $ref: "#/components/schemas/NfvoSpecificInfo"
vnfmSpecificInfo: vnfmSpecificInfo:
description: > description: >
The information specific to a VNFM entity. The information specific to a VNFM entity. See note 2 and not 4.
NOTE: It shall be present when "type" attribute is "VNFM", and
it shall be absent in any other case.
NOTE: The information about the NFV-MANO services offered by a
specific type of NFV-MANO functional entity is specified by the
manoServices attribute.
$ref: "#/components/schemas/VnfmSpecificInfo" $ref: "#/components/schemas/VnfmSpecificInfo"
vimSpecificInfo: vimSpecificInfo:
description: > description: >
The information specific to an VIM entity. The information specific to an VIM entity. See note 3 and not 4.
NOTE: It shall be present when "type" attribute is "VIM", and
it shall be absent in any other case.
NOTE: The information about the NFV-MANO services offered by a
specific type of NFV-MANO functional entity is specified by the
manoServices attribute.
$ref: "#/components/schemas/VimSpecificInfo" $ref: "#/components/schemas/VimSpecificInfo"
wimSpecificInfo:
description: >
The information specific to a WIM entity. See notes 4 and note 6.
$ref: "#/components/schemas/WimSpecificInfo"
_links: _links:
description: > description: >
Links to resources related to this resource. Links to resources related to this resource.
...@@ -916,7 +820,9 @@ components: ...@@ -916,7 +820,9 @@ components:
ManoConfigModificationRequest: ManoConfigModificationRequest:
description: > description: >
This type represents attribute modifications for configuration parameters This type represents attribute modifications for configuration parameters
of an NFV-MANO functional entity. of an NFV-MANO functional entity.
* NOTE: At least one of these attributes shall be provided if requesting a modification
of the NFV-MANO service identified by "id".
type: object type: object
properties: properties:
name: name:
...@@ -929,19 +835,12 @@ components: ...@@ -929,19 +835,12 @@ components:
type: string type: string
clockSyncs: clockSyncs:
description: > description: >
New content of certain entries in the "clockSyncs" attribute array in Modifications of the "clockSyncs" attribute in the "ManoEntityConfigurableParams".
the "ManoEntityConfigurableParams", as defined below this table. If present, these modifications shall be applied according to the rules of JSON Merge PATCH
type: array (see IETF RFC 7396).
items: type: object
additionalProperties:
$ref: "#/components/schemas/ClockSyncInfo" $ref: "#/components/schemas/ClockSyncInfo"
clockSyncsDeleteIds:
description: >
List of identifiers entries to be deleted from the "clockSyncs"
attribute array in the "ManoEntityConfigurableParams", as defined
below this table.
type: array
items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
defaultLogCompileBySizeValue: defaultLogCompileBySizeValue:
description: > description: >
New value of the "defaultLogCompileBySizeValue" attribute in the New value of the "defaultLogCompileBySizeValue" attribute in the
...@@ -956,9 +855,25 @@ components: ...@@ -956,9 +855,25 @@ components:
description: > description: >
New content of certain entries in the "manoServices" attribute array New content of certain entries in the "manoServices" attribute array
in the "ManoEntity", as defined below this table. in the "ManoEntity", as defined below this table.
The following provisions shall apply when modifying an attribute that is an array of structured
"manoServiceModifications".
Assumptions:
A) "oldList" is the array to be modified, "newList" is the array that contains the changes.
B) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList".
C) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that has the same
content of "id" attribute as the "newEntry".
D) In any array of objects, the content of "id" is unique (i.e. there are no two entries
with the same content of "id").
Provisions:
1) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList", the values of
the sub-attributes of "oldEntry" shall be replaced by the value of the sub-attributes in the "newEntry".
2) If the "newEntry" in "newList" has no corresponding "oldEntry" in "oldList" (i.e. the "id" is
not found), the modification operation will fail as a whole and an error message shall be raised.
type: array type: array
items: items:
type: object type: object
required:
- id
properties: properties:
id: id:
description: > description: >
...@@ -966,20 +881,12 @@ components: ...@@ -966,20 +881,12 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
name: name:
description: > description: >
New value for the "name" attribute in the "ManoService". New value for the "name" attribute in the "ManoService". See note.
NOTE: At least one of these attributes shall be provided if requesting
a modification of the NFV-MANO service identified by "id".
type: string type: string
description: description:
description: > description: >
New value for the "description" attribute in the "ManoService". New value for the "description" attribute in the "ManoService". See note.
NOTE: At least one of these attributes shall be provided if requesting
a modification of the NFV-MANO service identified by "id".
type: string type: string
required:
- id
ManoConfigModifications: ManoConfigModifications:
description: > description: >
...@@ -999,22 +906,13 @@ components: ...@@ -999,22 +906,13 @@ components:
If present, this attribute signals modifications of the "description" If present, this attribute signals modifications of the "description"
attribute in "ManoEntity", as defined in clause 5.6.2.3. attribute in "ManoEntity", as defined in clause 5.6.2.3.
type: string type: string
clockSyncs: clockSyncs:
description: > description: >
If present, this attribute signals modifications of the "clockSyncs" If present, this attribute signals modifications of the "clockSyncs" attribute in
attribute in "ManoEntityConfigurableParams", as defined in "ManoEntityConfigurableParams", as defined in clause 5.6.2.3.
clause 5.6.2.3. type: object
type: array additionalProperties:
items:
$ref: "#/components/schemas/ClockSyncInfo" $ref: "#/components/schemas/ClockSyncInfo"
clockSyncsDeleteIds:
description: >
If present, this attribute signals modifications of certain entries in
"clockSyncs" attribute in "ManoEntityConfigurableParams", as defined
in clause 5.6.2.3.
type: array
items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
defaultLogCompileBySizeValue: defaultLogCompileBySizeValue:
description: > description: >
If present, this attribute signals modifications of the If present, this attribute signals modifications of the
...@@ -1057,6 +955,8 @@ components: ...@@ -1057,6 +955,8 @@ components:
This type represents a subscription request related to notifications This type represents a subscription request related to notifications
about NFV-MANO configuration and information management changes. about NFV-MANO configuration and information management changes.
type: object type: object
required:
- callbackUri
properties: properties:
filter: filter:
description: > description: >
...@@ -1077,14 +977,16 @@ components: ...@@ -1077,14 +977,16 @@ components:
This attribute shall only be present if the subscriber requires This attribute shall only be present if the subscriber requires
authorization of notifications. authorization of notifications.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication" $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
required:
- callbackUri
CimSubscription: CimSubscription:
description: > description: >
This type represents a subscription related to notifications about This type represents a subscription related to notifications about
NFV-MANO configuration and information management changes NFV-MANO configuration and information management changes
type: object type: object
required:
- id
- callbackUri
- _links
properties: properties:
id: id:
description: > description: >
...@@ -1111,23 +1013,22 @@ components: ...@@ -1111,23 +1013,22 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
required: required:
- self - self
required:
- id
- callbackUri
- _links
ChangeStateRequest: ChangeStateRequest:
description: > description: >
This type represents request parameters for changing the state of a managed entity. This type represents request parameters for changing the state of a managed entity.
* NOTE 1: In the present document version, a request shall only include an operational state change
(attribute "operationalStateChange") or an administrative state change request (attribute
"administrativeStateChange"), but not both.
* NOTE 2: The "stopType" shall only be provided when the "operationalStateAction" attribute is equal
to "STOP" or "RESTART". The "gracefulStopTimeout" shall be absent when the "stopType" attribute
is equal to "FORCEFUL", and may be provided otherwise.
type: object type: object
properties: properties:
operationalStateChange: operationalStateChange:
description: > description: >
A change of operational state. Shall be present if the state change request A change of operational state. Shall be present if the state change request
refers to the operational state. refers to the operational state. See note 1.
NOTE: In the present document version, a request shall only include an
operational state change (attribute "operationalStateChange") or an
administrative state change request (attribute "administrativeStateChange"),
but not both. but not both.
type: object type: object
properties: properties:
...@@ -1139,47 +1040,39 @@ components: ...@@ -1139,47 +1040,39 @@ components:
$ref: "#/components/schemas/ChangeOperationalStateEnumType" $ref: "#/components/schemas/ChangeOperationalStateEnumType"
stopType: stopType:
description: > description: >
It signals the type of stop. It signals the type of stop. See note 2.
NOTE: The "stopType" shall only be provided when the "operationalStateAction"
attribute is equal to "STOP" or "RESTART". The "gracefulStopTimeout" shall
be absent when the "stopType" attribute is equal to "FORCEFUL", and may
be provided otherwise.
$ref: "#/components/schemas/StopEnumType" $ref: "#/components/schemas/StopEnumType"
gracefulStopTimeout: gracefulStopTimeout:
description: > description: >
The time internal (in seconds) to wait for the entity to be taken out The time internal (in seconds) to wait for the entity to be taken out
of service during graceful stop. of service during graceful stop. See note 2.
NOTE: The "stopType" shall only be provided when the "operationalStateAction"
attribute is equal to "STOP" or "RESTART". The "gracefulStopTimeout" shall
be absent when the "stopType" attribute is equal to "FORCEFUL", and may
be provided otherwise.
type: integer type: integer
required: required:
- operationalStateAction - operationalStateAction
administrativeStateChange: administrativeStateChange:
description: > description: >
A change of administrative state. Shall be present if the state change request A change of administrative state. Shall be present if the state change request
refers to the administrative state. refers to the administrative state. See note 1.
NOTE: In the present document version, a request shall only include an
operational state change (attribute "operationalStateChange") or an
administrative state change request (attribute "administrativeStateChange"),
but not both. but not both.
type: object type: object
required:
- administrativeStateAction
properties: properties:
administrativeStateAction: administrativeStateAction:
description: > description: >
The desired administrative state to change the managed object to. The desired administrative state to change the managed object to.
$ref: "#/components/schemas/ChangeAdministrativeStateEnumType" $ref: "#/components/schemas/ChangeAdministrativeStateEnumType"
required:
- administrativeStateAction
ChangeStateOpOcc: ChangeStateOpOcc:
description: > description: >
This type represents a Change state operation occurrence. This type represents a Change state operation occurrence.
type: object type: object
required:
- id
- operationState
- stateEnteredTime
- startTime
- managedObjectRef
properties: properties:
id: id:
description: > description: >
...@@ -1229,18 +1122,34 @@ components: ...@@ -1229,18 +1122,34 @@ components:
to reading an individual resource, and may be present according to the chosen 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 attribute selector parameter if this data type is returned in a response to
a query of a container resource. a query of a container resource.
required:
- id
- operationState
- stateEnteredTime
- startTime
- managedObjectRef
ManoServiceInterface: ManoServiceInterface:
description: > description: >
This type represents an individual NFV-MANO service interface produced by This type represents an individual NFV-MANO service interface produced by
an NFV-MANO functional entity. an NFV-MANO functional entity.
* NOTE 1: The information to be provided in this attribute shall relate to the specification and
version of the specification. For instance, "ETSI GS NFV-SOL 003 (V2.4.1)".
* NOTE 2: If this attribute is not present, the value of this parameter is undefined. Overload is
handled by the error handling schemes defined by the applicable API specification.
* NOTE 3: Due to the security sensitive information associated to the attribute, based on access
control policies, the API consumer might have read only, write only, read/write, or no access
at all to the attribute's value. In case the API consumer is not allowed to read the value of
the security sensitive attribute, the attribute shall be omitted when the information is to be
provided in a response message, and shall be provided otherwise. In case the API consumer is
not allowed to modify the value of the security sensitive attribute, and the modification request
includes new attribute values, the whole modification request shall be rejected, and proper
error information returned.
type: object type: object
required:
- id
- name
- type
- standardVersion
- providerSpecificApiVersion
- apiVersion
- apiEndpoint
- supportedOperations
- interfaceState
properties: properties:
id: id:
description: > description: >
...@@ -1259,11 +1168,7 @@ components: ...@@ -1259,11 +1168,7 @@ components:
type: string type: string
standardVersion: standardVersion:
description: > description: >
Version of the standard the interface is compliant to. Version of the standard the interface is compliant to. See note 1.
NOTE 1: The information to be provided in this attribute shall relate to
the specification and version of the specification. For instance,
"ETSI GS NFV-SOL 003 (V2.4.1)".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
providerSpecificApiVersion: providerSpecificApiVersion:
description: > description: >
...@@ -1317,11 +1222,7 @@ components: ...@@ -1317,11 +1222,7 @@ components:
- apiUri - apiUri
maxConcurrentIntOpNumber: maxConcurrentIntOpNumber:
description: > description: >
Maximum number of concurrent operation requests supported on this interface. Maximum number of concurrent operation requests supported on this interface. See note 2.
NOTE: If this attribute is not present, the value of this parameter
is undefined. Overload is handled by the error handling schemes defined
by the applicable API specification.
type: integer type: integer
supportedOperations: supportedOperations:
description: > description: >
...@@ -1336,11 +1237,7 @@ components: ...@@ -1336,11 +1237,7 @@ components:
type: string type: string
maxConcurrentOpNumber: maxConcurrentOpNumber:
description: > description: >
Maximum number of concurrent requests supported by the interface operation. Maximum number of concurrent requests supported by the interface operation. See note 2.
NOTE: If this attribute is not present, the value of this parameter
is undefined. Overload is handled by the error handling schemes defined
by the applicable API specification.
type: integer type: integer
required: required:
- operationName - operationName
...@@ -1369,18 +1266,7 @@ components: ...@@ -1369,18 +1266,7 @@ components:
description: > description: >
Security related information. Security related information.
This attribute can be modified with the PATCH method. This attribute can be modified with the PATCH method. See note 3.
NOTE: Due to the security sensitive information associated to the attribute,
based on access control policies, the API consumer might have read only,
write only, read/write, or no access at all to the attribute’s value.
In case the API consumer is not allowed to read the value of the security
sensitive attribute, the attribute shall be omitted when the information
is to be provided in a response message, and shall be provided otherwise.
In case the API consumer is not allowed to modify the value of the security
sensitive attribute, and the modification request includes new attribute
values, the whole modification request shall be rejected, and proper error
information returned.
$ref: "#/components/schemas/ServerInterfaceSecurityInfo" $ref: "#/components/schemas/ServerInterfaceSecurityInfo"
metadata: metadata:
description: > description: >
...@@ -1389,60 +1275,39 @@ components: ...@@ -1389,60 +1275,39 @@ components:
These attributes can be created, modified or removed with the PATCH These attributes can be created, modified or removed with the PATCH
method. method.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
required:
- id
- name
- type
- standardVersion
- providerSpecificApiVersion
- apiVersion
- apiEndpoint
- supportedOperations
- interfaceState
ManoServiceInterfaceModificationRequest: ManoServiceInterfaceModificationRequest:
description: > description: >
This type represents attribute modifications for configuration parameters of This type represents attribute modifications for configuration parameters of
an NFV-MANO service interface of the producer NFV-MANO functional entity. an NFV-MANO service interface of the producer NFV-MANO functional entity.
* NOTE 1: Changing the name does not change the corresponding standardized API name in the resource URI
(refer to "{apiName}" defined in clause 4.1 of ETSI GS NFV-SOL 013).
* NOTE 2: The change of apiRoot or apiUri on an enabled and in use API may be service disruptive. Also,
that change invalidates any related URI that might have been cached at API consumers.
* NOTE 3: Due to the security sensitive information associated to the attribute, based on access control
policies, the API consumer might have read only, write only, read/write, or no access at all
to the attribute's value. In case the API consumer is not allowed to modify the value of the
security sensitive attribute, and the modification request includes new attribute values,
the whole modification request shall be rejected, and proper error information returned.
type: object type: object
properties: properties:
name: name:
description: > description: >
New value of the "name" attribute in "ManoServiceInterface". New value of the "name" attribute in "ManoServiceInterface". See note 1.
NOTE: Changing the name does not change the corresponding standardized
API name in the resource URI (refer to "{apiName}" defined in clause 4.1
of ETSI GS NFV-SOL 013).
type: string type: string
apiRoot: apiRoot:
description: > description: >
New value of the "apiRoot" attribute in "ManoServiceInterface". New value of the "apiRoot" attribute in "ManoServiceInterface". See note 2.
NOTE: The change of apiRoot or apiUri on an enabled and in use API may
be service disruptive. Also, that change invalidates any related URI that
might have been cached at API consumers.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
apiUri: apiUri:
description: > description: >
New value of the "apiUri" attribute in "ManoServiceInterface". New value of the "apiUri" attribute in "ManoServiceInterface". See note 2.
NOTE: The change of apiRoot or apiUri on an enabled and in use API may
be service disruptive. Also, that change invalidates any related URI that
might have been cached at API consumers.
Shall not be provided if a change of "apiRoot" is present in the request. Shall not be provided if a change of "apiRoot" is present in the request.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
securityInfo: securityInfo:
description: > description: >
New value of the "securityInfo" attribute in "ManoServiceInterface". New value of the "securityInfo" attribute in "ManoServiceInterface". See note 3.
NOTE: Due to the security sensitive information associated to the attribute,
based on access control policies, the API consumer might have read only,
write only, read/write, or no access at all to the attribute’s value.
In case the API consumer is not allowed to modify the value of the security
sensitive attribute, and the modification request includes new attribute
values, the whole modification request shall be rejected, and proper error
information returned.
$ref: "#/components/schemas/ServerInterfaceSecurityInfo" $ref: "#/components/schemas/ServerInterfaceSecurityInfo"
metadata: metadata:
description: > description: >
...@@ -1458,7 +1323,12 @@ components: ...@@ -1458,7 +1323,12 @@ components:
be included consist of those requested to be modified explicitly in the be included consist of those requested to be modified explicitly in the
"ManoServiceInterfaceModificationRequest" data structure. If applicable, "ManoServiceInterfaceModificationRequest" data structure. If applicable,
additional attributes of the "ManoServiceInterface" data structure that additional attributes of the "ManoServiceInterface" data structure that
were modified implicitly shall also be provided. were modified implicitly shall also be provided.
* NOTE: Due to the security sensitive information associated to the attribute, based on access control
policies, the API consumer might have read only, write only, read/write, or no access at all
to the attribute's value. In case the API consumer is not allowed to read the value of the security
sensitive attribute, the attribute shall be omitted when the information is to be provided
in a response message.
type: object type: object
properties: properties:
name: name:
...@@ -1479,14 +1349,7 @@ components: ...@@ -1479,14 +1349,7 @@ components:
securityInfo: securityInfo:
description: > description: >
If present, this attribute signals modifications of the "securityInfo" If present, this attribute signals modifications of the "securityInfo"
attribute in "ManoServiceInterface", as defined in clause 5.6.2.11. attribute in "ManoServiceInterface", as defined in clause 5.6.2.11. See note.
NOTE: Due to the security sensitive information associated to the attribute,
based on access control policies, the API consumer might have read only,
write only, read/write, or no access at all to the attribute’s value.
In case the API consumer is not allowed to read the value of the security
sensitive attribute, the attribute shall be omitted when the information
is to be provided in a response message.
$ref: "#/components/schemas/ServerInterfaceSecurityInfo" $ref: "#/components/schemas/ServerInterfaceSecurityInfo"
metadata: metadata:
description: > description: >
...@@ -1496,17 +1359,19 @@ components: ...@@ -1496,17 +1359,19 @@ components:
CreatePeerEntityRequest: CreatePeerEntityRequest:
description: > description: >
This type represents request parameters for the creation of a new peer entity resource. This type represents request parameters for the creation of a new peer entity resource.
* NOTE: The value of the "peerEntityId" attribute is the same as the value of the "id" attribute
in the "ManoEntity" of the corresponding NFV-MANO functional entity that acts as peer entity,
and shall follow the uniqueness requirements set out in clause 5.6.2.2 for the "id" attribute.
type: object type: object
required:
- peerEntityId
- name
- type
properties: properties:
peerEntityId: peerEntityId:
description: > description: >
Identifier of the peer functional entity. Identifier of the peer functional entity. See note.
NOTE: The value of the "peerEntityId" attribute is the same as the value of
the "id" attribute in the "ManoEntity" of the corresponding NFV-MANO functional
entity that acts as peer entity, and shall follow the uniqueness requirements
set out in clause 5.6.2.2 for the "id" attribute.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
name: name:
description: > description: >
...@@ -1522,10 +1387,10 @@ components: ...@@ -1522,10 +1387,10 @@ components:
type: string type: string
consumedManoInterfaces: consumedManoInterfaces:
description: > description: >
Information of the interface consumed by the NFV-MANO functional entity Initial information of the interface consumed by the NFV-MANO functional entity
from the peer functional entity. from the peer functional entity.
type: array type: object
items: additionalProperties:
$ref: "#/components/schemas/ConsumedManoInterfaceInfo" $ref: "#/components/schemas/ConsumedManoInterfaceInfo"
peerEntityState: peerEntityState:
description: > description: >
...@@ -1543,15 +1408,22 @@ components: ...@@ -1543,15 +1408,22 @@ components:
required: required:
- operationalState - operationalState
- administrativeState - administrativeState
required:
- peerEntityId
- name
- type
PeerEntity: PeerEntity:
description: > description: >
This type represents an individual peer entity. This type represents an individual peer entity.
* NOTE 1: The value of the "peerEntityId" attribute is the same as the value of the "id" attribute in the
"ManoEntity" of the corresponding NFV-MANO functional entity that acts as peer entity, and shall
follow the uniqueness requirements set out in clause 5.6.2.2 for the "id" attribute.
* NOTE 2: ETSI GS NFV-IFA 031 [1] defines an additional attribute named "apiDiscoveryEndpoint" in the
PeerManoEntity. The modelling of this attribute is not specified in the present document version.
type: object type: object
required:
- id
- peerEntityId
- name
- type
- peerEntityState
properties: properties:
id: id:
description: > description: >
...@@ -1560,12 +1432,7 @@ components: ...@@ -1560,12 +1432,7 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
peerEntityId: peerEntityId:
description: > description: >
Identifier of the peer functional entity. Identifier of the peer functional entity. See note 1.
NOTE : The value of the "peerEntityId" attribute is the same as the value
of the "id" attribute in the "ManoEntity" of the corresponding NFV-MANO
functional entity that acts as peer entity, and shall follow the uniqueness
requirements set out in clause 5.6.2.2 for the "id" attribute.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
name: name:
description: > description: >
...@@ -1589,8 +1456,12 @@ components: ...@@ -1589,8 +1456,12 @@ components:
from the peer functional entity. from the peer functional entity.
This attribute can be modified with the PATCH method. This attribute can be modified with the PATCH method.
type: array
items: The keys of the map, each of which identifies information about a particular
consumed NFV-MANO interface, are managed by the API consumer and referenced
from other data structures via the "consumedManoInterfaceIds" attribute.
type: object
additionalProperties:
$ref: "#/components/schemas/ConsumedManoInterfaceInfo" $ref: "#/components/schemas/ConsumedManoInterfaceInfo"
peerEntityState: peerEntityState:
description: > description: >
...@@ -1609,17 +1480,16 @@ components: ...@@ -1609,17 +1480,16 @@ components:
required: required:
- operationalState - operationalState
- administrativeState - administrativeState
required:
- id
- peerEntityId
- name
- type
- peerEntityState
PeerEntityConfigModificationRequest: PeerEntityConfigModificationRequest:
description: > description: >
This type represents attribute modifications for configuration parameters This type represents attribute modifications for configuration parameters of a peer entity.
of a peer entity. * NOTE: Due to the security sensitive information contained within the attribute (refer to "securityInfo"
within the "ConsumedManoInterfaceInfo"), based on access control policies, the API consumer might have
read only, write only, read/write, or no access at all to the attribute's value. In case the
API consumer is not allowed to modify the value of the security sensitive attribute, and the
modification request includes new attribute values, the whole modification request shall be rejected,
and proper error information returned.
type: object type: object
properties: properties:
name: name:
...@@ -1633,27 +1503,14 @@ components: ...@@ -1633,27 +1503,14 @@ components:
type: string type: string
consumedManoInterfaces: consumedManoInterfaces:
description: > description: >
New content of certain entries in the "consumedManoInterfaces" attribute Modification of the "consumedManoInterfaces" attribute
array in the "PeerEntity", as defined below this table. in the "PeerEntity", as defined below this table.
NOTE: Due to the security sensitive information contained within the attribute If present, these modifications shall be applied according to the rules of
(refer to "securityInfo" within the "ConsumedManoInterfaceInfo"), based on JSON Merge PATCH (see IETF RFC 7396). See note.
access control policies, the API consumer might have read only, write only, type: object
read/write, or no access at all to the attribute’s value. In case the additionalProperties:
API consumer is not allowed to modify the value of the security sensitive
attribute, and the modification request includes new attribute values,
the whole modification request shall be rejected, and proper error information
returned.
type: array
items:
$ref: "#/components/schemas/ConsumedManoInterfaceInfo" $ref: "#/components/schemas/ConsumedManoInterfaceInfo"
consumedManoInterfaceDeleteIds:
description: >
List of identifiers entries to be deleted from the "consumedManoInterfaces"
attribute array in the " PeerEntity ", as defined below this table.
type: array
items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
operationalState: operationalState:
description: > description: >
New content of the "operationalState" attribute in the "peerEntityState" New content of the "operationalState" attribute in the "peerEntityState"
...@@ -1673,6 +1530,11 @@ components: ...@@ -1673,6 +1530,11 @@ components:
"PeerEntityConfigModificationRequest" data structure. If applicable, "PeerEntityConfigModificationRequest" data structure. If applicable,
additional attributes of the "PeerEntity" data structure that were additional attributes of the "PeerEntity" data structure that were
modified implicitly shall also be provided. modified implicitly shall also be provided.
* NOTE: Due to the security sensitive information contained within the attribute (refer to "securityInfo"
within the "ConsumedManoInterfaceInfo"), based on access control policies, the API consumer might have
read only, write only, read/write, or no access at all to the attribute's value. In case the
API consumer is not allowed to read the value of the security sensitive attribute, the attribute shall
be omitted when the information is to be provided in a response message.
type: object type: object
properties: properties:
name: name:
...@@ -1687,28 +1549,12 @@ components: ...@@ -1687,28 +1549,12 @@ components:
type: string type: string
consumedManoInterfaces: consumedManoInterfaces:
description: > description: >
If present, this attribute signals modifications of certain entries in If present, this attribute signals modifications of the
"consumedManoInterfaces" attribute in "PeerEntity", as defined in "consumedManoInterfaces" attribute in "PeerEntity", as defined in
clause 5.6.2.15. clause 5.6.2.15. See note.
type: object
NOTE: Due to the security sensitive information contained within the additionalProperties:
attribute (refer to "securityInfo" within the "ConsumedManoInterfaceInfo"),
based on access control policies, the API consumer might have read only,
write only, read/write, or no access at all to the attribute’s value.
In case the API consumer is not allowed to read the value of the security
sensitive attribute, the attribute shall be omitted when the information
is to be provided in a response message.
type: array
items:
$ref: "#/components/schemas/ConsumedManoInterfaceInfo" $ref: "#/components/schemas/ConsumedManoInterfaceInfo"
consumedManoInterfaceDeleteIds:
description: >
If present, this attribute signals the deletions of certain entries in the
"consumedManoInterfaces" attribute in "PeerEntity", as defined in
clause 5.6.2.15.
type: array
items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
operationalState: operationalState:
description: > description: >
If present, this attribute signals modifications of the "operationalState" If present, this attribute signals modifications of the "operationalState"
...@@ -1734,6 +1580,8 @@ components: ...@@ -1734,6 +1580,8 @@ components:
NFV-MANO functional entity. It is optional for the API producer to support NFV-MANO functional entity. It is optional for the API producer to support
this type. this type.
type: object type: object
required:
- id
properties: properties:
id: id:
description: > description: >
...@@ -1748,14 +1596,20 @@ components: ...@@ -1748,14 +1596,20 @@ components:
type: array type: array
items: items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
required:
- id
ManoService: ManoService:
description: > description: >
This type represents information about an NFV-MANO service provided by the This type represents information about an NFV-MANO service provided by the
NFV-MANO functional entity. NFV-MANO functional entity.
* NOTE: A cardinality greater than one supports having different interface versions or api Endpoints
to be used for accessing the same instance of an NFV-MANO service.
type: object type: object
required:
- id
- name
- description
- manoServiceInterfaceIds
- _links
properties: properties:
id: id:
description: > description: >
...@@ -1778,11 +1632,7 @@ components: ...@@ -1778,11 +1632,7 @@ components:
Reference to the NFV-MANO interfaces associated to the NFV-MANO service. Reference to the NFV-MANO interfaces associated to the NFV-MANO service.
If cardinality is greater than one, the type of ManoServiceInterface If cardinality is greater than one, the type of ManoServiceInterface
(see clause 5.6.3.3) shall be the same. The identifier of the (see clause 5.6.3.3) shall be the same. The identifier of the
ManoServiceInterface is referred. ManoServiceInterface is referred. See note
NOTE: A cardinality greater than one supports having different interface
versions or apiEndpoints to be used for accessing the same instance of a
NFV-MANO service.
type: array type: array
items: items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity" $ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
...@@ -1802,33 +1652,26 @@ components: ...@@ -1802,33 +1652,26 @@ components:
minItems: 1 minItems: 1
required: required:
- manoServiceInterfaces - manoServiceInterfaces
required:
- id
- name
- description
- manoServiceInterfaceIds
- _links
NfvoSpecificInfo: NfvoSpecificInfo:
description: > description: >
This type represents information attributes specific to an NFVO entity, This type represents information attributes specific to an NFVO entity,
and that can be relevant to more than one NFV-MANO service offered by an and that can be relevant to more than one NFV-MANO service offered by an NFVO entity.
NFVO entity. * NOTE 1: The information to be provided in this attribute shall relate to the specification and version
of the specification. For instance, "ETSI GS NFV-SOL 001 (V2.5.1)".
NOTE 2: If this attribute is not present, the value of this parameter is undefined.
type: object type: object
required:
- supportedVnfdFormats
- supportedNsdFormats
properties: properties:
maxOnboardedNsdNum: maxOnboardedNsdNum:
description: > description: >
Maximum number of NSDs that can be on-boarded on the NFVO. Maximum number of NSDs that can be on-boarded on the NFVO. See note 2.
NOTE: If this attribute is not present, the value of this parameter
is undefined.
type: integer type: integer
maxOnboardedVnfPkgNum: maxOnboardedVnfPkgNum:
description: > description: >
Maximum number of VNF Packages that can be on-boarded on the NFVO. Maximum number of VNF Packages that can be on-boarded on the NFVO. See note 2.
NOTE: If this attribute is not present, the value of this parameter
is undefined.
type: integer type: integer
supportedVnfdFormats: supportedVnfdFormats:
description: > description: >
...@@ -1850,11 +1693,7 @@ components: ...@@ -1850,11 +1693,7 @@ components:
- YANG - YANG
standardVersion: standardVersion:
description: > description: >
Name and version of the standard the VNFD is compliant to. Name and version of the standard the VNFD is compliant to. See note 1.
NOTE: The information to be provided in this attribute shall relate
to the specification and version of the specification. For instance,
"ETSI GS NFV-SOL 001 (V2.5.1)".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
required: required:
- vnfdFormat - vnfdFormat
...@@ -1879,25 +1718,23 @@ components: ...@@ -1879,25 +1718,23 @@ components:
- YANG - YANG
standardVersion: standardVersion:
description: > description: >
Name and version of the standard the NSD is compliant to. Name and version of the standard the NSD is compliant to. See note 1.
NOTE: The information to be provided in this attribute shall relate
to the specification and version of the specification. For instance,
"ETSI GS NFV-SOL 001 (V2.5.1)".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
required: required:
- nsdFormat - nsdFormat
- standardVersion - standardVersion
required:
- supportedVnfdFormats
- supportedNsdFormats
VnfmSpecificInfo: VnfmSpecificInfo:
description: > description: >
This type represents information attributes specific to a VNFM entity, This type represents information attributes specific to a VNFM entity,
and that can be relevant to more than one NFV-MANO service offered by and that can be relevant to more than one NFV-MANO service offered by a VNFM entity.
a VNFM entity. * NOTE: The information to be provided in this attribute shall relate to the specification and version
of the specification. For instance, "ETSI GS NFV-SOL 001 (V2.5.1)".
type: object type: object
required:
- resoruceMgmtModeSupport
- managedVnfInstanceInfos
- supportedVnfdFormats
properties: properties:
resoruceMgmtModeSupport: resoruceMgmtModeSupport:
description: > description: >
...@@ -1943,20 +1780,12 @@ components: ...@@ -1943,20 +1780,12 @@ components:
- YANG - YANG
standardVersion: standardVersion:
description: > description: >
Name and version of the standard the VNFD is compliant to. Name and version of the standard the VNFD is compliant to. See note
NOTE: The information to be provided in this attribute shall relate
to the specification and version of the specification. For instance,
"ETSI GS NFV-SOL 001 (V2.5.1)".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
required: required:
- vnfdFormat - vnfdFormat
- standardVersion - standardVersion
minItems: 1 minItems: 1
required:
- resoruceMgmtModeSupport
- managedVnfInstanceInfos
- supportedVnfdFormats
VimSpecificInfo: VimSpecificInfo:
description: > description: >
...@@ -1964,19 +1793,93 @@ components: ...@@ -1964,19 +1793,93 @@ components:
and that can be relevant to more than one NFV-MANO service offered by and that can be relevant to more than one NFV-MANO service offered by
a VIM entity. a VIM entity.
type: object type: object
WimSpecificInfo:
description: >
This type represents information attributes specific to a WIM entity,
and that can be relevant to more than one NFV MANO service offered by
a WIM entity.
type: object
required:
- maxMscsNums
- maxMsncNum
- mscsLayerProtocolSupport
properties:
maxMscsNums:
description: >
Maximum number of MSCS that the WIM can manage.
type: object
required:
- numMscs
properties:
numMscs:
description: >
Maximum number of MSCS.
type: integer
criteriaNumMscs:
description: >
Reference criteria for derivation/computation of the referred maximum number of MSCS in
attribute "numMscs". Shall be provided if specific criteria has been taken into account
for deriving the referred number.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
maxMsncNum:
description: >
Maximum number of MSNC that the WIM can manage
type: object
required:
- numMsnc
properties:
numMsnc:
description: >
Maximum number of MSNC..
type: integer
criteriaNumMsnc:
description: >
Reference criteria for derivation/computation of the referred maximum
number of MSNC in attribute "numMsnc".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
mscsLayerProtocolSupport:
description: >
List of protocols of particular layers used to realize an MSCS
that are supported by the WIM.
Permitted values:
- EVPN_BGP_MPLS: L2 MSCS realized by BGP MPLS-based Ethernet VPN (EVPN) as specified in IETF RFC 7432.
- EVPN_VPWS: L2 MSCS realized by EVPN Virtual Private Wire Service (VPWS) as specified in IETF RFC 8214.
- VPLS_BGP: L2 MSCS realized by Virtual Private LAN Service (VPLS) using BGP as specified
in IETF RFC 4761 and IETF RFC.
- VPLS_LDP_L2TP: L2 MSCS realized by VPLS using Label Distribution Protocol (LDP) Layer 2
Tunnelling Protocol (L2TP) as specified in IETF RFC 4762 and IETF RFC 6074.
- VPWS_LDP_L2TP: L2 MSCS realized by VPWS using LDP L2TP as specified in IETF RFC 6074.
- BGP_IP_VPN: L3 MSCS realized by BGP/MPLS based IP VPN as specified in IETF RFC 4364.
type: string
enum:
- EVPN_BGP_MPLS
- EVPN_VPWS
- VPLS_BGP
- VPLS_LDP_L2TP
- VPWS_LDP_L2TP
- BGP_IP_VPN
ManoEntityConfigurableParams: ManoEntityConfigurableParams:
description: > description: >
This type represents list of parameters that can be configured on the This type represents list of parameters that can be configured on the
NFV MANO functional entity. NFV MANO functional entity.
type: object type: object
required:
- clockSyncs
- defaultLogCompileBySizeValue
- defaultLogCompileByTimerValue
properties: properties:
clockSyncs: clockSyncs:
description: description: >
Properties of the clock synchronization to be used by the NFV-MANO Properties of the clock synchronization to be used by the NFV-MANO
functional entity. functional entity.
type: array
items: The keys of the map, each of which identifies a particular ClockSyncInfo
structure, are managed by the API consumer.
type: object
additionalProperties:
$ref: "#/components/schemas/ClockSyncInfo" $ref: "#/components/schemas/ClockSyncInfo"
minItems: 1 minItems: 1
defaultLogCompileBySizeValue: defaultLogCompileBySizeValue:
...@@ -1987,22 +1890,29 @@ components: ...@@ -1987,22 +1890,29 @@ components:
description: description:
Default value for the log compilation by timer to be used. Default value for the log compilation by timer to be used.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt" $ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt"
required:
- clockSyncs
- defaultLogCompileBySizeValue
- defaultLogCompileByTimerValue
ConsumedManoInterfaceInfo: ConsumedManoInterfaceInfo:
description: > description: >
This type represents an interface consumed by the producer NFV MANO This type represents an interface consumed by the producer NFV MANO
functional entity from another peer functional entity. functional entity from another peer functional entity.
* NOTE 1: The information to be provided in this attribute shall relate to the specification and its version.
For instance, "ETSI GS NFV-SOL 003 (V2.4.1)".
* NOTE 2: Due to the security sensitive information associated to the attribute, based on access control
policies, the API consumer might have read only, write only, read/write, or no access at all to
the attribute's value. In case the API consumer is not allowed to read the value of the security
sensitive attribute, the attribute shall be omitted when the information is to be provided in a
response message, and shall be provided otherwise. In case the API consumer is not allowed to
modify the value of the security sensitive attribute, and the modification request includes new
attribute values, the whole modification request shall be rejected, and proper error information returned.
type: object type: object
required:
- id
- name
- type
- standardVersion
- apiVersion
- apiEndpoint
properties: properties:
id:
description: >
Identifier of the consumed NFV-MANO interface. This identifier is
managed by the API consumer.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
name: name:
description: > description: >
Human-readable name of the NFV-MANO interface. Human-readable name of the NFV-MANO interface.
...@@ -2014,11 +1924,7 @@ components: ...@@ -2014,11 +1924,7 @@ components:
type: string type: string
standardVersion: standardVersion:
description: > description: >
Version of the standard the interface is compliant to. Version of the standard the interface is compliant to. See note 1.
NOTE: The information to be provided in this attribute shall relate
to the specification and its version. For instance,
"ETSI GS NFV-SOL 003 (V2.4.1)".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
apiVersion: apiVersion:
description: > description: >
...@@ -2065,31 +1971,15 @@ components: ...@@ -2065,31 +1971,15 @@ components:
securityInfo: securityInfo:
description: > description: >
Security related information including credentials information if needed Security related information including credentials information if needed
for consuming the API. for consuming the API. See note 2.
NOTE: Due to the security sensitive information associated to the attribute,
based on access control policies, the API consumer might have read only,
write only, read/write, or no access at all to the attribute’s value.
In case the API consumer is not allowed to read the value of the security
sensitive attribute, the attribute shall be omitted when the information
is to be provided in a response message, and shall be provided otherwise.
In case the API consumer is not allowed to modify the value of the security
sensitive attribute, and the modification request includes new attribute values,
the whole modification request shall be rejected, and proper error information
returned.
$ref: "#/components/schemas/ClientInterfaceSecurityInfo" $ref: "#/components/schemas/ClientInterfaceSecurityInfo"
required:
- id
- name
- type
- standardVersion
- apiVersion
- apiEndpoint
CimNotificationsFilter: CimNotificationsFilter:
description: > description: >
This type represents a subscription filter related to notifications This type represents a subscription filter related to notifications
about NFV-MANO configuration and information management. about NFV-MANO configuration and information management.
* NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names
of the notification types to facilitate automated code generation systems.
type: object type: object
properties: properties:
manoEntitySubscriptionFilter: manoEntitySubscriptionFilter:
...@@ -2105,9 +1995,7 @@ components: ...@@ -2105,9 +1995,7 @@ components:
- InformationChangedNotification - InformationChangedNotification
- ChangeStateNotification - ChangeStateNotification
NOTE: The permitted values of the "notificationTypes" attribute are See note.
spelled exactly as the names of the notification types to facilitate
automated code generation systems.
type: array type: array
items: items:
type: string type: string
...@@ -2117,14 +2005,12 @@ components: ...@@ -2117,14 +2005,12 @@ components:
ClockSyncInfo: ClockSyncInfo:
description: > description: >
This type represents parameters for connecting to an NTP server. This type represents parameters for connecting to an NTP server.
* NOTE: Either ipAddress or hostname shall be set, but not both at the same time.
type: object type: object
required:
- type
properties: properties:
id:
description: >
The identifier of the clock synchronization information entry.
This identifier is managed by the API consumer.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
type: type:
description: > description: >
Type of clock synchronization. Type of clock synchronization.
...@@ -2138,38 +2024,33 @@ components: ...@@ -2138,38 +2024,33 @@ components:
- OTHER - OTHER
ntpServerInfo: ntpServerInfo:
description: > description: >
Information for the NTP based clock synchronization. Information for the NTP based clock synchronization. Shall be present if type = "NTP".
Shall be present if type = "NTP".
type: object type: object
properties: properties:
ipAddress: ipAddress:
description: > description: >
0..1 IP address of the NTP server. IP address of the NTP server. See note
NOTE: Either ipAddress or hostname shall be set, but not both
at the same time.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/IpAddress" $ref: "../components/SOL009_schemas.yaml#/components/schemas/IpAddress"
hostname: hostname:
description: > description: >
Indicates the hostname of the NTP server. Indicates the hostname of the NTP server. See note.
NOTE: Either ipAddress or hostname shall be set, but not both
at the same time.
type: string type: string
otherClockSyncParams: otherClockSyncParams:
description: > description: >
Information for the other types of clock synchronization. Information for the other types of clock synchronization.
May be present if type = "OTHER". May be present if type = "OTHER".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
required:
- id
- type
ServerInterfaceSecurityInfo: ServerInterfaceSecurityInfo:
description: > description: >
This type represents security related information of an NFV-MANO This type represents security related information of an NFV-MANO
service interface produced by an NFV-MANO functional entity. service interface produced by an NFV-MANO functional entity.
* NOTE: Provided configuration of the OAuth 2.0 authorization server information and configuration
shall be supported, and dynamic configuration may be supported.
type: object type: object
required:
- authType
- oauthServerInfo
properties: properties:
authType: authType:
description: > description: >
...@@ -2193,16 +2074,17 @@ components: ...@@ -2193,16 +2074,17 @@ components:
description: > description: >
OAuth 2.0 authorization server information and configuration. OAuth 2.0 authorization server information and configuration.
type: object type: object
required:
- providedConfiguration
- tlsCipherSuites
properties: properties:
dynamicDiscovery: dynamicDiscovery:
description: > description: >
Configuration data used when performing dynamic discovery of Configuration data used when performing dynamic discovery of
the authorization server identifier. the authorization server identifier. See note.
NOTE: Provided configuration of the OAuth 2.0 authorization
server information and configuration shall be supported, and
dynamic configuration may be supported.
type: object type: object
required:
- webFingerHost
properties: properties:
webFingerHost: webFingerHost:
description: > description: >
...@@ -2210,36 +2092,27 @@ components: ...@@ -2210,36 +2092,27 @@ components:
the request to the WebFinger resource shall conform as specified the request to the WebFinger resource shall conform as specified
in clause 5.1.3 of ETSI GS NFV-SEC 022. in clause 5.1.3 of ETSI GS NFV-SEC 022.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
required:
- webFingerHost
providedConfiguration: providedConfiguration:
description: > description: >
Configuration data used to setup the authorization server identifier. Configuration data used to setup the authorization server identifier. See note.
NOTE: Provided configuration of the OAuth 2.0 authorization
server information and configuration shall be supported, and
dynamic configuration may be supported.
type: object type: object
required:
- authServerId
properties: properties:
authServerId: authServerId:
description: > description: >
Authorization server identifier as defined in ETSI GS NFV-SEC 022. Authorization server identifier as defined in ETSI GS NFV-SEC 022.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
required:
- authServerId
tlsCipherSuites: tlsCipherSuites:
description: > description: >
List of cipher suites that shall be declared as supported by the List of cipher suites that shall be declared as supported by the
API producer when performing the SSL or TLS negotiation with the API producer when performing the SSL or TLS negotiation with the
authorization server. Valid values of cipher suites are defined authorization server. Valid values of cipher suites are defined
in IETF RFC 8447. in IETF RFC 8447.
type: array type: array
items: items:
type: string type: string
minItems: 1 minItems: 1
required:
- providedConfiguration
- tlsCipherSuites
tlsTunnelInfo: tlsTunnelInfo:
description: > description: >
Information and configuration related to the use of TLS tunnel. Information and configuration related to the use of TLS tunnel.
...@@ -2247,7 +2120,7 @@ components: ...@@ -2247,7 +2120,7 @@ components:
type: object type: object
properties: properties:
tlsTunnelCipherSuites: tlsTunnelCipherSuites:
description: description: >
List of cipher suites that shall be declared as supported by the API List of cipher suites that shall be declared as supported by the API
producer when performing the SSL or TLS negotiation with the API client. producer when performing the SSL or TLS negotiation with the API client.
Valid values of cipher suites are defined in IETF RFC 8447. Valid values of cipher suites are defined in IETF RFC 8447.
...@@ -2257,14 +2130,13 @@ components: ...@@ -2257,14 +2130,13 @@ components:
minItems: 1 minItems: 1
required: required:
- tlsTunnelCipherSuites - tlsTunnelCipherSuites
required:
- authType
- oauthServerInfo
ClientInterfaceSecurityInfo: ClientInterfaceSecurityInfo:
description: > description: >
This type represents security related information for accessing an NFV-MANO This type represents security related information for accessing an NFV-MANO
service interface produced by an NFV-MANO functional entity. service interface produced by an NFV-MANO functional entity.
* NOTE: Provided configuration of the OAuth 2.0 authorization server information and configuration
shall be supported, and dynamic configuration may be supported.
type: object type: object
required: required:
- authType - authType
...@@ -2297,10 +2169,7 @@ components: ...@@ -2297,10 +2169,7 @@ components:
dynamicDiscovery: dynamicDiscovery:
description: > description: >
Configuration data used when performing dynamic discovery of the authorization Configuration data used when performing dynamic discovery of the authorization
server identifier. server identifier. See note.
NOTE: Provided configuration of the OAuth 2.0 authorization server information
and configuration shall be supported, and dynamic configuration may be supported.
type: object type: object
required: required:
- webFingerHost - webFingerHost
...@@ -2314,10 +2183,7 @@ components: ...@@ -2314,10 +2183,7 @@ components:
format: uri format: uri
providedConfiguration: providedConfiguration:
description: > description: >
Configuration data used to setup the authorization server identifier. Configuration data used to setup the authorization server identifier. See note.
NOTE: Provided configuration of the OAuth 2.0 authorization server information
and configuration shall be supported, and dynamic configuration may be supported.
type: object type: object
required: required:
- authServerId - authServerId
...@@ -2437,12 +2303,14 @@ components: ...@@ -2437,12 +2303,14 @@ components:
the provisions : the provisions :
- NFVO The NFV-MANO functional entity is an NFVO. - NFVO The NFV-MANO functional entity is an NFVO.
- VNFM The NFV-MANO functional entity is a VNFM. - VNFM The NFV-MANO functional entity is a VNFM.
- VIM The NFV-MANO functional entity is a VIM. - VIM The NFV-MANO functional entity is a VIM.
- WIM The NFV-MANO functional entity is a WIM.
type: string type: string
enum: enum:
- NFVO - NFVO
- VNFM - VNFM
- VIM - VIM
- WIM
PeerEntityEnumType: PeerEntityEnumType:
description: > description: >
...@@ -2455,6 +2323,7 @@ components: ...@@ -2455,6 +2323,7 @@ components:
- WIM The peer functional entity is a WIM. - WIM The peer functional entity is a WIM.
- EM The peer functional entity is an EM. - EM The peer functional entity is an EM.
- OSS The peer functional entity is an OSS/BSS. - OSS The peer functional entity is an OSS/BSS.
- WIM The peer functional is a WIM.
type: string type: string
enum: enum:
- NFVO - NFVO
...@@ -2463,6 +2332,7 @@ components: ...@@ -2463,6 +2332,7 @@ components:
- WIM - WIM
- EM - EM
- OSS - OSS
- WIM
parameters: parameters:
...@@ -2621,7 +2491,7 @@ components: ...@@ -2621,7 +2491,7 @@ components:
changeStateOpOccId: changeStateOpOccId:
name: changeStateOpOccId name: changeStateOpOccId
in: path in: path
description: >- description: >
Identifier of the change state operation occurrence Identifier of the change state operation occurrence
required: true required: true
schema: schema:
...@@ -2630,7 +2500,7 @@ components: ...@@ -2630,7 +2500,7 @@ components:
peerEntityId: peerEntityId:
name: peerEntityId name: peerEntityId
in: path in: path
description: >- description: >
Identifier of the peer entity Identifier of the peer entity
required: true required: true
schema: schema:
...@@ -2714,7 +2584,7 @@ components: ...@@ -2714,7 +2584,7 @@ components:
required: true required: true
responses: responses:
mano_entity.get.200: ManoEntity.Get.200:
description: > description: >
200 OK 200 OK
...@@ -2740,7 +2610,7 @@ components: ...@@ -2740,7 +2610,7 @@ components:
schema: schema:
$ref: "#/components/schemas/ManoEntity" $ref: "#/components/schemas/ManoEntity"
mano_entity.patch.200: ManoEntity.Patch.200:
description: > description: >
200 OK 200 OK
...@@ -2763,7 +2633,7 @@ components: ...@@ -2763,7 +2633,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/ManoConfigModifications" $ref: "#/components/schemas/ManoConfigModifications"
mano_entity.patch.409: ManoEntity.Patch.409:
description: > description: >
409 CONFLICT 409 CONFLICT
...@@ -2793,7 +2663,7 @@ components: ...@@ -2793,7 +2663,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity.patch.412: ManoEntity.Patch.412:
description: > description: >
412 PRECONDITION FAILED 412 PRECONDITION FAILED
...@@ -2823,7 +2693,7 @@ components: ...@@ -2823,7 +2693,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-change_state.post.202: ChangeState.Post.202:
description: > description: >
202 ACCEPTED 202 ACCEPTED
...@@ -2855,7 +2725,7 @@ components: ...@@ -2855,7 +2725,7 @@ components:
format: url format: url
minimum: 1 minimum: 1
maximum: 1 maximum: 1
mano_entity-change_state.post.409: ChangeState.Post.409:
description: > description: >
409 CONFLICT 409 CONFLICT
...@@ -2885,7 +2755,7 @@ components: ...@@ -2885,7 +2755,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-mano_interfaces.get.200: ManoInterfaces.Get.200:
description: > description: >
200 OK 200 OK
...@@ -2933,7 +2803,7 @@ components: ...@@ -2933,7 +2803,7 @@ components:
type: array type: array
items: items:
$ref: "#/components/schemas/ManoServiceInterface" $ref: "#/components/schemas/ManoServiceInterface"
mano_entity-mano_interfaces.get.400: ManoInterfaces.Get.400:
description: > description: >
400 BAD REQUEST 400 BAD REQUEST
...@@ -2967,7 +2837,7 @@ components: ...@@ -2967,7 +2837,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-mano_interface.get.200: IndividualManoInterface.Get.200:
description: > description: >
200 OK 200 OK
...@@ -2993,7 +2863,7 @@ components: ...@@ -2993,7 +2863,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/ManoServiceInterface" $ref: "#/components/schemas/ManoServiceInterface"
mano_entity-mano_interface.patch.200: IndividualManoInterface.Patch.200:
description: > description: >
200 OK 200 OK
...@@ -3019,7 +2889,7 @@ components: ...@@ -3019,7 +2889,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/ManoServiceInterfaceModifications" $ref: "#/components/schemas/ManoServiceInterfaceModifications"
mano_entity-mano_interface.patch.409: IndividualManoInterface.Patch.409:
description: > description: >
409 CONFLICT 409 CONFLICT
...@@ -3050,7 +2920,7 @@ components: ...@@ -3050,7 +2920,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-mano_interface.patch.412: IndividualManoInterface.Patch.412:
description: > description: >
412 PRECONDITION FAILED 412 PRECONDITION FAILED
...@@ -3081,7 +2951,7 @@ components: ...@@ -3081,7 +2951,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-mano_interface-change_state.post.202: ManoInterfaceChangeState.Post.202:
description: > description: >
202 ACCEPTED 202 ACCEPTED
...@@ -3115,7 +2985,7 @@ components: ...@@ -3115,7 +2985,7 @@ components:
format: url format: url
minimum: 1 minimum: 1
maximum: 1 maximum: 1
mano_entity-mano_interface-change_state.post.409: ManoInterfaceChangeState.Post.409:
description: > description: >
409 CONFLICT 409 CONFLICT
...@@ -3145,7 +3015,7 @@ components: ...@@ -3145,7 +3015,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
subscriptions.post.201: Subscriptions.Post.201:
description: > description: >
201 CREATED 201 CREATED
...@@ -3182,11 +3052,11 @@ components: ...@@ -3182,11 +3052,11 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/CimSubscription" $ref: "#/components/schemas/CimSubscription"
subscriptions.post.303: Subscriptions.Post.303:
description: > description: >
303 SEE OTHER 303 SEE OTHER
SShall be returned when a subscription with the same Shall be returned when a subscription with the same
callbackURI and the same filter already exists and the callbackURI and the same filter already exists and the
policy of NFV-MANO functional entity is to not create policy of NFV-MANO functional entity is to not create
redundant subscriptions. redundant subscriptions.
...@@ -3217,7 +3087,43 @@ components: ...@@ -3217,7 +3087,43 @@ components:
format: url format: url
minimum: 1 minimum: 1
maximum: 1 maximum: 1
subscriptions.get.200: Subscriptions.Post.422:
description: >
422 Unprocessable Entity
Shall be returned upon the following error: The content type
of the payload body is supported and the payload body of a request
contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in
clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
of the response body.
Specifically in case of this resource, the response code 422 shall also
be returned if the API producer has tested the Notification endpoint as
described in clause 5.5.6.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure
shall convey more information about the error.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
Subscriptions.Get.200:
description: > description: >
200 OK 200 OK
...@@ -3264,7 +3170,7 @@ components: ...@@ -3264,7 +3170,7 @@ components:
type: array type: array
items: items:
$ref: "#/components/schemas/CimSubscription" $ref: "#/components/schemas/CimSubscription"
subscriptions.get.400: Subscriptions.Get.400:
description: > description: >
400 BAD REQUEST 400 BAD REQUEST
...@@ -3295,7 +3201,7 @@ components: ...@@ -3295,7 +3201,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
subscription.get.200: Subscription.Get.200:
description: > description: >
200 OK 200 OK
...@@ -3321,7 +3227,7 @@ components: ...@@ -3321,7 +3227,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/CimSubscription" $ref: "#/components/schemas/CimSubscription"
subscription.delete.204: Subscription.Delete.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
...@@ -3343,7 +3249,7 @@ components: ...@@ -3343,7 +3249,7 @@ components:
schema: schema:
type: string type: string
change_state_ops.get.200: ChangeStateOpOcc.Get.200:
description: > description: >
200 OK 200 OK
...@@ -3391,7 +3297,7 @@ components: ...@@ -3391,7 +3297,7 @@ components:
type: array type: array
items: items:
$ref: "#/components/schemas/ChangeStateOpOcc" $ref: "#/components/schemas/ChangeStateOpOcc"
change_state_ops.get.400: ChangeStateOpOcc.Get.400:
description: > description: >
400 BAD REQUEST 400 BAD REQUEST
...@@ -3425,7 +3331,7 @@ components: ...@@ -3425,7 +3331,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
change_state_op.get.200: IndividualChangeStateOpOcc.Get.200:
description: > description: >
200 OK 200 OK
...@@ -3452,7 +3358,7 @@ components: ...@@ -3452,7 +3358,7 @@ components:
schema: schema:
$ref: "#/components/schemas/ChangeStateOpOcc" $ref: "#/components/schemas/ChangeStateOpOcc"
peer_entities.post.201: PeerEntities.Post.201:
description: > description: >
201 CREATED 201 CREATED
...@@ -3490,7 +3396,7 @@ components: ...@@ -3490,7 +3396,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/PeerEntity" $ref: "#/components/schemas/PeerEntity"
peer_entities.get.200: PeerEntities.Get.200:
description: > description: >
200 OK 200 OK
...@@ -3538,7 +3444,7 @@ components: ...@@ -3538,7 +3444,7 @@ components:
type: array type: array
items: items:
$ref: "#/components/schemas/PeerEntity" $ref: "#/components/schemas/PeerEntity"
peer_entities.get.400: PeerEntities.Get.400:
description: > description: >
400 BAD REQUEST 400 BAD REQUEST
...@@ -3572,7 +3478,7 @@ components: ...@@ -3572,7 +3478,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
peer_entitie.get.200: IndividualPeerEntity.Get.200:
description: > description: >
200 OK 200 OK
...@@ -3598,7 +3504,7 @@ components: ...@@ -3598,7 +3504,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/PeerEntity" $ref: "#/components/schemas/PeerEntity"
peer_entitie.patch.200: IndividualPeerEntity.Patch.200:
description: > description: >
200 OK 200 OK
...@@ -3624,7 +3530,7 @@ components: ...@@ -3624,7 +3530,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/PeerEntityConfigModifications" $ref: "#/components/schemas/PeerEntityConfigModifications"
peer_entitie.patch.409: IndividualPeerEntity.Patch.409:
description: > description: >
409 CONFLICT. 409 CONFLICT.
...@@ -3653,7 +3559,7 @@ components: ...@@ -3653,7 +3559,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
peer_entitie.patch.412: IndividualPeerEntity.Patch.412:
description: > description: >
412 PRECONDITION FAILED 412 PRECONDITION FAILED
...@@ -3682,7 +3588,7 @@ components: ...@@ -3682,7 +3588,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
peer_entitie.delete.204: IndividualPeerEntity.Delete.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
...@@ -3703,7 +3609,7 @@ components: ...@@ -3703,7 +3609,7 @@ components:
Version of the API used in the response. Version of the API used in the response.
schema: schema:
type: string type: string
peer_entitie.delete.409: IndividualPeerEntity.Delete.409:
description: > description: >
409 CONFLICT. 409 CONFLICT.
...@@ -3732,7 +3638,7 @@ components: ...@@ -3732,7 +3638,7 @@ components:
application/json: application/json:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
peer_entitie.delete.412: IndividualPeerEntity.Delete.412:
description: > description: >
412 PRECONDITION FAILED 412 PRECONDITION FAILED
......
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 title: SOL009 - NFV-MANO Configuration and Information Management Notification Interface
title: SOL009 - NFV-MANO Configuration and Information Management Notification Operation description: |
description: > SOL009 - NFV-MANO Configuration and Information Management Notification Interface
SOL009 - NFV-MANO Configuration and Information Management Notification Operation
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 and has not been version of the ETSI Group Specification it refers to. In case of
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI discrepancies the published ETSI Group Specification takes precedence.
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/rep/nfv/SOL009/issues
contact:
name: NFV-SOL WG
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
contact: version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
name: NFV-SOL WG
externalDocs: externalDocs:
description: ETSI GS NFV-SOL 009 V3.3.1 description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers: servers:
- url: http://0.0.0.0/callback/v1 - url: http://127.0.0.1/callback/v2
description: > - url: https://127.0.0.1/callback/v2
API HTTP Server
- url: https://0.0.0.0/callback/v1
description: >
API HTTPS Server
paths: paths:
/URI-is-provided-by-the-client-when-creating-the-subscription-ConfigurationAndInformationNotification: /URI_is_provided_by_the_client_when_creating_the_subscription-ConfigurationAndInformationNotification:
description: > description: >
This resource represents a notification endpoint. The API producer can use this This resource represents a notification endpoint. The API producer can use this
resource to send notifications related to NFV-MANO configuration and information resource to send notifications related to NFV-MANO configuration and information
...@@ -36,9 +35,9 @@ paths: ...@@ -36,9 +35,9 @@ paths:
resource during the subscription process. resource during the subscription process.
post: post:
description: > description: >
The POST method delivers a notification from the API producer to an API consumer. The POST method delivers a notification from the API producer to an API consumer.
The API consumer shall have previously created an "Individual subscription" The API consumer shall have previously created an "Individual subscription" resource
resource with a matching filter. with a matching filter. See clause 5.5.6.3.1.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -47,7 +46,7 @@ paths: ...@@ -47,7 +46,7 @@ paths:
$ref: "#/components/requestBodies/ConfigurationAnfInformationNotification" $ref: "#/components/requestBodies/ConfigurationAnfInformationNotification"
responses: responses:
"204": "204":
$ref: "#/components/responses/notification.post.204" $ref: "#/components/responses/Notification.Post.204"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -72,14 +71,14 @@ paths: ...@@ -72,14 +71,14 @@ paths:
get: get:
description: > description: >
TThe GET method allows the API producer to test the notification endpoint that TThe GET method allows the API producer to test the notification endpoint that
is provided by the API consumer, e.g., during the subscription process. is provided by the API consumer, e.g., during the subscription process. See clause 5.5.6.3.2.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: "#/components/responses/notification.get.204" $ref: "#/components/responses/Notification.Get.204"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -103,7 +102,7 @@ paths: ...@@ -103,7 +102,7 @@ paths:
components: components:
responses: responses:
notification.post.204: Notification.Post.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
...@@ -122,7 +121,7 @@ components: ...@@ -122,7 +121,7 @@ components:
schema: schema:
type: string type: string
notification.get.204: Notification.Get.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
...@@ -165,6 +164,15 @@ components: ...@@ -165,6 +164,15 @@ components:
configuration and information of the NFV-MANO functional entity configuration and information of the NFV-MANO functional entity
have been changed. have been changed.
type: object type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- informationChangedTime
- manoEntityId
- changedInfo
- _links
properties: properties:
id: id:
description: > description: >
...@@ -213,20 +221,21 @@ components: ...@@ -213,20 +221,21 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required: required:
- self - self
required:
- id
- notificationType
- subscriptionId
- timeStamp
- informationChangedTime
- manoEntityId
- changedInfo
- _links
ChangeStateNotification: ChangeStateNotification:
description: > description: >
This type represents a Change state operation occurrence. This type represents a Change state operation occurrence.
type: object type: object
required:
- id
- notificationType
- subscriptionId
- timestamp
- changeStateOpOccId
- stateChangedTime
- changeStateOperationState
- managedObjectRef
- _links
properties: properties:
id: id:
description: > description: >
...@@ -298,14 +307,4 @@ components: ...@@ -298,14 +307,4 @@ components:
required: required:
- subscription - subscription
- objectInstance - objectInstance
- changeStateOpOcc - changeStateOpOcc
required: \ No newline at end of file
- id
- notificationType
- subscriptionId
- timestamp
- changeStateOpOccId
- stateChangedTime
- changeStateOperationState
- managedObjectRef
- _links
\ No newline at end of file
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Fault Management interface title: SOL009 - NFV-MANO Fault Management interface
description: > description: |
SOL009 - NFV-MANO Fault Management interface SOL009 - NFV-MANO Fault Management 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. 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/SOL009/issues
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= contact:
name: NFV-SOL WG
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
version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs: externalDocs:
description: ETSI GS NFV-SOL 009 V3.3.1 description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers: servers:
- url: http://127.0.0.1/nfvmanofm/v1 - url: http://127.0.0.1/nfvmanofm/v1
...@@ -26,10 +33,7 @@ paths: ...@@ -26,10 +33,7 @@ paths:
/alarms: /alarms:
get: get:
description: > description: >
Get Alarm List. The client can use this method to retrieve information The client can use this method to retrieve information about the alarm list. See clause 7.5.3.3.2.
about the alarm list. This method shall follow the provisions specified
in the tables 7.5.3.3.2-1 and 7.5.3.3.2-2 for URI query parameters,
request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -38,7 +42,7 @@ paths: ...@@ -38,7 +42,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
responses: responses:
"200": "200":
$ref: '#/components/responses/Alarms.Get' $ref: '#/components/responses/Alarms.Get.200'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -64,17 +68,14 @@ paths: ...@@ -64,17 +68,14 @@ paths:
- $ref: "#/components/parameters/alarmId" - $ref: "#/components/parameters/alarmId"
get: get:
description: > description: >
The client can use this method to read an individual alarm. This method The client can use this method to read an individual alarm. See clause 7.5.4.3.2.
shall follow the provisions specified in the tables 7.5.4.3.2-1 and
7.5.4.3.2-2 for URI query parameters, request and response data
structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: '#/components/responses/Alarm.Get' $ref: '#/components/responses/Alarm.Get.200'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -97,10 +98,7 @@ paths: ...@@ -97,10 +98,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
patch: patch:
description: > description: >
This method modifies an "Individual alarm" resource. This method shall This method modifies an "Individual alarm" resource. See clause 7.5.4.3.4.
follow the provisions specified in the tables 7.5.4.3.4-1 and
7.5.4.3.4-2 for URI query parameters, request and response data
structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -110,7 +108,7 @@ paths: ...@@ -110,7 +108,7 @@ paths:
$ref: "#/components/requestBodies/AlarmModifications" $ref: "#/components/requestBodies/AlarmModifications"
responses: responses:
"200": "200":
$ref: '#/components/responses/Alarm.Patch' $ref: '#/components/responses/Alarm.Patch.200'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -138,24 +136,7 @@ paths: ...@@ -138,24 +136,7 @@ paths:
/subscriptions: /subscriptions:
post: post:
description: > description: >
Subscribe. The POST method creates a new subscription. This method shall The POST method creates a new subscription. See clause 7.5.5.3.1.
follow the provisions specified in the tables 7.5.5.3.1-1 and
7.5.5.3.1-2 for URI query parameters, request and response data
structures, and response codes. As the result of successfully executing
this method, a new "Individual subscription" resource as defined in
clause 7.5.6 shall have been created. This method shall not trigger any
notification. Creation of two "Individual subscription" resources with
the same callbackURI and the same filter can result in performance
degradation and will provide duplicates of notifications to the API
consumer, and might make sense only in very rare use cases.
Consequently, the NFV-MANO functional entity may either allow creating a
new "Individual subscription" resource if another "Individual
subscription" resource with the same filter and callbackUri already
exists (in which case it shall return the "201 Created" response code),
or may decide to not create a duplicate "Individual subscription"
resource (in which case it shall return a "303 See Other" response code
referencing the existing "Individual subscription" resource with the
same filter and callbackUri).
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -165,7 +146,7 @@ paths: ...@@ -165,7 +146,7 @@ paths:
$ref: "#/components/requestBodies/FmSubscriptionRequest" $ref: "#/components/requestBodies/FmSubscriptionRequest"
responses: responses:
"201": "201":
$ref: '#/components/responses/subscriptions.post.201' $ref: '#/components/responses/Subscriptions.Post.201'
"303": "303":
$ref: ../components/SOL009_resp.yaml#/components/responses/303 $ref: ../components/SOL009_resp.yaml#/components/responses/303
"400": "400":
...@@ -190,12 +171,9 @@ paths: ...@@ -190,12 +171,9 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
get: get:
description: > description: >
Query Subscription Information
The client can use this method to retrieve the list of active subscriptions for NFV-MANO functional entity The client can use this method to retrieve the list of active subscriptions for NFV-MANO functional entity
alarms subscribed by the client. It can be used e.g. for resynchronization after error situations. This method alarms subscribed by the client. It can be used e.g. for resynchronization after error situations.
shall follow the provisions specified in the tables 7.5.5.3.2-1 and 7.5.5.3.2-2 for URI query parameters, See clause 7.5.5.3.2.
request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -204,7 +182,7 @@ paths: ...@@ -204,7 +182,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker" - $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
responses: responses:
"200": "200":
$ref: '#/components/responses/subscriptions.get.200' $ref: '#/components/responses/Subscriptions.Get.200'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -230,18 +208,15 @@ paths: ...@@ -230,18 +208,15 @@ paths:
- $ref: "#/components/parameters/subscriptionId" - $ref: "#/components/parameters/subscriptionId"
get: get:
description: > description: >
Query Subscription Information. The client can use this method for The client can use this method for reading an individual subscription for NFV-MANO functional entity alarms
reading an individual subscription for NFV-MANO functional entity alarms subscribed by the client. See clause 7.5.6.3.2.
subscribed by the client. This method shall follow the provisions
specified in the tables 7.5.6.3.2-1 and 7.5.6.3.2-2 for URI query
parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: '#/components/responses/subscription.get.200' $ref: '#/components/responses/Subscription.Get.200'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -264,22 +239,13 @@ paths: ...@@ -264,22 +239,13 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
delete: delete:
description: > description: >
Terminate Subscription. This method terminates an individual This method terminates an individual subscription. See clause 7.5.6.3.5.
subscription. This method shall follow the provisions specified in the
tables 7.5.6.3.5-1 and 7.5.6.3.5-2 for URI query parameters, request and
response data structures, and response codes. As the result of
successfully executing this method, the "Individual subscription"
resource shall not exist any longer. This means that no notifications
for that subscription shall be sent to the formerly-subscribed API
consumer. NOTE: Due to race conditions, some notifications might still
be received by the formerly-subscribed API consumer for a certain time
period after the deletion.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: '#/components/responses/subscription.delete.204' $ref: '#/components/responses/Subscription.Delete.204'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -417,7 +383,8 @@ components: ...@@ -417,7 +383,8 @@ components:
structure, the following applies: All attributes shall match in order for the filter to match (logical "and" structure, the following applies: All attributes shall match in order for the filter to match (logical "and"
between different filter attributes). If an attribute is an array, the attribute shall match if at least one between different filter attributes). If an attribute is an array, the attribute shall match if at least one
of the values in the array matches (logical "or" between the values of one filter attribute). of the values in the array matches (logical "or" between the values of one filter attribute).
* NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names
of the notification types to facilitate automated code generation systems.
type: object type: object
properties: properties:
notificationTypes: notificationTypes:
...@@ -427,9 +394,8 @@ components: ...@@ -427,9 +394,8 @@ components:
* AlarmNotification * AlarmNotification
* AlarmClearedNotification * AlarmClearedNotification
* AlarmListRebuiltNotification * AlarmListRebuiltNotification
The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to See note.
facilitate automated code generation systems.
type: array type: array
items: items:
type: string type: string
...@@ -478,7 +444,7 @@ components: ...@@ -478,7 +444,7 @@ components:
required: true required: true
responses: responses:
Alarms.Get: Alarms.Get.200:
description: > description: >
200 OK 200 OK
...@@ -520,7 +486,7 @@ components: ...@@ -520,7 +486,7 @@ components:
items: items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm"
Alarm.Get: Alarm.Get.200:
description: > description: >
200 OK 200 OK
...@@ -540,7 +506,7 @@ components: ...@@ -540,7 +506,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm"
Alarm.Patch: Alarm.Patch.200:
description: > description: >
200 OK 200 OK
...@@ -569,7 +535,7 @@ components: ...@@ -569,7 +535,7 @@ components:
schema: schema:
$ref: "#/components/schemas/AlarmModifications" $ref: "#/components/schemas/AlarmModifications"
subscriptions.post.201: Subscriptions.Post.201:
description: > description: >
201 CREATED 201 CREATED
...@@ -606,8 +572,78 @@ components: ...@@ -606,8 +572,78 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/FmSubscription" $ref: "#/components/schemas/FmSubscription"
Subscriptions.Post.303:
description: >
303 SEE OTHER
Shall be returned when a subscription with the same
callbackURI and the same filter already exists and the
policy of NFV-MANO functional entity is to not create
redundant subscriptions.
The HTTP response shall include a "Location" HTTP header
that contains the resource URI of the existing "Individual
subscription" resource.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
Location:
description: >
The resource URI of the created "Individual subscription" resource.
schema:
type: string
format: url
minimum: 1
maximum: 1
Subscriptions.Post.422:
description: >
422 Unprocessable Entity
Shall be returned upon the following error: The content type
of the payload body is supported and the payload body of a request
contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in
clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
of the response body.
Specifically in case of this resource, the response code 422 shall also
be returned if the API producer has tested the Notification endpoint as
described in clause 7.5.7.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure
shall convey more information about the error.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
subscriptions.get.200: Subscriptions.Get.200:
description: > description: >
200 OK 200 OK
...@@ -659,7 +695,7 @@ components: ...@@ -659,7 +695,7 @@ components:
items: items:
$ref: "#/components/schemas/FmSubscription" $ref: "#/components/schemas/FmSubscription"
subscription.get.200: Subscription.Get.200:
description: > description: >
200 OK 200 OK
...@@ -695,7 +731,7 @@ components: ...@@ -695,7 +731,7 @@ components:
schema: schema:
$ref: "#/components/schemas/FmSubscription" $ref: "#/components/schemas/FmSubscription"
subscription.delete.204: Subscription.Delete.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
......
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 title: SOL009 - NFV-MANO Fault Management Notification Interface
title: SOL009 - NFV-MANO Fault Management Notification Operation description: |
description: > SOL009 - NFV-MANO Fault Management Notification Interface
SOL009 - NFV-MANO Fault Management Notification Operation
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.
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/SOL009/issues
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= contact:
name: NFV-SOL WG
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
externalDocs: version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
description: ETSI GS NFV-SOL 009 V3.3.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf
security: externalDocs:
- OauthSecurity: description: ETSI GS NFV-SOL 009 V3.5.1
- all url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers: servers:
- url: http://127.0.0.1/callback/v1 - url: http://127.0.0.1/callback/v1
- url: https://127.0.0.1/callback/v1 - url: https://127.0.0.1/callback/v1
paths: paths:
/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification: /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification:
post: post:
description: > description: >
The POST method notifies an NFV-MANO functional entity alarm or that the The POST method notifies an NFV-MANO functional entity alarm or that the
alarm list has been rebuilt. The API consumer shall have previously alarm list has been rebuilt. The API consumer shall have previously
created an "Individual subscription" resource with a matching filter. created an "Individual subscription" resource with a matching filter. See clause 7.5.7.3.1.
This method shall follow the provisions specified in the tables
7.5.7.3.1-1 and 7.5.7.3.1-2 for URI query parameters, request and
response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType" - $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
...@@ -59,10 +59,7 @@ paths: ...@@ -59,10 +59,7 @@ paths:
get: get:
description: > description: >
The GET method allows the server to test the notification endpoint that The GET method allows the server to test the notification endpoint that
is provided by the client, e.g. during subscription. This method shall is provided by the client, e.g. during subscription. See clause 7.5.7.3.2.
follow the provisions specified in the tables 7.5.7.3.2-1 and
7.5.7.3.2-2 for URI query parameters, request and response data
structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
...@@ -83,15 +80,12 @@ paths: ...@@ -83,15 +80,12 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/500 $ref: ../components/SOL009_resp.yaml#/components/responses/500
"503": "503":
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmClearedNotification: /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification:
post: post:
description: > description: >
The POST method notifies an NFV-MANO functional entity alarm or that the The POST method notifies an NFV-MANO functional entity alarm or that the
alarm list has been rebuilt. The API consumer shall have previously alarm list has been rebuilt. The API consumer shall have previously
created an "Individual subscription" resource with a matching filter. created an "Individual subscription" resource with a matching filter. See clause 7.5.7.3.1.
This method shall follow the provisions specified in the tables
7.5.7.3.1-1 and 7.5.7.3.1-2 for URI query parameters, request and
response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType" - $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
...@@ -118,10 +112,7 @@ paths: ...@@ -118,10 +112,7 @@ paths:
get: get:
description: > description: >
The GET method allows the server to test the notification endpoint that The GET method allows the server to test the notification endpoint that
is provided by the client, e.g. during subscription. This method shall is provided by the client, e.g. during subscription. See clause 7.5.7.3.2.
follow the provisions specified in the tables 7.5.7.3.2-1 and
7.5.7.3.2-2 for URI query parameters, request and response data
structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
...@@ -142,15 +133,12 @@ paths: ...@@ -142,15 +133,12 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/500 $ref: ../components/SOL009_resp.yaml#/components/responses/500
"503": "503":
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmListRebuiltNotification: /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification:
post: post:
description: > description: >
The POST method notifies an NFV-MANO functional entity alarm or that the The POST method notifies an NFV-MANO functional entity alarm or that the
alarm list has been rebuilt. The API consumer shall have previously alarm list has been rebuilt. The API consumer shall have previously
created an "Individual subscription" resource with a matching filter. created an "Individual subscription" resource with a matching filter. See clause 7.5.7.3.1.
This method shall follow the provisions specified in the tables
7.5.7.3.1-1 and 7.5.7.3.1-2 for URI query parameters, request and
response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType" - $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
...@@ -177,10 +165,7 @@ paths: ...@@ -177,10 +165,7 @@ paths:
get: get:
description: > description: >
The GET method allows the server to test the notification endpoint that The GET method allows the server to test the notification endpoint that
is provided by the client, e.g. during subscription. This method shall is provided by the client, e.g. during subscription. See clause 7.5.7.3.2.
follow the provisions specified in the tables 7.5.7.3.2-1 and
7.5.7.3.2-2 for URI query parameters, request and response data
structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
......
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Log Management interface title: SOL009 - NFV-MANO Log Management interface
description: > description: |
SOL009 - NFV-MANO Log Management interface SOL009 - NFV-MANO Log Management interface
IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification IMPORTANT: Please note that this file might be not aligned to the current
it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. 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/SOL009/issues
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= contact:
name: NFV-SOL WG
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
version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs: externalDocs:
description: ETSI GS NFV-SOL 009 V3.3.1 description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
security:
- OauthSecurity:
- all
servers: servers:
- url: http://127.0.0.1/nfvmanologm/v1 - url: http://127.0.0.1/nfvmanologm/v1
- url: https://127.0.0.1/nfvmanologm/v1 - url: https://127.0.0.1/nfvmanologm/v1
...@@ -32,11 +35,7 @@ paths: ...@@ -32,11 +35,7 @@ paths:
This resource represents logging jobs. The API consumer can use this resource to create and query logging jobs. This resource represents logging jobs. The API consumer can use this resource to create and query logging jobs.
post: post:
description: >- description: >-
The POST method creates a logging job. The POST method creates a logging job. See clause 8.5.3.3.1.
This method shall follow the provisions specified in the tables 8.5.3.3.1-1 and 8.5.3.3.1-2 for URI query
parameters, request and response data structures, and response codes.
As the result of successfully executing this method, a new "Individual logging job" resource as defined in
clause 9.5.4 shall have been created.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -46,7 +45,7 @@ paths: ...@@ -46,7 +45,7 @@ paths:
$ref: "#/components/requestBodies/CreateLoggingJobRequest" $ref: "#/components/requestBodies/CreateLoggingJobRequest"
responses: responses:
"201": "201":
$ref: '#/components/responses/LoggingJob.Post' $ref: '#/components/responses/LoggingJobs.Post.201'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -69,9 +68,7 @@ paths: ...@@ -69,9 +68,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
get: get:
description: >- description: >-
The API consumer can use this method to retrieve information about logging jobs. The API consumer can use this method to retrieve information about logging jobs. See clause 8.5.3.3.2.
This method shall follow the provisions specified in the tables 8.5.3.3.2-1 and 8.5.3.3.2-2 for
URI query parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/filter" - $ref: "../components/SOL009_params.yaml#/components/parameters/filter"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
...@@ -84,7 +81,7 @@ paths: ...@@ -84,7 +81,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: '#/components/responses/LoggingJobs.Get' $ref: '#/components/responses/LoggingJobs.Get.200'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -114,9 +111,7 @@ paths: ...@@ -114,9 +111,7 @@ paths:
- $ref: "#/components/parameters/logJobId" - $ref: "#/components/parameters/logJobId"
get: get:
description: >- description: >-
The API consumer can use this method for reading an individual logging job. The API consumer can use this method for reading an individual logging job. See clause 8.5.4.3.2.
This method shall follow the provisions specified in the tables 8.5.4.3.2-1 and 8.5.4.3.2-2 for
URI query parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -124,7 +119,7 @@ paths: ...@@ -124,7 +119,7 @@ paths:
responses: responses:
"200": "200":
$ref: '#/components/responses/LoggingJob.Get' $ref: '#/components/responses/IndividualLoggingJob.Get.200'
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -148,17 +143,13 @@ paths: ...@@ -148,17 +143,13 @@ paths:
delete: delete:
description: >- description: >-
This method terminates an individual logging job. This method terminates an individual logging job. See clause 8.5.4.3.5.
This method shall follow the provisions specified in the tables 8.5.4.3.5-1 and 8.5.4.3.5-2 for URI
query parameters, request and response data structures, and response codes.
As the result of successfully executing this method, the "Individual logging job" resource shall not
exist any longer
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: '#/components/responses/LoggingJob.Delete' $ref: '#/components/responses/IndividualLoggingJob.Delete.204'
"400": "400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400' $ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401": "401":
...@@ -192,9 +183,7 @@ paths: ...@@ -192,9 +183,7 @@ paths:
- $ref: "#/components/parameters/logReportId" - $ref: "#/components/parameters/logReportId"
get: get:
description: >- description: >-
The API consumer can use this method for reading an individual log report. The API consumer can use this method for reading an individual log report. See clause 8.5.5.3.2.
This method shall follow the provisions specified in the tables 8.5.5.3.2-1 and
8.5.5.3.2-2 for URI query parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -240,8 +229,7 @@ paths: ...@@ -240,8 +229,7 @@ paths:
post: post:
description: >- description: >-
The POST method requests to compile the logged data into a file and create an associated log report. The POST method requests to compile the logged data into a file and create an associated log report.
This method shall follow the provisions specified in the tables 8.5.6.3.1-1 and 8.5.6.3.1-2 for URI See clause 8.5.6.3.1.
query parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -250,8 +238,8 @@ paths: ...@@ -250,8 +238,8 @@ paths:
requestBody: requestBody:
$ref: "#/components/requestBodies/CompileLogRequest" $ref: "#/components/requestBodies/CompileLogRequest"
responses: responses:
"200": "201":
$ref: '#/components/responses/LogReportCompiled.Post.200' $ref: '#/components/responses/LogReportCompiled.Post.201'
"202": "202":
$ref: '#/components/responses/LogReportCompiled.Post.202' $ref: '#/components/responses/LogReportCompiled.Post.202'
"303": "303":
...@@ -283,18 +271,7 @@ paths: ...@@ -283,18 +271,7 @@ paths:
related to NFV-MANO performance management and to query its subscriptions. related to NFV-MANO performance management and to query its subscriptions.
post: post:
description: >- description: >-
The POST method creates a new subscription. The POST method creates a new subscription. See clause 8.5.7.3.1.
This method shall follow the provisions specified in the tables 8.5.7.3.1-1 and 8.5.7.3.1-2 for URI query
parameters, request and response data structures, and response codes.
As the result of successfully executing this method, a new "Individual subscription" resource as defined in
clause 8.5.8 shall have been created. This method shall not trigger any notification.
Creation of two "Individual subscription" resources with the same callbackURI and the same filter can result
in performance degradation and will provide duplicates of notifications to the API consumer, and might make
sense only in very rare use cases. Consequently, the NFV-MANO functional entity may either allow creating a
new "Individual subscription" resource if another "Individual subscription" resource with the same filter
and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide
to not create a duplicate "Individual subscription" resource (in which case it shall return a "303 See Other"
response code referencing the existing "Individual subscription" resource with the same filter and callbackUri).
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -304,9 +281,9 @@ paths: ...@@ -304,9 +281,9 @@ paths:
$ref: '#/components/requestBodies/LogmSubscriptionRequest' $ref: '#/components/requestBodies/LogmSubscriptionRequest'
responses: responses:
"201": "201":
$ref: '#/components/responses/subscriptions.post.201' $ref: '#/components/responses/Subscriptions.Post.201'
"303": "303":
$ref: '#/components/responses/subscriptions.post.303' $ref: '#/components/responses/Subscriptions.Post.303'
"422": "422":
$ref: '../components/SOL009_resp.yaml#/components/responses/422' $ref: '../components/SOL009_resp.yaml#/components/responses/422'
"400": "400":
...@@ -333,9 +310,7 @@ paths: ...@@ -333,9 +310,7 @@ paths:
get: get:
description: >- description: >-
The API consumer can use this method to query the list of active subscriptions to log management The API consumer can use this method to query the list of active subscriptions to log management
notifications subscribed by the API consumer. notifications subscribed by the API consumer. See clause 8.5.7.3.2.
This method shall follow the provisions specified in the tables 8.5.7.3.2-1 and 8.5.7.3.2-2 for URI
query parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/filter" - $ref: "../components/SOL009_params.yaml#/components/parameters/filter"
...@@ -345,7 +320,7 @@ paths: ...@@ -345,7 +320,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: '#/components/responses/subscriptions.get.200' $ref: '#/components/responses/Subscriptions.Get.200'
"400": "400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400' $ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401": "401":
...@@ -375,16 +350,14 @@ paths: ...@@ -375,16 +350,14 @@ paths:
get: get:
description: >- description: >-
The API consumer can use this method for reading an individual subscription about log management The API consumer can use this method for reading an individual subscription about log management
notifications subscribed by the API consumer. notifications subscribed by the API consumer. See clause 8.5.8.3.2.
This method shall follow the provisions specified in the tables 8.5.8.3.2-1 and 8.5.8.3.2-2 for
URI query parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: '#/components/responses/subscription.get.200' $ref: '#/components/responses/Subscription.Get.200'
"400": "400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400' $ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401": "401":
...@@ -406,20 +379,13 @@ paths: ...@@ -406,20 +379,13 @@ paths:
delete: delete:
description: >- description: >-
This method terminates an individual subscription. This method terminates an individual subscription. See clause 8.5.8.3.5.
This method shall follow the provisions specified in the tables 8.5.8.3.5-1 and 8.5.8.3.5-2 for
URI query parameters, request and response data structures, and response codes.
As the result of successfully executing this method, the "Individual subscription" resource shall not exist any
longer. This means that no notifications for that subscription shall be sent to the
formerly-subscribed API consumer.
NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed
API consumer for a certain time period after the deletion.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: '#/components/responses/subscription.delete.204' $ref: '#/components/responses/Subscription.Delete.204'
"400": "400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400' $ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401": "401":
...@@ -476,6 +442,8 @@ components: ...@@ -476,6 +442,8 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/LogmSubscriptionRequest" $ref: "#/components/schemas/LogmSubscriptionRequest"
required: true
CreateLoggingJobRequest: CreateLoggingJobRequest:
description: >- description: >-
This type represents a request to create a logging job. It shall comply with the provisions This type represents a request to create a logging job. It shall comply with the provisions
...@@ -500,10 +468,13 @@ components: ...@@ -500,10 +468,13 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/LogReportAvailableNotification" $ref: "#/components/schemas/LogReportAvailableNotification"
required: true
responses: responses:
subscription.delete.204: Subscription.Delete.204:
description: >- description: >
204 NO CONTENT
Shall be returned when the "Individual subscription" resource has been deleted successfully. Shall be returned when the "Individual subscription" resource has been deleted successfully.
The response body shall be empty. The response body shall be empty.
headers: headers:
...@@ -524,8 +495,10 @@ components: ...@@ -524,8 +495,10 @@ components:
schema: schema:
type: string type: string
subscription.get.200: Subscription.Get.200:
description: >- description: >
200 OK
Shall be returned when the subscription has been read successfully. Shall be returned when the subscription has been read successfully.
The response body shall contain a representation of the "Individual subscription" resource, The response body shall contain a representation of the "Individual subscription" resource,
as defined in clause 8.6.2.3. as defined in clause 8.6.2.3.
...@@ -551,8 +524,10 @@ components: ...@@ -551,8 +524,10 @@ components:
schema: schema:
$ref: "#/components/schemas/LogmSubscription" $ref: "#/components/schemas/LogmSubscription"
subscriptions.get.200: Subscriptions.Get.200:
description: >- description: >
200 OK
Shall be returned when the list of subscriptions has been queried successfully. Shall be returned when the list of subscriptions has been queried successfully.
The response body shall contain in an array the representations of all active subscriptions of The response body shall contain in an array the representations of all active subscriptions of
the functional block that invokes the method, i.e. zero or more representations of log management the functional block that invokes the method, i.e. zero or more representations of log management
...@@ -586,8 +561,10 @@ components: ...@@ -586,8 +561,10 @@ components:
items: items:
$ref: "#/components/schemas/LogmSubscription" $ref: "#/components/schemas/LogmSubscription"
subscriptions.post.201: Subscriptions.Post.201:
description: >- description: >
201 CREATED
Shall be returned when the subscription has been created successfully. Shall be returned when the subscription has been created successfully.
A representation of the created "Individual subscription" resource shall be returned in the response body, A representation of the created "Individual subscription" resource shall be returned in the response body,
as defined in clause 8.6.2.3. as defined in clause 8.6.2.3.
...@@ -620,8 +597,10 @@ components: ...@@ -620,8 +597,10 @@ components:
schema: schema:
$ref: "#/components/schemas/LogmSubscription" $ref: "#/components/schemas/LogmSubscription"
subscriptions.post.303: Subscriptions.Post.303:
description: >- description: >
303 SEE OTHER
Shall be returned when a subscription with the same callbackURI and the same filter already exists and the Shall be returned when a subscription with the same callbackURI and the same filter already exists and the
policy of the NFV-MANO functional entity is to not create redundant subscriptions. policy of the NFV-MANO functional entity is to not create redundant subscriptions.
The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing
...@@ -650,8 +629,10 @@ components: ...@@ -650,8 +629,10 @@ components:
schema: schema:
type: string type: string
LogReportCompiled.Post.200: LogReportCompiled.Post.201:
description: >- description: >
201 CREATED
Shall be returned for a successful compilation of the log data and creation of the associated log report Shall be returned for a successful compilation of the log data and creation of the associated log report
(synchronous mode). (synchronous mode).
The response body shall contain a representation of the log report resource, as defined in clause 8.6.2.7. The response body shall contain a representation of the log report resource, as defined in clause 8.6.2.7.
...@@ -684,8 +665,46 @@ components: ...@@ -684,8 +665,46 @@ components:
schema: schema:
$ref: "#/components/schemas/LogReport" $ref: "#/components/schemas/LogReport"
subscriptions.post.422:
description: >
422 UNPROCESSABLE ENTITY
Shall be returned upon the following error: The content type
of the payload body is supported and the payload body of a request
contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in
clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
of the response body.
Specifically in case of this resource, the response code 422 shall also
be returned if the API producer has tested the Notification endpoint as
described in clause 8.5.9.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure
shall convey more information about the error.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
LogReportCompiled.Post.202: LogReportCompiled.Post.202:
description: >- description: >
202 ACCEPTED
Shall be returned when the request has been accepted for processing, and it is expected to take some Shall be returned when the request has been accepted for processing, and it is expected to take some
time to compile the log file and create the associated log report (asynchronous mode). time to compile the log file and create the associated log report (asynchronous mode).
The response body shall be empty. The response body shall be empty.
...@@ -716,7 +735,9 @@ components: ...@@ -716,7 +735,9 @@ components:
type: string type: string
LogReportCompiled.Post.303: LogReportCompiled.Post.303:
description: >- description: >
303 SEE OTHER
Shall be returned when a log data compilation and report creation is already ongoing, or a log report has just been Shall be returned when a log data compilation and report creation is already ongoing, or a log report has just been
created, for the specified logging job at the time of processing the request. created, for the specified logging job at the time of processing the request.
The response body shall be empty. The response body shall be empty.
...@@ -747,7 +768,9 @@ components: ...@@ -747,7 +768,9 @@ components:
type: string type: string
LogReportCompiled.Post.422: LogReportCompiled.Post.422:
description: >- description: >
422 UNPROCESSABLE ENTITY
The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013,
including rules for the presence of the response body. including rules for the presence of the response body.
Specifically, in case of this task resource, the response code 422 shall also be returned if the Specifically, in case of this task resource, the response code 422 shall also be returned if the
...@@ -778,7 +801,9 @@ components: ...@@ -778,7 +801,9 @@ components:
$ref: '../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails' $ref: '../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails'
LogReport.Get.200: LogReport.Get.200:
description: >- description: >
200 OK
Shall be returned when information of an individual log report has been read successfully. Shall be returned when information of an individual log report has been read successfully.
The response body shall contain a representation of the "Individual log report" resource, as The response body shall contain a representation of the "Individual log report" resource, as
defined in clause 8.6.2.7. defined in clause 8.6.2.7.
...@@ -805,7 +830,9 @@ components: ...@@ -805,7 +830,9 @@ components:
$ref: "#/components/schemas/LogReport" $ref: "#/components/schemas/LogReport"
LogReport.Get.202: LogReport.Get.202:
description: >- description: >
202 ACCEPTED
Shall be returned if the creation of the log report is ongoing and no log report is available yet Shall be returned if the creation of the log report is ongoing and no log report is available yet
(applicable in asynchronous mode of the "Compile log task" resource). (applicable in asynchronous mode of the "Compile log task" resource).
The response body shall be empty. The response body shall be empty.
...@@ -827,8 +854,10 @@ components: ...@@ -827,8 +854,10 @@ components:
schema: schema:
type: string type: string
LoggingJob.Get: IndividualLoggingJob.Get.200:
description: >- description: >
200 OK
Shall be returned when information about an individual logging job has been read successfully. Shall be returned when information about an individual logging job has been read successfully.
The response body shall contain a representation of the "Individual logging job" resource, The response body shall contain a representation of the "Individual logging job" resource,
as defined in clause 8.6.2.6. as defined in clause 8.6.2.6.
...@@ -854,8 +883,10 @@ components: ...@@ -854,8 +883,10 @@ components:
schema: schema:
$ref: "#/components/schemas/LoggingJob" $ref: "#/components/schemas/LoggingJob"
LoggingJob.Delete: IndividualLoggingJob.Delete.204:
description: >- description: >
204 NO CONTENT
Shall be returned when the logging job has been deleted successfully. Shall be returned when the logging job has been deleted successfully.
The response body shall be empty. The response body shall be empty.
headers: headers:
...@@ -872,8 +903,10 @@ components: ...@@ -872,8 +903,10 @@ components:
schema: schema:
type: string type: string
LoggingJob.Post: LoggingJobs.Post.201:
description: >- description: >
201 CREATED
The response body contains the Application Context as it was created The response body contains the Application Context as it was created
by the MEC system by the MEC system
headers: headers:
...@@ -898,8 +931,10 @@ components: ...@@ -898,8 +931,10 @@ components:
schema: schema:
$ref: "#/components/schemas/LoggingJob" $ref: "#/components/schemas/LoggingJob"
LoggingJobs.Get: LoggingJobs.Get.200:
description: >- description: >
200 OK
Shall be returned when information about zero or more logging jobs has been queried successfully. Shall be returned when information about zero or more logging jobs has been queried successfully.
The response body shall contain in an array the representations of zero or more logging jobs, as The response body shall contain in an array the representations of zero or more logging jobs, as
...@@ -937,8 +972,10 @@ components: ...@@ -937,8 +972,10 @@ components:
items: items:
$ref: "#/components/schemas/LoggingJob" $ref: "#/components/schemas/LoggingJob"
LogReportAvailableNotification.Post: LogReportAvailableNotification.Post.204:
description: >- description: >
204 NO CONTENT
Shall be returned when the notification has been delivered successfully. Shall be returned when the notification has been delivered successfully.
headers: headers:
Content-Type: Content-Type:
...@@ -958,8 +995,10 @@ components: ...@@ -958,8 +995,10 @@ components:
schema: schema:
type: string type: string
LogReportNotification.Get: LogReportAvailableNotification.Get.204:
description: >- description: >
204 NO CONTENT
Shall be returned to indicate that the notification endpoint has been tested successfully. Shall be returned to indicate that the notification endpoint has been tested successfully.
The response body shall be empty. The response body shall be empty.
headers: headers:
...@@ -1018,11 +1057,9 @@ components: ...@@ -1018,11 +1057,9 @@ components:
LogmNotificationsFilter: LogmNotificationsFilter:
description: >- description: >-
This type represents a filter that can be used to subscribe for notifications related to log This type represents a filter that can be used to subscribe for notifications related to log
management events. It shall comply with the provisions defined in table 8.6.3.7-1. management events.
At a particular nesting level in the filter structure, the following applies: All attributes * NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names
shall match in order for the filter to match (logical "and" between different filter attributes). of the notification types to facilitate automated code generation systems.
If an attribute is an array, the attribute shall match if at least one of the values in the array matches
(logical "or" between the values of one filter attribute).
type: object type: object
properties: properties:
objectInstanceFilter: objectInstanceFilter:
...@@ -1034,6 +1071,7 @@ components: ...@@ -1034,6 +1071,7 @@ components:
Match particular notification types. Match particular notification types.
Permitted values: Permitted values:
- LogReportAvailableNotification - LogReportAvailableNotification
See note.
type: string type: string
enum: [LogReportAvailableNotification] enum: [LogReportAvailableNotification]
...@@ -1120,7 +1158,8 @@ components: ...@@ -1120,7 +1158,8 @@ components:
LogReport: LogReport:
description: > description: >
This type represents a log report, which provides information about a compiled log and how to obtain it. This type represents a log report, which provides information about a compiled log and how to obtain it.
It shall comply with the provisions defined in table 8.6.2.7-1. * NOTE: It is not specified in the present document how the NFV-MANO functional entity's private
key is provided to the NFV-MANO functional entity.
type: object type: object
required: required:
- id - id
...@@ -1185,8 +1224,8 @@ components: ...@@ -1185,8 +1224,8 @@ components:
- HTTPS: transmission over HTTP Secure (HTTPS). - HTTPS: transmission over HTTP Secure (HTTPS).
- SFTP: transmission over SSH file transfer protocol (SFTP). - SFTP: transmission over SSH file transfer protocol (SFTP).
- SCP: transmission over secure copy protocol (SCP). - SCP: transmission over secure copy protocol (SCP).
- FTPS: transmission over file transfer protocol secure (FTPS), as specified in IETF RFC 2228 [i.11], - FTPS: transmission over file transfer protocol secure (FTPS), as specified in IETF RFC 2228,
using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, "private" protection level shall be used. using explicit mode as specified in IETF RFC 4217. If FTPS is supported, "private" protection level shall be used.
HTTPS shall be supported, and other protocols may be supported. HTTPS shall be supported, and other protocols may be supported.
type: string type: string
...@@ -1226,13 +1265,13 @@ components: ...@@ -1226,13 +1265,13 @@ components:
description: >- description: >-
The cryptographic algorithm used for the encryption. Shall be present if the compiled log file is The cryptographic algorithm used for the encryption. Shall be present if the compiled log file is
encrypted. Valid values are: "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256", encrypted. Valid values are: "AES-CBC-128", "AES-GCM-128", "AES-CBC-256", and "AES-GCM-256",
as specified in clause 6.5 of ETSI GS NFV-SEC 012 [14]. as specified in clause 6.5 of ETSI GS NFV-SEC 012.
type: string type: string
logFileSignature: logFileSignature:
description: >- description: >-
Signature to the compiled log file generated with the NFV-MANO functional entity’s private key, Signature to the compiled log file generated with the NFV-MANO functional entity’s private key,
which is used to ensure the authenticity of the compiled log file. The signature shall be applied which is used to ensure the authenticity of the compiled log file. The signature shall be applied
according to the "encryptAndSignOrder" of the "LoggingJobConfig". according to the "encryptAndSignOrder" of the "LoggingJobConfig". See note.
type: string type: string
signingCertificate: signingCertificate:
description: >- description: >-
...@@ -1380,8 +1419,10 @@ components: ...@@ -1380,8 +1419,10 @@ components:
LoggingJobCriteria: LoggingJobCriteria:
description: >- description: >-
This type represents collection criteria for logging jobs. It shall comply with the provisions This type represents collection criteria for logging jobs.
defined in table 8.6.3.2-1. * NOTE: The value of the loggingType has dependency on the object that is requested to be logged
(refer to the CreateLoggingJobRequest): a) the logging of messages is only applicable to
ManoServiceInterface and ConsumedManoInterface objects.
type: object type: object
required: required:
- loggingType - loggingType
...@@ -1394,6 +1435,8 @@ components: ...@@ -1394,6 +1435,8 @@ components:
- MESSAGES: logged NFV-MANO service interface messages. - MESSAGES: logged NFV-MANO service interface messages.
- SERVICES: logged messages about processes pertaining to NFV-MANO services. - SERVICES: logged messages about processes pertaining to NFV-MANO services.
- SYSTEM: logged messages about the NFV-MANO functional entity’s system enabled by the provider. - SYSTEM: logged messages about the NFV-MANO functional entity’s system enabled by the provider.
See note.
type: string type: string
enum: [MESSAGES, SERVICES, SYSTEM] enum: [MESSAGES, SERVICES, SYSTEM]
messagesLogDetail: messagesLogDetail:
...@@ -1417,7 +1460,8 @@ components: ...@@ -1417,7 +1460,8 @@ components:
LoggingJobMessagesCriteria: LoggingJobMessagesCriteria:
description: >- description: >-
This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces. This type represents criteria for logging jobs to collect logged messages on NFV-MANO service interfaces.
It shall comply with the provisions defined in table 8.6.3.3-1. * NOTE: If a matching pattern is present, at least one of the "srcIpAddress", "dstIpAddress", "requestMethod",
"requestUriPattern" or "responseCodes" shall be provided.
type: object type: object
required: required:
- direction - direction
...@@ -1438,6 +1482,7 @@ components: ...@@ -1438,6 +1482,7 @@ components:
values provided in the sub-attributes shall be logged. An API consumer can provide more than one values provided in the sub-attributes shall be logged. An API consumer can provide more than one
"matchingPattern" if combinations of patterns are to be considered to match diverse sets of interface "matchingPattern" if combinations of patterns are to be considered to match diverse sets of interface
messages. messages.
See note.
type: array type: array
items: items:
type: object type: object
...@@ -1518,18 +1563,23 @@ components: ...@@ -1518,18 +1563,23 @@ components:
LoggingJobServicesCriteria: LoggingJobServicesCriteria:
description: >- description: >-
This type represents criteria for logging jobs to collect logged messages about processes pertaining This type represents criteria for logging jobs to collect logged messages about processes pertaining
to NFV-MANO services. It shall comply with the provisions defined in table 8.6.3.4-1. to NFV-MANO services.
* NOTE: In the present version of the present document, only one attribute, i.e.
"logGarbageCollection", is available.
type: object type: object
properties: properties:
logGarbageCollection: logGarbageCollection:
description: >- description: >-
Indicates to collect logged information about garbage collection processes associated to NFV-MANO services. Indicates to collect logged information about garbage collection processes associated to NFV-MANO services.
See note.
type: boolean type: boolean
LoggingJobSystemCriteria: LoggingJobSystemCriteria:
description: >- description: >-
This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional This type represents criteria for logging jobs to collect logged system events of the NFV-MANO functional
entity. It shall comply with the provisions defined in table 8.6.3.5-1. entity.
* NOTE: The set of properties and values for this attribute are assumed to be known to the consumer
by means defined outside of the present document.
type: object type: object
required: required:
- systemLogs - systemLogs
...@@ -1537,7 +1587,7 @@ components: ...@@ -1537,7 +1587,7 @@ components:
properties: properties:
systemLogs: systemLogs:
description: >- description: >-
Values for the provider enabled system logs. Values for the provider enabled system logs. See note.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs" $ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
severityLevelScheme: severityLevelScheme:
description: >- description: >-
...@@ -1558,6 +1608,17 @@ components: ...@@ -1558,6 +1608,17 @@ components:
defined in table 8.6.3.6-1. defined in table 8.6.3.6-1.
NOTE: The present document version does not specify the support for "log compilation and reporting based NOTE: The present document version does not specify the support for "log compilation and reporting based
on events" as specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031. on events" as specified in clause 6.6.2.2 of ETSI GS NFV-IFA 031.
* NOTE 1: The minimumReportingPeriod is used to throttle possible flooding of reports by providing a lower
limit on the gap between two log availability notification to be emitted by the same logging job.
NOTE 2: More than one logCompilingCondition is possible to provide a combination of different conditions
for the compilation. This covers use cases when the compilation of the log can be based on, e.g.
a timer value and a size value, whichever first condition is met first. For instance, compile a
log every 3 600 seconds, or whenever during the 3 600 seconds period the log grows in
size to 1 000 000 bytes.
NOTE 3: The value is indicative, as the actual size of the compiled log files might not match the provided
compileBySizeValue due to possible deviations in the tracking of the size of the log data by the
API producer, and the size of individual logged data entries when these are collected.
type: object type: object
required: required:
- reportingCondition - reportingCondition
...@@ -1593,7 +1654,7 @@ components: ...@@ -1593,7 +1654,7 @@ components:
minimumReportingPeriod: minimumReportingPeriod:
description: >- description: >-
Specifies the minimum periodicity at which the producer will report to the consumer about the Specifies the minimum periodicity at which the producer will report to the consumer about the
collected log information, in seconds. collected log information, in seconds. See note 1.
type: integer type: integer
format: int32 format: int32
compileBySizeValue: compileBySizeValue:
...@@ -1601,14 +1662,15 @@ components: ...@@ -1601,14 +1662,15 @@ components:
An indicative size threshold for compiling the collected log data, in bytes. It is used when the An indicative size threshold for compiling the collected log data, in bytes. It is used when the
compilation is based on the size of the collected log data. If not present, a default value as compilation is based on the size of the collected log data. If not present, a default value as
specified with the "defaultLogCompileBySizeValue" configuration in the "ManoEntityConfigurableParams" specified with the "defaultLogCompileBySizeValue" configuration in the "ManoEntityConfigurableParams"
shall be used shall be used. See note 2 and note 3.
type: integer type: integer
format: int32 format: int32
compileByTimerValue: compileByTimerValue:
description: >- description: >-
The periodicity threshold for compiling the filtered log, in seconds. It is used when the compilation The periodicity threshold for compiling the filtered log, in seconds. It is used when the compilation
is based on a timer (e.g., every 24 hours). If not present, a default value as specified with the is based on a timer (e.g., every 24 hours). If not present, a default value as specified with the
"defaultLogCompileByTimerValue" configuration in the "ManoEntityConfigurableParams" shall be used "defaultLogCompileByTimerValue" configuration in the "ManoEntityConfigurableParams" shall be used.
See note 2.
type: integer type: integer
format: int32 format: int32
securityConf: securityConf:
...@@ -1746,7 +1808,7 @@ components: ...@@ -1746,7 +1808,7 @@ components:
$ref: "#/components/requestBodies/LogReportAvailableNotification" $ref: "#/components/requestBodies/LogReportAvailableNotification"
responses: responses:
"204": "204":
$ref: '#/components/responses/LogReportAvailableNotification.Post' $ref: '#/components/responses/LogReportAvailableNotification.Post.204'
"400": "400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400' $ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401": "401":
...@@ -1779,7 +1841,7 @@ components: ...@@ -1779,7 +1841,7 @@ components:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: '#/components/responses/LogReportNotification.Get' $ref: '#/components/responses/LogReportAvailableNotification.Get.204'
"400": "400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400' $ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401": "401":
......
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Log Management Notification Operation
description: >
SOL009 - NFV-MANO Log Management Notification Operation
IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification title: SOL009 - NFV-MANO Log Management Notification Interface
it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. description: |
SOL009 - NFV-MANO Log Management Notification Interface
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution= 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/SOL009/issues
contact:
name: NFV-SOL WG
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
externalDocs: version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
description: ETSI GS NFV-SOL 009 V3.3.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf
security: externalDocs:
- OauthSecurity: description: ETSI GS NFV-SOL 009 V3.5.1
- all url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers: servers:
- url: http://127.0.0.1/callback/v1 - url: http://127.0.0.1/callback/v1
- url: https://127.0.0.1/callback/v1 - url: https://127.0.0.1/callback/v1
paths: paths:
/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification: /URI_is_provided_by_the_client_when_creating_the_subscription-LogNotification:
description: >- description: >-
This resource represents a notification endpoint for NFV-MANO log management. This resource represents a notification endpoint for NFV-MANO log management.
The API producer can use this resource to send notifications related to log management events to a The API producer can use this resource to send notifications related to log management events to a
...@@ -35,9 +37,7 @@ paths: ...@@ -35,9 +37,7 @@ paths:
description: >- description: >-
The POST method delivers a notification regarding a log management event from the API producer to the API The POST method delivers a notification regarding a log management event from the API producer to the API
consumer. The API consumer shall have previously created an "Individual subscription" resource with a consumer. The API consumer shall have previously created an "Individual subscription" resource with a
matching filter. matching filter. See clause 8.5.9.3.1.
This method shall follow the provisions specified in the tables 8.5.9.3.1-1 and 8.5.9.3.1-2 for URI query
parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
...@@ -45,7 +45,7 @@ paths: ...@@ -45,7 +45,7 @@ paths:
$ref: "#/components/requestBodies/LogReportAvailableNotification" $ref: "#/components/requestBodies/LogReportAvailableNotification"
responses: responses:
"204": "204":
$ref: '#/components/responses/notification.post.204' $ref: '#/components/responses/Notification.Post.204'
"400": "400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400' $ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401": "401":
...@@ -70,16 +70,14 @@ paths: ...@@ -70,16 +70,14 @@ paths:
get: get:
description: >- description: >-
The GET method allows the API producer to test the notification endpoint that is provided by the API The GET method allows the API producer to test the notification endpoint that is provided by the API
consumer, e.g. during subscription. consumer, e.g. during subscription. See clause 8.5.9.3.2.
This method shall follow the provisions specified in the tables 8.5.9.3.2-1 and 8.5.9.3.2-2 for URI
query parameters, request and response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: '#/components/responses/notification.get.204' $ref: '#/components/responses/Notification.Get.204'
"400": "400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400' $ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401": "401":
...@@ -110,9 +108,10 @@ components: ...@@ -110,9 +108,10 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/LogReportAvailableNotification" $ref: "#/components/schemas/LogReportAvailableNotification"
required: true
responses: responses:
notification.post.204: Notification.Post.204:
description: >- description: >-
Shall be returned when the notification has been delivered successfully. Shall be returned when the notification has been delivered successfully.
headers: headers:
...@@ -133,7 +132,7 @@ components: ...@@ -133,7 +132,7 @@ components:
schema: schema:
type: string type: string
notification.get.204: Notification.Get.204:
description: >- description: >-
Shall be returned to indicate that the notification endpoint has been tested successfully. Shall be returned to indicate that the notification endpoint has been tested successfully.
The response body shall be empty. The response body shall be empty.
......
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Performance Management Interface title: SOL009 - NFV-MANO Performance Management Interface
description: > description: |
SOL009 - NFV-MANO Performance Management Interface SOL009 - NFV-MANO Performance Management Interface
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 and has not been version of the ETSI Group Specification it refers to. In case of
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI discrepancies the published ETSI Group Specification takes precedence.
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/rep/nfv/SOL009/issues
contact:
name: NFV-SOL WG
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
contact: version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
name: NFV-SOL WG
externalDocs: externalDocs:
description: ETSI GS NFV-SOL 009 V3.3.1 description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers: servers:
- url: http://0.0.0.0/nfvmanopm/v1 - url: http://127.0.0.1/nfvmanopm/v2
description: > - url: https://127.0.0.1/nfvmanopm/v2
API HTTP Server
- url: https://0.0.0.0/nfvmanopm/v1
description: >
API HTTPS Server
paths: paths:
/api_versions: /api_versions:
...@@ -34,11 +34,7 @@ paths: ...@@ -34,11 +34,7 @@ paths:
/pm_jobs: /pm_jobs:
post: post:
description: > description: >
Creates a PM job. The POST method creates a PM job. See clause 6.5.3.3.1.
This method shall follow the provisions specified in the tables
6.5.3.3.1-1 and 6.5.3.3.1-2 for URI query parameters, request and
response data structures, and response codes.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -47,7 +43,7 @@ paths: ...@@ -47,7 +43,7 @@ paths:
$ref: "#/components/requestBodies/CreatePMJobRequest" $ref: "#/components/requestBodies/CreatePMJobRequest"
responses: responses:
"201": "201":
$ref: "#/components/responses/pm_jobs.post.201" $ref: "#/components/responses/pm_jobs.Post.201"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -70,7 +66,7 @@ paths: ...@@ -70,7 +66,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
get: get:
description: > description: >
The client can use this method to retrieve information about PM jobs. The client can use this method to retrieve information about PM jobs. See clause 6.5.3.3.2.
parameters: parameters:
- $ref: "#/components/parameters/filter.PmJob" - $ref: "#/components/parameters/filter.PmJob"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields" - $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
...@@ -83,9 +79,9 @@ paths: ...@@ -83,9 +79,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/pm_jobs.get.200" $ref: "#/components/responses/pm_jobs.Get.200"
"400": "400":
$ref: "#/components/responses/pm_jobs.get.400" $ref: "#/components/responses/pm_jobs.Get.400"
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -110,14 +106,14 @@ paths: ...@@ -110,14 +106,14 @@ paths:
- $ref: "#/components/parameters/pmJobId" - $ref: "#/components/parameters/pmJobId"
get: get:
description: > description: >
The client can use this method for reading an individual PM job. The client can use this method for reading an individual PM job. See clause 6.5.4.3.2.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/pm_job.get.200" $ref: "#/components/responses/IndividualPmJob.Get.200"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -138,52 +134,22 @@ paths: ...@@ -138,52 +134,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
"504": "504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
delete: patch:
description: > description: >
This method terminates an individual PM job. This method allows to modify an "individual PM job" resource. See clause 6.5.4.3.4.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/PmJobModificationRequest"
responses: responses:
"204": "200":
$ref: "#/components/responses/pm_job.delete.204" $ref: "#/components/responses/IndividualPmJob.Patch.200"
"400": "412":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: "#/components/responses/IndividualPmJob.Patch.412"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
$ref: ../components/SOL009_resp.yaml#/components/responses/403
"404":
$ref: ../components/SOL009_resp.yaml#/components/responses/404
"405":
$ref: ../components/SOL009_resp.yaml#/components/responses/405
"406":
$ref: ../components/SOL009_resp.yaml#/components/responses/406
"422": "422":
$ref: ../components/SOL009_resp.yaml#/components/responses/422 $ref: "#/components/responses/IndividualPmJob.Patch.422"
"500":
$ref: ../components/SOL009_resp.yaml#/components/responses/500
"503":
$ref: ../components/SOL009_resp.yaml#/components/responses/503
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
/pm_jobs/{pmJobId}/reports/{reportId}:
parameters:
- $ref: "#/components/parameters/pmJobId"
- $ref: "#/components/parameters/reportId"
get:
description: >
The client can use this method for reading an individual
performance report.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/pm_job.report.get.200"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -196,28 +162,24 @@ paths: ...@@ -196,28 +162,24 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/405 $ref: ../components/SOL009_resp.yaml#/components/responses/405
"406": "406":
$ref: ../components/SOL009_resp.yaml#/components/responses/406 $ref: ../components/SOL009_resp.yaml#/components/responses/406
"422": "409":
$ref: ../components/SOL009_resp.yaml#/components/responses/422 $ref: ../components/SOL009_resp.yaml#/components/responses/409
"500": "500":
$ref: ../components/SOL009_resp.yaml#/components/responses/500 $ref: ../components/SOL009_resp.yaml#/components/responses/500
"503": "503":
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
"504": "504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
delete:
/thresholds:
post:
description: > description: >
The POST method can be used by the client to create a threshold. This method terminates an individual PM job. See clause 6.5.4.3.5.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/CreateThesholdRequest"
responses: responses:
"201": "204":
$ref: "#/components/responses/thresholds.post.201" $ref: "#/components/responses/IndividualPmJob.Delete.204"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -238,52 +200,21 @@ paths: ...@@ -238,52 +200,21 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
"504": "504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
get:
description: > /pm_jobs/{pmJobId}/reports/{reportId}:
The client can use this method to query information about thresholds.
parameters:
- $ref: "#/components/parameters/filter.Threshold"
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/thresholds.get.200"
"400":
$ref: "#/components/responses/thresholds.get.400"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
$ref: ../components/SOL009_resp.yaml#/components/responses/403
"404":
$ref: ../components/SOL009_resp.yaml#/components/responses/404
"405":
$ref: ../components/SOL009_resp.yaml#/components/responses/405
"406":
$ref: ../components/SOL009_resp.yaml#/components/responses/406
"422":
$ref: ../components/SOL009_resp.yaml#/components/responses/422
"500":
$ref: ../components/SOL009_resp.yaml#/components/responses/500
"503":
$ref: ../components/SOL009_resp.yaml#/components/responses/503
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
/thresholds/{thresholdId}:
parameters: parameters:
- $ref: "#/components/parameters/thresholdId" - $ref: "#/components/parameters/pmJobId"
- $ref: "#/components/parameters/reportId"
get: get:
description: > description: >
The client can use this method for reading an individual threshold The client can use this method for reading an individual performance report. See clause 6.5.5.3.2.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/threshold.get.200" $ref: "#/components/responses/IndividualPerformanceReport.Get.200"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -304,16 +235,22 @@ paths: ...@@ -304,16 +235,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
"504": "504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
delete:
/thresholds:
post:
description: > description: >
This method allows to delete a threshold. The POST method can be used by the client to create a threshold. See clause 6.5.6.3.1.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/CreateThresholdRequest"
responses: responses:
"204": "201":
$ref: "#/components/responses/threshold.delete.204" $ref: "#/components/responses/Thresholds.Post.201"
"422":
$ref: "#/components/responses/Thresholds.Post.422"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -326,32 +263,26 @@ paths: ...@@ -326,32 +263,26 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/405 $ref: ../components/SOL009_resp.yaml#/components/responses/405
"406": "406":
$ref: ../components/SOL009_resp.yaml#/components/responses/406 $ref: ../components/SOL009_resp.yaml#/components/responses/406
"422":
$ref: ../components/SOL009_resp.yaml#/components/responses/422
"500": "500":
$ref: ../components/SOL009_resp.yaml#/components/responses/500 $ref: ../components/SOL009_resp.yaml#/components/responses/500
"503": "503":
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
"504": "504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
get:
/subscriptions:
post:
description: > description: >
The POST method creates a new subscription. The client can use this method to query information about thresholds. See clause 6.5.6.3.2.
parameters: parameters:
- $ref: "#/components/parameters/filter.Threshold"
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/CreateSubscriptionRequest"
responses: responses:
"201": "200":
$ref: "#/components/responses/subscriptions.post.201" $ref: "#/components/responses/Thresholds.Get.200"
"303": "400":
$ref: "#/components/responses/subscriptions.post.303" $ref: "#/components/responses/Thresholds.Get.400"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -370,21 +301,22 @@ paths: ...@@ -370,21 +301,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
"504": "504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
/thresholds/{thresholdId}:
parameters:
- $ref: "#/components/parameters/thresholdId"
get: get:
description: > description: >
The client can use this method to query the list of active subscriptions The client can use this method for reading an individual threshold. See clause 6.5.7.3.2.
to performance management notifications subscribed by the client.
parameters: parameters:
- $ref: "#/components/parameters/filter.PmSubscription"
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"200": "200":
$ref: "#/components/responses/subscriptions.get.200" $ref: "#/components/responses/Threshold.Get.200"
"400": "400":
$ref: "#/components/responses/subscriptions.get.400" $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401 $ref: ../components/SOL009_resp.yaml#/components/responses/401
"403": "403":
...@@ -403,21 +335,22 @@ paths: ...@@ -403,21 +335,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503 $ref: ../components/SOL009_resp.yaml#/components/responses/503
"504": "504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
patch:
/subscriptions/{subscriptionId}:
parameters:
- $ref: "#/components/parameters/subscriptionId"
get:
description: > description: >
The client can use this method for reading an individual subscription This method allows to modify an "Individual threshold" resource. See clause 6.5.7.3.4.
about performance management notifications subscribed by the client.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/ThresholdModificationRequest"
responses: responses:
"200": "200":
$ref: "#/components/responses/subscription.get.200" $ref: "#/components/responses/Threshold.Patch.200"
"412":
$ref: "#/components/responses/Threshold.Patch.412"
"422":
$ref: "#/components/responses/Threshold.Patch.422"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -430,8 +363,8 @@ paths: ...@@ -430,8 +363,8 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/405 $ref: ../components/SOL009_resp.yaml#/components/responses/405
"406": "406":
$ref: ../components/SOL009_resp.yaml#/components/responses/406 $ref: ../components/SOL009_resp.yaml#/components/responses/406
"422": "409":
$ref: ../components/SOL009_resp.yaml#/components/responses/422 $ref: ../components/SOL009_resp.yaml#/components/responses/409
"500": "500":
$ref: ../components/SOL009_resp.yaml#/components/responses/500 $ref: ../components/SOL009_resp.yaml#/components/responses/500
"503": "503":
...@@ -440,14 +373,14 @@ paths: ...@@ -440,14 +373,14 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504 $ref: ../components/SOL009_resp.yaml#/components/responses/504
delete: delete:
description: > description: >
This method terminates an individual subscription. This method allows to delete a threshold. See clause 6.5.7.3.5.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: "#/components/responses/subscription.delete.204" $ref: "#/components/responses/Threshold.Delete.204"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -471,71 +404,15 @@ paths: ...@@ -471,71 +404,15 @@ paths:
components: components:
schemas: schemas:
PmSubscriptionRequest:
description: >
This type represents a subscription request.
type: object
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/PmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/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: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
required:
- callbackUri
PmSubscription:
description: >
This type represents a subscription.
type: object
properties:
id:
description: >
Identifier that identifies the subscription
$ref: "../components/SOL009_schemas.yaml#/components/schemas/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/PmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
type: object
properties:
links:
description: >
Links to resources related to this resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
self:
description: >
URI of this resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
required:
- links
- self
required:
- id
- callbackUri
CreatePmJobRequest: CreatePmJobRequest:
description: > description: >
This type represents a request to create a PM job. This type represents a request to create a PM job.
type: object type: object
required:
- objectType
- objectInstanceIds
- criteria
- callbackUri
properties: properties:
objectType: objectType:
description: > description: >
...@@ -572,15 +449,31 @@ components: ...@@ -572,15 +449,31 @@ components:
description: > description: >
Criteria of the collection of performance information. Criteria of the collection of performance information.
$ref: "#/components/schemas/PmJobCriteria" $ref: "#/components/schemas/PmJobCriteria"
required: callbackUri:
- objectType description: >
- objectInstanceIds The URI of the endpoint to send the notification to.
- criteria $ref: "../components/SOL009_schemas.yaml#/components/schemas/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: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
PmJob: PmJob:
description: > description: >
This type represents a PM job. This type represents a PM job.
type: object type: object
required:
- id
- objectType
- objectInstanceIds
- criteria
- _links
- callbackUri
properties: properties:
id: id:
description: > description: >
...@@ -619,6 +512,10 @@ components: ...@@ -619,6 +512,10 @@ components:
description: > description: >
Criteria of the collection of performance information. Criteria of the collection of performance information.
$ref: "#/components/schemas/PmJobCriteria" $ref: "#/components/schemas/PmJobCriteria"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
reports: reports:
description: > description: >
Information about available reports collected by this PM job. Information about available reports collected by this PM job.
...@@ -664,17 +561,16 @@ components: ...@@ -664,17 +561,16 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
required: required:
- self - self
required:
- id
- objectType
- objectInstanceIds
- criteria
- _links
CreateThresholdRequest : CreateThresholdRequest :
description: > description: >
This type represents a request to create a threshold. This type represents a request to create a threshold.
type: object type: object
required:
- objectType
- objectInstanceId
- criteria
- callbackUri
properties: properties:
objectType: objectType:
description: > description: >
...@@ -704,22 +600,39 @@ components: ...@@ -704,22 +600,39 @@ components:
description: > description: >
Criteria that define this threshold. Criteria that define this threshold.
$ref: "#/components/schemas/ThresholdCriteria" $ref: "#/components/schemas/ThresholdCriteria"
required: callbackUri:
- objectType description: >
- objectInstanceId The URI of the endpoint to send the notification to.
- criteria $ref: "../components/SOL009_schemas.yaml#/components/schemas/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: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
Threshold: Threshold:
description: > description: >
This type represents a threshold.
type: object type: object
required:
- id
- objectType
- objectInstanceId
- subjObjectInstanceIds
- criteria
- _links
- callbackUri
properties: properties:
id: id:
description: > description: >
Identifier of this threshold resource. Identifier of this threshold resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
objectType: objectType:
description: description: >
Type of measured object. The applicable measured object type for a measurement Type of measured object. The applicable measured object type for a measurement
is defined in clause 8.2 of ETSI GS NFV-IFA 031. is defined in clause 8.2 of ETSI GS NFV-IFA 031.
type: string type: string
...@@ -746,6 +659,10 @@ components: ...@@ -746,6 +659,10 @@ components:
description: > description: >
Criteria that define this threshold. Criteria that define this threshold.
$ref: "#/components/schemas/ThresholdCriteria" $ref: "#/components/schemas/ThresholdCriteria"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
_links: _links:
description: > description: >
Links for this resource. Links for this resource.
...@@ -763,13 +680,6 @@ components: ...@@ -763,13 +680,6 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Link" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
required: required:
- self - self
required:
- id
- objectType
- objectInstanceId
- subjObjectInstanceIds
- criteria
- _links
PerformanceReport: PerformanceReport:
description: > description: >
...@@ -777,6 +687,8 @@ components: ...@@ -777,6 +687,8 @@ components:
entity to the API consumer as a result of collecting performance information as part entity to the API consumer as a result of collecting performance information as part
of a PM job. of a PM job.
type: object type: object
required:
- entries
properties: properties:
entries: entries:
description: > description: >
...@@ -840,45 +752,60 @@ components: ...@@ -840,45 +752,60 @@ components:
- performanceMetric - performanceMetric
- performanceValues - performanceValues
minItems: 1 minItems: 1
required:
- entries
#---------- PmJobModifications:
description: >
This type represents modifications to a PM job.
* NOTE: At least one of the attributes defined in this type shall be present in request bodies.
type: object
properties:
callbackUri:
description: >
New value of the "callbackUri" attribute.The value "null" is not permitted. See note.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
authentication:
description: >
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 JSONMerge PATCH (see IETF RFC 7396).
This attribute shall not be present in response bodies. See note.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
PmNotificationsFilter: ThresholdModifications:
description: > description: >
This type represents a filter that can be used to subscribe for notifications This type represents modifications to a threshold.
related to performance management events. * NOTE: At least one of the attributes defined in this type shall be present in request bodies.
At a particular nesting level in the filter structure, the following applies:
All attributes shall match in order for the filter to match (logical "and" between
different filter attributes). If an attribute is an array, the attribute shall
match if at least one of the values in the array matches (logical "or" between the
values of one filter attribute).
type: object type: object
properties: properties:
pmSubscriptionFilter: callbackUri:
description: > description: >
Filter criteria to select object instance about which to notify. New value of the "callbackUri" attribute.The value "null" is not permitted. See note.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoEntitySubscriptionFilter" $ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
notificationTypes: authentication:
description: > description: >
Match particular notification types. New value of the "authentication" attribute, or "null" to remove the attribute.
Permitted values: If present in a request body, these modifications shall be applied according
- ThresholdCrossedNotification to the rules of JSONMerge PATCH (see IETF RFC 7396).
- PerformanceInformationAvailableNotification
The permitted values of the "notificationTypes" attribute are spelled exactly This attribute shall not be present in response bodies. See note.
as the names of the notification types to facilitate automated code generation $ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
systems.
type: string #----------
enum:
- ThresholdCrossedNotification
- PerformanceInformationAvailableNotification
PmJobCriteria: PmJobCriteria:
description: > description: >
This type represents collection criteria for PM jobs. This type represents collection criteria for PM jobs.
* NOTE 1: At the end of each reportingPeriod, the producer will inform the API consumer about availability
of the performance data collected for each completed collection period during this reportingPeriod.
The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case,
the performance data for the collection periods within one reporting period are reported together.
* NOTE 2: In particular when choosing short collection and reporting periods, the number of PM jobs that can
be supported depends on the capability of the producing entity.
type: object type: object
required:
- collectionPeriod
- reportingPeriod
properties: properties:
performanceMetric: performanceMetric:
description: > description: >
...@@ -903,34 +830,12 @@ components: ...@@ -903,34 +830,12 @@ components:
collectionPeriod: collectionPeriod:
description: > description: >
Specifies the periodicity at which the producer will collect performance Specifies the periodicity at which the producer will collect performance
information. The unit shall be seconds. information. The unit shall be seconds. See note 1 and note 2.
At the end of each reportingPeriod, the producer will inform the API consumer
about availability of the performance data collected for each completed
collection period during this reportingPeriod. The reportingPeriod should
be equal to or a multiple of the collectionPeriod. In the latter case, the
performance data for the collection periods within one reporting period
are reported together.
In particular when choosing short collection and reporting periods, the
number of PM jobs that can be supported depends on the capability of the
producing entity.
type: integer type: integer
reportingPeriod: reportingPeriod:
description: > description: >
Specifies the periodicity at which the producer will report to the API consumer Specifies the periodicity at which the producer will report to the API consumer
about performance information. The unit shall be seconds. about performance information. The unit shall be seconds. See note 1 and note 2.
At the end of each reportingPeriod, the producer will inform the API consumer
about availability of the performance data collected for each completed
collection period during this reportingPeriod. The reportingPeriod should
be equal to or a multiple of the collectionPeriod. In the latter case, the
performance data for the collection periods within one reporting period
are reported together.
In particular when choosing short collection and reporting periods, the
number of PM jobs that can be supported depends on the capability of the
producing entity.
type: integer type: integer
reportingBoundary: reportingBoundary:
description: > description: >
...@@ -938,14 +843,19 @@ components: ...@@ -938,14 +843,19 @@ components:
The boundary shall allow a single reporting as well as periodic reporting up to The boundary shall allow a single reporting as well as periodic reporting up to
the boundary. the boundary.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
required:
- collectionPeriod
- reportingPeriod
ThresholdCriteria: ThresholdCriteria:
description: > description: >
This type represents criteria that define a threshold. This type represents criteria that define a threshold.
* 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).
type: object type: object
required:
- performanceMetric
- thresholdType
properties: properties:
performanceMetric: performanceMetric:
description: > description: >
...@@ -991,16 +901,13 @@ components: ...@@ -991,16 +901,13 @@ components:
required: required:
- thresholdValue - thresholdValue
- hysteresis - hysteresis
required:
- performanceMetric
- thresholdType
#---------------- #----------------
# common types to SOL009 # common types to SOL009
#---------------- #----------------
responses: responses:
pm_jobs.post.201: pm_jobs.Post.201:
description: > description: >
201 CREATED 201 CREATED
...@@ -1028,7 +935,43 @@ components: ...@@ -1028,7 +935,43 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/PmJob" $ref: "#/components/schemas/PmJob"
pm_jobs.get.200: pm_jobs.Post.422:
description: >
422 Unprocessable Entity
Shall be returned upon the following error: The content type
of the payload body is supported and the payload body of a request
contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in
clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
of the response body.
Specifically in case of this resource, the response code 422 shall also
be returned if the API producer has tested the Notification endpoint as
described in clause 6.5.10.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure
shall convey more information about the error.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
pm_jobs.Get.200:
description: > description: >
200 OK 200 OK
...@@ -1075,7 +1018,7 @@ components: ...@@ -1075,7 +1018,7 @@ components:
type: array type: array
items: items:
$ref: "#/components/schemas/PmJob" $ref: "#/components/schemas/PmJob"
pm_jobs.get.400: pm_jobs.Get.400:
description: > description: >
400 BAD REQUEST 400 BAD REQUEST
...@@ -1109,7 +1052,7 @@ components: ...@@ -1109,7 +1052,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
pm_job.get.200: IndividualPmJob.Get.200:
description: > description: >
200 OK 200 OK
...@@ -1135,7 +1078,95 @@ components: ...@@ -1135,7 +1078,95 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/PmJob" $ref: "#/components/schemas/PmJob"
pm_job.delete.204: IndividualPmJob.Patch.200:
description: >
200 OK
Shall be returned when the request has been processed successfully.
The response body shall contain a data structure of type "PmJobModifications"
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "#/components/schemas/PmJobModifications"
IndividualPmJob.Patch.412:
description: >
412 PRECONDITION FAILED
Shall be returned upon the following 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:
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
IndividualPmJob.Patch.422:
description: >
422 Unprocessable Entity
Shall be returned upon the following error: The content type
of the payload body is supported and the payload body of a request
contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in
clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
of the response body.
Specifically in case of this resource, the response code 422 shall also
be returned if the API producer has tested the Notification endpoint as
described in clause 6.5.10.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure
shall convey more information about the error.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
IndividualPmJob.Delete.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
...@@ -1156,7 +1187,7 @@ components: ...@@ -1156,7 +1187,7 @@ components:
schema: schema:
type: string type: string
pm_job.report.get.200: IndividualPerformanceReport.Get.200:
description: > description: >
200 OK 200 OK
...@@ -1184,7 +1215,7 @@ components: ...@@ -1184,7 +1215,7 @@ components:
schema: schema:
$ref: "#/components/schemas/PerformanceReport" $ref: "#/components/schemas/PerformanceReport"
thresholds.post.201: Thresholds.Post.201:
description: > description: >
201 CREATED 201 CREATED
...@@ -1222,7 +1253,43 @@ components: ...@@ -1222,7 +1253,43 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/Threshold" $ref: "#/components/schemas/Threshold"
thresholds.get.200: Thresholds.Post.422:
description: >
422 Unprocessable Entity
Shall be returned upon the following error: The content type
of the payload body is supported and the payload body of a request
contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in
clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
of the response body.
Specifically in case of this resource, the response code 422 shall also
be returned if the API producer has tested the Notification endpoint as
described in clause 6.5.10.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure
shall convey more information about the error.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
Thresholds.Get.200:
description: > description: >
200 OK 200 OK
...@@ -1259,7 +1326,7 @@ components: ...@@ -1259,7 +1326,7 @@ components:
type: array type: array
items: items:
$ref: "#/components/schemas/Threshold" $ref: "#/components/schemas/Threshold"
thresholds.get.400: Thresholds.Get.400:
description: > description: >
400 BAD REQUEST 400 BAD REQUEST
...@@ -1290,7 +1357,7 @@ components: ...@@ -1290,7 +1357,7 @@ components:
schema: schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
threshold.get.200: Threshold.Get.200:
description: > description: >
200 OK 200 OK
...@@ -1316,38 +1383,14 @@ components: ...@@ -1316,38 +1383,14 @@ components:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/Threshold" $ref: "#/components/schemas/Threshold"
threshold.delete.204:
description: >
204 NO CONTENT
Shall be returned when the threshold has been deleted 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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
subscriptions.post.201: Threshold.Patch.200:
description: > description: >
201 CREATED 200 OK
Shall be returned when the subscription has been created successfully.
A representation of the created subscription resource shall be returned Shall be returned when the request has been processed successfully.
in the response body, as defined in clause 6.6.2.3.
The HTTP response shall include a "Location" HTTP header that contains The response body shall contain a data structure of type "ThresholdModifications"
the resource URI of the created "Individual subscription" resource.
headers: headers:
WWW-Authenticate: WWW-Authenticate:
description: > description: >
...@@ -1361,71 +1404,22 @@ components: ...@@ -1361,71 +1404,22 @@ components:
Version of the API used in the response. Version of the API used in the response.
schema: schema:
type: string type: string
Location:
description: >
The resource URI of the created "Individual change state
operation occurence" resource.
schema:
type: string
format: url
minimum: 1
maximum: 1
content: content:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/PmSubscription" $ref: "#/components/schemas/ThresholdModifications"
subscriptions.post.303: Threshold.Patch.412:
description: >
303 SEE OTHER
Shall be returned when a subscription with the same callbackURI and
the same filter already exists and the policy of the NFV-MANO functional
entity is to not create redundant subscriptions.
The HTTP response shall include a "Location" HTTP header that contains
the resource URI of the existing "Individual subscription" resource.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
Location:
description: >
The resource URI of the created "Individual change state
operation occurence" resource.
schema:
type: string
format: url
minimum: 1
maximum: 1
subscriptions.get.200:
description: > description: >
Shall be returned when the list of subscriptions has been queried 412 PRECONDITION FAILED
successfully.
The response body shall contain in an array the representations Shall be returned upon the following error: A precondition given in
of all active subscriptions of the functional block that invokes an HTTP request header is not fulfilled.
the method, i.e. zero or more representations of PM subscriptions
as defined in clause 6.6.2.3.
If the "filter" URI parameter was supplied in the request, the data Typically, this is due to an ETag mismatch, indicating that the resource
in the response body shall have been transformed according to the was modified by another entity.
rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013.
If the NFV-MANO functional entity supports alternative 2 (paging) The response body should contain a ProblemDetails structure, in which
according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, the "detail" attribute should convey more information about the error.
inclusion of the Link HTTP header in this response shall follow the
provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
headers: headers:
WWW-Authenticate: WWW-Authenticate:
description: > description: >
...@@ -1442,48 +1436,25 @@ components: ...@@ -1442,48 +1436,25 @@ components:
content: content:
application/json: application/json:
schema: schema:
type: array $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
items: Threshold.Patch.422:
$ref: "#/components/schemas/PmSubscription"
subscriptions.get.400:
description: > description: >
400 BAD REQUEST 422 Unprocessable Entity
Shall be returned upon the following errors: Shall be returned upon the following error: The content type
- Invalid attribute-based filtering expression. of the payload body is supported and the payload body of a request
The response body shall contain a ProblemDetails structure, in which contains syntactically correct data but the data cannot be processed.
the "detail" attribute should convey more information about the error.
- Response too big.
If the NFV-MANO functional entity supports alternative N°1 (error)
according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource,
this error response shall follow the provisions in clause 5.4.2.2 of
ETSI GS NFV-SOL 013.
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.
schema:
type: string
Version:
description: >
Version of the API used in the response.
schema:
type: string
content:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
subscription.get.200: The general cause for this error and its handling is specified in
description: > clause 6.4 of ETSI GS NFV-SOL 013, including rules for the presence
200 OK of the response body.
Shall be returned when the subscription has been read successfully. Specifically in case of this resource, the response code 422 shall also
be returned if the API producer has tested the Notification endpoint as
described in clause 6.5.10.3.2 and the test has failed.
The response body shall contain a representation of the In this case, the "detail" attribute in the "ProblemDetails" structure
"Individual subscription" resource, as defined in clause 6.6.2.3. shall convey more information about the error.
headers: headers:
WWW-Authenticate: WWW-Authenticate:
description: > description: >
...@@ -1500,13 +1471,13 @@ components: ...@@ -1500,13 +1471,13 @@ components:
content: content:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/PmSubscription" $ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
subscription.delete.204:
Threshold.Delete.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
Shall be returned when the "Individual subscription" resource has Shall be returned when the threshold has been deleted successfully.
been deleted successfully.
The response body shall be empty. The response body shall be empty.
headers: headers:
...@@ -1559,23 +1530,6 @@ components: ...@@ -1559,23 +1530,6 @@ components:
required: false required: false
schema: schema:
type: string type: string
filter.PmSubscription :
name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of
ETSI GS NFV-SOL 013.
The NFV-MANO functional entity shall support receiving this parameter
as part of the URI query string. The API consumer may supply this
parameter.
All attribute names that appear in the PmSubscription and in data
types referenced from it shall be supported by the NFV-MANO functional
entity in the expression.
in: query
required: false
schema:
type: string
exclude_default.PmJob : exclude_default.PmJob :
name: exclude_default name: exclude_default
description: > description: >
...@@ -1593,15 +1547,6 @@ components: ...@@ -1593,15 +1547,6 @@ components:
schema: schema:
type: string type: string
subscriptionId:
name: subscriptionId
in: path
description: >-
Identifier of the subscription
required: true
schema:
$ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier'
pmJobId: pmJobId:
name: pmJobId name: pmJobId
in: path in: path
...@@ -1639,7 +1584,7 @@ components: ...@@ -1639,7 +1584,7 @@ components:
$ref: "#/components/schemas/CreatePmJobRequest" $ref: "#/components/schemas/CreatePmJobRequest"
required: true required: true
CreateThesholdRequest: CreateThresholdRequest:
description: > description: >
Request parameters to create a threshold. Request parameters to create a threshold.
content: content:
...@@ -1648,11 +1593,26 @@ components: ...@@ -1648,11 +1593,26 @@ components:
$ref: "#/components/schemas/CreateThresholdRequest" $ref: "#/components/schemas/CreateThresholdRequest"
required: true required: true
CreateSubscriptionRequest: ThresholdModificationRequest:
description: > description: >
Details of the subscription to be created. Parameters for the threshold modification.
The Content-Type header shall be set to "application/merge-patch+json"
according to IETF RFC 7396.
content: content:
application/json: application/merge-patch+json:
schema:
$ref: "#/components/schemas/ThresholdModifications"
required: true
PmJobModificationRequest:
description: >
Parameters for the PM job modification.
The Content-Type header shall be set to "application/merge-patch+json"
according to IETF RFC 7396.
content:
application/merge-patch+json:
schema: schema:
$ref: "#/components/schemas/PmSubscriptionRequest" $ref: "#/components/schemas/PmJobModifications"
required: true required: true
\ No newline at end of file
openapi: 3.0.2 openapi: 3.0.2
info: info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 title: SOL009 - NFV-MANO Performance Management Notification Interface
title: SOL009 - NFV-MANO Performance Management Notification Operation
description: > description: >
SOL009 - NFV-MANO Performance Management Notification Operation SOL009 - NFV-MANO Performance Management Notification Interface
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 and has not been version of the ETSI Group Specification it refers to. In case of
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI discrepancies the published ETSI Group Specification takes precedence.
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/rep/nfv/SOL009/issues
contact:
name: NFV-SOL WG
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
contact: version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
name: NFV-SOL WG
externalDocs: externalDocs:
description: ETSI GS NFV-SOL 009 V3.3.1 description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.03.01_60/gs_NFV-SOL009v030301p.pdf url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers: servers:
- url: http://0.0.0.0/callback/v1 - url: http://127.0.0.1/callback/v2
description: > - url: https://127.0.0.1/callback/v2
API HTTP Server
- url: https://0.0.0.0/callback/v1
description: >
API HTTPS Server
paths: paths:
/URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationNotification: /URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationNotification:
description: > description: >
This resource represents a notification endpoint for NFV-MANO performance management. This resource represents a notification endpoint for NFV-MANO performance management.
The API producer can use this resource to send notifications related to performance The API producer can use this resource to send notifications related to performance
management events to a subscribed API consumer, which has provided the URI of this management events to an API consumer, which has provided the URI of this
resource during the subscription process. resource during the PM jobor threshold creation process.
post: post:
description: > description: >
The POST method delivers a notification regarding a performance management event The POST method delivers a notification regarding a performance management event
from the API producer to an API consumer. The API consumer shall have previously from the API producer to an API consumer. The API consumer shall have previously
created an "Individual subscription" resource with a matching filter. created an " Individual PM job resource" or "Individual threshold resource". See clause 6.5.10.3.1.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
...@@ -47,7 +46,7 @@ paths: ...@@ -47,7 +46,7 @@ paths:
$ref: "#/components/requestBodies/PerfomanceInfoNotification" $ref: "#/components/requestBodies/PerfomanceInfoNotification"
responses: responses:
"204": "204":
$ref: "#/components/responses/notification.post.204" $ref: "#/components/responses/Notification.Post.204"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -72,14 +71,14 @@ paths: ...@@ -72,14 +71,14 @@ paths:
get: get:
description: > description: >
The GET method allows the server to test the notification endpoint that is The GET method allows the server to test the notification endpoint that is
provided by the client, e.g. during subscription. provided by the client, e.g. during creation of the PM job or threshold. See clause 6.5.10.3.2.
parameters: parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version" - $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept" - $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization" - $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses: responses:
"204": "204":
$ref: "#/components/responses/notification.get.204" $ref: "#/components/responses/Notification.Get.204"
"400": "400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400 $ref: ../components/SOL009_resp.yaml#/components/responses/400
"401": "401":
...@@ -103,7 +102,7 @@ paths: ...@@ -103,7 +102,7 @@ paths:
components: components:
responses: responses:
notification.post.204: Notification.Post.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
...@@ -122,7 +121,7 @@ components: ...@@ -122,7 +121,7 @@ components:
schema: schema:
type: string type: string
notification.get.204: Notification.Get.204:
description: > description: >
204 NO CONTENT 204 NO CONTENT
...@@ -168,6 +167,17 @@ components: ...@@ -168,6 +167,17 @@ components:
The notification shall be triggered by the NFV-MANO functional entity when The notification shall be triggered by the NFV-MANO functional entity when
a threshold has been crossed. a threshold has been crossed.
type: object type: object
required:
- id
- notificationType
- timeStamp
- thresholdId
- crossingDirection
- objectType
- objectInstanceId
- performanceMetric
- performanceValue
- _links
properties: properties:
id: id:
description: > description: >
...@@ -180,10 +190,6 @@ components: ...@@ -180,10 +190,6 @@ components:
Discriminator for the different notification types. Shall be set to Discriminator for the different notification types. Shall be set to
"ThresholdCrossedNotification" for this notification type. "ThresholdCrossedNotification" for this notification type.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/String" $ref: "../components/SOL009_schemas.yaml#/components/schemas/String"
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
timeStamp: timeStamp:
description: > description: >
Date and time of the generation of the notification. Date and time of the generation of the notification.
...@@ -234,10 +240,6 @@ components: ...@@ -234,10 +240,6 @@ components:
Links to resources related to this notification. Links to resources related to this notification.
type: object type: object
properties: properties:
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
objectInstance: objectInstance:
description: > description: >
Link to the resource representing the measured object instance to which Link to the resource representing the measured object instance to which
...@@ -249,25 +251,20 @@ components: ...@@ -249,25 +251,20 @@ components:
Link to the resource that represents the threshold that was crossed. Link to the resource that represents the threshold that was crossed.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required: required:
- subscription
- objectInstance - objectInstance
PerformanceInformationAvailableNotification:
description: >
This notification informs the receiver that performance information is available.
type: object
required: required:
- id - id
- notificationType - notificationType
- subscriptionId - pmJobId
- timeStamp - timeStamp
- thresholdId
- crossingDirection
- objectType - objectType
- objectInstanceId - objectInstanceId
- performanceMetric
- performanceValue
- _links - _links
PerformanceInformationAvailableNotification:
description: >
This notification informs the receiver that performance information is available.
type: object
properties: properties:
id: id:
description: > description: >
...@@ -281,14 +278,14 @@ components: ...@@ -281,14 +278,14 @@ components:
Shall be set to "PerformanceInformationAvailableNotification" for this Shall be set to "PerformanceInformationAvailableNotification" for this
notification type. notification type.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/String" $ref: "../components/SOL009_schemas.yaml#/components/schemas/String"
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
timeStamp: timeStamp:
description: > description: >
Date and time of the generation of the notification. Date and time of the generation of the notification.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime" $ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
pmJobId:
description: >
Identifier of the PM job for which performance information is available.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
objectType: objectType:
description: > description: >
Type of measured object. Type of measured object.
...@@ -314,10 +311,6 @@ components: ...@@ -314,10 +311,6 @@ components:
Links to resources related to this notification. Links to resources related to this notification.
type: object type: object
properties: properties:
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
objectInstance: objectInstance:
description: > description: >
Link to the resource representing the measured object instance to which the Link to the resource representing the measured object instance to which the
...@@ -336,15 +329,6 @@ components: ...@@ -336,15 +329,6 @@ components:
This link should point to an "Individual performance report" resource. This link should point to an "Individual performance report" resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink" $ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required: required:
- subscription
- pmJob - pmJob
- performanceReport - performanceReport
required:
- id
- notificationType
- subscriptionId
- timeStamp
- objectType
- objectInstanceId
- _links
...@@ -18,7 +18,6 @@ endpoints: ...@@ -18,7 +18,6 @@ endpoints:
schema: schema:
type: string type: string
get: get:
summary: Retrieve API version information
description: > description: >
The GET method reads API version information. This method shall follow the provisions specified in 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 table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
...@@ -65,8 +64,6 @@ endpoints: ...@@ -65,8 +64,6 @@ endpoints:
$ref: '../components/SOL009_resp.yaml#/components/responses/403' $ref: '../components/SOL009_resp.yaml#/components/responses/403'
404: 404:
$ref: '../components/SOL009_resp.yaml#/components/responses/404' $ref: '../components/SOL009_resp.yaml#/components/responses/404'
405:
$ref: '../components/SOL009_resp.yaml#/components/responses/405'
406: 406:
$ref: '../components/SOL009_resp.yaml#/components/responses/406' $ref: '../components/SOL009_resp.yaml#/components/responses/406'
413: 413:
...@@ -84,4 +81,32 @@ endpoints: ...@@ -84,4 +81,32 @@ endpoints:
503: 503:
$ref: '../components/SOL009_resp.yaml#/components/responses/503' $ref: '../components/SOL009_resp.yaml#/components/responses/503'
504: 504:
$ref: '../components/SOL009_resp.yaml#/components/responses/504' $ref: '../components/SOL009_resp.yaml#/components/responses/504'
\ No newline at end of file post:
description: >
This method is not supported. When this method is requested on this resource, the API producer shall return a "405
Method Not Allowed" response as defined in SOL013 clause 6.4.
responses:
405:
$ref: '../components/SOL009_resp.yaml#/components/responses/405'
put:
description: >
This method is not supported. When this method is requested on this resource, the API producer shall return a "405
Method Not Allowed" response as defined in SOL013 clause 6.4.
responses:
405:
$ref: '../components/SOL009_resp.yaml#/components/responses/405'
patch:
description: >
This method is not supported. When this method is requested on this resource, the API producer shall return a "405
Method Not Allowed" response as defined in SOL013 clause 6.4.
responses:
405:
$ref: '../components/SOL009_resp.yaml#/components/responses/405'
delete:
description: >
This method is not supported. When this method is requested on this resource, the API producer shall return a "405
Method Not Allowed" response as defined in SOL013 clause 6.4.
responses:
405:
$ref: '../components/SOL009_resp.yaml#/components/responses/405'
\ No newline at end of file