From 46079d2dfe29a731f14697cb5332d003eb7272c2 Mon Sep 17 00:00:00 2001 From: Gergely Csatari Date: Fri, 24 Nov 2017 16:05:30 +0100 Subject: [PATCH] WIP: VNF Lifecycle Management interface Things to do: - Fix the attribite fliters as it was discussed Change-Id: I008b6f98cdb96f718ceb68c1d32d81ae0101a8d5 Signed-off-by: Gergely Csatari --- .../VNFLifecycleManagement.yaml | 1765 +++++++++++++++++ .../VNFLifecycleManagement_def.yaml | 1033 ++++++++++ .../VNFLifecycleManagement_resp.yaml | 175 ++ ...OL002SOL003VNFLifecycleManagement_def.yaml | 1259 ++++++++++++ src/definitions/SOL002SOL003_def.yaml | 94 + src/responses/SOL002SOL003_resp.yaml | 355 ++++ 6 files changed, 4681 insertions(+) create mode 100644 src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml create mode 100644 src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml create mode 100644 src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml create mode 100644 src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml create mode 100644 src/definitions/SOL002SOL003_def.yaml create mode 100644 src/responses/SOL002SOL003_resp.yaml diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml new file mode 100644 index 00000000..13572ccf --- /dev/null +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -0,0 +1,1765 @@ +swagger: "2.0" + +info: + version: "2.3.0" + title: SOL003 + license: + name: "ETSI Forge copyright notice" + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + +basePath: "/vnflcm/v1" + +schemes: + - https + +consumes: + - "application/json" +produces: + - "application/json" + +paths: +############################################################################### +# VNF instances # +############################################################################### + '/vnf_instances': + #SOL003 location: 5.4.2 + post: + #TODO: Add headers defined in 4.3.4.2 + description: "The POST method creates a new VNF instance resource." + parameters: + - name: createVnfRequest + description: The VNF creation parameters + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CreateVnfRequest" + - 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: A VNF Instance identifier was created successfully + headers: + #TODO: Add headers defined in 4.3.4.3 + 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/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 422: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: + description: > + The GET method queries information about multiple VNF instances. + parameters: + - name: filter + description: > + Attribute-based filtering parameters. The VNFM shall support + receiving filtering parameters as part of the URI query string. + The NFVO may supply filtering parameters. All attribute names + that appear in the VnfInstance and in data types referenced + from it shall be supported in attribute-based filtering + parameters. + in: query + minimum: 0 + maximum: 1 + type: array + allowEmptyValue: true + collectionFormat: multi + items: + type: string + pattern: '[a-zA-Z][.a-zA-Z]*\.(eq|neq|gt|lt|gte|lte|cont|ncont)\?=[0-9](,[0-9])*' + - name: all_fields + description: > + Include all complex attributes in the response. This URI query + parameter requests that all complex attributes are included in + the response, including those suppressed by exclude_default. It + is inverse to the "exclude_default" parameter. The API producer + shall support this parameter for certain resources. Details are + defined in the clauses specifying the actual resources. The VNFM + shall support this parameter. + in: query + minimum: 0 + maximum: 1 + type: boolean + - name: fields + description: > + Complex attributes to be included into the response. This URI + query parameter requests that only the listed complex + attributes are included in the response. + The parameter shall be formatted as a list of attribute names. + An attribute name shall either be the name of an attribute, or a + path consisting of the names of multiple attributes with + parent-child relationship, separated by ".". Attribute names in + the list shall be separated by comma (","). Valid attribute + names for a particular GET request are the names of all complex + attributes in the expected response that have a lower cardinality + bound of 0 and that are not conditionally mandatory. + The API producer should support this parameter for certain + resources. Details are defined in the clauses specifying the + actual resources. + The VNFM should support this parameter. + in: query + minimum: 0 + maximum: 1 + type: array + collectionFormat: csv + items: + type: string + pattern: '(([a-zA-Z])?(\.[a-zA-Z])*)?,(([a-zA-Z])?(\.[a-zA-Z])*)*' + - name: exclude_fields + description: > + Complex attributes to be excluded from the response. This URI + query parameter requests that the listed complex attributes are + excluded from the response. For the format, eligible attributes + and support by the API producer, the provisions defined for the + "fields" parameter shall apply. + The VNFM should support this parameter. + in: query + minimum: 0 + maximum: 1 + type: array + collectionFormat: csv + items: + type: string + pattern: '(([a-zA-Z])?(\.[a-zA-Z])*)?,(([a-zA-Z])?(\.[a-zA-Z])*)*' + - name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. + Presence of this URI query parameter requests that a default set + of complex attributes shall be excluded from the response. The + default set is defined per resource in the present document. Not + every resource will necessarily have such a default set. Only + complex attributes with a lower cardinality bound of zero that are + not conditionally mandatory can be included in the set. + The API producer shall support this parameter for certain + resources. Details are defined in the clauses specifying the + actual resources. This parameter is a flag, i.e. it has no + value. + If a resource supports attribute selectors and none of the + attribute selector parameters is specified in a GET request, the + "exclude_default" parameter shall be assumed as the default. + The VNFM shall support this parameter. + The following attributes shall be excluded from the VnfInstance + structure in the response body if this parameter is provided, or + none of the parameters "all_fields," "fields", "exclude_fields", + "exclude_default" are provided: + * vnfConfigurableProperties + * vimConnectionInfo + * instantiatedVnfInfo + * metadata + * extensions + in: query + minimum: 0 + maximum: 1 + type: boolean + - 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 zero or more VNF instances was queried + successfully. The response body shall contain + representations of zero or more VNF 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/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Individual VNF instance # +############################################################################### + '/vnf_instances/{vnfInstanceId}': + #SOL003 location: 5.4.3.2 + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance. This identifier can be retrieved from + the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new VNF instance resource. It can also + be retrieved from the "id" attribute in the payload body of that + response. + in: path + type: string + required: true + get: + description: > + Information about an individual VNF instance was queried successfully. + responses: + 200: + description: > + Information about zero or more VNF instances was queried + successfully. The response body shall contain + representations of zero or more VNF 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: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + patch: + #SOL003 location: 5.4.3.3.4 + description: > + This method modifies an individual VNF instance resource. Changes to + the VNF configurable properties are applied to the configuration in + the VNF instance, and are reflected in the representation of this + resource. Other changes are applied to the VNF instance information + managed by the VNFM, and are reflected in the representation of this + resource + parameters: + - name: vnfInfoModifications + description: Input parameters for VNF info modification + required: true + in: body + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing" + 412: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + delete: + #SOL003 location: 5.4.3.3.5 + description: > + This method deletes an individual VNF instance resource. + responses: + 204: + description: > + The VNF instance resource and the associated VNF 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/SOL002SOL003_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + 412: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Instantiate VNF task # +############################################################################### + '/vnf_instances/{vnfInstanceId}/instantiate': + #SOL003 location: 5.4.4.2 + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance. This identifier can be retrieved from + the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new VNF instance resource. It can also + be retrieved from the "id" attribute in the payload body of that + response. + in: path + type: string + required: true + post: + #SOL003 location: 5.4.4.3.1 + description: > + The POST method instantiates a VNF instance. + parameters: + - name: InstantiateVnfRequest + description: Parameters for the VNF instantiation. + in: body + required: true + schema: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest" + responses: + 200: + description: > + Information about zero or more VNF instances was queried + successfully. The response body shall contain + representations of zero or more VNF 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: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: + description: > + Information about an individual VNF instance was queried successfully. + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance. This identifier can be retrieved from + the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new VNF instance resource. It can also + be retrieved from the "id" attribute in the payload body of that + response. + in: path + type: string + required: true + responses: + 200: + description: > + Information about zero or more VNF instances was queried + successfully. The response body shall contain + representations of zero or more VNF 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: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 416: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + patch: + #SOL003 location: 5.4.3.3.4 + description: > + This method modifies an individual VNF instance resource. Changes to + the VNF configurable properties are applied to the configuration in + the VNF instance, and are reflected in the representation of this + resource. Other changes are applied to the VNF instance information + managed by the VNFM, and are reflected in the representation of this + resource + parameters: + - name: vnfInfoModifications + description: Input parameters for VNF info modification + required: true + in: body + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" + - name: vnfInstanceId + description: > + Identifier of the VNF instance. This identifier can be retrieved from + the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new VNF instance resource. It can also + be retrieved from the "id" attribute in the payload body of that + response. + in: path + type: string + required: true + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 412: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + delete: + #SOL003 location: 5.4.3.3.5 + description: > + This method deletes an individual VNF instance resource. + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance. This identifier can be retrieved from + the resource referenced by the "Location" HTTP header in the response + to a POST request creating a new VNF instance resource. It can also + be retrieved from the "id" attribute in the payload body of that + response. + in: path + type: string + required: true + responses: + 204: + description: > + The VNF instance resource and the associated VNF 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/SOL002SOL003_resp.yaml#/responses/400-attr-selector" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 412: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Scale VNF task # +############################################################################### + '/vnf_instances/{vnfInstanceId}/scale': + #SOL003 location: 5.4.5.2 + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance to be scaled. This identifier can be + retrieved from the resource referenced by the "Location" HTTP header + in the response to a POST request creating a new VNF instance + resource. It can also be retrieved from the "id" attribute in the + payload body of that response. + in: path + type: string + required: true + post: + #SOL003 location: 5.4.5.3.1 + description: > + The POST method requests to scale a VNF instance resource + incrementally. + parameters: + - name: ScaleVnfRequest + description: Parameters for the scale VNF operation. + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfRequest" + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Scale VNF to Level task # +############################################################################### + '/vnf_instances/{vnfInstanceId}/scale_to_level': + #SOL003 location: 5.4.6.2 + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance to be scaled to a target level. This + identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new VNF instance resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + in: path + type: string + required: true + post: + #SOL003 location: 5.4.6.3.1 + description: > + The POST method requests to scale a VNF instance resource to a target + level. + parameters: + - name: ScaleVnfToLevelRequest + description: Parameters for the scale VNF to Level operation. + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfToLevelRequest" + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Change VNF Flavour task # +############################################################################### + '/vnf_instances/{vnfInstanceId}/change_flavour': + #SOL003 location: 5.4.7.2 + parameters: + - name: vnfInstanceId + description: > + The identifier of the VNF instance of which the deployment flavour + is requested to be changed. This identifier can be retrieved from + the resource referenced by the "Location" HTTP header in the + response to a POST request creating a new VNF instance resource. It + can also be retrieved from the "id" attribute in the payload body of + that response. + in: path + type: string + required: true + post: + description: > + The POST method changes the deployment flavour of a VNF instance. + parameters: + - name: ChangeVnfFlavourRequest + description: Parameters for the Change VNF Flavour operation. + in: body + required: true + schema: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest" + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Terminate VNF task # +############################################################################### + '/vnf_instances/{vnfInstanceId}/terminate': + #SOL003 location: 5.4.8.2 + parameters: + - name: vnfInstanceId + description: > + The identifier of the VNF instance to be terminated. This identifier + can be retrieved from the resource referenced by the "Location" HTTP + header in the response to a POST request creating a new VNF instance + resource. It can also be retrieved from the "id" attribute in the + payload body of that response. + in: path + type: string + required: true + post: + description: > + The POST method terminates a VNF instance. + parameters: + - name: TerminateVnfRequest + description: Parameters for the VNF termination. + in: body + required: true + schema: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest" + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Heal VNF task # +############################################################################### + '/vnf_instances/{vnfInstanceId}/heal': + #SOL003 location: 5.4.9.2 + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance to be healed. This identifier can be + retrieved from the resource referenced by the "Location" HTTP + header in the response to a POST request creating a new VNF instance + resource. It can also be retrieved from the "id" attribute in the + payload body of that response. + in: path + type: string + required: true + post: + description: > + The POST method requests to heal a VNF instance resource. + parameters: + - name: HealVnfRequest + description: Parameters for the Heal VNF operation. + in: body + required: true + schema: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest" + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Operate VNF task # +############################################################################### + '/vnf_instances/{vnfInstanceId}/operate': + #SOL003 location: 5.4.9.2 + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance to be operated. This identifier can + be retrieved from the resource referenced by the "Location" HTTP + header in the response to a POST request creating a new VNF instance + resource. It can also be retrieved from the "id" attribute in the + payload body of that response. + in: path + type: string + required: true + post: + description: > + The POST method changes the operational state of a VNF instance resource. + parameters: + - name: OperateVnfRequest + description: Parameters for the Operate VNF operation. + in: body + required: true + schema: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest" + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Change external VNF connectivity task # +############################################################################### + '/vnf_instances/{vnfInstanceId}/change_ext_vls': + #SOL003 location: 5.4.9.2 + parameters: + - name: vnfInstanceId + description: > + Identifier of the VNF instance of which the external connectivity is + requested to be changed. This identifier can be retrieved from the + resource referenced by the "Location" HTTP header in the response to + a POST request creating a new VNF instance resource. It can also be + retrieved from the "id" attribute in the payload body of that + response. + in: path + type: string + required: true + post: + description: > + The POST method changes the external connectivity of a VNF instance. + parameters: + - name: ChangeExtVnfConnectivityRequest + description: > + Parameters for the Change external VNF connectivity operation. + in: body + required: true + schema: + $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest" + responses: + 202: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# VNF LCM operation occurrences # +############################################################################### + '/vnf_lcm_op_occs': + #SOL003 location: 5.4.12 + get: + description: > + The client can use this method to query status information about + multiple VNF lifecycle management operation occurrences. + parameters: + - name: filter + description: > + Attribute-based filtering parameters. The VNFM shall support + receiving filtering parameters as part of the URI query string. + The NFVO may supply filtering parameters. All attribute names + that appear in the VnfLcmOpOcc and in data types referenced + from it shall be supported in attribute-based filtering + parameters. + in: query + minimum: 0 + maximum: 1 + type: array + allowEmptyValue: true + collectionFormat: multi + items: + type: string + pattern: '[a-zA-Z][.a-zA-Z]*\.(eq|neq|gt|lt|gte|lte|cont|ncont)\?=[0-9](,[0-9])*' + - name: all_fields + description: > + Include all complex attributes in the response. This URI query + parameter requests that all complex attributes are included in + the response, including those suppressed by exclude_default. It + is inverse to the "exclude_default" parameter. The API producer + shall support this parameter for certain resources. Details are + defined in the clauses specifying the actual resources. The VNFM + shall support this parameter. + in: query + minimum: 0 + maximum: 1 + type: boolean + - name: fields + description: > + Complex attributes to be included into the response. This URI + query parameter requests that only the listed complex + attributes are included in the response. + The parameter shall be formatted as a list of attribute names. + An attribute name shall either be the name of an attribute, or a + path consisting of the names of multiple attributes with + parent-child relationship, separated by ".". Attribute names in + the list shall be separated by comma (","). Valid attribute + names for a particular GET request are the names of all complex + attributes in the expected response that have a lower cardinality + bound of 0 and that are not conditionally mandatory. + The API producer should support this parameter for certain + resources. Details are defined in the clauses specifying the + actual resources. + The VNFM should support this parameter. + in: query + minimum: 0 + maximum: 1 + type: array + collectionFormat: csv + items: + type: string + pattern: '(([a-zA-Z])?(\.[a-zA-Z])*)?,(([a-zA-Z])?(\.[a-zA-Z])*)*' + - name: exclude_fields + description: > + Complex attributes to be excluded from the response. This URI + query parameter requests that the listed complex attributes are + excluded from the response. For the format, eligible attributes + and support by the API producer, the provisions defined for the + "fields" parameter shall apply. + The VNFM should support this parameter. + in: query + minimum: 0 + maximum: 1 + type: array + collectionFormat: csv + items: + type: string + pattern: '(([a-zA-Z])?(\.[a-zA-Z])*)?,(([a-zA-Z])?(\.[a-zA-Z])*)*' + - name: exclude_default + description: > + Indicates to exclude the following complex attributes from the + response. + Presence of this URI query parameter requests that a default set + of complex attributes shall be excluded from the response. The + default set is defined per resource in the present document. Not + every resource will necessarily have such a default set. Only + complex attributes with a lower cardinality bound of zero that are + not conditionally mandatory can be included in the set. + The API producer shall support this parameter for certain + resources. Details are defined in the clauses specifying the + actual resources. This parameter is a flag, i.e. it has no + value. + If a resource supports attribute selectors and none of the + attribute selector parameters is specified in a GET request, the + "exclude_default" parameter shall be assumed as the default. + The VNFM shall support this parameter. + The following attributes shall be excluded from the VnfLcmOpOcc + structure in the response body if this parameter is provided, or + none of the parameters "all_fields," "fields", "exclude_fields", + "exclude_default" are provided: + * operationParams + * error + * resourceChanges + * changedInfo + * changedExtVirtualLinks. + in: query + minimum: 0 + maximum: 1 + type: boolean + responses: + 200: + description: > + Status information for zero or more VNF lifecycle management + operation occurrences was queried successfully. The response body + shall contain status information about zero or more VNF lifecycle + operation occurrences. + headers: + #TODO: Add headers defined in 4.3.4.3 + 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/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Individual VNF LCM operation occurrence # +############################################################################### + '/vnf_lcm_op_occs/{vnfLcmOpOccId}': + #SOL003 location: 5.4.13 + parameters: + - name: vnfLcmOpOccId + description: > + Identifier of a VNF lifecycle management operation occurrence. + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a PATCH or POST request + triggering a VNF LCM operation. It can also be retrieved from the + "vnfLcmOpOccId" attribute in the + VnfLcmOperationOccurrenceNotification. + in: path + required: true + type: string + get: + description: > + The client can use this method to retrieve status information about a + VNF lifecycle management operation occurrence by reading an individual + "VNF LCM operation occurrence" resource. + responses: + 200: + description: > + Information about an individual VNF instance was queried + successfully. The response body shall contain status + information about a VNF lifecycle management operation + occurrence. + headers: + #TODO: Add headers defined in 4.3.4.3 + 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/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Retry operation task # +############################################################################### + '/vnf_lcm_op_occs/{vnfLcmOpOccId}/retry': + #SOL003 location: 5.4.14 + parameters: + - name: vnfLcmOpOccId + description: > + Identifier of a VNF 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 PATCH + or POST request triggering a VNF LCM operation. It can also be + retrieved from the "vnfLcmOpOccId" attribute in the + VnfLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + description: > + The POST method initiates retrying a VNF lifecycle operation if that + operation has experienced a temporary failure, i.e. the related + "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + responses: + 202: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Rollback operation task # +############################################################################### + '/vnf_lcm_op_occs/{vnfLcmOpOccId}/rollback': + #SOL003 location: 5.4.15 + parameters: + - name: vnfLcmOpOccId + description: > + Identifier of a VNF lifecycle management operation occurrence to be + be rolled back. This identifier can be retrieved from the resource + referenced by the "Location" HTTP header in the response to a PATCH + or POST request triggering a VNF LCM operation. It can also be + retrieved from the "vnfLcmOpOccId" attribute in the + VnfLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + description: > + The POST method initiates rolling back a VNF lifecycle operation if + that operation has experienced a temporary failure, i.e. the related + "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + responses: + 202: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Fail operation task # +############################################################################### + '/vnf_lcm_op_occs/{vnfLcmOpOccId}/fail': + #SOL003 location: 5.4.16 + parameters: + - name: vnfLcmOpOccId + description: > + Identifier of a VNF lifecycle management operation occurrence to be + be marked as "failed". This identifier can be retrieved from the + resource referenced by the "Location" HTTP header in the response to + a PATCH or POST request triggering a VNF LCM operation. It can also + be retrieved from the "vnfLcmOpOccId" attribute in the + VnfLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + description: > + The POST method marks a VNF lifecycle management operation occurrence + as "finally failed" if that operation occurrence is in "FAILED_TEMP" + state. + responses: + 200: + description: > + The state of the VNF lifecycle management operation occurrence was + changed successfully. The response shall include a representation + of the VNF lifecycle 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/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Cancel operation task # +############################################################################### + '/vnf_lcm_op_occs/{vnfLcmOpOccId}/cancel': + #SOL003 location: 5.4.17 + parameters: + - name: vnfLcmOpOccId + description: > + Identifier of a VNF lifecycle management operation occurrence to be + be cancelled. This identifier can be retrieved from the + resource referenced by the "Location" HTTP header in the response to + a PATCH or POST request triggering a VNF LCM operation. It can also + be retrieved from the "vnfLcmOpOccId" attribute in the + VnfLcmOperationOccurrenceNotification. + in: path + required: true + type: string + post: + description: > + The POST method initiates cancelling an ongoing VNF lifecycle + operation while it is being executed or rolled back, i.e. the related + "VNF LCM operation occurrence" is either in "PROCESSING" or + "ROLLING_BACK" state. + responses: + 202: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/202" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + description: > + The operation cannot be executed currently, due to a conflict with + the state of the VNF 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/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': + #SOL003 location: 5.4.18 + post: + description: > + The POST method creates a new subscription. + parameters: + - name: LccnSubscriptionRequest + description: > + Details of the subscription to be created. + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest" + responses: + 201: + description: > + 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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + get: + 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. + parameters: + - name: filter + description: > + Attribute-based filtering parameters. The VNFM shall support + receiving filtering parameters as part of the URI query string. + The NFVO may supply filtering parameters. All attribute names + that appear in the VnfInstance and in data types referenced + from it shall be supported in attribute-based filtering + parameters. + in: query + minimum: 0 + maximum: 1 + type: array + allowEmptyValue: true + collectionFormat: multi + items: + type: string + pattern: '[a-zA-Z][.a-zA-Z]*\.(eq|neq|gt|lt|gte|lte|cont|ncont)\?=[0-9](,[0-9])*' + 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 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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" + 400: + description: > + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #SOL003 location: 5.4.19 + 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: + description: > + The GET method retrieves information about a subscription by reading + an individual subscription resource. + 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 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/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + delete: + description: > + The DELETE method terminates an individual subscription. + 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/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Notification endpoint VnfLcmOperationOccurrenceNotification # +############################################################################### + '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification': + #SOL003 location: 5.4.20 + post: + description: > + The POST method delivers a notification from the server to the client. + parameters: + - name: VnfLcmOperationOccurrenceNotification + description: The VNF creation parameters + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification" + responses: + 204: + description: > + The notification was delivered 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/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Notification endpoint VnfIdentifierCreationNotification # +############################################################################### + '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification': + #SOL003 location: 5.4.20 + post: + description: > + The POST method delivers a notification from the server to the client. + parameters: + - name: VnfIdentifierCreationNotification + description: > + A notification about the creation of a VNF identifier and the + related VNF instance resource. + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierCreationNotification" + responses: + 204: + description: > + The notification was delivered 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/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Notification endpoint VnfIdentifierDeletionNotification # +############################################################################### + '/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification': + #SOL003 location: 5.4.20 + post: + description: > + The POST method delivers a notification from the server to the client. + parameters: + - name: VnfIdentifierDeletionNotification + description: > + A notification about the deletion of a VNF identifier and the + related VNF instance resource. + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierDeletionNotification" + responses: + 204: + description: > + The notification was delivered 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/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 404: + $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/404-task-not-suported-VNF-LCM" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" diff --git a/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml new file mode 100644 index 00000000..5006bc28 --- /dev/null +++ b/src/SOL003/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml @@ -0,0 +1,1033 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + CancelMode: + description: > + This type represents a parameter to select the mode of cancelling an + ongoing VNF LCM operation occurrence. + type: object + required: + - cancelMode + properties: + cancelMode: + description: > + Cancellation mode to apply. + $ref: "#/definitions/CancelModeType" + + CancelModeType: + description: > + Cancellation mode. + GRACEFUL: The VNFM shall not start any new resource management operation + and shall wait for the ongoing resource management operations in the + underlying system, typically the VIM, to finish execution or to time + out. After that, the VNFM shall put the operation occurrence into the + FAILED_TEMP state. + FORCEFUL: The VNFM shall not start any new resource management + operation, shall cancel the ongoing resource management operations + in the underlying system, typically the VIM, and shall wait for the + cancellation to finish or to time out. After that, the VNFM shall put + the operation occurrence into the FAILED_TEMP state. + type: string + enum: + - GRACEFUL + - FORCEFUL + + ChangeExtVnfConnectivityRequest: + #SOL003 location: 5.5.2.11 + description: > + This type represents request parameters for the + "Change external VNF connectivity" operation to modify the external + connectivity of a VNF instance. + type: object + required: + - extVirtualLinks + properties: + extVirtualLinks: + description: > + Information about external VLs to change (e.g. connect the VNF to). + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkData" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance, or refer to external virtual + links. This attribute shall only be supported and may be present + if VNF-related resource management in direct mode is applicable. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VimConnectionInfo" + additionalParams: + description: > + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "ChangeExtVnfConnectivityOpConfig".". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + ChangeVnfFlavourRequest: + #SOL003 location: 5.5.2.7 + description: > + This type represents request parameters for the "Change VNF flavour" operation. + type: object + required: + - newFlavourId + properties: + newFlavourId: + description: > + Identifier of the VNF deployment flavour to be instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + 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 VNFD is instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkData" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance, or refer to + external / externally-managed virtual links. This attribute shall + only be supported and may be present if VNF-related resource + management in direct mode is applicable. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VimConnectionInfo" + additionalParams: + description: > + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "InstantiateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + extCpInfo: + type: object + required: + - id + - cpdId + properties: + id: + description: > + Identifier of the external CP instance and the related information + instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the external connection point descriptor in the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + addresses: + description: > + List of network addresses that have been configured (statically or + dynamically) on the CP. + type: array + items: + $ref: "#/definitions/NetworkAddressInfo" + + ExtManagedVirtualLinkInfo: + #SOL003 location: 5.5.3.3 + type: object + required: + - id + - vnfVirtualLinkDescId + properties: + id: + description: > + Identifier of the externally-managed internal VL and the related + externally-managed VL information instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfVirtualLinkDescId: + description: > + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + networkResource: + description: > + Reference to the VirtualNetwork resource. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ResourceHandle" + vnfLinkPorts: + description: > + Link ports of this VL. + type: array + items: + $ref: "#/definitions/VnfLinkPort" + + HealVnfRequest: + type: object + properties: + cause: + description: > + Indicates the reason why a healing procedure is required. + type: string + additionalParams: + description: > + 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". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + InstantiateVnfRequest: + #SOL003 location: 5.5.2.4 + type: object + required: + - flavourId + properties: + flavourId: + description: > + Identifier of the VNF deployment flavour to be instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + 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 VNFD is instantiated. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + extVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkData" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance, or refer to + external / externally-managed virtual links. This attribute shall + only be supported and may be present if VNF-related resource + management in direct mode is applicable. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VimConnectionInfo" + localizationLanguage: + description: > + Localization language of the VNF to be instantiated. The value shall + comply with the format defined in IETF RFC 5646. + type: string + additionalParams: + description: > + Additional input parameters for the instantiation process, specific + to the VNF being instantiated, as declared in the VNFD as part of + "InstantiateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + InstantiatedVnfInfo: + type: object + required: + - flavourId + - vnfState + properties: + flavourId: + description: > + Identifier of the VNF deployment flavour applied to this VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vnfState: + description: > + The state of the VNF instance. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/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. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" + extCpInfo: + description: > + Information about the external CPs exposed by the VNF instance. + type: array + minItems: 1 + items: + $ref: "#/definitions/extCpInfo" + extVirtualLinkInfo: + description: > + Information about the external VLs the VNF instance is connected to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" + extManagedVirtualLinkInfo: + description: > + External virtual links the VNF instance is connected to. + type: array + items: + $ref: "#/definitions/ExtManagedVirtualLinkInfo" + monitoringParameters: + description: > + Active monitoring parameters. + type: array + items: + $ref: "#/definitions/MonitoringParameter" + localizationLanguage: + 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. + type: array + items: + $ref: "#/definitions/VnfcResourceInfo" + virtualLinkResourceInfo: + description: > + Information about the virtualised network resources used by the VLs + of the VNF instance. + type: array + items: + $ref: "#/definitions/VnfVirtualLinkResourceInfo" + virtualStorageResourceInfo: + 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: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: URI of this resource. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + indicators: + description: Indicators related to this VNF instance, if applicable. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_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 VNF instance + resource (i.e. VNF instance in NOT_INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_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 VNF instance + resource (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + scale: + description: > + Link to the "scale" task resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource (i.e. VNF instance + is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + scaleToLevel: + description: > + Link to the "scale_to_level" task resource, if the related + operation is supported for this VNF instance, and is possible + based on the current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + changeFlavour: + description: > + Link to the "change_flavour" task resource, if the related + operation is supported for this VNF instance, and is possible + based on the current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + heal: + description: > + Link to the "heal" task resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + operate: + description: > + Link to the "operate" task resource, if the related operation is + supported for this VNF instance, and is possible based on the + current status of this VNF instance resource + (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + changeExtConn: + description: > + Link to the "change_ext_conn" task resource, if the related + operation is possible based on the current status of this VNF + instance resource (i.e. VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + + MonitoringParameter: + type: object + required: + - id + - value + - timeStamp + properties: + id: + description: > + Identifier of the monitoring parameter defined in the VNFD. + $ref: "../../../definitions/SOL002SOL003_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 + outside the scope of the present document. + 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 + + NetworkAddressInfo: + description: > + This type represents information about a network address that has been assigned. + type: object + required: + - macAddress + properties: + macAddress: + description: > + Assigned MAC address. + type: string + #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)? + ipAddress: + description: > + IP address. Present if an IP address was assigned. + type: string + #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)? + subnetIpRanges: + description: > + IP address ranges defining the subnet in which the IP address was + assigned. May be present if the "ipAddress" attribute is present, + and shall be absent if the "ipAddress" attribute is not present. + type: array + items: + type: object + required: + - minIpAddress + - maxIpAddress + properties: + minIpAddress: + description: > + Lowest IP address belonging to the range. + type: string + format: ipaddress + maxIpAddress: + description: > + Highest IP address belonging to the range. + type: string + format: ipaddress + + OperateVnfRequest: + description: > + This type represents request parameters for the "Operate VNF" operation. + type: object + required: + - changeStateTo + properties: + changeStateTo: + description: > + The desired operational state (i.e. started or stopped) to change + the VNF to. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" + stopType: + description: > + It signals whether forceful or graceful stop is requested. Ignored + if changeStateTo=STARTED. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/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. Ignored + if changeStateTo=STARTED. + type: integer + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the process, + specific to the VNF of which the operation status is changed, as + declared in the VNFD as part of "OperateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + TerminateVnfRequest: + type: object + required: + - terminationType + properties: + terminationType: + description: > + Indicates whether forceful or graceful termination is requested. + Permitted values: + * FORCEFUL: The VNFM will shut down the VNF and release the + resources immediately after accepting the request. + * GRACEFUL: The VNFM will first arrange to take the VNF out of + service after accepting the request. Once the operation of taking + the VNF out of service finishes (irrespective of whether it has + succeeded or failed) or once the timer value specified in the + "gracefulTerminationTimeout" attribute expires, the VNFM will shut + down the VNF and release the resources. + type: string + enum: + - FORCEFUL + - GRACEFUL + gracefulTerminationTimeout: + description: > + This attribute is only applicable in case of graceful termination. + It defines the time to wait for the VNF to be taken out of service + before shutting down the VNF and releasing the resources. + The unit is seconds. + If not given and the "terminationType" attribute is set to + "GRACEFUL", it is expected that the VNFM waits for the successful + taking out of service of the VNF, no matter how long it takes, + before shutting down the VNF and releasing the resources. + type: integer + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the termination + process, specific to the VNF being terminated, as declared in the + VNFD as part of "TerminateVnfOpConfig". + $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + virtualStorageDescId: + description: > + Identifier of the VirtualStorageDesc in the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + storageResource: + description: > + Reference to the VirtualStorage resource. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ResourceHandle" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + metadata: + description: > + Metadata about this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + 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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: + description: > + Reference to the applicable VDU in the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + computeResource: + description: > + Reference to the VirtualCompute resource. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the VDU CPD, cpdId, in the VNFD. + $ref: "../../../definitions/SOL002SOL003_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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + addresses: + description: > + List of network addresses that have been configured (statically + or dynamically) on the CP. + $ref: "#/definitions/NetworkAddressInfo" + metadata: + description: > + Metadata about this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfIdentifierDeletionNotification: + description: > + This type represents a VNF identifier deletion notification, which + informs the receiver of the deletion of a new VNF instance resource and + the associated VNF instance identifier. + type: object + required: + - id + - notificationType + - timeStamp + - vnfInstanceId + - _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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "VnfIdentifierDeletionNotification" for this notification type. + type: string + enum: + - VnfIdentifierDeletionNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + vnfInstanceId: + description: > + The deleted VNF instance identifier. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks" + + VnfInstance: + #SOL003 location: 5.5.2.2 + description: > + This type represents a VNF instance. + type: object + required: + - id + - vnfdId + - vnfProvider + - vnfProductName + - vnfSoftwareVersion + - vnfdVersion + - onboardedVnfPkgInfoId + - instantiationState + properties: + id: + description: > + Identifier of the VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfInstanceName: + description: > + Name of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfInstanceDescription: + description: > + Human-readable description of the VNF instance. + This attribute can be modified with the PATCH method. + type: string + vnfdId: + description: > + Identifier of the VNFD on which the VNF instance is based. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProvider: + description: > + Provider of the VNF and the VNFD. The value is copied from the VNFD. + type: string + vnfProductName: + description: > + Name to identify the VNF Product. The value is copied from the VNFD. + type: string + vnfSoftwareVersion: + description: > + Software version of the VNF. The value is copied from the VNFD. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + vnfdVersion: + description: > + Identifies the version of the VNFD. The value is copied from the VNFD. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version" + onboardedVnfPkgInfoId: + 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 PATCHmethod. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Current values of the configurable properties of the VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vimConnectionInfo: + description: > + Information about VIM connections to be used for managing the + resources for the VNF instance. This attribute shall only be + supported and present if VNF-related resource management in direct + mode is applicable. + This attribute can be modified with the PATCH method. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VimConnectionInfo" + instantiationState: + description: > + The instantiation state of the VNF. + type: string + enum: + - NOT_INSTANTIATED + - INSTANTIATED + instantiatedVnfInfo: + description: > + Information specific to an instantiated VNF instance. This attribute + shall be present if the instantiateState attribute value is + INSTANTIATED. + $ref: "#/definitions/InstantiatedVnfInfo" + + vnfInstanceIds: + description: > + If present, match VNF instances with an instance identifier listed + in this attribute. + The attributes "vnfInstanceIds" and "vnfInstanceNames" are + alternatives to reference to particular VNF Instances in a filter. + They should not be used both in the same filter instance, but one + alternative should be chosen. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + + vnfInstanceNames: + description: > + If present, match VNF instances with a VNF Instance Name listed in + this attribute. + The attributes "vnfInstanceIds" and "vnfInstanceNames" are + alternatives to reference to particular VNF Instances in a filter. + They should not be used both in the same filter instance, but one + alternative should be chosen. + type: array + items: + type: string + + VnfLcmOpOcc: + description: > + This type represents a VNF lifecycle management operation occurrence. + type: object + required: + - id + - operationState + - stateEnteredTime + - startTime + - vnfInstanceId + - operation + - isAutomaticInvocation + - operationParams + - isCancelPending + properties: + id: + description: > + Identifier of this VNF lifecycle management operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operationState: + description: > + The state of the LCM operation. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType" + stateEnteredTime: + description: > + Date-time when the current state was entered. + type: string + format: date-time + startTime: + description: > + Date-time of the start of the operation. + type: string + format: date-time + vnfInstanceId: + description: > + Identifier of the VNF instance to which the operation applies + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + grantId: + description: > + Identifier of the grant related to this VNF LCM operation + occurrence, if such grant exists. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + Type of the actual LCM operation represented by this VNF LCM + operation occurrence. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationType" + isAutomaticInvocation: + description: > + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM (i.e. + ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). 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 operationType and the + data type of this attribute shall apply: + * INSTANTIATE: InstantiateVnfRequest + * SCALE: ScaleVnfRequest + * SCALE_TO_LEVEL: ScaleVnfToLevelRequest + * CHANGE_FLAVOUR: ChangeVnfFlavourRequest + * OPERATE: OperateVnfRequest + * HEAL: HealVnfRequest + * CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest + * TERMINATE: TerminateVnfRequest + * MODIFY_INFO: VnfInfoModifications + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + isCancelPending: + description: > + If the VNF LCM operation occurrence is in "STARTING", "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 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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + resourceChanges: + description: > + 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 + properties: + affectedVnfcs: + description: > + Information about VNFC instances that were affected during the + lifecycle operation. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVnfc" + affectedVirtualLinks: + description: > + Information about VL instances that were affected during the + lifecycle operation. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" + affectedVirtualStorages: + description: > + Information about virtualised storage instances that were affected + during the lifecycle operation. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" + changedInfo: + description: > + Information about the changed VNF instance information, including + VNF configurable properties, if applicable. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" + changedExtConnectivity: + description: > + Information about changed external connectivity, if applicable. + This allows the NFVO to obtain the information contained in the + latest "result" notification if it has not received it due to an + error or a wrongly configured subscription filter. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + - vnfInstance + properties: + self: + description: > + URI of this resource. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + vnfInstance: + description: > + Link to the VNF instance that the operation applies to. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + grant: + description: > + Link to the grant for this operation, if one exists. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + cancel: + description: > + Link to the task resource that represents the "cancel" operation + for this VNF LCM operation occurrence, if cancelling is + currently allowed. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + retry: + description: > + Link to the task resource that represents the "retry" operation + for this VNF LCM operation occurrence, if retrying is currently + allowed. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + rollback: + description: > + Link to the task resource that represents the "rollback" + operation for this VNF LCM operation occurrence, if rolling back + is currently allowed. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + fail: + description: > + Link to the task resource that represents the "fail" operation + for this VNF LCM operation occurrence, if declaring as failed is + currently allowed. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Link" + + VnfLinkPort: + 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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + resourceHandle: + description: > + Reference to the virtualised network resource realizing this link + port. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ResourceHandle" + cpInstanceId: + description: > + Identifier of the external CP of the VNF 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: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + 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 + - virtualLinkDescId + - networkResource + properties: + id: + description: > + Identifier of this VnfVirtualLinkResourceInfo instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + virtualLinkDescId: + description: > + Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + networkResource: + description: > + Reference to the VirtualNetwork resource. + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ResourceHandle" + reservationId: + description: > + The reservation identifier applicable to the resource. It shall be + present when an applicable reservation exists. + $ref: "../../../definitions/SOL002SOL003_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 VnfLinkPort). + May be present otherwise. + type: array + items: + $ref: "#/definitions/VnfLinkPort" + metadata: + description: > + Metadata about this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" diff --git a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml new file mode 100644 index 00000000..dbd8e9ed --- /dev/null +++ b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml @@ -0,0 +1,175 @@ +responses: + 202-with-Location: + description: > + 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 + "VNF 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 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/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + 404-task-not-suported-VNF-LCM: + description: > + 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 VNF 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 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 409-another-lcm-operation-ongoing: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the VNF instance resource. + Typically, this is due to the fact that another LCM 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 409-inconsistent-state: + description: > + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-INSTANTIATED: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the VNF instance resource. + Typically, this is due to the fact that the VNF 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/SOL002SOL003_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 VNF instance resource. + Typically, this is due to the fact that the VNF 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 409-state-conflict-NOT-INSTANTIATED: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the VNF instance resource. + Typically, this is due to the fact that the VNF 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml new file mode 100644 index 00000000..036d022b --- /dev/null +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -0,0 +1,1259 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + AffectedVirtualLink: + #SOL003 Location: 5.5.3.14 + 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: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + virtualLinkDescId: + description: > + Identifier of the related VLD in the VNFD. + $ref: "SOL002SOL003_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: "#/definitions/ResourceHandle" + + AffectedVirtualStorage: + #SOL003 Location: 5.5.3.15 + 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: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + virtualStorageDescId: + description: > + Identifier of the related VirtualStorage descriptor in the VNFD. + $ref: "SOL002SOL003_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: "#/definitions/ResourceHandle" + + AffectedVnfc: + description: > + This type provides information about added, deleted, modified and + temporary VNFCs. + type: object + required: + - id + - vduId + - changeType + - computeResource + properties: + id: + description: > + Identifier of the Vnfc instance, identifying the applicable + "vnfcResourceInfo" entry in the "VnfInstance" data type. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + vduId: + description: > + Identifier of the related VDU in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + changeType: + description: > + Signals the type of change. Permitted values: + * ADDED + * REMOVED + * MODIFIED + * TEMPORARY + For a temporary resource, an AffectedVnfc structure exists as long + as the temporary resource exists. + type: string + enum: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY + computeResource: + description: > + Reference to the VirtualCompute resource. Detailed information is + (for new and modified resources) or has been (for removed + resources) available from the VIM. + $ref: "#/definitions/ResourceHandle" + addedStorageResourceIds: + description: > + References to VirtualStorage resources that have been added. Each + value refers to a VirtualStorageResourceInfo item in the + VnfInstance that was added to the VNFC. It shall be provided if at + least one storage resource was added to the VNFC. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + CreateVnfRequest: + #SOL003 location: 5.5.2.3 + type: object + required: + - vnfdId + properties: + vnfdId: + description: > + Identifier that identifies the VNFD which defines the VNF instance to + be created. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + 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 + + DynamicNetworkAddressData: + description: > + This type represents a network address that is requested to be assigned. + type: object + required: + - numIpAddresses + properties: + macAddress: + description: > + MAC address. Shall not be present if numIPAddresses > 1. If it is not + present, it will be chosen by the VIM. + type: string + #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)? + numIpAddresses: + description: > + Number of IP addresses to assign dynamically. Shall be greater than + zero. + type: integer + format: uint32 + subnetId: + description: > + Subnet defined by the identifier of the subnet resource in the VIM. + In case this attribute is present, an IP addresses from that subnet + will be assigned; otherwise, IP addresses not bound to a subnet + will be assigned. + At most one of "subnetId" and "subnetIpRanges" shall be present. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/IdentifierInVim" + subnetIpRanges: + description: > + Subnet defined as one or more IP address ranges. In case this + attribute is present, IP addresses from one of the ranges will be + assigned; otherwise, IP addresses not bound to a subnet will be + assigned. + At most one of "subnetId" and "subnetIpRanges" shall be present. + type: array + items: + type: object + properties: + minIpAddress: + description: > + Lowest IP address belonging to the range. + type: string + #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)? + maxIpAddress: + description: > + Highest IP address belonging to the range. + type: string + #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)? + + ExtLinkPort: + description: > + This type represents 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: "SOL002SOL003_def.yaml#/definitions/Identifier" + resourceHandle: + description: > + Reference to the virtualised network resource realizing this link + port. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ResourceHandle" + cpInstanceId: + description: > + Identifier of the external CP of the VNF to be 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: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + ExtManagedVirtualLinkData: + #SOL003 location: 4.4.1.12 + type: object + required: + - id + - virtualLinkDescId + - resourceId + properties: + id: + description: > + The identifier of the externally-managed internal VL instance. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + virtualLinkDescId: + description: > + The identifier of the VLD in the VNFD for this VL. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + vimConnectionId: + description: > + Identifier of the VIM connection to manage this resource. This + attribute shall only be supported and present if VNF-related + resource management in direct mode is applicable. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + resourceProviderId: + description: > + Identifies the entity responsible for the management of this + resource. This attribute shall only be supported and present if + VNF-related resource management in indirect mode is applicable. The + identification scheme is outside the scope of the present document. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + resourceId: + description: > + The identifier of the resource in the scope of the VIM or the + resource provider. + $ref: "#/definitions/IdentifierInVim" + + ExtVirtualLinkInfo: + type: object + required: + - id + - resourceHandle + properties: + id: + description: > + Identifier of the external VL and the related external VL information + instance. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + resourceHandle: + description: > + Reference to the resource realizing this VL. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ResourceHandle" + linkPorts: + description: > + Link ports of this VL. + type: array + items: + $ref: "#/definitions/ExtLinkPort" + + ExtVirtualLinkData: + #SOL003 location: 4.4.1.11 + description: > + This type represents an external VL. + type: object + required: + - id + - resourceId + - extCps + properties: + id: + description: > + The identifier of the external VL instance. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vimConnectionId: + description: > + Identifier of the VIM connection to manage this resource. This + attribute shall only be supported and present if VNF-related + resource management in direct mode is applicable. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + resourceProviderId: + description: > + Identifies the entity responsible for the management of this + resource. This attribute shall only be supported and present + if VNF-related resource management in indirect mode is applicable. + The identification scheme is outside the scope of the present + document. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + resourceId: + description: > + The identifier of the resource in the scope of the VIM or the + resource provider. + $ref: "#/definitions/IdentifierInVim" + extCps: + description: > + External CPs of the VNF to be connected to this external VL. + type: array + items: + $ref: "#/definitions/VnfExtCpData" + + FixedNetworkAddressData: + #SOL003 location: 4.4.1.8 + description: > + This type represents a network address that is requested to be assigned. + type: object + properties: + macAddress: + description: > + MAC address. If it is not present, it will be chosen by the VIM. + At least one of "macAddress" and "ipAddress" shall be present. + type: string + #TODO: Is it possible to describe the scheme of this? (Table 4.4.2.2-1) + ipAddress: + description: > + IP address. If it is not present, no IP address will be assigned. + At least one of "macAddress" and "ipAddress" shall be present. + type: string + #TODO: Can we describe the syntax of this (Table 4.4.2.2-1)? + subnetId: + description: > + Identifier of the subnet in the VIM. This attribute may be present + if the "ipAddress" attribute is present, and shall be absent + otherwise. + $ref: "#/definitions/IdentifierInVim" + + IdentifierInVim: + description: > + An identifier maintained by the VIM or other resource provider. It is + expected to be unique within the VIM instance. + type: string + + LccnLinks: + description: > + This type represents the links to resources that a notification can + contain. + type: object + required: + - vnfInstance + - subscription + properties: + vnfInstance: + description: > + Link to the resource representing the VNF instance to which the + notified change applies. + $ref: "#/definitions/Link" + subscription: + description: > + Link to the related subscription. + $ref: "#/definitions/Link" + vnfLcmOpOcc: + description: > + Link to the VNF lifecycle management operation occurrence that this + notification is related to. Shall be present if there is a related + lifecycle operation occurrence. + $ref: "#/definitions/Link" + + LccnSubscription: + description: > + This type represents a subscription related to notifications about VNF + lifecycle changes. + type: object + required: + - id + - callbackUri + - _links + properties: + id: + description: > + Identifier of this subscription resource. + $ref: "SOL002SOL003_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: "SOL002SOL003_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: "SOL002SOL003_def.yaml#/definitions/Uri" + + LccnSubscriptionRequest: + description: > + This type represents a subscription request related to notifications + about VNF lifecycle 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/LifecycleChangeNotificationsFilter" + callbackUri: + description: > + The URI of the endpoint to send the notification to. + $ref: "SOL002SOL003_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: "#/definitions/SubscriptionAuthentication" + + LcmOperationStateType: + description: > + Value | Description + ------|------------ + STARTING | The LCM operation is starting. + PROCESSING | The LCM operation is currently in execution. + COMPLETED | he LCM operation has been completed successfully. + 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. + ROLLING_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: + - STARTING + - PROCESSING + - COMPLETED + - FAILED_TEMP + - FAILED + - ROLLING_BACK + - ROLLED_BACK + + LcmOperationType: + description: > + Value | Description + ------|------------ + INSTANTIATE | Represents the "Instantiate VNF" LCM operation. + SCALE | Represents the "Scale VNF" LCM operation. + SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation. + CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation. + TERMINATE | Represents the "Terminate VNF" LCM operation. + HEAL | Represents the "Heal VNF" LCM operation. + OPERATE | Represents the "Operate VNF" LCM operation. + CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation. + MODIFY_INFO | Represents the "Modify VNF Information" LCM operation. + type: string + enum: + - INSTANTIATE + - SCALE + - SCALE_TO_LEVEL + - CHANGE_FLAVOUR + - TERMINATE + - HEAL + - OPERATE + - CHANGE_EXT_CONN + - MODIFY_INFO + + LifecycleChangeNotificationsFilter: + description: > + This type represents a subscription filter related to notifications + about VNF lifecycle changes. + 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: + vnfInstanceSubscriptionFilter: + description: > + Filter criteria to select VNF instances about which to notify. + $ref: "#/definitions/VnfInstanceSubscriptionFilter" + notificationTypes: + description: > + Match particular notification types. + Permitted values: + * VnfLcmOperationOccurrenceNotification + * VnfIdentifierCreationNotification + * VnfIdentifierDeletionNotification + The permitted values of the "notificationTypes" attribute are + spelled exactly as the names of the notification types to + facilitate automated code generation systems. + type: string + enum: + - VnfLcmOperationOccurrenceNotification + - VnfIdentifierCreationNotification + - VnfIdentifierDeletionNotification + operationTypes: + description: > + Match particular VNF lifecycle operation types for the notification + of type VnfLcmOperationOccurrenceNotification. + May be present if the "notificationTypes" attribute contains the + value "VnfLcmOperationOccurrenceNotification", and shall be absent + otherwise. + type: array + items: + $ref: "#/definitions/LcmOperationType" + operationStates: + description: > + Match particular LCM operation state values as reported in + notifications of type VnfLcmOperationOccurrenceNotification. + May be present if the "notificationTypes" attribute contains the + value "VnfLcmOperationOccurrenceNotification", and shall be absent + otherwise. + type: array + items: + $ref: "#/definitions/LcmOperationStateType" + + 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 + + ResourceHandle: + required: + - vimConnectionId + - resourceId + type: object + description: > + This type represents the information that allows addressing a virtualised + resource that is used by a VNF instance. Information about the resource + is available from the VIM. + 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: "SOL002SOL003_def.yaml#/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: "SOL002SOL003_def.yaml#/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 + #TODO: Note of Table 4.4.1.7-1 + + ScaleInfo: + required: + - aspectId + - scaleLevel + type: object + properties: + aspectId: + description: > + Identifier of the scaling aspect. + $ref: "SOL002SOL003_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 + + ScaleVnfRequest: + type: object + required: + - type + - aspectId + properties: + type: + description: > + Indicates the type of the scale operation requested. + Permitted values: + * SCALE_OUT: adding additional VNFC instances to the VNF to increase + capacity + * SCALE_IN: removing VNFC instances from the VNF in order to release + unused capacity. + type: string + enum: + - SCALE_OUT + - SCALE_IN + aspectId: + description: > + Identifier of the scaling aspect. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + numberOfSteps: + description: > + Number of scaling steps to be executed as part of this Scale VNF + operation. It shall be a positive number and the default value + shall be 1. + type: integer + default: 1 + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the scaling + process, specific to the VNF being scaled, as declared in the VNFD + as part of "ScaleVnfOpConfig". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + ScaleVnfToLevelRequest: + description: > + This type represents request parameters for the "Scale VNF to Level" + operation. + type: object + properties: + instantiationLevelId: + description: > + Identifier of the target instantiation level of the current + deployment flavour to which the VNF is requested to be scaled. + Either the instantiationLevelId attribute or the scaleInfo attribute + shall be included. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + scaleInfo: + description: > + For each scaling aspect of the current deployment flavour, indicates + the target scale level to which the VNF is to be scaled. + Either the instantiationLevelId attribute or the scaleInfo attribute + shall be included. + type: array + items: + $ref: "#/definitions/ScaleInfo" + additionalParams: + description: > + Additional parameters passed by the NFVO as input to the scaling + process, specific to the VNF being scaled, as declared in the + VNFD as part of "ScaleVnfToLevelOpConfig". + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + 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 + + Version: + description: > + A Version. + type: string + + SubscriptionAuthentication: + type: object + required: + - authType + properties: + authType: + description: > + Defines the type of Authentication / Authorization to use when + sending a notification. + Permitted values: + * BASIC: In every POST request that sends a notification, use + HTTP Basic authentication with the client credentials. + * OAUTH2_CLIENT_CREDENTIALS: In every POST request that sends a + notification, use an OAuth 2.0 Bearer token, obtained using the + client credentials grant type. + type: string + enum: + - BASIC + - OAUTH2_CLIENT_CREDENTIALS + 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/Version" + + VimConnectionInfo: + type: object + required: + - id + - vimType + properties: + id: + description: > + The identifier of the VIM Connection. This identifier is managed by + the NFVO. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vimId: + description: > + The identifier of the VIM instance. This identifier is managed by + the NFVO. + Shall be present to address additional information about the VIM if + such information has been configured into the VNFM by means outside + the scope of the present document, and should be absent otherwise. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vimType: + description: > + Discriminator for the different types of the VIM information. The + value of this attribute determines the structure of the + "interfaceInfo" and "accessInfo" attributes, based on the type of the + VIM. The set of permitted values is expected to change over time as + new types or versions of VIMs become available. + The ETSI NFV registry of VIM-related information provides access to + information about VimConnectionInfo definitions for various VIM + types. The structure of the registry is defined in Annex C of SOL003. + type: string + interfaceInfo: + description: > + Information about the interface or interfaces to the VIM, if + applicable, such as the URI of an interface endpoint to + communicate with the VIM. The applicable keys are dependent on the + content of vimType. + Alternatively, such information may have been configured into the + VNFM and bound to the vimId. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + accessInfo: + description: > + Authentication credentials for accessing the VIM, and other + access-related information such as tenants or infrastructure + resource groups (see note). The applicable keys are dependent on the + content of vimType. + If the VimConnectionInfo structure is part of an HTTP response + payload body, sensitive attributes that are children of this attributes + (such as passwords) shall not be included. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extra: + description: > + VIM type specific additional information. The applicable structure, + and whether or not this attribute is available, is dependent on the + content of vimType. + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + VnfExtCpData: + #SOL003 location: 4.4.1.10 + description: > + This type represents an external CP. + type: object + required: + - cpdId + properties: + cpdId: + description: > + The identifier of the CPD in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + fixedAddresses: + description: > + List of (fixed) network addresses that need to be configured on the + CP. This attribute shall be present if fixed addresses need to be + configured. + type: array + items: + $ref: "#/definitions/FixedNetworkAddressData" + dynamicAddresses: + description: > + List of network addresses to be assigned dynamically. This attribute + shall be present if dynamic addresses need to be configured. + type: array + items: + $ref: "#/definitions/DynamicNetworkAddressData" + + VnfIdentifierCreationNotification: + description: > + This type represents a VNF identifier creation notification, which + informs the receiver of the creation of a new VNF instance resource and + the associated VNF instance identifier. + type: object + required: + - id + - notificationType + - timeStamp + - vnfInstanceId + - _links + properties: + id: + description: > + Identifier of the VNF instance. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "VnfIdentifierCreationNotification" for this notification type. + type: string + enum: + - VnfIdentifierCreationNotification + vnfInstanceName: + description: > + Discriminator for the different notification types. Shall be set to + "VnfIdentifierCreationNotification" for this notification type. + type: string + enum: + - VnfIdentifierCreationNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + vnfInstanceId: + description: > + The created VNF instance identifier. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" + + VnfIdentifierDeletionNotification: + description: > + This type represents a VNF identifier deletion notification, which + informs the receiver of the deletion of a new VNF instance resource and + the associated VNF instance identifier. + type: object + required: + - id + - notificationType + - timeStamp + - vnfInstanceId + - _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: "SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "VnfIdentifierDeletionNotification" for this notification type. + type: string + enum: + - VnfIdentifierDeletionNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + vnfInstanceId: + description: > + The deleted VNF instance identifier. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" + + VnfInfoModifications: + #SOL003 location: 5.5.2.12 + description: > + This type represents attribute modifications for an + "Individual VNF instance" resource, i.e. modifications to a resource + representation based on the "VnfInstance" data type. The attributes of + "VnfInstance" that can be modified according to the provisions in + clause 5.5.2.2 are included in the "VnfInfoModifications" data type. + type: object + properties: + 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 + onboardedVnfPkgInfoId: + description: > + New value of the "onboardedVnfPkgInfoId" attribute in "VnfInstance". + The value "null" is not permitted. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfConfigurableProperties: + description: > + Modifications of the "vnfConfigurableProperties" attribute in + "VnfInstance". If present, these modifications shall be applied + according to the rules of JSON Merge PATCH (see IETF RFC 7396). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + metadata: + description: > + Modifications of the "metadata" attribute in "VnfInstance". If + present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + extensions: + description: > + Modifications of the "extensions" attribute in "VnfInstance". If + present, these modifications shall be applied according to the rules + of JSON Merge PATCH (see IETF RFC 7396). + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + vimConnectionInfo: + description: > + New content of certain entries in the "vimConnectionInfo" attribute + array in "VnfInstance", as defined below this table. + $ref: "#/definitions/VimConnectionInfo" + + VnfInstanceSubscriptionFilter: + description: > + This type represents subscription filter criteria to match VNF + instances. + type: object + properties: + vnfdIds: + description: > + If present, match VNF instances that were created based on a VNFD + identified by one of the vnfdId values listed in this attribute. + The attributes "vnfdIds" and "vnfProductsFromProviders" are + alternatives to reference to VNF instances that are based on certain + VNFDs in a filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + vnfProductsFromProviders: + description: > + If present, match VNF instances that belong to VNF products from + certain providers. + The attributes "vnfdIds" and "vnfProductsFromProviders" are + alternatives to reference to VNF instances that are based on certain + VNFDs in a filter. They should not be used both in the same filter + instance, but one alternative should be chosen. + type: array + items: + type: object + required: + - vnfProvider + properties: + vnfProvider: + description: > + Name of the VNF provider to match. + type: string + vnfProducts: + description: > + If present, match VNF instances that belong to 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 instances that belong to VNF + products with certain versions and a certain product + name, from one particular provider. + type: array + items: + type: object + required: + - vnfSoftwareVersions + properties: + vnfSoftwareVersions: + description: > + Software version to match. + $ref: "#/definitions/Version" + vnfdVersions: + description: > + If present, match VNF instances that belong to 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" + + VnfLcmOperationOccurrenceNotification: + description: > + This type represents a VNF lifecycle management operation occurrence + notification, which informs the receiver of changes in the VNF + lifecycle caused by a VNF LCM operation occurrence. The support of the + notification is mandatory. + This notification is produced when there is a change in the VNF + lifecycle caused by a VNF LCM operation occurrence, including: + * Instantiation of the VNF + * Scaling of the VNF instance (including auto-scaling) + * Healing of the VNF instance (including auto-healing) + * Change of the state of the VNF instance (i.e. Operate VNF) + * Change of the deployment flavour of the VNF instance + * Change of the external virtual links of the VNF instance + * Termination of the VNF instance + * Modification of VNF instance information and/or VNF configurable + properties through the "PATCH" method on the "Individual VNF instance" + resource + If this is the initial notification about the start of a VNF LCM + operation occurrence, it is assumed that the notification is sent by the + VNFM before any action (including sending the grant request) is taken, + however, after acknowledging the LCM operation request to the consumer. + Due to possible race conditions, this does not guarantee that the + notification will also arrive at the NFVO before the grant request, and + after the acknowledgement of the operation. It is not an error if the + "start" notification, the grant request and the LCM operation + acknowledgment arrive out of order at the NFVO, and the NFVO shall be + able to handle such a situation. + If this is a notification about a final or intermediate result state of + a VNF LCM operation occurrence, the notification shall be sent after + all related actions of the LCM operation that led to this state have + been executed. The new state shall be set in the VnfLcmOpOcc resource + before the notification about the state change is sent. + type: object + required: + - id + - notificationType + - timeStamp + - notificationStatus + - operationState + - vnfInstanceId + - operation + - isAutomaticInvocation + - vnfLcmOpOccId + - _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: "SOL002SOL003_def.yaml#/definitions/Identifier" + notificationType: + description: > + Discriminator for the different notification types. Shall be set to + "VnfLcmOperationOccurrenceNotification" for this notification type. + type: string + enum: + - VnfLcmOperationOccurrenceNotification + subscriptionId: + description: > + Identifier of the subscription that this notification relates to. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/DateTime" + notificationStatus: + description: > + Indicates whether this notification reports about the start of a + lifecycle operation or the result of a lifecycle operation. + Permitted values: + * START: Informs about the start of the VNF LCM operation + occurrence. + * RESULT: Informs about the final or intermediate result of the VNF + LCM operation occurrence. + type: string + enum: + - START + - RESULT + operationState: + description: > + The state of the VNF LCM operation occurrence. + $ref: "#/definitions/LcmOperationStateType" + vnfInstanceId: + description: > + The identifier of the VNF instance affected. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + The lifecycle management operation. + $ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationType" + isAutomaticInvocation: + description: > + Set to true if this VNF LCM operation occurrence has been triggered + by an automated procedure inside the VNFM + (i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf + triggered by auto-heal). + Set to false otherwise. + type: boolean + vnfLcmOpOccId: + description: > + The identifier of the VNF lifecycle management operation occurrence + associated to the notification. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + affectedVnfcs: + description: > + Information about VNFC instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "#/definitions/AffectedVnfc" + affectedVirtualLinks: + description: > + Information about VL instances that were affected during the + lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "#/definitions/AffectedVirtualLink" + affectedVirtualStorages: + description: > + Information about virtualised storage instances that were affected + during the lifecycle operation. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any resource modification. Shall be + absent otherwise. This attribute contains information about the + cumulative changes to virtualised resources that were performed so + far by the VNF LCM operation occurrence and by any of the error + handling procedures for that operation occurrence. + type: array + items: + $ref: "#/definitions/AffectedVirtualStorage" + changedInfo: + description: > + Information about the changed VNF instance information, including + changed VNF configurable properties. + Shall be present if the "notificationStatus" is set to "RESULT" and + the operation has performed any changes to VNF instance information, + including VNF configurable properties. + Shall be absent otherwise. + $ref: "#/definitions/VnfInfoModifications" + changedExtConnectivity: + description: > + Information about changed external connectivity, if this + notification represents the result of a lifecycle operation + occurrence. Shall be present if the "notificationStatus" is set to + "RESULT" and the "operation" is set to "CHANGE_EXT_CONN". + Shall be absent otherwise. + type: array + items: + $ref: "#/definitions/ExtVirtualLinkInfo" + error: + description: > + Details of the latest error, if one has occurred during executing + the LCM operation. Shall be present if the "operationState" + attribute is "FAILED_TEMP" or "FAILED", and shall be absent + otherwise. + $ref: "SOL002SOL003_def.yaml#/definitions/ProblemDetails" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" + + VnfOperationalStateType: + type: string + enum: + - STARTED + - STOPPED + - ERROR + diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml new file mode 100644 index 00000000..a7846d79 --- /dev/null +++ b/src/definitions/SOL002SOL003_def.yaml @@ -0,0 +1,94 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + DateTime: + description: > + Date-time stamp. + Representation: String formatted according to IETF RFC 3339. + type: string + + Identifier: + description: > + An identifier with the intention of being globally unique. + type: string + + IdentifierInVnf: + description: > + An identifier that is unique for the respective type within a VNF + instance, but may not be globally unique. + type: string + + IdentifierInVnfd: + description: > + An identifier that is unique within a VNF descriptor. + type: string + + KeyValuePairs: + description: > + This type is represented in JSON as an extensible JSON object + type: object + + ProblemDetails: + #SOL003 location: 4.3.5.3 + 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 + #TODO: How to express "any additional attributes"? + + Uri: + description: > + String formatted according to IETF RFC 3986. + type: string diff --git a/src/responses/SOL002SOL003_resp.yaml b/src/responses/SOL002SOL003_resp.yaml new file mode 100644 index 00000000..cdcb61e2 --- /dev/null +++ b/src/responses/SOL002SOL003_resp.yaml @@ -0,0 +1,355 @@ +responses: + 202: + description: > + The request was accepted for processing, but processing has not + been completed. The response shall have an empty payload body. + headers: + #TODO: Add headers defined in 4.3.4.3 + 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 + 400: + description: > + It fhe 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 [11] and IETF RFC 7235 [16]. 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 400-attr-selector: + description: > + It fhe 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 [11] and IETF RFC 7235 [16]. 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 401: + description: > + 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 [11] and IETF RFC 7235 [16]. The ProblemDetails + structure may be provided. + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 403: + description: > + 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 404: + description: > + 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 404-task-not-suported: + description: > + 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 VNF 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 405: + description: > + 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 406: + description: > + If the "Accept" HTTP header does not contain at least one name of + a content type that is acceptable to the API producer, 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 412: + description: > + 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 416: + description: > + This code is returned if the requested byte range in the + Range HTTP header is not present in the requested 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 422: + description: > + 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 500: + description: > + 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 503: + description: > + 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 + 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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" -- GitLab