From 67cca8c07d315e27b286541f6e7a6d7220aad7eb Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Tue, 13 Nov 2018 03:30:41 +0100 Subject: [PATCH 01/11] NFV-SOL005-NS Lifecycle Management-Swagger-Files --- .../NSLifecycleManagement.yaml | 1811 ++++++++++++++++- .../NSLifecycleManagement_def.yaml | Bin 0 -> 6415 bytes .../SOL005NSLifecycleManagement_def.yaml | Bin 0 -> 24223 bytes .../definitions/SOL005_def.yaml | Bin 0 -> 11397 bytes .../responses/NSLifecycleManagement_resp.yaml | Bin 0 -> 3538 bytes .../responses/SOL005_resp.yaml | Bin 0 -> 8622 bytes 6 files changed, 1807 insertions(+), 4 deletions(-) create mode 100644 src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml create mode 100644 src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml create mode 100644 src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml create mode 100644 src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml create mode 100644 src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index 6b7fd8f..9e162c7 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -22,15 +22,1818 @@ basePath: "/nslcm/v1" schemes: - https - consumes: - "application/json" produces: - "application/json" - + paths: - /resource: +############################################################################### +# NSInstances # +############################################################################### + '/ns_instances': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.2 + post: + summary: "NS instances" + description: > + The POST method creates a new NS instance resource. + parameters: + - name: createNsRequest + description: "The NS Instance creation parameters." + in: body + required: true + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CreateNsRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + 201 Created + + A NS Instance identifier was created successfully. + The response body shall contain a representation of + the created NS instance, as defined in clause 6.5.2.8. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the created + NS instance. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: "NS instances" + description: > + Query NS Instances + + The GET method queries information about multiple NS instances. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI + query string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the NsInstance and in data types + referenced from it shall be supported in attribute-based filtering parameters" + - name: "all_fields" + in: "query" + required: false + type: "string" + description: > + "Include all complex attributes in the response. See clause 4.3.3 for details. + The NFVO shall support this parameter." + - name: "fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be included into the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be excluded from the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + "Indicates to exclude the following complex attributes from the response. + See clause 4.3.3 for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the NsInstance structure in + the response body if this parameter is provided, or none of the parameters + "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + - vnfInstances + - pnfInfo + - virtualLinkInfo + - vnffgInfo + - sapInfo + - nsScaleStatus + - additionalAffinityOrAntiAffinityRules" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + Information about zero or more NS instances was + queried successfully. + The response body shall contain representations of + zero or more NS instances. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################### +# Individual NS instance # +############################################################################### + '/ns_instances/{nsInstanceId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.3 + summary: "Read an individual NS instance resource" + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance. + in: path + type: string + required: true + get: + summary: Individual NS instance + description: > + The GET method retrieves information about a NS instance by + reading an individual NS instance resource. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + + Information about an individual NS instance was + queried successfully. + The response body shall contain a representation of + the NS instance. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + delete: + summary: Individual NS instance. + description: > + Delete NS Identifier + + This method deletes an individual NS instance resource. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The NS instance resource and the associated NS + identifier were 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Instantiate NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/instantiate': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.4 + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance to be instantiated. + in: path + type: string + required: true + post: + summary: Instantiate NS task. + description: > + The POST method requests to instantiate a NS instance resource. + parameters: + - name: InstantiateNsRequest + description: > + Parameters for the instantiate NS operation, as defined in clause 6.5.2.10. + in: body + required: true + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/InstantiateNsRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 202: + description: > + 202 Accepted + + The request was accepted for processing, but the + processing has not been completed. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP + header that contains the URI of the newly-created + "NS LCM operation occurrence" resource + corresponding to the operation. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Scale NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/scale': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.5 + description: > + This task resource represents the "Scale NS" operation. The client can use this resource to request to scale a NS + instance. Scaling an NS instance can be performed by explicitly adding/removing existing VNF instances to/from the + NS instance, by leveraging on the abstraction mechanism provided by the NS scaling aspects and NS levels information + elements declared in the NSD or by scaling individual VNF instances that are part of the NS itself. When adding VNFs + and nested NSs - already existing or not - to the NS to be scaled, the NFVO shall follow the indications provided by the + dependencies attribute, as specified in the corresponding NSD. + + In case the NS is a composite NS, it is also possible to scale directly its nested NS, as they are also NS + and thus indirectly effectively scale the composite NS + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance to be scaled. + in: path + type: string + required: true + post: + #SOL005v020401p location: 6.4.5.2 + summary: Scale NS task. + description: > + The POST method requests to scale a NS instance resource. + parameters: + - name: ScaleNsRequest + description: Represents a request for the scale NS operation + in: body + required: true + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/ScaleNsRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Update NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/update': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.6 + description: > + This task resource represents the "Update NS" operation. + The client can use this resource to update a NS instance. + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance to be updated. + in: path + type: string + required: true + post: + summary: Update NS task. + description: > + Scale NS instance. + The POST method requests to scale a NS instance resource. + parameters: + - name: UpdateNsRequest + description: Represents a request for the scale NS operation. + in: body + required: true + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/UpdateNsRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Heal NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/heal': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.7 + description: > + This task resource represents the "Heal NS" operation. + The client can use this resource to request healing a NS instance + parameters: + - name: nsInstanceId + description: > + Identifier of the NS instance to be healed. + in: path + type: string + required: true + post: + summary: Heal NS task. + description: > + Heal NS + + The POST method requests to heal a NS instance resource. + This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and + 6.4.7.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: HealNsRequest + description: Parameters for the heal NS operation, as defined in clause 6.5.2.12. + in: body + required: true + schema: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/HealNsRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Terminate NS task # +############################################################################### + '/ns_instances/{nsInstanceId}/terminate': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.8 + description: > + This task resource represents the "Terminate NS" operation. + The client can use this resource to terminate a NS instance. + parameters: + - name: nsInstanceId + description: > + The identifier of the NS instance to be terminated. + in: path + type: string + required: true + post: + summary: Terminate NS task + description: > + Terminate NS task + The POST method terminates a NS instance. This method can only be + used with a NS instance in the INSTANTIATED + state. Terminating a NS instance does not delete the NS instance identifier, + but rather transitions the NS into the NOT_INSTANTIATED state. + This method shall support the URI query parameters, request and + response data structures, and response codes, as + specified in the Tables 6.4.8.3.1-1 and 6.8.8.3.1-2. + parameters: + - name: TerminateNsRequest + description: The terminate NS request parameters, as defined in clause 6.5.2.14. + in: body + required: true + schema: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/TerminateNsRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 202: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# NS LCM operation occurrences # +############################################################################### + '/ns_lcm_op_occs': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.9 + description: > + This resource represents NS lifecycle management operation occurrences. + The client can use this resource to query + status information about multiple NS lifecycle management operation occurrences. + get: + summary: NS lifecycle operation occurrences. + description: > + Get Operation Status + The client can use this method to query status information about multiple NS lifecycle management operation + occurrences. + This method shall follow the provisions specified in the Tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. + The OSS/BSS may supply an attribute filter. + All attribute names that appear in the NsLcmOpOcc and in data types referenced + from it shall be supported in filtering parameters.. + - name: "fields" + in: "query" + required: false + type: "string" + description: > + Complex attributes to be included into the response. See clause 4.3.3 for details. The + NFVO should support this parameter. + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + Complex attributes to be excluded from the response. See clause 4.3.3 for details. + The NFVO should support this parameter. + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + Indicates to exclude the following complex attributes from the response. See + clause 4.3.3 for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the NsLcmOpOcc structure in the + response body if this parameter is provided: + - operationParams + - changedVnfInfo + - error + - resourceChanges + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + Status information for zero or more NS lifecycle + management operation occurrences was queried + successfully. + The response body shall contain representations of + zero or more NS instances, as defined in + clause 5.5.2.13. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" + + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual NS lifecycle operation occurrence # +############################################################################### + '/ns_lcm_op_occs/{nsLcmOpOccId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.10 + description: > + This resource represents a NS lifecycle management operation occurrence. + The client can use this resource to read + information about a NS lifecycle management operation occurrence. + Further, the client can use task resources which are + children of this resource to request cancellation of an operation in progress, + and to request the handling of operation + errors via retrying the operation, rolling back the operation, + or permanently failing the operation. + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence. + in: path + type: string + required: true + get: + summary: Individual NS lifecycle operation occurrence. + description: > + The client can use this method to retrieve status information about + a NS lifecycle management operation occurrence by + reading an individual "NS LCM operation occurrence" resource. + This method shall follow the provisions specified in the + Tables 6.4.10.3.2-1 and 6.4.10.3.2-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK + Information about an individual NS instance was + queried successfully. + The response body shall contain status information + about a NS lifecycle management operation occurrence. + headers: + Content-Type: + description: > + The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Retry operation task # +############################################################################### + '/ns_lcm_op_occs/{nsLcmOpOccId}/retry': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.11 + description: > + This task resource represents the "Retry operation" operation. + The client can use this resource to initiate retrying a NS + lifecycle management operation. + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be retried. + + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification + in: path + type: string + required: true + post: + summary: Retry operation task. + description: > + The POST method initiates retrying a NS lifecycle management operation + if that operation has experienced a temporary + failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the + Tables 6.4.11.3.1-1 and 6.4.11.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 202: + $ref: "responses/SOL005_resp.yaml#/responses/202" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Rollback a NS lifecycle management operation occurrence. # +############################################################################### + '/ns_lcm_op_occs/{nsLcmOpOccId}/rollback': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.12 + description: > + This task resource represents the "Rollback operation" operation. + The client can use this resource to initiate rolling back a NS lifecycle management operation. + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be rolled back. + This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response + to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + summary: Rollback operation task. + description: > + The POST method initiates rolling back a NS lifecycle operation + if that operation has experienced a temporary failure, + i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the + Tables 6.4.12.3.1-1 and 6.4.12.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 202: + $ref: "responses/SOL005_resp.yaml#/responses/202" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Continue a NS lifecycle management operation occurrence. # +############################################################################### + '/ns_lcm_op_occs/{nsLcmOpOccId}/continue': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.13 + description: > + This task resource represents the "Continue operation" operation. + The client can use this resource to initiate continuing + an NS lifecycle management operation. + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be continued. + in: path + required: true + type: string + post: + summary: Continue operation task. + description: > + The POST method initiates continuing an NS lifecycle operation if that operation has experienced a temporary failure, + i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. + This method shall follow the provisions specified in the Tables 6.4.13.3.1-1 and 6.4.13.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 202: + $ref: "responses/SOL005_resp.yaml#/responses/202" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Fail operation task # +############################################################################### + '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.14 + description: > + This task resource represents the "Fail operation" operation. The client can use this resource to mark a NS lifecycle + management operation occurrence as "finally failed", i.e. change the state of the related NS LCM operation occurrence + resource to "FAILED", if it is not assumed that a subsequent retry or rollback will succeed. Once the operation is + marked as "finally failed", it cannot be retried or rolled back anymore. + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be marked as "failed". + + This identifier can be retrieved from the resource referenced by + he "Location" HTTP header in the response + to a POST request triggering a NS LCM operation. + It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + summary: Fail operation task. + description: > + The POST method marks a NS lifecycle management operation + occurrence as "finally failed" if that operation + occurrence is in "FAILED_TEMP" state. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + The state of the NS lifecycle management operation + occurrence was changed successfully. + The response shall include a representation of the NS + lifecycle management operation occurrence resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Cancel operation task # +############################################################################### + '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.15 + description: > + This task resource represents the "Cancel operation" operation. + The client can use this resource to cancel an ongoing NS + lifecycle management operation. + parameters: + - name: nsLcmOpOccId + description: > + Identifier of a NS lifecycle management operation occurrence to be canceled. + + This identifier can be retrieved from the resource referenced by + the "Location" HTTP header in the response + to a POST request triggering a NS LCM operation. + It can also be retrieved from the "nsLcmOpOccId" + attribute in the NsLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + summary: Cancel operation task. + description: > + The POST method initiates canceling an ongoing NS lifecycle + management operation while it is being executed or + rolled back, i.e. the related "NS LCM operation occurrence" is + either in "PROCESSING" or "ROLLING_BACK" state. + This method shall follow the provisions specified in the + Tables 6.4.15.3.1-1 and 6.4.15.3.1-2 for URI query parameters, + request and response data structures, and response codes. + parameters: + - name: CancelMode + description: > + The POST request to this resource shall include a CancelMode + structure in the payload body to choose between "graceful" and + "forceful" cancellation. + in: body + required: true + schema: + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/CancelMode" + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 202: + $ref: "responses/SOL005_resp.yaml#/responses/202" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + description: > + 409 Conflict + + Error: The operation cannot be executed currently, due + to a conflict with the state of the NS LCM operation + occurrence resource. + Typically, this is due to the fact that the operation + occurrence is not in STARTING, PROCESSING or + ROLLING_BACK state. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.16 + description: > + This resource represents subscriptions. + The client can use this resource to subscribe to notifications related to NS + lifecycle management, and to query its subscriptions. + post: + summary: Subscriptions + description: > + Subscribe + + The POST method creates a new subscription. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.16.3.1-1 and 6.4.16.3.1-2. + Creation of two subscription resources with the same callbackURI and the same filter can result in performance + degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a subscription resource if another 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 subscription resource (in which case it shall return a "303 See Other" response code referencing + the existing subscription resource with the same filter and callbackUri). + parameters: + - name: LccnSubscriptionRequest + description: > + Details of the subscription to be created. + in: body + required: true + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + Created + + The subscription was created successfully. + The response body shall contain a representation of + the created subscription resource. + The HTTP response shall include a "Location:" + HTTP header that points to the created subscription + resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" + 303: + description: > + See Other + + A subscription with the same callbackURI and the + same filter already exits and the policy of the NFVO + is to not create redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of the + existing subscription resource. + The response body shall be empty. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: Subscriptions + description: > + Query Subscription Information + + The GET method queries the list of active subscriptions of the + functional block that invokes the method. It can be used e.g. for + resynchronization after error situations. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + OK + + The list of subscriptions was queried successfully. The response + body shall contain the representations of all active subscriptions + of the functional block that invokes the method. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" + 400: + description: > + Bad Request + + Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails structure, in + which the "detail" attribute should convey more information about + the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.17 + description: > + This resource represents an individual subscription. + It can be used by the client to read and to terminate a subscription to + Notifications related to NS lifecycle management. + parameters: + - name: subscriptionId + description: > + Identifier of this subscription. + in: path + type: string + required: true + get: + summary: Individual subscription. + description: > + The GET method retrieves information about a subscription by reading an individual subscription resource. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.17.3.2-1 and 6.4.17.3.2-2 + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + 200 OK + + The operation has completed successfully. + The response body shall contain a representation of + the subscription resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Individual subscription. + description: > + The DELETE method terminates an individual subscription. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.17.3.5-1 and 6.4.17.3.5-2. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + 204 No Content + + The subscription resource was 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Notification endpoint # +# "/notification_endpoint" is the # +# is the dummy URI used for testing, in real case endpoint URI has to # +# provided by client. # +############################################################################### + '/notification_endpoint': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.18 + description: > + This resource represents a notification endpoint. The server can use this resource to send notifications to a subscribed + client, which has provided the URI of this resource during the subscription process. + post: + summary: Notification endpoint. + description: > + The POST method delivers a notification from the server to the client. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. + parameters: + - name: nsLcmOperationOccurrenceNotification + description: > + A notification about lifecycle changes triggered by a NS LCM + operation occurrence. + in: body + required: true + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOperationOccurrenceNotification" + - name: nsIdentifierCreationNotification + description: > + A notification about the creation of a NS identifier and the related + NS instance resource. + in: body + required: true + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierCreationNotification" + - name: nsIdentifierDeletionNotification + description: > + A notification about the deletion of a NS identifier and the related + NS instance resource. + in: body + required: true + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierDeletionNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + The notification was delivered successfully. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" get: + summary: Notification endpoint. + description: > + Query NS Instances + + The GET method queries information about multiple NS instances. + This method shall support the URI query parameters, request and response data structures, and response codes, as + specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: Success \ No newline at end of file + description: > + OK + Multiple NS instances was queried successfully. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2046bdd441f5f5111f529decb07af9f8350309df GIT binary patch literal 6415 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 Z1yAW)v))q~0~+^47wvOs?3?LR{{u`24Qv1a literal 0 HcmV?d00001 diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2241a10ff697a9d4f6e944b299afdd0c24fe463c GIT binary patch literal 24223 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 literal 0 HcmV?d00001 diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d6132c7433c3554a248ee0d41d0ffdc1312f2fca GIT binary patch literal 11397 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 J>?eGs`X7qtUXB0& literal 0 HcmV?d00001 diff --git a/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml b/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..92d902db3e4991db4359826b1788448d2374887b GIT binary patch literal 3538 zcmeH}Z)_W99mm@;ty#87Fr>Ol(~M+W&*zJ?KePj0(CtMfs;z&Z6K(2s2eydc5QKj&kSCSIP1l}D2ME`d%jb1tX6g7 zco8ZJ8~u!*BkL@**JM?!Qal>+ED>*Cn5pA`EH`4=a3B-KMOx+5K={fV&*)z;SlHrl%Vvin+qxM;*OS~|_pDWh}O?%@xOg#FwA zgg800XFBM)<)55HnE?)*knU@g<$Pd*Ba&_WgrAY~A_ct$&r4n-L83foVjO5!hC8Q& zVx{H%I@G2#3OWnvnQ|}IJ@q0UEI%q~28US{J zm5IPClb_ieJ*B0wi6${+bf^`mcrRh_wX^uk0Vh+bxpivKZB;&L6OVhAF?dPR{9+dg zBx79<;ML0SKKIj4>x72CuYu+g5MK5Q)`lXgWQ1hzm zfE5ja2|hUxl}6c{mUh zV`SFiR`gg#O~(!`E2dd%wKDJB2tf_LBYZE?G6LTB8l5-&Qq~ZQ6eSJU`k1!*aWYxi z`eOu0La{L0xl-&t6na>_b*psIFO~D;51Ty+i@Ts&9h)(GF7ia8Q$BQrapjX3Lcmwl zOzEI5xecI(kc&b^xO&er;d&`Ka5rB)?>fdGdIZD}2zRY$*8!^lG62rhggbR~gfxfJ zoh*3%sl&HHF%mA5m0QKaIKUC%X!3k$bS4oMTy_(^ernH3{%j#CZHm&~uBsMtwo_3d9AQF#NQcLPmT zN<>M*%+%*W)-XVr&4c8O-d(ufe>-@lv<&F#OmTc^xpLr60ia2Bg1JJ}XpBS21c3Px znL_E=7HNx-sKQF6^ajR-($hDBg*7%lb^1Pl9rc?aWk3aB7z!Fu{@JLp{~J6GpeMG4 z25zCp;RT@h`M)T`W9VC7<1zTv#r>~>`rwsne`Wg3b<>IUPk-SqM#d{4+6B`6pTwP z3^HgSU;Fv0>%^3KEY-~y+40T(-Ym$Dfjr1dql0or?dG`WeHR=C{~jl=sUt+FD9;$3 z>ZYH$5&uu}b|itGIh#MRYL5?o_T=7g*a|nWt`nfcOc`PYZQ!pa z{GH;3nmTi}@c?wFs_6CxS{*CMyN92CXeT&N8NpOmsGZ0ine)N(T`4d)Ma48H!SiCF8A}#@2Xpuf z$dAH7bqG|63Z|y2+@LS#)-IUR3kAI#XNKxb_!grx17c#3atqxGDmJwBgQ4!0NRfHc zUKEZ3zU8{TyriMkeLv^PM|raSy~K{kf4$?Gb$gz_YmZ}L)i%@rEt4eJd(Kb+2pG%L zDno?!A?F|b{Us_8ZUP;oHh>{oy1s?J@1s-JA$5!o{Bn(%V(vOV!x8YGd!c4Y69A#; V=Pbgu>oKL7DZTPJJ^md%{sCrJv!eh2 literal 0 HcmV?d00001 diff --git a/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml b/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d4ef735d46fb437cf641d335ab1a2cb8b9ebcf36 GIT binary patch literal 8622 zcmds6eQX=&d0(=j)|?eX+|Du-S*bP06h%`>TQ^aLpdAKxQ_|X7y3MjE=Uj1+Bb`Jo zWKB{$woaT((s-;lWSOXm=AFX}$P;xuCS=T`MZv*rq!L9o3sPkwO-Zax*W$;C&fpcX z>on+|_xK^%vfXM%-ERK~&<9WNJp=O-PeXbO*0Uuj?ibF5a>xkRN; ze*Or#gwJ!sowobM4#KR~a+qGM^)+fp%h>@>C(&PLK_67`qMR|R>HB8Cc|A3r@d}&0 zw6)u3P3tqNaH7k%GYK!ngg76$NX#*|$O)m^!Gu!*yUZXzzjfF9eBMXII`C)@bB!|1 zv7|X^ldXJEu+-5D9wOF5_V4J~;tp#Lk^S)X@!8&bVN+JisTm{YkEY#;F~S<#k0OrxgHA7cM!KM-7Fi(Ky8%+7tkxf!TjPjyiHBb^y!zZQqiXOeEEWj z#e4}>Fe(dVRd z8T}^-%=UNDhyoO^ZAHZuw;X%DV%AZ)q4torR5^B{LL7eHyBrQU0}1zCSR~+u&!_|4#RVJ z_N&!)eZDZj9bn8V(hSW?1+1L*(u4Kz*o>cysp-nW2@)?l{$WD9IdQRipaXGk@^k)u|?HJ(8HJ%(5G2gp4KBu*To@1ytMCSzd zZ%^>Jyf=`%tefWu`F{<{wh7e~fM~e*C~+H;droKh$Sfb@vn)buVvKTUVa`o?kvWBR z$GNu}Wx-tGFB>b!ogKJX_1HIbuKdG7^>OC{8n$9VLXB7;nWlf=J|*`ZZ)0fq`nR_I z5AXxIf@O-YOzFnWuHoEyLIyQy@FBukB>Ok)`Lc+}DxnGxN_Y5COPs>R4(8O`a2}dW z`N9gls3P0z;eS=&@Dda}G(I6J2RM0=D`@#g`2JNNOl~L4B_bO2s_nU;U7oh*PWmI* z=y>YItJo2F8i?iXpZ?RMd!E#1uHfA->N9Ctp=Qiq`)c^1;oK{TZT@4|2b_i%yrwvs z8M41lI!uwo$_=te|98H}GRd1({!)$$ZX(VF$O!$h%QD9cr;dl?UZT|@kdffEBFU%& zhg?v0Q&RD^ywDv}YdxJ&`2vueF8(@jBO$%uvzuzAiK?f7Dl^LQ3>UR=`13q5*}!vO zqURiftj2bLDgM^wbvfB~=K?=){txTzSwp7I2cxAzq-3n(2NUXmMDnKSR#P*!@|rQF zFQW{HygG<|Jkr3lpmS!uxWVJz??96eGapV3bC>~`HuH!jR|v>+fCW5WLla6( z#vYLCM#sBN^IiCN$AoIGLIt`ZOv@cWiWbiL64>utk^6@Fw0U&$HE-u|#$Ow_xCWaN z{7aK>?1c}K#z!XN44nYnsmOiB;c+t|hPtj81&uHqXGEYfBoK(_?b*Iox1`bcGiHqb z@QN!_5;dwBd+e3p18gFV2A+Yc0xuzjS__R}TjxvR1V$$uAmt^Mf5C~jVe|$DYIQ5< z$(UquT6{u{!umL9Qe6RqsQR0vXY6o(5KJ$wT9$V5s zogKkm+~FRn!1ljaYIt!^jgVZHkX1G(T7~ZxxSK7#`%>1Z0D+d~)39bjvh3L{j=>u$ z?;W(d^ikRA z__woFr2*?_B{eC3(A@QEt`HsZ3a8kY5BbR+_gohXUw<^cjX1=aez9n}#*)Cp@BgUz z^sYs78a9xylIJ06wA0=I(6aGO z!rZ}Rw=qU05E>6RrVM2ICeolP?}86VqIv zrfE32hUJdjKeo>9ea`fAyZvBgD&DUU?AynlD4+ZXjF8sH z*=?Vo2I(xz;paILvWBPgjSZ9lE*D5_T;)qR!uvQ$DKyT?w-TqV)(E_<2N~c6U)YlH17Biwao=hlm(p>iHc zDmPnM1fsH(^9hQ!9wdz_6cEfkggxcY6_9dWS4g7;Ds0yS3Z|*QS9Cxwb8$N*(Ug*4 zQUNUpRe@_gFAS;uGhKeM15e6K%j&>@e1#HOpz0oDc48? ztL2bhld8RKGwsm?<{D4Y&~&Kt@-|E4kjb+wZ03b(9-je21tZ~rv@)Jyg#(mRlreEgA}w@6 z?Vs`zW$O-Uv4|aBtfS{x0}R7@LWHEGsVJ_vsr86*fAh`#Y|C5UFZ0rS%m-az<8JWq zdn+z9q&5)BBl5-W7{})drNV-q8j+U^j-MxrwawoFKAT*b`XfaX4pkj03@Vi6;`1fT z0hD!lR~iYBD=?TUY7lbxbKZYZ$e8&iw_Op;9AqXt`aiT*MT;>%t3^jzAVMD0mpB47 zVdD_+QCr`FG&i~gn*Uv4-;W zIz#*b2R444FkfN~zpUwZ3_d8+!RicIAY>O+LNeVaVk8XwAux5xJ}aGI()#fZOdjFU+DF=2oKkIR(V{0@()Z zxGsaD)@H2(xnzveCa@VhnoIGX1GrcRqcW&K+aBDg26sfAQ`1%60O~SrkS`2#Uh}b^ zrO^UVO>ewBEItg>E%~tpxB)3bS+eV)iGh4KGl@3#LiI5a zFJ^>8d$6He7-njkE4n_@+!gRtc!(8{7X0$5IB9{`sl})Hm9wD;++OmK(#}C=Dd6(t znxznPqDrlM=mxGpZsFG$hkMtVJDx1-`wxjk*Wsk{{kZiNH?R6Fenx-a#kyif}_7o|uW z>LMU{NtX`zISh|=QMu%3{^4%;Nv;6<7C1R6-E;t@3)Yo7{O=+dO2igMh@*TBdozFb zu6M}mwFJ+V)Ax5oQ&eVvb*@%Lwo>=oQ#x2R1CFZRB>GugTfS^U1{GQNBe{cQ8>WBC zgN(YOgN%3$8Q$r6chA@ka>gEvs3};BLD-R$x5y-CxE;>K2}`DZ#*;<)%d8G z!TR*KXT`K$Oc7;FeSkLeaq8=y^ZiNX)12CW&ED7g8jy)I4%?e@RFR|;qJJ=&2bSFNvi zM$IZ6w7yLT`%hEsIed7T^GXxQPJ%G{9YI0`7mMrNLa**l@2QoY_;(<2qR|pTYlz_Fd&R zg|l8sSV{0v_D)#QkQQ_?L|c1^eLU>s;ZoQpV}%IohQ&B{05_qlZ9L+N9`d*{8mH$9 z12=={&InzXqw9|;UI!`$%WBA6l`Z10PX0G_q;`@K%bPp-Nu<=&Ci zearAB`2W6EbY)Y%wn$OYCOXdfVLu<|C{Nev{3R#bOU|Q}j`JGt&mCmK592@d26K!M za#_R%TG0#Zaj?^Hmv@sZK4R&7qY5|^E`}Z@BV%-g{le}a?Eb6C`S0l$k-hODt6cpm yk-T!>CsKD%L6Q{QxhF6jt~d=md6j2EC&J)cG7YrR0cW@cI?$a?QHbyLto{#qO*_c| literal 0 HcmV?d00001 -- GitLab From bd266855f0b103aa2c7aa47d6aec1728259c107d Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Tue, 13 Nov 2018 11:34:20 +0100 Subject: [PATCH 02/11] Replace SOL005NSLifecycleManagement_def.yaml --- .../SOL005NSLifecycleManagement_def.yaml | Bin 24223 -> 127946 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index 2241a10ff697a9d4f6e944b299afdd0c24fe463c..97c444eda8113a10c42553048b70d450dd154079 100644 GIT binary patch literal 127946 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 ZMN`OGyYk&Od%suB@e|smm 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 -- GitLab From d7241b5596907f6ab74a7f34c48aecb379ba5230 Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Tue, 13 Nov 2018 11:35:02 +0100 Subject: [PATCH 03/11] Replace NSLifecycleManagement_def.yaml --- .../NSLifecycleManagement_def.yaml | Bin 6415 -> 127946 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml index 2046bdd441f5f5111f529decb07af9f8350309df..97c444eda8113a10c42553048b70d450dd154079 100644 GIT binary patch literal 127946 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 ZMbTfz#MNr7 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 Z1yAW)v))q~0~+^47wvOs?3?LR{{u`24Qv1a -- GitLab From c3bce790edc3bba8f1bfb9a2b79b12b19320f8b9 Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Tue, 13 Nov 2018 11:35:15 +0100 Subject: [PATCH 04/11] Replace SOL005_def.yaml --- .../definitions/SOL005_def.yaml | Bin 11397 -> 24637 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml index d6132c7433c3554a248ee0d41d0ffdc1312f2fca..61b3ede4f7438c80e98fbe68a41a4149d72f61ce 100644 GIT binary patch literal 24637 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 literal 11397 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 J>?eGs`X7qtUXB0& -- GitLab From 123463a45a7c7bd132ba3103e23c74d5f82f84f1 Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Tue, 13 Nov 2018 11:35:35 +0100 Subject: [PATCH 05/11] Replace NSLifecycleManagement_resp.yaml --- .../responses/NSLifecycleManagement_resp.yaml | Bin 3538 -> 7223 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml b/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml index 92d902db3e4991db4359826b1788448d2374887b..89a62a5c838b85aaf9a065fd1070d8b15e0c31ad 100644 GIT binary patch literal 7223 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 V=Pbgu>oKL7DZTPJJ^md%{sCrJv!eh2 -- GitLab From 4325553bad062c9a27e20ed666491377e292e781 Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Tue, 13 Nov 2018 11:35:49 +0100 Subject: [PATCH 06/11] Replace SOL005_resp.yaml --- .../responses/SOL005_resp.yaml | Bin 8622 -> 17264 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml b/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml index d4ef735d46fb437cf641d335ab1a2cb8b9ebcf36..59992fb9b0650de3face733143254d893c1a3bee 100644 GIT binary patch literal 17264 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 literal 8622 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 -- GitLab From 5f4011fbbc500efdfa3b93a822f97bc8d8be278d Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Tue, 13 Nov 2018 11:38:13 +0100 Subject: [PATCH 07/11] Replace NSLifecycleManagement_def.yaml --- .../NSLifecycleManagement_def.yaml | 3575 ++--------------- 1 file changed, 247 insertions(+), 3328 deletions(-) diff --git a/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml index 97c444e..622ab54 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml @@ -1,3409 +1,328 @@ # Copyright (c) ETSI 2017 # https://forge.etsi.org/etsi-forge-copyright-notice.txt + definitions: - CreateNsRequest: - type: object - required: - - nsdId - - nsName - - nsDescription - properties: - nsdId: - description: > - Identifier of the NSD that defines the NS instance to be - created. - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsName: - description: > - Human-readable name of the NS instance to be created. - type: string - nsDescription: - description: > - Human-readable description of the NS instance to be created. - type: string - - NsInstance: + HealNsRequest: description: > - This type represents a response for Query NS operation. - It shall comply with the provisions defined in Table 6.5.2.10-1. + This operation supports the healing of an NS instance, + either by healing the complete NS instance or by healing one of + more of the VNF instances that are part of this NS. + It shall comply with the provisions defined in Table 6.5.2.13-1. type: object - required: - - id - - nsInstanceName - - nsInstanceDescription - - nsdId - - nsdInfoId - - nsState properties: - id: - description: > - Identifier of the NS instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsInstanceName: - description: > - Human readable name of the NS instance. - type: string - nsInstanceDescription: - description: > - Human readable description of the NS instance. - type: string - nsdId: - description: > - Identifier of the NSD on which the NS instance is based. - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsdInfoId: - description: > - Identifier of the NSD information object on which the - NS instance is based. This identifier was allocated by the NFVO. - $ref: "SOL005_def.yaml#/definitions/Identifier" - flavourId: - description: > - Identifier of the NS deployment flavor applied to - the NS instance. This attribute shall be present if the nsState attribute - value is INSTANTIATED. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - vnfInstance: - description: > - Information on constituent VNF(s) of the NS instance. - type: array - items: - $ref: "#/definitions/VnfInstance" - pnfInfo: - description: > - Information on the PNF(s) that are part of the NS instance. - type: array - items: - $ref: "#/definitions/PnfInfo" - virtualLinkInfo: - description: > - Information on the VL(s) of the NS instance. - This attribute shall be present if the nsState attribute - value is INSTANTIATED and if the NS instance has - specified connectivity. - type: array - items: - $ref: "#/definitions/NsVirtualLinkInfo" - vnffgInfo: - description: > - Information on the VNFFG(s) of the NS instance. - type: array - items: - $ref: "#/definitions/VnffgInfo" - sapInfo: - description: > - Information on the SAP(s) of the NS instance. - type: array - items: - $ref: "#/definitions/SapInfo" - nestedNsInstanceId: - description: > - Identifier of the nested NS(s) of the NS instance. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsState: + healNsData: description: > - The state of the NS instance. - Permitted values: - NOT_INSTANTIATED: The NS instance is - terminated or not instantiated. - INSTANTIATED: The NS instance is instantiated. - type: string - enum: - - NOT_INSTANTIATED - - INSTANTIATED - nsScaleStatus: + Indicates the reason why a healing procedure is required. + $ref: "#/definitions/HealNsData" + healVnfData: description: > - Status of each NS scaling aspect declared in the - applicable DF, how "big" the NS instance has been - scaled w.r.t. that aspect. - This attribute shall be present if the nsState attribute - value is INSTANTIATED.. + Additional parameters passed by the NFVO as input to the healing + process, specific to the VNF being healed, as declared in the VNFD + as part of "HealVnfOpConfig". type: array items: - $ref: "#/definitions/NsScaleInfo" - - additionalAffinityOrAntiAffinityRule: - description: > - Information on the additional affinity or anti-affinity - rule from NS instantiation operation. Shall not - conflict with rules already specified in the NSD. - type: array - items: - $ref: "#/definitions/AffinityOrAntiAffinityRule" - _links: - description: > - Links to resources related to this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "SOL005_def.yaml#/definitions/Link" - nestedNsInstances: - description: > - Links to resources related to this notification. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Link" - instantiate: - description: > - Link to the "instantiate" task resource, if the related - operation is possible based on the current status of - this NS instance resource (i.e. NS instance in - NOT_INSTANTIATED state). - $ref: "SOL005_def.yaml#/definitions/Link" - terminate: - description: > - Link to the "terminate" task resource, if the related - operation is possible based on the current status of - this NS instance resource (i.e. NS instance is in - INSTANTIATED state). - $ref: "SOL005_def.yaml#/definitions/Link" - update: - description: > - Link to the "update" task resource, if the related - operation is possible based on the current status of - this NS instance resource (i.e. NS instance is in - INSTANTIATED state). - $ref: "SOL005_def.yaml#/definitions/Link" - scale: - description: > - Link to the "scale" task resource, if the related - operation is supported for this NS instance, and is - possible based on the current status of this NS - instance resource (i.e. NS instance is in - INSTANTIATED state). - $ref: "SOL005_def.yaml#/definitions/Link" - heal: - description: > - Link to the "heal" task resource, if the related - operation is supported for this NS instance, and is - possible based on the current status of this NS - instance resource (i.e. NS instance is in - INSTANTIATED state). - $ref: "SOL005_def.yaml#/definitions/Link" - - VnfInstance: + $ref: "#/definitions/HealVnfData" + + NsLcmOpOcc: description: > - This type represents a VNF instance. + This type represents a request a NS lifecycle operation occurrence. + It shall comply with the provisions defined in Table 6.5.2.3-1. type: object required: - id - - vnfdId - - vnfProvider - - vnfProductName - - vnfSoftwareVersion - - vnfdVersion - - vnfPkgId - - instantiationState + - operationState + - stateEnteredTime + - nsInstanceId + - lcmOperationType + - startTime + - isAutomaticInvocation + - operationParams + - isCancelPending properties: id: description: > - Identifier of the VNF instance. + Identifier of this NS lifecycle operation occurrence. $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfInstanceName: + operationState: description: > - Name of the VNF instance. - This attribute can be modified with the PATCH method. - type: string - vnfInstanceDescription: + The state of the NS LCM operation. + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOperationStateType" + stateEnteredTime: description: > - Human-readable description of the VNF instance. - This attribute can be modified with the PATCH method. + Date-time when the current state was entered. type: string - vnfdId: + format: date-time + nsInstanceId: description: > - Identifier of the VNFD on which the VNF instance is based. + Identifier of the NS instance to which the operation applies. $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfProvider: + lcmOperationType: description: > - Provider of the VNF and the VNFD. The value is copied from the VNFD. - type: string - vnfProductName: + Type of the actual LCM operation represented by this + lcm operation occurrence. + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOpType" + startTime: description: > - Name to identify the VNF Product. The value is copied from the VNFD. + Date-time of the start of the operation. type: string - vnfSoftwareVersion: - description: > - Software version of the VNF. The value is copied from the VNFD. - $ref: "#/definitions/Version" - vnfdVersion: - description: > - Identifies the version of the VNFD. The value is copied from the VNFD. - $ref: "#/definitions/Version" - vnfPkgId: - description: > - Identifier of information held by the NFVO about - the specific VNF package on which the VNF is - based. This identifier was allocated by the NFVO. - This attribute can be modified with the PATCH - method. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: + format: date-time + isAutomaticInvocation: description: > - Current values of the configurable properties of the VNF instance. - Configurable properties referred in this attribute are declared in - the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD - based on TOSCA specifications. - VNF configurable properties are sometimes also referred to as - configuration parameters applicable to a VNF. Some of these are set - prior to instantiation and cannot be modified if the VNF is - instantiated, some are set prior to instantiation (are part of - initial configuration) and can be modified later, and others can be - set only after instantiation. The applicability of certain - configuration may depend on the VNF and the required operation of - the VNF at a certain point in time. - These configurable properties include the following standard - attributes, which are declared in the VNFD if auto-scaling and/or - auto-healing are supported by the VNF: - * isAutoscaleEnabled: If present, the VNF supports auto-scaling. If - set to true, auto-scaling is currently enabled. If set to false, - auto-scaling is currently disabled. - * isAutohealEnabled: If present, the VNF supports auto-healing. If - set to true, auto-healing is currently enabled. If set to false, - auto-healing is currently disabled. - This attribute can be modified with the PATCH method. + Set to true if this NS LCM operation occurrence has + been automatically triggered by the NFVO. This occurs + in the case of auto-scaling, auto-healing and when a + nested NS is modified as a result of an operation on its + composite NS. Set to false otherwise. + type: boolean + operationParams: + description: > + Input parameters of the LCM operation. This attribute + shall be formatted according to the request data type of + the related LCM operation. + The following mapping between lcmOperationType and + the data type of this attribute shall apply: + - INSTANTIATE: InstantiateNsRequest + - SCALE: ScaleNsRequest + - UPDATE: UpdateNsRequest + - HEAL: HealNsRequest + - TERMINATE: TerminateNsRequest $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - vimId: + isCancelPending: description: > - Identifier of a VIM that manages resources for the VNF instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - instantiationState: + If the LCM operation occurrence is in "PROCESSING" + or "ROLLING_BACK" state and the operation is being + cancelled, this attribute shall be set to true. Otherwise, it + shall be set to false. + type: boolean + cancelMode: description: > - The instantiation state of the VNF. - type: string - enum: - - NOT_INSTANTIATED - - INSTANTIATED - instantiatedVnfInfo: + The mode of an ongoing cancellation. Shall be present + when isCancelPending=true, and shall be absent otherwise. + $ref: "#/definitions/CancelModeType" + error: + description: > + If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState" + is "PROCESSING" or "ROLLING_BACK" and previous value of + "operationState" was "FAILED_TEMP", this attribute shall be present + and contain error information, unless it has been requested to be + excluded via an attribute selector. + $ref: "SOL005_def.yaml#/definitions/ProblemDetails" + resourceChanges: description: > - Information specific to an instantiated VNF instance. This attribute - shall be present if the instantiateState attribute value is INSTANTIATED. + This attribute contains information about the cumulative + changes to virtualised resources that were performed so + far by the LCM operation since its start, if applicable type: object - required: - - flavourId - - vnfState properties: - flavourId: - description: > - Identifier of the VNF deployment flavor applied to this VNF instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - vnfState: + affectedVnfs: description: > - The state of the VNF instance. - $ref: "#/definitions/VnfOperationalStateType" - scaleStatus: - description: > - Scale status of the VNF, one entry per aspect. Represents for every - scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. + Information about the VNF instances that were affected + during the lifecycle operation, if this notification + represents the result of a lifecycle operation.. type: array items: - $ref: "#/definitions/VnfScaleInfo" - extCpInfo: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnf" + affectedPnfs: description: > - Information about the external CPs exposed by the VNF instance. + Information about the PNF instances that were affected + during the lifecycle operation, if this notification + represents the result of a lifecycle operation. type: array - minItems: 1 items: - type: object - required: - - id - - cpdId - properties: - id: - description: > - Identifier of the external CP instance and the related information instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - cpdId: - description: > - Identifier of the external CPD, VnfExtCpd, in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - cpProtocolInfo: - description: > - Network protocol information for this CP. - type: array - items: - $ref: "#/definitions/CpProtocolInfo" - extLinkPortId: - description: > - Identifier of the "extLinkPortInfo" structure inside the the - "extVirtualLinkInfo" structure. Shall be present if the CP is - associated to a link port. - $ref: "SOL005_def.yaml#/definitions/Identifier" - - extVirtualLinkInfo: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedPnf" + affectedVls: description: > - Information about the external VLs the VNF instance is connected to. + Information about the VL instances that were affected + during the lifecycle operation, if this notification + represents the result of a lifecycle operation. type: array items: - $ref: "#/definitions/ExtVirtualLinkInfo" - extManagedVirtualLinkInfo: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVl" + affectedVnffgs: description: > - External virtual links the VNF instance is connected to. + Information about the VNFFG instances that were + affected during the lifecycle operation, if this notification + represents the result of a lifecycle operation. See note type: array items: - $ref: "#/definitions/ExtManagedVirtualLinkInfo" - monitoringParameters: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnffg" + affectedNss: description: > - Active monitoring parameters. + Information about the nested NS instances that were + affected during the lifecycle operation, if this notification + represents the result of a lifecycle operation. See note. type: array items: - $ref: "#/definitions/MonitoringParameter" - localizationLanguage: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedNs" + affectedSaps: description: > - Information about localization language of the VNF (includes e.g. - strings in the VNFD). The localization languages supported by a VNF - can be declared in the VNFD, and localization language selection can - take place at instantiation time. - The value shall comply with the format defined in IETF RFC 5646. - type: string - vnfcResourceInfo: - description: > - Information about the virtualised compute and storage resources used - by the VNFCs of the VNF instance. + Information about the nested NS instances that were + affected during the lifecycle operation, if this notification + represents the result of a lifecycle operation. See note. type: array items: - $ref: "#/definitions/VnfcResourceInfo" - virtualLinkResourceInfo: + $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedSap" + _links: + description: > + Links to resources related to this resource. + type: object + properties: + self: description: > - Information about the virtualised network resources used by the VLs - of the VNF instance. - type: array - items: - $ref: "#/definitions/VnfVirtualLinkResourceInfo" - virtualStorageResourceInfo: + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + nsInstance: description: > - Information on the virtualised storage resource(s) used as storage for the VNF instance. - type: array - items: - $ref: "#/definitions/VirtualStorageResourceInfo" - metadata: - description: > - Additional VNF-specific metadata describing the VNF instance. - Metadata that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - extensions: - description: > - VNF-specific attributes that affect the lifecycle management of this - VNF instance by the VNFM, or the lifecycle management scripts. - Extensions that are writeable are declared in the VNFD. - This attribute can be modified with the PATCH method. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - LccnLinks: + Link to the NS instance that the operation applies to. + $ref: "SOL005_def.yaml#/definitions/Link" + cancel: + description: > + Link to the task resource that represents the "cancel" + operation for this LCM operation occurrence, if + cancelling is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + retry: + description: > + Link to the task resource that represents the "cancel" + operation for this LCM operation occurrence, + if cancelling is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + rollback: + description: > + Link to the task resource that represents the "rollback" + operation for this LCM operation occurrence, if rolling + back is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + continue: + description: > + Link to the task resource that represents the "continue" + operation for this LCM operation occurrence, if rolling + back is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + fail: + description: > + Link to the task resource that represents the "fail" + operation for this LCM operation occurrence, if rolling + back is currently allowed. + $ref: "SOL005_def.yaml#/definitions/Link" + CancelMode: description: > - This type represents the links to resources that a notification can contain. + This type represents a parameter to select the mode of canceling an ongoing NS LCM operation occurrence. + It shall comply with the provisions defined in Table 6.5.2.16-1.. type: object required: - - nsInstance - properties: - nsInstance: - description: > - Link to the resource representing the NS instance to - which the notified change applies.. - $ref: "SOL005_def.yaml#/definitions/Link" - subscription: - description: > - Link to the subscription that triggered this notification. - $ref: "SOL005_def.yaml#/definitions/Link" - lcOpOcc: + - cancelMode + properties: + cancelMode: description: > - Link to the lifecycle operation occurrence that this - notification is related to. Shall be present if there is a - related lifecycle operation occurrence - $ref: "SOL005_def.yaml#/definitions/Link" - - Version: + Cancellation mode to apply. + $ref: "#/definitions/CancelModeType" + + CancelModeType: description: > - A Version. - type: string - - VnfOperationalStateType: + Cancellation mode. + + The NFVO shall not start any new VNF lifecycle management and resource + management operation, and shall wait for the ongoing VNF lifecycle management + and resource management operations in the underlying system, typically the VNFM + and VIM, to finish execution or to time out. After that, the NFVO shall put the + operation occurrence into the FAILED_TEMP state. + + The NFVO shall not start any new VNF lifecycle management and resource + management operation, shall cancel the ongoing VNF lifecycle management and + resource management operations in the underlying system, typically the VNFM and + VIM, and shall wait for the cancellation to finish or to time out. After that, the NFVO + shall put the operation occurrence into the FAILED_TEMP state. type: string enum: - - STARTED - - STOPPED + - GRACEFUL + - FORCEFUL - VnfScaleInfo: - required: - - aspectId - - scaleLevel - type: object - properties: - aspectId: - description: > - Identifier of the scaling aspect. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - scaleLevel: - description: > - Indicates the scale level. The minimum value shall be 0 and the - maximum value shall be <= maxScaleLevel as described in the VNFD. - type: integer - - PnfInfo: + HealNsData: description: > - This type represents the information about a PNF that is part of an NS instance. - It shall comply with the provisions - defined in Table 6.5.3.13-1. + This type represents the information used to heal a NS. + It shall comply with the provisions defined in Table 6.5.3.43-1. type: object - required: - - pnfId - - pnfdId - - pnfdInfoId - - pnfProfileId + required: + - degreeHealing properties: - pnfId: + degreeHealing: description: > - Identifier of the PNF. This identifier is allocated by the OSS/BSS. - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfName: - description: > - Name of the PNF. + Indicates the degree of healing. Possible values + include: + - HEAL_RESTORE: Complete the healing of + the NS restoring the state of the NS before + the failure occurred + - HEAL_QOS: Complete the healing of the NS + based on the newest QoS values + - HEAL_RESET: Complete the healing of the + NS resetting to the original instantiation state of the NS + - PARTIAL_HEALING type: string - pnfdId: - description: > - Identifier of the PNFD on which the PNF is based. - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfdInfoId: - description: > - Identifier of the PNFD information onject related to this - PNF. This identifier is allocated by the NFVO - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfProfileId: - description: > - Identifier of the related PnfProfile in the NSD on which - the PNF is based. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - cpInfo: - description: > - Information on the external CP of the PNF. - $ref: "#/definitions/PnfExtCpInfo" - - PnfExtCpInfo: - description: > - This type represents the information about the external CP of the PNF. - It shall comply with the provisions defined in - Table 6.5.3.17-1. - type: object - required: - - cpInstanceId - - cpdId - properties: - cpInstanceId: - description: > - Identifier of the CP in the scope of the PNF. - $ref: "SOL005_def.yaml#/definitions/IdentifierInPnf" - cpdId: - description: > - Identifier of (reference to) the Connection Point - Descriptor (CPD) for this CP. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - cpProtocolData: - description: > - Parameters for configuring the network protocols on the CP. + enum: + - HEAL_RESTORE + - HEAL_QOS + - HEAL_RESET + - PARTIAL_HEALING + actionsHealing: + description: > + Used to specify dedicated healing actions in a + particular order (e.g. as a script). The actionsHealing + attribute can be used to provide a specific script whose + content and actions might only be possible to be + derived during runtime. type: array - items: - $ref: "SOL005_def.yaml#/definitions/CpProtocolData" - - NsVirtualLinkInfo: - description: > - This type specifies the information about an NS VL instance. - It shall comply with the provisions defined in - Table 6.5.3.53-1 - type: object - required: - - id - - nsVirtualLinkDescId - properties: - id: - description: > - Identifier of the VL instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - nsVirtualLinkDescId: - description: > - Identifier of the VLD in the NSD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - resourceHandle: + items: + $ref: "SOL005_def.yaml#/definitions/String" + healScript: description: > - Identifier(s) of the virtualised network resource(s) - realizing the VL instance. See note. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - linkPort: + Reference to a script from the NSD that shall be used + to execute dedicated healing actions in a particular + order. The healScript, since it refers to a script in the + NSD, can be used to execute healing actions which + are defined during NS design time. + $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" + additionalParamsforNs: description: > - Link ports of the VL instance. - Cardinality of zero indicates that no port has yet been - created for the VL instance. - type: array - items: - $ref: "#/definitions/NsLinkPortInfo" - - VnffgInfo: + Allows the OSS/BSS to provide additional + parameter(s) to the healing process at the NS level. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + HealVnfData: description: > - Information on the VNFFG(s) of the NS instance. + This type represents the information to heal a VNF that is part of an NS. + The NFVO shall then invoke the HealVNF + operation towards the appropriate VNFM. + It shall comply with the provisions defined in Table 6.5.3.44-1. type: object - required: - - id - - vnffgdId - - vnfInstanceId - - pnfInfoId - properties: - id: - description: > - Identifier of this VNFFG instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnffgdId: - description: > - Identifier of the VNFFGD in the NSD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - vnfInstanceId: - description: > - Identifier(s) of the constituent VNF instance(s) of this VNFFG instance. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfdInfoId: - description: > - Identifier(s) of the constituent PNF instance(s) of this - VNFFG instance. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsVirtualLinkInfoId: - description: > - Identifier(s) of the constituent VL instance(s) of this - VNFFG instance. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - nsCpHandle: - description: > - Identifiers of the CP instances attached to the - constituent VNFs and PNFs or the SAP instances of the - VNFFG. See note. - type: array - items: - $ref: "#/definitions/NsCpHandle" - - NsCpHandle: - description: > - This type represents an identifier of the CP or SAP instance. - It shall comply with the provisions defined in - Table 6.5.3.56-1. - type: object + required: + - vnfInstanceId properties: vnfInstanceId: description: > - Identifier of the VNF instance associated to the CP instance. - This attribute shall be present if the CP instance is VNF external CP. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfExtCpInstanceId: - description: > - Identifier of the VNF external CP instance in the scope - of the VNF instance. This attribute shall be present if the CP instance is VNF - external CP. See notes 1 and 4. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - pnfInfoId: - description: > - Identifier of the PNF instance associated to the CP - instance. This attribute shall be present if the CP instance is PNF - external CP. See notes 2 and 4. - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfExtCpInstanceId: - description: > - Identifier of the PNF external CP instance in the scope - of the PNF. This attribute shall be present if the CP instance is PNF - external CP. See notes 2 and 4. - $ref: "SOL005_def.yaml#/definitions/IdentifierInPnf" - nsInstanceId: - description: > - Identifier of the NS instance associated to the SAP - instance. This attribute shall be present if the CP instance is NS - SAP. See notes 3 and 4. - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsSapInstanceId: - description: > - Identifier of the SAP instance in the scope of the NS - instance. This attribute shall be present if the CP instance is NS - SAP. See notes 3 and 4. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - - SapInfo: - description: > - This type represents an SAP instance. It shall comply with the provisions defined in Table 6.5.3.67-1. - type: object - required: - - id - - sapdId - - sapName - - sapProtocolInfo - properties: - id: - description: > - Identifier of the SAP instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - sapdId: - description: > - Identifier of the SAPD in the NSD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - sapName: - description: > - Human readable name for the SAP instance. - type: string - description: + Identifies the VNF instance, part of the NS, requiring a + healing action. + $ref: "SOL005_def.yaml#/definitions/Identifier" + cause: description: > - Human readable description for the SAP instance. + Indicates the reason why a healing procedure is required. type: string - sapProtocolInfo: - description: > - Network protocol information for this SAP. - type: array - items: - $ref: "#/definitions/CpProtocolInfo" - - CpProtocolInfo: - description: > - This type describes the protocol layer(s) that a CP or SAP uses together with protocol-related information, like - addresses. It shall comply with the provisions defined in Table 6.5.3.58-1. - type: object - required: - - layerProtocol - - ipOverEthernet - properties: - layerProtocol: - description: > - The identifier of layer(s) and protocol(s) - associated to the network address information. - Permitted values: IP_OVER_ETHERNET See note. - type: string - enum: - - IP_OVER_ETHERNET - ipOverEthernet: - description: > - IP addresses over Ethernet to assign to the CP - or SAP instance. Shall be present if - layerProtocol is equal to " - IP_OVER_ETHERNET", and shall be absent otherwise. - $ref: "#/definitions/IpOverEthernetAddressInfo" - - IpOverEthernetAddressInfo: - description: > - This type represents information about a network address that has been assigned. - It shall comply with the provisions defined in Table 6.5.3.18-1. - type: object - required: - - macAddress - - ipAddresses - - subnetId - - addresses - - addressRange - properties: - macAddress: - description: > - Assigned MAC address. - $ref: "SOL005_def.yaml#/definitions/MacAddress" - ipAddresses: - description: > - Addresses assigned to the CP instance. Each entry represents IP - addresses assigned by fixed or dynamic IP address assignment per - subnet. - type: array - items: - type: object - required: - - type - properties: - type: - description: > - The type of the IP addresses. - Permitted values: IPV4, IPV6. - type: string - enum: - - IPV4 - - IPV6 - addresses: - description: > - Fixed addresses assigned (from the subnet defined by - "subnetId" if provided). - type: array - items: - $ref: "SOL005_def.yaml#/definitions/IpAddress" - isDynamic: - description: > - Indicates whether this set of addresses was assigned - dynamically (true) or based on address information provided as - input from the API consumer (false). Shall be present if - "addresses" is present and shall be absent otherwise. - type: boolean - addressRange: - description: > - An IP address range used, e.g., in case of egress connections. - Exactly one of "addresses" or "addressRange" shall be present. - type: object - required: - - minAddress - - maxAddress - properties: - minAddress: - description: > - Lowest IP address belonging to the range. - $ref: "SOL005_def.yaml#/definitions/IpAddress" - maxAddress: - description: > - Highest IP address belonging to the range - $ref: "SOL005_def.yaml#/definitions/IpAddress" - subnetId: - description: > - Subnet defined by the identifier of the subnet resource in - the VIM. - In case this attribute is present, IP addresses are bound - to that subnet. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVim" - - - type: - description: > - The type of the IP addresses - type: string - enum: - - PV4 - - PV6 - addresses: - description: > - Fixed addresses assigned (from the subnet - defined by "subnetId" if provided). See note. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/IpAddress" - isDynamic: - description: > - Indicates whether this set of addresses was - assigned dynamically (true) or based on address - information provided as input from the API - consumer (false). Shall be present if "addresses" - is present and shall be absent otherwise. - type: boolean - addressRange: - description: > - An IP address range used, e.g. in case of egress - connections. See note. - type: object - required: - - minAddress - - maxAddress - properties: - minAddress: - description: > - Lowest IP address belonging to the range. - $ref: "SOL005_def.yaml#/definitions/IpAddress" - maxAddress: - description: > - Highest IP address belonging to the range - $ref: "SOL005_def.yaml#/definitions/IpAddress" - minAddress: - description: > - Lowest IP address belonging to the range - $ref: "SOL005_def.yaml#/definitions/IpAddress" - maxAddress: - description: > - Highest IP address belonging to the range. - $ref: "SOL005_def.yaml#/definitions/IpAddress" - subnetId: - description: > - Subnet defined by the identifier of the subnet - resource in the VIM. - In case this attribute is present, IP addresses - are bound to that subnet. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVim" - - ExtVirtualLinkInfo: - type: object - required: - - id - - resourceHandle - properties: - id: - description: > - Identifier of the external VL and the related external VL - information instance. - The identifier is assigned by the NFV-MANO entity that manages this - VL instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - resourceHandle: - description: > - Reference to the resource realizing this VL. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - extLinkPorts: + additionalParams: description: > - Link ports of this VL. - type: array - items: - $ref: "#/definitions/ExtLinkPortInfo" - - ExtLinkPortInfo: + Additional parameters passed by the NFVO as input to + the healing process, specific to the VNF being healed. + EXAMPLE: Input parameters to VNF-specific healing procedures. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + TerminateNsRequest: description: > - This type represents information about a link port of an external VL, - i.e. a port providing connectivity for the VNF to an NS VL. - type: object - required: - - id - - resourceHandle - properties: - id: - description: > - Identifier of this link port as provided by the entity that has - created the link port. - $ref: "SOL005_def.yaml#/definitions/Identifier" - resourceHandle: - description: > - Reference to the virtualised resource realizing this link port. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - cpInstanceId: - description: > - Identifier of the external CP of the VNF connected to this link - port. There shall be at most one link port associated with any - external connection point instance. The value refers to an - "extCpInfo" item in the VnfInstance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - - ExtManagedVirtualLinkInfo: + This type represents a NS termination request. + It shall comply with the provisions defined in Table 6.5.2.15-1. type: object - required: - - id - - vnfVirtualLinkDescId properties: - id: - description: > - Identifier of the externally-managed internal VL and the related - externally-managed VL information instance. - The identifier is assigned by the NFV-MANO entity that manages this - VL instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfVirtualLinkDescId: - description: > - Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - networkResource: - description: > - Reference to the VirtualNetwork resource. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - vnfLinkPorts: + terminationTime: description: > - Link ports of this VL. - type: array - items: - $ref: "#/definitions/VnfLinkPortInfo" - - VnfLinkPortInfo: - type: object - required: - - id - - resourceHandle - properties: - id: - description: > - Identifier of this link port as provided by the entity that has created the link port. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - resourceHandle: - description: > - Reference to the virtualised network resource realizing this link port. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - cpInstanceId: - description: > - When the link port is used for external connectivity by the VNF, - this attribute represents the identifier of the external CP of the - VNF to be connected to this link port. - When the link port is used for internal connectivity in the VNF, - this attribute represents the VNFC CP to be connected to this link - port. - Shall be present when the link port is used for external - connectivity by the VNF. - may be present if used to reference a VNFC CP instance. - There shall be at most one link port associated with any external - connection point instance or internal connection point - (i.e. VNFC CP) instance. - The value refers to an "extCpInfo" item in the VnfInstance or a - "vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - - MonitoringParameter: - type: object - required: - - id - - value - - timeStamp - properties: - id: - description: > - Identifier of the monitoring parameter defined in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - name: - description: > - Human readable name of the monitoring parameter, as defined in the VNFD. - type: string - value: - description: > - Value of the monitoring parameter known to the VNFM (e.g. obtained - for autoscaling purposes). - The type of the "value" attribute (i.e. scalar, structure (Object in - JSON), or array (of scalars, arrays or structures/Objects)) is - assumed to be defined in an external measurement specification. - type: object - timeStamp: - description: > - Represents the point in time when the measurement has been performed, - as known to the VNFM. - Should be formatted according to ETF RFC 3339. - type: string - - VnfcResourceInfo: - description: > - This type represents the information on virtualised compute and storage - resources used by a VNFC in a VNF instance. - type: object - required: - - id - - vduId - - computeResource - properties: - id: - description: > - Identifier of this VnfcResourceInfo instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - vduId: - description: > - Reference to the applicable VDU in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - computeResource: - description: > - Reference to the VirtualCompute resource. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - storageResourceIds: - description: > - References to the VirtualStorage resources. The value refers to a - VirtualStorageResourceInfo item in the VnfInstance. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfcCpInfo: - description: > - CPs of the VNFC instance. - Shall be present when that particular CP of the VNFC instance is - associated to an external CP of the VNF instance. - May be present otherwise. - type: array - items: - type: object - required: - - id - - cpdId - properties: - id: - description: > - Identifier of this VNFC CP instance and the associated array - entry. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - cpdId: - description: > - Identifier of the VDU CPD, cpdId, in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - vnfExtCpId: - description: > - When the VNFC CP is exposed as external CP of the VNF, the - identifier of this external VNF CP. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - cpProtocolInfo: - description: > - Network protocol information for this CP. - type: array - items: - $ref: "#/definitions/CpProtocolInfo" - vnfLinkPortId: - description: > - Identifier of the "vnfLinkPorts" structure in the - "vnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - metadata: - description: > - Metadata about this resource. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - VnfVirtualLinkResourceInfo: - description: > - This type represents the information that allows addressing a virtualised - resource that is used by an internal VL instance in a VNF instance. - type: object - required: - - id - - vnfVirtualLinkDescId - - networkResource - properties: - id: - description: > - Identifier of this VnfVirtualLinkResourceInfo instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - vnfVirtualLinkDescId: - description: > - Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - networkResource: - description: > - Reference to the VirtualNetwork resource. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfLinkPorts: - description: > - Links ports of this VL. - Shall be present when the linkPort is used for external connectivity - by the VNF (refer to VnfLinkPortInfo). - May be present otherwise. - type: array - items: - $ref: "#/definitions/VnfLinkPortInfo" - metadata: - description: > - Metadata about this resource. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - VirtualStorageResourceInfo: - description: > - This type represents the information that allows addressing a virtualised - resource that is used by a VNF instance. - type: object - required: - - id - - virtualStorageDescId - - storageResource - properties: - id: - description: > - Identifier of this VirtualStorageResourceInfo instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - virtualStorageDescId: - description: > - Identifier of the VirtualStorageDesc in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - storageResource: - description: > - Reference to the VirtualStorage resource. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - reservationId: - description: > - The reservation identifier applicable to the resource. It shall be - present when an applicable reservation exists. - $ref: "SOL005_def.yaml#/definitions/Identifier" - metadata: - description: > - Metadata about this resource. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - NsLinkPortInfo: - description: > - This type represents information about a link port of a VL instance. - It shall comply with the provisions defined in Table 6.5.3.55-1. - type: object - required: - - id - - resourceHandle - properties: - id: - description: > - Identifier of this link port as provided by the entity that - has created the link port. - $ref: "SOL005_def.yaml#/definitions/Identifier" - resourceHandle: - description: > - Identifier of the virtualised network resource realizing - this link port. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - nsCpHandle: - description: > - Identifier of the CP/SAP instance to be connected to this - link port. The value refers to a vnfExtCpInfo item in the - VnfInstance, or a pnfExtCpInfo item in the PnfInfo, or a - sapInfo item in the NS instance. - There shall be at most one link port associated with any - connection point instance. - type: array - items: - $ref: "#/definitions/NsCpHandle" - - AffinityOrAntiAffinityRule: - description: > - This type describes the additional affinity or anti-affinity rule - applicable between the VNF instances to be instantiated - in the NS instantiation operation request or between the VNF instances - to be instantiated in the NS instantiation - operation request and the existing VNF instances.. - type: object - required: - - affinityOrAntiAffiinty - - scope - properties: - vnfdId: - description: > - Reference to a VNFD. - When the VNFD which is not used to instantiate VNF, it - presents all VNF instances of this type as the subjects - of the affinity or anti-affinity rule. The VNF instance - which the VNFD presents is not necessary as a part of - the NS to be instantiated. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfProfileId: - description: > - Reference to a vnfProfile defined in the NSD. - At least one VnfProfile which is used to instantiate VNF - for the NS to be instantiated as the subject of the affinity - or anti-affinity rule shall be present. When the VnfProfile - which is not used to instantiate VNF, it presents all VNF - instances of this type as the subjects of the affinity or - anti-affinity rule. The VNF instance which the VnfProfile - presents is not necessary as a part of the NS to be instantiated. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - vnfInstanceId: - description: > - Reference to the existing VNF instance as the subject of - the affinity or anti-affinity rule. The existing VNF instance - is not necessary as a part of the NS to be instantiated. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - affinityOrAntiAffiinty: - description: > - The type of the constraint. - Permitted values: - AFFINITY - ANTI_AFFINITY. - type: string - enum: - - AFFINITY - - ANTI_AFFINITY - scope: - description: > - Specifies the scope of the rule where the placement - constraint applies. - Permitted values: - NFVI_POP - ZONE - ZONE_GROUP - NFVI_NODE. - type: string - enum: - - NFVI_POP - - ZONE - - ZONE_GROUP - - NFVI_NODE - - InstantiateNsRequest: - type: object - required: - - nsFlavourId - properties: - nsFlavourId: - description: > - Identifier of the NS deployment flavor to be instantiated. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - sapData: - description: > - Create data concerning the SAPs of this NS. - type: array - items: - $ref: "#/definitions/SapData" - addpnfData: - description: > - Information on the PNF(s) that are part of this NS. - type: array - items: - $ref: "#/definitions/AddPnfData" - vnfInstanceData: - description: > - Specify an existing VNF instance to be used in the NS. - If needed, the VNF Profile to be used for this VNF - instance is also provided. - type: array - items: - $ref: "#/definitions/VnfInstanceData" - nestedNsInstanceId: - description: > - Specify an existing NS instance to be used as a nested - NS within the NS. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - localizationLanguage: - description: > - Defines the location constraints for the VNF to be - instantiated as part of the NS instantiation. - An example can be a constraint for the VNF to be in a - specific geographic location.. - type: array - items: - $ref: "#/definitions/VnfLocationConstraint" - additionalParamsForNs: - description: > - Allows the OSS/BSS to provide additional parameter(s) - at the NS level (as opposed to the VNF level, which is - covered in additionalParamsForVnf).. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - additionalParamsForVnf: - description: > - Allows the OSS/BSS to provide additional parameter(s) - per VNF instance (as opposed to the NS level, which is - covered in additionalParamsForNs). This is for VNFs - that are to be created by the NFVO as part of the NS - instantiation and not for existing VNF that are - referenced for reuse.. - type: array - items: - $ref: "#/definitions/ParamsForVnf" - startTime: - description: > - Timestamp indicating the earliest time to instantiate the NS. - Cardinality "0" indicates the NS instantiation takes place immediately. - $ref: "SOL005_def.yaml#/definitions/DateTime" - nsInstantiationLevelId: - description: > - Identifies one of the NS instantiation levels declared in - the DF applicable to this NS instance. If not present, the - default NS instantiation level as declared in the NSD - shall be used. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - additionalAffinityOrAntiAffiniityRule: - description: > - Specifies additional affinity or anti-affinity constraint for - the VNF instances to be instantiated as part of the NS - instantiation. - Shall not conflict with rules already specified in the NSD. - type: array - items: - $ref: "#/definitions/AffinityOrAntiAffinityRule" - - ParamsForVnf: - description: > - This type defines the additional parameters for the VNF instance - to be created associated with an NS instance. - It shall comply with the provisions defined in Table 6.5.3.22-1. - type: object - required: - - vnfProfileId - properties: - vnfProfileId: - description: > - Identifier of (reference to) a vnfProfile to which the - additional parameters apply. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - additionalParams: - description: > - Additional parameters that are applied for the VNF - instance to be created. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - LocationConstraints: - description: > - This type represents location constraints for a VNF to be instantiated. - The location constraints shall be presented as a - country code, optionally followed by a civic address based on - the format defined by IETF RFC 4776 [13]. - type: object - required: - - countryCode - properties: - countryCode: - description: > - The two-letter ISO 3166 [29] country code in capital letters. - type: string - civicAddressElement: - description: > - Zero or more elements comprising the civic address. - type: array - items: - type: object - required: - - caType - - caValue - properties: - caType: - description: > - Describe the content type of caValue. The value of - caType shall comply with Section 3.4 of IETF - RFC 4776 [13]. - type: integer - caValue: - description: > - Content of civic address element corresponding to the - caType. The format caValue shall comply with - Section 3.4 of IETF RFC 4776 [13]. - type: string - - VnfLocationConstraint: - description: > - This type represents the association of location constraints to a VNF instance - to be created according to a specific VNF profile. - It shall comply with the provisions defined in Table 6.5.3.20-1. - type: object - required: - - vnfProfileId - properties: - vnfProfileId: - description: > - Identifier of (reference to) a vnfProfile to which the - additional parameters apply. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - locationConstraints: - description: > - Defines the location constraints for the VNF instance to - be created based on the VNF profile. - $ref: "#/definitions/LocationConstraints" - - VnfInstanceData: - description: > - This type specifies an existing VNF instance to be used in the NS instance and - if needed, the VNF Profile to use for this VNF instance. - It shall comply with the provisions defined in Table 6.5.3.19-1. - type: object - required: - - vnfInstanceId - - vnfProfileId - properties: - vnfInstanceId: - description: > - Identifier of the existing VNF instance to be used in the NS. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfProfileId: - description: > - Identifier of (Reference to) a vnfProfile defined in the - NSD which the existing VNF instance shall be matched - with. If not present, the NFVO will select the VnfProfile - matching the information in the VNF instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - - SapData: - description: > - This type represents the information related to a SAP of a NS. - It shall comply with the provisions defined in Table 6.5.3.10-1. - type: object - required: - - sapdId - - sapName - - description - properties: - sapdId: - description: > - Reference to the SAPD for this SAP. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - sapName: - description: > - Human readable name for the SAP. - type: string - description: - description: > - Human readable description for the SAP. - type: string - sapProtocolData: - description: > - Parameters for configuring the network protocols on the SAP. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/CpProtocolData" - - ScaleNsRequest: - description: > - This type represents a request for the scale NS operation. - type: object - required: - - scaleType - properties: - scaleType: - description: > - Indicates the type of scaling to be performed. - Possible values: - - SCALE_NS - - SCALE_VNF - type: string - enum: - - SCALE_NS - - SCALE_VNF - scaleNsData: - description: > - The necessary information to scale the referenced NS instance. - It shall be present when scaleType = SCALE_NS. - $ref: "#/definitions/ScaleNsData" - scaleVnfData: - description: > - The necessary information to scale the referenced NS instance. - It shall be present when scaleType = SCALE_VNF. - type: array - items: - $ref: "#/definitions/ScaleVnfData" - scaleTime: - description: > - Timestamp indicating the scale time of the NS, i.e. the - NS will be scaled at this timestamp. Cardinality "0" - indicates the NS scaling takes place immediately". - $ref: "SOL005_def.yaml#/definitions/DateTime" - - UpdateNsRequest: - summary: > - This operation supports the update of a NS instance, - It shall comply with the provisions defined in Table 6.5.2.12-1. - type: object - required: - - updateType - properties: - updateType: - description: > - The type of update. It determines also which one of the - following parameters is present in the operation. - Possible values include: - * ADD_VNF: Adding existing VNF instance(s) - * REMOVE_VNF: Removing VNF instance(s) - * INSTANTIATE_VNF: Instantiating new VNF(s) - * CHANGE_VNF_DF: Changing VNF DF - * OPERATE_VNF: Changing VNF state, - * MODIFY_VNF_INFORMATION: Modifying - VNF information and/or the configurable - properties of VNF instance(s) - * CHANGE_EXTERNAL_VNF_CONNECTIVITY: - Changing the external connectivity of VNF - instance(s)ADD_SAP: Adding SAP(s) - * REMOVE_SAP: Removing SAP(s) - * ADD_NESTED_NS: Adding existing NS - instance(s) as nested NS(s) - * REMOVE_NESTED_NS: Removing existing - nested NS instance(s) - * ASSOC_NEW_NSD_VERSION: Associating a - new NSD version to the NS instance - * MOVE_VNF: Moving VNF instance(s) from one - origin NS instance to another target NS - instance - * ADD_VNFFG: Adding VNFFG(s) - * REMOVE_VNFFG: Removing VNFFG(s) - * UPDATE_VNFFG: Updating VNFFG(s) - * CHANGE_NS_DF: Changing NS DF - * ADD_PNF: Adding PNF - * MODIFY_PNF: Modifying PNF - * REMOVE_PNF: Removing PNF - type: string - enum: - - ADD_VNF - - REMOVE_VNF - - INSTANTIATE_VNF - - CHANGE_VNF_DF - - OPERATE_VNF - - MODIFY_VNF_INFORMATION - - CHANGE_EXTERNAL_VNF_CONNECTIVITY - - REMOVE_SAP - - ADD_NESTED_NS - - REMOVE_NESTED_NS - - ASSOC_NEW_NSD_VERSION - - MOVE_VNF - - ADD_VNFFG - - REMOVE_VNFFG - - UPDATE_VNFFG - - CHANGE_NS_DF - - ADD_PNF - - MODIFY_PNF - - REMOVE_PNF - addVnfIstance: - description: > - Identifies an existing VNF instance to be added to the - NS instance. It shall be present only if updateType = "ADD_VNF". - type: array - items: - $ref: "#/definitions/VnfInstanceData" - removeVnfInstanceId: - description: > - Identifies an existing VNF instance to be removed from - the NS instance. It contains the identifier(s) of the VNF - instances to be removed. It shall be present only if - updateType = "REMOVE_VNF." Note: If a VNF instance - is removed from a NS and this NS was the last one for - which this VNF instance was a part, the VNF instance is - terminated by the NFVO. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - instantiateVnfData: - description: > - Identifies the new VNF to be instantiated. It can be used - e.g. for the bottom-up NS creation. It shall be present - only if updateType = "INSTANTIATE_VNF". - type: array - items: - $ref: "#/definitions/InstantiateVnfData" - changeVnfFlavourData: - description: > - Identifies the new DF of the VNF instance to be - changed to. It shall be present only if updateType = "CHANGE_VNF_DF". - type: array - items: - $ref: "#/definitions/ChangeVnfFlavourData" - operateVnfData: - description: > - Identifies the state of the VNF instance to be changed. - It shall be present only if updateType = "OPERATE_VNF". - type: array - items: - $ref: "#/definitions/OperateVnfData" - modifyVnfInfoData: - description: > - Identifies the VNF information parameters and/or the - configurable properties of VNF instance to be modified. - It shall be present only if updateType = "MODIFY_VNF_INFORMATION". - type: array - items: - $ref: "#/definitions/ModifyVnfInfoData" - changeExtVnfConnectivityData: - description: > - Specifies the new external connectivity data of the VNF - instance to be changed. It shall be present only if - updateType = "CHANGE_EXTERNAL_VNF_CONNECTIVITY". - type: array - items: - $ref: "#/definitions/ChangeExtVnfConnectivityData" - addSap: - description: > - Identifies a new SAP to be added to the NS instance. - It shall be present only if updateType = "ADD_SAP." - type: array - items: - $ref: "#/definitions/SapData" - removeSapId: - description: > - The identifier an existing SAP to be removed from the - NS instance. It shall be present only if updateType = "REMOVE_SAP." - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - addNestedNsId: - description: > - The identifier of an existing nested NS instance to be - added to (nested within) the NS instance. It shall be - present only if updateType = "ADD_NESTED_NS". - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - removeNestedNsId: - description: > - The identifier of an existing nested NS instance to be - removed from the NS instance. It shall be present only if - updateType = "REMOVE_NESTED_NS". - type: array - items: - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - assocNewNsdVersionData: - description: > - Specify the new NSD to be used for the NS instance. It - shall be present only if updateType = - ASSOC_NEW_NSD_VERSION". - $ref: "#/definitions/AssocNewNsdVersionData" - moveVnfInstanceData: - description: > - Specify existing VNF instance to be moved from one NS - instance to another NS instance. It shall be present only - if updateType = MOVE_VNF". - type: array - items: - $ref: "#/definitions/MoveVnfInstanceData" - addVnffg: - description: > - Specify the new VNFFG to be created to the NS - Instance. It shall be present only if updateType = - "ADD_VNFFG". - type: array - items: - $ref: "#/definitions/AddVnffgData" - removeVnffgId: - description: > - Identifier of an existing VNFFG to be removed from the - NS Instance. It shall be present only if updateType = - "REMOVE_VNFFG". - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - updateVnffg: - description: > - Specify the new VNFFG Information data to be updated - for a VNFFG of the NS Instance. It shall be present only - if updateType = "UPDATE_VNFFG". - type: array - items: - $ref: "#/definitions/UpdateVnffgData" - changeNsFlavourData: - description: > - Specifies the new DF to be applied to the NS instance. It - shall be present only if updateType = - "CHANGE_NS_DF". - $ref: "#/definitions/ChangeNsFlavourData" - addPnfData: - description: > - specifies the PNF to be added into the NS instance. - It shall be present only if updateType = "ADD_PNF". - type: array - items: - $ref: "#/definitions/AddPnfData" - modifyPnfData: - description: > - Specifies the PNF to be modified in the NS instance. - It shall be present only if updateType = "MODIFY_PNF". - type: array - items: - $ref: "#/definitions/ModifyPnfData" - removePnfId: - description: > - Identifier of the PNF to be deleted from the NS instance. - It shall be present only if updateType = "REMOVE_PNF". - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - updateTime: - description: > - Timestamp indicating the update time of the NS, i.e. the - NS will be updated at this timestamp. Cardinality "0" - indicates the NS update takes place immediately. - $ref: "SOL005_def.yaml#/definitions/DateTime" - InstantiateVnfData: - description: > - This type represents the information related to a SAP of a NS. The InstantiateVnfData data type specifies the - parameters that are needed for VNF instantiation. This information element is used for the bottom-up NS creation when - the OSS/BSS explicitly requests VNF instantiation for a given NS. When the NFVO invokes the Instantiate VNF - update operation, a set of these parameters are then passed by the NFVO to the VNFM. It shall comply with the - provisions defined in Table 6.5.3.24-1. - type: object - required: - - vnfdId - - vnfFlavourId - properties: - vnfdId: - description: > - Information sufficient to identify the VNFD which defines - the VNF to be instantiated. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfFlavourId: - description: > - Identifier of the VNF deployment flavor to be instantiated. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - vnfInstantiationLevelId: - description: > - Identifier of the instantiation level of the deployment - flavor to be instantiated. If not present, the default - instantiation level as declared in the VNFD is - instantiated. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - vnfInstanceName: - description: > - Human-readable name of the VNF instance to be created. - type: string - vnfInstanceDescription: - description: > - Human-readable description of the VNF instance to be created. - type: string - extVirtualLinks: - description: > - Information about external VLs to connect the VNF to. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/ExtVirtualLinkData" - extManagedVirtualLinks: - description: > - Information about internal VLs that are managed by other entities than the VNFM. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/ExtManagedVirtualLinkData" - localizationLanguage: - description: > - Localization language of the VNF to be instantiated. - The value shall comply with the format defined in IETF RFC 5646 [16]. - type: string - additionalParams: - description: > - Additional input parameters for the instantiation process, - specific to the VNF being instantiated. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - ChangeVnfFlavourData: - description: > - The type represents the information that is requested to be changed - deployment flavor for an existing VNF instance. - It shall comply with the provisions defined in Table 6.5.3.25-1. - type: object - required: - - vnfInstanceId - - newFlavourId - properties: - vnfInstanceId: - description: > - Identifier of the VNF instance to be modified. - $ref: "SOL005_def.yaml#/definitions/Identifier" - newFlavourId: - description: > - Identifier of the VNF deployment flavor to be instantiated. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - instantiationLevelId: - description: > - Identifier of the instantiation level of the deployment - flavor to be instantiated. If not present, the default - instantiation level as declared in the VNFD is - instantiated. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - extVirtualLinks: - description: > - Information about external VLs to connect the VNF to. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/ExtVirtualLinkData" - extManagedVirtualLinks: - description: > - information about internal VLs that are managed by NFVO. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/ExtManagedVirtualLinkData" - additionalParams: - description: > - Additional input parameters for the flavor change - process, specific to the VNF being modified, as declared - in the VNFD as part of "ChangeVnfFlavourOpConfig". - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - OperateVnfData: - description: > - This type represents a VNF instance for which the operational state - needs to be changed and the requested new state. It - shall comply with the provisions defined in Table 6.5.3.31-1. - type: object - required: - - vnfInstanceId - - changeStateTo - properties: - vnfInstanceId: - description: > - Identifier of the VNF instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - changeStateTo: - description: > - The desired operational state (i.e. started or stopped) - to change the VNF to. - $ref: "#/definitions/OperationalStates" - stopType: - description: > - It signals whether forceful or graceful stop is requested. - $ref: "#/definitions/StopType" - gracefulStopTimeout: - description: > - The time interval (in seconds) to wait for the VNF to be - taken out of service during graceful stop, before - stopping the VNF. - type: integer - - OperationalStates: - description: > - STARTED - The VNF instance is up and running. - STOPPED - The VNF instance has been shut down. - type: string - enum: - - STARTED - - STOPPED - StopType: - description: > - * FORCEFUL: The VNFM will stop the VNF immediately after accepting the - request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of service - after accepting the request. Once that operation is successful or once - the timer value specified in the "gracefulStopTimeout" attribute - expires, the VNFM will stop the VNF. - type: string - enum: - - FORCEFUL - - GRACEFUL - - ModifyVnfInfoData: - description: > - This type represents the information that is requested to be modified for a VNF instance. The information to be - modified shall comply with the associated NSD. - EXAMPLE. The vnfPkgId attribute value for a particular VNF instance can only be updated with a value that - matches the identifier value of a VNF package whose vnfdId is present in the associated profile of the NSD. - type: object - required: - - vnfInstanceId - properties: - vnfInstanceId: - description: > - Identifier of the VNF instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfInstanceName: - description: > - New value of the "vnfInstanceName" attribute in - "VnfInstance", or "null" to remove the attribute. - type: string - vnfInstanceDescription: - description: > - New value of the "vnfInstanceDescription" attribute in "VnfInstance", - or "null" to remove the attribute. - type: string - vnfPkgId: - description: > - New value of the "vnfPkgId" attribute in "VnfInstance". - The value "null" is not permitted - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfConfigurableProperties: - description: > - Modifications to entries in the - "vnfConfigurableProperties" list, as defined below this Table. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - Metadata: - description: > - Modifications to entries in the "metadata" list, as - defined below this Table. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - Extensions: - description: > - Modifications to entries in the "extensions" list, as - defined below this Table. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - ChangeExtVnfConnectivityData: - description: > - This type describes the information invoked by the NFVO to change the external VNF connectivity information - maintained by the VNFM. The types of changes that this operation supports are: - 1) Disconnect the external CPs that are connected to a particular external VL, and connect them to a different - external VL. - 2) Change the connectivity parameters of the existing external CPs, including changing addresses. - NOTE: Depending on the capabilities of the underlying VIM resources, certain changes (e.g. modifying the IP - address assignment) might not be supported without deleting the resource and creating another one with - the modified configuration. - This type shall comply with the provisions defined in Table 6.5.3.33-1. - type: object - required: - - vnfInstanceId - - extVirtualLink - properties: - vnfInstanceId: - description: > - Identifier of the VNF instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - extVirtualLink: - description: > - Information about external VLs to change (e.g. connect the VNF to). - type: array - items: - $ref: "SOL005_def.yaml#/definitions/ExtVirtualLinkData" - additionalParams: - description: > - Additional parameters passed by the OSS as input to - the external connectivity change process, specific to the - VNF instance being changed. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - AssocNewNsdVersionData: - description: > - This type specifies a new NSD version that is associated to the NS instance. After issuing the Update NS operation with - updateType = "AssocNewNsdVersion", the NFVO shall use the referred NSD as a basis for the given NS instance. - Different versions of the same NSD have same nsdInvariantId, but different nsdId attributes, therefore if the - nsdInvariantId of the NSD version that is to be associated to this NS instance is different from the one used before, the - NFVO shall reject the request. Only new versions of the same NSD can be associated to an existing NS instance. This - data type shall comply with the provisions defined in Table 6.5.3.34-1. - type: object - required: - - newNsdId - properties: - newNsdId: - description: > - Identifier of the new NSD version that is to be - associated to the NS instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - sync: - description: > - Specify whether the NS instance shall be automatically - synchronized to the new NSD by the NFVO (in case of - true value) or the NFVO shall not do any action (in case - of a false value) and wait for further guidance from - OSS/BSS (i.e. waiting for OSS/BSS to issue NS - lifecycle management operation to explicitly add/remove - VNFs and modify information of VNF instances - according to the new NSD). - The synchronization to the new NSD means e.g. - instantiating/adding those VNFs whose VNFD is - referenced by the new NSD version but not referenced - by the old one, terminating/removing those VNFs whose - VNFD is referenced by the old NSD version but not - referenced by the new NSD version, modifying - information of VNF instances to the new applicable - VNFD provided in the new NSD version. - A cardinality of 0 indicates that synchronization shall not be done. - type: boolean - - MoveVnfInstanceData: - description: > - This type specifies existing VNF instances to be moved from one NS instance (source) to another NS instance - (destination). The NS instance defined in the Update NS operation indicates the source NS instance and the destination - NS instance is specified in this data type (referred to targetNsInstanceId). - It shall comply with the provisions defined in Table 6.5.3.35-1. - type: object - required: - - targetNsInstanceId - properties: - targetNsInstanceId: - description: > - Specify the target NS instance where the VNF instances - are moved to. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfInstanceId: - description: > - Specify the VNF instance that is moved. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - - AddVnffgData: - description: > - This type specifies the parameters used for the creation of a new VNFFG instance. - It shall comply with the provisions defined in Table 6.5.3.36-1. - type: object - required: - - vnffgdId - - vnffgName - - description - properties: - targetNsInstanceId: - description: > - Identifier of the VNFFGD used to create this VNFFG - instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - vnffgName: - description: > - Human readable name for the VNFFG. - type: string - description: - description: > - Human readable description for the VNFFG. - type: string - - UpdateVnffgData: - description: > - This type specifies the parameters used for the update of an existing VNFFG instance. - It shall comply with the provisions defined in Table 6.5.3.37-1. - type: object - required: - - vnffgInfoId - properties: - vnffgInfoId: - description: > - Identifier of an existing VNFFG to be updated for the NS Instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - nfp: - description: > - Indicate the desired new NFP(s) for a given VNFFG - after the operations of addition/removal of NS - components (e.g. VNFs, VLs, etc.) have been - completed, or indicate the updated or newly created - NFP classification and selection rule which applied to an existing NFP. - type: array - items: - $ref: "#/definitions/NfpData" - nfpInfoId: - description: > - Identifier(s) of the NFP to be deleted from a given VNFFG. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - - NfpData: - description: > - This type contains information used to create or modify NFP instance parameters - for the update of an existing VNFFG instance. - It shall comply with the provisions defined in Table 6.5.3.38-1. - type: object - properties: - nfpInfoId: - description: > - Identifier of the NFP to be modified. It shall be present - for modified NFPs and shall be absent for the new NFP. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - nfpName: - description: > - Human readable name for the NFP. It shall be present - for the new NFP, and it may be present otherwise. - type: string - description: - description: > - Human readable description for the NFP. It shall be - present for the new NFP, and it may be present otherwise. - type: string - nsCpHandle: - description: > - Identifier(s) of the CPs and SAPs which the NFP passes by. - Cardinality can be 0 if only updated or newly created - NFP classification and selection rule which applied to an - existing NFP is provided. - type: array - items: - $ref: "#/definitions/NsCpHandle" - nfpRule: - description: > - NFP classification and selection rule. See note 1. - $ref: "#/definitions/NfpRule" - - NfpRule: - description: > - The NfpRule data type is an expression of the conditions that shall be met - in order for the NFP to be applicable to the packet. The condition acts as a flow classifier and - it is met only if all the values expressed in the condition are matched - by those in the packet. It shall comply with the provisions defined in Table 6.5.3.40-1. - type: object - properties: - etherDestinationAddress: - description: > - Indicates a destination Mac address. - $ref: "SOL005_def.yaml#/definitions/MacAddress" - etherSourceAddress: - description: > - Indicates a source Mac address. - $ref: "SOL005_def.yaml#/definitions/MacAddress" - etherType: - description: > - Human readable description for the VNFFG. - type: string - enum: - - IPV4 - - IPV6 - vlanTag: - description: > - Indicates a VLAN identifier in an IEEE 802.1Q-2014 - tag [6] Multiple tags can be included for QinQ stacking. See note. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/String" - protocol: - description: > - Indicates the L4 protocol, For IPv4 [7] this - corresponds to the field called "Protocol" to identify - the next level protocol. For IPv6 [28] this - corresponds to the field is called the "Next Header" field. - Permitted values: Any keyword defined in the IANA - protocol registry [1], e.g.: - TCP - UDP - ICMP - type: string - enum: - - TCP - - UDP - - ICMP - dscp: - description: > - For IPv4 [7] a string of "0" and "1" digits that - corresponds to the 6-bit Differentiated Services - Code Point (DSCP) field of the IP header. - For IPv6 [28] a string of "0" and "1" digits that - corresponds to the 6 differentiated services bits of - the traffic class header field - type: string - sourcePortRange: - description: > - Indicates a range of source ports - $ref: "SOL005_def.yaml#/definitions/PortRange" - destinationPortRange: - description: > - Indicates a range of destination ports. - $ref: "SOL005_def.yaml#/definitions/PortRange" - sourceIpAddressPrefix: - description: > - Indicates the source IP address range in CIDR format. - $ref: "SOL005_def.yaml#/definitions/IpAddressPrefix" - destinationIpAddressPrefix: - description: > - Indicates the destination IP address range in CIDR format. - $ref: "SOL005_def.yaml#/definitions/IpAddressPrefix" - extendedCriteria: - description: > - Indicates values of specific bits in a frame. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Mask" - - ChangeNsFlavourData: - description: > - This type specifies an existing NS instance for which the DF needs to be changed. - This specifies the new DF, the instantiationLevel of the new DF that may be used and - the additional parameters as input for the flavour change. - It shall comply with the provisions defined in Table 6.5.3.39-1. - type: object - required: - - newNsFlavourId - properties: - newNsFlavourId: - description: > - Identifier of an existing VNFFG to be updated for the NS Instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - instantiationLevelId: - description: > - Identifier of the instantiation level of the deployment flavour to be instantiated. - If not present, the default instantiation level as declared in the NSD is instantiated. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - - AddPnfData: - description: > - This type specifies an PNF to be added to the NS instance and the PNF Profile - to use for this PNF. It shall comply with the provisions defined in Table 6.5.3.14-1. - type: object - required: - - pnfId - - pnfName - - pnfdId - - pnfProfileId - properties: - pnfId: - description: > - Identifier of the PNF. This identifier is allocated by the OSS/BSS. - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfName: - description: > - Name of the PNF - type: string - pnfdId: - description: > - Identifier of the PNFD on which the PNF is based. - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfProfileId: - description: > - Identifier of related PnfProfile in the NSD on which the PNF is based. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - cpData: - description: > - Address assigned for the PNF external CP(s). - type: array - items: - $ref: "#/definitions/PnfExtCpData" - - PnfExtCpData: - description: > - This type represents the configuration data on the external CP of the PNF. - It shall comply with the provisions defined in - Table 6.5.3.16-1. - type: object - required: - - cpProtocolData - properties: - cpInstanceI16: - description: > - Identifier of the CP. Shall be present for existing CP. - $ref: "SOL005_def.yaml#/definitions/IdentifierInPnf" - cpdId: - description: > - Identifier of the Connection Point Descriptor (CPD) for this CP. Shall be present for new CP. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - cpProtocolData: - description: > - Address assigned for this CP. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/CpProtocolData" - - ModifyPnfData: - description: > - This type specifies an PNF to be modified in the NS instance. - It shall comply with the provisions defined in - Table 6.5.3.15-1. - type: object - required: - - pnfId - properties: - pnfId: - description: > - Identifier of the PNF. This identifier is allocated by the OSS/BSS. - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfName: - description: > - Name of the PNF. - type: string - cpData: - description: > - Address assigned for the PNF external CP(s). - type: array - items: - $ref: "#/definitions/PnfExtCpData" - - AffectedVirtualLink: - description: > - This type provides information about added, deleted, modified and - temporary VLs. - type: object - required: - - id - - virtualLinkDescId - - changeType - - networkResource - properties: - id: - description: > - Identifier of the virtual link instance, identifying the applicable - "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - virtualLinkDescId: - description: > - Identifier of the related VLD in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - changeType: - description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - * LINK_PORT_ADDED - * LINK_PORT_REMOVED - For a temporary resource, an AffectedVirtualLink structure exists as - long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - - LINK_PORT_ADDED - - LINK_PORT_REMOVED - networkResource: - description: > - Reference to the VirtualNetwork resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - metadata: - description: > - Metadata about this resource. - The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VnfVirtualLinkResourceInfo structure. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - AffectedVirtualStorage: - description: > - This type provides information about added, deleted, modified and - temporary virtual storage resources. - type: object - required: - - id - - virtualStorageDescId - - changeType - - storageResource - properties: - id: - description: > - Identifier of the storage instance, identifying the applicable - "virtualStorageResourceInfo" entry in the "VnfInstance" data type. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnf" - virtualStorageDescId: - description: > - Identifier of the related VirtualStorage descriptor in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - changeType: - description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - For a temporary resource, an AffectedVirtualStorage structure exists - as long as the temporary resource exists. - type: string - enum: - - ADDED - - REMOVED - - MODIFIED - - TEMPORARY - storageResource: - description: > - Reference to the VirtualStorage resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - $ref: "SOL005_def.yaml#/definitions/ResourceHandle" - metadata: - description: > - Metadata about this resource. - The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VirtualStorageResourceInfo structure. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - AffectedVnf: - description: > - This type provides information about added, deleted and modified VNFs. - It shall comply with the provisions in Table 6.5.3.2-1. - type: object - required: - - vnfInstanceId - - vnfdId - - vnfProfileId - properties: - vnfInstanceId: - description: > - Identifier of the VNF instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfdId: - description: > - Identifier of the VNFD of the VNF Instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfProfileId: - description: > - Identifier of the VNF profile of the NSD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - vnfName: - description: > - Name of the VNF Instance. - type: string - changeType: - description: > - Signals the type of change - Permitted values: - - ADD - - REMOVE - - INSTANTIATE - - TERMINATE - - SCALE - - CHANGE_FLAVOUR - - HEAL - - OPERATE - - MODIFY_INFORMATION - - CHANGE_EXTERNAL_VNF_CONNECTIVITY - type: string - enum: - - ADD - - REMOVE - - INSTANTIATE - - TERMINATE - - SCALE - - CHANGE_FLAVOUR - - HEAL - - OPERATE - - MODIFY_INFORMATION - - CHANGE_EXTERNAL_VNF_CONNECTIVITY - changeResult: - description: > - Signals the result of change identified by the - "changeType" attribute. - Permitted values: - - COMPLETED - - ROLLED_BACK - - FAILED - type: string - enum: - - COMPLETED - - ROLLED_BACK - - FAILED - changedInfo: - description: > - Information about the changed VNF instance - information, including VNF configurable properties, if applicable. - type: object - required: - - self - properties: - description: > - When the "changedInfo" attribute is present, - either the "changedVnfInfo" attribute or the - "changedExtConnectivity" attribute or both shall be present - changedVnfInfo: - description: > - Information about the changed VNF instance - information, including configurable properties, - if applicable. - $ref: "#/definitions/ModifyVnfInfoData" - changedExtConnectivity: - description: > - Information about changed external connectivity, - if applicable. - $ref: "#/definitions/ExtVirtualLinkInfo" - - AffectedPnf: - description: > - This type provides information about added, deleted and modified PNFs. - It shall comply with the provisions in Table 6.5.3.3-1. - type: object - required: - - pnfId - - pnfdId - - pnfProfileId - - cpInstanceId - properties: - pnfId: - description: > - Identifier of the affected PNF. This identifier is - allocated by the OSS/BSS. - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfdId: - description: > - Identifier of the PNFD on which the PNF is based. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - pnfProfileId: - description: > - Identifier of the VNF profile of the NSD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - pnfName: - description: > - Name of the PNF. - type: string - cpInstanceId: - description: > - Identifier of the CP in the scope of the PNF. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/IdentifierInPnf" - changeType: - description: > - Signals the type of change. - Permitted values: - - ADD - - REMOVE - - MODIFY - type: string - enum: - - ADD - - REMOVE - - MODIFY - changeResult: - description: > - Signals the result of change identified by the - "changeType" attribute. - Permitted values: - - COMPLETED - - ROLLED_BACK - - FAILED - type: string - enum: - - COMPLETED - - ROLLED_BACK - - FAILED - - AffectedVl: - description: > - This type provides information about added, deleted and modified VLs. - It shall comply with the provisions in Table 6.5.3.4-1. - type: object - required: - - nsVirtualLinkInstanceId - - nsVirtualLinkDescId - - vlProfileId - properties: - nsVirtualLinkInstanceId: - description: > - Identifier of the VL Instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - nsVirtualLinkDescId: - description: > - Identifier of the VLD in the NSD for this VL. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - vlProfileId: - description: > - Identifier of the VLD in the NSD for this VL. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - changeType: - description: > - Signals the type of change. - Permitted values: - - ADD - - DELETE - - MODIFY - - ADD_LINK_PORT - - REMOVE_LINK_PORT - type: string - enum: - - ADD - - DELETE - - MODIFY - - ADD_LINK_PORT - - REMOVE_LINK_PORT - changeResult: - description: > - Signals the result of change identified by the - "changeType" attribute. - Permitted values: - - COMPLETED - - ROLLED_BACK - - FAILED - type: string - enum: - - COMPLETED - - ROLLED_BACK - - FAILED - - AffectedVnffg: - description: > - This type provides information about added, deleted and modified VNFFG instances. - It shall comply with the - provisions in Table 6.5.3.5-1. - type: object - required: - - vnffgInstanceId - - vnffgdId - properties: - vnffgInstanceId: - description: > - Identifier of the VNFFG instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNs" - vnffgdId: - description: > - Identifier of the VNFFGD of the VNFFG instance. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - changeType: - description: > - Signals the type of change. - Permitted values: - - ADD - - DELETE - - MODIFY - type: string - enum: - - ADD - - DELETE - - MODIFY - changeResult: - description: > - Signals the result of change identified by the - "changeType" attribute. - Permitted values: - - COMPLETED - - ROLLED_BACK - - FAILED - type: string - enum: - - COMPLETED - - ROLLED_BACK - - FAILED - - AffectedNs: - description: > - This type provides information about added, deleted and modified nested NSs. - It shall comply with the provisions in Table 6.5.3.6-1. - type: object - required: - - nsInstanceId - - nsdId - properties: - nsInstanceId: - description: > - Identifier of the nested NS instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsdId: - description: > - Identifier of the NSD of the nested NS instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - changeType: - description: > - Signals the type of lifecycle change. - Permitted values: - - ADD - - REMOVE - - INSTANTIATE - - SCALE - - UPDATE - - HEAL - - TERMINATE - type: string - enum: - - ADD - - REMOVE - - INSTANTIATE - - SCALE - - UPDATE - - HEAL - - TERMINATE - changeResult: - description: > - Signals the result of change identified by the - "changeType" attribute. - Permitted values: - - COMPLETED - - ROLLED_BACK - - FAILED - - PARTIALLY_COMPLETED - type: string - enum: - - COMPLETED - - ROLLED_BACK - - FAILED - - PARTIALLY_COMPLETED - - AffectedSap: - description: > - This type provides information about added, deleted and modified SAP of a NS. - It shall comply with the provisions in Table 6.5.3.7-1. - type: object - required: - - sapInstanceId - - sapdId - properties: - sapInstanceId: - description: > - Identifier of the nested NS instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - sapdId: - description: > - Identifier of the NSD of the nested NS instance. - $ref: "SOL005_def.yaml#/definitions/Identifier" - sapName: - description: > - Human readable name for the SAP. - type: string - changeType: - description: > - Signals the type of lifecycle change. - Permitted values: - - ADD - - REMOVE - - MODIFY - type: string - enum: - - ADD - - REMOVE - - MODIFY - changeResult: - description: > - Signals the result of change identified by the - "changeType" attribute. - Permitted values: - - COMPLETED - - ROLLED_BACK - - FAILED - type: string - enum: - - COMPLETED - - ROLLED_BACK - - FAILED - - NsLcmOperationStateType: - description: > - The enumeration NsLcmOperationStateType shall comply with the provisions defined in Table 6.5.4.4-1. - Value | Description - ------|------------ - PROCESSING | The LCM operation is currently in execution. - COMPLETED | The LCM operation has been completed successfully. - PARTIALLY_COMPLETED | The LCM operation has been partially completed with accepTable errors. - FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. - FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. - OLLING_BACK | The LCM operation is currently being rolled back. - ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible. - type: string - enum: - - PROCESSING - - COMPLETED - - FAILED_TEMP - - FAILED - - ROLLING_BACK - - ROLLED_BACK - NsLcmOpType: - description: > - The enumeration NsLcmOpType represents those lifecycle operations that trigger a NS lifecycle management operation - occurrence notification. - Value | Description - ------|------------ - INSTANTIATE | Represents the "Instantiate NS" LCM operation. - SCALE | Represents the "Scale NS" LCM operation. - UPDATE | Represents the "Update NS" LCM operation. - TERMINATE | Represents the "Terminate NS" LCM operation. - HEAL | Represents the "Heal NS" LCM operation. - type: string - enum: - - INSTANTIATE - - SCALE - - UPDATE - - TERMINATE - - HEAL - LccnSubscriptionRequest: - description: > - This type represents a subscription request related to notifications - about NS lifecycle changes. It shall comply with the - provisions defined in Table 6.5.2.2-1.. - type: object - required: - - callbackUri - 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: "#/definitions/LifecycleChangeNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "SOL005_def.yaml#/definitions/Uri" - authentication: - description: > - Authentication parameters to configure the use of Authorization when - sending notifications corresponding to this subscription, as defined - in clause 4.5.3.4. - This attribute shall only be present if the subscriber requires - authorization of notifications. - $ref: "SOL005_def.yaml#/definitions/SubscriptionAuthentication" - - LccnSubscription: - description: > - This type represents a subscription related to notifications about NS lifecycle changes. - It shall comply with the provisions defined in Table 6.5.2.4-1. - type: object - required: - - id - - callbackUri - - _links - properties: - id: - description: > - Identifier of this subscription resource. - $ref: "SOL005_def.yaml#/definitions/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: "#/definitions/LifecycleChangeNotificationsFilter" - callbackUri: - description: > - The URI of the endpoint to send the notification to. - $ref: "SOL005_def.yaml#/definitions/Uri" - _links: - description: > - Links to resources related to this resource. - type: object - required: - - self - properties: - self: - description: > - URI of this resource. - $ref: "SOL005_def.yaml#/definitions/Link" - LifecycleChangeNotificationsFilter: - description: > - This type represents a subscription filter related to notifications about - NS lifecycle changes. It shall comply with the - provisions defined in Table 6.5.3.8-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). - type: object - properties: - nsInstanceSubscriptionFilter: - description: > - Filter criteria to select NS instances about which to notify. - $ref: "#/definitions/NsInstanceSubscriptionFilter" - notificationTypes: - description: > - Match particular notification types. - Permitted values: - - NsLcmOperationOccurenceNotification - - NsIdentifierCreationNotification - - NsIdentifierDeletionNotification - - NsChangeNotification - type: array - items: - type: string - enum: - - NsLcmOperationOccurenceNotification - - NsIdentifierCreationNotification - - NsIdentifierDeletionNotification - - NsChangeNotification - operationTypes: - description: > - Match particular NS lifecycle operation types - for the notification of type - NsLcmOperationOccurrenceNotification. - May be present if the "notificationTypes" - attribute contains the value - "NsLcmOperationOccurrenceNotification", and - shall be absent otherwise. - type: array - items: - $ref: "#/definitions/NsLcmOpType" - operationStates: - description: > - Match particular LCM operation state values as - reported in notifications of type - NsLcmOperationOccurrenceNotification. - May be present if the "notificationTypes" - attribute contains the value - "NsLcmOperationOccurrenceNotification", and - shall be absent otherwise. - type: array - items: - $ref: "#/definitions/LcmOperationStateType" - nsComponentTypes: - description: > - Match particular NS component types for the - notification of type NsChangeNotification. - May be present if the "notificationTypes" - attribute contains the value "NsChang. - type: array - items: - $ref: "#/definitions/NsComponentType" - lcmOpNameImpactingNsComponent: - description: > - Match particular LCM operation names for the - notification of type NsChangeNotification. - May be present if the "notificationTypes" - attribute contains the value - "NsChangeNotification", and shall be absent otherwise. - type: array - items: - $ref: "#/definitions/LcmOpNameForChangeNotificationType" - lcmOpOccStatusImpactingNsComponent: - description: > - Match particular LCM operation status values - as reported in notifications of type - NsChangeNotification. - May be present if the "notificationTypes" - attribute contains the value - "NsChangeNotification", and shall be absent otherwise. - type: array - items: - $ref: "#/definitions/LcmOpOccStatusForChangeNotificationType" - - NsLcmOperationOccurrenceNotification: - type: object - required: - - id - - nsInstanceId - - nsLcmOpOccId - - subscriptionId - properties: - id: - description: > - Identifier of this notification. If a notification is sent - multiple times due to multiple subscriptions, the "id" - attribute of all these notifications shall have the same value. - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsInstanceId: - description: > - The identifier of the NS instance affected. - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsLcmOpOccId: - description: > - The identifier of the NS lifecycle operation occurrence - associated to the notification. - $ref: "SOL005_def.yaml#/definitions/Identifier" - operation: - description: > - The lifecycle operation. - $ref: "#/definitions/NsLcmOpType" - notificationType: - description: > - Discriminator for the different notification types. Shall be - set to "NsLcmOperationOccurrenceNotification" for this - notification type. - type: string - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "SOL005_def.yaml#/definitions/Identifier" - timestamp: - description: > - Date-time of the generation of the notification. - $ref: "#/definitions/DateTime" - notificationStatus: - description: > - Indicates whether this notification reports about the start - of a NS lifecycle operation or the result of a NS lifecycle - operation. - Permitted values: - - START: Informs about the start of the NS LCM - operation occurrence. - - RESULT: Informs about the final or intermediate - result of the NS LCM operation occurrence. - type: string - enum: - - START - - RESULT - operationState: - description: > - The state of the NS lifecycle operation occurrence. - $ref: "#/definitions/NsLcmOperationStateType" - isAutomaticInvocation: - description: > - Set to true if this NS LCM operation occurrence has - been automatically triggered by the NFVO. This occurs - in case of auto-scaling, auto-healing and when a nested - NS is modified as a result of an operation on its - composite NS. Set to false otherwise. - type: boolean - affectedVnf: - description: > - Information about the VNF instances that were affected - during the lifecycle operation. - $ref: "SOL005_def.yaml#/definitions/AffectedVnf" - affectedPnf: - description: > - Information about the PNF instances that were affected - during the lifecycle operation. - $ref: "#/definitions/AffectedPnf" - affectedVl: - description: > - Information about the VL instances that were affected - during the lifecycle operation. - type: array - items: - $ref: "#/definitions/AffectedVirtualLink" - affectedVnffg: - description: > - Information about the VNFFG instances that were - affected during the lifecycle operation. - type: array - items: - $ref: "#/definitions/AffectedVnffg" - affectedNs: - description: > - Information about the SAP instances that were affected - during the lifecycle operation. See note. - type: array - items: - $ref: "#/definitions/AffectedSap" - affectedSap: - description: > - The lifecycle operation. - $ref: "#/definitions/NsLcmOpType" - error: - description: > - Details of the latest error, if one has occurred during - executing the LCM operation (see clause 4.3.5). Shall - be present if operationState is "FAILED_TEMP" or - "FAILED", and shall be absent otherwise. - $ref: "SOL005_def.yaml#/definitions/ProblemDetails" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" - - NsIdentifierCreationNotification: - type: object - required: - - subscriptionId - - nsInstanceId - properties: - notificationType: - description: > - Discriminator for the different notification types. - Shall be set to "NsIdentifierDeletionNotification" for this - notification type. - type: string - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "SOL005_def.yaml#/definitions/Identifier" - timestamp: - description: > - Date-time of the generation of the notification. - $ref: "#/definitions/DateTime" - nsInstanceId: - description: > - The created NS instance identifier - $ref: "SOL005_def.yaml#/definitions/Identifier" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" - - NsIdentifierDeletionNotification: - type: object - required: - - subscriptionId - - nsInstanceId - properties: - notificationType: - description: > - Discriminator for the different notification types. - Shall be set to "NsIdentifierDeletionNotification" for this - notification type. - type: string - subscriptionId: - description: > - Identifier of the subscription that this notification relates to. - $ref: "SOL005_def.yaml#/definitions/Identifier" - timestamp: - description: > - Date-time of the generation of the notification. - $ref: "#/definitions/DateTime" - nsInstanceId: - description: > - The created NS instance identifier - $ref: "SOL005_def.yaml#/definitions/Identifier" - _links: - description: > - Links to resources related to this notification. - $ref: "#/definitions/LccnLinks" - - NsScaleInfo: - description: > - This type represents the target NS Scale level for each NS scaling aspect of the current deployment flavor. - type: object - required: - - nsScalingAspectId - - nsScaleLevelId - properties: - nsScalingAspectId: - description: > - Identifier of the NS scaling aspect. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - nsScaleLevelId: - description: > - Identifier of the NS scale level. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - ScaleNsData: - description: > - This type represents the information to scale a NS. - type: object - properties: - vnfInstanceToBeAdded: - description: > - An existing VNF instance to be added to the NS - instance as part of the scaling operation. If - needed, the VNF Profile to be used for this VNF - instance may also be provided. - type: array - items: - $ref: "#/definitions/VnfInstanceData" - vnfInstanceToBeRemoved: - description: > - The VNF instance to be removed from the NS - instance as part of the scaling operation. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - scaleNsByStepsData: - description: > - The information used to scale an NS instance by - one or more scaling steps. - $ref: "#/definitions/ScaleNsByStepsData" - scaleNsToLevelData: - description: > - The information used to scale an NS instance to a target size. - $ref: "#/definitions/ScaleNsToLevelData" - additionalParamsForNs: - description: > - Allows the OSS/BSS to provide additional - parameter(s) at the NS level necessary for the - NS scaling (as opposed to the VNF level, which is - covered in additionalParamForVnf). - $ref: "#/definitions/ParamsForVnf" - additionalParamsForVnf: - description: > - Allows the OSS/BSS to provide additional - parameter(s) per VNF instance (as opposed to - the NS level, which is covered in - additionalParamforNs). This is for VNFs that are - to be created by the NFVO as part of the NS - scaling and not for existing VNF that are covered - by the scaleVnfData. - type: array - items: - $ref: "#/definitions/ParamsForVnf" - locationConstraints: - description: > - The location constraints for the VNF to be - instantiated as part of the NS scaling. - An example can be a constraint for the VNF to be - in a specific geographic location. - type: array - items: - $ref: "#/definitions/VnfLocationConstraint" - - ScaleVnfData: - description: > - This type represents defines the information to scale a VNF instance - to a given level, or to scale a VNF instance by steps. - type: object - required: - - vnfInstanceid - - scaleVnfType - properties: - vnfInstanceid: - description: > - Identifier of the VNF instance being scaled. - $ref: "SOL005_def.yaml#/definitions/Identifier" - scaleVnfType: - description: > - Type of the scale VNF operation requested. - Allowed values are: - - SCALE_OUT - - SCALE_IN - - SCALE_TO_INSTANTIATION_LEVEL - - SCALE_TO_SCALE_LEVEL(S) - The set of types actually supported depends on the - capabilities of the VNF being managed. - type: string - enum: - - SCALE_OUT - - SCALE_IN - - SCALE_TO_INSTANTIATION_LEVEL - - SCALE_TO_SCALE_LEVEL(S) - scaleToLevelData: - description: > - The information used for scaling to a given level. - $ref: "#/definitions/ScaleToLevelData" - scaleByStepData: - description: > - The information used for scaling by steps. - $ref: "#/definitions/ScaleByStepData" - - ScaleNsByStepsData: - description: > - This type represents the information used to scale an NS instance by one or more scaling steps, with respect to a - particular NS scaling aspect. Performing a scaling step means increasing/decreasing the capacity of an NS instance in a - discrete manner, i.e. moving from one NS scale level to another. The NS scaling aspects and their corresponding NS - scale levels applicable to the NS instance are declared in the NSD. - type: object - required: - - scalingDirection - - aspectId - properties: - scalingDirection: - description: > - The scaling direction. Possible values are: - - SCALE_IN - - SCALE_OUT. - type: string - enum: - - SCALE_IN - - SCALE_OUT - aspectId: - description: > - The aspect of the NS that is requested to be scaled, as - declared in the NSD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - numberOfSteps: - description: > - The number of scaling steps to be performed. Defaults to 1. - type: integer - default: 1 - - ScaleNsToLevelData: - description: > - This type represents the information used to scale an NS instance to a target size. The target size is either expressed as - an NS instantiation level or as a list of NS scale levels, one per NS scaling aspect, of the current DF. The NS - instantiation levels, the NS scaling aspects and their corresponding NS scale levels applicable to the NS instance are - declared in the NSD. - type: object - properties: - nsInstantiationLevel: - description: > - Identifier of the target NS instantiation level of the - current DF to which the NS instance is requested to be scaled. - $ref: "SOL005_def.yaml#/definitions/IdentifierInNsd" - nsScaleInfo: - description: > - For each NS scaling aspect of the current DF, defines - the target NS scale level to which the NS instance is to be scaled. - type: array - items: - $ref: "#/definitions/NsScaleInfo" - - ScaleToLevelData: - description: > - This type describes the information used to scale a VNF instance to a target size. The target size is either expressed as - an instantiation level of that DF as defined in the VNFD, or given as a list of scale levels, one per scaling aspect of that - DF. Instantiation levels and scaling aspects are declared in the VNFD. The NFVO shall then invoke the - ScaleVnfToLevel operation towards the appropriate VNFM.. - type: object - properties: - vnfInstantiationLevelId: - description: > - Identifier of the target instantiation level of the current - deployment flavor to which the VNF is requested to be scaled. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - vnfScaleInfo: - description: > - For each scaling aspect of the current deployment - flavor, indicates the target scale level to which the VNF - is to be scaled. - type: array - items: - $ref: "#/definitions/VnfScaleInfo" - additionalParams: - description: > - Additional parameters passed by the NFVO as input to - the scaling process, specific to the VNF being scaled. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - ScaleByStepData: - description: > - This type describes the information to scale a VNF instance by steps. - The NFVO shall then invoke the Scale VNF - operation towards the appropriate VNFM. - type: object - required: - - aspectId - properties: - aspectId: - description: > - Identifier of (reference to) the aspect of the VNF that is - requested to be scaled, as declared in the VNFD. - $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" - numberOfSteps: - description: > - Number of scaling steps. It shall be a positive number. - Defaults to 1. - The VNF provider defines in the VNFD whether or not a - particular VNF supports performing more than one step - at a time. Such a property in the VNFD applies for all - instances of a particular VNF. - type: integer - default: 1 - additionalParams: - description: > - Additional parameters passed by the NFVO as input to - the scaling process, specific to the VNF instance being scaled. - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" - - NsInstanceSubscriptionFilter: - description: > - This type represents subscription filter criteria to match NS instances. - It shall comply with the provisions defined in - Table 4.4.1.5-1. - type: object - properties: - nsdIds: - description: > - If present, match NS instances that were created - based on a NSD identified by one of the nsdId - values listed in this attribute. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - vnfdIds: - description: > - If present, match NS instances that contain VNF - instances that were created based on a VNFD - identified by one of the vnfdId values listed in - this attribute. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - pnfdIds: - description: > - If present, match NS instances that contain - PNFs that are represented by a PNFD identified - by one of the pnfdId values listed in this attribute. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsInstanceIds: - description: > - If present, match NS instances with an instance - identifier listed in this attribute. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/Identifier" - nsInstanceNames: - description: > - If present, match NS instances with a NS - Instance Name listed in this attribute. - type: array - items: - $ref: "SOL005_def.yaml#/definitions/String" - - LcmOperationStateType: - description: > - Value | Description - ------|------------ - PROCESSING | The LCM operation is currently in execution. - COMPLETED | The LCM operation has been completed successfully. - PARTIALLY_COMPLETED | The LCM operation has been partially completed with accepTable errors. - FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. - FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action will not succeed. - OLLING_BACK | The LCM operation is currently being rolled back. - ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the NS prior to the original operation invocation has been restored as closely as possible. - type: string - enum: - - PROCESSING - - COMPLETED - - PARTIALLY_COMPLETED - - FAILED_TEMP - - FAILED - - ROLLING_BACK - - ROLLED_BACK - - NsComponentType: - description: > - The enumeration NsComponentType represents the NS component type. It shall comply with the provisions defined in Table 6.5.4.5-1. - Value | Description - ------|------------ - VNF | Represents the impacted NS component is a VNF. - PNF | Represents the impacted NS component is a PNF. - NS | Represents the impacted NS component is a nested NS. - type: string - enum: - - VNF - - PNF - - NS - LcmOpNameForChangeNotificationType: - description: > - The enumeration LcmOpNameForChangeNotificationType represents the name of the lifecycle operation that impacts the NS component and trigger an NS change notification. It shall comply with the provisions defined in Table 6.5.4.6-1. - Value | Description - ------|------------ - VNF_INSTANTIATE | Represents the "Instantiate VNF" LCM operation. - VNF_SCALE | Represents the "Scale VNF" LCM operation. - VNF_SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. - VNF_CHANGE_FLAVOUR | Represents the "Change VNF Flavor" LCM operation. - VNF_TERMINATE | Represents the "Terminate VNF" LCM operation. - VNF_HEAL | Represents the "Heal VNF" LCM operation. - VNF_OPERATE | Represents the "Operate VNF" LCM operation. - VNF_CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. - VNF_MODIFY_INFO | Represents the "Modify VNF Information" LCM operation. - NS_INSTANTIATE | Represents the "Instantiate NS" LCM operation - NS_SCALE | Represents the "Scale NS" LCM operation. - NS_UPDATE | Represents the "Update NS" LCM operation. - NS_TERMINATE | Represents the "Terminate NS" LCM operation. - NS_HEAL | Represents the "Heal NS" LCM operation. - type: string - enum: - - VNF_INSTANTIATE - - VNF_SCALE - - VNF_SCALE_TO_LEVEL - - VNF_CHANGE_FLAVOUR - - VNF_TERMINATE - - VNF_HEAL - - VNF_OPERATE - - VNF_CHANGE_EXT_CONN - - VNF_MODIFY_INFO - - NS_INSTANTIATE - - NS_SCALE - - NS_UPDATE - - NS_TERMINATE - - NS_HEAL - LcmOpOccStatusForChangeNotificationType: - description: > - The enumeration LcmOpOccStatusForChangeNotificationType represents the status of the lifecycle management - operation occurrence that impacts the NS component and triggers an NS change notification. It shall comply with the - provisions defined in Table 6.5.4.7-1. - Value | Description - ------|------------ - START | The impact on the NS component is identified. - COMPLETED | The impact on the NS component stops and related lifecycle operation completes successfully. - PARTIALLY_COMPLETED | The impact on the NS component stops and related lifecycle operation partially completes. Inconsistency state may exist on the NS component. - FAILED | The impact on the NS component stops and related lifecycle operation fails. Inconsistency state may exist for the NS component. - ROLLED_BACK | The impact on the NS component stops and related lifecycle operation is rolled back. - type: string - enum: - - START - - COMPLETED - - PARTIALLY_COMPLETED - - FAILED - - ROLLED_BACK \ No newline at end of file + Timestamp indicating the end time of the NS, i.e. the NS + will be terminated automatically at this timestamp. + Cardinality "0" indicates the NS termination takes place immediately + $ref: "SOL005_def.yaml#/definitions/DateTime" \ No newline at end of file -- GitLab From 6a196451de4e1fae61ddee34f555b035f6c53e32 Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Tue, 13 Nov 2018 11:48:19 +0100 Subject: [PATCH 08/11] Update NSLifecycleManagement.yaml --- src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index 9e162c7..d8ad0f1 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -1826,7 +1826,7 @@ paths: 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: - $ref: "responses/SOL005_resp.yaml#/responses/404" + $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: -- GitLab From 551fda9716faafc439362179de471904dfc2de05 Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Wed, 14 Nov 2018 04:40:34 +0100 Subject: [PATCH 09/11] Update SOL005NSLifecycleManagement_def.yaml -- GitLab From c91ca1d632c86db10795656697b0c6fa6d44f704 Mon Sep 17 00:00:00 2001 From: Michele Carignani Date: Wed, 14 Nov 2018 12:42:49 +0100 Subject: [PATCH 10/11] Fixing build script --- .jenkins.sh | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.jenkins.sh b/.jenkins.sh index a6d31c4..2a971ec 100644 --- a/.jenkins.sh +++ b/.jenkins.sh @@ -12,10 +12,8 @@ rm build/*-API.json cd docker ./build-container.sh -./run-container.sh "${run_dir}" - -cd .. -python ./scripts/add_change_comment.py +./run-container.sh "${run_dir}" +OUTCOME=$? -exit $? +exit $OUTCOME -- GitLab From 7a10c8d895cc451645f036f52560cb42a046cf12 Mon Sep 17 00:00:00 2001 From: rameshnaraya Date: Mon, 3 Dec 2018 14:46:20 +0100 Subject: [PATCH 11/11] SOL005 2.4.1 - Fixed reference issues in spec files, generated while building Jenkins script. --- src/SOL005/NSDManagement/NSDManagement.yaml | 2630 +++++++---------- .../SOL005NSDescriptorManagement_def.yaml | 777 +++++ .../NSDManagement/definitions/SOL005_def.yaml | 70 + .../NSDescriptorManagement_resp.yaml | 211 ++ .../NSDManagement/responses/SOL005_resp.yaml | 415 +++ .../NSFaultManagement/NSFaultManagement.yaml | 645 +++- .../SOL005NSFaultManagement_def.yaml | 537 ++++ .../definitions/SOL005_def.yaml | 264 ++ .../responses/NSFManagement_resp.yaml | 29 + .../responses/SOL005_resp.yaml | 195 ++ .../NSLifecycleManagement.yaml | 191 +- .../NSLifecycleManagement_def.yaml | 78 +- .../SOL005NSLifecycleManagement_def.yaml | 67 +- .../definitions/SOL005_def.yaml | 2 +- .../responses/NSLifecycleManagement_resp.yaml | 2 +- .../responses/SOL005_resp.yaml | 17 +- .../NSperformanceManagement.yaml | 1007 ++++++- .../NSPerfomananceManagement_def.yaml | 63 + .../SOL005NSPerfomananceManagement_def.yaml | 539 ++++ .../definitions/SOL005_def.yaml | 236 ++ .../responses/SOL005_resp.yaml | 245 ++ .../VNFPackageManagement.yaml | 1076 ++++++- .../SOL005VNFPMManagement_def.yaml | 466 +++ .../definitions/SOL005_def.yaml | 189 ++ .../responses/SOL005_resp.yaml | 438 +++ .../responses/VNFPackageManagement_resp.yaml | 291 ++ 26 files changed, 8929 insertions(+), 1751 deletions(-) create mode 100644 src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml create mode 100644 src/SOL005/NSDManagement/definitions/SOL005_def.yaml create mode 100644 src/SOL005/NSDManagement/responses/NSDescriptorManagement_resp.yaml create mode 100644 src/SOL005/NSDManagement/responses/SOL005_resp.yaml create mode 100644 src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml create mode 100644 src/SOL005/NSFaultManagement/definitions/SOL005_def.yaml create mode 100644 src/SOL005/NSFaultManagement/responses/NSFManagement_resp.yaml create mode 100644 src/SOL005/NSFaultManagement/responses/SOL005_resp.yaml create mode 100644 src/SOL005/NSPerformanceManagement/definitions/NSPerfomananceManagement_def.yaml create mode 100644 src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerfomananceManagement_def.yaml create mode 100644 src/SOL005/NSPerformanceManagement/definitions/SOL005_def.yaml create mode 100644 src/SOL005/NSPerformanceManagement/responses/SOL005_resp.yaml create mode 100644 src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml create mode 100644 src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml create mode 100644 src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml create mode 100644 src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 81baff6..330293d 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -1,11 +1,12 @@ ---- swagger: "2.0" + info: - description: "DRAFT - SOL005 - NSD 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\n" + description: > + "DRAFT - SOL005 - NSD 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: "2.4.1" title: "DRAFT - SOL005 - NSD Management Interface" contact: @@ -13,245 +14,350 @@ info: license: name: "ETSI Forge copyright notice" url: "https://forge.etsi.org/etsi-forge-copyright-notice.txt" +externalDocs: + description: "ETSI GS NFV-SOL 005 V2.4.1" + url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf + +basePath: "/nsd/v1" +schemes: + - https + consumes: - "application/json" produces: - "application/json" + paths: - /ns_descriptors: +############################################################################### +# NS Descriptors # +############################################################################### + '/ns_descriptors': + #ETSI GS NFV-SOL 005 V2.4.1 location: 5.4.2.3.2 get: - summary: "Query NSD Info" - description: "The GET method queries information about multiple NS descriptor\ - \ resources. This method shall follow the provisions specified in the Tables\ - \ 5.4.2.3.2-1 and 5.4.2.3.2-2 of GS NFV-SOL 005 for URI query parameters,\ - \ request and response data structures, and response codes." + summary: "Query information about multiple NS descriptor resources." + description: > + "The GET method queries information about multiple NS descriptor resources. + This method shall follow the provisions specified in the + Tables 5.4.2.3.2-1 and 5.4.2.3.2-2 for URI query parameters, + request and response data structures, and response codes." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "This header field shall be present if the response is expected\ - \ to have a non-empty message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query + string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the NsdInfo and in data types referenced from + it shall be supported in attribute-based filtering parameters." + - name: "all_fields" + in: "query" + required: false + type: "string" + description: > + "Include all complex attributes in the response. See clause 4.3.3 for details. + The NFVO shall support this parameter." + - name: "fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be included into the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be excluded from the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + "Indicates to exclude the following complex attributes from the response. See + clause 4.3.3 for details. The VNFM shall support this parameter. + The following attributes shall be excluded from the NsdInfo structure in the + response body if this parameter is provided, or none of the parameters + "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + userDefinedData." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: "Information about zero or more NS descriptors.\nThe response\ - \ body shall contain a representation of zero or more NS descriptors,\ - \ as defined in clause 5.5.2.2 of GS NFV-SOL 005." + description: > + "Information about zero or more NS descriptors. + The response body shall contain a representation of + zero or more NS descriptors, as defined in + clause 5.5.2.2" schema: - $ref: "#/definitions/NsdInfo" + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + type: string + description: The MIME type of the body of the response. WWW-Authenticate: - type: "string" - 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." + type: string + 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. 400: - description: "There are two possible scenarios listed below.\n\nError: Invalid\ - \ attribute-based filtering parameters. \n\nThe response body shall contain\ - \ a ProblemDetails structure, in which the \"detail\" attribute should\ - \ convey more information about the error.\n\nError: Invalid attribute\ - \ selector. The response body shall contain a ProblemDetails structure,\ - \ in which the \"detail\" attribute should convey more information about\ - \ the error." + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" post: - summary: "Create NSD Info" - description: "The POST method is used to create a new NS descriptor resource.\ - \ This method shall follow the provisions specified in the Tables 5.4.2.3.1-1\ - \ and 5.4.2.3.1-2 of GS NFV-SOL 005 for URI query parameters, request and\ - \ response data structures, and response codes." - consumes: [] + summary: "Create a new NS descriptor resource." + description: > + "The POST method is used to create a new NS descriptor resource or a new version of an on-boarded NS descriptor + resource. This method shall follow the provisions specified in the + Tables 5.4.2.3.1-1 and 5.4.2.3.1-2 for URI query parameters, + request and response data structures, and response codes." parameters: - - name: "Accept" - in: "header" - required: false - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the\nresponse is expected to have a non-empty\n\ - message body." - - name: "Content-Type" - in: "header" - required: false - type: "string" - description: "The MIME type of the body of the request.\nThis header field\ - \ shall be present if the\nrequest has a non-empty message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005" - - name: "body" + - name: "createNsdInfoRequest" + description: > + "The CreateNsdInfoRequest contains parameters for creating + an NS descriptor resource, as defined in clause 5.5.2.4 of GS NFV-SOL 005." in: "body" required: true schema: - type: "object" - required: - - "CreateNsdInfoRequest" - properties: - CreateNsdInfoRequest: - $ref: "#/definitions/CreateNsdInfoRequest" - description: "The CreateNsdInfoRequest contains parameters for creating\ - \ an NS descriptor resource, as defined in\nclause 5.5.2.4 of GS NFV-SOL\ - \ 005." + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreateNsdInfoRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string responses: 201: - description: "Status 201" + description: > + Status 201 + + An NS descriptor resource was created + successfully, as a new NS descriptor resource. + The response body shall contain a representation of + the new NS descriptor resource, as defined in + clause 5.5.2.2. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of the + new NS descriptor resource. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" schema: type: "object" - description: "An NS descriptor resource was created successfully, as a\ - \ new NS descriptor resource. The response body shall contain a representation\ - \ of the new NS descriptor resource, as defined in clause 5.5.2.2 of\ - \ GS NFV-SOL 005." + description: > + "An NS descriptor resource was created successfully, as a + new NS descriptor resource. The response body shall contain a representation + of the new NS descriptor resource, as defined in clause 5.5.2.2 of + GS NFV-SOL 005." properties: NsdInfo: - $ref: "#/definitions/NsdInfo" + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" headers: Location: type: "string" - description: "The HTTP response shall include a \"Location\" HTTP header\ - \ that contains the resource URI of the new NS descriptor resource." - Content-Type: - type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." - WWW-Authenticate: - type: "string" - 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." - /ns_descriptors/{nsdInfoId}: + description: > + "The HTTP response shall include a "Location" HTTP header + that contains the resource URI of the new NS descriptor resource." +############################################################################### +# Individual NS Descriptor # +############################################################################### + '/ns_descriptors/{nsdInfoId}': get: - summary: "Query NSD Info" - description: "The GET method reads information about an individual NS descriptor.\ - \ This method shall follow the provisions specified in GS NFV-SOL 005 Tables\ - \ 5.4.3.3.2-1 and 5.4.3.3.2-2 of GS NFV-SOL 005 for URI query parameters,\ - \ request and response data structures, and response codes." + summary: "Read information about an individual NS descriptor resource." + description: > + "The GET method reads information about an individual NS descriptor. + This method shall follow the provisions specified in GS NFV-SOL 005 Tables + 5.4.3.3.2-1 and 5.4.3.3.2-2 of GS NFV-SOL 005 for URI query parameters, + request and response data structures, and response codes." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present \nif the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: "Information about the individual NS descriptor. The response\ - \ body shall contain a representation of the individual NS descriptor,\ - \ as defined in clause 5.5.2.2 of GS NFV-SOL 005." + description: > + 200 OK + + Information about the individual NS descriptor. + The response body shall contain a representation of + the individual NS descriptor, as defined in + clause 5.5.2.2. schema: - $ref: "#/definitions/NsdInfo" - headers: - Content-Type: - type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." - WWW-Authenticate: - type: "string" - 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." + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfo" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" delete: - summary: "Delete NSD" - description: "The DELETE method deletes an individual NS descriptor resource.\ - \ An individual NS descriptor resource can only be deleted when there is no\ - \ NS instance using it (i.e. usageState = NOT_IN_USE) and has been disabled\ - \ already (i.e. operationalState = DISABLED). Otherwise, the DELETE method\ - \ shall fail. This method shall follow the provisions specified in the Tables\ - \ 5.4.3.3.5-1 and 5.4.3.3.5-2 of GS NFV-SOL 005 for URI query parameters,\ - \ request and response data structures, and response codes." + summary: "Delete an individual NS descriptor resource." + description: > + "The DELETE method deletes an individual NS descriptor resource. + An individual NS descriptor resource can only be deleted when there is no + NS instance using it (i.e. usageState = NOT_IN_USE) and has been disabled + already (i.e. operationalState = DISABLED). Otherwise, the DELETE method + shall fail. This method shall follow the provisions specified in the Tables + 5.4.3.3.5-1 and 5.4.3.3.5-2 of GS NFV-SOL 005 for URI query parameters, + request and response data structures, and response codes." parameters: - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 204: - description: "The operation has completed successfully. The response body\ - \ shall be empty." - schema: - type: "object" - description: "The operation has completed successfully. The response body\ - \ shall be empty." + description: > + 204 No Content + + The operation has completed successfully. + The response body shall be empty. headers: WWW-Authenticate: - type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Status 409" - schema: - required: - - "ProblemDetails" - type: "object" - description: "Error: The operation cannot be executed currently, due to\ - \ a conflict with the state of the resource. Typically, this is due\ - \ to the fact the NS descriptor resource is in the enabled operational\ - \ state (i.e. operationalState = ENABLED) or there are running NS instances\ - \ using the concerned individual NS descriptor resource (i.e. usageState\ - \ = IN_USE). The response body shall contain a ProblemDetails structure,\ - \ in which the \"detail\" attribute shall convey more information about\ - \ the error." - properties: - ProblemDetails: - $ref: "#/definitions/ProblemDetails" + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" patch: summary: "Update NSD Info" - description: "The PATCH method modifies the operational state and/or user defined\ - \ data of an individual NS descriptor resource. This method can be used to:\n\ - 1) Enable a previously disabled individual NS descriptor resource, allowing\ - \ again its use for instantiation of new\nnetwork service with this descriptor.\ - \ The usage state (i.e. \"IN_USE/NOT_IN_USE\") shall not change as a\nresult.\n\ - 2) Disable a previously enabled individual NS descriptor resource, preventing\ - \ any further use for instantiation of\nnew network service(s) with this descriptor.\ - \ The usage state (i.e. \"IN_USE/NOT_IN_USE\") shall not change\nas a result.\n\ - 3) Modify the user defined data of an individual NS descriptor resource.\n\ - This method shall follow the provisions specified in the Tables 5.4.3.3.4-1\ - \ and 5.4.3.3.4-2 for URI query parameters,\nrequest and response data structures,\ - \ and response codes." - consumes: [] + description: > + "The PATCH method modifies the operational state and/or user defined + data of an individual NS descriptor resource. This method can be used to: + 1) Enable a previously disabled individual NS descriptor resource, allowing + again its use for instantiation of new network service with this descriptor. + The usage state (i.e. "IN_USE/NOT_IN_USE") shall not change as result. + 2) Disable a previously enabled individual NS descriptor resource, preventing + any further use for instantiation of new network service(s) with this descriptor. + The usage state (i.e. "IN_USE/NOT_IN_USE") shall not changes a result. + 3) Modify the user defined data of an individual NS descriptor resource. + This method shall follow the provisions specified in the Tables 5.4.3.3.4-1 + and 5.4.3.3.4-2 for URI query parameters,request and response data structures, + and response codes." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Content-Type" - in: "header" - required: true - type: "string" - description: "The MIME type of the body of the request.\nThis header field\ - \ shall be present if the\nrequest has a non-empty message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3." - - name: "body" + - name: "NsdInfoModifications" in: "body" required: true schema: @@ -260,1486 +366,924 @@ paths: - "NsdInfoModifications" properties: NsdInfoModifications: - $ref: "#/definitions/NsdInfoModifications" - description: "The operation was completed successfully. The response body\ - \ shall contain attribute modifications for an 'Individual NS Descriptor'\ - \ resource (see clause 5.5.2.6 of GS NFV SOL-005)." - responses: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" + description: > + "The operation was completed successfully. The response body + shall contain attribute modifications for an 'Individual NS Descriptor' + resource (see clause 5.5.2.6 of GS NFV SOL-005)." + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: 200: - description: "Status 200" - schema: - $ref: "#/definitions/NsdInfoModifications" + description: > + Information about the individual NS descriptor. + The response body shall contain a representation of + the individual NS descriptor, as defined in + clause 5.5.2.2. headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: - type: "string" - 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." - 409: - description: "Status 409" + 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. + type: string + maximum: 1 + minimum: 0 schema: - $ref: "#/definitions/ProblemDetails" + type: array + items: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" 412: - description: "Status 412" - schema: - $ref: "#/definitions/ProblemDetails" + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + parameters: - name: "nsdInfoId" + description: > + Identifier of the individual NS descriptor resource. in: "path" required: true type: "string" - /ns_descriptors/{nsdInfoId}/nsd_content: +############################################################################### +# NSD Content # +############################################################################### + '/ns_descriptors/{nsdInfoId}/nsd_content': get: - summary: "Get NSD Content" - description: "The GET method fetches the content of the NSD.\n\nThe NSD can\ - \ be implemented as a single file or as a collection of multiple files. If\ - \ the NSD is implemented in the form of multiple files, a ZIP file embedding\ - \ these files shall be returned. If the NSD is implemented as a single file,\ - \ either that file or a ZIP file embedding that file shall be returned.\n\n\ - The selection of the format is controlled by the \"Accept\" HTTP header passed\ - \ in the GET request.\n\nNOTE: The structure of the NSD zip file is outside\ - \ the scope of the present document." + summary: "Fetch the content of a NSD." + description: > + "The GET method fetches the content of the NSD.The NSD can + be implemented as a single file or as a collection of multiple files. If + the NSD is implemented in the form of multiple files, a ZIP file embedding + these files shall be returned. If the NSD is implemented as a single file, + either that file or a ZIP file embedding that file shall be returned. + The selection of the format is controlled by the "Accept" HTTP header passed + in the GET request:• If the "Accept" header contains only "text/plain" + and the NSD is implemented as a single file, the file shall be returned; + otherwise, an error message shall be returned.• If the "Accept" header + contains only "application/zip", the single file or the multiple files + that make up the NSD shall be returned embedded in a ZIP file.• If the + "Accept" header contains both "text/plain" and "application/zip", + it is up to the NFVO to choose the format to return for a single-file NSD; + for a multi-file NSD, a ZIP file shall be returned.NOTE: The structure + of the NSD zip file is outside the scope of the present document." parameters: - - name: "Accept" - in: "header" + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header required: true - type: "string" - description: "String Required\nIf the “Accept” header contains only “text/plain”\ - \ and the NSD is implemented as a single file, the file shall be returned;\ - \ otherwise, an error message shall be returned.\n\nIf the “Accept” header\ - \ contains only “application/zip”, the single file or the multiple files\ - \ that make up the NSD shall be returned embedded in a ZIP file.\n\nIf the\ - \ “Accept” header contains both “text/plain” and “application/zip”, it is\ - \ up to the NFVO to choose the format to return for a single-file NSD; for\ - \ a multi-file NSD, a ZIP file shall be returned." - - name: "Range" - in: "header" + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header required: false - type: "string" - description: "The request may contain a \"Range\" HTTP header to obtain single\ - \ range of bytes from the NSD file. This can be used to continue an aborted\ - \ transmission.\n\nIf the NFVO does not support range requests, the NFVO\ - \ shall ignore the 'Range\" header, process the GET request, and return\ - \ the whole NSD file with a 200 OK response (rather than returning a 4xx\ - \ error status code)." - - name: "Authorization" + type: string + - name: "Range" in: "header" required: false type: "string" - description: "The authorization token for the request. Details are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + description: > + "The request may contain a "Range" HTTP header to obtain single + range of bytes from the NSD file. This can be used to continue an aborted + transmission.If the NFVO does not support range requests, the NFVO + shall ignore the 'Range" header, process the GET request, and return + the whole NSD file with a 200 OK response (rather than returning a 4xx + error status code)." responses: 200: - description: "On success, the content of the NSD is returned. The payload\ - \ body shall contain a copy of the file representing the NSD or a ZIP\ - \ file that contains the file or multiple files representing the NSD,\ - \ as specified above. The \"Content-Type\" HTTP header shall be set according\ - \ to the format of the returned file, i.e. to \"text/plain\" for a YAML\ - \ file or to \"application/zip\" for a ZIP file." - schema: - type: "object" + description: > + "On success, the content of the NSD is returned. The payload + body shall contain a copy of the file representing the NSD or a ZIP + file that contains the file or multiple files representing the NSD, + as specified above. The "Content-Type" HTTP header shall be set according + to the format of the returned file, i.e. to "text/plain" for a YAML + file or to "application/zip" for a ZIP file." headers: Content-Type: - type: "string" - description: "The \"Content-Type\" HTTP header shall be set according\ - \ to the format of the returned file, i.e. to \"text/plain\" for a\ - \ YAML file or to \"application/zip\" for a ZIP file." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: - type: "string" - 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." - Content-Range: - type: "string" - description: "Signals the byte range that is contained in the response,\ - \ and the total length of the file." - Accept-Ranges: - type: "string" - description: "Used by the server to signal whether or ot it supports\ - \ ranges for certain resources." + 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. + type: string + maximum: 1 + minimum: 0 + 206: - description: "On success, if the NFVO supports range requests, a single\ - \ consecutive byte range from the content of the NSD file is returned.\n\ - \nThe response body shall contain the requested part of the NSD file.\n\ - \nThe \"Content-Range\" HTTP header shall be provided according to IETF\ - \ RFC 7233 [23].\n\nThe \"Content-Type\" HTTP header shall be set as defined\ - \ above for the \"200 OK\" response." - headers: - Content-Range: - type: "string" - Content-Type: - type: "string" + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" 406: - description: "Status 406" - schema: - type: "object" - description: "If the \"Accept\" header does not contain at least one name\ - \ of a content type for which the NFVO can provide a representation\ - \ of the NSD, the NFVO shall respond with this response code. The \"\ - ProblemDetails\" structure may be included with the \"detail\" attribute\ - \ providing more information about the error." + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Status 409" - schema: - type: "object" - description: "Error: The operation cannot be executed currently, due to\ - \ a conflict with the state of the resource. Typically, this is due\ - \ to the fact \"nsdOnboardingState\" has a value different from ONBOARDED.\ - \ The response body shall contain a ProblemDetails structure, in which\ - \ the \"detail\" attribute shall convey more information about the error." + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" 416: - description: "Status 416" - schema: - type: "object" - description: "The byte range passed in the \"Range\" header did not match\ - \ any available byte range in the NSD file (e.g.\n\"access after end\ - \ of file\"). The response body may contain a ProblemDetails structure." + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + put: - summary: "Upload NSD" - description: "The PUT method is used to upload the content of a NSD. The NSD\ - \ to be uploaded can be implemented as a single file or as a collection of\ - \ multiple files, as defined in clause 5.4.4.3.2 of GS NFV-SOL 005. If the\ - \ NSD is implemented in the form of multiple files, a ZIP file embedding these\ - \ files shall be uploaded. If the NSD is implemented as a single file, either\ - \ that file or a ZIP file embedding that file shall be uploaded. The \"Content-Type\"\ - \ HTTP header in the PUT request shall be set accordingly based on the format\ - \ selection of the NSD. If the NSD to be uploaded is a text file, the \"Content-Type\"\ - \ header is set to \"text/plain\". If the NSD to be uploaded is a zip file,\ - \ the \"Content-Type\" header is set to \"application/zip\". This method shall\ - \ follow the provisions specified in the Tables 5.4.4.3.3-1 and 5.4.4.3.3-2\ - \ of GS-NFV-SOL 005 for URI query parameters, request and response data structures,\ - \ and response codes." - consumes: [] + summary: "Upload the content of a NSD." + description: > + "The PUT method is used to upload the content of a NSD. The NSD + to be uploaded can be implemented as a single file or as a collection of + multiple files, as defined in clause 5.4.4.3.2 of GS NFV-SOL 005. If the + NSD is implemented in the form of multiple files, a ZIP file embedding these + files shall be uploaded. If the NSD is implemented as a single file, either + that file or a ZIP file embedding that file shall be uploaded. The "Content-Type" + HTTP header in the PUT request shall be set accordingly based on the format + selection of the NSD. If the NSD to be uploaded is a text file, the "Content-Type" + header is set to "text/plain". If the NSD to be uploaded is a zip file, + the "Content-Type" header is set to "application/zip". This method shall + follow the provisions specified in the Tables 5.4.4.3.3-1 and 5.4.4.3.3-2 + of GS-NFV-SOL 005 for URI query parameters, request and response data structures, + and response codes." parameters: - - name: "Content-Type" - in: "header" - required: false - type: "string" - description: "The payload body contains a copy of the file representing the\ - \ NSD or a ZIP file that contains the file or multiple files representing\ - \ the NSD, as specified above. The request shall set the \"Content-Type\"\ - \ HTTP header as defined\nabove." - - name: "body" - in: "body" + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header required: true - schema: - type: "object" + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 202: - description: "Status 202" - schema: - type: "object" - description: "The NSD content was accepted for uploading, but the processing\ - \ has not been completed. It is expected to take some time for processing\ - \ (asynchronous mode). The response body shall be empty. See note." + description: > + "Status 202" + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 204: - description: "The NSD content was successfully uploaded and validated (synchronous\ - \ mode). The response body shall be empty." + description: > + "The NSD content was successfully uploaded and validated (synchronous + mode). The response body shall be empty." + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Error: The operation cannot be executed currently, due to\ - \ a conflict with the state of the resource. Typically, this is due to\ - \ the fact that the NsdOnboardingState has a value other than CREATED.\ - \ The response body shall contain a ProblemDetails structure, in which\ - \ the \"detail\" attribute shall convey more information about the error." - schema: - $ref: "#/definitions/ProblemDetails" + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + parameters: - name: "nsdInfoId" in: "path" required: true type: "string" - /pnf_descriptors: +############################################################################### +# PNF Descriptors # +############################################################################### + '/pnf_descriptors': get: - summary: "Query PFND Info" - description: "The GET method queries information about multiple PNF descriptor\ - \ resources." + summary: "Query information about multiple PNF descriptor resources." + description: > + "The GET method queries information about multiple PNF descriptor + resources." parameters: - - name: "exclude_default" + - name: "filter" in: "query" required: false type: "string" - description: "Indicates to exclude the following \n \ncomplex attributes from\ - \ the response. \nSee clause 4.3.3 for details.\n\nThe NFVO shall support\ - \ this parameter.\n\nThe following attributes shall be excluded from the\ - \ PnfdInfo structure in the response body if this parameter is provided,\ - \ or none of the parameters \"all_fields,\" \"fields\", \"exclude_fields\"\ - , \"exclude_default\" are provided: userDefinedData." + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI + query string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the PnfdInfo and in data types referenced + from it shall be supported in attribute-based filtering parameters. - name: "all_fields" in: "query" required: false type: "string" - description: "Include all complex attributes in the response. See clause 4.3.3\ - \ for details. The NFVO shall support this parameter." - - name: "Accept" - in: "header" + description: > + Include all complex attributes in the response. See clause 4.3.3 for details. + The NFVO shall support this parameter. + - name: "fields" + in: "query" required: false type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" + description: > + Complex attributes to be included into the response. See clause 4.3.3 for + details. The NFVO should support this parameter. + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + Complex attributes to be excluded from the response. See clause 4.3.3 for + details. The NFVO should support this parameter. + - name: "exclude_default" + in: "query" required: false type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + description: > + Indicates to exclude the following complex attributes from the response. See + clause 4.3.3 for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the PnfdInfo structure in the + response body if this parameter is provided, or none of the parameters + "all_fields," "fields", "exclude_fields", "exclude_default" are provided: + userDefinedData. responses: 200: - description: "Status 200" - schema: - type: "object" - description: "Information about zero or more PNF descriptors. The response\ - \ body shall contain a representation of zero or more PNF descriptors,\ - \ as defined in clause 5.5.2.2." + description: > + 200 OK + + Information about zero or more PNF descriptors. + The response body shall contain a representation of + zero or more PNF descriptors, as defined in + clause 5.5.2.2 headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: - type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" post: - summary: "Create PNFD Info" - description: "The POST method is used to create a new PNF descriptor resource." - consumes: [] + summary: "Create a new PNF descriptor resource." + description: > + "The POST method is used to create a new PNF descriptor resource." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS-NFV-SOL 005." - - name: "body" + - name: "CreatePnfdInfoRequest" + description: > + "Parameters of creating a PNF descriptor resource, as defined in clause 5.5.2.6." in: "body" required: true schema: - type: "object" - description: "Parameters of creating a PNF descriptor resource, as defined\ - \ in\nclause 5.5.2.6 of GS NFV-SOL 005." + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/CreatePnfdInfoRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string responses: 201: - description: "Status 201" - schema: - type: "object" - description: "A PNF descriptor resource was created successfully, as a\ - \ new PNF descriptor resource. The response body shall contain a representation\ - \ of the new PNF descriptor resource, as defined in clause 5.5.2.5.\ - \ The HTTP response shall include a \"Location\" HTTP header that contains\ - \ the resource URI of the new PNF descriptor resource." + description: > + Status 201 + + A PNF descriptor resource was created successfully, as a + new PNF descriptor resource. The response body shall contain a representation + of the new PNF descriptor resource, as defined in clause 5.5.2.5. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the new PNF descriptor resource. headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: - type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." - /pnf_descriptors/{pnfdInfoId}: + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################### +# Individual PNF Descriptor # +############################################################################### + '/pnf_descriptors/{pnfdInfoId}': get: - summary: "Query PNFD Info" - description: "The GET method reads information about an individual PNF descriptor.\ - \ This method shall follow the provisions specified in the Tables 5.4.6.3.2-1\ - \ and 5.4.6.3.2-2 of GS NFV-SOL 005 for URI query parameters, request and\ - \ response data structures, and response codes." - parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request. Details are specified\ - \ in clause 4.5.3." + summary: "Read an individual PNFD resource." + description: > + "The GET method reads information about an individual PNF descriptor. + This method shall follow the provisions specified in the Tables 5.4.6.3.2-1 + and 5.4.6.3.2-2 of GS NFV-SOL 005 for URI query parameters, request and + response data structures, and response codes." responses: 200: - description: "Information about the individual PNFD descriptor. The response\ - \ body shall contain a representation of the individual PNF descriptor,\ - \ as defined in clause 5.5.2.5 of GS NFV-SOL 005." + description: > + Information about the individual PNFD descriptor. + + The response body shall contain a representation of + the individual PNF descriptor, as defined in + clause 5.5.2.5. headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: - type: "string" - 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." + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfo" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" delete: - summary: "Delete PNFD" - description: "The DELETE method deletes an individual PNF descriptor resource.\ - \ An individual PNF descriptor resource can only be deleted when there is\ - \ no NS instance using it or there is NSD referencing it. To delete all PNFD\ - \ versions identified by a particular value of the \"pnfdInvariantId\" attribute,\ - \ the procedure is to first use the GET method with filter \"pnfdInvariantId\"\ - \ towards the PNF descriptors resource to find all versions of the PNFD. Then,\ - \ the client uses the DELETE method described in this clause to delete each\ - \ PNFD version individually. This method shall follow the provisions specified\ - \ in the Tables 5.4.6.3.5-1 and 5.4.6.3.5-2 of GS NFV-SOL 005 for URI query\ - \ parameters, request and response data structures, and response codes." - parameters: - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request. Details are specified\ - \ in clause 4.5.3." + summary: "Delete an individual PNF descriptor resource." + description: > + "The DELETE method deletes an individual PNF descriptor resource. + An individual PNF descriptor resource can only be deleted when there is + no NS instance using it or there is NSD referencing it. To delete all PNFD + versions identified by a particular value of the "pnfdInvariantId" attribute, + the procedure is to first use the GET method with filter "pnfdInvariantId" + towards the PNF descriptors resource to find all versions of the PNFD. Then, + the client uses the DELETE method described in this clause to delete each + PNFD version individually. This method shall follow the provisions specified + in the Tables 5.4.6.3.5-1 and 5.4.6.3.5-2 of GS NFV-SOL 005 for URI query + parameters, request and response data structures, and response codes." responses: 204: - description: "The operation has completed successfully. The response body\ - \ shall be empty." - headers: - WWW-Authenticate: - type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + description: > + 204 No Content + + The operation has completed successfully. + The response body shall be empty. + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" patch: - summary: "Update PNFD Info" - description: "The PATCH method modifies the user defined data of an individual\ - \ PNF descriptor resource. This method shall follow the provisions specified\ - \ in the Tables 5.4.6.3.4-1 and 5.4.6.3.4-2 for URI query parameters, request\ - \ and response data structures, and response codes." - consumes: [] + summary: "Modify the user defined data of an individual PNF descriptor resource." + description: > + "The PATCH method modifies the user defined data of an individual + PNF descriptor resource. This method shall follow the provisions specified + in the Tables 5.4.6.3.4-1 and 5.4.6.3.4-2 for URI query parameters, request + and response data structures, and response codes." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non empty\ - \ message body." - - name: "Content-Type" - in: "header" - required: true - type: "string" - description: "The MIME type of the body of the request. This header field\ - \ shall be present if the request has a non-empty message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request. Details are specified\ - \ in clause 4.5.3." - name: "body" in: "body" required: true schema: - $ref: "#/definitions/PnfdInfoModifications" + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" responses: 200: - description: "Status 200" - schema: - $ref: "#/definitions/PnfdInfoModifications" + description: > + 200 OK + + The operation was completed successfully. + + The response body shall contain attribute + modifications for an 'Individual PNF Descriptor' + resource (see clause 5.5.2.4). headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 WWW-Authenticate: - type: "string" - 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." + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/PnfdInfoModifications" + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" 412: - description: "Status 412" - schema: - $ref: "#/definitions/ProblemDetails" + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" parameters: - name: "pnfdInfoId" + description: > + Identifier of the individual PNF descriptor resource. in: "path" required: true type: "string" - /pnf_descriptors/{pnfdInfoId}/pnfd_content: +############################################################################### +# PNFD Content # +############################################################################### + '/pnf_descriptors/{pnfdInfoId}/pnfd_content': get: - summary: "Get PNFD Content" - description: "The GET method fetches the content of the PNFD." + summary: "Fetch the content of a PNFD." + description: > + "The GET method fetches the content of the PNFD." parameters: - - name: "Accept" - in: "header" + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non-empty\ - \ message body." - - name: "Authorization" - in: "header" + type: string + enum: + - text/plain + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + type: string responses: 200: - description: "On success, the content of the PNFD is returned. The payload\ - \ body shall contain a copy of the file representing the PNFD. The \"\ - Content-Type\" HTTP header shall be set to \"text/plain\"." - headers: - WWW-Authenticate: - type: "string" - 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." - Content-Type: - type: "string" - description: "The \"Content-Type\" HTTP header shall be set to \"text/plain\"\ - ." + description: > + 200 OK + + On success, the content of the PNFD is returned. The payload + body shall contain a copy of the file representing the PNFD. + The Content-Type" HTTP header shall be set to "text/plain". + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + description: > + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact pnfdOnboardingState + has a value different from ONBOARDED. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" put: - summary: "Upload PNFD" - description: "The PUT method is used to upload the content of a PNFD. This method\ - \ shall follow the provisions specified in the Tables 5.4.7.3.3-1 and 5.4.7.3.3-2\ - \ of GS NFV-SOL 005for URI query parameters, request and response data structures,\ - \ and response codes." - consumes: [] + summary: "Upload the content of a PNFD." + description: > + "The PUT method is used to upload the content of a PNFD. This method + shall follow the provisions specified in the Tables 5.4.7.3.3-1 and 5.4.7.3.3-2 + of GS NFV-SOL 005for URI query parameters, request and response data structures, + and response codes." parameters: - - name: "Content-Type" - in: "header" - required: false - type: "string" - description: "The request shall set the \"Content-Type\" HTTP header to \"\ - text/plain\"." - - name: "body" - in: "body" + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header required: true - schema: - type: "object" - description: "The payload body contains a copy of the file representing\ - \ the PNFD." + type: string + enum: + - text/plain + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 204: - description: "The PNFD content was successfully uploaded and validated.\ - \ The response body shall be empty." + description: > + 204 No Content + + The PNFD content was successfully uploaded and validated. + The response body shall be empty. + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" 409: - description: "Status 409" - schema: - $ref: "#/definitions/ProblemDetails" + description: > + 409 Conflict + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the + PnfdOnboardingState has a value other than + CREATED. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error.. + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" parameters: - name: "pnfdInfoId" + description: > + Identifier of the individual PNF descriptor. in: "path" required: true type: "string" - /subscriptions: +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': get: - summary: "Query Subscription Information" - description: "The GET method queries the list of active subscriptions of the\ - \ functional block that invokes the method. It can be used e.g. for resynchronization\ - \ after error situations. This method shall support the URI query parameters,\ - \ request and response data structures, and response codes, as specified in\ - \ the Tables 5.4.8.3.2-1 and 5.4.8.3.2-2 of GS NFV-SOL 005." + summary: "Query multiple subscriptions." + description: > + "The GET method queries the list of active subscriptions of the + functional block that invokes the method. It can be used e.g. for resynchronization + after error situations. This method shall support the URI query parameters, + request and response data structures, and response codes, as specified in + the Tables 5.4.8.3.2-1 and 5.4.8.3.2-2 of GS NFV-SOL 005." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non empty\ - \ message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. The + OSS/BSS may supply filtering parameters. + All attribute names that appear in the VnfPkgInfo and in data types referenced from it shall + be supported in attribute-based filtering parameters." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: "Status 200" - schema: - type: "array" - description: "The list of subscriptions was queried successfully. The\ - \ response body shall contain the representations of all active subscriptions\ - \ of the functional block that invokes the method." - items: - $ref: "#/definitions/NsdmSubscription" + description: > + The list of subscriptions was queried successfully. + The response body shall contain the representations of + all active subscriptions of the functional block that + invokes the method. headers: Content-Type: - type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url WWW-Authenticate: - type: "string" - 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." + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: "array" + description: > + "The list of subscriptions was queried successfully. The + response body shall contain the representations of all active subscriptions + of the functional block that invokes the method." + items: + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" 303: - description: "A subscription with the same callbackURI and the same filter\ - \ already exits and the policy of the NFVO is to not create redundant\ - \ subscriptions. The response body shall be empty." - headers: - Location: - type: "string" - description: "The HTTP response shall include a \"Location\" HTTP header\ - \ that contains the resource URI of the existing subscription resource." + description: > + A subscription with the same callbackURI and the + same filter already exits and the policy of the NFVO is + to not create redundant subscriptions. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the existing + subscription resource. + The response body shall be empty. + 206: + $ref: "responses/SOL005_resp.yaml#/responses/206" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSDescriptorManagement_resp.yaml#/responses/409" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + post: - summary: "Subscribe" - description: "The POST method creates a new subscription. This method shall\ - \ support the URI query parameters, request and response data structures,\ - \ and response codes, as specified in the Tables 5.4.8.3.1-1 and 5.4.8.3.1-2\ - \ of GS-NFV SOL 005. Creation of two subscription resources with the same\ - \ callbackURI and the same filter can result in performance degradation and\ - \ will provide duplicates of notifications to the OSS, and might make sense\ - \ only in very rare use cases. Consequently, the NFVO may either allow creating\ - \ a subscription resource if another 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 subscription\ - \ resource (in which case it shall return a \"303 See Other\" response code\ - \ referencing the existing subscription resource with the same filter and\ - \ callbackUri)." - consumes: [] + summary: "Subscribe to NSD and PNFD change notifications." + description: > + "The POST method creates a new subscription. This method shall + support the URI query parameters, request and response data structures, + and response codes, as specified in the Tables 5.4.8.3.1-1 and 5.4.8.3.1-2 + of GS-NFV SOL 005. Creation of two subscription resources with the same + callbackURI and the same filter can result in performance degradation and + will provide duplicates of notifications to the OSS, and might make sense + only in very rare use cases. Consequently, the NFVO may either allow creating + a subscription resource if another 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 subscription + resource (in which case it shall return a "303 See Other" response code + referencing the existing subscription resource with the same filter and + callbackUri)." parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non empty\ - \ message body." - - name: "Content-Type" - in: "header" - required: true - type: "string" - description: "The MIME type of the body of the request.\nThis header field\ - \ shall be present if the\nrequest has a non-empty message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." - name: "body" in: "body" required: true schema: - $ref: "#/definitions/NsdmSubscriptionRequest" + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscriptionRequest" responses: 201: - description: "Status 201" + description: > + "Status 201" schema: - $ref: "#/definitions/NsdmSubscription" + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" headers: Location: type: "string" - description: "The HTTP response shall include a \"Location:\"\nHTTP\ - \ header that points to the created subscription resource." - Content-Type: - type: "string" - description: "The MIME type of the body of the response. This header\ - \ field shall be present if the response has a non-empty message body." - WWW-Authenticate: - type: "string" - 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." - /subscriptions/{subscriptionId}: + description: > + "The HTTP response shall include a "Location:"HTTP + header that points to the created subscription resource." +############################################################################### +# Individual Subscription # +############################################################################### + '/subscriptions/{subscriptionId}': get: - summary: "Query Subscription Information" - description: "The GET method retrieves information about a subscription by reading\ - \ an individual subscription resource. This method shall support the URI query\ - \ parameters, request and response data structures, and response codes, as\ - \ specified in the Tables 5.4.9.3.2-1 and 5.4.9.3.2-2." - parameters: - - name: "Accept" - in: "header" - required: true - type: "string" - description: "Content-Types that are acceptable for the\nresponse. This header\ - \ field shall be present if the response is expected to have a non empty\ - \ message body." - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + summary: "Read an individual subscription resource." + description: > + "The GET method retrieves information about a subscription by reading + an individual subscription resource. This method shall support the URI query + parameters, request and response data structures, and response codes, as + specified in the Tables 5.4.9.3.2-1 and 5.4.9.3.2-2." + parameters: [] responses: 200: - description: "Status 200" + description: > + "Status 200" schema: - $ref: "#/definitions/NsdmSubscription" - headers: - Content-Type: - type: "string" - description: "The MIME type of the body of the response.\nThis header\ - \ field shall be present if the\nresponse has a non-empty message\ - \ body." - WWW-Authenticate: - type: "string" - description: "Challenge if the corresponding HTTP request\nhas not provided\ - \ authorization, or error details if the corresponding HTTP request\ - \ has provided an invalid authorization token." + $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdmSubscription" delete: summary: "Terminate Subscription" - description: "The DELETE method terminates an individual subscription. This\ - \ method shall support the URI query parameters, request and response data\ - \ structures, and response codes, as specified in the Tables 5.4.9.3.5-1 and\ - \ 5.4.9.3.3-2 of GS NFV-SOL 005." - parameters: - - name: "Authorization" - in: "header" - required: false - type: "string" - description: "The authorization token for the request.\nDetails are specified\ - \ in clause 4.5.3 of GS NFV-SOL 005." + description: > + "The DELETE method terminates an individual subscription. This + method shall support the URI query parameters, request and response data + structures, and response codes, as specified in the Tables 5.4.9.3.5-1 and + 5.4.9.3.3-2 of GS NFV-SOL 005." + parameters: [] responses: 204: - description: "The subscription resource was deleted successfully. The response\ - \ body shall be empty." - headers: - WWW-Authenticate: - type: "string" - 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." + description: > + "The subscription resource was deleted successfully. The response + body shall be empty." parameters: - name: "subscriptionId" in: "path" required: true - type: "string" -definitions: - NsdInfoModifications: - type: "object" - properties: - nsdOperationalState: - $ref: "#/definitions/NsdOperationalStateType" - userDefinedData: - type: "object" - description: "Modifications of the \"userDefinedData\" attribute in \"NsdInfo\"\ - \ data type. See note. If present, these modifications shall be applied\ - \ according to the rules of JSON Merge PATCH (see IETF RFC 7396 [25]). NOTE:\ - \ At least one of the attributes - nsdOperationalState and userDefinedData\ - \ - shall be present." - description: "This type represents attribute modifications for an individual NS\ - \ descriptor resource based on the \"NsdInfo\" data type. The attributes of\ - \ \"NsdInfo\" that can be modified are included in the \"NsdInfoModifications\"\ - \ data type.\n\nNOTE: At least one of the attributes - nsdOperationalState and\ - \ userDefinedData - shall be present." - NsdmSubscription: - type: "object" - required: - - "_links" - - "callbackUri" - - "id" - properties: - id: - type: "string" - description: "Identifier of this subscription resource" - filter: - $ref: "#/definitions/NsdmNotificationsFilter" - callbackUri: - $ref: "#/definitions/Uri" - _links: - type: "object" - description: "Links to resources related to this resource." - properties: - self: - $ref: "#/definitions/Link" - description: "This type represents a subscription related to notifications about\ - \ NSD management." - NsdmSubscriptionRequest: - type: "object" - required: - - "callbackUri" - properties: - filter: - $ref: "#/definitions/NsdmNotificationsFilter" - callbackUri: - type: "string" - description: "The URI of the endpoint to send the notification to." - authentication: - $ref: "#/definitions/SubscriptionAuthentication" - description: "This type represents a subscription request related to notifications\ - \ about NSD management." - NsdmNotificationsFilter: - type: "object" - properties: - notificationTypes: - type: "array" - description: "Match particular notification types. Permitted values: NsdOnBoardingNotification,\ - \ NsdOnboardingFailureNotification, NsdChangeNotification, NsdDeletionNotification\n\ - PnfdOnBoardingNotification, PnfdOnBoardingFailureNotification, PnfdDeletionNotification.\n\ - \nThe permitted values of the \"notificationTypes\" \nattribute are spelled\ - \ exactly as the names of the notification types to facilitate automated\ - \ code generation systems." - items: - type: "string" - enum: - - "NsdOnBoardingNotification" - - "NsdOnboardingFailureNotification" - - "NsdChangeNotification" - - "NsdDeletionNotification" - - "PnfdOnBoardingNotification" - - "PnfdOnBoardingFailureNotification" - - "PnfdDeletionNotification" - nsdInfoId: - type: "array" - description: "Match the NsdInfo identifier which is allocated by the NFVO.\ - \ Note: The attributes \"nsdId\" and \"nsdInfoId\" are alternatives to reference\ - \ to a particular NSD in a filter. They should not be used both in the same\ - \ filter instance, but one alternative should be chosen." - items: - type: "string" - nsdId: - type: "array" - description: "Match the NSD identifier, which is allocated by the NSD designer.\ - \ The attributes \"nsdId\" and \"nsdInfoId\" are alternatives to reference\ - \ to a particular NSD in a filter. They should not be used both in the same\ - \ filter instance, but one alternative should be chosen." - items: - type: "string" - nsdName: - type: "array" - description: "Match the name of the onboarded NSD." - items: - type: "string" - nsdVersion: - type: "array" - description: "Match the NSD version listed as part of this attribute. The\ - \ NSD version is a string of variable length." - items: - type: "string" - nsdDesigner: - type: "array" - description: "Match the NSD designer of the on-boarded NSD." - items: - type: "string" - nsdInvariantId: - type: "array" - description: "Match the NSD invariant identifier which is allocated by the\ - \ NSD designer and identifies an NSD in a version independent manner." - items: - type: "string" - vnfPkgIds: - type: "array" - description: "Match VNF packages with a package identifier listed in the attribute." - items: - type: "string" - pnfdInfoIds: - type: "array" - description: "Match the PnfdInfo identifier for the PNFD\nreferenced by the\ - \ on-boarded NSD. The attributes \"pnfdId\" and \"pnfdInfoId\" are alternatives\ - \ to reference to a particular PNFD in a filter. They should not be used\ - \ both in the same filter instance, but one alternative should be chosen." - items: - type: "string" - nestedNsdInfoIds: - type: "array" - description: "Match the NsdInfo identifier for the nested NSD\nreferenced\ - \ by the on-boarded NSD." - items: - type: "string" - nsdOnboardingState: - type: "array" - items: - $ref: "#/definitions/NsdOnboardingStateType" - nsdOperationalState: - type: "array" - items: - $ref: "#/definitions/NsdOperationalStateType" - nsdUsageState: - type: "array" - items: - $ref: "#/definitions/NsdUsageStateType" - pnfdId: - type: "array" - description: "Match the PNFD identifier which is copied from the PNFD content.\ - \ The attributes \"pnfdId\" and \"pnfdInfoId\" are alternatives to reference\ - \ to a particular PNFD in a filter. They should not be used both in the\ - \ same filter instance, but one alternative should be chosen." - items: - type: "string" - pnfdName: - type: "array" - description: "Match the name of the on-boarded PNFD." - items: - type: "string" - pnfdVersion: - type: "array" - description: "Match the PNFD designer of the on-boarded PNFD. The PNFD version\ - \ is a string of variable length." - items: - type: "string" - pnfdProvider: - type: "array" - description: "Match the provider of the on-boarded PNFD." - items: - type: "string" - pnfdInvariantId: - type: "array" - description: "Match the PNFD in a version independent manner." - items: - type: "string" - pnfdOnboardingState: - type: "array" - items: - $ref: "#/definitions/PnfdOnboardingStateType" - pnfdUsageState: - type: "array" - items: - $ref: "#/definitions/PnfdUsageStateType" - description: "This type represents a subscription filter related to notifications\ - \ about NSD management. It shall comply with the\nprovisions defined in Table\ - \ 5.5.3.2-1 of GS NFV-SOL 005. 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)." - Uri: - type: "object" - description: "String formatted according to IETF RFC 3986 [10]." - Link: - type: "object" - description: "This type represents a link to a resource. It shall comply with\ - \ the provisions defined in Table 4.4.1.3-1 of GS NFV-SOL 005." - SubscriptionAuthentication: - type: "object" - properties: - authType: - type: "string" - description: "Defines the types of Authentication/ Authorization the API consumer\ - \ is willing to accept when receiving a notification.\n\nPermitted values:\n\ - BASIC: In every HTTP request to the notification endpoint, use HTTP Basic\ - \ authentication with the client credentials.\n\nOAUTH2_CLIENT_CREDENTIALS:\ - \ In every HTTP request to the notification endpoint, use an OAuth 2.0 Bearer\ - \ token, obtained using the client credentials grant type.\n\nTLS_CERT:\ - \ Every HTTP request to the notification endpoint is sent over a mutually\ - \ authenticated TLS session. i.e. not only server is authenticated, but\ - \ also the client is authenticated during the TLS tunnel setup." - enum: - - "BASIC" - - "OAUTH2_CLIENT_CREDENTIALS" - - "TLS_CERT" - paramsBasic: - type: "object" - description: "Parameters for authentication/authorization using BASIC. Shall\ - \ be present if authType is \"BASIC\" and the contained information has\ - \ not been provisioned out of band. Shall be absent otherwise." - properties: - userName: - type: "string" - description: "Username to be used in HTTP Basic authentication. Shall\ - \ be present if it has not been provisioned out of band." - password: - type: "string" - description: "Password to be used in HTTP Basic authentication. Shall\ - \ be present if it has not been provisioned out of band." - paramsOauth2ClientCredentials: - type: "object" - description: "Parameters for authentication/authorization using OAUTH2_CLIENT_CREDENTIALS.\ - \ Shall be present if authType is \"OAUTH2_CLIENT_CREDENTIALS\" and the\ - \ contained information has not been provisioned out of band. Shall be absent\ - \ otherwise." - properties: - clientId: - type: "string" - description: "Client identifier to be used in the access token request\ - \ of the OAuth 2.0 client credentials grant type. Shall be present if\ - \ it has not been provisioned out of band." - NsdOperationalStateType: - type: "string" - description: "The enumeration NsdOperationalStateType shall comply with the provisions\ - \ defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational\ - \ state of the resource.\n\nENABLED = The operational state of the resource\ - \ is enabled.\nDISABLED = The operational state of the resource is disabled." - enum: - - "ENABLED" - - "DISABLED" - NsdInfo: - type: "object" - required: - - "_links" - - "id" - - "nsdOnboardingState" - - "nsdOperationalState" - - "nsdUsageState" - properties: - id: - type: "string" - description: "Identifier of the onboarded individual NS descriptor resource.\ - \ This identifier is allocated by the NFVO." - nsdId: - type: "object" - description: "This identifier, which is allocated by the NSD designer, identifies\ - \ the NSD in a globally unique way. It is copied from the NSD content and\ - \ shall be present after the NSD content is on-boarded." - nsdName: - type: "string" - description: "Name of the onboarded NSD. This information is copied from the\ - \ NSD content and shall be present after the NSD content is on-boarded." - nsdVersion: - type: "string" - description: "Version of the on-boarded NSD. The NSD version is a string of\ - \ variable length.This information is copied from the NSD content and shall\ - \ be present after the NSD content is on-boarded." - nsdDesigner: - type: "string" - description: "Designer of the on-boarded NSD. This information \nis copied\ - \ from the NSD content and shall be present after the NSD content is on-boarded." - nsdInvariantId: - type: "string" - description: "This identifier, which is allocated by the NSD designer, identifies\ - \ an NSD in a version independent manner. This information is copied from\ - \ the NSD content and shall be present after the NSD content is on-boarded." - vnfPkgIds: - type: "array" - description: "Identifies the VNF package for the VNFD referenced by the on-boarded\ - \ NS descriptor resource." - items: - type: "string" - pnfdInfoIds: - type: "array" - description: "Identifies the PnfdInfo element for the PNFD referenced by the\ - \ on-boarded NS descriptor resource." - items: - type: "string" - nestedNsdInfoIds: - type: "array" - description: "Identifies the NsdInfo element for the nested NSD referenced\ - \ by the on-boarded NS descriptor resource. At least one of the attributes\ - \ – vnfPkgId and nestedNsdInfoId shall be present, after the NSD is on-boarded." - items: - type: "string" - nsdOnboardingState: - $ref: "#/definitions/NsdOnboardingStateType" - onboardingFailureDetails: - $ref: "#/definitions/ProblemDetails" - nsdOperationalState: - $ref: "#/definitions/NsdOperationalStateType" - nsdUsageState: - $ref: "#/definitions/NsdUsageStateType" - userDefinedData: - $ref: "#/definitions/KeyValuePairs" - _links: - type: "object" - description: "Links to resources related to this resource." - properties: - self: - $ref: "#/definitions/Link" - nsd_content: - $ref: "#/definitions/Link" - description: "This type represents a response for the query NSD operation. It\ - \ shall comply with the provisions defined in\nTable 5.5.2.2-1 of GS NFV-SOL\ - \ 005." - NsdOnboardingStateType: - type: "string" - description: "The enumeration NsdOnboardingStateType shall comply with the provisions\ - \ defined in Table 5.5.4.5-1 of GS NFV-SOL 005. It indicates the onboarding\ - \ state of the NSD.\n\nCREATED = The NSD information object is created. UPLOADING\ - \ = The associated NSD content is being uploaded. PROCESSING = The associated\ - \ NSD content is being processed, e.g. validation. ONBOARDED = The associated\ - \ NSD content is on-boarded." - enum: - - "CREATED" - - "UPLOADING" - - "PROCESSING" - - "ONBOARDED" - ProblemDetails: - type: "object" - required: - - "detail" - - "status" - properties: - type: - $ref: "#/definitions/Uri" - title: - type: "string" - description: "A short, human-readable summary of the problem type. It should\ - \ not change from occurrence to occurrence of the problem, except for purposes\ - \ of localization. If type is given and other than \"about:blank\", this\ - \ attribute shall also be provided." - status: - type: "integer" - description: "The HTTP status code for this occurrence of the problem." - detail: - type: "string" - description: "A human-readable explanation specific to this occurrence of\ - \ the problem." - instance: - $ref: "#/definitions/Uri" - description: "The definition of the general \"ProblemDetails\" data structure\ - \ from IETF RFC 7807 [27] is reproduced in\nTable 4.3.5.3-1 of GS NFV-SOL 005.\ - \ Compared to the general framework defined in IETF RFC 7807 [27], the \"status\"\ - \ and \"detail\" attributes are mandated to be included by the present document,\ - \ to ensure that the response contains additional textual information about\ - \ an error. IETF RFC 7807 [27] foresees extensibility of the \"ProblemDetails\"\ - \ type. It is possible that particular APIs in the present document, or particular\ - \ implementations, define extensions to define additional attributes that provide\ - \ more information about the error.\n\nThe description column only provides\ - \ some explanation of the meaning to facilitate understanding of the design.\ - \ For a\nfull description, see IETF RFC 7807 [27]." - NsdUsageStateType: - type: "string" - description: "The enumeration NsdUsageStateType shall comply with the provisions\ - \ defined in Table 5.5.4.4-1 of GS NFV-SOL 005. It indicates the usage state\ - \ of the resource.\n\nIN_USE = The resource is in use.\nNOT_IN_USE = The resource\ - \ is not-in-use." - enum: - - "IN_USE" - - "NOT_IN_USE" - KeyValuePairs: - type: "object" - description: "This type represents a list of key-value pairs. The order of the\ - \ pairs in the list is not significant. In JSON, a set of keyvalue\npairs is\ - \ represented as an object. It shall comply with the provisions defined in clause\ - \ 4 of IETF RFC 7159 [20]." - CreateNsdInfoRequest: - type: "object" - properties: - userDefinedData: - $ref: "#/definitions/KeyValuePairs" - description: "This type creates a completely new NS descriptor resource." - PnfdInfoModifications: - type: "object" - required: - - "userDefinedData" - properties: - userDefinedData: - $ref: "#/definitions/KeyValuePairs" - description: "This type represents attribute modifications for an individual PNF\ - \ descriptor resource based on the \"PnfdInfo\" data type. The attributes of\ - \ \"PnfdInfo\" that can be modified are included in the \"PnfdInfoModifications\"\ - \ data type." - PnfdInfo: - type: "object" - required: - - "_links" - - "id" - - "pnfdOnboardingState" - - "pnfdUsageState" - properties: - id: - type: "string" - description: "Identifier of the onboarded individual PNF descriptor resource.\ - \ This identifier is allocated by the NFVO." - pnfdId: - type: "string" - description: "This identifier, which is managed by the PNFD\ndesigner, identifies\ - \ the PNFD in a globally unique way. It is copied from the PNFD content\ - \ and shall be present after the PNFD content is on-boarded." - pnfdName: - type: "string" - description: "Name of the onboarded PNFD. This information is copied from\ - \ the PNFD content and shall be present after the PNFD content is on-boarded." - pnfdVersion: - type: "string" - description: "Version of the onboarded PNFD. The PNFD version is a string\ - \ of variable length.This information is copied from the PNFD content and\ - \ shall be present after the PNFD content is on-boarded." - pnfdProvider: - type: "string" - description: "Provider of the onboarded PNFD. This information is copied from\ - \ the PNFD content and shall be present after the PNFD content is onboarded." - pnfdInvariantId: - type: "string" - description: "Identifies a PNFD in a version independent manner. This attribute\ - \ is invariant across versions of PNFD." - pnfdOnboardingState: - $ref: "#/definitions/PnfdOnboardingStateType" - onboardingFailureDetails: - $ref: "#/definitions/ProblemDetails" - pnfdUsageState: - $ref: "#/definitions/PnfdUsageStateType" - userDefinedData: - type: "array" - description: "User defined data for the individual PNF descriptor resource.\ - \ This attribute can be modified with the PATCH method." - items: - type: "object" - _links: - required: - - "pnfd_content" - - "self" - type: "object" - description: "Links to resources related to this resource." - properties: - self: - $ref: "#/definitions/Link" - pnfd_content: - $ref: "#/definitions/Link" - description: "This type represents a response for the query PNFD operation." - PnfdOnboardingStateType: - type: "string" - description: "The enumeration PnfdOnboardingStateType shall comply with the provisions\ - \ defined in Table 5.5.4.6-1 of GS-NFV SOL005. It indicates the onboarding state\ - \ of the individual PNF descriptor resource.\n\nCREATED = The PNF descriptor\ - \ resource is created. UPLOADING = The associated PNFD content is being uploaded.\ - \ PROCESSING = The associated PNFD content is being processed, e.g. validation.\ - \ ONBOARDED = The associated PNFD content is on-boarded." - enum: - - "CREATED" - - "UPLOADING" - - "PROCESSING" - - "ONBOARDING" - PnfdUsageStateType: - type: "string" - description: "The enumeration PnfdUsageStateType shall comply with the provisions\ - \ defined in Table 5.5.4.7-1 of GS NFV-SOL005. It indicates the usage state\ - \ of the resource.\n\nIN-USE = The resource is in use.\nNOT_IN_USE = The resource\ - \ is not-in-use." - enum: - - "IN_USE" - - "NOT_IN_USE" - CreatePnfdInfoRequest: - type: "object" - properties: - userDefinedData: - $ref: "#/definitions/KeyValuePairs" - description: "This type creates a new PNF descriptor resource." - NsdmLinks: - type: "object" - required: - - "nsdInfo" - - "subscription" - properties: - nsdInfo: - $ref: "#/definitions/Link" - subscription: - $ref: "#/definitions/Link" - description: "This type represents the links to resources that an NSD management\ - \ notification can contain." - NsdOnboardingNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "nsdId" - - "nsdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"NsdOnboardingNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - nsdInfoId: - type: "string" - description: "Identifier of the NSD information object. This identifier is\ - \ allocated by the NFVO." - nsdId: - type: "string" - description: "This identifier, which is managed by the service\nprovider,\ - \ identifies the NSD in a globally unique way. It is copied from the on-boarded\ - \ NSD." - _links: - $ref: "#/definitions/NsdmLinks" - description: "This type represents an NSD management notification, which informs\ - \ the receiver of the successful on-boarding of an NSD. It shall comply with\ - \ the provisions defined in Table 5.5.2.9-1 of GS NFV-SOL 005. The support of\ - \ this notification is mandatory. The notification shall be triggered by the\ - \ NFVO when the \"nsdOnboardingState\" attribute of a new NSD has changed to\ - \ \"ONBOARDED\"." - NsdOnboardingFailureNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "nsdInfoId" - - "onboardingFailureDetails" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"NsdOnboardingFailureNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - nsdInfoId: - type: "string" - description: "Identifier of the NSD information object. This identifier is\ - \ allocated by the NFVO." - nsdId: - type: "string" - description: "This identifier, which is managed by the service provider, identifies\ - \ the NSD in a globally unique way." - onboardingFailureDetails: - $ref: "#/definitions/ProblemDetails" - _links: - $ref: "#/definitions/NsdmLinks" - description: "This type represents an NSD management notification, which informs\ - \ the receiver of the failure of on-boarding an NSD. It shall comply with the\ - \ provisions defined in Table 5.5.2.10-1. The support of this notification is\ - \ mandatory. The notification shall be triggered by the NFVO when the on-boarding\ - \ of an NSD has failed." - NsdChangeNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "nsdId" - - "nsdInfoId" - - "nsdOperationalState" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"NsdChangeNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - nsdInfoId: - type: "string" - description: "Identifier of the NSD information object. This identifier is\ - \ allocated by the NFVO." - nsdId: - type: "string" - description: "This identifier, which is managed by the service provider, identifies\ - \ the NSD in a globally unique way. It is copied from the on-boarded NSD." - nsdOperationalState: - $ref: "#/definitions/NsdOperationalStateType" - _links: - $ref: "#/definitions/NsdmLinks" - description: "This type represents an NSD management notification, which informs\ - \ the receiver of a change of the \"nsdOperationalState\" attribute of an on-boarded\ - \ NSD. Changes in the value of the \"nsdUsageState\" and \"nsdOnboardingState\"\ - \ attributes are not reported. The notification shall comply with the provisions\ - \ defined in Table 5.5.2.11-1 of GS NFV-SOL 005. The support of this notification\ - \ is mandatory. The notification shall be triggered by the NFVO when the value\ - \ of the \"nsdOperationalState\" attribute has changed, and the \"nsdOperationalState\"\ - \ attribute has the value \"ONBOARDED\"." - NsdDeletionNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "nsdId" - - "nsdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"NsdDeletionNotification \" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - nsdInfoId: - type: "string" - description: "Identifier of the NSD information object. This identifier is\ - \ allocated by the NFVO." - nsdId: - type: "string" - description: "This identifier, which is managed by the service provider, identifies\ - \ the NSD in a globally unique way. It is copied from the on-boarded NSD." - _links: - $ref: "#/definitions/NsdmLinks" - description: "This type represents an NSD management notification, which informs\ - \ the receiver of the deletion of an on-boarded NSD. The notification shall\ - \ comply with the provisions defined in Table 5.5.2.12-1. The support of this\ - \ notification is mandatory. The notification shall be triggered by the NFVO\ - \ when it has deleted an on-boarded NSD." - PnfdmLinks: - type: "object" - required: - - "pnfdInfo" - - "subscription" - properties: - pnfdInfo: - $ref: "#/definitions/Link" - subscription: - $ref: "#/definitions/Link" - description: "This type represents the links to resources that a PNFD management\ - \ notification can contain." - PnfdOnboardingNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "pnfdId" - - "pnfdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"PnfdOnboardingNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - pnfdInfoId: - type: "string" - description: "Identifier of the PNFD information object. This identifier is\ - \ allocated by the NFVO." - pnfdId: - type: "string" - description: "This identifier, which is managed by the service\nprovider,\ - \ identifies the PNFD in a globally unique way. It is copied from the on-boarded\ - \ PNFD." - _links: - $ref: "#/definitions/PnfdmLinks" - description: "This type represents a PNFD management notification, which informs\ - \ the receiver of the successful on-boarding of a\nPNFD. It shall comply with\ - \ the provisions defined in Table 5.5.2.13-1. The support of this notification\ - \ is mandatory. The notification is triggered when a new PNFD is on-boarded." - PnfdOnboardingFailureNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "onboardingFailureDetails" - - "pnfdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"PnfdOnboardingFailureNotification\" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of the subscription that this notification relates\ - \ to." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - pnfdInfoId: - type: "string" - description: "Identifier of the PNFD information object. This identifier is\ - \ allocated by the NFVO." - pnfdId: - type: "string" - description: "This identifier, which is managed by the service\nprovider,\ - \ identifies the PNFD in a globally unique way." - onboardingFailureDetails: - $ref: "#/definitions/ProblemDetails" - _links: - $ref: "#/definitions/PnfdmLinks" - description: "This type represents a PNFD management notification, which informs\ - \ the receiver of the failure of on-boarding a\n PNFD. It shall comply with\ - \ the provisions defined in Table 5.5.2.14-1 of GS NFV-SOL 005. The support\ - \ of this notification is mandatory. The notification is triggered when the\ - \ on-boarding of a PNFD fails." - PnfdDeletionNotification: - type: "object" - required: - - "_links" - - "id" - - "notificationType" - - "pnfdId" - - "pnfdInfoId" - - "subscriptionId" - - "timeStamp" - properties: - id: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - notificationType: - type: "string" - description: "Discriminator for the different notification types. Shall be\ - \ set to \"PnfdDeletionNotification \" for this notification type." - subscriptionId: - type: "string" - description: "Identifier of this notification. If a notification is sent multiple\ - \ times due to multiple subscriptions, the \"id\" attribute of all these\ - \ notifications shall have the same value." - timeStamp: - type: "string" - format: "date-time" - description: "Date-time of the generation of the notification." - pnfdInfoId: - type: "string" - description: "Identifier of the PNFD information object. This identifier is\ - \ allocated by the NFVO." - pnfdId: - type: "string" - description: "This identifier, which is managed by the service provider, identifies\ - \ the PNFD in a globally unique way. It is copied from the on-boarded PNFD." - _links: - $ref: "#/definitions/PnfdmLinks" - description: "This type represents a PNFD management notification, which informs\ - \ the receiver of the deletion of an on-boarded PNFD. The notification shall\ - \ comply with the provisions defined in Table 5.5.2.15-1. The support of this\ - \ notification is mandatory. The notification is triggered when an on-boarded\ - \ PNFD is deleted." + type: "string" \ No newline at end of file diff --git a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml new file mode 100644 index 0000000..98911e4 --- /dev/null +++ b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml @@ -0,0 +1,777 @@ + definitions: + NsdInfoModifications: + type: "object" + description: > + This type represents attribute modifications for an individual NS + descriptor resource based on the NsdInfo data type. The attributes of + NsdInfo that can be modified are included in the NsdInfoModifications + data type.NOTE: At least one of the attributes - nsdOperationalState and + userDefinedData - shall be present. + properties: + nsdOperationalState: + $ref: "#/definitions/NsdOperationalStateType" + userDefinedData: + description: > + Modifications of the userDefinedData attribute in NsdInfo + data type. See note. If present, these modifications shall be applied + according to the rules of JSON Merge PATCH (see IETF RFC 7396 [25]). + NOTE- At least one of the attributes - nsdOperationalState and userDefinedData - shall be present. + type: "array" + items: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + nsdOperationalState: + description: > + "New value of the "nsdOperationalState" attribute in "NsdInfo" + data type. See note.Permitted values: + ENABLED, + DISABLED" + type: "array" + items: + $ref: "#/definitions/NsdInfoModifications" + + NsdmSubscription: + type: "object" + required: + - "id" + - "callbackUri" + - "_links" + properties: + id: + $ref: "#/definitions/Identifier" + filter: + $ref: "#/definitions/NsdmNotificationsFilter" + callbackUri: + $ref: "#/definitions/Uri" + _links: + type: "object" + description: > + "Links to resources related to this resource." + properties: + self: + $ref: "#/definitions/Link" + description: > + "This type represents a subscription related to notifications about + NSD management." + NsdmSubscriptionRequest: + type: "object" + required: + - "callbackUri" + properties: + filter: + $ref: "#/definitions/NsdmNotificationsFilter" + callbackUri: + type: "string" + description: > + "The URI of the endpoint to send the notification to." + authentication: + $ref: "#/definitions/SubscriptionAuthentication" + description: > + "This type represents a subscription request related to notifications + about NSD management." + Identifier: + type: "object" + NsdmNotificationsFilter: + type: "object" + description: > + "This type represents a subscription filter related to notifications + about NSD management. It shall comply with the provisions defined in Table + 5.5.3.2-1 of GS NFV-SOL 005. 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)." + properties: + notificationTypes: + description: > + "Match particular notification types. Permitted values: NsdOnBoardingNotification, + NsdOnboardingFailureNotification, NsdChangeNotification, NsdDeletionNotification + PnfdOnBoardingNotification, PnfdOnBoardingFailureNotification, PnfdDeletionNotification. + The permitted values of the "notificationTypes" ] attribute are spelled + exactly as the names of the notification types to facilitate automated + code generation systems." + type: array + items: + type: string + enum: + - "NsdOnBoardingNotification" + - "NsdOnboardingFailureNotification" + - "NsdChangeNotification" + - "NsdDeletionNotification" + - "PnfdOnBoardingNotification" + - "PnfdOnBoardingFailureNotification" + - "PnfdDeletionNotification" + nsdInfoId: + type: array + items: + $ref: "#/definitions/Identifier" + nsdId: + type: array + items: + $ref: "#/definitions/Identifier" + nsdName: + description: > + "Match the name of the on boarded NSD." + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + nsdVersion: + type: array + items: + $ref: "#/definitions/Version" + nsdDesigner: + description: > + "Match the NSD designer of the on-boarded NSD." + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + nsdInvariantId: + type: array + items: + $ref: "#/definitions/Identifier" + vnfPkgIds: + type: array + items: + $ref: "#/definitions/Identifier" + pnfdInfoIds: + type: array + items: + $ref: "#/definitions/Identifier" + nestedNsdInfoIds: + type: array + items: + $ref: "#/definitions/Identifier" + nsdOnboardingState: + type: array + items: + $ref: "#/definitions/NsdOnboardingStateType" + nsdOperationalState: + type: array + items: + $ref: "#/definitions/NsdOperationalStateType" + nsdUsageState: + type: array + items: + $ref: "#/definitions/NsdUsageStateType" + pnfdId: + type: array + items: + $ref: "#/definitions/Identifier" + pnfdName: + description: > + "Match the name of the on-boarded PNFD." + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + pnfdVersion: + type: array + items: + $ref: "#/definitions/Version" + pnfdProvider: + description: > + "Match the provider of the on-boarded PNFD." + type: array + items: + $ref: "SOL005_def.yaml#/definitions/String" + pnfdInvariantId: + type: array + items: + $ref: "#/definitions/Identifier" + pnfdOnboardingState: + type: array + items: + $ref: "#/definitions/PnfdOnboardingStateType" + pnfdUsageState: + type: array + items: + $ref: "#/definitions/PnfdUsageStateType" + Uri: + type: "object" + Link: + type: "object" + SubscriptionAuthentication: + description: > + The procedure defined in clause 4.5.2 allows an API consumer to + obtain authorization to perform API requests towards + the API producer, including subscription requests. + For sending the actual notifications matching a subscription, the API + producer needs to obtain separate authorization to actually send the notification to the API consumer. + If an API consumer requires the API producer to authorize for sending notifications to that API consumer, it shall + include in the subscription request a data structure that defines the authorization requirements, as defined in + Table 4.5.3.4-1. + type: "object" + required: + - "authType" + properties: + authType: + description: > + Defines the types of Authentication + Authorization the API consumer is willing to + accept when receiving a notification. + + Permitted values: + + BASIC: In every HTTP request to the + notification endpoint, use HTTP Basic + authentication with the client credentials. + + OAUTH2_CLIENT_CREDENTIALS: In every + HTTP request to the notification endpoint, use + an OAuth 2.0 Bearer token, obtained using the + client credentials grant type. + + TLS_CERT: Every HTTP request to the + notification endpoint is sent over a mutually + authenticated TLS session. i.e. not only server + is authenticated, but also the client is + authenticated during the TLS tunnel setup + + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + NsdOperationalStateType: + type: "string" + description: > + "The enumeration NsdOperationalStateType shall comply with the provisions + defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational + state of the resource. + ENABLED = The operational state of the resource is enabled. + DISABLED = The operational state of the resource is disabled." + enum: + - "ENABLED" + - "DISABLED" + NsdInfo: + type: "object" + required: + - "id" + - "nsdOnboardingState" + - "nsdOperationalState" + - "nsdUsageState" + - "_links" + properties: + id: + description: > + Identifier of the on boarded individual NS descriptor + resource. This identifier is allocated by the NFVO. + $ref: "#/definitions/Identifier" + nsdId: + description: > + This identifier, which is allocated by the NSD + designer, identifies the NSD in a globally unique + way. It is copied from the NSD content and shall be + present after the NSD content is on-boarded. + $ref: "#/definitions/Identifier" + nsdName: + type: "string" + description: > + "Name of the on boarded NSD. This information is copied from the + NSD content and shall be present after the NSD content is on-boarded." + nsdVersion: + description: > + Version of the on-boarded NSD. This information is + copied from the NSD content and shall be present + after the NSD content is on-boarded. + $ref: "#/definitions/Version" + nsdDesigner: + type: "string" + description: > + "Designer of the on-boarded NSD. This information is copied + from the NSD content and shall be present after the NSD content is on-boarded." + nsdInvariantId: + description: > + This identifier, which is allocated by the NSD + designer, identifies an NSD in a version independent + manner. This information is copied from the NSD + content and shall be present after the NSD content is + on-boarded. + $ref: "#/definitions/Identifier" + vnfPkgIds: + description: > + Identifies the VNF package for the VNFD referenced + by the on-boarded NS descriptor resource. See + note 1. + type: array + items: + $ref: "#/definitions/Identifier" + pnfdInfoIds: + description: > + Identifies the PnfdInfo element for the PNFD + referenced by the on-boarded NS descriptor + resource. + type: array + items: + $ref: "#/definitions/Identifier" + nestedNsdInfoIds: + description: > + Identifies the NsdInfo element for the nested NSD + referenced by the on-boarded NS descriptor + resource. + type: array + items: + $ref: "#/definitions/Identifier" + nsdOnboardingState: + description: > + On boarding state of the individual NS descriptor resource. + $ref: "#/definitions/NsdOnboardingStateType" + onboardingFailureDetails: + description: > + Failure details of current on boarding procedure. See + clause 4.3.5.3 for the details of "ProblemDetails" + structure. + It shall be present when the "nsdOnboardingState" + attribute is CREATED and the uploading or + processing fails in NFVO. + $ref: "#/definitions/ProblemDetails" + nsdOperationalState: + description: > + Operational state of the individual NS descriptor + resource. This attribute can be modified with the + PATCH method. + $ref: "#/definitions/NsdOperationalStateType" + nsdUsageState: + description: > + Usage state of the individual NS descriptor resource. + $ref: "#/definitions/NsdUsageStateType" + userDefinedData: + description: > + User defined data for the individual NS descriptor + resource. This attribute can be modified with the + PATCH method. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + _links: + type: "object" + description: > + "Links to resources related to this resource." + properties: + self: + description: > + "URI of this resource." + $ref: "#/definitions/Link" + nsd_content: + description: > + "Link to the NSD content resource" + $ref: "#/definitions/Link" + description: > + "This type represents a response for the query NSD operation." + Version: + type: "object" + NsdOnboardingStateType: + type: "string" + description: > + "The enumeration NsdOnboardingStateType shall comply with the provisions + defined in Table 5.5.4.5-1 of GS NFV-SOL 005. It indicates the on-boarding + state of the NSD.CREATED = The NSD information object is created. UPLOADING + = The associated NSD content is being uploaded. PROCESSING = The associated + NSD content is being processed, e.g. validation. ONBOARDED = The associated + NSD content is on-boarded." + enum: + - "CREATED" + - "UPLOADING" + - "PROCESSING" + - "ONBOARDED" + ProblemDetails: + type: "object" + NsdUsageStateType: + type: "string" + description: > + "The enumeration NsdUsageStateType shall comply with the provisions + defined in Table 5.5.4.4-1 of GS NFV-SOL 005. It indicates the usage state + of the resource.IN_USE = The resource is in use.NOT_IN_USE = The resource + is not-in-use." + enum: + - "IN_USE" + - "NOT_IN_USE" + CreateNsdInfoRequest: + type: "object" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + "This type creates a completely new NS descriptor resource." + PnfdInfoModifications: + type: "object" + required: + - "userDefinedData" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + "This type represents attribute modifications for an individual PNF + descriptor resource based on the "PnfdInfo" data type. The attributes of + "PnfdInfo" that can be modified are included in the "PnfdInfoModifications" + data type." + PnfdInfo: + type: "object" + required: + - "_links" + - "id" + - "pnfdOnboardingState" + - "pnfdUsageState" + properties: + id: + $ref: "#/definitions/Identifier" + pnfdId: + $ref: "#/definitions/Identifier" + pnfdName: + type: "string" + description: > + "Name of the onboarded PNFD. This information is copied from + the PNFD content and shall be present after the PNFD content is on-boarded." + pnfdVersion: + $ref: "#/definitions/Version" + pnfdProvider: + type: "string" + description: > + "Provider of the onboarded PNFD. This information is copied from + the PNFD content and shall be present after the PNFD content is onboarded." + pnfdInvariantId: + $ref: "#/definitions/Identifier" + pnfdOnboardingState: + $ref: "#/definitions/PnfdOnboardingStateType" + onboardingFailureDetails: + $ref: "#/definitions/ProblemDetails" + pnfdUsageState: + $ref: "#/definitions/PnfdUsageStateType" + userDefinedData: + type: "object" + description: > + "User defined data for the individual PNF descriptor resource. + This attribute can be modified with the PATCH method." + _links: + required: + - "pnfd_content" + - "self" + type: "object" + description: > + "Links to resources related to this resource." + properties: + self: + $ref: "#/definitions/Link" + pnfd_content: + $ref: "#/definitions/Link" + description: > + "This type represents a response for the query PNFD operation." + PnfdOnboardingStateType: + type: "string" + description: > + "The enumeration PnfdOnboardingStateType shall comply with the provisions + defined in Table 5.5.4.6-1 of GS-NFV SOL005. It indicates the onboarding state + of the individual PNF descriptor resource.CREATED = The PNF descriptor + resource is created. UPLOADING = The associated PNFD content is being uploaded. + PROCESSING = The associated PNFD content is being processed, e.g. validation. + ONBOARDED = The associated PNFD content is on-boarded." + enum: + - "CREATED" + - "UPLOADING" + - "PROCESSING" + - "ONBOARDING" + PnfdUsageStateType: + type: "string" + description: > + "The enumeration PnfdUsageStateType shall comply with the provisions + defined in Table 5.5.4.7-1 of GS NFV-SOL005. It indicates the usage state + of the resource.IN-USE = The resource is in use.NOT_IN_USE = The resource + is not-in-use." + enum: + - "IN_USE" + - "NOT_IN_USE" + CreatePnfdInfoRequest: + type: "object" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + "This type creates a new PNF descriptor resource." + NsdmLinks: + type: "object" + required: + - "nsdInfo" + - "subscription" + properties: + nsdInfo: + $ref: "#/definitions/Link" + subscription: + $ref: "#/definitions/Link" + description: > + "This type represents the links to resources that an NSD management + notification can contain." + NsdOnboardingNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "nsdId" + - "nsdInfoId" + - "timeStamp" + properties: + id: + $ref: "#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "NsdOnboardingNotification" for this notification type." + subscriptionId: + $ref: "#/definitions/Identifier" + timeStamp: + type: "string" + format: "date-time" + description: > + "Date-time of the generation of the notification." + nsdInfoId: + $ref: "#/definitions/Identifier" + nsdId: + $ref: "#/definitions/Identifier" + _links: + $ref: "#/definitions/NsdmLinks" + description: > + "This type represents an NSD management notification, which informs + the receiver of the successful on-boarding of an NSD. It shall comply with + the provisions defined in Table 5.5.2.9-1. The support of this notification + is mandatory. The notification shall be triggered by the NFVO when the " + nsdOnboardingState" attribute of a new NSD has changed to "ONBOARDED"." + NsdOnboardingFailureNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "nsdInfoId" + - "onboardingFailureDetails" + - "timeStamp" + properties: + id: + $ref: "#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "NsdOnboardingFailureNotification" for this notification type." + subscriptionId: + $ref: "#/definitions/Identifier" + timeStamp: + type: "string" + format: "date-time" + description: > + "Date-time of the generation of the notification." + nsdInfoId: + $ref: "#/definitions/Identifier" + nsdId: + $ref: "#/definitions/Identifier" + onboardingFailureDetails: + $ref: "#/definitions/ProblemDetails" + _links: + $ref: "#/definitions/NsdmLinks" + description: > + "This type represents an NSD management notification, which informs + the receiver of the failure of on-boarding an NSD. It shall comply with the + provisions defined in Table 5.5.2.10-1. The support of this notification is + mandatory. The notification shall be triggered by the NFVO when the on-boarding + of an NSD has failed." + NsdChangeNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "nsdId" + - "nsdInfoId" + - "nsdOperationalState" + - "timeStamp" + properties: + id: + $ref: "#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "NsdChangeNotification" for this notification type." + subscriptionId: + $ref: "#/definitions/Identifier" + timeStamp: + type: "string" + format: "date-time" + description: > + "Date-time of the generation of the notification." + nsdInfoId: + $ref: "#/definitions/Identifier" + nsdId: + $ref: "#/definitions/Identifier" + nsdOperationalState: + $ref: "#/definitions/NsdOperationalStateType" + _links: + $ref: "#/definitions/NsdmLinks" + description: > + "This type represents an NSD management notification, which informs + the receiver of a change of the "nsdOperationalState" attribute of an on-boarded + NSD. Changes in the value of the "nsdUsageState" and "nsdOnboardingState" + attributes are not reported. The notification shall comply with the provisions + defined in Table 5.5.2.11-1. The support of this notification is mandatory. + The notification shall be triggered by the NFVO when the value of the "nsdOperationalState" + attribute has changed, and the "nsdOperationalState" attribute has the value + "ONBOARDED"." + NsdDeletionNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "nsdId" + - "nsdInfoId" + - "timeStamp" + properties: + id: + $ref: "#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "NsdDeletionNotification " for this notification type." + subscriptionId: + $ref: "#/definitions/Identifier" + timeStamp: + type: "string" + format: "date-time" + description: > + "Date-time of the generation of the notification." + nsdInfoId: + $ref: "#/definitions/Identifier" + nsdId: + $ref: "#/definitions/Identifier" + _links: + $ref: "#/definitions/NsdmLinks" + description: > + "This type represents an NSD management notification, which informs + the receiver of the deletion of an on-boarded NSD. The notification shall + comply with the provisions defined in Table 5.5.2.12-1. The support of this + notification is mandatory. The notification shall be triggered by the NFVO + when it has deleted an on-boarded NSD." + PnfdmLinks: + type: "object" + required: + - "pnfdInfo" + - "subscription" + properties: + pnfdInfo: + $ref: "#/definitions/Link" + subscription: + $ref: "#/definitions/Link" + description: > + "This type represents the links to resources that a PNFD management + notification can contain." + PnfdOnboardingNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "pnfdId" + - "pnfdInfoId" + - "timeStamp" + properties: + id: + $ref: "#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "PnfdOnboardingNotification" for this notification type." + subscriptionId: + $ref: "#/definitions/Identifier" + timeStamp: + type: "string" + format: "date-time" + description: > + "Date-time of the generation of the notification." + pnfdInfoId: + $ref: "#/definitions/Identifier" + pnfdId: + $ref: "#/definitions/Identifier" + _links: + $ref: "#/definitions/PnfdmLinks" + description: > + "This type represents a PNFD management notification, which informs + the receiver of the successful on-boarding of aPNFD. It shall comply with + the provisions defined in Table 5.5.2.13-1. The support of this notification + is mandatory. The notification is triggered when a new PNFD is on-boarded." + PnfdOnboardingFailureNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "onboardingFailureDetails" + - "pnfdInfoId" + - "timeStamp" + properties: + id: + $ref: "#/definitions/Identifier" + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "PnfdOnboardingFailureNotification" for this notification type." + subscriptionId: + $ref: "#/definitions/Identifier" + timeStamp: + type: "string" + format: "date-time" + description: > + "Date-time of the generation of the notification." + pnfdInfoId: + $ref: "#/definitions/Identifier" + pnfdId: + $ref: "#/definitions/Identifier" + onboardingFailureDetails: + $ref: "#/definitions/ProblemDetails" + _links: + $ref: "#/definitions/PnfdmLinks" + description: > + "This type represents a PNFD management notification, which informs + the receiver of the failure of on-boarding a PNFD. It shall comply with + the provisions defined in Table 5.5.2.14-1. The support of this notification + is mandatory. The notification is triggered when the on-boarding of a PNFD + fails." + PnfdDeletionNotification: + type: "object" + required: + - "_links" + - "id" + - "notificationType" + - "pnfdId" + - "pnfdInfoId" + - "timeStamp" + properties: + id: + type: "string" + description: > + "Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value." + notificationType: + type: "string" + description: > + "Discriminator for the different notification types. Shall be + set to "PnfdDeletionNotification " for this notification type." + subscriptionId: + $ref: "#/definitions/Identifier" + timeStamp: + type: "string" + format: "date-time" + description: > + "Date-time of the generation of the notification." + pnfdInfoId: + $ref: "#/definitions/Identifier" + pnfdId: + $ref: "#/definitions/Identifier" + _links: + $ref: "#/definitions/PnfdmLinks" + description: > + "This type represents a PNFD management notification, which informs + the receiver of the deletion of an on-boarded PNFD. The notification shall + comply with the provisions defined in Table 5.5.2.15-1. The support of this + notification is mandatory. The notification is triggered when an on-boarded + PNFD is deleted." \ No newline at end of file diff --git a/src/SOL005/NSDManagement/definitions/SOL005_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000..8434465 --- /dev/null +++ b/src/SOL005/NSDManagement/definitions/SOL005_def.yaml @@ -0,0 +1,70 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + definitions: + KeyValuePairs: + description: > + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. + In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions + defined in clause 4 of IETF RFC 7159. + type: object + String: + description: > + This type represents stack of string values + type: string + ProblemDetails: + #SOL005 location: 4.3.5.3-1 + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced in this structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - statussss + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI \ No newline at end of file diff --git a/src/SOL005/NSDManagement/responses/NSDescriptorManagement_resp.yaml b/src/SOL005/NSDManagement/responses/NSDescriptorManagement_resp.yaml new file mode 100644 index 0000000..8e24e31 --- /dev/null +++ b/src/SOL005/NSDManagement/responses/NSDescriptorManagement_resp.yaml @@ -0,0 +1,211 @@ + responses: + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. The response body shall be empty. + The HTTP response shall include a "Location" HTTP + header that contains the URI of the newly-created + "NS lifecycle operation occurrence" resource + corresponding to the operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 202-with-Location-empty: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS Descriptor operation occurrence" resource corresponding to the + operation. + The response body shall be empty. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + 409: + description: > + Conflict + + The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact the NS descriptor + resource is in the enabled operational state (i.e. + operationalState = ENABLED) or there are running + NS instances using the concerned individual NS + descriptor resource (i.e. usageState = IN_USE). + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-another-nsd-operation-ongoing: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that another Descriptor operation is + ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-inconsistent-state: + description: > + Conflict + + Another request is in progress that prohibits the fulfilment of + the current request, or the current resource state is inconsistent + with the request. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-INSTANTIATED: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + INSTANTIATED state. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-not-FAILED_TEMP: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is + not in FAILED_TEMP state, or another error handling action is starting, + such as rollback or fail. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-NOT-INSTANTIATED: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + NOT-INSTANTIATED state, or that another lifecycle management operation + is ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSDManagement/responses/SOL005_resp.yaml b/src/SOL005/NSDManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000..f3ddbc0 --- /dev/null +++ b/src/SOL005/NSDManagement/responses/SOL005_resp.yaml @@ -0,0 +1,415 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 202: + description: > + Accepted + + The request was accepted for processing, but processing has not + been completed. The response shall have an empty payload body. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS LCM operation occurrence" resource corresponding to the + operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + 206: + description: > + Partial Content + + On success, if the NFVO supports range requests, a + single consecutive byte range from the content of the + NSD file is returned. + The response body shall contain the requested part of + the NSD file. + The "Content-Range" HTTP header shall be provided + according to IETF RFC 7233 [23]. + The "Content-Type" HTTP header shall be set as + defined above for the "200 OK" response. + headers: + Content-Range: + type: "string" + Content-Type: + type: "string" + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 303: + description: > + See Other + A subscription with the same callbackURI and the same filter already + exists and the policy of the VNFM is to not create redundant + subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-selector: + description: > + Error: Invalid attribute selector. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + 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: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source + of the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also returned if the task is not supported for the NS instance + represented by the parent resource, which means that the task resource + consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists-NSD: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also be returned if the task is not supported for the NS LCM operation + occurrence represented by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS instance represented by the parent + resource, and that the task resource consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported-NSD: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS LCM operation occurrence + represented by the parent resource, and that the task resource + consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the source of the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + 406 Not Acceptable + + If the "Accept" header does not contain at least one + name of a content type for which the NFVO can + provide a representation of the NSD, the NFVO shall + respond with this response code. + The "ProblemDetails" structure may be included with + the "detail" attribute providing more information about + the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 412: + description: > + Precondition Failed + 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: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 416: + description: > + The byte range passed in the "Range" header did not + match any available byte range in the NSD file (e.g. + "access after end of file"). + The response body may contain a ProblemDetails structure. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 422: + description: > + Unprocessable Entity + If the payload body of a request contains syntactically correct + data (e.g. well-formed JSON) but the data cannot be processed + (e.g. because it fails validation against a schema), the API + producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of the + problem. + NOTE 2: This error response code is only applicable for methods + that have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond with this + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index 8d53e2d..c67847c 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -1,5 +1,4 @@ swagger: "2.0" - info: version: "2.4.1" title: DRAFT - SOL005 - NS Fault Management Interface @@ -29,8 +28,648 @@ produces: - "application/json" paths: - /resource: +############################################################################### +# Alarms # +############################################################################### + '/alarms': + #SOL005 location: 8.2-1 + get: + summary: > + Get Alarm List + description: > + Get Alarm List + + The client can use this method to retrieve information about the alarm list. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. + The OSS/BSS may supply filtering parameters. + The following attribute names shall be supported in attribute-based + filtering parameters: + - id + - nsInstanceId + - rootCauseFaultyComponent.faultyNestedNsInstanceId + - rootCauseFaultyComponent.faultyNsVirtualLinkInstanceId + - rootCauseFaultyComponent.faultyVnfInstanceId + - rootCauseFaultyResource.faultyResourceType + - eventType + - perceivedSeverity + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + The request has succeeded. + The response body shall contain the list of related alarms. + schema: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual alarm # +############################################################################### + '/alarms/{alarmId}': + #SOL005 location: 8.2-1 + parameters: + - name: alarmId + description: > + The client can use this method to read an individual alarm. + This method shall follow the provisions specified in the + Tables 8.4.3.3.2-1 and 8.4.3.3.2-2 for URI query parameters, + request and response data structures, and response codes.. + in: path + type: string + required: true get: + summary: > + Get Individual Alarm + description: > + The client can use this method to read an individual alarm. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: Success \ No newline at end of file + description: > + OK + Information about an individual alarm was read successfully. + The response body shall contain a representation of the + individual alarm. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/Alarm" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + patch: + summary: > + Update Alarm. + description: > + Acknowledge Alarm + + This method modifies an individual alarm resource. + parameters: + - name: AlarmModifications + description: The parameter for the alarm modification, as defined in clause 8.5.2.8. + in: body + required: true + schema: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The Content-Type header shall be set to + "application/merge-patch+json" according to + IETF RFC 7396. + in: header + required: true + type: string + enum: ["application/merge-patch+json"] + responses: + 200: + description: > + OK + The request was accepted and completed. + The response body shall contain attribute modifications + for an 'Individual alarm' resource (see clause 8.5.2.4). + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmModifications" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/NSFManagement_resp.yaml#/responses/409-alarm-state-conflict" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################## +#Subscriptions # +############################################################################## + '/subscriptions': + #SOL005 location: 8.2-1 + post: + summary: > + Create new subscription + description: > + Subscribe + + The POST method creates a new subscription. + This method shall follow the provisions specified in the Tables 8.4.4.3.1-1 and 8.4.4.3.1-2 for URI query parameters, + request and response data structures, and response codes. + Creation of two subscription resources with the same callbackURI and the same filter can result in performance + degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a subscription resource if another 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 subscription resource (in which case it shall return a "303 See Other" response code referencing + the existing subscription resource with the same filter and callbackUri).. + parameters: + - name: FmSubscriptionRequest + description: Details of the subscription to be created, as defined in clause 8.5.2.2. + in: body + required: true + schema: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscriptionRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + Created + The subscription was created successfully. + The response body shall contain a representation of the + created subscription resource. + The HTTP response shall include a "Location:" HTTP + header that points to the created subscription resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + Location: + description: > + The resource URI of the created subscription resource. + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" + 303: + $ref: "responses/SOL005_resp.yaml#/responses/303" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: > + Get Subscriptions + description: > + Query Subscription Information + + The client can use this method to retrieve the list of active subscriptions + for alarms related to a NS 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 8.4.4.3.2-1 and 8.4.4.3.2-2 for URI query parameters, + request and response data structures, and response codes. + Table 8.4.4.3.2-1: URI query parameters supported. + + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI + query string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the FmSubscription and in data types + referenced from it shall be supported in attribute-based filtering parameters." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + OK + + The list of subscriptions was queried successfully. + The response body shall contain the representations of + all active subscriptions of the functional block that + invokes the method. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-based-filtering-error" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 412: + $ref: "responses/SOL005_resp.yaml#/responses/412" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #SOL005 location: 8.2-1 + parameters: + - name: subscriptionId + description: > + Identifier of this subscription. + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new subscription resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + in: path + type: string + required: true + get: + summary: > + Get Individual subscription + description: > + Query Subscription Information + + The client can use this method for reading an individual subscription for alarms related to NSs subscribed by the client. + This method shall follow the provisions specified in the Tables 8.4.5.3.2-1 and 8.4.5.3.2-2 for URI query parameters, + request and response data structures, and response codes + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + The operation has completed successfully. + The response body shall contain a representation of the + subscription resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/FmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: > + Terminate a subscription + description: > + Terminate Subscription + + This method terminates an individual subscription. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + No Content + + The subscription resource was 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Notification endpoint # +# "/notification_endpoint" is the # +# is the dummy URI used for testing, in real case endpoint URI has to # +# provided by client. # +############################################################################### + '/notification_endpoint': + #SOL005 location: 8.2-1 + post: + summary: > + Notification endpoint + description: > + The POST method notifies an alarm related to a NS or that the alarm list has been rebuilt. + # Don't know how to pass multiple body parameters. + parameters: + - name: alarmNotification + description: > + Information of a NS alarm. + in: body + required: true + schema: + $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmNotification" + #- name: alarmClearedNotification + # description: > + # Information of the clearance of a NS alarm. + # in: body + # required: true + # schema: + # $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmClearedNotification" + #- name: alarmListRebuiltNotification + # description: > + # Information that the alarm list has been rebuilt by the NFVO. + # in: body + # required: true + # schema: + # $ref: "definitions/SOL005NSFaultManagement_def.yaml#/definitions/AlarmListRebuiltNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + The notification was delivered successfully. + The response body shall be empty. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: Notification endpoint. + description: > + The GET method allows the server to test the notification endpoint that is provided by the client, e.g. during + subscription. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + The notification endpoint was tested successfully. + The response body shall be empty. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml b/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml new file mode 100644 index 0000000..8cfb2da --- /dev/null +++ b/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml @@ -0,0 +1,537 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt +definitions: + Alarm: + description: > + The alarm data type encapsulates information about an alarm. + It shall comply with the provisions defined in Table 8.5.2.4-1 + type: object + required: + - id + - managedObjectId + - rootCauseFaultyComponent + - alarmRaisedTime + - ackState + - perceivedSeverity + - eventTime + - eventType + - probableCause + - isRootCause + - _links + properties: + id: + description: > + Identifier of this Alarm information element. + $ref: "SOL005_def.yaml#/definitions/Identifier" + managedObjectId: + description: > + Identifier of the affected NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + rootCauseFaultyComponent: + description: > + The NS components that are causing the NS fault. + $ref: "#/definitions/FaultyComponentInfo" + rootCauseFaultyResource: + description: > + The virtualised resources that are causing the NS + fault. It shall be present when the faulty component + is "NS Virtual Link" or "VNF". + $ref: "#/definitions/FaultyResourceInfo" + alarmRaisedTime: + description: > + Alarm identifier. + $ref: "SOL005_def.yaml#/definitions/DateTime" + alarmChangedTime: + description: > + The time stamp indicating when the alarm was cleared. + $ref: "SOL005_def.yaml#/definitions/DateTime" + alarmClearedTime: + description: > + Links to resources related to this notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + ackState: + description: > + Acknowledgement state of the alarm. + Permitted values: + UNACKNOWLEDGED + ACKNOWLEDGED + type: string + enum: + - UNACKNOWLEDGED + - ACKNOWLEDGED + perceivedSeverity: + description: > + Perceived severity of the managed object failure. + $ref: "#/definitions/PerceivedSeverityType" + eventTime: + description: > + Time stamp indicating when the fault was observed. + $ref: "SOL005_def.yaml#/definitions/DateTime" + eventType: + description: > + Type of event. + $ref: "#/definitions/EventType" + faultType: + description: > + Additional information to clarify the type of the fault. + type: string + probableCause: + description: > + Information about the probable cause of the fault. + type: string + isRootCause: + description: > + Attribute indicating if this fault is the root for other + correlated alarms. If TRUE, then the alarms listed in + the attribute CorrelatedAlarmId are caused by this fault. + type: boolean + correlatedAlarmIds: + description: > + List of identifiers of other alarms correlated to this fault. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + faultDetails: + description: > + Provides additional information about the fault.. + type: string + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + objectInstance: + description: > + Link to the resource representing the NS instance to + which the notified alarm is correlated. Shall be + present if the NS instance information is accessible + as a resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + AlarmClearedNotification: + description: > + This type represents an alarm cleared notification about VNF faults. + The notification shall be triggered by the VNFM when an alarm has been + cleared. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - alarmId + - alarmClearedTime + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "AlarmClearedNotification" for this notification type. + type: string + enum: + - AlarmClearedNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + alarmId: + description: > + Alarm identifier. + $ref: "SOL005_def.yaml#/definitions/Identifier" + alarmClearedTime: + description: > + The time stamp indicating when the alarm was cleared. + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - alarm + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + alarm: + description: > + Link to the resource that represents the related alarm. + $ref: "SOL005_def.yaml#/definitions/Link" + + AlarmListRebuiltNotification: + description: > + This type represents a notification that the alarm list has been + rebuilt, e.g. if the VNFM detects its storage holding the alarm + list is corrupted. + The notification shall be triggered by the VNFM when the alarm list has + been rebuilt. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent multiple + times due to multiple subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "AlarmListRebuiltNotification" for this notification type. + type: string + enum: + - AlarmListRebuiltNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - alarms + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + alarms: + description: > + Link to the alarm list, i.e. the "Alarms" resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + AlarmModifications: + description: > + This type represents attribute modifications for an "Individual alarm" resource, i.e. modifications to a resource + representation based on the "Alarm" data type. The attributes of "Alarm" that can be modified according to the + provisions in clause 8.5.2.4 are included in the "AlarmModifications" data type. + The "AlarmModifications" data type shall comply with the provisions defined in Table 8.5.2.8-1. + type: object + required: + - ackState + properties: + ackState: + description: > + New value of the "ackState" attribute in "Alarm". + Permitted values: + * ACKNOWLEDGED + type: string + enum: + - ACKNOWLEDGED + EventType: + description: > + The enumeration EventType represents those types of events that trigger + an alarm. + * COMMUNICATIONS_ALARM: An alarm of this type is associated with the + procedure and/or process required conveying information from one point + to another (ITU-T Recommendation X.733). + * PROCESSING_ERROR_ALARM: An alarm of this type is associated with a + software or processing fault (ITU-T Recommendation X.733). + * ENVIRONMENTAL_ALARM: An alarm of this type is associated with a + condition related to an enclosure in which the equipment resides + (ITU-T Recommendation X.733). + * QOS_ALARM: An alarm of this type is associated with degradation in the + quality of a service (ITU-T Recommendation X.733). + * EQUIPMENT_ALARM: An alarm of this type is associated with an equipment + fault (ITU-T Recommendation X.733). + type: string + enum: + - COMMUNICATIONS_ALARM + - PROCESSING_ERROR_ALARM + - ENVIRONMENTAL_ALARM + - QOS_ALARM + - EQUIPMENT_ALARM + + FaultyResourceInfo: + description: > + This type represents the faulty virtual resources that have a negative impact on a NS. + type: object + required: + - faultyResource + - faultyResourceType + properties: + faultyResource: + description: > + Information that identifies the faulty resource instance and + its managing entity. + $ref: "SOL005_def.yaml#/definitions/ResourceHandle" + faultyResourceType: + description: > + Type of the faulty resource. + $ref: "#/definitions/FaultyResourceType" + + FaultyResourceType: + description: > + The enumeration FaultyResourceType represents those types of faulty + resource. + type: string + enum: + - COMPUTE + - STORAGE + - NETWORK + + FmNotificationsFilter: + description: > + This type represents a subscription filter related to notifications about NS faults. + It shall comply with the provisions + defined in Table 8.5.3.2-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).. + type: object + properties: + nsInstanceSubscriptionFilter: + description: > + Filter criteria to select NS instances about which to notify. + $ref: "SOL005_def.yaml#/definitions/NsInstanceSubscriptionFilter" + notificationTypes: + description: > + Match particular notification types. + Permitted values: + AlarmNotification + AlarmClearedNotification + AlarmListRebuiltNotification. + type: array + items: + type: string + enum: + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + faultyResourceTypes: + description: > + Match alarms related to NSs with a faulty resource type listed in this attribute. + type: array + items: + $ref: "#/definitions/FaultyResourceType" + perceivedSeverities: + description: > + Match VNF alarms with a perceived severity listed in this attribute. + type: array + items: + $ref: "#/definitions/PerceivedSeverityType" + eventTypes: + description: > + Match VNF alarms with an event type listed in this attribute. + type: array + items: + $ref: "#/definitions/EventType" + probableCauses: + description: > + Match VNF alarms with a probable cause listed in this attribute. + type: array + items: + type: string + + FmSubscription: + description: > + This type represents a subscription related to notifications about VNF + faults. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier of this subscription resource. + $ref: "SOL005_def.yaml#/definitions/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: "#/definitions/FmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + type: string + format: url + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + FmSubscriptionRequest: + description: > + This type represents a subscription request related to notifications + about VNF faults. + type: object + required: + - callbackUri + 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: "#/definitions/FmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + type: string + format: url + authentication: + description: > + Authentication parameters to configure the use of Authorization when + sending notifications corresponding to this subscription. + This attribute shall only be present if the subscriber requires + authorization of notifications. + $ref: "SOL005_def.yaml#/definitions/SubscriptionAuthentication" + + PerceivedSeverityType: + description: > + Indicates the relative level of urgency for operator attention. + * CRITICAL: The Critical severity level indicates that a service + affecting condition has occurred and an immediate corrective action + is required. Such a severity can be reported, for example, when a + managed object becomes totally out of service and its capability needs + to be restored (ITU-T Recommendation X.733). + * MAJOR: The Major severity level indicates that a service affecting + condition has developed and an urgent corrective action is required. + Such a severity can be reported, for example, when there is a severe + degradation in the capability of the managed object and its full + capability needs to be restored (ITU-T Recommendation X.733). + * MINOR: The Minor severity level indicates the existence of a + non-service affecting fault condition and that corrective action + should be taken in order to prevent a more serious (for example, + service affecting) fault. Such a severity can be reported, for + example, when the detected alarm condition is not currently degrading + the capacity of the managed object (ITU-T Recommendation X.733). + * WARNING: The Warning severity level indicates the detection of a + potential or impending service affecting fault, before any significant + effects have been felt. Action should be taken to further diagnose (if + necessary) and correct the problem in order to prevent it from + becoming a more serious service affecting fault (ITU-T Recommendation + X.733). + * INDETERMINATE: The Indeterminate severity level indicates that the + severity level cannot be determined (ITU-T Recommendation X.733). + * CLEARED: The Cleared severity level indicates the clearing of one or + more previously reported alarms. This alarm clears all alarms for this + managed object that have the same Alarm type, Probable cause and + Specific problems (if given) (ITU-T Recommendation X.733). + type: string + enum: + - CRITICAL + - MAJOR + - MINOR + - WARNING + - INDETERMINATE + - CLEARED + + FaultyComponentInfo: + description: > + This type represents the faulty component that has a negative impact on an NS. + It shall comply with the provisions + defined in Table 8.5.3.4-1. + type: object + properties: + faultyNestedNsInstanceId: + description: > + Identifier of the faulty nested NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + faultyResourceType: + description: > + Identifier of the faulty NS virtual link instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + faultyNsVirtualLinkInstanceId: + description: > + Identifier of the faulty VNF instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + + AlarmNotification: + description: > + This type represents an alarm notification about NS faults. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - alarm + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is sent + multiple times due to multiple subscriptions, the "id" + attribute of all these notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "AlarmNotification" for this notification type. + type: string + enum: + - AlarmClearedNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + alarm: + description: > + Information about an alarm including AlarmId, affected + NS identifier, and FaultDetails. + $ref: "#/definitions/Alarm" + alarmClearedTime: + description: > + The time stamp indicating when the alarm was cleared. + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - alarm + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + alarm: + description: > + Link to the resource that represents the related alarm. + $ref: "SOL005_def.yaml#/definitions/Link" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/definitions/SOL005_def.yaml b/src/SOL005/NSFaultManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000..01d0557 --- /dev/null +++ b/src/SOL005/NSFaultManagement/definitions/SOL005_def.yaml @@ -0,0 +1,264 @@ + definitions: + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: "date-time" + ProblemDetails: + #SOL005 location: 4.3.5.3-1 + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced in this structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - statussss + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + ResourceHandle: + required: + - vimId + - resourceId + type: object + description: > + This type represents the information that allows addressing a virtualised resource that is used by a VNF instance or by + an NS instance. Information about the resource is available from the VIM. The ResourceHandle type shall comply with + the provisions defined in Table 6.5.3.54-1.. + properties: + vimConnectionId: + description: > + Identifier of the VIM connection to manage the resource. This + attribute shall only be supported and present if VNF-related resource + management in direct mode is applicable. The applicable + "VimConnectionInfo" structure, which is referenced by + vimConnectionId, can be obtained from the "vimConnectionInfo" + attribute of the "VnfInstance" structure. + $ref: "#/definitions/Identifier" + resourceProviderId: + description: > + Identifier of the entity responsible for the management of + the resource. This attribute shall only be supported and present when + VNF-related resource management in indirect mode is + applicable. The identification scheme is outside the + scope of the present document. + $ref: "#/definitions/Identifier" + resourceId: + description: > + Identifier of the resource in the scope of the VIM or the + resource provider. + $ref: "#/definitions/IdentifierInVim" + vimLevelResourceType: + description: > + Type of the resource in the scope of the VIM or the + resource provider. + type: string + + IdentifierInVim: + description: > + An identifier maintained by the VIM or other resource provider. It is + expected to be unique within the VIM instance. + type: string + + Link: + description: > + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: > + URI of the referenced resource. + type: string + format: url + + SubscriptionAuthentication: + description: > + Authentication parameters to conFigure the use of + Authorization when sendingnotifications corresponding to + this subscription, as defined in clause 4.5.3.4. + This attribute shall only be present if the subscriber + requires authorization of notifications. + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. + Permitted values: + * BASIC: In every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. + Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the + contained information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + Shall be present if it has not been provisioned out of band. + $ref: "#/definitions/Uri" + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + NsInstanceSubscriptionFilter: + required: + - nsdIds + - vnfdIds + - pnfdIds + - nsInstanceIds + type: object + description: > + This type represents subscription filter criteria to match NS instances. + It shall comply with the provisions defined in Table 4.4.1.5-1. + properties: + nsdIds: + description: > + If present, match NS instances that were created + based on a NSD identified by one of the nsdId + values listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + vnfdIds: + description: > + If present, match NS instances that contain VNF + instances that were created based on a VNFD + identified by one of the vnfdId values listed in + this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + pnfdIds: + description: > + If present, match NS instances that contain + PNFs that are represented by a PNFD identified + by one of the pnfdId values listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + nsInstanceIds: + description: > + If present, match NS instances with an instance + dentifier listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + nsInstanceNames: + description: > + If present, match NS instances with a NS + Instance Name listed in this attribute. + type: string \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/responses/NSFManagement_resp.yaml b/src/SOL005/NSFaultManagement/responses/NSFManagement_resp.yaml new file mode 100644 index 0000000..5bb238a --- /dev/null +++ b/src/SOL005/NSFaultManagement/responses/NSFManagement_resp.yaml @@ -0,0 +1,29 @@ +responses: + 409-alarm-state-conflict: + description: > + Conflict + + Error: The operation cannot be executed currently, due + to a conflict with the state of the "Individual alarm" resource. + Typically, this is due to the fact that the alarm is already + in the state that is requested to be set (such as trying to + acknowledge an already-acknowledged alarm). + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSFaultManagement/responses/SOL005_resp.yaml b/src/SOL005/NSFaultManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000..cf3f203 --- /dev/null +++ b/src/SOL005/NSFaultManagement/responses/SOL005_resp.yaml @@ -0,0 +1,195 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 303: + description: > + See Other + + A subscription with the same callbackURI and the same + filter already exits and the policy of the NFVO is to not + create redundant subscriptions. + The HTTP response shall include a "Location" HTTP + eader that contains the resource URI of the existing + subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized. + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + 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: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + If the "Accept" header does not contain at least one + name of a content type for which the NFVO can + provide a representation of the NSD, the NFVO shall + respond with this response code. + The "ProblemDetails" structure may be included with + the "detail" attribute providing more information about + the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 412: + description: > + Precondition Failed. + + 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: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond withthis + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index d8ad0f1..ee21ed1 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -19,14 +19,12 @@ externalDocs: description: ETSI GS NFV-SOL 005 V2.4.1 url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf basePath: "/nslcm/v1" - schemes: - https consumes: - "application/json" produces: - - "application/json" - + - "application/json" paths: ############################################################################### # NSInstances # @@ -68,7 +66,7 @@ paths: responses: 201: description: > - 201 Created + 201 Created. A NS Instance identifier was created successfully. The response body shall contain a representation of @@ -119,7 +117,7 @@ paths: get: summary: "NS instances" description: > - Query NS Instances + Query NS Instances. The GET method queries information about multiple NS instances. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -239,7 +237,6 @@ paths: ############################################################################### '/ns_instances/{nsInstanceId}': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.3 - summary: "Read an individual NS instance resource" parameters: - name: nsInstanceId description: > @@ -276,9 +273,7 @@ paths: type: string responses: 200: - description: > - 200 OK - + description: > Information about an individual NS instance was queried successfully. The response body shall contain a representation of @@ -421,8 +416,6 @@ paths: responses: 202: description: > - 202 Accepted - The request was accepted for processing, but the processing has not been completed. The response body shall be empty. @@ -430,19 +423,6 @@ paths: header that contains the URI of the newly-created "NS LCM operation occurrence" resource corresponding to the operation. - headers: - Location: - description: The resource URI of the created VNF instance - type: string - format: url - 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. - type: string - maximum: 1 - minimum: 0 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -469,16 +449,6 @@ paths: ############################################################################### '/ns_instances/{nsInstanceId}/scale': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.5 - description: > - This task resource represents the "Scale NS" operation. The client can use this resource to request to scale a NS - instance. Scaling an NS instance can be performed by explicitly adding/removing existing VNF instances to/from the - NS instance, by leveraging on the abstraction mechanism provided by the NS scaling aspects and NS levels information - elements declared in the NSD or by scaling individual VNF instances that are part of the NS itself. When adding VNFs - and nested NSs - already existing or not - to the NS to be scaled, the NFVO shall follow the indications provided by the - dependencies attribute, as specified in the corresponding NSD. - - In case the NS is a composite NS, it is also possible to scale directly its nested NS, as they are also NS - and thus indirectly effectively scale the composite NS parameters: - name: nsInstanceId description: > @@ -487,7 +457,6 @@ paths: type: string required: true post: - #SOL005v020401p location: 6.4.5.2 summary: Scale NS task. description: > The POST method requests to scale a NS instance resource. @@ -546,9 +515,6 @@ paths: ############################################################################### '/ns_instances/{nsInstanceId}/update': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.6 - description: > - This task resource represents the "Update NS" operation. - The client can use this resource to update a NS instance. parameters: - name: nsInstanceId description: > @@ -616,9 +582,6 @@ paths: ############################################################################### '/ns_instances/{nsInstanceId}/heal': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.7 - description: > - This task resource represents the "Heal NS" operation. - The client can use this resource to request healing a NS instance parameters: - name: nsInstanceId description: > @@ -629,7 +592,7 @@ paths: post: summary: Heal NS task. description: > - Heal NS + Heal NS. The POST method requests to heal a NS instance resource. This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and @@ -690,9 +653,6 @@ paths: ############################################################################### '/ns_instances/{nsInstanceId}/terminate': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.8 - description: > - This task resource represents the "Terminate NS" operation. - The client can use this resource to terminate a NS instance. parameters: - name: nsInstanceId description: > @@ -703,7 +663,7 @@ paths: post: summary: Terminate NS task description: > - Terminate NS task + Terminate NS task. The POST method terminates a NS instance. This method can only be used with a NS instance in the INSTANTIATED state. Terminating a NS instance does not delete the NS instance identifier, @@ -766,14 +726,10 @@ paths: ############################################################################### '/ns_lcm_op_occs': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.9 - description: > - This resource represents NS lifecycle management operation occurrences. - The client can use this resource to query - status information about multiple NS lifecycle management operation occurrences. get: summary: NS lifecycle operation occurrences. description: > - Get Operation Status + Get Operation Status. The client can use this method to query status information about multiple NS lifecycle management operation occurrences. This method shall follow the provisions specified in the Tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters, @@ -788,7 +744,7 @@ paths: The NFVO shall support receiving filtering parameters as part of the URI query string. The OSS/BSS may supply an attribute filter. All attribute names that appear in the NsLcmOpOcc and in data types referenced - from it shall be supported in filtering parameters.. + from it shall be supported in filtering parameters. - name: "fields" in: "query" required: false @@ -820,9 +776,9 @@ paths: description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 - in: header - required: true - type: string + in: header + required: true + type: string - name: Authorization description: > The authorization token for the request. @@ -833,7 +789,6 @@ paths: responses: 200: description: > - 200 OK Status information for zero or more NS lifecycle management operation occurrences was queried successfully. @@ -857,8 +812,7 @@ paths: schema: type: array items: - $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" - + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -882,16 +836,7 @@ paths: # Individual NS lifecycle operation occurrence # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}': - #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.10 - description: > - This resource represents a NS lifecycle management operation occurrence. - The client can use this resource to read - information about a NS lifecycle management operation occurrence. - Further, the client can use task resources which are - children of this resource to request cancellation of an operation in progress, - and to request the handling of operation - errors via retrying the operation, rolling back the operation, - or permanently failing the operation. + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.10 parameters: - name: nsLcmOpOccId description: > @@ -933,7 +878,6 @@ paths: responses: 200: description: > - 200 OK Information about an individual NS instance was queried successfully. The response body shall contain status information @@ -945,7 +889,7 @@ paths: type: string maximum: 1 minimum: 1 - WWW-Authenticate: + WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP @@ -954,7 +898,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -981,10 +925,6 @@ paths: ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/retry': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.11 - description: > - This task resource represents the "Retry operation" operation. - The client can use this resource to initiate retrying a NS - lifecycle management operation. parameters: - name: nsLcmOpOccId description: > @@ -1040,9 +980,6 @@ paths: ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/rollback': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.12 - description: > - This task resource represents the "Rollback operation" operation. - The client can use this resource to initiate rolling back a NS lifecycle management operation. parameters: - name: nsLcmOpOccId description: > @@ -1097,10 +1034,6 @@ paths: ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/continue': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.13 - description: > - This task resource represents the "Continue operation" operation. - The client can use this resource to initiate continuing - an NS lifecycle management operation. parameters: - name: nsLcmOpOccId description: > @@ -1150,11 +1083,6 @@ paths: ############################################################################### '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.14 - description: > - This task resource represents the "Fail operation" operation. The client can use this resource to mark a NS lifecycle - management operation occurrence as "finally failed", i.e. change the state of the related NS LCM operation occurrence - resource to "FAILED", if it is not assumed that a subsequent retry or rollback will succeed. Once the operation is - marked as "finally failed", it cannot be retried or rolled back anymore. parameters: - name: nsLcmOpOccId description: > @@ -1192,8 +1120,6 @@ paths: responses: 200: description: > - 200 OK - The state of the NS lifecycle management operation occurrence was changed successfully. The response shall include a representation of the NS @@ -1213,7 +1139,7 @@ paths: maximum: 1 minimum: 0 schema: - $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" + $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: @@ -1238,10 +1164,6 @@ paths: ############################################################################### '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.15 - description: > - This task resource represents the "Cancel operation" operation. - The client can use this resource to cancel an ongoing NS - lifecycle management operation. parameters: - name: nsLcmOpOccId description: > @@ -1299,7 +1221,7 @@ paths: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: description: > - 409 Conflict + 409 Conflict. Error: The operation cannot be executed currently, due to a conflict with the state of the NS LCM operation @@ -1336,14 +1258,10 @@ paths: ############################################################################### '/subscriptions': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.16 - description: > - This resource represents subscriptions. - The client can use this resource to subscribe to notifications related to NS - lifecycle management, and to query its subscriptions. post: summary: Subscriptions description: > - Subscribe + Subscribe. The POST method creates a new subscription. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -1386,8 +1304,6 @@ paths: responses: 201: description: > - Created - The subscription was created successfully. The response body shall contain a representation of the created subscription resource. @@ -1416,8 +1332,8 @@ paths: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" 303: description: > - See Other - + See Other. + A subscription with the same callbackURI and the same filter already exits and the policy of the NFVO is to not create redundant subscriptions. @@ -1457,7 +1373,7 @@ paths: get: summary: Subscriptions description: > - Query Subscription Information + Query Subscription Information. The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for @@ -1480,8 +1396,6 @@ paths: responses: 200: description: > - OK - The list of subscriptions was queried successfully. The response body shall contain the representations of all active subscriptions of the functional block that invokes the method. @@ -1503,7 +1417,7 @@ paths: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" 400: description: > - Bad Request + Bad Request. Invalid attribute-based filtering parameters. The response body shall contain a ProblemDetails structure, in @@ -1545,10 +1459,6 @@ paths: ############################################################################### '/subscriptions/{subscriptionId}': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.17 - description: > - This resource represents an individual subscription. - It can be used by the client to read and to terminate a subscription to - Notifications related to NS lifecycle management. parameters: - name: subscriptionId description: > @@ -1579,9 +1489,7 @@ paths: type: string responses: 200: - description: > - 200 OK - + description: > The operation has completed successfully. The response body shall contain a representation of the subscription resource. @@ -1636,7 +1544,7 @@ paths: responses: 204: description: > - 204 No Content + 204 No Content. The subscription resource was deleted successfully. The response body shall be empty @@ -1672,15 +1580,13 @@ paths: ############################################################################### '/notification_endpoint': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.18 - description: > - This resource represents a notification endpoint. The server can use this resource to send notifications to a subscribed - client, which has provided the URI of this resource during the subscription process. post: summary: Notification endpoint. description: > The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. + # Don't know how to pass multiple body parameters. parameters: - name: nsLcmOperationOccurrenceNotification description: > @@ -1690,22 +1596,22 @@ paths: required: true schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOperationOccurrenceNotification" - - name: nsIdentifierCreationNotification - description: > - A notification about the creation of a NS identifier and the related - NS instance resource. - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierCreationNotification" - - name: nsIdentifierDeletionNotification - description: > - A notification about the deletion of a NS identifier and the related - NS instance resource. - in: body - required: true - schema: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierDeletionNotification" + #- name: nsIdentifierCreationNotification + # description: > + # A notification about the creation of a NS identifier and the related + # NS instance resource. + # in: body + # required: true + # schema: + # $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierCreationNotification" + #- name: nsIdentifierDeletionNotification + # description: > + # A notification about the deletion of a NS identifier and the related + # NS instance resource. + # in: body + # required: true + # schema: + # $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierDeletionNotification" - name: Accept description: > Content-Types that are acceptable for the response. @@ -1774,7 +1680,7 @@ paths: get: summary: Notification endpoint. description: > - Query NS Instances + Query NS Instances. The GET method queries information about multiple NS instances. This method shall support the URI query parameters, request and response data structures, and response codes, as @@ -1797,26 +1703,21 @@ paths: responses: 200: description: > - OK Multiple NS instances was queried successfully. + schema: + type: array + items: + $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" headers: Content-Type: description: The MIME type of the body of the response. type: string - maximum: 1 - minimum: 1 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. type: string - maximum: 1 - minimum: 0 - schema: - type: array - items: - $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" 400: $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" 401: diff --git a/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml index 622ab54..633135a 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/NSLifecycleManagement_def.yaml @@ -1,6 +1,5 @@ -# Copyright (c) ETSI 2017 +# Copyright (c) ETSI 2017. # https://forge.etsi.org/etsi-forge-copyright-notice.txt - definitions: HealNsRequest: description: > @@ -38,6 +37,7 @@ definitions: - isAutomaticInvocation - operationParams - isCancelPending + - _links properties: id: description: > @@ -86,7 +86,13 @@ definitions: - UPDATE: UpdateNsRequest - HEAL: HealNsRequest - TERMINATE: TerminateNsRequest - $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + type: string + enum: + - INSTANTIATE + - SCALE + - UPDATE + - HEAL + - TERMINATE isCancelPending: description: > If the LCM operation occurrence is in "PROCESSING" @@ -106,7 +112,7 @@ definitions: "operationState" was "FAILED_TEMP", this attribute shall be present and contain error information, unless it has been requested to be excluded via an attribute selector. - $ref: "SOL005_def.yaml#/definitions/ProblemDetails" + $ref: "#/definitions/ProblemDetails" resourceChanges: description: > This attribute contains information about the cumulative @@ -118,7 +124,7 @@ definitions: description: > Information about the VNF instances that were affected during the lifecycle operation, if this notification - represents the result of a lifecycle operation.. + represents the result of a lifecycle operation. type: array items: $ref: "SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnf" @@ -166,6 +172,9 @@ definitions: description: > Links to resources related to this resource. type: object + required: + - self + - nsInstance properties: self: description: > @@ -325,4 +334,61 @@ definitions: Timestamp indicating the end time of the NS, i.e. the NS will be terminated automatically at this timestamp. Cardinality "0" indicates the NS termination takes place immediately - $ref: "SOL005_def.yaml#/definitions/DateTime" \ No newline at end of file + $ref: "SOL005_def.yaml#/definitions/DateTime" + + ProblemDetails: + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index 97c444e..2c2aea5 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -1,4 +1,4 @@ -# Copyright (c) ETSI 2017 +# Copyright (c) ETSI 2017. # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: CreateNsRequest: @@ -118,11 +118,10 @@ definitions: applicable DF, how "big" the NS instance has been scaled w.r.t. that aspect. This attribute shall be present if the nsState attribute - value is INSTANTIATED.. + value is INSTANTIATED. type: array items: - $ref: "#/definitions/NsScaleInfo" - + $ref: "#/definitions/NsScaleInfo" additionalAffinityOrAntiAffinityRule: description: > Information on the additional affinity or anti-affinity @@ -132,9 +131,8 @@ definitions: items: $ref: "#/definitions/AffinityOrAntiAffinityRule" _links: - description: > - Links to resources related to this resource. type: object + description: Links to resources related to this resource. required: - self properties: @@ -185,7 +183,7 @@ definitions: instance resource (i.e. NS instance is in INSTANTIATED state). $ref: "SOL005_def.yaml#/definitions/Link" - + VnfInstance: description: > This type represents a VNF instance. @@ -950,17 +948,17 @@ definitions: value: description: > Value of the monitoring parameter known to the VNFM (e.g. obtained - for autoscaling purposes). + for auto-scaling purposes). The type of the "value" attribute (i.e. scalar, structure (Object in JSON), or array (of scalars, arrays or structures/Objects)) is assumed to be defined in an external measurement specification. type: object - timeStamp: - description: > - Represents the point in time when the measurement has been performed, - as known to the VNFM. - Should be formatted according to ETF RFC 3339. - type: string + timeStamp: + description: > + Represents the point in time when the measurement has been performed, + as known to the VNFM. + Should be formatted according to ETF RFC 3339. + type: string VnfcResourceInfo: description: > @@ -1463,7 +1461,7 @@ definitions: $ref: "SOL005_def.yaml#/definitions/DateTime" UpdateNsRequest: - summary: > + description: > This operation supports the update of a NS instance, It shall comply with the provisions defined in Table 6.5.2.12-1. type: object @@ -2411,26 +2409,25 @@ definitions: changedInfo: description: > Information about the changed VNF instance - information, including VNF configurable properties, if applicable. + information, including VNF configurable properties,if applicable. + When the "changedInfo" attribute is present, + either the "changedVnfInfo" attribute or the + "changedExtConnectivity" attribute or both shall be present. type: object required: - self properties: - description: > - When the "changedInfo" attribute is present, - either the "changedVnfInfo" attribute or the - "changedExtConnectivity" attribute or both shall be present - changedVnfInfo: - description: > - Information about the changed VNF instance - information, including configurable properties, - if applicable. - $ref: "#/definitions/ModifyVnfInfoData" - changedExtConnectivity: - description: > - Information about changed external connectivity, - if applicable. - $ref: "#/definitions/ExtVirtualLinkInfo" + changedVnfInfo: + description: > + Information about the changed VNF instance + information, including configurable properties, + if applicable. + $ref: "#/definitions/ModifyVnfInfoData" + changedExtConnectivity: + description: > + Information about changed external connectivity, + if applicable. + $ref: "#/definitions/ExtVirtualLinkInfo" AffectedPnf: description: > @@ -2918,7 +2915,7 @@ definitions: timestamp: description: > Date-time of the generation of the notification. - $ref: "#/definitions/DateTime" + $ref: "SOL005_def.yaml#/definitions/DateTime" notificationStatus: description: > Indicates whether this notification reports about the start @@ -2949,7 +2946,7 @@ definitions: description: > Information about the VNF instances that were affected during the lifecycle operation. - $ref: "SOL005_def.yaml#/definitions/AffectedVnf" + $ref: "#/definitions/AffectedVnf" affectedPnf: description: > Information about the PNF instances that were affected @@ -3011,7 +3008,7 @@ definitions: timestamp: description: > Date-time of the generation of the notification. - $ref: "#/definitions/DateTime" + $ref: "SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > The created NS instance identifier @@ -3040,7 +3037,7 @@ definitions: timestamp: description: > Date-time of the generation of the notification. - $ref: "#/definitions/DateTime" + $ref: "SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > The created NS instance identifier diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml index 61b3ede..5e4c195 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005_def.yaml @@ -1,4 +1,4 @@ -# Copyright (c) ETSI 2017 +# Copyright (c) ETSI 2017. # https://forge.etsi.org/etsi-forge-copyright-notice.txt definitions: Identifier: diff --git a/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml b/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml index 89a62a5..fd1afe6 100644 --- a/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml +++ b/src/SOL005/NSLifecycleManagement/responses/NSLifecycleManagement_resp.yaml @@ -22,7 +22,7 @@ maximum: 1 minimum: 1 Location: - description: The resource URI of the created NS instance. + description: The resource URI of the created NS instance type: string format: url WWW-Authenticate: diff --git a/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml b/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml index 59992fb..cbcd81a 100644 --- a/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml +++ b/src/SOL005/NSLifecycleManagement/responses/SOL005_resp.yaml @@ -50,7 +50,6 @@ 303: description: > See Other - A subscription with the same callbackURI and the same filter already exists and the policy of the VNFM is to not create redundant subscriptions. @@ -151,18 +150,14 @@ structure may be provided. headers: Content-Type: - description: The MIME type of the body of the response. type: string - maximum: 1 - minimum: 1 + description: The MIME type of the body of the response. 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. - type: string - maximum: 1 - minimum: 0 + type: string + 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: $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" 403: diff --git a/src/SOL005/NSPerformanceManagement/NSperformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSperformanceManagement.yaml index f043ac9..ebe5e68 100644 --- a/src/SOL005/NSPerformanceManagement/NSperformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSperformanceManagement.yaml @@ -18,6 +18,7 @@ info: externalDocs: description: ETSI GS NFV-SOL 005 V2.4.1 url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf + basePath: "/nspm/v1" schemes: @@ -27,10 +28,1010 @@ consumes: - "application/json" produces: - "application/json" - + paths: - /resource: +############################################################################### +# PM Jobs # +############################################################################### + '/pm_jobs': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.2 + post: + summary: "PM Jobs" + description: > + "This resource represents PM jobs. The client can use this resource to create and query PM jobs. + The POST method creates a PM job. This method shall follow the provisions specified in the + Tables 7.4.2.3.1-1 and 7.4.2.3.1-2 for URI query parameters, + request and response data structures, and response codes." + parameters: + - name: CreatePmJobRequest + description: "The NS Instance creation parameters." + in: body + required: true + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/CreatePmJobRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + "201 Created." + + "The PM job was created successfully. + The response body shall contain a representation of + the created PM job resource, as defined in + clause 7.5.2.7. + The HTTP response shall include a "Location" HTTP + header that points to the created PM job resource." + schema: + description: > + "Information of the selected VNF packages." + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmJob" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + get: + summary: "PM Jobs" + description: > + "The client can use this method to retrieve information about PM jobs" + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. + The OSS/BSS may supply filtering parameters. + All attribute names that appear in the PmJob and in data types referenced from it + shall be supported in attribute-based filtering parameters" + - name: "all_fields" + in: "query" + required: false + type: "string" + description: > + "Include all complex attributes in the response. See clause 4.3.3 for details. The + NFVO shall support this parameter" + - name: "include" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be included into the response. See clause 4.3.3 for details. The + NFVO should support this parameter" + - name: "exclude" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be excluded from the response. See clause 4.3.3 for details. + The NFVO should support this parameter." + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + "Indicates to exclude the following complex attributes from the response. + See clause 4.3.3 for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the PmJob structure in the response + body if this parameter is provided, or none of the parameters "all_fields," "fields", + "exclude_fields", "exclude_default" are provided: + reports." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + "201 OK." + + "Information about zero or more PM jobs was queried successfully. + The response body shall contain representations of + zero or more PM jobs, as defined in clause 7.5.2.7." + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmJob" + headers: + Location: + type: "string" + description: > + "The HTTP response shall include a "Location" HTTP header + that contains the resource URI of the new NS descriptor resource." + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400-attr-based-filtering-error" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual PM job # +############################################################################### + '/pm_jobs/{pmJobId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.3 + parameters: + - name: pmJobId + description: > + Identifier of the PM job. + in: path + type: string + required: true + get: + summary: Individual PM job + description: > + The client can use this method for reading an individual PM job. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + 200 OK. + + Information about an individual PM job was queried successfully. + The response body shall contain a representation of the PM job + resource. + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmJob" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Individual PM job + description: > + This method terminates an individual PM job. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content. + + The PM job was 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual performance report # +############################################################################### + '/pm_jobs/{pmJobId}/reports/{reportId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.4 + parameters: + - name: pmJobId + description: > + Identifier of the PM job. + in: path + type: string + required: true + - name: reportId + description: > + Identifier of the performance report. + in: path + type: string + required: true + get: + summary: Individual performance report + description: > + The client can use this method for reading an individual performance + report. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + Information of an individual performance report was read + successfully. + The response body shall contain a representation of the + performance report resource. + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/NSPerfomananceManagement_def.yaml#/definitions/PerformanceReport" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Thresholds # +############################################################################### + '/thresholds': + #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.5 + post: + summary: Thresholds + description: > + This resource represents thresholds. + The client can use this resource to create and query thresholds. + The POST method can be used by the client to create a threshold + parameters: + - name: CreateThresholdRequest + description: > + Request parameters to create a threshold resource. + in: body + required: true + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/CreateThresholdRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + 201 - Created. + + A threshold was created successfully. + The response body shall contain a representation of + the created threshold resource, as defined in + clause 7.5.2.9. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the created + threshold resource. + headers: + Location: + description: The resource URI of the created threshold instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/Threshold" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" get: + summary: Thresholds + description: > + The client can use this method to query information about thresholds. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. + The OSS/BSS may supply filtering parameters. + All attribute names that appear in the Thresholds data type and in data types + referenced from it shall be supported in attribute-based filtering parameters." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string responses: 200: - description: Success \ No newline at end of file + description: > + 200 - OK. + + Information about zero or more thresholds was queried + successfully. + The response body shall contain representations of + zero or more thresholds, as defined in clause 7.5.2.9 + headers: + Location: + description: The resource URI of the created threshold instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/Threshold" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual threshold # +############################################################################### + '/thresholds/{thresholdId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.6 + parameters: + - name: thresholdId + description: > + Identifier of the threshold. + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new threshold resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + in: path + type: string + required: true + get: + summary: Individual threshold + description: > + This resource represents an individual threshold. + The client can use this method for reading an individual threshold. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + Information about an individual threshold was queried + successfully. The response body shall contain a + representation of the threshold. + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/Threshold" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Individual threshold + description: > + This resource represents an individual threshold. + This method allows to delete a threshold. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + 204 No Content. + The threshold was 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.7 + post: + summary: Subscriptions + description: > + The POST method creates a new subscription. + This method shall follow the provisions specified in the Tables 7.4.7.3.1-1 and 7.4.7.3.1-2 for URI query parameters, + request and response data structures, and response codes. + Creation of two subscription resources with the same callbackURI and + the same filter can result in performance degradation and will provide + duplicates of notifications to the OSS, and might make sense only in very rare use cases. + Consequently, the NFVO may either allow creating a subscription resource if another 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 subscription resource (in which case it shall return + a "303 See Other" response code referencing the existing subscription resource with the same filter and callbackUri). + parameters: + - name: PmSubscriptionRequest + description: > + Details of the subscription to be created. + in: body + required: true + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmSubscriptionRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + 201 Created. + The subscription was created successfully. + A representation of the + created subscription resource shall be returned in the response body. + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the created subscription resource. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmSubscription" + 303: + $ref: "responses/SOL005_resp.yaml#/responses/303" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: Subscriptions + description: > + The client can use this method to query the list of active + subscriptions to Performance management notifications subscribed by + the client. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI + query string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the PmSubscription and in data types + referenced from it shall be supported in attribute-based filtering + parameters." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + The list of subscriptions was queried successfully. + The response body shall contain the representations of all active + subscriptions of the functional block that invokes the method. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 7.4.8 + parameters: + - name: subscriptionId + description: > + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new subscription resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + in: path + type: string + required: true + get: + summary: Individual subscription + description: > + This resource represents an individual subscription for notifications about performance management related events. + The client can use this resource to read and to terminate a subscription to notifications related to NS performance + management. + The client can use this method for reading an individual subscription + about Performance management notifications subscribed by the client. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + The subscription was read successfully. The response body shall + contain a representation of the subscription resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: Individual subscription + description: > + This method terminates an individual subscription. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + The subscription resource was 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Notification endpoint # +# "/notification_endpoint" is the # +# is the dummy URI used for testing, in real case endpoint URI has to # +# provided by client. # +############################################################################### + '/notification_endpoint': + #SOL005 location: 8.2-1 + post: + summary: > + Notification endpoint + description: > + This resource represents a notification endpoint for NS 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. + + # Don't know how to pass multiple body parameters. + parameters: + - name: performanceInformationAvailableNotification + description: > + Notification about performance information availability. + in: body + required: true + schema: + $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/PerformanceInformationAvailableNotification" + #- name: thresholdCrossedNotification + # description: > + # Notification about threshold crossing + # in: body + # required: true + # schema: + # $ref: "definitions/SOL005NSPerfomananceManagement_def.yaml#/definitions/ThresholdCrossedNotification" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 204: + description: > + 204 - No Content. + + The notification was delivered successfully. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + get: + summary: Notification endpoint. + description: > + The GET method allows the server to test the notification endpoint that is provided by the client, + e.g. during subscription. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + The notification endpoint was tested successfully. + The response body shall be empty. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/definitions/NSPerfomananceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/NSPerfomananceManagement_def.yaml new file mode 100644 index 0000000..8030980 --- /dev/null +++ b/src/SOL005/NSPerformanceManagement/definitions/NSPerfomananceManagement_def.yaml @@ -0,0 +1,63 @@ +definitions: + PerformanceReport: + description: > + This type defines the format of a performance report provided by the + VNFM to the NFVO as a result of collecting performance information as + part of a PM job. + type: object + required: + - entries + properties: + entries: + description: > + List of performance information entries. Each performance report + entry is for a given metric of a given object (i.e. VNF instance), + but can include multiple collected values. + type: array + items: + type: object + required: + - objectType + - objectInstanceId + - performanceMetric + - performanceValue + properties: + objectType: + description: > + Defines the object type for which performance information is + reported (i.e. VNF type). The string value shall be set to the + vnfdId of the VNF instance to which the performance + information relates. + type: string + objectInstanceId: + description: > + The object instance (i.e. VNF instance) for which the + performance metric is reported. + $ref: "SOL005_def.yaml#/definitions/Identifier" + performanceMetric: + description: > + Name of the metric collected. + type: string + performanceValues: + description: > + List of performance values with associated timestamp. + type: array + items: + type: object + required: + - timeStamp + - performanceValue + properties: + timeStamp: + description: > + Time stamp indicating when the data was collected. + $ref: "SOL005_def.yaml#/definitions/DateTime" + value: + description: > + Value of the metric collected. + The type of the "value" attribute (i.e. scalar, + structure (Object in JSON), or array (of scalars, arrays + or structures / Objects)) is assumed to be defined in + the external measurement specification + (see ETSI GS NFV-IFA 027). + type: object \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerfomananceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerfomananceManagement_def.yaml new file mode 100644 index 0000000..e2b3ab1 --- /dev/null +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerfomananceManagement_def.yaml @@ -0,0 +1,539 @@ +definitions: + CreatePmJobRequest: + description: > + This type represents a request to create a PM job. + It shall comply with the provisions defined in Table 7.5.2.6-1. + type: object + required: + - objectInstanceIds + - criteria + properties: + objectInstanceIds: + description: > + Identifiers of the NS instances for which + performance information is requested to be collected. + type: "array" + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + criteria: + description: > + Criteria of the collection of performance information. + $ref: "#/definitions/PmJobCriteria" + + PmJobCriteria: + description: > + This type represents collection criteria for PM jobs. + It shall comply with the provisions defined in Table 7.5.3.3-1. + type: object + required: + - collectionPeriod + - reportingPeriod + properties: + performanceMetric: + description: > + This defines the types of performance metrics + for the specified object instances. At least one + of the two attributes (performance metric or + group) shall be present. + type: "array" + items: + $ref: "SOL005_def.yaml#/definitions/String" + performanceMetricGroup: + description: > + Group of performance metrics. + A metric group is a pre-defined list of metrics, + known to the producer that it can decompose to + individual metrics. At least one of the two + attributes (performance metric or group) shall be present. + type: "array" + items: + $ref: "SOL005_def.yaml#/definitions/String" + collectionPeriod: + description: > + Specifies the periodicity at which the producer + will collect performance information. The unit + shall be seconds. See notes 1 and 2. + type: integer + reportingPeriod: + description: > + Specifies the periodicity at which the producer + will report to the consumer. + about performance information. The unit shall + be seconds. See notes 1 and 2. + type: integer + reportingBoundary: + description: > + Identifies a time boundary after which the + reporting will stop. The boundary shall allow a + single reporting as well as periodic reporting up + to the boundary. + $ref: "SOL005_def.yaml#/definitions/DateTime" + + PmJob: + description: > + This type represents a PM job. + type: object + required: + - id + - objectInstanceIds + - criteria + properties: + id: + description: > + Identifier of this PM job. + $ref: "SOL005_def.yaml#/definitions/Identifier" + objectInstanceIds: + description: > + Identifiers of the NS instances for which + performance information is collected. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + criteria: + description: > + Criteria of the collection of performance information. + $ref: "#/definitions/PmJobCriteria" + reports: + description: > + Information about available reports collected by this PM job. + type: object + required: + - href + - readyTime + - _links + properties: + href: + description: > + The Uri where the report can be obtained. + $ref: "SOL005_def.yaml#/definitions/Uri" + readyTime: + description: > + The time when the report was made available. + $ref: "SOL005_def.yaml#/definitions/DateTime" + expiryTime: + description: > + The time when the report will expire. + $ref: "SOL005_def.yaml#/definitions/DateTime" + fileSize: + description: > + The size of the report file in bytes, if known. + type: integer + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + objects: + description: > + Links to resources representing the VNF instances for which + performance information is collected. Shall be present if + the VNF instance information is accessible as a resource. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Link" + + CreateThresholdRequest: + description: > + This type represents a request to create a threshold. + type: object + required: + - objectInstanceId + - criteria + properties: + objectInstanceId: + description: > + Identifier of the VNF instance associated with this threshold. + $ref: "SOL005_def.yaml#/definitions/Identifier" + criteria: + description: > + Criteria that define this threshold. + $ref: "#/definitions/ThresholdCriteria" + + Threshold: + description: > + This type represents a threshold. + type: object + required: + - id + - objectInstanceId + - criteria + - _links + properties: + id: + description: > + Identifier of this threshold resource. + $ref: "SOL005_def.yaml#/definitions/Identifier" + objectInstanceId: + description: > + Identifier of the VNF instance associated with the threshold. + $ref: "SOL005_def.yaml#/definitions/Identifier" + criteria: + description: > + Criteria that define this threshold. + $ref: "#/definitions/ThresholdCriteria" + _links: + description: > + Links for this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + object: + description: > + Link to a resource representing the VNF instance for which + performance information is collected. Shall be present if the + VNF instance information is accessible as a resource. + + ThresholdCriteria: + description: > + This type represents criteria that define a threshold. + type: object + required: + - performanceMetric + - thresholdType + properties: + performanceMetric: + description: > + Defines the performance metric associated with the + threshold, as specified in ETSI GS NFV-IFA 027). + type: string + thresholdType: + description: > + Type of threshold. This attribute determines which other attributes + are present in the data structure. + Permitted values: + * SIMPLE: Single-valued static threshold + In the present document, simple thresholds are defined. The + definition of additional threshold types is left for future + specification. + type: string + enum: + - SIMPLE + simpleThresholdDetails: + description: > + Details of a simple threshold. Shall be present if + thresholdType="SIMPLE". + type: object + required: + - thresholdValue + - hysteresis + properties: + thresholdValue: + description: > + The threshold value. Shall be represented as a floating point + number. + # TODO: This should be floating. + type: integer + hysteresis: + description: > + The hysteresis of the threshold. Shall be represented as a + non-negative floating point number. + A notification with crossing direction "UP" will be generated if + the measured value reaches or exceeds + "thresholdValue" + "hysteresis". A notification with crossing + direction "DOWN" will be generated if the measured value reaches + or undercuts "thresholdValue" - "hysteresis". + 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). + # TODO: This should be floating. + type: integer + + PmSubscriptionRequest: + description: > + This type represents a subscription request. + type: object + required: + - callbackUri + 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: "#/definitions/PmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + authentication: + description: > + Authentication parameters to conFigure the use of + Authorization when sending notifications corresponding + to this subscription, as defined in clause 4.5.3.4. + This attribute shall only be present if the subscriber + requires authorization of notifications.. + $ref: "SOL005_def.yaml#/definitions/SubscriptionAuthentication" + + PmNotificationsFilter: + description: > + This type represents a filter that can be used to subscribe for + notifications related to performance management events. It + shall comply with the provisions defined in Table 7.5.3.2-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). + type: object + properties: + nsInstanceSubscriptionFilter: + description: > + Filter criteria to select NS instances about which to notify. + $ref: "SOL005_def.yaml#/definitions/NSInstanceSubscriptionFilter" + notificationTypes: + description: > + Match particular notification types. + Permitted values: + * ThresholdCrossedNotification + * PerformanceInformationAvailableNotification + The permitted values of the "notificationTypes" attribute are + spelled exactly as the names of the notification types to facilitate + automated code generation systems. + type: array + items: + type: string + enum: + - ThresholdCrossedNotification + - PerformanceInformationAvailableNotification + PmSubscription: + description: > + This type represents a subscription. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier that identifies the subscription. + $ref: "SOL005_def.yaml#/definitions/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: "#/definitions/PmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + Version: + description: > + Software version of the VNF. This is + changed when there is any change to the + software included in the VNF package. + This information is copied from the VNFD. + It shall be present after the VNF package + content has been on-boarded and absent otherwise. + type: string + + Checksum: + description: > + This type represents the checksum of a VNF package or an artifact file. + required: + - algorithm + - hash + type: object + properties: + algorithm: + description: > + Name of the algorithm used to generate the checksum, + as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512. + type: string + hash: + description: > + The hexadecimal value of the checksum. + type: string + Link: + type: "object" + + PerformanceInformationAvailableNotification: + description: > + This notification informs the receiver that performance information is available. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is + sent multiple times due to multiple + subscriptions, the "id" attribute of all these + notifications shall have the same value. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to + "PerformanceInformationAvailableNotification" + for this notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + objectInstanceId: + description: > + Identifier that identifies a NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - pmJob + - performanceReport + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + objectInstance: + description: > + Link to the resource representing the NS + instance to which the notified change applies. + Shall be present if the NS instance information + is accessible as a resource. + $ref: "SOL005_def.yaml#/definitions/Link" + pmJob: + description: > + Link to the resource that represents the PM job + for which performance information is available. + $ref: "SOL005_def.yaml#/definitions/Link" + performanceReport: + description: > + Link from which the available performance + information of data type "PerformanceReport" can be obtained. + This link should point to an "Individual performance report" resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + ThresholdCrossedNotification: + description: > + This type represents a notification that is sent when a threshold has been crossed. + type: object + required: + - id + - notificationType + - subscriptionId + - timeStamp + - thresholdId + - crossingDirection + - objectInstanceId + - performanceMetric + - performanceValue + - _links + properties: + id: + description: > + Identifier of this notification. If a notification is + sent multiple times due to multiple + subscriptions, the "id" attribute of all these + notifications shall have the same value.. + $ref: "SOL005_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. + Shall be set to "ThresholdCrossedNotification " + for this notification type. + type: string + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL005_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date and time of the generation of the notification. + $ref: "SOL005_def.yaml#/definitions/DateTime" + thresholdId: + description: > + Identifier of the threshold which has been crossed. + $ref: "SOL005_def.yaml#/definitions/Identifier" + crossingDirection: + description: > + An indication of whether the threshold was crossed in upward or downward direction. + $ref: "#/definitions/CrossingDirectionType" + objectInstanceId: + description: > + Identifier that identifies a NS instance. + $ref: "SOL005_def.yaml#/definitions/Identifier" + performanceMetric: + description: > + Performance metric associated with the threshold. + type: string + performanceValue: + description: > + Value of the metric that resulted in threshold crossing. See note. + type: object + _links: + description: > + Links to resources related to this notification. + type: object + required: + - subscription + - objectInstance + - threshold + properties: + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + objectInstance: + description: > + Link to the resource representing the NS + instance to which the notified change applies. + Shall be present if the NS instance information + is accessible as a resource.. + $ref: "SOL005_def.yaml#/definitions/Link" + threshold: + description: > + Link to the resource that represents the + threshold that was crossed. + $ref: "SOL005_def.yaml#/definitions/Link" + + CrossingDirectionType: + description: > + The enumeration CrossingDirectionType shall comply with the provisions. + Acceptable Values are: + UP - The threshold was crossed in upward direction. + DOWN - The threshold was crossed in downward direction. + type: string + enum: + - UP + - DOWN \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000..058d107 --- /dev/null +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005_def.yaml @@ -0,0 +1,236 @@ + definitions: + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + + Link: + description: > + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: > + URI of the referenced resource. + type: string + format: url + + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: "date-time" + + String: + description: > + This type represents stack of string values + type: string + + Object: + description: > + This type represents stack of object values + type: object + + KeyValuePairs: + description: > + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. + In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions + defined in clause 4 of IETF RFC 7159. + type: object + + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + ProblemDetails: + #SOL005 location: 4.3.5.3-1 + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + IdentifierInVnfd: + description: > + Identifier of the software image. + type: string + + NSInstanceSubscriptionFilter: + description: > + This type represents subscription filter criteria to match NS instances. + type: object + properties: + nsdIds: + description: > + If present, match NS instances that were created + based on a NSD identified by one of the nsdId + values listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + vnfdIds: + description: > + If present, match NS instances that contain VNF + instances that were created based on a VNFD + identified by one of the vnfdId values listed in + this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + pnfdIds: + description: > + If present, match NS instances that contain + PNFs that are represented by a PNFD identified + by one of the pnfdId values listed in this + attribute. + type: array + items: + $ref: "#/definitions/Identifier" + nsInstanceIds: + description: > + If present, match NS instances with an instance + identifier listed in this attribute. + type: array + items: + $ref: "#/definitions/Identifier" + nsInstanceNames: + description: > + If present, match NS instances with a NS + Instance Name listed in this attribute. + type: array + items: + $ref: "#/definitions/String" + + SubscriptionAuthentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. + Permitted values: + * BASIC: In every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. + Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the + contained information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + Shall be present if it has not been provisioned out of band. + $ref: "#/definitions/Uri" \ No newline at end of file diff --git a/src/SOL005/NSPerformanceManagement/responses/SOL005_resp.yaml b/src/SOL005/NSPerformanceManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000..d6108c9 --- /dev/null +++ b/src/SOL005/NSPerformanceManagement/responses/SOL005_resp.yaml @@ -0,0 +1,245 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 303: + description: > + See Other + A subscription with the same callbackURI and the + same filter already exits and the policy of the NFVO is + to not create redundant subscriptions. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the existing + subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized. + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + 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: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source + of the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also returned if the task is not supported for the NS instance + represented by the parent resource, which means that the task resource + consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS instance represented by the parent + resource, and that the task resource consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + If the "Accept" header does not contain at least one + name of a content type for which the NFVO can + provide a representation of the VNFD, the NFVO + shall respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 416: + description: > + The byte range passed in the "Range" header did not + match any available byte range in the NSD file (e.g. + "access after end of file"). + The response body may contain a ProblemDetails structure. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond withthis + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 90208a4..b3f43e3 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -27,10 +27,1080 @@ consumes: - "application/json" produces: - "application/json" - + paths: - /resource: +############################################################################### +# VNF Packages # +############################################################################### + '/vnf_packages': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.2 + get: + summary: "VNF packages" + description: > + "The GET method queries the information of the VNF packages matching the filter. + + This method shall follow the provisions specified in the + Tables 9.4.2.3.2-1 and 9.4.2.3.2-2 for URI query parameters, + request and response data structures, and response codes." + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query string. The + OSS/BSS may supply filtering parameters. + All attribute names that appear in the VnfPkgInfo and in data types referenced from it shall + be supported in attribute-based filtering parameters." + - name: "all_fields" + in: "query" + required: false + type: "string" + description: > + "Include all complex attributes in the response. See clause 4.3.3 + for details. The NFVO shall support this parameter." + - name: "fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be included into the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_fields" + in: "query" + required: false + type: "string" + description: > + "Complex attributes to be excluded from the response. See clause 4.3.3 for + details. The NFVO should support this parameter." + - name: "exclude_default" + in: "query" + required: false + type: "string" + description: > + "Indicates to exclude the following complex attributes from the response. See clause 4.3.3 + for details. The NFVO shall support this parameter. + The following attributes shall be excluded from the VnfPkgInfo structure in the response + body if this parameter is provided, or none of the parameters "all_fields," "fields", + "exclude_fields", "exclude_default" are provided: + - softwareImages + - additionalArtifacts + - userDefinedData + - checksum." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + "Status 200" + schema: + type: "array" + description: > + "Information of the selected VNF packages." + items: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + post: + summary: "VNF packages" + description: > + "The POST method creates a new individual VNF package resource." + parameters: + - name: "CreateVnfPkgInfoRequest" + description: > + "IndividualVNF package resource creation parameters, as defined in clause 9.5.2.2" + in: "body" + required: true + schema: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/CreateVnfPkgInfoRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + "Status 201 - Created" + + + "An individual VNF package resource has been created successfully. + The response body shall contain a representation of + the new individual VNF package resource, as defined + in clause 9.5.2.4. + The HTTP response shall include a "Location" HTTP + header that contains the resource URI of the individual + VNF package resource." + schema: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + headers: + Location: + type: "string" + description: > + "The HTTP response shall include a "Location" HTTP header + that contains the resource URI of the new NS descriptor resource." +############################################################################### +# Individual VNF Package # +############################################################################### + '/vnf_packages/{vnfPkgId}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.3 + get: + summary: "Individual VNF package" + description: > + "This resource represents an individual VNF package. + The client can use this resource to read information of the VNF + package, update information of the VNF package, or delete a VNF package." + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + "200 OK" + + "Information of the VNF package." + schema: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfo" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: "Individual VNF package" + description: > + "The DELETE method deletes an individual NS descriptor resource. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + "204 No Content" + "The operation has completed successfully. The response body + shall be empty." + schema: + type: "object" + description: > + "The operation has completed successfully. The response body + shall be empty." + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + patch: + summary: "Individual VNF package" + description: > + "The PATCH method updates the information of a VNF package." + + "This method shall follow the provisions specified in the + Tables 9.4.3.3.4-1 and 9.4.3.3.4-2 for URI query parameters, + request and response data structures, and response codes." + parameters: + - name: "VnfPkgInfoModifications" + in: "body" + required: true + schema: + type: "object" + required: + - "VnfPkgInfoModifications" + properties: + NsdInfoModifications: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications" + description: > + "Parameters for VNF package information modifications." + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + "200 OK." + + "The operation was completed successfully. + The response body shall contain attribute + modifications for an "Individual VNF package" resource." + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/VnfPkgInfoModifications" + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + parameters: + - name: "vnfPkgId" + description: > + "Identifier of the VNF package. The identifier is allocated by the NFVO". + in: "path" + required: true + type: "string" + +############################################################################### +# VNFD in an individual VNF package # +############################################################################### + '/vnf_packages/{vnfPkgId}/vnfd': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.4 + parameters: + - name: vnfPkgId + description: > + "Identifier of the on-boarded VNF package. The identifier is allocated by the NFVO." + in: path + type: string + required: true + get: + summary: "VNFD of an individual VNF package" + description: > + "The GET method reads the content of the VNFD within a VNF package." + + "The VNFD can be implemented as a single file or as a collection of multiple files. If the VNFD is implemented in the + form of multiple files, a ZIP file embedding these files shall be returned. If the VNFD is implemented as a single file, + either that file or a ZIP file embedding that file shall be returned. + The selection of the format is controlled by the "Accept" HTTP header passed in the GET request. + • If the "Accept" header contains only "text/plain" and the VNFD is implemented as a single file, the file shall + be returned; otherwise, an error message shall be returned. + • If the "Accept" header contains only "application/zip", the single file or the multiple files that make up the + VNFD shall be returned embedded in a ZIP file. + • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the + format to return for a single-file VNFD; for a multi-file VNFD, a ZIP file shall be returned. + The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 004 [5] where only the YAML files + representing the VNFD, and information necessary to navigate the ZIP file and to identify the file that is the entry point + for parsing the VNFD (such as TOSCA-meta or manifest files or naming conventions) are included. + This method shall follow the provisions specified in the Tables 9.4.4.3.2-1 and 9.4.4.3.2-2 for URI query parameters, + request and response data structures, and response codes." + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + OK + + On success, the content of the VNFD is returned. + The payload body shall contain a copy of the file + representing the VNFD or a ZIP file that contains the + file or multiple files representing the VNFD, as + specified above. + The "Content-Type" HTTP header shall be set + according to the format of the returned file, i.e. to + "text/plain" for a YAML file or to "application/zip" for a ZIP file. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + + + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + description: > + "406 Not AccepTable" + + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + description: > + "409 Conflict" + + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/406-state-conflict" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# VNF Package Content # +############################################################################### + '/vnf_packages/{vnfPkgId}/package_content': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.5 + get: + summary: "VNF package content" + description: > + "The GET method fetches the content of a VNF package identified + by the VNF package identifier allocated by the NFVO." + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + enum: + - text/plain + - application/zip + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: "Range" + in: "header" + required: false + type: "string" + description: > + The request may contain a "Range" HTTP header to obtain single + ange of bytes from the VNF package file. This can be used to + ontinue an aborted transmission. + + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + responses: + 200: + description: > + OK + + On success, a copy of the VNF package file is returned. + The response body shall include a copy of the VNF package file. + The "Content-Type" HTTP header shall be set + according to the type of the file, i.e. to "application/zip" + for a VNF Package as defined in ETSI + GS NFV-SOL 004 [5]. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + 206: + description: > + "Partial Content" + $ref: "responses/SOL005_resp.yaml#/responses/206" + 409: + description: > + "Conflict" + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING" + 416: + description: > + "416 Range Not Satisfiable" + $ref: "responses/SOL005_resp.yaml#/responses/416-range-not-satisfiable" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + + put: + summary: "VNF package content." + description: > + "The PUT method uploads the content of a VNF package." + consumes: + - multipart/form-data + parameters: + - in: formData + name: file + required: false + type: file + description: > + The payload body contains a ZIP file that represents the VNF package. + The "Content-Type" HTTP header shall be set according to the + type of the file, i.e. to "application/zip" for a VNF Package as + defined in ETSI GS NFV-SOL 004 [5]. + responses: + 202: + description: > + "202 Accepted" + + "The VNF package was accepted for uploading, but the + processing has not been completed. It is expected to + take some time for processing. + The response body shall be empty. See note." + 409: + description: > + "409 Conflict" + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + parameters: + - name: "vnfPkgId" + in: "path" + required: true + type: "string" + +############################################################################### +# Upload VNF package from URI task # +############################################################################### + '/vnf_packages/{vnfPkgId}/package_content/upload_from_uri': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6 + post: + summary: "Upload VNF package from URI task." + description: > + "This task resource represents the "Upload VNF package from URI" operation. The client can use this resource to + request the uploading of a VNF package by providing address information to the NFVO for retrieving the content of the + VNF package. + The POST method provides the information for the NFVO to get the content of a VNF package." + + parameters: + - name: "vnfPkgId" + in: "path" + required: true + type: "string" + - name: "UploadVnfPkgFromUriRequest" + description: > + "The payload body contains the address information based on + which the NFVO can obtain the content of the VNF package." + in: "body" + required: true + schema: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/UploadVnfPkgFromUriRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 202: + description: > + "Accepted" + + "The information about the VNF package was received + successfully, but the on-boarding has not been + completed. It is expected to take some time for processing. + + The response body shall be empty." + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409-state-conflict-ONBOARDING-NOT-CREATED" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual VNF package artifact # +############################################################################### + '/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}': + #ETSI GS NFV-SOL 005 V2.4.1 location: 9.4.6 + parameters: + - name: artifactPath + description: > + This resource represents an individual artifact contained in a VNF package. + The client can use this resource to fetch the + content of the artifact. + in: path + type: string + required: true + - name: vnfPkgId + description: > + Identifier of the on-boarded VNF package. The identifier is + allocated by the NFVO. + This identifier can be retrieved from the "vnfPkgId" + attribute in the VnfPackageOnboardingNotification or + VnfPackageChangeNotification. + in: path + type: string + required: true + get: + summary: IndividualVNF package artifact. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Range + description: > + The request may contain a "Range" HTTP header to obtain single + range of bytes from the VNF package file. This can be used to + continue an aborted transmission. + If the NFVO does not support range requests, it should return the + whole file with a 200 OK response instead. + in: header + type: string + responses: + 200: + description: > + 200 OK. + + On success, the content of the artifact is returned. + The payload body shall contain a copy of the artifact file from + the VNF package, as defined by ETSI GS NFV-SOL 004. + The "Content-Type" HTTP header shall be set according to the + content type of the artifact file. If the content type cannot be + determined, the header shall be set to the value + "application/octet-stream". + headers: + WWW-Authenticate: + type: string + 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. + 206: + description: > + Partial Content. + + On success, if the NFVO supports range requests, a single + consecutive byte range from the content of the VNF package file is + returned. + The response body shall contain the requested part of the VNF + package file. + The "Content-Range" HTTP header shall be provided according to + IETF RFC 7233. + The "Content-Type" HTTP header shall be set as defined above for + the "200 OK" response. + headers: + WWW-Authenticate: + type: string + 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. + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFPackageManagement_resp.yaml#/responses/409" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': + post: + summary: Subscriptions + description: > + Subscribe. + + The POST method creates a new subscription. + Creation of two subscription resources with the same callbackURI and + the same filter can result in performance degradation and will provide + duplicates of notifications to the VNFM, and might make sense only in + very rare use cases. Consequently, the NFVO may either allow creating + a subscription resource if another 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 subscription resource (in which case it shall return a + “303 See Other” response code referencing the existing subscription + resource with the same filter and callbackUri). + parameters: + - name: PkgmSubscriptionRequest + description: > + Representation of the created subscription resource. + The HTTP response shall include a "Location" HTTP header that + points to the created subscription resource. + in: body + required: true + schema: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscriptionRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + + responses: + 201: + description: > + Created + Representation of the created subscription resource. + The HTTP response shall include a "Location" HTTP header that + points to the created subscription resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created VNF instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + 303: + $ref: "responses/SOL005_resp.yaml#/responses/303" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" get: + summary: > + Query Subscription Information + description: > + Query Subscription Information + + The GET method queries the list of active subscriptions of the + functional block that invokes the method. It can be used e.g. for + resynchronization after error situations. + parameters: + - name: "filter" + in: "query" + required: false + type: "string" + description: > + "Attribute-based filtering parameters according to clause 4.3.2. + The NFVO shall support receiving filtering parameters as part of the URI query + string. The OSS/BSS may supply filtering parameters. + All attribute names that appear in the PkgmSubscription and in data types + referenced from it shall be supported in attribute-based filtering parameters." + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string responses: 200: - description: Success \ No newline at end of file + description: > + OK + Active subscriptions of the functional block that invokes the + method. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #SOL003 location: 10.4.8 + parameters: + - name: subscriptionId + description: > + Identifier of this subscription. + This identifier can be retrieved from the resource referenced by + the "Location" HTTP header in the response to a POST request + creating a new subscription resource. It can also be retrieved from + the "id" attribute in the payload body of that response. + in: path + type: string + required: true + get: + summary: > + Query Subscription Information + description: > + Query Subscription Information + The GET method reads an individual subscription. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 200: + description: > + OK + + Representation of the subscription resource. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/SOL005VNFPMManagement_def.yaml#/definitions/PkgmSubscription" + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" + delete: + summary: > + Terminate subscription + description: > + Terminate subscription + + The DELETE method terminates an individual subscription. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: false + type: string + responses: + 204: + description: > + No Content + + The subscription resource was deleted successfully. + 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. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "responses/SOL005_resp.yaml#/responses/400" + 401: + $ref: "responses/SOL005_resp.yaml#/responses/401" + 403: + $ref: "responses/SOL005_resp.yaml#/responses/403" + 404: + $ref: "responses/SOL005_resp.yaml#/responses/404" + 405: + $ref: "responses/SOL005_resp.yaml#/responses/405" + 406: + $ref: "responses/SOL005_resp.yaml#/responses/406" + 416: + $ref: "responses/SOL005_resp.yaml#/responses/416" + 500: + $ref: "responses/SOL005_resp.yaml#/responses/500" + 503: + $ref: "responses/SOL005_resp.yaml#/responses/503" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml new file mode 100644 index 0000000..4310fa3 --- /dev/null +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPMManagement_def.yaml @@ -0,0 +1,466 @@ +definitions: + VnfPkgInfo: + type: object + required: + - id + - onboardingState + - operationalState + - usageState + properties: + id: + description: > + Identifier of the VNF package. This identifier is allocated by the NFVO. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfdId: + description: > + This identifier, which is managed by the + VNF provider, identifies the VNF package and the VNFD in a globally unique way. + It is copied from the VNFD of the on boarded VNF package. It shall be present + after the VNF package content has been on-boarded and absent otherwise. + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + Provider of the VNF package and the VNFD. This information is copied from the VNFD. + It shall be present after the VNF package content has been on-boarded and absent otherwise. + type: string + vnfProductName: + description: > + Name to identify the VNF product.Invariant for the VNF product lifetime. + This information is copied from the VNFD. It + shall be present after the VNF package content has been on-boarded and absent otherwise. + type: string + vnfSoftwareVersion: + description: > + Software version of the VNF. This is + changed when there is any change to the + software included in the VNF package. + This information is copied from the VNFD. + It shall be present after the VNF package + content has been on-boarded and absent otherwise. + $ref: "#/definitions/Version" + vnfdVersion: + description: > + The version of the VNFD. This information + is copied from the VNFD. It shall be + present after the VNF package content + has been on-boarded and absent otherwise. + $ref: "#/definitions/Version" + checksum: + description: > + Checksum of the on-boarded VNF + package. It shall be present after the VNF + package content has been on-boarded and absent otherwise. + $ref: "#/definitions/Checksum" + softwareImages: + description: > + Information about VNF package artifacts that are software images. + This attribute shall not be present before the VNF package content is on-boarded. + Otherwise, this attribute shall be present unless it has been requested to be + excluded per attribute selector. + type: "array" + items: + $ref: "#/definitions/VnfPackageSoftwareImageInfo" + + Version: + description: > + Software version of the VNF. This is + changed when there is any change to the + software included in the VNF package. + This information is copied from the VNFD. + It shall be present after the VNF package + content has been on-boarded and absent otherwise. + type: string + + Checksum: + description: > + This type represents the checksum of a VNF package or an artifact file. + required: + - algorithm + - hash + type: object + properties: + algorithm: + description: > + Name of the algorithm used to generate the checksum, + as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512. + type: string + hash: + description: > + The hexadecimal value of the checksum. + type: string + PkgmLinks: + description: > + This type represents the links to resources that a VNF package management notification can contain. + required: + - vnfPackage + - subscription + type: object + properties: + vnfPackage: + description: > + Link to the resource representing the VNF package to + which the notified change applies, i.e. the individual onboarded + VNF package resource that represents the VNF package. + $ref: "SOL005_def.yaml#/definitions/Link" + subscription: + description: > + Link to the related subscription. + $ref: "SOL005_def.yaml#/definitions/Link" + VnfPackageSoftwareImageInfo: + description: > + This type represents an artifact contained in a VNF package which represents a software image. + required: + - id + - name + - provider + - version + - checksum + - containerFormat + - diskFormat + - createdAt + - minDisk + - minRam + - size + - imagePath + type: object + properties: + id: + description: > + Name of the algorithm used to generate the checksum, + as defined in ETSI GS NFV-SOL 004 [5]. For example, SHA-256, SHA-512. + $ref: "SOL005_def.yaml#/definitions/IdentifierInVnfd" + name: + description: > + Name of the software image. + type: string + provider: + description: > + Provider of the software image. + type: string + version: + description: > + Version of the software image. + $ref: "#/definitions/Version" + checksum: + description: > + Checksum of the software image file. + $ref: "#/definitions/Checksum" + containerFormat: + description: > + Container format indicates whether the software image + is in a file format that also contains metadata about the actual software. + Permitted values: + - AKI: a kernel image format + - AMI: a machine image format + - ARI: a ramdisk image format + - BARE: the image does not have a container or + metadata envelope + - DOCKER: docker container format + - OVA: OVF package in a tarfile + - OVF: OVF container format + type: string + enum: + - AKI + - AMI + - ARI + - BARE + - DOCKER + - OVA + - OVF + diskFormat: + description: > + Disk format of a software image is the format of the + underlying disk image. + Permitted values: + - AKI: a kernel image format + - AMI: a machine image format + - ARI: a ramdisk image format + - ISO: an archive format for the data contents of an + optical disc, such as CD-ROM + - QCOW2: a common disk image format, which can + expand dynamically and supports copy on write + - RAW: an unstructured disk image format + - VDI: a common disk image format + - VHD: a common disk image format + - VHDX: enhanced version of VHD format + - VMDK: a common disk image format + type: string + enum: + - AKI + - AMI + - ARI + - ISO + - QCOW2 + - RAW + - VDI + - VHD + - VHDX + - VMDK + createdAt: + description: > + Time when this software image was created. + $ref: "SOL005_def.yaml#/definitions/DateTime" + minDisk: + description: > + The minimal disk for this software image in bytes. + type: integer + minRam: + description: > + The minimal RAM for this software image in bytes. + type: integer + size: + description: > + Size of this software image in bytes. + type: integer + userMetadata: + description: > + User-defined data. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + imagePath: + description: > + Path in the VNF package, which identifies the image + artifact and also allows to access a copy of the image + artifact. + type: string + + NsdOperationalStateType: + type: "string" + description: > + "The enumeration NsdOperationalStateType shall comply with the provisions + defined in Table 5.5.4.3-1 of GS NFV_SOL 005. It indicates the operational + state of the resource.ENABLED = The operational state of the resource + is enabled. DISABLED = The operational state of the resource is disabled." + enum: + - "ENABLED" + - "DISABLED" + PackageOperationalStateType: + type: "string" + description: > + "The enumeration PackageOperationalStateType shall + comply with the provisions defined in Table 9.5.4.4-1." + Acceptable values are: + -ENABLED - The VNF package is enabled, i.e. it can be used for instantiation of new VNF instances. + -DISABLED - The VNF package is disabled, i.e. it cannot be used for further VNF instantiation requests (unless and until the VNF package is re-enabled). + enum: + - "ENABLED" + - "DISABLED" + + PackageUsageStateType: + type: "string" + description: > + "The enumeration PackageUsageStateType shall comply with the provisions. + Acceptable values are: + -IN_USE - VNF instances instantiated from this VNF package exist. + -NOT_IN_USE - No existing VNF instance is instantiated from this VNF package" + enum: + - "IN_USE" + - "NOT_IN_USE" + + CreateVnfPkgInfoRequest: + type: "object" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + "This type represents the request parameters for creating + a new individual VNF package resource. It shall comply with + the provisions defined in Table 9.5.2.2-1." + + VnfPkgInfoModifications: + description: > + This type represents modifications to the information of a VNF package. + It shall comply with the provisions defined in Table 9.5.2.3-1. + properties: + operationalState: + description: > + New value of the operational state of the on-boarded + instance of the VNF package. + $ref: "#/definitions/PackageOperationalStateType" + userDefinedData: + description: > + User defined data to be updated. For existing keys, the value is replaced. + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + + UploadVnfPkgFromUriRequest: + type: "object" + properties: + userDefinedData: + $ref: "SOL005_def.yaml#/definitions/KeyValuePairs" + description: > + "The payload body contains the address information based on + which the NFVO can obtain the content of the VNF package" + + PkgmSubscription: + description: > + This type represents a subscription related to notifications about VNF package management. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier of this subscription resource + $ref: "SOL005_def.yaml#/definitions/Uri" + 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: "#/definitions/PkgmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to + $ref: "SOL005_def.yaml#/definitions/Uri" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "SOL005_def.yaml#/definitions/Link" + + PkgmSubscriptionRequest: + description: > + This type represents a subscription request related to VNF package management notifications about VNF package on boarding or changes. + type: object + required: + - callbackUri + 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: "#/definitions/PkgmNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL005_def.yaml#/definitions/Uri" + authentication: + description: > + Authentication parameters to conFigure the use of + authorization when sending notifications corresponding + to this subscription, as defined in clause 4.5.3.4. + This attribute shall only be present if the subscriber + requires authorization of notifications. + $ref: "SOL005_def.yaml#/definitions/SubscriptionAuthentication" + + PkgmNotificationsFilter: + description: > + This type represents a subscription filter related to notifications related to VNF package management. + At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter + to match (logical "and" between different filter attributes). If an attribute is an array, the attribute shall match if at least + one of the values in the array matches (logical "or" between the values of one filter attribute). + type: object + properties: + notificationTypes: + description: > + Match particular notification types. + Permitted values: + - VnfPackageOnboardingNotification + - VnfPackageChangeNotification + type: string + enum: + - VnfPackageOnboardingNotification + - VnfPackageChangeNotification + vnfProductsFromProviders: + description: > + If present, match VNF packages that contain VNF products from certain providers. + type: array + items: + type: object + required: + - vnfProvider + properties: + vnfProvider: + description: > + Name of the VNFprovider to match. + type: string + vnfProducts: + description: > + If present, match VNF packages that contain + VNF products with certain product names, from + one particular provider. + type: array + items: + type: object + required: + - vnfProductName + properties: + vnfProductName: + description: > + Name of the VNF product to match. + type: string + versions: + description: > + If present, match VNF packages that contain + VNF products with certain versions and a + certain product name, from one particular + provider. + type: array + items: + type: object + required: + - vnfSoftwareVersion + properties: + vnfSoftwareVersion: + description: > + VNF software version to match + $ref: "#/definitions/Version" + vnfdVersions: + description: > + If present, match VNF packages that contain + VNF products with certain VNFD versions, a + certain software version and a certain product + name, from one particular provider. + type: array + items: + $ref: "#/definitions/Version" + + vnfdId: + description: > + Match VNF packages with a VNFD identifier + listed in the attribute. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + vnfPkgId: + description: > + Match VNF packages with a package identifier + listed in the attribute. + May be present if the "notificationTypes" + attribute contains the value + "VnfPackageChangeNotification", and shall be + absent otherwise. + type: array + items: + $ref: "SOL005_def.yaml#/definitions/Identifier" + operationalState: + description: > + Match VNF packages with a package identifier + listed in the attribute. + May be present if the "notificationTypes" + attribute contains the value + "VnfPackageChangeNotification", and shall be + absent otherwise. + type: array + items: + $ref: "#/definitions/PackageOperationalStateType" + usageState: + description: > + Match particular usage state of the on-boarded VNF package. + May be present if the "notificationTypes" + attribute contains the value + "VnfPackageChangeNotification", and shall be + absent otherwise. + type: array + items: + $ref: "#/definitions/PackageUsageStateType" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml new file mode 100644 index 0000000..f49c5f4 --- /dev/null +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005_def.yaml @@ -0,0 +1,189 @@ + definitions: + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + + Link: + description: > + This type represents a link to a resource. + type: object + required: + - href + properties: + href: + description: > + URI of the referenced resource. + type: string + format: url + + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + format: "date-time" + + String: + description: > + This type represents stack of string values + type: string + + Object: + description: > + This type represents stack of object values + type: object + + KeyValuePairs: + description: > + This type represents a list of key-value pairs. The order of the pairs in the list is not significant. + In JSON, a set of key- value pairs is represented as an object. It shall comply with the provisions + defined in clause 4 of IETF RFC 7159. + type: object + + ProblemDetails: + #SOL005 location: 4.3.5.3-1 + description: > + The definition of the general "ProblemDetails" data structure from + IETF RFC 7807 [19] is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807 [19], the "status" and + "detail" attributes are mandated to be included by the present document, + to ensure that the response contains additional textual information about + an error. IETF RFC 7807 [19] foresees extensibility of the + "ProblemDetails" type. It is possible that particular APIs in the present + document, or particular implementations, define extensions to define + additional attributes that provide more information about the error. + The description column only provides some explanation of the meaning to + Facilitate understanding of the design. For a full description, see + IETF RFC 7807 [19]. + type: object + required: + - status + - detail + properties: + type: + description: > + A URI reference according to IETF RFC 3986 [5] that identifies the + problem type. It is encouraged that the URI provides human-readable + documentation for the problem (e.g. using HTML) when dereferenced. + When this member is not present, its value is assumed to be + "about:blank". + type: string + format: URI + title: + description: > + A short, human-readable summary of the problem type. It should not + change from occurrence to occurrence of the problem, except for + purposes of localization. If type is given and other than + "about:blank", this attribute shall also be provided. + A short, human-readable summary of the problem + type. It SHOULD NOT change from occurrence to occurrence of the + problem, except for purposes of localization (e.g., using + proactive content negotiation; see [RFC7231], Section 3.4). + type: string + status: + description: > + The HTTP status code for this occurrence of the problem. + The HTTP status code ([RFC7231], Section 6) generated by the origin + server for this occurrence of the problem. + type: integer + detail: + description: > + A human-readable explanation specific to this occurrence of the + problem. + type: string + instance: + description: > + A URI reference that identifies the specific occurrence of the + problem. It may yield further information if dereferenced. + type: string + format: URI + IdentifierInVnfd: + description: > + Identifier of the software image. + type: string + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string + + SubscriptionAuthentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the types of Authentication / Authorization which the API + consumer is willing to accept when receiving a notification. + Permitted values: + * BASIC: In every HTTP request to the notification endpoint, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the + notification endpoint, use an OAuth 2.0 Bearer token, obtained + using the client credentials grant type. + * TLS_CERT: Every HTTP request to the notification endpoint is sent + over a mutually authenticated TLS session, i.e. not only the + server is authenticated, but also the client is authenticated + during the TLS tunnel setup. + type: array + items: + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + - TLS_CERT + paramsBasic: + description: > + Parameters for authentication/authorization using BASIC. + Shall be present if authType is "BASIC" and the contained + information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + userName: + description: > + Username to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + password: + description: > + Password to be used in HTTP Basic authentication. Shall be + present if it has not been provisioned out of band. + type: string + paramsOauth2ClientCredentials: + description: > + Parameters for authentication/authorization using + OAUTH2_CLIENT_CREDENTIALS. + Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the + contained information has not been provisioned out of band. + Shall be absent otherwise. + type: object + properties: + clientId: + description: > + Client identifier to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + clientPassword: + description: > + Client password to be used in the access token request of the + OAuth 2.0 client credentials grant type. + Shall be present if it has not been provisioned out of band. + The clientId and clientPassword passed in a subscription shall + not be the same as the clientId and clientPassword that are used + to obtain authorization for API requests. Client credentials may + differ between subscriptions. The value of clientPassword should + be generated by a random process. + type: string + tokenEndpoint: + description: > + The token endpoint from which the access token can be obtained. + Shall be present if it has not been provisioned out of band. + $ref: "#/definitions/Uri" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml b/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml new file mode 100644 index 0000000..4036485 --- /dev/null +++ b/src/SOL005/VNFPackageManagement/responses/SOL005_resp.yaml @@ -0,0 +1,438 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 202: + description: > + Accepted + + The request was accepted for processing, but processing has not + been completed. The response shall have an empty payload body. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS Descriptor operation occurrence" resource corresponding to the + operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + 206: + description: > + Partial Content + + On success, if the NFVO supports range requests, a + single consecutive byte range from the content of the + NSD file is returned. + The response body shall contain the requested part of + the NSD file. + The "Content-Range" HTTP header shall be provided + according to IETF RFC 7233 [23]. + The "Content-Type" HTTP header shall be set as + defined above for the "200 OK" response. + headers: + Content-Range: + type: "string" + Content-Type: + type: "string" + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 303: + description: > + See Other + A subscription with the same callbackURI and the same filter already + exists and the policy of the VNFM is to not create redundant + subscriptions. + The HTTP response shall include a "Location" HTTP header that contains + the resource URI of the existing subscription resource. + The response body shall be empty. + 400: + description: > + Bad Request. + + Error: Invalid attribute-based filtering parameters. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-based-filtering-error: + description: > + Bad Request + Invalid attribute-based filtering parameters or Invalid attribute + selector. + It the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 400-attr-selector: + description: > + Bad Request + If the request is malformed or syntactically incorrect (e.g. if the + request URI contains incorrect query parameters or a syntactically + incorrect payload body), the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided, + and should include in the "detail" attribute more information about + the source of the problem. + If the request contains a malformed access token, the API producer + should respond with this response. The details of the error shall + be returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails structure may be + provided. + If there is an application error related to the client's input that + cannot be easily mapped to any other HTTP response code ("catch all + error"), the API producer shall respond with this response code.The + "ProblemDetails" structure shall be provided, and shall include in + the "detail" attribute more information about the source of the + problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 401: + description: > + Unauthorized + If the request contains no access token even though one is + required, or if the request contains an authorization token that + is invalid (e.g. expired or revoked), the API producer should + respond with this response. The details of the error shall be + returned in the WWW-Authenticate HTTP header, as defined in + IETF RFC 6750 and IETF RFC 7235. The ProblemDetails + structure may be provided. + headers: + Content-Type: + type: string + description: The MIME type of the body of the response. + WWW-Authenticate: + type: string + 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: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 403: + description: > + Forbidden + If the API consumer is not allowed to perform a particular request + to a particular resource, the API producer shall respond with this + response code. The "ProblemDetails" structure shall be provided. + It should include in the "detail" attribute information about the + source of the problem, and may indicate how to solve it. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + The "ProblemDetails" structure may be provided, + including in the "detail" attribute information about the source + of the problem, e.g. a wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also returned if the task is not supported for the NS instance + represented by the parent resource, which means that the task resource + consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-resource-not-exists-NSD: + description: > + Not Found + Error: The API producer did not find a current representation for the + target resource or is not willing to disclose that one exists. + Specifically in case of this task resource, the response code 404 shall + also be returned if the task is not supported for the NS Descriptor operation + occurrence represented by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, and shall contain a + ProblemDetails structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS instance represented by the parent + resource, and that the task resource consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported-NSD: + description: > + Not Found + If the API producer did not find a current representation for the + resource addressed by the URI passed in the request, or is not + willing to disclose that one exists, it shall respond with this + response code. + Specifically in case of this task resource, the reason can also be that + the task is not supported for the NS Descriptor operation occurrence + represented by the parent resource, and that the task resource + consequently does not exist. + The "ProblemDetails" structure may be provided, including in the + "detail" attribute information about the sourceof the problem, e.g. a + wrong resource URI variable. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 405: + description: > + Method Not Allowed + If a particular HTTP method is not supported for a particular + resource, the API producer shall respond with this response code. + The "ProblemDetails" structure may be omitted in that case. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 406: + description: > + If the "Accept" header does not contain at least one + name of a content type for which the NFVO can + provide a representation of the VNFD, the NFVO + shall respond with this response code. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 412: + description: > + Precondition Failed + 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: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 416: + description: > + The byte range passed in the "Range" header did not + match any available byte range in the NSD file (e.g. + "access after end of file"). + The response body may contain a ProblemDetails structure. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 416-range-not-satisfiable: + description: > + The byte range passed in the "Range" header did not + match any available byte range in the VNF package + file (e.g. "access after end of file"). + The response body may contain a ProblemDetails structure. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 422: + description: > + Un-processable Entity + If the payload body of a request contains syntactically correct + data (e.g. well-formed JSON) but the data cannot be processed + (e.g. because it fails validation against a schema), the API + producer shall respond with this response code. The + "ProblemDetails" structure shall be provided, and should include + in the "detail" attribute more information about the source of the + problem. + NOTE 2: This error response code is only applicable for methods + that have a request body. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 500: + description: > + Internal Server Error + If there is an application error not related to the client's input + that cannot be easily mapped to any other HTTP response code + ("catch all error"), the API producer shall respond withthis + response code. The ProblemDetails structure shall be provided, + and shall include in the "detail" attribute more information about + the source of the problem. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 503: + description: > + Service Unavailable + If the API producer encounters an internal overload situation of + itself or of a system it relies on, it should respond with this + response code, following the provisions in IETF RFC 7231 [13] for + the use of the Retry-After HTTP header and for the alternative + to refuse the connection. The "ProblemDetails" structure may be omitted. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml b/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml new file mode 100644 index 0000000..b99795f --- /dev/null +++ b/src/SOL005/VNFPackageManagement/responses/VNFPackageManagement_resp.yaml @@ -0,0 +1,291 @@ + # Copyright (c) ETSI 2017. + # https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: + 202-with-Location: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. The response body shall be empty. + The HTTP response shall include a "Location" HTTP + header that contains the URI of the newly-created + "NS lifecycle operation occurrence" resource + corresponding to the operation. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" + 202-with-Location-empty: + description: > + Accepted + + The request was accepted for processing, but the processing has not + been completed. On success, the HTTP response shall include a + "Location" HTTP header that contains the URI of the newly-created + "NS Descriptor operation occurrence" resource corresponding to the + operation. + The response body shall be empty. + headers: + Location: + description: The resource URI of the created NS instance + type: string + format: url + 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. + type: string + maximum: 1 + minimum: 0 + 406-state-conflict: + description: > + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409: + description: > + Conflict + + Error: The operation cannot be executed + currently, due to a conflict with the state of + the resource. + Typically, this is due to any of the following + scenarios: + - Disable a VNF package resource of + hich the operational state is not + ENABLED + - Enable a VNF package resource of + which the operational state is not + DISABLED + The response body shall contain a + ProblemDetails structure, in which the + "detail" attribute shall convey more + information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + + 409-another-nsd-operation-ongoing: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that another Descriptor operation is + ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-inconsistent-state: + description: > + Conflict + + Another request is in progress that prohibits the fulfilment of + the current request, or the current resource state is inconsistent + with the request. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-INSTANTIATED: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + INSTANTIATED state. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-not-FAILED_TEMP: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is + not in FAILED_TEMP state, or another error handling action is starting, + such as rollback or fail. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-NOT-INSTANTIATED: + description: > + Conflict + + The operation cannot be executed currently, due to a conflict with the + state of the NS instance resource. + Typically, this is due to the fact that the NS instance resource is in + NOT-INSTANTIATED state, or that another lifecycle management operation + is ongoing. + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute should convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-ONBOARDING: + description: > + Conflict + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" + of the VNF package has a value different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-ONBOARDING-NOT-CREATED: + description: > + Conflict + + Error: The operation cannot be executed currently, + due to a conflict with the state of the resource. + Typically, this is due to the fact that the onboarding + state of the VNF package resource is not CREATED . + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + type: string + maximum: 1 + minimum: 1 + 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. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails" \ No newline at end of file -- GitLab