Commits (51)
# NFV SOL009 - OpenAPIs for the management of NFV-MANO
This repository contains OpenAPIs for ETSI GS NFV-SOL 009, RESTful protocols
specification for the management of NFV-MANO.
This repository contains OpenAPIs for ETSI GS NFV-SOL 009 v3.5.1, RESTful protocols
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).
......
openapi: 3.0.2
info:
version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - API version interface
description: >
description: |
SOL009 - API version Interface
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 approved by the ETSI NFV ISG. In case of
IMPORTANT: Please note that this file might be not aligned to the current
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to
https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
Please report bugs to https://forge.etsi.org/rep/nfv/SOL009/issues
contact:
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:
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
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
paths:
/nfvmanocim/api_versions:
......
openapi: 3.0.2
info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Configuration and Information Management Interface
description: >
description: |
SOL009 - NFV-MANO Configuration and Information Management Interface
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
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
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:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: NFV-SOL WG
version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
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
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers:
- url: http://0.0.0.0/nfvmanocim/v1
description: >
API HTTP Server
- url: https://0.0.0.0/nfvmanocim/v1
description: >
API HTTPS Server
- url: http://127.0.0.1/nfvmanocim/v2
- url: https://127.0.0.1/nfvmanocim/v2
paths:
/api_versions:
......@@ -34,18 +33,15 @@ paths:
/mano_entity:
get:
description: >
Retrives information about an NFV-MANO functional entity
by reading the NFV-MANO entity resource.
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.
The GET method retrieves information about an NFV-MANO functional entity by reading the NFV-MANO entity resource.
See clause 5.5.3.3.2.
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/mano_entity.get.200"
$ref: "#/components/responses/ManoEntity.Get.200"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -68,13 +64,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
patch:
description: >
Modifies the NFV-MANO entity resource.
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.
The PATCH method modifies the NFV-MANO entity resource. See clause 5.5.3.3.4.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -83,11 +73,11 @@ paths:
$ref: "#/components/requestBodies/ModifyManoEntityRequest"
responses:
"200":
$ref: "#/components/responses/mano_entity.patch.200"
$ref: "#/components/responses/ManoEntity.Patch.200"
"409":
$ref: "#/components/responses/mano_entity.patch.409"
$ref: "#/components/responses/ManoEntity.Patch.409"
"412":
$ref: "#/components/responses/mano_entity.patch.412"
$ref: "#/components/responses/ManoEntity.Patch.412"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -112,12 +102,8 @@ paths:
/mano_entity/change_state:
post:
description: >
Requests to change the state of the NFV-MANO functional
entity application.
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.
The POST method requests to change the state of the NFV-MANO functional entity application.
See clause 5.5.7.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -126,9 +112,9 @@ paths:
$ref: "#/components/requestBodies/ChangeManoEntityStateRequest"
responses:
"202":
$ref: "#/components/responses/mano_entity-change_state.post.202"
$ref: "#/components/responses/ChangeState.Post.202"
"409":
$ref: "#/components/responses/mano_entity-change_state.post.409"
$ref: "#/components/responses/ChangeState.Post.409"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -153,11 +139,8 @@ paths:
/mano_entity/mano_interfaces:
get:
description: >
Queries information about multiple NFV-MANO service interfaces of
the NFV-MANO functional entity.
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.
The GET method queries information about multiple NFV-MANO service interfaces
of the NFV-MANO functional entity. See clause 5.5.10.3.2.
parameters:
- $ref: "#/components/parameters/filter.ManoServiceInterface"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
......@@ -170,9 +153,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/mano_entity-mano_interfaces.get.200"
$ref: "#/components/responses/ManoInterfaces.Get.200"
"400":
$ref: "#/components/responses/mano_entity-mano_interfaces.get.400"
$ref: "#/components/responses/ManoInterfaces.Get.400"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -191,25 +174,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
/mano_entity/mano_interfaces/{manoServiceInterfaceId}:
parameters:
- $ref: "#/components/parameters/manoServiceInterfaceId"
get:
description: >
retrieves information about an NFV-MANO service interface of the
producer NFV-MANO functional entity by reading an "Individual
NFV-MANO service interface" resource.
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.
The GET method retrieves information about an NFV-MANO service interface of the producer
NFV-MANO functional entity by reading an "Individual NFV-MANO service interface" resource.
See clause 5.5.11.3.2.
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/mano_entity-mano_interface.get.200"
$ref: "#/components/responses/IndividualManoInterface.Get.200"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -230,16 +210,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
patch:
description: >
Modifies an "Individual NFV-MANO service interface" resource.
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.
This method is used to modify an "Individual NFV-MANO service interface" resource. See clause 5.5.11.3.4.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -248,11 +219,11 @@ paths:
$ref: "#/components/requestBodies/ModifyManoEnityInterfaceRequest"
responses:
"200":
$ref: "#/components/responses/mano_entity-mano_interface.patch.200"
$ref: "#/components/responses/IndividualManoInterface.Patch.200"
"409":
$ref: "#/components/responses/mano_entity-mano_interface.patch.409"
$ref: "#/components/responses/IndividualManoInterface.Patch.409"
"412":
$ref: "#/components/responses/mano_entity-mano_interface.patch.412"
$ref: "#/components/responses/IndividualManoInterface.Patch.412"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -279,12 +250,8 @@ paths:
- $ref: "#/components/parameters/manoServiceInterfaceId"
post:
description: >
Requests to change the state of the NFV-MANO service interface
produced by the NFV-MANO functional entity.
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.
The POST method requests to change the state of the NFV-MANO service interface
produced by the NFV-MANO functional entity. See clause 5.5.12.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -293,9 +260,9 @@ paths:
$ref: "#/components/requestBodies/ChangeManoEntityInterfaceStateRequest"
responses:
"202":
$ref: "#/components/responses/mano_entity-mano_interface-change_state.post.202"
$ref: "#/components/responses/ManoInterfaceChangeState.Post.202"
"409":
$ref: "#/components/responses/mano_entity-mano_interface-change_state.post.409"
$ref: "#/components/responses/ManoInterfaceChangeState.Post.409"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -320,11 +287,7 @@ paths:
/subscriptions:
post:
description: >
Creates a new subscription.
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.
The POST method creates a new subscription. See clause 5.5.4.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -333,9 +296,11 @@ paths:
$ref: "#/components/requestBodies/CimSubscriptionRequest"
responses:
"201":
$ref: "#/components/responses/subscriptions.post.201"
$ref: "#/components/responses/Subscriptions.Post.201"
"303":
$ref: "#/components/responses/subscriptions.post.303"
$ref: "#/components/responses/Subscriptions.Post.303"
"422":
$ref: "#/components/responses/Subscriptions.Post.422"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -348,8 +313,6 @@ paths:
$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":
......@@ -358,13 +321,9 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
get:
description: >
queries the list of active subscriptions of the API consumer that
invokes the method. It can be used, e.g., for resynchronization
after error situations.
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.
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 after error situations.
See clause 5.5.4.3.2.
parameters:
- $ref: "#/components/parameters/filter.CimSubscription"
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
......@@ -373,9 +332,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/subscriptions.get.200"
$ref: "#/components/responses/Subscriptions.Get.200"
"400":
$ref: "#/components/responses/subscriptions.get.400"
$ref: "#/components/responses/Subscriptions.Get.400"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -400,19 +359,15 @@ paths:
- $ref: "#/components/parameters/subscriptionId"
get:
description: >
Retrieves information about a subscription by reading an "Individual
subscription" resource.
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.
The GET method retrieves information about a subscription by reading an "Individual subscription" resource.
See clause 5.5.5.3.2.
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/subscription.get.200"
$ref: "#/components/responses/Subscription.Get.200"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -435,18 +390,14 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
delete:
description: >
Terminates an individual subscription.
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.
The DELETE method terminates an individual subscription. See clause 5.5.5.3.5.
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:
"204":
$ref: "#/components/responses/subscription.delete.204"
$ref: "#/components/responses/Subscription.Delete.204"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -472,11 +423,7 @@ paths:
get:
description: >
The API consumer can use the GET method to query status information
about multiple change state operation occurrences.
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.
about multiple change state operation occurrences. See clause 5.5.8.3.2.
parameters:
- $ref: "#/components/parameters/filter.ChangeStateOpOcc"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
......@@ -489,9 +436,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/change_state_ops.get.200"
$ref: "#/components/responses/ChangeStateOpOcc.Get.200"
"400":
$ref: "#/components/responses/change_state_ops.get.400"
$ref: "#/components/responses/ChangeStateOpOcc.Get.400"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -518,18 +465,14 @@ paths:
description: >
The API consumer can use the GET method to retrieve status
information about a change state operation occurrence by reading
an "Individual change state operation occurrence" resource.
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.
an "Individual change state operation occurrence" resource. See clause 5.5.9.3.2.
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/change_state_op.get.200"
$ref: "#/components/responses/IndividualChangeStateOpOcc.Get.200"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -554,13 +497,9 @@ paths:
/peer_entities:
post:
description: >
Creates in the producer NFV-MANO functional entity a new peer
entity resource which contains configuration and information
with regards to the peer functional entity.
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.
The POST method creates in the producer NFV-MANO functional entity a new peer
entity resource which contains configuration and information with regards to the
peer functional entity. See clause 5.5.13.3.1
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -569,7 +508,7 @@ paths:
$ref: "#/components/requestBodies/CreatePeerEntityRequest"
responses:
"201":
$ref: "#/components/responses/peer_entities.post.201"
$ref: "#/components/responses/PeerEntities.Post.201"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -592,12 +531,8 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
get:
description: >
Queries information and configuration in the producer NFV-MANO
functional entity with regards to multiple peer entities.
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.
The GET method queries information and configuration in the producer NFV-MANO functional
entity with regards to multiple peer entities. See clause 5.5.13.3.2.
parameters:
- $ref: "#/components/parameters/filter.PeerEntity"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
......@@ -610,9 +545,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/peer_entities.get.200"
$ref: "#/components/responses/PeerEntities.Get.200"
"400":
$ref: "#/components/responses/peer_entities.get.400"
$ref: "#/components/responses/PeerEntities.Get.400"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -637,20 +572,15 @@ paths:
- $ref: "#/components/parameters/peerEntityId"
get:
description: >
Retrieves information and configuration hold in the producer NFV-MANO
functional entity with regards to a peer entity by reading an individual
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.
The GET method retrieves information and configuration hold in the producer NFV-MANO functional entity
with regards to a peer entity by reading an individual peer entity resource. See clause 5.5.14.3.2.
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/peer_entitie.get.200"
$ref: "#/components/responses/IndividualPeerEntity.Get.200"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -673,18 +603,9 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
patch:
description: >
Modifies configuration and information of the producer NFV-MANO
functional entity with regards to a peer functional entity by
updating the corresponding "Individual peer entity" resource.
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.
This method modifies configuration and information of the producer NFV-MANO functional
entity with regards to a peer functional entity by updating the corresponding
"Individual peer entity" resource. See clause 5.5.14.3.4.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -693,11 +614,11 @@ paths:
$ref: "#/components/requestBodies/ModifyPeerEntityRequest"
responses:
"200":
$ref: "#/components/responses/peer_entitie.patch.200"
$ref: "#/components/responses/IndividualPeerEntity.Patch.200"
"409":
$ref: "#/components/responses/peer_entitie.patch.409"
$ref: "#/components/responses/IndividualPeerEntity.Patch.409"
"412":
$ref: "#/components/responses/peer_entitie.patch.412"
$ref: "#/components/responses/IndividualPeerEntity.Patch.412"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -718,29 +639,21 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
delete:
description: >
Ddeletes an individual peer entity resource. By deleting such
a resource in the producer NFV-MANO functional entity representing
a peer NFV-MANO entity, the configuration and information with
regards to such peer entity is deleted. Consequently, the peering
relationship between the producer NFV-MANO functional entity and
the peer entity is terminated, i.e., the producer NFV-MANO functional
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.
This method deletes an individual peer entity resource. By deleting such a resource in the
producer NFV-MANO functional entity representing a peer NFV-MANO entity, the configuration
and information with regards to such peer entity is deleted. Consequently, the peering relationship
between the producer NFV-MANO functional entity and the peer entity is terminated, i.e.
the producer NFV-MANO functional entity does not have the necessary information to
communicate/interact with the peer entity. See clause 5.5.14.3.5.
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:
"204":
$ref: "#/components/responses/peer_entitie.delete.204"
$ref: "#/components/responses/IndividualPeerEntity.Delete.204"
"409":
$ref: "#/components/responses/peer_entitie.delete.409"
"412":
$ref: "#/components/responses/peer_entitie.delete.412"
$ref: "#/components/responses/IndividualPeerEntity.Delete.409"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -751,6 +664,8 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/405
"406":
$ref: ../components/SOL009_resp.yaml#/components/responses/406
"412":
$ref: ../components/SOL009_resp.yaml#/components/responses/412
"422":
$ref: ../components/SOL009_resp.yaml#/components/responses/422
"500":
......@@ -765,6 +680,13 @@ components:
ManoEntity:
description: >
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
required:
- id
......@@ -808,14 +730,11 @@ components:
softwareVersion:
description: >
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:
description: >
The deployed NFV-MANO functional entity components which realize the
NFV-MANO functional entity.
NOTE: It is optional for the API producer to support the "manoEntityComponents"
attribute.
NFV-MANO functional entity. See note 5.
type: array
items:
$ref: "#/components/schemas/ManoEntityComponent"
......@@ -857,35 +776,20 @@ components:
$ref: "#/components/schemas/UsageStateEnumType"
nfvoSpecificInfo:
description: >
The information specific to an NFVO entity.
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.
The information specific to an NFVO entity. See note 1 and not 4.
$ref: "#/components/schemas/NfvoSpecificInfo"
vnfmSpecificInfo:
description: >
The information specific to a VNFM entity.
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.
The information specific to a VNFM entity. See note 2 and not 4.
$ref: "#/components/schemas/VnfmSpecificInfo"
vimSpecificInfo:
description: >
The information specific to an VIM entity.
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.
The information specific to an VIM entity. See note 3 and not 4.
$ref: "#/components/schemas/VimSpecificInfo"
wimSpecificInfo:
description: >
The information specific to a WIM entity. See notes 4 and note 6.
$ref: "#/components/schemas/WimSpecificInfo"
_links:
description: >
Links to resources related to this resource.
......@@ -916,7 +820,9 @@ components:
ManoConfigModificationRequest:
description: >
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
properties:
name:
......@@ -929,19 +835,12 @@ components:
type: string
clockSyncs:
description: >
New content of certain entries in the "clockSyncs" attribute array in
the "ManoEntityConfigurableParams", as defined below this table.
type: array
items:
Modifications of the "clockSyncs" attribute in the "ManoEntityConfigurableParams".
If present, these modifications shall be applied according to the rules of JSON Merge PATCH
(see IETF RFC 7396).
type: object
additionalProperties:
$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:
description: >
New value of the "defaultLogCompileBySizeValue" attribute in the
......@@ -956,9 +855,25 @@ components:
description: >
New content of certain entries in the "manoServices" attribute array
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
items:
type: object
required:
- id
properties:
id:
description: >
......@@ -966,20 +881,12 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
name:
description: >
New value for the "name" attribute in the "ManoService".
NOTE: At least one of these attributes shall be provided if requesting
a modification of the NFV-MANO service identified by "id".
New value for the "name" attribute in the "ManoService". See note.
type: string
description:
description: >
New value for the "description" attribute in the "ManoService".
NOTE: At least one of these attributes shall be provided if requesting
a modification of the NFV-MANO service identified by "id".
New value for the "description" attribute in the "ManoService". See note.
type: string
required:
- id
ManoConfigModifications:
description: >
......@@ -999,22 +906,13 @@ components:
If present, this attribute signals modifications of the "description"
attribute in "ManoEntity", as defined in clause 5.6.2.3.
type: string
clockSyncs:
clockSyncs:
description: >
If present, this attribute signals modifications of the "clockSyncs"
attribute in "ManoEntityConfigurableParams", as defined in
clause 5.6.2.3.
type: array
items:
If present, this attribute signals modifications of the "clockSyncs" attribute in
"ManoEntityConfigurableParams", as defined in clause 5.6.2.3.
type: object
additionalProperties:
$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:
description: >
If present, this attribute signals modifications of the
......@@ -1057,6 +955,8 @@ components:
This type represents a subscription request related to notifications
about NFV-MANO configuration and information management changes.
type: object
required:
- callbackUri
properties:
filter:
description: >
......@@ -1077,14 +977,16 @@ components:
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
required:
- callbackUri
CimSubscription:
description: >
This type represents a subscription related to notifications about
NFV-MANO configuration and information management changes
type: object
required:
- id
- callbackUri
- _links
properties:
id:
description: >
......@@ -1111,23 +1013,22 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
required:
- self
required:
- id
- callbackUri
- _links
ChangeStateRequest:
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
properties:
operationalStateChange:
description: >
A change of operational state. Shall be present if the state change request
refers to the operational state.
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"),
refers to the operational state. See note 1.
but not both.
type: object
properties:
......@@ -1139,47 +1040,39 @@ components:
$ref: "#/components/schemas/ChangeOperationalStateEnumType"
stopType:
description: >
It signals the type of stop.
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.
It signals the type of stop. See note 2.
$ref: "#/components/schemas/StopEnumType"
gracefulStopTimeout:
description: >
The time internal (in seconds) to wait for the entity to be taken out
of service during graceful stop.
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.
of service during graceful stop. See note 2.
type: integer
required:
- operationalStateAction
administrativeStateChange:
description: >
A change of administrative state. Shall be present if the state change request
refers to the administrative state.
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"),
refers to the administrative state. See note 1.
but not both.
type: object
required:
- administrativeStateAction
properties:
administrativeStateAction:
description: >
The desired administrative state to change the managed object to.
$ref: "#/components/schemas/ChangeAdministrativeStateEnumType"
required:
- administrativeStateAction
ChangeStateOpOcc:
description: >
This type represents a Change state operation occurrence.
type: object
required:
- id
- operationState
- stateEnteredTime
- startTime
- managedObjectRef
properties:
id:
description: >
......@@ -1229,18 +1122,34 @@ components:
to reading an individual resource, and may be present according to the chosen
attribute selector parameter if this data type is returned in a response to
a query of a container resource.
required:
- id
- operationState
- stateEnteredTime
- startTime
- managedObjectRef
ManoServiceInterface:
description: >
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
required:
- id
- name
- type
- standardVersion
- providerSpecificApiVersion
- apiVersion
- apiEndpoint
- supportedOperations
- interfaceState
properties:
id:
description: >
......@@ -1259,11 +1168,7 @@ components:
type: string
standardVersion:
description: >
Version of the standard the interface is compliant to.
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)".
Version of the standard the interface is compliant to. See note 1.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
providerSpecificApiVersion:
description: >
......@@ -1317,11 +1222,7 @@ components:
- apiUri
maxConcurrentIntOpNumber:
description: >
Maximum number of concurrent operation requests supported on this interface.
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.
Maximum number of concurrent operation requests supported on this interface. See note 2.
type: integer
supportedOperations:
description: >
......@@ -1336,11 +1237,7 @@ components:
type: string
maxConcurrentOpNumber:
description: >
Maximum number of concurrent requests supported by the interface operation.
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.
Maximum number of concurrent requests supported by the interface operation. See note 2.
type: integer
required:
- operationName
......@@ -1369,18 +1266,7 @@ components:
description: >
Security related information.
This attribute can be modified with the PATCH method.
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.
This attribute can be modified with the PATCH method. See note 3.
$ref: "#/components/schemas/ServerInterfaceSecurityInfo"
metadata:
description: >
......@@ -1389,60 +1275,39 @@ components:
These attributes can be created, modified or removed with the PATCH
method.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
required:
- id
- name
- type
- standardVersion
- providerSpecificApiVersion
- apiVersion
- apiEndpoint
- supportedOperations
- interfaceState
ManoServiceInterfaceModificationRequest:
description: >
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
properties:
name:
description: >
New value of the "name" attribute in "ManoServiceInterface".
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).
New value of the "name" attribute in "ManoServiceInterface". See note 1.
type: string
apiRoot:
description: >
New value of the "apiRoot" attribute in "ManoServiceInterface".
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.
New value of the "apiRoot" attribute in "ManoServiceInterface". See note 2.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
apiUri:
description: >
New value of the "apiUri" attribute in "ManoServiceInterface".
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.
New value of the "apiUri" attribute in "ManoServiceInterface". See note 2.
Shall not be provided if a change of "apiRoot" is present in the request.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
securityInfo:
description: >
New value of the "securityInfo" attribute in "ManoServiceInterface".
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.
New value of the "securityInfo" attribute in "ManoServiceInterface". See note 3.
$ref: "#/components/schemas/ServerInterfaceSecurityInfo"
metadata:
description: >
......@@ -1458,7 +1323,12 @@ components:
be included consist of those requested to be modified explicitly in the
"ManoServiceInterfaceModificationRequest" data structure. If applicable,
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
properties:
name:
......@@ -1479,14 +1349,7 @@ components:
securityInfo:
description: >
If present, this attribute signals modifications of the "securityInfo"
attribute in "ManoServiceInterface", as defined in clause 5.6.2.11.
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.
attribute in "ManoServiceInterface", as defined in clause 5.6.2.11. See note.
$ref: "#/components/schemas/ServerInterfaceSecurityInfo"
metadata:
description: >
......@@ -1496,17 +1359,19 @@ components:
CreatePeerEntityRequest:
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
required:
- peerEntityId
- name
- type
properties:
peerEntityId:
description: >
Identifier of the peer functional entity.
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.
Identifier of the peer functional entity. See note.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
name:
description: >
......@@ -1522,10 +1387,10 @@ components:
type: string
consumedManoInterfaces:
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.
type: array
items:
type: object
additionalProperties:
$ref: "#/components/schemas/ConsumedManoInterfaceInfo"
peerEntityState:
description: >
......@@ -1543,15 +1408,22 @@ components:
required:
- operationalState
- administrativeState
required:
- peerEntityId
- name
- type
PeerEntity:
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
required:
- id
- peerEntityId
- name
- type
- peerEntityState
properties:
id:
description: >
......@@ -1560,12 +1432,7 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
peerEntityId:
description: >
Identifier of the peer functional entity.
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.
Identifier of the peer functional entity. See note 1.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
name:
description: >
......@@ -1589,8 +1456,12 @@ components:
from the peer functional entity.
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"
peerEntityState:
description: >
......@@ -1609,17 +1480,16 @@ components:
required:
- operationalState
- administrativeState
required:
- id
- peerEntityId
- name
- type
- peerEntityState
PeerEntityConfigModificationRequest:
description: >
This type represents attribute modifications for configuration parameters
of a peer entity.
This type represents attribute modifications for configuration parameters 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
properties:
name:
......@@ -1633,27 +1503,14 @@ components:
type: string
consumedManoInterfaces:
description: >
New content of certain entries in the "consumedManoInterfaces" attribute
array in the "PeerEntity", as defined below this table.
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: array
items:
Modification of the "consumedManoInterfaces" attribute
in the "PeerEntity", as defined below this table.
If present, these modifications shall be applied according to the rules of
JSON Merge PATCH (see IETF RFC 7396). See note.
type: object
additionalProperties:
$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:
description: >
New content of the "operationalState" attribute in the "peerEntityState"
......@@ -1673,6 +1530,11 @@ components:
"PeerEntityConfigModificationRequest" data structure. If applicable,
additional attributes of the "PeerEntity" data structure that were
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
properties:
name:
......@@ -1687,28 +1549,12 @@ components:
type: string
consumedManoInterfaces:
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
clause 5.6.2.15.
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: array
items:
clause 5.6.2.15. See note.
type: object
additionalProperties:
$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:
description: >
If present, this attribute signals modifications of the "operationalState"
......@@ -1734,6 +1580,8 @@ components:
NFV-MANO functional entity. It is optional for the API producer to support
this type.
type: object
required:
- id
properties:
id:
description: >
......@@ -1748,14 +1596,20 @@ components:
type: array
items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
required:
- id
ManoService:
description: >
This type represents information about an NFV-MANO service provided by the
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
required:
- id
- name
- description
- manoServiceInterfaceIds
- _links
properties:
id:
description: >
......@@ -1778,11 +1632,7 @@ components:
Reference to the NFV-MANO interfaces associated to the NFV-MANO service.
If cardinality is greater than one, the type of ManoServiceInterface
(see clause 5.6.3.3) shall be the same. The identifier of the
ManoServiceInterface is referred.
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.
ManoServiceInterface is referred. See note
type: array
items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/IdentifierInManoEntity"
......@@ -1802,33 +1652,26 @@ components:
minItems: 1
required:
- manoServiceInterfaces
required:
- id
- name
- description
- manoServiceInterfaceIds
- _links
NfvoSpecificInfo:
description: >
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
NFVO entity.
and that can be relevant to more than one NFV-MANO service offered by an 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
required:
- supportedVnfdFormats
- supportedNsdFormats
properties:
maxOnboardedNsdNum:
description: >
Maximum number of NSDs that can be on-boarded on the NFVO.
NOTE: If this attribute is not present, the value of this parameter
is undefined.
Maximum number of NSDs that can be on-boarded on the NFVO. See note 2.
type: integer
maxOnboardedVnfPkgNum:
description: >
Maximum number of VNF Packages that can be on-boarded on the NFVO.
NOTE: If this attribute is not present, the value of this parameter
is undefined.
Maximum number of VNF Packages that can be on-boarded on the NFVO. See note 2.
type: integer
supportedVnfdFormats:
description: >
......@@ -1850,11 +1693,7 @@ components:
- YANG
standardVersion:
description: >
Name and version of the standard the VNFD is compliant to.
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)".
Name and version of the standard the VNFD is compliant to. See note 1.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
required:
- vnfdFormat
......@@ -1879,25 +1718,23 @@ components:
- YANG
standardVersion:
description: >
Name and version of the standard the NSD is compliant to.
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)".
Name and version of the standard the NSD is compliant to. See note 1.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
required:
- nsdFormat
- standardVersion
required:
- supportedVnfdFormats
- supportedNsdFormats
VnfmSpecificInfo:
description: >
This type represents information attributes specific to a VNFM entity,
and that can be relevant to more than one NFV-MANO service offered by
a VNFM entity.
and that can be relevant to more than one NFV-MANO service offered by 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
required:
- resoruceMgmtModeSupport
- managedVnfInstanceInfos
- supportedVnfdFormats
properties:
resoruceMgmtModeSupport:
description: >
......@@ -1943,20 +1780,12 @@ components:
- YANG
standardVersion:
description: >
Name and version of the standard the VNFD is compliant to.
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)".
Name and version of the standard the VNFD is compliant to. See note
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
required:
- vnfdFormat
- standardVersion
minItems: 1
required:
- resoruceMgmtModeSupport
- managedVnfInstanceInfos
- supportedVnfdFormats
VimSpecificInfo:
description: >
......@@ -1964,19 +1793,93 @@ components:
and that can be relevant to more than one NFV-MANO service offered by
a VIM entity.
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:
description: >
This type represents list of parameters that can be configured on the
NFV MANO functional entity.
type: object
required:
- clockSyncs
- defaultLogCompileBySizeValue
- defaultLogCompileByTimerValue
properties:
clockSyncs:
description:
description: >
Properties of the clock synchronization to be used by the NFV-MANO
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"
minItems: 1
defaultLogCompileBySizeValue:
......@@ -1987,22 +1890,29 @@ components:
description:
Default value for the log compilation by timer to be used.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/UnsignedInt"
required:
- clockSyncs
- defaultLogCompileBySizeValue
- defaultLogCompileByTimerValue
ConsumedManoInterfaceInfo:
description: >
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
required:
- id
- name
- type
- standardVersion
- apiVersion
- apiEndpoint
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:
description: >
Human-readable name of the NFV-MANO interface.
......@@ -2014,11 +1924,7 @@ components:
type: string
standardVersion:
description: >
Version of the standard the interface is compliant to.
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)".
Version of the standard the interface is compliant to. See note 1.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Version"
apiVersion:
description: >
......@@ -2065,31 +1971,15 @@ components:
securityInfo:
description: >
Security related information including credentials information if needed
for consuming the API.
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.
for consuming the API. See note 2.
$ref: "#/components/schemas/ClientInterfaceSecurityInfo"
required:
- id
- name
- type
- standardVersion
- apiVersion
- apiEndpoint
CimNotificationsFilter:
description: >
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
properties:
manoEntitySubscriptionFilter:
......@@ -2105,9 +1995,7 @@ components:
- InformationChangedNotification
- ChangeStateNotification
NOTE: The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to facilitate
automated code generation systems.
See note.
type: array
items:
type: string
......@@ -2117,14 +2005,12 @@ components:
ClockSyncInfo:
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
required:
- type
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:
description: >
Type of clock synchronization.
......@@ -2138,38 +2024,33 @@ components:
- OTHER
ntpServerInfo:
description: >
Information for the NTP based clock synchronization.
Shall be present if type = "NTP".
Information for the NTP based clock synchronization. Shall be present if type = "NTP".
type: object
properties:
ipAddress:
description: >
0..1 IP address of the NTP server.
NOTE: Either ipAddress or hostname shall be set, but not both
at the same time.
IP address of the NTP server. See note
$ref: "../components/SOL009_schemas.yaml#/components/schemas/IpAddress"
hostname:
description: >
Indicates the hostname of the NTP server.
NOTE: Either ipAddress or hostname shall be set, but not both
at the same time.
Indicates the hostname of the NTP server. See note.
type: string
otherClockSyncParams:
description: >
Information for the other types of clock synchronization.
May be present if type = "OTHER".
$ref: "../components/SOL009_schemas.yaml#/components/schemas/KeyValuePairs"
required:
- id
- type
ServerInterfaceSecurityInfo:
description: >
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
required:
- authType
- oauthServerInfo
properties:
authType:
description: >
......@@ -2193,16 +2074,17 @@ components:
description: >
OAuth 2.0 authorization server information and configuration.
type: object
required:
- providedConfiguration
- tlsCipherSuites
properties:
dynamicDiscovery:
description: >
Configuration data used when performing dynamic discovery of
the authorization server identifier.
NOTE: Provided configuration of the OAuth 2.0 authorization
server information and configuration shall be supported, and
dynamic configuration may be supported.
the authorization server identifier. See note.
type: object
required:
- webFingerHost
properties:
webFingerHost:
description: >
......@@ -2210,36 +2092,27 @@ components:
the request to the WebFinger resource shall conform as specified
in clause 5.1.3 of ETSI GS NFV-SEC 022.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
required:
- webFingerHost
providedConfiguration:
description: >
Configuration data used to setup the authorization server identifier.
NOTE: Provided configuration of the OAuth 2.0 authorization
server information and configuration shall be supported, and
dynamic configuration may be supported.
Configuration data used to setup the authorization server identifier. See note.
type: object
required:
- authServerId
properties:
authServerId:
description: >
Authorization server identifier as defined in ETSI GS NFV-SEC 022.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
required:
- authServerId
tlsCipherSuites:
description: >
List of cipher suites that shall be declared as supported by the
API producer when performing the SSL or TLS negotiation with the
authorization server. Valid values of cipher suites are defined
List of cipher suites that shall be declared as supported by the
API producer when performing the SSL or TLS negotiation with the
authorization server. Valid values of cipher suites are defined
in IETF RFC 8447.
type: array
items:
type: string
minItems: 1
required:
- providedConfiguration
- tlsCipherSuites
minItems: 1
tlsTunnelInfo:
description: >
Information and configuration related to the use of TLS tunnel.
......@@ -2247,7 +2120,7 @@ components:
type: object
properties:
tlsTunnelCipherSuites:
description:
description: >
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.
Valid values of cipher suites are defined in IETF RFC 8447.
......@@ -2257,14 +2130,13 @@ components:
minItems: 1
required:
- tlsTunnelCipherSuites
required:
- authType
- oauthServerInfo
ClientInterfaceSecurityInfo:
description: >
This type represents security related information for accessing an NFV-MANO
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
required:
- authType
......@@ -2297,10 +2169,7 @@ components:
dynamicDiscovery:
description: >
Configuration data used when performing dynamic discovery of the authorization
server identifier.
NOTE: Provided configuration of the OAuth 2.0 authorization server information
and configuration shall be supported, and dynamic configuration may be supported.
server identifier. See note.
type: object
required:
- webFingerHost
......@@ -2314,10 +2183,7 @@ components:
format: uri
providedConfiguration:
description: >
Configuration data used to setup the authorization server identifier.
NOTE: Provided configuration of the OAuth 2.0 authorization server information
and configuration shall be supported, and dynamic configuration may be supported.
Configuration data used to setup the authorization server identifier. See note.
type: object
required:
- authServerId
......@@ -2437,12 +2303,14 @@ components:
the provisions :
- NFVO The NFV-MANO functional entity is an NFVO.
- 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
enum:
- NFVO
- VNFM
- VIM
- WIM
PeerEntityEnumType:
description: >
......@@ -2455,6 +2323,7 @@ components:
- WIM The peer functional entity is a WIM.
- EM The peer functional entity is an EM.
- OSS The peer functional entity is an OSS/BSS.
- WIM The peer functional is a WIM.
type: string
enum:
- NFVO
......@@ -2463,6 +2332,7 @@ components:
- WIM
- EM
- OSS
- WIM
parameters:
......@@ -2621,7 +2491,7 @@ components:
changeStateOpOccId:
name: changeStateOpOccId
in: path
description: >-
description: >
Identifier of the change state operation occurrence
required: true
schema:
......@@ -2630,7 +2500,7 @@ components:
peerEntityId:
name: peerEntityId
in: path
description: >-
description: >
Identifier of the peer entity
required: true
schema:
......@@ -2714,7 +2584,7 @@ components:
required: true
responses:
mano_entity.get.200:
ManoEntity.Get.200:
description: >
200 OK
......@@ -2740,7 +2610,7 @@ components:
schema:
$ref: "#/components/schemas/ManoEntity"
mano_entity.patch.200:
ManoEntity.Patch.200:
description: >
200 OK
......@@ -2763,7 +2633,7 @@ components:
application/json:
schema:
$ref: "#/components/schemas/ManoConfigModifications"
mano_entity.patch.409:
ManoEntity.Patch.409:
description: >
409 CONFLICT
......@@ -2793,7 +2663,7 @@ components:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity.patch.412:
ManoEntity.Patch.412:
description: >
412 PRECONDITION FAILED
......@@ -2823,7 +2693,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-change_state.post.202:
ChangeState.Post.202:
description: >
202 ACCEPTED
......@@ -2855,7 +2725,7 @@ components:
format: url
minimum: 1
maximum: 1
mano_entity-change_state.post.409:
ChangeState.Post.409:
description: >
409 CONFLICT
......@@ -2885,7 +2755,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-mano_interfaces.get.200:
ManoInterfaces.Get.200:
description: >
200 OK
......@@ -2933,7 +2803,7 @@ components:
type: array
items:
$ref: "#/components/schemas/ManoServiceInterface"
mano_entity-mano_interfaces.get.400:
ManoInterfaces.Get.400:
description: >
400 BAD REQUEST
......@@ -2967,7 +2837,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-mano_interface.get.200:
IndividualManoInterface.Get.200:
description: >
200 OK
......@@ -2993,7 +2863,7 @@ components:
application/json:
schema:
$ref: "#/components/schemas/ManoServiceInterface"
mano_entity-mano_interface.patch.200:
IndividualManoInterface.Patch.200:
description: >
200 OK
......@@ -3019,7 +2889,7 @@ components:
application/json:
schema:
$ref: "#/components/schemas/ManoServiceInterfaceModifications"
mano_entity-mano_interface.patch.409:
IndividualManoInterface.Patch.409:
description: >
409 CONFLICT
......@@ -3050,7 +2920,7 @@ components:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-mano_interface.patch.412:
IndividualManoInterface.Patch.412:
description: >
412 PRECONDITION FAILED
......@@ -3081,7 +2951,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
mano_entity-mano_interface-change_state.post.202:
ManoInterfaceChangeState.Post.202:
description: >
202 ACCEPTED
......@@ -3115,7 +2985,7 @@ components:
format: url
minimum: 1
maximum: 1
mano_entity-mano_interface-change_state.post.409:
ManoInterfaceChangeState.Post.409:
description: >
409 CONFLICT
......@@ -3145,7 +3015,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
subscriptions.post.201:
Subscriptions.Post.201:
description: >
201 CREATED
......@@ -3182,11 +3052,11 @@ components:
application/json:
schema:
$ref: "#/components/schemas/CimSubscription"
subscriptions.post.303:
Subscriptions.Post.303:
description: >
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
policy of NFV-MANO functional entity is to not create
redundant subscriptions.
......@@ -3217,7 +3087,43 @@ components:
format: url
minimum: 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: >
200 OK
......@@ -3264,7 +3170,7 @@ components:
type: array
items:
$ref: "#/components/schemas/CimSubscription"
subscriptions.get.400:
Subscriptions.Get.400:
description: >
400 BAD REQUEST
......@@ -3295,7 +3201,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
subscription.get.200:
Subscription.Get.200:
description: >
200 OK
......@@ -3321,7 +3227,7 @@ components:
application/json:
schema:
$ref: "#/components/schemas/CimSubscription"
subscription.delete.204:
Subscription.Delete.204:
description: >
204 NO CONTENT
......@@ -3343,7 +3249,7 @@ components:
schema:
type: string
change_state_ops.get.200:
ChangeStateOpOcc.Get.200:
description: >
200 OK
......@@ -3391,7 +3297,7 @@ components:
type: array
items:
$ref: "#/components/schemas/ChangeStateOpOcc"
change_state_ops.get.400:
ChangeStateOpOcc.Get.400:
description: >
400 BAD REQUEST
......@@ -3425,7 +3331,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
change_state_op.get.200:
IndividualChangeStateOpOcc.Get.200:
description: >
200 OK
......@@ -3452,7 +3358,7 @@ components:
schema:
$ref: "#/components/schemas/ChangeStateOpOcc"
peer_entities.post.201:
PeerEntities.Post.201:
description: >
201 CREATED
......@@ -3490,7 +3396,7 @@ components:
application/json:
schema:
$ref: "#/components/schemas/PeerEntity"
peer_entities.get.200:
PeerEntities.Get.200:
description: >
200 OK
......@@ -3538,7 +3444,7 @@ components:
type: array
items:
$ref: "#/components/schemas/PeerEntity"
peer_entities.get.400:
PeerEntities.Get.400:
description: >
400 BAD REQUEST
......@@ -3572,7 +3478,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
peer_entitie.get.200:
IndividualPeerEntity.Get.200:
description: >
200 OK
......@@ -3598,7 +3504,7 @@ components:
application/json:
schema:
$ref: "#/components/schemas/PeerEntity"
peer_entitie.patch.200:
IndividualPeerEntity.Patch.200:
description: >
200 OK
......@@ -3624,7 +3530,7 @@ components:
application/json:
schema:
$ref: "#/components/schemas/PeerEntityConfigModifications"
peer_entitie.patch.409:
IndividualPeerEntity.Patch.409:
description: >
409 CONFLICT.
......@@ -3653,7 +3559,7 @@ components:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
peer_entitie.patch.412:
IndividualPeerEntity.Patch.412:
description: >
412 PRECONDITION FAILED
......@@ -3682,7 +3588,7 @@ components:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
peer_entitie.delete.204:
IndividualPeerEntity.Delete.204:
description: >
204 NO CONTENT
......@@ -3703,7 +3609,7 @@ components:
Version of the API used in the response.
schema:
type: string
peer_entitie.delete.409:
IndividualPeerEntity.Delete.409:
description: >
409 CONFLICT.
......@@ -3732,7 +3638,7 @@ components:
application/json:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
peer_entitie.delete.412:
IndividualPeerEntity.Delete.412:
description: >
412 PRECONDITION FAILED
......
openapi: 3.0.2
info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Configuration and Information Management Notification Operation
description: >
SOL009 - NFV-MANO Configuration and Information Management Notification Operation
title: SOL009 - NFV-MANO Configuration and Information Management Notification Interface
description: |
SOL009 - NFV-MANO Configuration and Information Management Notification Interface
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
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
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:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: NFV-SOL WG
version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
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
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers:
- url: http://0.0.0.0/callback/v1
description: >
API HTTP Server
- url: https://0.0.0.0/callback/v1
description: >
API HTTPS Server
- url: http://127.0.0.1/callback/v2
- url: https://127.0.0.1/callback/v2
paths:
/URI-is-provided-by-the-client-when-creating-the-subscription-ConfigurationAndInformationNotification:
/URI_is_provided_by_the_client_when_creating_the_subscription-ConfigurationAndInformationNotification:
description: >
This resource represents a notification endpoint. The API producer can use this
resource to send notifications related to NFV-MANO configuration and information
......@@ -36,9 +35,9 @@ paths:
resource during the subscription process.
post:
description: >
The POST method delivers a notification from the API producer to an API consumer.
The API consumer shall have previously created an "Individual subscription"
resource with a matching filter.
The POST method delivers a notification from the API producer to an API consumer.
The API consumer shall have previously created an "Individual subscription" resource
with a matching filter. See clause 5.5.6.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -47,7 +46,7 @@ paths:
$ref: "#/components/requestBodies/ConfigurationAnfInformationNotification"
responses:
"204":
$ref: "#/components/responses/notification.post.204"
$ref: "#/components/responses/Notification.Post.204"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -72,14 +71,14 @@ paths:
get:
description: >
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:
- $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:
"204":
$ref: "#/components/responses/notification.get.204"
$ref: "#/components/responses/Notification.Get.204"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -103,7 +102,7 @@ paths:
components:
responses:
notification.post.204:
Notification.Post.204:
description: >
204 NO CONTENT
......@@ -122,7 +121,7 @@ components:
schema:
type: string
notification.get.204:
Notification.Get.204:
description: >
204 NO CONTENT
......@@ -165,6 +164,15 @@ components:
configuration and information of the NFV-MANO functional entity
have been changed.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- informationChangedTime
- manoEntityId
- changedInfo
- _links
properties:
id:
description: >
......@@ -213,20 +221,21 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required:
- self
required:
- id
- notificationType
- subscriptionId
- timeStamp
- informationChangedTime
- manoEntityId
- changedInfo
- _links
ChangeStateNotification:
description: >
This type represents a Change state operation occurrence.
type: object
required:
- id
- notificationType
- subscriptionId
- timestamp
- changeStateOpOccId
- stateChangedTime
- changeStateOperationState
- managedObjectRef
- _links
properties:
id:
description: >
......@@ -298,14 +307,4 @@ components:
required:
- subscription
- objectInstance
- changeStateOpOcc
required:
- id
- notificationType
- subscriptionId
- timestamp
- changeStateOpOccId
- stateChangedTime
- changeStateOperationState
- managedObjectRef
- _links
\ No newline at end of file
- changeStateOpOcc
\ No newline at end of file
openapi: 3.0.2
info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Fault Management interface
description: >
description: |
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:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
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
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers:
- url: http://127.0.0.1/nfvmanofm/v1
......@@ -26,10 +33,7 @@ paths:
/alarms:
get:
description: >
Get Alarm List. The client can use this method to retrieve information
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.
The client can use this method to retrieve information about the alarm list. See clause 7.5.3.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -38,7 +42,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
responses:
"200":
$ref: '#/components/responses/Alarms.Get'
$ref: '#/components/responses/Alarms.Get.200'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -64,17 +68,14 @@ paths:
- $ref: "#/components/parameters/alarmId"
get:
description: >
The client can use this method to read an individual alarm. This method
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.
The client can use this method to read an individual alarm. See clause 7.5.4.3.2.
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/Alarm.Get'
$ref: '#/components/responses/Alarm.Get.200'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -97,10 +98,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
patch:
description: >
This method modifies an "Individual alarm" resource. This method shall
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.
This method modifies an "Individual alarm" resource. See clause 7.5.4.3.4.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -110,7 +108,7 @@ paths:
$ref: "#/components/requestBodies/AlarmModifications"
responses:
"200":
$ref: '#/components/responses/Alarm.Patch'
$ref: '#/components/responses/Alarm.Patch.200'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -138,24 +136,7 @@ paths:
/subscriptions:
post:
description: >
Subscribe. The POST method creates a new subscription. This method shall
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).
The POST method creates a new subscription. See clause 7.5.5.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -165,7 +146,7 @@ paths:
$ref: "#/components/requestBodies/FmSubscriptionRequest"
responses:
"201":
$ref: '#/components/responses/subscriptions.post.201'
$ref: '#/components/responses/Subscriptions.Post.201'
"303":
$ref: ../components/SOL009_resp.yaml#/components/responses/303
"400":
......@@ -190,12 +171,9 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
get:
description: >
Query Subscription Information
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
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,
request and response data structures, and response codes.
alarms subscribed by the client. It can be used e.g. for resynchronization after error situations.
See clause 7.5.5.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -204,7 +182,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/nextpage_opaque_marker"
responses:
"200":
$ref: '#/components/responses/subscriptions.get.200'
$ref: '#/components/responses/Subscriptions.Get.200'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -230,18 +208,15 @@ paths:
- $ref: "#/components/parameters/subscriptionId"
get:
description: >
Query Subscription Information. The client can use this method for
reading an individual subscription for NFV-MANO functional entity alarms
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.
The client can use this method for reading an individual subscription for NFV-MANO functional entity alarms
subscribed by the client. See clause 7.5.6.3.2.
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/subscription.get.200'
$ref: '#/components/responses/Subscription.Get.200'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -264,22 +239,13 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
delete:
description: >
Terminate Subscription. This method terminates an individual
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.
This method terminates an individual subscription. See clause 7.5.6.3.5.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"204":
$ref: '#/components/responses/subscription.delete.204'
$ref: '#/components/responses/Subscription.Delete.204'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -417,7 +383,8 @@ components:
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).
* 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
properties:
notificationTypes:
......@@ -427,9 +394,8 @@ components:
* AlarmNotification
* AlarmClearedNotification
* AlarmListRebuiltNotification
The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to
facilitate automated code generation systems.
See note.
type: array
items:
type: string
......@@ -478,7 +444,7 @@ components:
required: true
responses:
Alarms.Get:
Alarms.Get.200:
description: >
200 OK
......@@ -520,7 +486,7 @@ components:
items:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm"
Alarm.Get:
Alarm.Get.200:
description: >
200 OK
......@@ -540,7 +506,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Alarm"
Alarm.Patch:
Alarm.Patch.200:
description: >
200 OK
......@@ -569,7 +535,7 @@ components:
schema:
$ref: "#/components/schemas/AlarmModifications"
subscriptions.post.201:
Subscriptions.Post.201:
description: >
201 CREATED
......@@ -606,8 +572,78 @@ components:
application/json:
schema:
$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: >
200 OK
......@@ -659,7 +695,7 @@ components:
items:
$ref: "#/components/schemas/FmSubscription"
subscription.get.200:
Subscription.Get.200:
description: >
200 OK
......@@ -695,7 +731,7 @@ components:
schema:
$ref: "#/components/schemas/FmSubscription"
subscription.delete.204:
Subscription.Delete.204:
description: >
204 NO CONTENT
......
openapi: 3.0.2
info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Fault Management Notification Operation
description: >
SOL009 - NFV-MANO Fault Management Notification Operation
title: SOL009 - NFV-MANO Fault Management Notification Interface
description: |
SOL009 - NFV-MANO Fault Management Notification 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:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
externalDocs:
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
version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
security:
- OauthSecurity:
- all
externalDocs:
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers:
- url: http://127.0.0.1/callback/v1
- url: https://127.0.0.1/callback/v1
paths:
/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification:
/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification:
post:
description: >
The POST method notifies an NFV-MANO functional entity alarm or that the
alarm list has been rebuilt. The API consumer shall have previously
created an "Individual subscription" resource with a matching filter.
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.
created an "Individual subscription" resource with a matching filter. See clause 7.5.7.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
......@@ -59,10 +59,7 @@ paths:
get:
description: >
The GET method allows the server to test the notification endpoint that
is provided by the client, e.g. during subscription. This method shall
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.
is provided by the client, e.g. during subscription. See clause 7.5.7.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
......@@ -83,15 +80,12 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/500
"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:
description: >
The POST method notifies an NFV-MANO functional entity alarm or that the
alarm list has been rebuilt. The API consumer shall have previously
created an "Individual subscription" resource with a matching filter.
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.
created an "Individual subscription" resource with a matching filter. See clause 7.5.7.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
......@@ -118,10 +112,7 @@ paths:
get:
description: >
The GET method allows the server to test the notification endpoint that
is provided by the client, e.g. during subscription. This method shall
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.
is provided by the client, e.g. during subscription. See clause 7.5.7.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
......@@ -142,15 +133,12 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/500
"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:
description: >
The POST method notifies an NFV-MANO functional entity alarm or that the
alarm list has been rebuilt. The API consumer shall have previously
created an "Individual subscription" resource with a matching filter.
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.
created an "Individual subscription" resource with a matching filter. See clause 7.5.7.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/ContentType"
......@@ -177,10 +165,7 @@ paths:
get:
description: >
The GET method allows the server to test the notification endpoint that
is provided by the client, e.g. during subscription. This method shall
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.
is provided by the client, e.g. during subscription. See clause 7.5.7.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
......
openapi: 3.0.2
info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Log Management interface
description: >
description: |
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
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:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
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
description: ETSI GS NFV-SOL 009 V3.5.1
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:
- url: http://127.0.0.1/nfvmanologm/v1
- url: https://127.0.0.1/nfvmanologm/v1
......@@ -32,11 +35,7 @@ paths:
This resource represents logging jobs. The API consumer can use this resource to create and query logging jobs.
post:
description: >-
The POST method creates a logging job.
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.
The POST method creates a logging job. See clause 8.5.3.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -46,7 +45,7 @@ paths:
$ref: "#/components/requestBodies/CreateLoggingJobRequest"
responses:
"201":
$ref: '#/components/responses/LoggingJob.Post'
$ref: '#/components/responses/LoggingJobs.Post.201'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -69,9 +68,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
get:
description: >-
The API consumer can use this method to retrieve information about logging jobs.
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.
The API consumer can use this method to retrieve information about logging jobs. See clause 8.5.3.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/filter"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
......@@ -84,7 +81,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: '#/components/responses/LoggingJobs.Get'
$ref: '#/components/responses/LoggingJobs.Get.200'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -114,9 +111,7 @@ paths:
- $ref: "#/components/parameters/logJobId"
get:
description: >-
The API consumer can use this method for reading an individual logging job.
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.
The API consumer can use this method for reading an individual logging job. See clause 8.5.4.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -124,7 +119,7 @@ paths:
responses:
"200":
$ref: '#/components/responses/LoggingJob.Get'
$ref: '#/components/responses/IndividualLoggingJob.Get.200'
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -148,17 +143,13 @@ paths:
delete:
description: >-
This method terminates an individual logging job.
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
This method terminates an individual logging job. See clause 8.5.4.3.5.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"204":
$ref: '#/components/responses/LoggingJob.Delete'
$ref: '#/components/responses/IndividualLoggingJob.Delete.204'
"400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401":
......@@ -192,9 +183,7 @@ paths:
- $ref: "#/components/parameters/logReportId"
get:
description: >-
The API consumer can use this method for reading an individual log report.
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.
The API consumer can use this method for reading an individual log report. See clause 8.5.5.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -240,8 +229,7 @@ paths:
post:
description: >-
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
query parameters, request and response data structures, and response codes.
See clause 8.5.6.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -250,8 +238,8 @@ paths:
requestBody:
$ref: "#/components/requestBodies/CompileLogRequest"
responses:
"200":
$ref: '#/components/responses/LogReportCompiled.Post.200'
"201":
$ref: '#/components/responses/LogReportCompiled.Post.201'
"202":
$ref: '#/components/responses/LogReportCompiled.Post.202'
"303":
......@@ -283,18 +271,7 @@ paths:
related to NFV-MANO performance management and to query its subscriptions.
post:
description: >-
The POST method creates a new subscription.
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).
The POST method creates a new subscription. See clause 8.5.7.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -304,9 +281,9 @@ paths:
$ref: '#/components/requestBodies/LogmSubscriptionRequest'
responses:
"201":
$ref: '#/components/responses/subscriptions.post.201'
$ref: '#/components/responses/Subscriptions.Post.201'
"303":
$ref: '#/components/responses/subscriptions.post.303'
$ref: '#/components/responses/Subscriptions.Post.303'
"422":
$ref: '../components/SOL009_resp.yaml#/components/responses/422'
"400":
......@@ -333,9 +310,7 @@ paths:
get:
description: >-
The API consumer can use this method to query the list of active subscriptions to log management
notifications subscribed by the API consumer.
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.
notifications subscribed by the API consumer. See clause 8.5.7.3.2.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/filter"
......@@ -345,7 +320,7 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: '#/components/responses/subscriptions.get.200'
$ref: '#/components/responses/Subscriptions.Get.200'
"400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401":
......@@ -375,16 +350,14 @@ paths:
get:
description: >-
The API consumer can use this method for reading an individual subscription about log management
notifications subscribed by the API consumer.
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.
notifications subscribed by the API consumer. See clause 8.5.8.3.2.
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/subscription.get.200'
$ref: '#/components/responses/Subscription.Get.200'
"400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401":
......@@ -406,20 +379,13 @@ paths:
delete:
description: >-
This method terminates an individual subscription.
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.
This method terminates an individual subscription. See clause 8.5.8.3.5.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"204":
$ref: '#/components/responses/subscription.delete.204'
$ref: '#/components/responses/Subscription.Delete.204'
"400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401":
......@@ -476,6 +442,8 @@ components:
application/json:
schema:
$ref: "#/components/schemas/LogmSubscriptionRequest"
required: true
CreateLoggingJobRequest:
description: >-
This type represents a request to create a logging job. It shall comply with the provisions
......@@ -500,10 +468,13 @@ components:
application/json:
schema:
$ref: "#/components/schemas/LogReportAvailableNotification"
required: true
responses:
subscription.delete.204:
description: >-
Subscription.Delete.204:
description: >
204 NO CONTENT
Shall be returned when the "Individual subscription" resource has been deleted successfully.
The response body shall be empty.
headers:
......@@ -524,8 +495,10 @@ components:
schema:
type: string
subscription.get.200:
description: >-
Subscription.Get.200:
description: >
200 OK
Shall be returned when the subscription has been read successfully.
The response body shall contain a representation of the "Individual subscription" resource,
as defined in clause 8.6.2.3.
......@@ -551,8 +524,10 @@ components:
schema:
$ref: "#/components/schemas/LogmSubscription"
subscriptions.get.200:
description: >-
Subscriptions.Get.200:
description: >
200 OK
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 functional block that invokes the method, i.e. zero or more representations of log management
......@@ -586,8 +561,10 @@ components:
items:
$ref: "#/components/schemas/LogmSubscription"
subscriptions.post.201:
description: >-
Subscriptions.Post.201:
description: >
201 CREATED
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,
as defined in clause 8.6.2.3.
......@@ -620,8 +597,10 @@ components:
schema:
$ref: "#/components/schemas/LogmSubscription"
subscriptions.post.303:
description: >-
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 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
......@@ -650,8 +629,10 @@ components:
schema:
type: string
LogReportCompiled.Post.200:
description: >-
LogReportCompiled.Post.201:
description: >
201 CREATED
Shall be returned for a successful compilation of the log data and creation of the associated log report
(synchronous mode).
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:
schema:
$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:
description: >-
description: >
202 ACCEPTED
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).
The response body shall be empty.
......@@ -716,7 +735,9 @@ components:
type: string
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
created, for the specified logging job at the time of processing the request.
The response body shall be empty.
......@@ -747,7 +768,9 @@ components:
type: string
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,
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
......@@ -778,7 +801,9 @@ components:
$ref: '../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails'
LogReport.Get.200:
description: >-
description: >
200 OK
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
defined in clause 8.6.2.7.
......@@ -805,7 +830,9 @@ components:
$ref: "#/components/schemas/LogReport"
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
(applicable in asynchronous mode of the "Compile log task" resource).
The response body shall be empty.
......@@ -827,8 +854,10 @@ components:
schema:
type: string
LoggingJob.Get:
description: >-
IndividualLoggingJob.Get.200:
description: >
200 OK
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,
as defined in clause 8.6.2.6.
......@@ -854,8 +883,10 @@ components:
schema:
$ref: "#/components/schemas/LoggingJob"
LoggingJob.Delete:
description: >-
IndividualLoggingJob.Delete.204:
description: >
204 NO CONTENT
Shall be returned when the logging job has been deleted successfully.
The response body shall be empty.
headers:
......@@ -872,8 +903,10 @@ components:
schema:
type: string
LoggingJob.Post:
description: >-
LoggingJobs.Post.201:
description: >
201 CREATED
The response body contains the Application Context as it was created
by the MEC system
headers:
......@@ -898,8 +931,10 @@ components:
schema:
$ref: "#/components/schemas/LoggingJob"
LoggingJobs.Get:
description: >-
LoggingJobs.Get.200:
description: >
200 OK
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
......@@ -937,8 +972,10 @@ components:
items:
$ref: "#/components/schemas/LoggingJob"
LogReportAvailableNotification.Post:
description: >-
LogReportAvailableNotification.Post.204:
description: >
204 NO CONTENT
Shall be returned when the notification has been delivered successfully.
headers:
Content-Type:
......@@ -958,8 +995,10 @@ components:
schema:
type: string
LogReportNotification.Get:
description: >-
LogReportAvailableNotification.Get.204:
description: >
204 NO CONTENT
Shall be returned to indicate that the notification endpoint has been tested successfully.
The response body shall be empty.
headers:
......@@ -1018,11 +1057,9 @@ components:
LogmNotificationsFilter:
description: >-
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.
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).
management events.
* 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
properties:
objectInstanceFilter:
......@@ -1034,6 +1071,7 @@ components:
Match particular notification types.
Permitted values:
- LogReportAvailableNotification
See note.
type: string
enum: [LogReportAvailableNotification]
......@@ -1120,7 +1158,8 @@ components:
LogReport:
description: >
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
required:
- id
......@@ -1185,8 +1224,8 @@ components:
- HTTPS: transmission over HTTP Secure (HTTPS).
- SFTP: transmission over SSH file transfer protocol (SFTP).
- SCP: transmission over secure copy protocol (SCP).
- FTPS: transmission over file transfer protocol secure (FTPS), as specified in IETF RFC 2228 [i.11],
using explicit mode as specified in IETF RFC 4217 [i.12]. If FTPS is supported, "private" protection level shall be used.
- FTPS: transmission over file transfer protocol secure (FTPS), as specified in IETF RFC 2228,
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.
type: string
......@@ -1226,13 +1265,13 @@ components:
description: >-
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",
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
logFileSignature:
description: >-
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
according to the "encryptAndSignOrder" of the "LoggingJobConfig".
according to the "encryptAndSignOrder" of the "LoggingJobConfig". See note.
type: string
signingCertificate:
description: >-
......@@ -1380,8 +1419,10 @@ components:
LoggingJobCriteria:
description: >-
This type represents collection criteria for logging jobs. It shall comply with the provisions
defined in table 8.6.3.2-1.
This type represents collection criteria for logging jobs.
* 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
required:
- loggingType
......@@ -1394,6 +1435,8 @@ components:
- MESSAGES: logged NFV-MANO service interface messages.
- 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.
See note.
type: string
enum: [MESSAGES, SERVICES, SYSTEM]
messagesLogDetail:
......@@ -1417,7 +1460,8 @@ components:
LoggingJobMessagesCriteria:
description: >-
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
required:
- direction
......@@ -1438,6 +1482,7 @@ components:
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
messages.
See note.
type: array
items:
type: object
......@@ -1518,18 +1563,23 @@ components:
LoggingJobServicesCriteria:
description: >-
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
properties:
logGarbageCollection:
description: >-
Indicates to collect logged information about garbage collection processes associated to NFV-MANO services.
See note.
type: boolean
LoggingJobSystemCriteria:
description: >-
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
required:
- systemLogs
......@@ -1537,7 +1587,7 @@ components:
properties:
systemLogs:
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"
severityLevelScheme:
description: >-
......@@ -1558,6 +1608,17 @@ components:
defined in table 8.6.3.6-1.
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.
* 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
required:
- reportingCondition
......@@ -1593,7 +1654,7 @@ components:
minimumReportingPeriod:
description: >-
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
format: int32
compileBySizeValue:
......@@ -1601,14 +1662,15 @@ components:
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
specified with the "defaultLogCompileBySizeValue" configuration in the "ManoEntityConfigurableParams"
shall be used
shall be used. See note 2 and note 3.
type: integer
format: int32
compileByTimerValue:
description: >-
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
"defaultLogCompileByTimerValue" configuration in the "ManoEntityConfigurableParams" shall be used
"defaultLogCompileByTimerValue" configuration in the "ManoEntityConfigurableParams" shall be used.
See note 2.
type: integer
format: int32
securityConf:
......@@ -1746,7 +1808,7 @@ components:
$ref: "#/components/requestBodies/LogReportAvailableNotification"
responses:
"204":
$ref: '#/components/responses/LogReportAvailableNotification.Post'
$ref: '#/components/responses/LogReportAvailableNotification.Post.204'
"400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401":
......@@ -1779,7 +1841,7 @@ components:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"204":
$ref: '#/components/responses/LogReportNotification.Get'
$ref: '#/components/responses/LogReportAvailableNotification.Get.204'
"400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401":
......
openapi: 3.0.2
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
it refers to. In case of discrepancies the published ETSI Group Specification takes precedence.
title: SOL009 - NFV-MANO Log Management Notification Interface
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:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
externalDocs:
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
version: 1.0.1-impl:etsi.org:ETSI_NFV_OpenAPI:1
security:
- OauthSecurity:
- all
externalDocs:
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers:
- url: http://127.0.0.1/callback/v1
- url: https://127.0.0.1/callback/v1
paths:
/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification:
/URI_is_provided_by_the_client_when_creating_the_subscription-LogNotification:
description: >-
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
......@@ -35,9 +37,7 @@ paths:
description: >-
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
matching filter.
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.
matching filter. See clause 8.5.9.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
......@@ -45,7 +45,7 @@ paths:
$ref: "#/components/requestBodies/LogReportAvailableNotification"
responses:
"204":
$ref: '#/components/responses/notification.post.204'
$ref: '#/components/responses/Notification.Post.204'
"400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401":
......@@ -70,16 +70,14 @@ paths:
get:
description: >-
The GET method allows the API producer to test the notification endpoint that is provided by the API
consumer, e.g. during subscription.
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.
consumer, e.g. during subscription. See clause 8.5.9.3.2.
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:
"204":
$ref: '#/components/responses/notification.get.204'
$ref: '#/components/responses/Notification.Get.204'
"400":
$ref: '../components/SOL009_resp.yaml#/components/responses/400'
"401":
......@@ -110,9 +108,10 @@ components:
application/json:
schema:
$ref: "#/components/schemas/LogReportAvailableNotification"
required: true
responses:
notification.post.204:
Notification.Post.204:
description: >-
Shall be returned when the notification has been delivered successfully.
headers:
......@@ -133,7 +132,7 @@ components:
schema:
type: string
notification.get.204:
Notification.Get.204:
description: >-
Shall be returned to indicate that the notification endpoint has been tested successfully.
The response body shall be empty.
......
openapi: 3.0.2
info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Performance Management Interface
description: >
description: |
SOL009 - NFV-MANO Performance Management Interface
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
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
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:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: NFV-SOL WG
version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
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
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers:
- url: http://0.0.0.0/nfvmanopm/v1
description: >
API HTTP Server
- url: https://0.0.0.0/nfvmanopm/v1
description: >
API HTTPS Server
- url: http://127.0.0.1/nfvmanopm/v2
- url: https://127.0.0.1/nfvmanopm/v2
paths:
/api_versions:
......@@ -34,11 +34,7 @@ paths:
/pm_jobs:
post:
description: >
Creates a PM job.
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.
The POST method creates a PM job. See clause 6.5.3.3.1.
parameters:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -47,7 +43,7 @@ paths:
$ref: "#/components/requestBodies/CreatePMJobRequest"
responses:
"201":
$ref: "#/components/responses/pm_jobs.post.201"
$ref: "#/components/responses/pm_jobs.Post.201"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -70,7 +66,7 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
get:
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:
- $ref: "#/components/parameters/filter.PmJob"
- $ref: "../components/SOL009_params.yaml#/components/parameters/all_fields"
......@@ -83,9 +79,9 @@ paths:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/pm_jobs.get.200"
$ref: "#/components/responses/pm_jobs.Get.200"
"400":
$ref: "#/components/responses/pm_jobs.get.400"
$ref: "#/components/responses/pm_jobs.Get.400"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -110,14 +106,14 @@ paths:
- $ref: "#/components/parameters/pmJobId"
get:
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:
- $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.get.200"
$ref: "#/components/responses/IndividualPmJob.Get.200"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -138,52 +134,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
delete:
patch:
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:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/PmJobModificationRequest"
responses:
"204":
$ref: "#/components/responses/pm_job.delete.204"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/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
"200":
$ref: "#/components/responses/IndividualPmJob.Patch.200"
"412":
$ref: "#/components/responses/IndividualPmJob.Patch.412"
"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
/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"
$ref: "#/components/responses/IndividualPmJob.Patch.422"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -196,28 +162,24 @@ paths:
$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
"409":
$ref: ../components/SOL009_resp.yaml#/components/responses/409
"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:
post:
delete:
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:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/CreateThesholdRequest"
responses:
"201":
$ref: "#/components/responses/thresholds.post.201"
"204":
$ref: "#/components/responses/IndividualPmJob.Delete.204"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -238,52 +200,21 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
get:
description: >
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}:
/pm_jobs/{pmJobId}/reports/{reportId}:
parameters:
- $ref: "#/components/parameters/thresholdId"
- $ref: "#/components/parameters/pmJobId"
- $ref: "#/components/parameters/reportId"
get:
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:
- $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/threshold.get.200"
$ref: "#/components/responses/IndividualPerformanceReport.Get.200"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -304,16 +235,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
delete:
/thresholds:
post:
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:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
requestBody:
$ref: "#/components/requestBodies/CreateThresholdRequest"
responses:
"204":
$ref: "#/components/responses/threshold.delete.204"
"201":
$ref: "#/components/responses/Thresholds.Post.201"
"422":
$ref: "#/components/responses/Thresholds.Post.422"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -326,32 +263,26 @@ paths:
$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
/subscriptions:
post:
get:
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:
- $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"
requestBody:
$ref: "#/components/requestBodies/CreateSubscriptionRequest"
responses:
"201":
$ref: "#/components/responses/subscriptions.post.201"
"303":
$ref: "#/components/responses/subscriptions.post.303"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"200":
$ref: "#/components/responses/Thresholds.Get.200"
"400":
$ref: "#/components/responses/Thresholds.Get.400"
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -370,21 +301,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
/thresholds/{thresholdId}:
parameters:
- $ref: "#/components/parameters/thresholdId"
get:
description: >
The client can use this method to query the list of active subscriptions
to performance management notifications subscribed by the client.
The client can use this method for reading an individual threshold. See clause 6.5.7.3.2.
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/Accept"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Authorization"
responses:
"200":
$ref: "#/components/responses/subscriptions.get.200"
"400":
$ref: "#/components/responses/subscriptions.get.400"
$ref: "#/components/responses/Threshold.Get.200"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
$ref: ../components/SOL009_resp.yaml#/components/responses/401
"403":
......@@ -403,21 +335,22 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/503
"504":
$ref: ../components/SOL009_resp.yaml#/components/responses/504
/subscriptions/{subscriptionId}:
parameters:
- $ref: "#/components/parameters/subscriptionId"
get:
patch:
description: >
The client can use this method for reading an individual subscription
about performance management notifications subscribed by the client.
This method allows to modify an "Individual threshold" resource. See clause 6.5.7.3.4.
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"
requestBody:
$ref: "#/components/requestBodies/ThresholdModificationRequest"
responses:
"200":
$ref: "#/components/responses/subscription.get.200"
"200":
$ref: "#/components/responses/Threshold.Patch.200"
"412":
$ref: "#/components/responses/Threshold.Patch.412"
"422":
$ref: "#/components/responses/Threshold.Patch.422"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -430,8 +363,8 @@ paths:
$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
"409":
$ref: ../components/SOL009_resp.yaml#/components/responses/409
"500":
$ref: ../components/SOL009_resp.yaml#/components/responses/500
"503":
......@@ -440,14 +373,14 @@ paths:
$ref: ../components/SOL009_resp.yaml#/components/responses/504
delete:
description: >
This method terminates an individual subscription.
This method allows to delete a threshold. See clause 6.5.7.3.5.
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:
"204":
$ref: "#/components/responses/subscription.delete.204"
$ref: "#/components/responses/Threshold.Delete.204"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -471,71 +404,15 @@ paths:
components:
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:
description: >
This type represents a request to create a PM job.
type: object
required:
- objectType
- objectInstanceIds
- criteria
- callbackUri
properties:
objectType:
description: >
......@@ -572,15 +449,31 @@ components:
description: >
Criteria of the collection of performance information.
$ref: "#/components/schemas/PmJobCriteria"
required:
- objectType
- objectInstanceIds
- criteria
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"
PmJob:
description: >
This type represents a PM job.
type: object
required:
- id
- objectType
- objectInstanceIds
- criteria
- _links
- callbackUri
properties:
id:
description: >
......@@ -619,6 +512,10 @@ components:
description: >
Criteria of the collection of performance information.
$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:
description: >
Information about available reports collected by this PM job.
......@@ -664,17 +561,16 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
required:
- self
required:
- id
- objectType
- objectInstanceIds
- criteria
- _links
CreateThresholdRequest :
description: >
This type represents a request to create a threshold.
type: object
required:
- objectType
- objectInstanceId
- criteria
- callbackUri
properties:
objectType:
description: >
......@@ -704,22 +600,39 @@ components:
description: >
Criteria that define this threshold.
$ref: "#/components/schemas/ThresholdCriteria"
required:
- objectType
- objectInstanceId
- criteria
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"
Threshold:
description: >
This type represents a threshold.
type: object
required:
- id
- objectType
- objectInstanceId
- subjObjectInstanceIds
- criteria
- _links
- callbackUri
properties:
id:
description: >
Identifier of this threshold resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Identifier"
objectType:
description:
description: >
Type of measured object. The applicable measured object type for a measurement
is defined in clause 8.2 of ETSI GS NFV-IFA 031.
type: string
......@@ -746,6 +659,10 @@ components:
description: >
Criteria that define this threshold.
$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:
description: >
Links for this resource.
......@@ -763,13 +680,6 @@ components:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Link"
required:
- self
required:
- id
- objectType
- objectInstanceId
- subjObjectInstanceIds
- criteria
- _links
PerformanceReport:
description: >
......@@ -777,6 +687,8 @@ components:
entity to the API consumer as a result of collecting performance information as part
of a PM job.
type: object
required:
- entries
properties:
entries:
description: >
......@@ -840,45 +752,60 @@ components:
- performanceMetric
- performanceValues
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: >
This type represents a filter that can be used to subscribe for notifications
related to performance management events.
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).
This type represents modifications to a threshold.
* NOTE: At least one of the attributes defined in this type shall be present in request bodies.
type: object
properties:
pmSubscriptionFilter:
callbackUri:
description: >
Filter criteria to select object instance about which to notify.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ManoEntitySubscriptionFilter"
notificationTypes:
New value of the "callbackUri" attribute.The value "null" is not permitted. See note.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/Uri"
authentication:
description: >
Match particular notification types.
Permitted values:
- ThresholdCrossedNotification
- PerformanceInformationAvailableNotification
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).
The permitted values of the "notificationTypes" attribute are spelled exactly
as the names of the notification types to facilitate automated code generation
systems.
type: string
enum:
- ThresholdCrossedNotification
- PerformanceInformationAvailableNotification
This attribute shall not be present in response bodies. See note.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/SubscriptionAuthentication"
#----------
PmJobCriteria:
description: >
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
required:
- collectionPeriod
- reportingPeriod
properties:
performanceMetric:
description: >
......@@ -903,34 +830,12 @@ components:
collectionPeriod:
description: >
Specifies the periodicity at which the producer will collect performance
information. The unit shall be seconds.
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.
information. The unit shall be seconds. See note 1 and note 2.
type: integer
reportingPeriod:
description: >
Specifies the periodicity at which the producer will report to the API consumer
about performance information. The unit shall be seconds.
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.
about performance information. The unit shall be seconds. See note 1 and note 2.
type: integer
reportingBoundary:
description: >
......@@ -938,14 +843,19 @@ components:
The boundary shall allow a single reporting as well as periodic reporting up to
the boundary.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/DateTime"
required:
- collectionPeriod
- reportingPeriod
ThresholdCriteria:
description: >
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
required:
- performanceMetric
- thresholdType
properties:
performanceMetric:
description: >
......@@ -991,16 +901,13 @@ components:
required:
- thresholdValue
- hysteresis
required:
- performanceMetric
- thresholdType
#----------------
# common types to SOL009
#----------------
responses:
pm_jobs.post.201:
pm_jobs.Post.201:
description: >
201 CREATED
......@@ -1028,7 +935,43 @@ components:
application/json:
schema:
$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: >
200 OK
......@@ -1075,7 +1018,7 @@ components:
type: array
items:
$ref: "#/components/schemas/PmJob"
pm_jobs.get.400:
pm_jobs.Get.400:
description: >
400 BAD REQUEST
......@@ -1109,7 +1052,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
pm_job.get.200:
IndividualPmJob.Get.200:
description: >
200 OK
......@@ -1135,7 +1078,95 @@ components:
application/json:
schema:
$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: >
204 NO CONTENT
......@@ -1156,7 +1187,7 @@ components:
schema:
type: string
pm_job.report.get.200:
IndividualPerformanceReport.Get.200:
description: >
200 OK
......@@ -1184,7 +1215,7 @@ components:
schema:
$ref: "#/components/schemas/PerformanceReport"
thresholds.post.201:
Thresholds.Post.201:
description: >
201 CREATED
......@@ -1222,7 +1253,43 @@ components:
application/json:
schema:
$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: >
200 OK
......@@ -1259,7 +1326,7 @@ components:
type: array
items:
$ref: "#/components/schemas/Threshold"
thresholds.get.400:
Thresholds.Get.400:
description: >
400 BAD REQUEST
......@@ -1290,7 +1357,7 @@ components:
schema:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
threshold.get.200:
Threshold.Get.200:
description: >
200 OK
......@@ -1316,38 +1383,14 @@ components:
application/json:
schema:
$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: >
201 CREATED
Shall be returned when the subscription has been created successfully.
200 OK
A representation of the created subscription resource shall be returned
in the response body, as defined in clause 6.6.2.3.
Shall be returned when the request has been processed successfully.
The HTTP response shall include a "Location" HTTP header that contains
the resource URI of the created "Individual subscription" resource.
The response body shall contain a data structure of type "ThresholdModifications"
headers:
WWW-Authenticate:
description: >
......@@ -1361,71 +1404,22 @@ components:
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
content:
application/json:
schema:
$ref: "#/components/schemas/PmSubscription"
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 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:
$ref: "#/components/schemas/ThresholdModifications"
Threshold.Patch.412:
description: >
Shall be returned when the list of subscriptions has been queried
successfully.
412 PRECONDITION FAILED
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 PM subscriptions
as defined in clause 6.6.2.3.
Shall be returned upon the following error: A precondition given in
an HTTP request header is not fulfilled.
If the "filter" URI parameter was supplied in the request, the data
in the response body shall have been transformed according to the
rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013.
Typically, this is due to an ETag mismatch, indicating that the resource
was modified by another entity.
If the NFV-MANO functional entity supports alternative 2 (paging)
according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource,
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.
The response body should contain a ProblemDetails structure, in which
the "detail" attribute should convey more information about the error.
headers:
WWW-Authenticate:
description: >
......@@ -1442,48 +1436,25 @@ components:
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/PmSubscription"
subscriptions.get.400:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
Threshold.Patch.422:
description: >
400 BAD REQUEST
422 Unprocessable Entity
Shall be returned upon the following errors:
- Invalid attribute-based filtering expression.
The response body shall contain a ProblemDetails structure, in which
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"
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.
subscription.get.200:
description: >
200 OK
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.
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
"Individual subscription" resource, as defined in clause 6.6.2.3.
In this case, the "detail" attribute in the "ProblemDetails" structure
shall convey more information about the error.
headers:
WWW-Authenticate:
description: >
......@@ -1500,13 +1471,13 @@ components:
content:
application/json:
schema:
$ref: "#/components/schemas/PmSubscription"
subscription.delete.204:
$ref: "../components/SOL009_schemas.yaml#/components/schemas/ProblemDetails"
Threshold.Delete.204:
description: >
204 NO CONTENT
Shall be returned when the "Individual subscription" resource has
been deleted successfully.
Shall be returned when the threshold has been deleted successfully.
The response body shall be empty.
headers:
......@@ -1559,23 +1530,6 @@ components:
required: false
schema:
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 :
name: exclude_default
description: >
......@@ -1593,15 +1547,6 @@ components:
schema:
type: string
subscriptionId:
name: subscriptionId
in: path
description: >-
Identifier of the subscription
required: true
schema:
$ref: '../components/SOL009_schemas.yaml#/components/schemas/Identifier'
pmJobId:
name: pmJobId
in: path
......@@ -1639,7 +1584,7 @@ components:
$ref: "#/components/schemas/CreatePmJobRequest"
required: true
CreateThesholdRequest:
CreateThresholdRequest:
description: >
Request parameters to create a threshold.
content:
......@@ -1648,11 +1593,26 @@ components:
$ref: "#/components/schemas/CreateThresholdRequest"
required: true
CreateSubscriptionRequest:
ThresholdModificationRequest:
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:
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:
$ref: "#/components/schemas/PmSubscriptionRequest"
$ref: "#/components/schemas/PmJobModifications"
required: true
\ No newline at end of file
openapi: 3.0.2
info:
version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
title: SOL009 - NFV-MANO Performance Management Notification Operation
title: SOL009 - NFV-MANO Performance Management Notification Interface
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
version of the ETSI Group Specification it refers to and has not been
approved by the ETSI NFV ISG. In case of discrepancies the published ETSI
Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis
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:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: NFV-SOL WG
version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
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
description: ETSI GS NFV-SOL 009 V3.5.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/009/03.05.01_60/gs_NFV-SOL009v030501p.pdf
servers:
- url: http://0.0.0.0/callback/v1
description: >
API HTTP Server
- url: https://0.0.0.0/callback/v1
description: >
API HTTPS Server
- url: http://127.0.0.1/callback/v2
- url: https://127.0.0.1/callback/v2
paths:
/URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationNotification:
/URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationNotification:
description: >
This resource represents a notification endpoint for NFV-MANO performance management.
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
resource during the subscription process.
management events to an API consumer, which has provided the URI of this
resource during the PM jobor threshold creation process.
post:
description: >
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
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:
- $ref: "../components/SOL009_params.yaml#/components/parameters/Version"
- $ref: "../components/SOL009_params.yaml#/components/parameters/Accept"
......@@ -47,7 +46,7 @@ paths:
$ref: "#/components/requestBodies/PerfomanceInfoNotification"
responses:
"204":
$ref: "#/components/responses/notification.post.204"
$ref: "#/components/responses/Notification.Post.204"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -72,14 +71,14 @@ paths:
get:
description: >
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:
- $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:
"204":
$ref: "#/components/responses/notification.get.204"
$ref: "#/components/responses/Notification.Get.204"
"400":
$ref: ../components/SOL009_resp.yaml#/components/responses/400
"401":
......@@ -103,7 +102,7 @@ paths:
components:
responses:
notification.post.204:
Notification.Post.204:
description: >
204 NO CONTENT
......@@ -122,7 +121,7 @@ components:
schema:
type: string
notification.get.204:
Notification.Get.204:
description: >
204 NO CONTENT
......@@ -168,6 +167,17 @@ components:
The notification shall be triggered by the NFV-MANO functional entity when
a threshold has been crossed.
type: object
required:
- id
- notificationType
- timeStamp
- thresholdId
- crossingDirection
- objectType
- objectInstanceId
- performanceMetric
- performanceValue
- _links
properties:
id:
description: >
......@@ -180,10 +190,6 @@ components:
Discriminator for the different notification types. Shall be set to
"ThresholdCrossedNotification" for this notification type.
$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:
description: >
Date and time of the generation of the notification.
......@@ -234,10 +240,6 @@ components:
Links to resources related to this notification.
type: object
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
objectInstance:
description: >
Link to the resource representing the measured object instance to which
......@@ -249,25 +251,20 @@ components:
Link to the resource that represents the threshold that was crossed.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required:
- subscription
- objectInstance
PerformanceInformationAvailableNotification:
description: >
This notification informs the receiver that performance information is available.
type: object
required:
- id
- notificationType
- subscriptionId
- pmJobId
- timeStamp
- thresholdId
- crossingDirection
- objectType
- objectInstanceId
- performanceMetric
- performanceValue
- _links
PerformanceInformationAvailableNotification:
description: >
This notification informs the receiver that performance information is available.
type: object
properties:
id:
description: >
......@@ -281,14 +278,14 @@ components:
Shall be set to "PerformanceInformationAvailableNotification" for this
notification type.
$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:
description: >
Date and time of the generation of the notification.
$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:
description: >
Type of measured object.
......@@ -314,10 +311,6 @@ components:
Links to resources related to this notification.
type: object
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
objectInstance:
description: >
Link to the resource representing the measured object instance to which the
......@@ -336,15 +329,6 @@ components:
This link should point to an "Individual performance report" resource.
$ref: "../components/SOL009_schemas.yaml#/components/schemas/NotificationLink"
required:
- subscription
- pmJob
- performanceReport
required:
- id
- notificationType
- subscriptionId
- timeStamp
- objectType
- objectInstanceId
- _links
......@@ -18,7 +18,6 @@ endpoints:
schema:
type: string
get:
summary: Retrieve API version information
description: >
The GET method reads API version information. This method shall follow the provisions specified in
table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not
......@@ -65,8 +64,6 @@ endpoints:
$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'
413:
......@@ -84,4 +81,32 @@ endpoints:
503:
$ref: '../components/SOL009_resp.yaml#/components/responses/503'
504:
$ref: '../components/SOL009_resp.yaml#/components/responses/504'
\ No newline at end of file
$ref: '../components/SOL009_resp.yaml#/components/responses/504'
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