Newer
Older
Giacomo Bernini
committed
version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
title: SOL003 - VNF Performance Management interface
SOL003 - VNF Performance Management interface
Michele Carignani
committed
IMPORTANT: Please note that this file might be not aligned to the current
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
filtering mechanism is defined. This mechanism is currently not
included in the corresponding OpenAPI design for this GS version. Changes
to the attribute-based filtering mechanism are being considered in v2.5.1
of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
design.
Michele Carignani
committed
Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=
license:
name: "ETSI Forge copyright notice"
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
Michele Carignani
committed
externalDocs:
Giacomo Bernini
committed
description: ETSI GS NFV-SOL 003 V2.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.07.01_60/gs_NFV-SOL003v020701p.pdf
Michele Carignani
committed
Giacomo Bernini
committed
basePath: "/vnfpm/v2"
schemes:
- https
consumes:
- "application/json"
produces:
- "application/json"
paths:
Giacomo Bernini
committed
###############################################################################
# API Versions #
###############################################################################
Giacomo Bernini
committed
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
# PM jobs #
###############################################################################
'/pm_jobs':
#SOL003 location: 6.4.2
post:
description: >
Create PM Job.
This method shall follow the provisions specified in the tables 6.4.2.3.1-1 and 6.4.2.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 PM job" resource as defined
in clause 6.4.3 shall have been created.
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
- 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 PM job has been created successfully.
The response body shall contain a representation of the created "Individual PM job" resource,
as defined in clause 6.5.2.7.
The HTTP response shall include a "Location" HTTP header that points to the created
"Individual 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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Query PM Job.
Giacomo Bernini
committed
The API consumer can use this method to retrieve information about PM jobs.
This method shall follow the provisions specified in the tables 6.4.2.3.2-1 and 6.4.2.3.2-2
for URI query parameters, request and response data structures, and response codes.
Giacomo Bernini
committed
The API consumer 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
Samir Medjiah
committed
- name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
Samir Medjiah
committed
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 PmJob and in data
types referenced from it shall be supported by the VNFM in the
filter expression.
in: query
required: false
type: string
- name: all_fields
description: >
Include all complex attributes in the response.
See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter.
Samir Medjiah
committed
in: query
required: false
type: string
- name: fields
description: >
Complex attributes to be included into the response.
See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter.
Samir Medjiah
committed
in: query
required: false
type: string
- name: exclude_fields
description: >
Complex attributes to be excluded from the response.
See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM should support this parameter.
Samir Medjiah
committed
in: query
required: false
type: string
- name: exclude_default
description: >
Indicates to exclude the following complex attributes from the response.
See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter.
Samir Medjiah
committed
The following attributes shall be excluded from the PmJob structure
in the response body if this parameter is provided, or none of the parameters
"all_fields", "fields", "exclude_fields", "exclude_default" are provided:
Giacomo Bernini
committed
- reports
Samir Medjiah
committed
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 5.4.2.1 of ETSI GS NFV-SOL 013
Samir Medjiah
committed
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 information about zero or more PM jobs has been queried successfully.
The response body shall contain in an array the representations of zero or more PM jobs,
as defined in clause 6.5.2.7.
If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), "exclude_fields"
(if supported) or "exclude_default" URI parameters was supplied in the request, the data in the
response body shall have been transformed according to the rules specified in clauses 5.2.2 and 5.3.2
of ETSI GS NFV-SOL 013, respectively.
If the VNFM supports alternative 2 (paging) according to clause 5.4..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 5.4.2.3 of ETSI GS NFV-SOL 013.
The MIME type of the body of the request.
Reference: IETF RFC 7231
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:
type: array
items:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
moscatelli
committed
###############################################################################
# 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
moscatelli
committed
new "Individual 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: >
moscatelli
committed
Query PM Job.
Giacomo Bernini
committed
The API consumer can use this method for reading an individual PM job.
moscatelli
committed
This method shall follow the provisions specified in the tables 6.4.3.3.2-1 and 6.4.3.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
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
moscatelli
committed
Shall be returned when information about an individual PM job has been read successfully.
The response body shall contain a representation of the "Individual PM job" resource,
as defined in clause 6.5.2.7.
The MIME type of the body of the request.
Reference: IETF RFC 7231
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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
moscatelli
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
moscatelli
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
moscatelli
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
moscatelli
committed
Giacomo Bernini
committed
patch:
description: >
This method allows to modify an "Individual PM job" resource.
Giacomo Bernini
committed
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
This method shall follow the provisions specified in the tables
6.4.3.3.4-1 and 6.4.3.3.4-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
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
responses:
200:
description: >
200 OK
Shall be returned when the request has been processed successfully.
The response body shall contain a data structure of type "PmJobModifications".
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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJobModifications"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini
committed
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
412:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412"
Giacomo Bernini
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
Giacomo Bernini
committed
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
moscatelli
committed
Delete PM Job.
This method terminates an individual PM job.
moscatelli
committed
This method shall follow the provisions specified in the tables 6.4.3.3.5-1 and 6.4.3.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 PM job" resource shall not exist any longer.
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
moscatelli
committed
Shall be returned when the PM job 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
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
moscatelli
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
moscatelli
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
moscatelli
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
moscatelli
committed
###############################################################################
# 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: >
Giacomo Bernini
committed
The API consumer can use this method for reading an individual performance report.
moscatelli
committed
This method shall follow the provisions specified in the tables 6.4.4.3.2-1 and 6.4.4.3.2-2
for URI query parameters, request and response data structures, and response codes.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
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
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
moscatelli
committed
Shall be returned when information of an individual performance report has been read successfully.
The response body shall contain a representation of the "Individual performance report" resource,
as defined in clause 6.5.2.10.
The MIME type of the body of the request.
Reference: IETF RFC 7231
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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
moscatelli
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
moscatelli
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
moscatelli
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
moscatelli
committed
###############################################################################
# Thresholds #
###############################################################################
'/thresholds':
#SOL003 location: 6.4.5
post:
description: >
moscatelli
committed
Create Threshold.
Giacomo Bernini
committed
The POST method can be used by the API consumer to create a threshold.
moscatelli
committed
This method shall follow the provisions specified in the tables 6.4.5.3.1-1 and 6.4.5.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 threshold" resource
as defined in clause 6.4.6 shall have been created.
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
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
moscatelli
committed
Shall be returned when a threshold has been created successfully.
The response body shall contain a representation of the created "Individual threshold" resource,
as defined in clause 6.5.2.9.
The HTTP response shall include a "Location" HTTP header that contains the resource URI of the
created threshold resource.
headers:
Location:
description: The resource URI of the created VNF instance
type: string
format: url
The MIME type of the body of the request.
Reference: IETF RFC 7231
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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
moscatelli
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
moscatelli
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
moscatelli
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
moscatelli
committed
moscatelli
committed
Query Threshold.
Giacomo Bernini
committed
The API consumer can use this method to query information about thresholds.
moscatelli
committed
This method shall follow the provisions specified in the tables 6.4.5.3.2-1 and 6.4.5.3.2-2
for URI query parameters, request and response data structures, and response codes.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
Samir Medjiah
committed
- name: filter
description: >
moscatelli
committed
Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
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 Thresholds data type and in data types referenced
from it shall be supported by the VNFM in the filter expression.
Samir Medjiah
committed
in: query
required: false
type: string
- name: nextpage_opaque_marker
description: >
moscatelli
committed
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
5.4.2.1 of ETSI GS NFV-SOL 013 for this resource.
Samir Medjiah
committed
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
moscatelli
committed
Shall be returned when information about zero or more thresholds has been queried successfully.
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.
The response body shall contain in an array the representations of zero or more thresholds,
as defined in clause 6.5.2.9.
If the VNFM supports alternative 2 (paging) according to clause 5.4.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 5.4.2.3 of ETSI GS NFV-SOL 013.
headers:
Location:
description: The resource URI of the created VNF instance
type: string
format: url
The MIME type of the body of the request.
Reference: IETF RFC 7231
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
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
moscatelli
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
moscatelli
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
moscatelli
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
moscatelli
committed
###############################################################################
# Individual threshold #
###############################################################################
'/thresholds/{thresholdId}':
#SOL003 location: 6.4.6
- 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
moscatelli
committed
new "Individual 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: >
moscatelli
committed
Query Threshold.
Giacomo Bernini
committed
The API consumer can use this method for reading an individual threshold
moscatelli
committed
This method shall follow the provisions specified in the tables 6.4.6.3.2-1 and 6.4.6.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
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
moscatelli
committed
Shall be returned when information about an individual threshold has been read successfully.
The response body shall contain a representation of the threshold, as defined in clause 6.5.2.9.
The MIME type of the body of the request.
Reference: IETF RFC 7231
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/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
moscatelli
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
moscatelli
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
moscatelli
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
moscatelli
committed
Giacomo Bernini
committed
patch:
Giacomo Bernini
committed
This method allows to modify an "Individual threshold" resource.
This method shall follow the provisions specified in the tables
6.4.6.3.4-1 and 6.4.6.3.4-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
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
Giacomo Bernini
committed
Shall be returned when the request has been processed successfully.
The response body shall contain a data structure of type "ThresholdModifications".
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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
Giacomo Bernini
committed
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdModifications"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
moscatelli
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
412:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412"
moscatelli
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
moscatelli
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
moscatelli
committed
Giacomo Bernini
committed
Delete Threshold.
This method allows to delete a threshold.
This method shall follow the provisions specified in the tables 6.4.6.3.5-1 and 6.4.6.3.5-2
moscatelli
committed
for URI query parameters, request and response data structures, and response codes.
Giacomo Bernini
committed
As the result of successfully executing this method, the "Individual threshold" resource
shall not exist any longer.
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
- name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
type: string
Giacomo Bernini
committed
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
Version:
description: >
Version of the API used in the response.
type: string
maximum: 1
minimum: 1
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
moscatelli
committed
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
moscatelli
committed
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
moscatelli
committed
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
# ##############################################################################
# # Subscriptions #
# ##############################################################################
# '/subscriptions':
# #SOL003 location: 6.4.7
# post:
# description: >
# Subscribe.
# The POST method creates a new subscription.
# 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.
# As the result of successfully executing this method, a new "Individual subscription" resource
# as defined in clause 6.4.8 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
# a new "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: 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: 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
# responses:
# 201:
# description: >
# 201 CREATED
#
# Shall be returned when the subscription has been created successfully.
# A representation of the created "Individual subscription" resource shall be
# returned in the response body, as defined in clause 6.5.2.3.
# The HTTP response shall include a "Location" HTTP header that contains the
# resource URI of the created "Individual subscription" resource.
# headers:
# Location:
# description: The resource URI of the created VNF instance
# type: string
# format: url
# 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
# Version:
# description: >
# Version of the API used in the response.
# type: string
# maximum: 1
# minimum: 1
# schema:
# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
# 303:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/303"
Giacomo Bernini
committed
# 400:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini
committed
# 401:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
# 403:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
# 404:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
# 405:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
# 406:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
# 422:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
Giacomo Bernini
committed
# 500:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
# 503:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
# 504:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
#
# get:
# description: >
# Query Subscription Information.
# TThe client can use this method to query the list of active subscriptions
# to Performance management notifications subscribed by the client.
# This method shall follow the provisions specified in the tables 6.4.7.3.2-1 and 6.4.7.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: filter
# description: >
# Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013.
# 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 PmSubscription 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 5.4.2.1 of ETSI GS NFV-SOL 013 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
# responses:
# 200:
# description: >
# 200 OK
#
# 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
# PM subscriptions as defined in clause 6.5.2.3.
# 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.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 5.4.2.3 of ETSI GS NFV-SOL 013.
# 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
# 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:
# type: array
# items:
# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
# 400:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini
committed
# 401:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
# 403:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
# 404:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
# 405:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
# 406:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
# 422:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
Giacomo Bernini
committed
# 500:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
# 503:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
# 504:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
#
# ###############################################################################
# # Individual subscription #
# ###############################################################################
# '/subscriptions/{subscriptionId}':
# #SOL003 location: 6.4.8
# parameters:
# - name: subscriptionId
# description: >
# This identifier can be retrieved from the resource referenced by the
# "Location" HTTP header in the response to a POST request creating a
# new "Individual 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 client can use this method for reading an individual subscription about
# Performance management notifications subscribed by the client.
# This method shall follow the provisions specified in the tables 6.4.8.3.2-1 and 6.4.8.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
# responses:
# 200:
# description: >
# 200 OK
#
# Shall be returned when the subscription has been read successfully.
# The response body shall contain a representation of the "Individual subscription" resource,
# as defined in clause 6.5.2.3.
# 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
# Version:
# description: >
# Version of the API used in the response.
# type: string
# maximum: 1
# minimum: 1
# schema:
# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
# 400:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
Giacomo Bernini
committed
# 401:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
# 403:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
# 404:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
# 405:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
# 406:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
# 422:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
Giacomo Bernini
committed
# 500:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
# 503:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
# 504:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
Giacomo Bernini
committed
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
#
# delete:
# description: >
# Terminate Subscription.
# This method terminates an individual subscription.
# This method shall follow the provisions specified in the tables 6.4.8.3.5-1 and 6.4.8.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
# responses:
# 204:
# description: >
# 204 NO CONTENT
#
# 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#/components/responses/400"
Giacomo Bernini
committed
# 401:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
Giacomo Bernini
committed
# 403:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
Giacomo Bernini
committed
# 404:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
Giacomo Bernini
committed
# 405:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
Giacomo Bernini
committed
# 406:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
Giacomo Bernini
committed
# 422:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
Giacomo Bernini
committed
# 500:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
Giacomo Bernini
committed
# 503:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
Giacomo Bernini
committed
# 504:
# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"