Newer
Older
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
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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:
404 NOT FOUND
Shall be returned upon the following error: The API producer did not find a current representation
for the target resource or is not willing to disclose that one exists.
The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013,
including rules for the presence of the response body.
Specifically in case of this task resource, the response code 404 shall also be returned if the task
is not supported for the VNF LCM operation occurrence represented by the parent resource,
which means that the task resource consequently does not exist.
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
409:
409 CONFLICT
Shall be returned upon the following error: The operation cannot be executed currently,
due to a conflict with the state of the VNF LCM operation occurrence.
Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state,
or another error handling action is starting, such as rollback or fail.
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# 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
The POST method marks a VNF lifecycle management operation occurrence as "finally failed"
if that operation occurrence is in "FAILED_TEMP" state.
This method shall follow the provisions specified in the tables 5.4.16.3.1-1 and 5.4.16.3.1-2
for URI query parameters, request and response data structures, and response codes.
In case of success, the "operationState" attribute in the representation of the parent resource
shall be changed to "FAILED" and the applicable "result" notification according to clause 5.6.2.2
shall be emitted to indicate that the execution of the underlying VNF LCM operation occurrence
has finally and unrecoverably failed.
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: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
Shall be returned when the state of the VNF lifecycle management operation occurrence
has been changed successfully.
The response shall include a representation of the "Individual 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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_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:
404 NOT FOUND
Shall be returned upon the following error: The API producer did not find a current representation
for the target resource or is not willing to disclose that one exists.
The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013,
including rules for the presence of the response body.
Specifically in case of this task resource, the response code 404 shall also returned if the task
is not supported for the VNF LCM operation occurrence represented by the parent resource, which means
that the task resource consequently does not exist.
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
409:
409 CONFLICT
Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict
with the state of the VNF LCM operation occurrence.
Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state,
or another error handling action is starting, such as retry or rollback.
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# 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
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
The POST method initiates cancelling an ongoing VNF lifecycle operation while
it is being executed or rolled back, i.e. the related "Individual VNF LCM operation occurrence"
resource is either in "STARTING" or "PROCESSING" or "ROLLING_BACK" state.
This method shall follow the provisions specified in the tables 5.4.17.3.1-1 and 5.4.17.3.1-2
for URI query parameters, request and response data structures, and response codes.
Before returning the "202 Accepted" response, the VNFM shall update the "isCancelPending"
and "cancelMode" attributes in the representation of the parent resource according to the
provisions in clause 5.5.2.13.
In case of success of processing the asynchronous request:
1) If the request has been processed in "STARTING" state, the "operationState" attribute
in the representation of the parent resource shall be changed to "ROLLED_BACK".
2) If the request has been processed in "PROCESSING" or "ROLLING_BACK" state,
the "operationState" attribute in the representation of the parent resource
shall be changed to "FAILED_TEMP".
In both cases, the VNFM shall update the "isCancelPending" and "cancelMode" attributes
in the representation of the parent resource according to the provisions in clause 5.5.2.13
to reflect the new status, and the applicable "result" notification according to clause 5.6.2.2
shall be emitted to indicate that the execution of the underlying VNF LCM operation occurrence
has temporarily failed.
Due to race conditions, the processing of the actual operation that is to be cancelled may eventually
still succeed, in which case the "operationState" attribute in the representation of the parent
resource shall represent the result of that operation, rather than the result of the cancellation.
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
description: >
202 ACCEPTED
Shall be returned when the request has been accepted for processing.
The response shall have an empty payload body.
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
Version:
description: The used API version.
type: string
maximum: 1
minimum: 1
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"
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
409:
409 CONFLICT
Shall be returned upon the following error: The operation cannot be executed currently,
due to a conflict with the state of the VNF LCM operation occurrence.
Typically, this is due to the fact that the operation occurrence is not in STARTING,
PROCESSING or ROLLING_BACK state.
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/409"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Subscriptions #
###############################################################################
'/subscriptions':
#SOL003 location: 5.4.18
The POST method creates a new subscription.
This method shall follow the provisions specified in the tables 5.4.18.3.1-1 and 5.4.18.3.1-2
for URI query parameters, request and response data structures, and response codes.
As the result of successfully executing this method, a new "Individual subscription"
resource as defined in clause 5.4.3 shall have been created. This method shall not trigger any notification.
Creation of two "Individual subscription" resources with the same callbackURI and the same filter
can result in performance degradation and will provide duplicates of notifications to the NFVO,
and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating
an "Individual subscription" resource if another "Individual subscription" resource with the same
filter and callbackUri already exists (in which case it shall return the "201 Created" response code),
or may decide to not create a duplicate "Individual subscription" resource (in which case it shall
return a "303 See Other" response code referencing the existing "Individual subscription" resource
with the same filter and callbackUri).
parameters:
- name: LccnSubscriptionRequest
Details of the subscription to be created.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest"
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
- 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
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
Shall be returned when the subscription has been created successfully.
The response body shall contain a representation of the created "Individual subscription" resource.
The HTTP response shall include a "Location" HTTP header that points to the created
"Individual 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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription"
Shall be returned if a subscription with the same callbackURI and the same filter already exists
and the policy of the VNFM is to not create redundant subscriptions.
The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing
"Individual subscription" resource.
The response body shall be empty.
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
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/405"
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"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
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
Samir Medjiah
committed
- name: filter
description: >
Attribute-based filtering expression according to clause 4.3.2.
The VNFM shall support receiving this parameter as part of the
URI query string. The NFVO may supply this parameter.
All attribute names that appear in the LccnSubscription and in
data types referenced from it shall be supported by the VNFM
in the filter expression.
in: query
required: false
type: string
- name: nextpage_opaque_marker
description: >
Marker to obtain the next page of a paged response. Shall be
supported by the VNFM if the VNFM supports alternative 2 (paging)
according to clause 4.7.2.1 for this resource.
in: query
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
Shall be returned when the list of subscriptions has been queried successfully.
The response body shall contain in an array the representations of all active subscriptions of
the functional block that invokes the method, i.e. zero or more representations of lifecycle change
notification subscriptions as defined in clause 5.5.2.16.
If the "filter" URI parameter was supplied in the request, the data in the response body shall have been
transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013.
If the VNFM supports alternative 2 (paging) according to clause 5.4.7.2.1 of ETSI GS NFV-SOL 013
for this resource, inclusion of the Link HTTP header in this response shall follow the provisions
in clause 4.7.2.3.5.4.2.3 of ETSI GS NFV-SOL 013.
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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
Link:
description: >
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
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"
$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"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
###############################################################################
# Individual subscription #
###############################################################################
'/subscriptions/{subscriptionId}':
#SOL003 location: 5.4.19
parameters:
- name: subscriptionId
description: >
Identifier of this subscription.
This identifier can be retrieved from the resource referenced by
the "Location" HTTP header in the response to a POST request
creating a new subscription resource. It can also be retrieved from
the "id" attribute in the payload body of that response.
in: path
type: string
required: true
get:
description: >
Query Subscription Information.
The GET method retrieves information about a subscription by reading an "Individual subscription" resource.
This method shall follow the provisions specified in the tables 5.4.19.3.2-1 and 5.4.19.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: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
Shall be returned when information about an individual subscription has been read successfully.
The response body shall contain a representation of the "Individual 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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
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"
$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"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"
The DELETE method terminates an individual subscription.
This method shall follow the provisions specified in the tables 5.4.19.3.5-1 and 5.4.19.3.5-2
for URI query parameters, request and response data structures, and response codes.
As the result of successfully executing this method, the "Individual subscription" resource
shall not exist any longer. This means that no notifications for that subscription shall be
sent to the formerly-subscribed API consumer.
NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed
API consumer for a certain time period after the deletion.
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: false
type: string
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
Shall be returned when the "Individual subscription" resource has been deleted successfully.
The response body shall be empty.
headers:
WWW-Authenticate:
description: >
Challenge if the corresponding HTTP request has not provided
authorization, or error details if the corresponding HTTP
request has provided an invalid authorization token.
type: string
maximum: 1
minimum: 0
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
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"
$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"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/504"