swagger: "2.0" info: version: "2.4.1" title: DRAFT - SOL005 - NS Lifecycle Management Interface description: > DRAFT - SOL005 - NS Lifecycle Management Interface IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt contact: name: "NFV-SOL WG" externalDocs: description: ETSI GS NFV-SOL 005 V2.4.1 url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.04.01_60/gs_NFV-SOL005v020401p.pdf basePath: "/nslcm/v1" schemes: - https consumes: - "application/json" produces: - "application/json" paths: ############################################################################### # NSInstances # ############################################################################### '/ns_instances': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.2 post: summary: "NS instances" description: > The POST method creates a new NS instance resource. parameters: - name: createNsRequest description: "The NS Instance creation parameters." in: body required: true schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/CreateNsRequest" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 201: description: > 201 Created. A NS Instance identifier was created successfully. The response body shall contain a representation of the created NS instance, as defined in clause 6.5.2.8. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created NS instance. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 Location: description: The resource URI of the created NS instance type: string format: url WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" 400: $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "responses/SOL005_resp.yaml#/responses/416" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" get: summary: "NS instances" description: > Query NS Instances. The GET method queries information about multiple NS instances. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. parameters: - name: "filter" in: "query" required: false type: "string" description: > "Attribute-based filtering parameters according to clause 4.3.2. The NFVO shall support receiving filtering parameters as part of the URI query string. The OSS/BSS may supply filtering parameters. All attribute names that appear in the NsInstance and in data types referenced from it shall be supported in attribute-based filtering parameters" - name: "all_fields" in: "query" required: false type: "string" description: > "Include all complex attributes in the response. See clause 4.3.3 for details. The NFVO shall support this parameter." - name: "fields" in: "query" required: false type: "string" description: > "Complex attributes to be included into the response. See clause 4.3.3 for details. The NFVO should support this parameter." - name: "exclude_fields" in: "query" required: false type: "string" description: > "Complex attributes to be excluded from the response. See clause 4.3.3 for details. The NFVO should support this parameter." - name: "exclude_default" in: "query" required: false type: "string" description: > "Indicates to exclude the following complex attributes from the response. See clause 4.3.3 for details. The NFVO shall support this parameter. The following attributes shall be excluded from the NsInstance structure in the response body if this parameter is provided, or none of the parameters "all_fields," "fields", "exclude_fields", "exclude_default" are provided: - vnfInstances - pnfInfo - virtualLinkInfo - vnffgInfo - sapInfo - nsScaleStatus - additionalAffinityOrAntiAffinityRules" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 200: description: > 200 OK Information about zero or more NS instances was queried successfully. The response body shall contain representations of zero or more NS instances. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: type: array items: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" 400: $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "responses/SOL005_resp.yaml#/responses/416" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Individual NS instance # ############################################################################### '/ns_instances/{nsInstanceId}': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.3 parameters: - name: nsInstanceId description: > Identifier of the NS instance. in: path type: string required: true get: summary: Individual NS instance description: > The GET method retrieves information about a NS instance by reading an individual NS instance resource. parameters: - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 200: description: > Information about an individual NS instance was queried successfully. The response body shall contain a representation of the NS instance. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" 400: $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "responses/SOL005_resp.yaml#/responses/416" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" delete: summary: Individual NS instance. description: > Delete NS Identifier This method deletes an individual NS instance resource. parameters: - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 204: description: > 204 No Content The NS instance resource and the associated NS identifier were deleted successfully. The response body shall be empty. headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 400: $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" 412: $ref: "responses/SOL005_resp.yaml#/responses/412" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Instantiate NS task # ############################################################################### '/ns_instances/{nsInstanceId}/instantiate': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.4 parameters: - name: nsInstanceId description: > Identifier of the NS instance to be instantiated. in: path type: string required: true post: summary: Instantiate NS task. description: > The POST method requests to instantiate a NS instance resource. parameters: - name: InstantiateNsRequest description: > Parameters for the instantiate NS operation, as defined in clause 6.5.2.10. in: body required: true schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/InstantiateNsRequest" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 202: description: > The request was accepted for processing, but the processing has not been completed. The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created "NS LCM operation occurrence" resource corresponding to the operation. 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED" 416: $ref: "responses/SOL005_resp.yaml#/responses/416" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Scale NS task # ############################################################################### '/ns_instances/{nsInstanceId}/scale': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.5 parameters: - name: nsInstanceId description: > Identifier of the NS instance to be scaled. in: path type: string required: true post: summary: Scale NS task. description: > The POST method requests to scale a NS instance resource. parameters: - name: ScaleNsRequest description: Represents a request for the scale NS operation in: body required: true schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/ScaleNsRequest" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 202: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Update NS task # ############################################################################### '/ns_instances/{nsInstanceId}/update': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.6 parameters: - name: nsInstanceId description: > Identifier of the NS instance to be updated. in: path type: string required: true post: summary: Update NS task. description: > Scale NS instance. The POST method requests to scale a NS instance resource. parameters: - name: UpdateNsRequest description: Represents a request for the scale NS operation. in: body required: true schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/UpdateNsRequest" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 202: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Heal NS task # ############################################################################### '/ns_instances/{nsInstanceId}/heal': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.7 parameters: - name: nsInstanceId description: > Identifier of the NS instance to be healed. in: path type: string required: true post: summary: Heal NS task. description: > Heal NS. The POST method requests to heal a NS instance resource. This method shall follow the provisions specified in the Tables 6.4.7.3.1-1 and 6.4.7.3.1-2 for URI query parameters, request and response data structures, and response codes. parameters: - name: HealNsRequest description: Parameters for the heal NS operation, as defined in clause 6.5.2.12. in: body required: true schema: $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/HealNsRequest" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 202: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Terminate NS task # ############################################################################### '/ns_instances/{nsInstanceId}/terminate': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.8 parameters: - name: nsInstanceId description: > The identifier of the NS instance to be terminated. in: path type: string required: true post: summary: Terminate NS task description: > Terminate NS task. The POST method terminates a NS instance. This method can only be used with a NS instance in the INSTANTIATED state. Terminating a NS instance does not delete the NS instance identifier, but rather transitions the NS into the NOT_INSTANTIATED state. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.8.3.1-1 and 6.8.8.3.1-2. parameters: - name: TerminateNsRequest description: The terminate NS request parameters, as defined in clause 6.5.2.14. in: body required: true schema: $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/TerminateNsRequest" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 202: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/202-with-Location" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # NS LCM operation occurrences # ############################################################################### '/ns_lcm_op_occs': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.9 get: summary: NS lifecycle operation occurrences. description: > Get Operation Status. The client can use this method to query status information about multiple NS lifecycle management operation occurrences. This method shall follow the provisions specified in the Tables 6.4.9.3.2-1 and 6.4.9.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - name: "filter" in: "query" required: false type: "string" description: > Attribute-based filtering parameters according to clause 4.3.2. The NFVO shall support receiving filtering parameters as part of the URI query string. The OSS/BSS may supply an attribute filter. All attribute names that appear in the NsLcmOpOcc and in data types referenced from it shall be supported in filtering parameters. - name: "fields" in: "query" required: false type: "string" description: > Complex attributes to be included into the response. See clause 4.3.3 for details. The NFVO should support this parameter. - name: "exclude_fields" in: "query" required: false type: "string" description: > Complex attributes to be excluded from the response. See clause 4.3.3 for details. The NFVO should support this parameter. - name: "exclude_default" in: "query" required: false type: "string" description: > Indicates to exclude the following complex attributes from the response. See clause 4.3.3 for details. The NFVO shall support this parameter. The following attributes shall be excluded from the NsLcmOpOcc structure in the response body if this parameter is provided: - operationParams - changedVnfInfo - error - resourceChanges - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 200: description: > Status information for zero or more NS lifecycle management operation occurrences was queried successfully. The response body shall contain representations of zero or more NS instances, as defined in clause 5.5.2.13. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: type: array items: $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Individual NS lifecycle operation occurrence # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.10 parameters: - name: nsLcmOpOccId description: > Identifier of a NS lifecycle management operation occurrence. in: path type: string required: true get: summary: Individual NS lifecycle operation occurrence. description: > The client can use this method to retrieve status information about a NS lifecycle management operation occurrence by reading an individual "NS LCM operation occurrence" resource. This method shall follow the provisions specified in the Tables 6.4.10.3.2-1 and 6.4.10.3.2-2 for URI query parameters, request and response data structures, and response codes. parameters: - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 200: description: > Information about an individual NS instance was queried successfully. The response body shall contain status information about a NS lifecycle management operation occurrence. headers: Content-Type: description: > The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "responses/SOL005_resp.yaml#/responses/416" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Retry operation task # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/retry': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.11 parameters: - name: nsLcmOpOccId description: > Identifier of a NS lifecycle management operation occurrence to be retried. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" attribute in the NsLcmOperationOccurrenceNotification in: path type: string required: true post: summary: Retry operation task. description: > The POST method initiates retrying a NS lifecycle management operation if that operation has experienced a temporary failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. This method shall follow the provisions specified in the Tables 6.4.11.3.1-1 and 6.4.11.3.1-2 for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 202: $ref: "responses/SOL005_resp.yaml#/responses/202" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists-NS-LCM" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Rollback a NS lifecycle management operation occurrence. # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/rollback': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.12 parameters: - name: nsLcmOpOccId description: > Identifier of a NS lifecycle management operation occurrence to be rolled back. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" attribute in the NsLcmOperationOccurrenceNotification. in: path required: true type: string post: summary: Rollback operation task. description: > The POST method initiates rolling back a NS lifecycle operation if that operation has experienced a temporary failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. This method shall follow the provisions specified in the Tables 6.4.12.3.1-1 and 6.4.12.3.1-2 for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 202: $ref: "responses/SOL005_resp.yaml#/responses/202" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Continue a NS lifecycle management operation occurrence. # ############################################################################### '/ns_lcm_op_occs/{nsLcmOpOccId}/continue': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.13 parameters: - name: nsLcmOpOccId description: > Identifier of a NS lifecycle management operation occurrence to be continued. in: path required: true type: string post: summary: Continue operation task. description: > The POST method initiates continuing an NS lifecycle operation if that operation has experienced a temporary failure, i.e. the related "NS LCM operation occurrence" is in "FAILED_TEMP" state. This method shall follow the provisions specified in the Tables 6.4.13.3.1-1 and 6.4.13.3.1-2 for URI query parameters, request and response data structures, and response codes. parameters: - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 202: $ref: "responses/SOL005_resp.yaml#/responses/202" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Fail operation task # ############################################################################### '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/fail': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.14 parameters: - name: nsLcmOpOccId description: > Identifier of a NS lifecycle management operation occurrence to be marked as "failed". This identifier can be retrieved from the resource referenced by he "Location" HTTP header in the response to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" attribute in the NsLcmOperationOccurrenceNotification. in: path required: true type: string post: summary: Fail operation task. description: > The POST method marks a NS lifecycle management operation occurrence as "finally failed" if that operation occurrence is in "FAILED_TEMP" state. parameters: - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 200: description: > The state of the NS lifecycle management operation occurrence was changed successfully. The response shall include a representation of the NS lifecycle management operation occurrence resource. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/NsLcmOpOcc" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-not-found" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-state-conflict-not-FAILED_TEMP" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Cancel operation task # ############################################################################### '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.15 parameters: - name: nsLcmOpOccId description: > Identifier of a NS lifecycle management operation occurrence to be canceled. This identifier can be retrieved from the resource referenced by the "Location" HTTP header in the response to a POST request triggering a NS LCM operation. It can also be retrieved from the "nsLcmOpOccId" attribute in the NsLcmOperationOccurrenceNotification. in: path required: true type: string post: summary: Cancel operation task. description: > The POST method initiates canceling an ongoing NS lifecycle management operation while it is being executed or rolled back, i.e. the related "NS LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. This method shall follow the provisions specified in the Tables 6.4.15.3.1-1 and 6.4.15.3.1-2 for URI query parameters, request and response data structures, and response codes. parameters: - name: CancelMode description: > The POST request to this resource shall include a CancelMode structure in the payload body to choose between "graceful" and "forceful" cancellation. in: body required: true schema: $ref: "definitions/NSLifecycleManagement_def.yaml#/definitions/CancelMode" - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 202: $ref: "responses/SOL005_resp.yaml#/responses/202" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-resource-not-exists-NS-LCM" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: description: > 409 Conflict. Error: The operation cannot be executed currently, due to a conflict with the state of the NS LCM operation occurrence resource. Typically, this is due to the fact that the operation occurrence is not in STARTING, PROCESSING or ROLLING_BACK state. The response body shall contain a ProblemDetails structure, in which the "detail" attribute shall convey more information about the error. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/SOL005_def.yaml#/definitions/ProblemDetails" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Subscriptions # ############################################################################### '/subscriptions': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.16 post: summary: Subscriptions description: > Subscribe. The POST method creates a new subscription. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.16.3.1-1 and 6.4.16.3.1-2. Creation of two subscription resources with the same callbackURI and the same filter can result in performance degradation and will provide duplicates of notifications to the OSS, and might make sense only in very rare use cases. Consequently, the NFVO may either allow creating a subscription resource if another subscription resource with the same filter and callbackUri already exists (in which case it shall return the "201 Created" response code), or may decide to not create a duplicate subscription resource (in which case it shall return a "303 See Other" response code referencing the existing subscription resource with the same filter and callbackUri). parameters: - name: LccnSubscriptionRequest description: > Details of the subscription to be created. in: body required: true schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 201: description: > The subscription was created successfully. The response body shall contain a representation of the created subscription resource. The HTTP response shall include a "Location:" HTTP header that points to the created subscription resource. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 Location: description: The resource URI of the created VNF instance type: string format: url WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" 303: description: > See Other. A subscription with the same callbackURI and the same filter already exits and the policy of the NFVO is to not create redundant subscriptions. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing subscription resource. The response body shall be empty. headers: Location: description: The resource URI of the created NS instance type: string format: url WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" get: summary: Subscriptions description: > Query Subscription Information. The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for resynchronization after error situations. parameters: - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 200: description: > The list of subscriptions was queried successfully. The response body shall contain the representations of all active subscriptions of the functional block that invokes the method. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" 400: description: > Bad Request. Invalid attribute-based filtering parameters. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/SOL005_def.yaml#/definitions/ProblemDetails" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Individual subscription # ############################################################################### '/subscriptions/{subscriptionId}': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.17 parameters: - name: subscriptionId description: > Identifier of this subscription. in: path type: string required: true get: summary: Individual subscription. description: > The GET method retrieves information about a subscription by reading an individual subscription resource. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.17.3.2-1 and 6.4.17.3.2-2 parameters: - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 200: description: > The operation has completed successfully. The response body shall contain a representation of the subscription resource. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: type: array items: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscription" 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404-task-not-suported-NS-LCM" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" delete: summary: Individual subscription. description: > The DELETE method terminates an individual subscription. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.17.3.5-1 and 6.4.17.3.5-2. parameters: - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 204: description: > 204 No Content. The subscription resource was deleted successfully. The response body shall be empty headers: WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 400: $ref: "responses/SOL005_resp.yaml#/responses/400" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" ############################################################################### # Notification endpoint # # "/notification_endpoint" is the # # is the dummy URI used for testing, in real case endpoint URI has to # # provided by client. # ############################################################################### '/notification_endpoint': #ETSI GS NFV-SOL 005 V2.4.1 location: 6.4.18 post: summary: Notification endpoint. description: > The POST method delivers a notification from the server to the client. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.18.3.1-1 and 6.4.18.3.1-2. # Don't know how to pass multiple body parameters. parameters: - name: nsLcmOperationOccurrenceNotification description: > A notification about lifecycle changes triggered by a NS LCM operation occurrence. in: body required: true schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmOperationOccurrenceNotification" #- name: nsIdentifierCreationNotification # description: > # A notification about the creation of a NS identifier and the related # NS instance resource. # in: body # required: true # schema: # $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierCreationNotification" #- name: nsIdentifierDeletionNotification # description: > # A notification about the deletion of a NS identifier and the related # NS instance resource. # in: body # required: true # schema: # $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsIdentifierDeletionNotification" - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string - name: Content-Type description: > The MIME type of the body of the request. Reference: IETF RFC 7231 in: header required: true type: string responses: 204: description: > The notification was delivered successfully. headers: Content-Type: description: The MIME type of the body of the response. type: string maximum: 1 minimum: 1 Location: description: The resource URI of the created NS instance type: string format: url WWW-Authenticate: description: > Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. type: string maximum: 1 minimum: 0 schema: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" 400: $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "responses/SOL005_resp.yaml#/responses/416" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503" get: summary: Notification endpoint. description: > Query NS Instances. The GET method queries information about multiple NS instances. This method shall support the URI query parameters, request and response data structures, and response codes, as specified in the Tables 6.4.2.3.2-1 and 6.4.2.3.2-2. parameters: - name: Accept description: > Content-Types that are acceptable for the response. Reference: IETF RFC 7231 in: header required: true type: string - name: Authorization description: > The authorization token for the request. Reference: IETF RFC 7235 in: header required: false type: string responses: 200: description: > Multiple NS instances was queried successfully. schema: type: array items: $ref: "definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsInstance" headers: Content-Type: description: The MIME type of the body of the response. type: string 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 400: $ref: "responses/SOL005_resp.yaml#/responses/400-attr-selector" 401: $ref: "responses/SOL005_resp.yaml#/responses/401" 403: $ref: "responses/SOL005_resp.yaml#/responses/403" 404: $ref: "responses/SOL005_resp.yaml#/responses/404" 405: $ref: "responses/SOL005_resp.yaml#/responses/405" 406: $ref: "responses/SOL005_resp.yaml#/responses/406" 409: $ref: "responses/NSLifecycleManagement_resp.yaml#/responses/409-inconsistent-state" 416: $ref: "responses/SOL005_resp.yaml#/responses/416" 500: $ref: "responses/SOL005_resp.yaml#/responses/500" 503: $ref: "responses/SOL005_resp.yaml#/responses/503"