diff --git a/README.md b/README.md index 96f827bee820cd6e41e1a3d344ca79e856979f8b..957c50b75df0ac8ffd1ec210f04729e1f06c32dd 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # 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). diff --git a/src/SOL009/APIVersion/APIVersion.yaml b/src/SOL009/APIVersion/APIVersion.yaml index 9d5b1066da3ebbc71a856e0c33aa2c54d22478d6..be4b0990cb9e36ba453688edf88bc8444ee6fe6e 100644 --- a/src/SOL009/APIVersion/APIVersion.yaml +++ b/src/SOL009/APIVersion/APIVersion.yaml @@ -1,30 +1,26 @@ 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: diff --git a/src/SOL009/NFVManoConfigurationAndInformationManagement/NFVManoConfigurationAndInformationManagement.yaml b/src/SOL009/NFVManoConfigurationAndInformationManagement/NFVManoConfigurationAndInformationManagement.yaml index c1a385c83f4db2f2c090773f172117db0d15df73..f3032bdd684891cfba4406e87c2788e298ee14fb 100644 --- a/src/SOL009/NFVManoConfigurationAndInformationManagement/NFVManoConfigurationAndInformationManagement.yaml +++ b/src/SOL009/NFVManoConfigurationAndInformationManagement/NFVManoConfigurationAndInformationManagement.yaml @@ -1,31 +1,30 @@ 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 diff --git a/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/NFVManoConfigurationAndInformationManagementNotification.yaml b/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/NFVManoConfigurationAndInformationManagementNotification.yaml index ff16f929c4da1e29cef3ae0833e816675ba5e4f4..492c0a608d91469ed806843a1bbd93ffcb14de16 100644 --- a/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/NFVManoConfigurationAndInformationManagementNotification.yaml +++ b/src/SOL009/NFVManoConfigurationAndInformationManagementNotification/NFVManoConfigurationAndInformationManagementNotification.yaml @@ -1,34 +1,33 @@ 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 diff --git a/src/SOL009/NFVManoFaultManagement/NFVManoFaultManagement.yaml b/src/SOL009/NFVManoFaultManagement/NFVManoFaultManagement.yaml index b53416a072e578185c677bb8df104c329d345300..bed4c73d38c97a2c4ac2360c8d9f1e3c1dc3d029 100644 --- a/src/SOL009/NFVManoFaultManagement/NFVManoFaultManagement.yaml +++ b/src/SOL009/NFVManoFaultManagement/NFVManoFaultManagement.yaml @@ -1,19 +1,26 @@ 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 diff --git a/src/SOL009/NFVManoFaultManagementNotification/NFVManoFaultManagementNotification.yaml b/src/SOL009/NFVManoFaultManagementNotification/NFVManoFaultManagementNotification.yaml index b7fe8ce11182f53722f665458d3897558777481f..94656bde2b11347848c526597f72d56627a8af59 100644 --- a/src/SOL009/NFVManoFaultManagementNotification/NFVManoFaultManagementNotification.yaml +++ b/src/SOL009/NFVManoFaultManagementNotification/NFVManoFaultManagementNotification.yaml @@ -1,38 +1,38 @@ 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" diff --git a/src/SOL009/NFVManoLogManagement/NFVManoLogManagement.yaml b/src/SOL009/NFVManoLogManagement/NFVManoLogManagement.yaml index e1a4f35069c0602b19de7e99acaecb2a5394c1db..1f62c8c5e9a6ab7a619334af205b65a9f059d964 100644 --- a/src/SOL009/NFVManoLogManagement/NFVManoLogManagement.yaml +++ b/src/SOL009/NFVManoLogManagement/NFVManoLogManagement.yaml @@ -1,24 +1,27 @@ 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": diff --git a/src/SOL009/NFVManoLogManagementNotification/NFVManoLogManagementNotification.yaml b/src/SOL009/NFVManoLogManagementNotification/NFVManoLogManagementNotification.yaml index 94afb7cfc33e9c7bee172f36dcefa1de4ef2f48a..e09ff8bef09fb497b6940e19382712718c99ff76 100644 --- a/src/SOL009/NFVManoLogManagementNotification/NFVManoLogManagementNotification.yaml +++ b/src/SOL009/NFVManoLogManagementNotification/NFVManoLogManagementNotification.yaml @@ -1,31 +1,33 @@ 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. diff --git a/src/SOL009/NFVManoPerformanceManagement/NFVManoPerformanceManagement.yaml b/src/SOL009/NFVManoPerformanceManagement/NFVManoPerformanceManagement.yaml index 777443a6342a8f2d44f2e2ad67ffb1a12c7f8b03..aafde553ca087937b6b55916c6abcfdaccceef45 100644 --- a/src/SOL009/NFVManoPerformanceManagement/NFVManoPerformanceManagement.yaml +++ b/src/SOL009/NFVManoPerformanceManagement/NFVManoPerformanceManagement.yaml @@ -1,31 +1,31 @@ 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 diff --git a/src/SOL009/NFVManoPerformanceManagementNotification/NFVManoPerformanceManagementNotification.yaml b/src/SOL009/NFVManoPerformanceManagementNotification/NFVManoPerformanceManagementNotification.yaml index f86ad37a1a2b7e236c2aea160e725ee0b528401e..25b9099df3409f35a82bb6c18ac06d50db77dfa0 100644 --- a/src/SOL009/NFVManoPerformanceManagementNotification/NFVManoPerformanceManagementNotification.yaml +++ b/src/SOL009/NFVManoPerformanceManagementNotification/NFVManoPerformanceManagementNotification.yaml @@ -1,44 +1,43 @@ 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 diff --git a/src/SOL009/endpoints/SOL009_endpoints.yaml b/src/SOL009/endpoints/SOL009_endpoints.yaml index a8fb09824b28e7e8455fa0acd2e31ecf6366c18b..b71fe1e0a1dfd9d3132b482e7ed37f9b33cdc4bd 100644 --- a/src/SOL009/endpoints/SOL009_endpoints.yaml +++ b/src/SOL009/endpoints/SOL009_endpoints.yaml @@ -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