diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 6c075cfb8c6a498ae4a516fb5fb2cd75ae5acda4..884a9bd5cd947a52657cf920cdd6441d91981b16 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -32,13 +32,498 @@ produces: paths: - - /example: - get: - summary: TBD +############################################################################### +# Alarms # +############################################################################### + '/alarms': + #SOL003 location: 7.4.2 + get: + description: > + The client can use this method to retrieve information about the alarm + list. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + The request has succeeded. + The response body shall contain the list of related alarms. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../definitions/SOL003_def.yaml#/definitions/Alarm" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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 alarm # +############################################################################### + '/alarms/{alarmId}': + #SOL003 location: 7.4.3 + parameters: + - name: alarmId + description: > + Identifier of the alarm. + This identifier can be retrieved from the "id" attribute of the + "alarm" attribute in the AlarmNotification or + AlarmClearedNotification. It can also be retrieved from the "id" + attribute of the applicable array element in the payload body of the + response to a GET request to the "Alarms" resource. + in: path + type: string + required: true + get: + description: > + The client can use this method to read an individual alarm. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + Information about an individual alarm was read successfully. + The response body shall contain a representation of the individual + alarm. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + 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/SOL003_def.yaml#/definitions/Alarm" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" + patch: + description: > + This method modifies an individual alarm resource. + parameters: + - name: AlarmModifications + description: The VNF creation parameters + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + The request was accepted and completed. The response body shall + contain attribute modifications for an ‘Individual alarm’ + resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 409: + $ref: "responses/VNFFaultManagement_resp.yaml#/responses/409-alarm-state-conflict" + 412: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Subscriptions # +############################################################################### + '/alarms/subscriptions': + #SOL003 location: 7.4.4 + post: + description: > + The POST method creates a new subscription. + parameters: + - name: FmSubscriptionRequest + description: The VNF creation parameters + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + 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 request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + Location: + description: > + The resource URI of the created subscription resource. + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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 client can use this method to retrieve the list of active + subscriptions for VNF alarms subscribed by the client. It can be used + e.g. for resynchronization after error situations. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + The list of subscriptions was queried successfully. The response + body shall contain the representations of all active + subscriptions of the functional block that invokes the method. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 412: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Individual subscription # +############################################################################### + '/subscriptions/{subscriptionId}': + #SOL003 location: 7.4.5 + parameters: + - name: subscriptionId description: > - TBD - responses: - 200: - description: > - TBD + 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 client can use this method for reading an individual subscription + for VNF alarms subscribed by the client. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + The operation has completed successfully. + The response body shall contain a representation of the + subscription resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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: > + This method terminates an individual subscription. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + The subscription resource was deleted successfully. + The response body shall be empty. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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/SOL002/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml b/src/SOL002/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml index 6fe27caf27dde01f530abf86373ac7e86f8fad63..3ef98f5007f13c428289745e553436aaed2b14b0 100644 --- a/src/SOL002/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml +++ b/src/SOL002/VNFFaultManagement/responses/VNFFaultManagement_resp.yaml @@ -1,2 +1,29 @@ -responses: +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt +responses: + 409-alarm-state-conflict: + description: > + The operation cannot be executed currently, due to a conflict with the + state of the "Individual alarm" resource. + Typically, this is due to the fact that the alarm is already in the + state that is requested to be set (such as trying to acknowledge an + already-acknowledged alarm). + The response body shall contain a ProblemDetails structure, in which the + "detail" attribute 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/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 6c075cfb8c6a498ae4a516fb5fb2cd75ae5acda4..6d3504f66474ae7d9281091f1641d45b9ea9a9dc 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -32,13 +32,1389 @@ produces: paths: - - /example: - get: - summary: TBD +############################################################################### +# 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: 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. + 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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + 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/SOL002SOL003_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. + 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/SOL002SOL003_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: > - TBD - responses: - 200: - description: > - TBD + 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/SOL002SOL003_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/SOL002SOL003_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/SOL002/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml index 6904ae2bda0c480db231d8d5139fd7605414947a..a5bdfdda69d17928076a0a743c5634efd6c41172 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/VNFLifecycleManagement_def.yaml @@ -1 +1,1675 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + definitions: + AffectedVirtualLink: + # Ref TBD + 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: "#/definitions/IdentifierInVnf" + virtualLinkDescId: + description: > + Identifier of the related VLD in the VNFD. + $ref: "#/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/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + + AffectedVirtualStorage: + # Ref TBD + 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: "#/definitions/IdentifierInVnf" + virtualStorageDescId: + description: > + Identifier of the related VirtualStorage descriptor in the VNFD. + $ref: "#/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/SOL002SOL003_def.yaml#/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: "#/definitions/IdentifierInVnf" + vduId: + description: > + Identifier of the related VDU in the VNFD. + $ref: "#/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/SOL002SOL003_def.yaml#/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: "#/definitions/IdentifierInVnf" + + 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: + # Ref TBD + 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/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + 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: + # Ref TBD + 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/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" + 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: + # Ref TBD + 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/SOL002SOL003_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 + vnfcInstanceId: + description: TBD + type: string + healScript: + description: TBD + 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: + # Ref TBD + 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/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" + extManagedVirtualLinks: + description: > + Information about external VLs to connect the VNF to. + type: array + items: + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" + localizationLanguage: + description: > + Localization language of the VNF to be instantiated. The value shall + comply with the format defined in IETF RFC 5646. + 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" + vnfcInfo: + description: "TBD" + type: string + 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/SOL002SOL003_def.yaml#/definitions/Link" + indicators: + description: Indicators related to this VNF instance, if applicable. + $ref: "../../../definitions/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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 + + 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/SOL002SOL003_def.yaml#/definitions/Link" + subscription: + description: > + Link to the related subscription. + $ref: "../../definitions/SOL002SOL003_def.yaml#/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/SOL002SOL003_def.yaml#/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: "../../definitions/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: "../../definitions/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: "../../definitions/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: "../../definitions/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/SOL002SOL003_def.yaml#/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 + + 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/SOL002SOL003_def.yaml#/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/SOL002SOL003_def.yaml#/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" + + 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" + vnfcInstanceId: + description: TBD + type: string + 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" + + ScaleInfo: + required: + - aspectId + - scaleLevel + type: object + properties: + aspectId: + description: > + Identifier of the scaling aspect. + $ref: "#/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: "#/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: "#/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: "#/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: "#/definitions/KeyValuePairs" + + StopType: + description: > + * FORCEFUL: The VNFM will stop the VNF immediately after accepting the + request. + type: string + enum: + - FORCEFUL + + TerminateVnfRequest: + type: object + required: + - terminationType + properties: + terminationType: + description: > + Indicates the type of termination is requested. + Permitted values: + * FORCEFUL: The VNFM will shut down the VNF and release the + resources immediately after accepting the request. + type: string + enum: + - FORCEFUL + 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/SOL002SOL003_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 + - vnfcCpInfo + 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/SOL002SOL003_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" + + VnfExtCpData: + # Ref TBD + description: > + This type represents an external CP. + type: object + required: + - cpdId + properties: + cpdId: + description: > + The identifier of the CPD in the VNFD. + $ref: "#/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 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 + "VnfIdentifierCreationNotification" for this notification type. + type: string + enum: + - VnfIdentifierCreationNotification + 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 created VNF instance identifier. + $ref: "../../definitions/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: "../../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/LccnLinks" + + VnfInfoModifications: + # Ref TBD + 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: "../../definitions/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: "#/definitions/KeyValuePairs" + vnfcInfoModifications: + description: TBD + type: string + 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: "#/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: "#/definitions/KeyValuePairs" + + VnfInstance: + # Ref TBD + 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" + 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 + + 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: "../../definitions/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: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + timeStamp: + description: > + Date-time of the generation of the notification. + $ref: "../../definitions/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: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + operation: + description: > + The lifecycle management operation. + $ref: "../../../definitions/SOL002SOL003_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: "../../definitions/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: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + _links: + description: > + Links to resources related to this notification. + $ref: "#/definitions/LccnLinks" + + 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/SOL002SOL003_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/SOL002SOL003_def.yaml#/definitions/Link" + vnfInstance: + description: > + Link to the VNF instance that the operation applies to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + grant: + description: > + Link to the grant for this operation, if one exists. + $ref: "../../../definitions/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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/SOL002SOL003_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" + + VnfOperationalStateType: + type: string + enum: + - STARTED + - STOPPED + - ERROR + + 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 + - vnfLinkPorts + 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/SOL002SOL003_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/SOL002/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml b/src/SOL002/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml index 6fe27caf27dde01f530abf86373ac7e86f8fad63..a4a6171da92ec7d3f8aa37c664554d22f798a909 100644 --- a/src/SOL002/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml +++ b/src/SOL002/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml @@ -1,2 +1,150 @@ -responses: +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt +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" + 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/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 6c075cfb8c6a498ae4a516fb5fb2cd75ae5acda4..0844a4c55859bcf2bfd6df872a42b6ee62a595fa 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -32,13 +32,797 @@ produces: paths: - - /example: - get: - summary: TBD +############################################################################### +# PM jobs # +############################################################################### + '/pm_jobs': + #SOL003 location: 6.4.2 + post: + description: > + The POST method creates a PM job. + parameters: + - name: CreatePmJobRequest + description: The VNF creation parameters + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 201: + description: > + The PM job was created successfully. The response body shall + contain a representation of the created PM job resource. + The HTTP response shall include a "Location" HTTP header that + points to the created PM job resource. + headers: + Location: + description: The resource URI of the created PM Job + 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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 client can use this method to retrieve information about PM jobs. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 200: + description: > + Information about zero or more PM jobs was queried successfully. + The response body shall contain representations of zero or more PM + jobs. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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 PM job # +############################################################################### + '/pm_jobs/{pmJobId}': + #SOL003 location: 6.4.3 + parameters: + - name: pmJobId + description: > + Identifier of the PM job. + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new PM job 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 client can use this method for reading an individual PM job. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + Information about an individual PM job was queried successfully. + The response body shall contain a representation of the PM job + resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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: > + This method terminates an individual PM job. + parameters: + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + The PM job was deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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 performance report # +############################################################################### + '/pm_jobs/{pmJobId}/reports/{reportId}': + #SOL003 location: 6.4.4 + parameters: + - name: pmJobId + description: > + Identifier of the PM job. + in: path + type: string + required: true + - name: reportId + description: > + Identifier of the performance report. + in: path + type: string + required: true + get: + description: > + The client can use this method for reading an individual performance + report. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + Information of an individual performance report was read + successfully. + The response body shall contain a representation of the + performance report resource. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "definitions/VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Thresholds # +############################################################################### + '/thresholds': + #SOL003 location: 6.4.5 + post: + description: > + The POST method can be used by the client to create a threshold. + parameters: + - name: CreateThresholdRequest + description: > + Request parameters to create a threshold resource. + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + A threshold was created successfully. The response body shall + contain a representation of the created threshold resource. + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the created threshold resource. + headers: + Location: + description: The resource URI of the created 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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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 client can use this method to query information about thresholds. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + Information about zero or more thresholds was queried + successfully. + The response body shall contain representations of zero + or more thresholds. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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 threshold # +############################################################################### + '/thresholds/{thresholdId}': + #SOL003 location: 6.4.6 + parameters: + - name: thresholdId + description: > + Identifier of the threshold. + This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a + new threshold resource. It can also be retrieved from the "id" + attribute in the payload body of that response. + in: path + type: string + required: true + get: + description: > + The client can use this method for reading an individual threshold. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + Information about an individual threshold was queried + successfully. The response body shall contain a + representation of the threshold. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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: > + This method allows to delete a threshold. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + The threshold was deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 406: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406" + 500: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500" + 503: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503" +############################################################################### +# Subscriptions # +############################################################################### + '/subscriptions': + #SOL003 location: 6.4.7 + post: + description: > + The POST method creates a new subscription. + parameters: + - name: PmSubscriptionRequest + description: > + Details of the subscription to be created. + in: body + required: true + schema: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest" + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + - name: Content-Type + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + in: header + required: true + type: string + responses: + 201: + description: > + The subscription was created successfully. A representation of the + created subscription resource shall be returned in the response + body. + The HTTP response shall include a "Location" HTTP header that + contains the resource URI of the created subscription resource. + headers: + Location: + description: The resource URI of the created VNF instance + type: string + format: url + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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 client can use this method to query the list of active + subscriptions to Performance management notifications subscribed by + the client. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + The list of subscriptions was queried successfully. + The response body shall contain the representations of all active + subscriptions of the functional block that invokes the method. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + type: array + items: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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: 6.4.8 + parameters: + - name: subscriptionId description: > - TBD - responses: - 200: - description: > - TBD + 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 client can use this method for reading an individual subscription + about Performance management notifications subscribed by the client. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 200: + description: > + The subscription was read successfully. The response body shall + contain a representation of the subscription resource. + headers: + Content-Type: + description: > + The MIME type of the body of the request. + Reference: IETF RFC 7231 + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + schema: + $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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: > + This method terminates an individual subscription. + parameters: + - name: Accept + description: > + Content-Types that are acceptable for the response. + Reference: IETF RFC 7231 + in: header + required: true + type: string + - name: Authorization + description: > + The authorization token for the request. + Reference: IETF RFC 7235 + in: header + required: true + type: string + responses: + 204: + description: > + The subscription resource was deleted successfully. + The response body shall be empty. + headers: + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + type: string + maximum: 1 + minimum: 0 + 400: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400" + 401: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401" + 403: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403" + 405: + $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405" + 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/SOL002/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml b/src/SOL002/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml index 6904ae2bda0c480db231d8d5139fd7605414947a..b95437d6fcdc6e96b4e1b6897a93e475be7ab571 100644 --- a/src/SOL002/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml +++ b/src/SOL002/VNFPerformanceManagement/definitions/VNFPerformanceManagement_def.yaml @@ -1 +1,67 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + definitions: + PerformanceReport: + description: > + This type defines the format of a performance report provided by the + VNFM to the NFVO as a result of collecting performance information as + part of a PM job. + type: object + properties: + entries: + description: > + List of performance information entries. Each performance report + entry is for a given metric of a given object (i.e. VNF instance), + but can include multiple collected values. + type: array + items: + type: object + required: + - objectType + - objectInstanceId + - performanceMetric + - performanceValue + properties: + objectType: + description: > + Defines the object type for which performance information is + reported (i.e. VNF type). The string value shall be set to the + vnfdId of the VNF instance to which the performance + information relates. + type: string + objectInstanceId: + description: > + The object instance for which the performance metric is + reported. + The object instances for this information element will be VNF + instances. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + performanceMetric: + description: > + Name of the metric collected. + type: string + performanceValue: + description: > + List of performance values with associated timestamp. + type: array + items: + type: object + required: + - timeStamp + - performanceValue + properties: + timeStamp: + description: > + Time stamp indicating when the data was collected. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + performanceValue: + description: > + Value of the metric collected. + The type of the "performanceValue" 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 + diff --git a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml index 9370a1d97b30d147aba9f44060056ed0d379d326..a4a6171da92ec7d3f8aa37c664554d22f798a909 100644 --- a/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml +++ b/src/SOL003/VNFLifecycleManagement/responses/VNFLifecycleManagement_resp.yaml @@ -1,3 +1,6 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + responses: 202-with-Location: description: >