Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • nfv/SOL002-SOL003
  • reinaortega/SOL002-SOL003
2 results
Show changes
Showing
with 4719 additions and 3087 deletions
......@@ -2,39 +2,28 @@
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
Checksum:
description: >
This type represents the checksum of a VNF package or an artifact file.
type: object
required:
- algorithm
- hash
properties:
algorithm:
description: >
Name of the algorithm used to generate the checksum, as defined in
ETSI GS NFV-SOL 004. For example, SHA-256, SHA-512.
type: string
hash:
description: >
The hexadecimal value of the checksum.
type: string
VnfPkgInfo:
description: >
This type represents the information of an VNF package.
This type represents the information of a VNF package.
NOTE 1: If the value of the onboardingState attribute is not equal to "ONBOARDED", the value of the operationalState
attribute shall be equal to "DISABLED".
NOTE 2: If the value of the onboardingState attribute is not equal to "ONBOARDED", the value of the usageState attribute
shall be equal to "NOT_IN_USE".
NOTE 3: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
type: object
required:
- id
- onboardingState
- operationalState
- usageState
- _links
properties:
properties:
id:
description: >
Identifier of the on-boarded VNF package. This identifier is
allocated by the NFVO.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfdId:
description: >
This identifier, which is managed by the VNF provider, identifies
......@@ -42,19 +31,19 @@ definitions:
It's copied from the VNFD of the on-boarded VNF package.
It shall be present after the VNF package content has been
on-boarded and absent otherwise.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfProvider:
description: >
Provider of the VNF package and the VNFD. This information is copied
from the VNFD.
type: string
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfProductName:
description: >
Name to identify the VNF product. Invariant for the VNF product
lifetime. This information is copied from the VNFD.
It shall be present after the VNF package content has been
on-boarded and absent otherwise.
type: string
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfSoftwareVersion:
description: >
Software version of the VNF. This is changed when there is any
......@@ -62,19 +51,41 @@ definitions:
This information is copied from the VNFD.
It shall be present after the VNF package content has been
on-boarded and absent otherwise.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
vnfdVersion:
description: >
The version of the VNFD. This information is copied from the VNFD.
It shall be present after the VNF package content has been
on-boarded and absent otherwise.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
compatibleSpecificationVersions:
description: >
Indicates which versions of the ETSI GS NFV-SOL 004 specification the
package complies to, as defined in the manifest of the package.
Each entry shall be formatted as defined in clause 4.3.2 of ETSI GS NFV-SOL 004.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
checksum:
description: >
Checksum of the on-boarded VNF package.
It shall be present after the VNF package content has been
on-boarded and absent otherwise.
$ref: "#/definitions/Checksum"
Permitted hash algorithms are defined in ETSI GS NFV-SOL 004.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
packageSecurityOption:
description: >
Signals the security option used by the package as defined in clause 5.1 of ETSI GS NFV-SOL 004.
It shall be present after the VNF package content has been on-boarded and absent otherwise.
Valid values: OPTION_1, OPTION_2
type: string
enum:
- OPTION_1
- OPTION_2
signingCertificate:
description: >
The singleton signing certificate if it is included as a file in the VNF package.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
softwareImages:
description: >
Information about VNF package artifacts that are software images.
......@@ -88,6 +99,12 @@ definitions:
description: >
Information about VNF package artifacts contained in the VNF package
that are not software images.
Every local and external artifact declared in the manifest shall be
included, except the software images and the files that make up the
parts of the VNFD (see clause 10.4.4.3.2).
Signature files and certificate files are not considered as artifacts,
however, the content of the "Licenses" and "Testing" directories in the
VNF package is.
This attribute shall not be present before the VNF package content
is on-boarded. Otherwise, this attribute shall be present if the VNF
package contains additional artifacts.
......@@ -97,236 +114,97 @@ definitions:
onboardingState:
description: >
On-boarding state of the VNF package.
$ref: "#/definitions/PackageOnboardingStateType"
$ref: "#/definitions/PackageOnboardingStateType"
operationalState:
description: >
Operational state of the VNF package.
If the value of the onboardingState attribute is not equal to
"ONBOARDED", the value of the operationalState attribute shall be
equal to "DISABLED".
Operational state of the VNF package. See note 1.
$ref: "#/definitions/PackageOperationalStateType"
usageState:
description: >
Usage state of the VNF package.
If the value of the onboardingState attribute is not equal to
"ONBOARDED", the value of the usageState attribute shall be
equal to "NOT_IN_USE".
Usage state of the VNF package. See note 2.
$ref: "#/definitions/PackageUsageStateType"
vnfmInfo:
description: >
Specifies VNFMs compatible with the VNF. This information is copied from the VNFD of the on-boarded VNF package. See note 3.
It shall be present after the VNF package content has been on-boarded and absent otherwise.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
userDefinedData:
description: >
User defined data for the VNF package.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
onboardingFailureDetails:
description: >
Failure details of current onboarding procedure. See clause 6.3 of ETSI GS NFV-SOL 013
for the details of "ProblemDetails" structure.
If "onboardingState" is "ERROR", this attribute shall be present and contain error
information (such as failed onboarding or processing operation, affected artifact etc.),
unless it has been requested to be excluded via an attribute selector.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
_links:
description: >
Links to resources related to this resource.
type: object
required:
required:
- self
- packageContent
properties:
properties:
self:
description: >
URI of this resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
vnfd:
description: >
Link to the VNFD resource. This link shall be present after the
VNF package content is on-boarded.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
Link to the "VNFD in an individual VNf package" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
packageContent:
description: >
Link to the "VNF package content" resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
PackageOnboardingStateType:
description: >
CREATED: The VNF package resource has been created.
UPLOADING: The associated VNF package content is being uploaded.
PROCESSING: The associated VNF package content is being processed, e.g.,
validation.
ONBOARDED: The associated VNF package content has been successfully
on-boarded.
type: string
enum:
- CREATED
- UPLOADING
- PROCESSING
- ONBOARDED
PackageOperationalStateType:
description: >
- ENABLED: The VNF package is enabled, i.e. it can be used for
instantiation of new VNF instances.
- DISABLED: The VNF package is disabled, i.e. it cannot be used for
further VNF instantiation requests (unless and until the VNF package
is re-enabled).
type: string
enum:
- ENABLED
- DISABLED
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
PackageUsageStateType:
description: >
- IN_USE: VNF instances instantiated from this VNF package exist.
- NOT_IN_USE: No existing VNF instance is instantiated from this VNF
package.
PkgmNotificationsFilter:
PkgmSubscriptionRequest:
description: >
This type represents a subscription filter related to notifications
related to VNF package management.
At a particular nesting level in the filter structure, the following
applies: All attributes shall match in order for the filter to match
(logical "and" between different filter attributes). If an attribute
is an array, the attribute shall match if at least one of the values
in the array matches (logical "or" between the values of one filter
attribute).
This type represents a subscription request related to VNF package
management notifications about VNF package on-boarding or changes.
type: object
properties:
notificationTypes:
description: >
Match particular notification types.
Permitted values:
- VnfPackageOnboardingNotification
- VnfPackageChangeNotification
The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to
facilitate automated code generation systems.
type: array
items:
type: string
enum:
- VnfPackageOnboardingNotification
- VnfPackageChangeNotification
vnfProductsFromProviders:
description: >
If present, match VNF packages that contain VNF products from
certain providers.
The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
are alternatives to reference to particular VNF packages in a
filter. They should not be used both in the same filter instance,
but one alternative should be chosen.
type: array
items:
type: object
required:
- vnfProvider
properties:
vnfProvider:
description: >
Name of the VNF provider to match.
type: string
vnfProducts:
description: >
If present, match VNF packages that contain VNF products with
certain product names, from one particular provider.
type: array
items:
type: object
required:
- vnfProductName
properties:
vnfProductName:
description: >
Name of the VNF product to match.
type: string
versions:
description: >
If present, match VNF packages that contain VNF products
with certain versions and a certain product name, from
one particular provider.
type: array
items:
type: object
required:
- vnfSoftwareVersion
properties:
vnfSoftwareVersion:
description: >
VNF software version to match.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
vnfdVersions:
description: >
If present, match VNF packages that contain VNF
products with certain VNFD versions, a certain
software version and a certain product name, from
one particular provider.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
vnfdId:
description: >
Match VNF packages with a VNFD identifier listed in the attribute.
The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
are alternatives to reference to particular VNF packages in a
filter. They should not be used both in the same filter instance,
but one alternative should be chosen.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
vnfPkgId:
required:
- callbackUri
properties:
filter:
description: >
Match VNF packages with a package identifier listed in the
attribute.
May be present if the "notificationTypes" attribute contains the
value "VnfPackageChangeNotification", and shall be absent
otherwise.
The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId"
are alternatives to reference to particular VNF packages in a
filter. They should not be used both in the same filter instance,
but one alternative should be chosen.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
operationalState:
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to.
A particular notification is sent to the subscriber if the filter
matches, or if there is no filter.
$ref: "#/definitions/PkgmNotificationsFilter"
callbackUri:
description: >
Match particular operational state of the on-boarded VNF package.
May be present if the "notificationTypes" attribute contains the
value "VnfPackageChangeNotification", and shall be absent
otherwise.
$ref: "#/definitions/PackageOperationalStateType"
usageState:
The URI of the endpoint to send the notification to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
Match particular usage state of the on-boarded VNF package.
May be present if the "notificationTypes" attribute contains the
value "VnfPackageChangeNotification", and shall be absent
otherwise.
$ref: "#/definitions/PackageUsageStateType"
PkgmLinks:
description: >
This type represents the links to resources that a VNF package
management notification can contain.
type: object
required:
- vnfPackage
- subscription
properties:
vnfPackage:
description: >
Link to the resource representing the VNF package to which the
notified change applies, i.e. the individual on-boarded VNF package
resource that represents the VNF package.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
subscription:
description: >
Link to the related subscription.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
Authentication parameters to configure the use of Authorization when
sending notifications corresponding to this subscription, as defined
in clause 8.3.4 of ETSI GS NFV-SOL 013.
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SubscriptionAuthentication"
PkgmSubscription:
description: >
This type represents a subscription related to notifications about
VNF package management.
type: object
required:
required:
- id
- callbackUri
- _links
properties:
properties:
id:
description: >
Identifier of this subscription resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
Identifier of this "Individual subscription" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
filter:
description: >
Filter settings for this subscription, to define the subset of all
......@@ -337,74 +215,27 @@ definitions:
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
PkgmSubscriptionRequest:
description: >
This type represents a subscription request related to VNF package
management notifications about VNF package on-boarding or changes.
type: object
required:
- callbackUri
properties:
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to.
A particular notification is sent to the subscriber if the filter
matches, or if there is no filter.
$ref: "#/definitions/PkgmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
Authentication parameters to configure the use of Authorization
when sending notifications corresponding to this subscription.
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
VnfPackageArtifactInfo:
description: >
This type represents an artifact other than a software image which is
contained in a VNF package.
type: object
required:
- artifactPath
- checksum
properties:
artifactPath:
description: >
Path in the VNF package, which identifies the artifact and also
allows to access a copy of the artifact.
type: string
checksum:
description: >
Checksum of the artifact file.
$ref: "#/definitions/Checksum"
metadata:
description: >
The metadata of the artifact that are available in the VNF package,
such as Content type, size, creation date, etc.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
VnfPackageSoftwareImageInfo:
description: >
This type represents an artifact contained in a VNF package which
represents a software image.
This type represents an artifact contained in or external to a VNF package which represents a software image.
NOTE 1: The list of permitted values was taken from "Container formats" in OpenStack® documentation: "Disk and container formats for images"
(Available at https://docs.openstack.org/glance/pike/user/formats.html).
NOTE 2: The list of permitted values was adapted from "Disk formats" in OpenStack® documentation: "Disk and container formats for images"
(Available at https://docs.openstack.org/glance/pike/user/formats.html).
type: object
required:
- id
......@@ -412,34 +243,39 @@ definitions:
- provider
- version
- checksum
- isEncrypted
- containerFormat
- diskFormat
- createdAt
- minDisk
- minRam
- size
- imagePath
properties:
properties:
id:
description: >
Identifier of the software image.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
name:
description: >
Name of the software image.
type: string
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
provider:
description: >
Provider of the software image.
type: string
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
version:
description: >
Version of the software image.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
checksum:
description: >
Checksum of the software image file.
$ref: "#/definitions/Checksum"
Permitted hash algorithms are defined in ETSI GS NFV-SOL 004.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
isEncrypted:
description: >
Reflects whether the image is encrypted (true) or not (false).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
containerFormat:
description: >
Container format indicates whether the software image is in a file
......@@ -452,8 +288,7 @@ definitions:
- DOCKER: docker container format
- OVA: OVF package in a tarfile
- OVF: OVF container format
The list of permitted values was taken from "Container formats" in
http://docs.openstack.org/image-guide/image-formats.html
See note 1.
type: string
enum:
- AKI
......@@ -480,12 +315,11 @@ definitions:
- VHD: a common disk image format
- VHDX: enhanced version of VHD format
- VMDK: a common disk image format
The list of permitted values was adapted from "Disk formats" in
http://docs.openstack.org/image-guide/image-formats.html
See note 2.
type: string
enum:
enum:
- AKI
- AMI
- AMI
- ISO
- QCOW2
- RAW
......@@ -493,10 +327,10 @@ definitions:
- VHD
- VHDX
- VMDK
createdAt:
createdAt:
description: >
Time when this software image was created.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
minDisk:
description: >
The minimal disk for this software image in bytes.
......@@ -512,11 +346,281 @@ definitions:
userMetadata:
description: >
User-defined data.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
imagePath:
description: >
Path in the VNF package, which identifies the image artifact and also
Path which identifies the image artifact and also
allows to access a copy of the image artifact.
For a software image contained as a file in the VNF
package, this attribute shall be present, and the value of
this attribute shall start with the name of the first segment
in the path in the package, i.e., it shall not be prefixed by
path separator characters such as "." and "/".
EXAMPLE: foo/bar/m%40ster.vhd
For an external software image represented as a URI in
the VNF descriptor, this attribute shall be present if the
image artifact has been downloaded by the NFVO and
shall be absent otherwise. If present, it shall contain the
artifactPath under which the image artifact can be
obtained using the "Individual artifact in a VNF package"
resource defined in clause 9.4.7. It is the responsibility of
the NFVO to synthesize this path in a manner that avoids
any collision of the synthesized artifact path with the
paths and names of image artifacts included in the
package.
type: string
imageUri:
description: >
URI of the image artifact as defined in the VNF package
manifest. Shall be present if the image artifact is external
to the VNF package and shall be absent otherwise.
EXAMPLE: https://example.com/m%40ster.vhd
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
VnfPackageArtifactInfo:
description: >
This type represents an artifact other than a software image which is
contained in or external to a VNF package.
NOTE : The attribute name "artifactURI" does not comply with the naming convention defined in clause 4.3 in ETSI GS
NFV-SOL 015. This is to maintain the backward compatibility.
type: object
required:
- artifactPath
- checksum
- isEncrypted
properties:
artifactPath:
description: >
Path in the VNF package, which identifies the artifact and
also allows to access a copy of the artifact. The
For an artifact contained as a file in the VNF package,
this attribute shall be present, and the value of this
attribute shall start with the name of the first segment
in the path in the package, i.e. it shall not be prefixed
by path separator characters such as "." and "/".
EXAMPLE: foo/bar/runm@ster.sh
For an external artifact represented as a URI in the
VNF descriptor, this attribute shall be present if the
artifact has been downloaded by the NFVO and shall be
absent otherwise. If present, it shall contain the
artifactPath under which the artifact can be obtained
using the "Individual artifact in a VNF package" resource
defined in clause 10.4.6. It is the responsibility of the
NFVO to synthesize this path in a manner that avoids any
collision of the synthesized artifact path with the paths
and names of artifacts included in the package.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
artifactURI:
description: >
URI of the artifact as defined in the VNF package manifest.
Shall be present if the artifact is external to the package and shall be absent otherwise.
EXAMPLE: https://example.com/m%40ster.sh
See note.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
checksum:
description: >
Checksum of the artifact file.
Permitted hash algorithms are defined in ETSI GS NFV-SOL 004.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
isEncrypted:
description: >
Reflects whether the artifact is encrypted (true) or not (false).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
nonManoArtifactSetId:
description: >
Non-MANO artifact set identifier of the non-MANO artifact set to
which the artifact belongs, as defined in clause 4.3.7 of ETSI GS NFV-SOL 004.
Shall be provided if the artifact is a non-MANO artifact, and shall be omitted otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
artifactClassification:
description: >
Marks specific types of artifacts as defined in the VNF package.
If none of the specific classes listed below applies, the attribute shall not be present.
Valid values:
- HISTORY: a history artifact as per clause 4.3.3 in ETSI GS NFV-SOL 004
- TESTING: a testing artifact as per clause 4.3.4 in ETSI GS NFV-SOL 004
- LICENSE: a license artifact as per clause 4.3.5 in ETSI GS NFV-SOL 004
type: string
enum:
- HISTORY
- TESTING
- LICENSE
metadata:
description: >
The metadata of the artifact that are available in the VNF package,
such as Content type, size, creation date, etc.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
\ No newline at end of file
PkgmNotificationsFilter:
description: >
This type represents a subscription filter related to notifications related to VNF package management.
At a particular nesting level in the filter structure, the following applies: All attributes shall match
in order for the filter to match (logical "and" between different filter attributes). If an attribute is
an array, the attribute shall match if at least one of the values in the array matches (logical "or"
between the values of one filter attribute).
NOTE 1: The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the
notification types to facilitate automated code generation systems.
NOTE 2: The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" are alternatives to reference to
particular VNF packages in a filter. They should not be used both in the same filter instance, but
one alternative should be chosen.
type: object
anyOf:
- oneOf:
- required:
- vnfProductsFromProviders
- required:
- vnfdId
- required:
- vnfPkgId
properties:
notificationTypes:
description: >
Match particular notification types.
Permitted values:
- VnfPackageOnboardingNotification
- VnfPackageChangeNotification
See note 1.
type: array
items:
type: string
enum:
- VnfPackageOnboardingNotification
- VnfPackageChangeNotification
vnfProductsFromProviders:
description: >
If present, match VNF packages that contain VNF products from
certain providers.
See note 2.
type: array
items:
type: object
required:
- vnfProvider
properties:
vnfProvider:
description: >
Name of the VNF provider to match.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfProducts:
description: >
If present, match VNF packages that contain VNF products with
certain product names, from one particular provider.
type: array
items:
type: object
required:
- vnfProductName
properties:
vnfProductName:
description: >
Name of the VNF product to match.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
versions:
description: >
If present, match VNF packages that contain VNF products
with certain versions and a certain product name, from
one particular provider.
type: array
items:
type: object
required:
- vnfSoftwareVersion
properties:
vnfSoftwareVersion:
description: >
VNF software version to match.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
vnfdVersions:
description: >
If present, match VNF packages that contain VNF
products with certain VNFD versions, a certain
software version and a certain product name, from
one particular provider.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
vnfdId:
description: >
Match VNF packages with a VNFD identifier listed in the attribute.
See note 2.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfPkgId:
description: >
Match VNF packages with a package identifier listed in the
attribute.
May be present if the "notificationTypes" attribute contains the
value "VnfPackageChangeNotification" and shall be absent
otherwise.
See note 2.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
operationalState:
description: >
Match particular operational states of the VNF package.
May be present if the "notificationTypes" attribute contains the
value "VnfPackageChangeNotification" and shall be absent
otherwise.
$ref: "#/definitions/PackageOperationalStateType"
usageState:
description: >
Match particular usage states of the VNF package.
May be present if the "notificationTypes" attribute contains the
value "VnfPackageChangeNotification" and shall be absent
otherwise.
$ref: "#/definitions/PackageUsageStateType"
vnfmInfo:
description: >
Match strings that specify VNFMs compatible with the VNF. See table 10.5.2.2-1.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
PackageOperationalStateType:
description: >
- ENABLED: The VNF package is enabled, i.e. it can be used for
the creation of new "Individual VNF instance" resources.
- DISABLED: The VNF package is disabled, i.e. it shall not be used for
the creation of further "Individual VNF instance" resources
(unless and until the VNF package is re-enabled).
type: string
enum:
- ENABLED
- DISABLED
PackageUsageStateType:
description: >
- IN_USE: "Individual VNF instance" resources created from this VNF package exist.
- NOT_IN_USE: No "Individual VNF instance" resource created from this VNF package exists.
type: string
enum:
- IN_USE
- NOT_IN_USE
PackageOnboardingStateType:
description: >
CREATED: The "Individual VNF package" resource has been created.
UPLOADING: The associated VNF package content is being uploaded.
PROCESSING: The associated VNF package content is being processed, e.g.,
validation.
ONBOARDED: The associated VNF package content has been on-boarded successfully.
ERROR: There was an error during upload of the VNF package content or external
artifacts, or during VNF package processing.
type: string
enum:
- CREATED
- UPLOADING
- PROCESSING
- ONBOARDED
- ERROR
\ No newline at end of file
responses:
406:
description: >
If the "Accept" header does not contain at least one name of a content
type for which the NFVO can provide a representation of the VNFD, the
NFVO shall respond with this response code.
The "ProblemDetails" structure may be included with the "detail"
attribute providing more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
409:
description: >
Error: The operation cannot be executed currently, due to a conflict
with the state of the resource.
Typically, this is due to the fact that "onboardingState" of the VNF
package has a value different from "ONBOARDED".
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
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
416:
description: >
The byte range passed in the "Range" header did not match any available
byte range in the VNF package file (e.g. "access after end of file").
The response body may contain a ProblemDetails structure.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.4.1"
title: DRAFT - SOL003 - VNF Package Management Notification interface
description: >
DRAFT - SOL003 - VNF Package Management Notification interface
title: SOL003 - VNF Package Management Notification interface
description: |
SOL003 - VNF Package Management Notification 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&list_id=61&product=NFV&resolution=
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
contact:
name: NFV-SOL WG
license:
name: "ETSI Forge copyright notice"
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: "NFV-SOL WG"
basePath: "/callback/v1"
version: 2.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
schemes:
- https
externalDocs:
description: ETSI GS NFV-SOL 003 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.07.01_60/gs_NFV-SOL003v030701p.pdf
consumes:
- "application/json"
produces:
- "application/json"
servers:
- url: http://127.0.0.1/callback/v2
- url: https://127.0.0.1/callback/v2
paths:
###############################################################################
# Notification endpoint VnfPackageOnboardingNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageOnboardingNotification':
###############################################################################
# Notification endpoint VnfPackageOnboardingNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageOnboardingNotification:
#SOL003 location: 10.4.9
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method delivers a notification from the server to the client.
description: |
The POST method delivers a notification from the API producer to an API consumer.
The API consumer shall have previously created an "Individual subscription" resource with a matching filter.
See clause 10.4.9.3.1.
parameters:
- name: VnfPackageOnboardingNotification
description: A notification about on-boarding of a VNF package.
in: body
required: true
schema:
$ref: "definitions/VNFPackageManagementNotification_def.yaml#/definitions/VnfPackageOnboardingNotification"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/VnfPackageOnboardingNotification'
responses:
204:
description: >
The notification was delivered successfully.
$ref: '#/components/responses/VnfPackageOnboardingNotification.Post.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
get:
description: >
The GET method allows the server to test the notification endpoint
that is provided by the client, e.g. during subscription.
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during subscription. See clause 10.4.9.3.2.
responses:
204:
description: >
The notification endpoint was tested successfully.
The response body shall be empty.
$ref: '#/components/responses/VnfPackageOnboardingNotification.Get.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Notification endpoint VnfPackageChangeNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageChangeNotification':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
###############################################################################
# Notification endpoint VnfPackageChangeNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageChangeNotification:
#SOL003 location: 10.4.9
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method delivers a notification from the server to the client.
description: |
The POST method delivers a notification from the API producer to an API consumer.
The API consumer shall have previously created an "Individual subscription" resource with a matching filter.
See clause 10.4.9.3.1.
parameters:
- name: VnfPackageChangeNotification
description: >
A notification about changes of status in a VNF package.
in: body
required: true
schema:
$ref: "definitions/VNFPackageManagementNotification_def.yaml#/definitions/VnfPackageChangeNotification"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/VnfPackageChangeNotification'
responses:
204:
description: >
The notification was delivered successfully.
$ref: '#/components/responses/VnfPackageChangeNotification.Post.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
get:
description: >
The GET method allows the server to test the notification endpoint
that is provided by the client, e.g. during subscription.
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during subscription. See clause 10.4.9.3.2.
responses:
204:
description: >
The notification endpoint was tested successfully.
The response body shall be empty.
$ref: '#/components/responses/VnfPackageChangeNotification.Get.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
components:
requestBodies:
VnfPackageOnboardingNotification:
description: A notification about on-boarding of a VNF package.
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPackageManagementNotification_def.yaml#/definitions/VnfPackageOnboardingNotification"
required: true
VnfPackageChangeNotification:
description: |
A notification about changes of status in a VNF package.=
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPackageManagementNotification_def.yaml#/definitions/VnfPackageChangeNotification"
required: true
responses:
VnfPackageOnboardingNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered successfully.
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
VnfPackageOnboardingNotification.Get.204:
description: |
204 NO CONTENT
Shall be returned to indicate that the notification endpoint has been tested 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.
style: simple
explode: false
schema:
type: string
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
VnfPackageChangeNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered successfully.
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
VnfPackageChangeNotification.Get.204:
description: |
204 NO CONTENT
Shall be returned to indicate that the notification endpoint has been tested 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.
style: simple
explode: false
schema:
type: string
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
......@@ -2,173 +2,179 @@
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
PackageChangeType:
description: >
- OP_STATE_CHANGE: The "operationalState" attribute has been changed.
- PKG_DELETE: The VNF package has been deleted.
type: string
enum:
- OP_STATE_CHANGE
- DELETE_PEND_CHANGE
- PKG_DELETE
PackageOperationalStateType:
description: >
- ENABLED: The VNF package is enabled, i.e. it can be used for
instantiation of new VNF instances.
- DISABLED: The VNF package is disabled, i.e. it cannot be used for
further VNF instantiation requests (unless and until the VNF package
is re-enabled).
type: string
enum:
- ENABLED
- DISABLED
VnfPackageChangeNotification:
VnfPackageOnboardingNotification:
description: >
This type represents a VNF package management notification, which
informs the receiver of a change of the status in an on-boarded VNF
package. Only changes in the "operationalState" attribute of an
on-boarded VNF package and the deletion NF package will be reported.
Changes in the "usageState" and "onboardingState" attributes are not
reported.
The notification shall be triggered by the NFVO when there is a change
in the status of an onboarded VNF package, as follows:
* The "operationalState" attribute of a VNF package has changed, and the
"onboardingState" attribute of the package has the value "ONBOARDED"
(i.e. the package has been onboarded previously).
* The on-boarded VNF package has been deleted.
This type represents a VNF package management notification,
which informs the receiver that the onboarding process of a VNF package
is complete and the package is ready for use.
The notification shall be triggered by the NFVO when the
"onboardingState" attribute of a new VNF package has changed to
"ONBOARDED".
type: object
required:
required:
- id
- notificationType
- subscriptionId
- timeStamp
- vnfPkgId
- vnfdId
- changeType
- vnfmInfo
- _links
properties:
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types.
Shall be set to "VnfPackageChangeNotification" for this notification type.
Discriminator for the different notification types.
Shall be set to "VnfPackageOnboardingNotification" for this
notification type.
type: string
enum:
- VnfPackageChangeNotification
- VnfPackageOnboardingNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfPkgId:
description: >
Identifier of the on-boarded VNF package. This identifier is
allocated by the NFVO.
Identifier of the VNF package. This identifier is allocated by the NFVO.
Its value is the same as the value of the "id" attribute of the
related "Individual VNF package" resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfdId:
description: >
Identifier of the VNFD contained in the VNF package, which also
identifies the VNF package. This identifier is allocated by the VNF
provider and copied from the VNFD.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
changeType:
description: >
The type of change of the VNF package.
$ref: "#/definitions/PackageChangeType"
operationalState:
description: >
New operational state of the VNF package.
Only present when changeType is OP_STATE_CHANGE.
$ref: "#/definitions/PackageOperationalStateType"
This identifier, which is managed by the VNF provider, identifies
the VNF package and the VNFD in a globally unique way.
It's copied from the VNFD of the on-boarded VNF package.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfmInfo:
description: >
Specifies VNFMs compatible with the VNF.
This information is copied from the VNFD. See table 10.5.2.2-1.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
_links:
description: >
Links to resources related to this notification.
$ref: "#/definitions/PkgmLinks"
VnfPackageOnboardingNotification:
VnfPackageChangeNotification:
description: >
This type represents a VNF package management notification,
which informs the receiver that the onboarding process of a VNF package
is complete and the package is ready for use.
The notification shall be triggered by the NFVO when the
"onboardingState" attribute of a new VNF package has changed to
"ONBOARDED".
This type represents a VNF package management notification, which
informs the receiver of a change of the status in an on-boarded VNF
package. Only changes in the "operationalState" attribute of an
on-boarded VNF package and the deletion NF package will be reported.
Changes in the "usageState" and "onboardingState" attributes are not
reported.
The notification shall be triggered by the NFVO when there is a change
in the status of an onboarded VNF package, as follows:
* The "operationalState" attribute of a VNF package has changed, and the
"onboardingState" attribute of the package has the value "ONBOARDED"
(i.e. the package has been onboarded previously).
* The on-boarded VNF package has been deleted, and the "onboardingState"
attribute of the deleted package had the value "ONBOARDED".
type: object
required:
required:
- id
- notificationType
- subscriptionId
- timeStamp
- vnfPkgId
- vnfdId
- changeType
- _links
properties:
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types.
Shall be set to "VnfPackageOnboardingNotification" for this
notification type.
Shall be set to "VnfPackageChangeNotification" for this notification type.
type: string
enum:
- VnfPackageOnboardingNotification
- VnfPackageChangeNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfPkgId:
description: >
Identifier of the on-boarded VNF package. This identifier is
allocated by the NFVO.
Identifier of the VNF package. This identifier is allocated by the NFVO.
Its value is the same as the value of the "id" attribute of the
related "Individual VNF package" resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfdId:
description: >
This identifier, which is managed by the VNF provider, identifies
the VNF package and the VNFD in a globally unique way.
It's copied from the VNFD of the on-boarded VNF package.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
Identifier of the VNFD contained in the VNF package, which also
identifies the VNF package. This identifier is allocated by the VNF
provider and copied from the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
changeType:
description: >
The type of change of the VNF package.
$ref: "#/definitions/PackageChangeType"
operationalState:
description: >
New operational state of the VNF package.
Only present when changeType is OP_STATE_CHANGE.
$ref: "../../VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml#/definitions/PackageOperationalStateType"
_links:
description: >
Links to resources related to this notification.
$ref: "#/definitions/PkgmLinks"
PackageChangeType:
description: >
- OP_STATE_CHANGE: The "operationalState" attribute has been changed.
- PKG_DELETE: The VNF package has been deleted.
type: string
enum:
- OP_STATE_CHANGE
- PKG_DELETE
PkgmLinks:
description: >
This type represents the links to resources that a VNF package management
notification can contain.
This type represents the links to resources that a VNF package
management notification can contain.
type: object
required:
required:
- vnfPackage
- subscription
properties:
vnfPackage:
description: >
Link to the resource representing the VNF package to which the
notified change applies, i.e. the "Individual on-boarded VNF package"
resource that represents the VNF package, identified by the "vnfPkgId"
identifier which is managed by the NFVO. This attribute shall be provided
by the NFVO but is deprecated and can be removed in future versions
of the present document.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
vnfPackageByVnfdId:
description: >
Link to the resource representing the VNF package to which the notified
change applies, i.e. the individual on-boarded VNF package resource
that represents the VNF package.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
change applies, i.e. the "Individual VNF package resource" that represents
the VNF package, identified by the "vnfdId" identifier which is assigned
by the VNF vendor.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
subscription:
description: >
Link to the related subscription.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.4.1"
title: DRAFT - SOL003 - VNF Performance Management interface
description: >
DRAFT - SOL003 - VNF Performance Management interface
title: SOL003 - VNF Performance Management interface
description: |
SOL003 - VNF Performance 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&list_id=61&product=NFV&resolution=
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
contact:
name: NFV-SOL WG
license:
name: "ETSI Forge copyright notice"
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
basePath: "/vnfpm/v1"
externalDocs:
description: ETSI GS NFV-SOL 003 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.07.01_60/gs_NFV-SOL003v030701p.pdf
schemes:
- https
servers:
- url: http://127.0.0.1/vnfpm/v2
- url: https://127.0.0.1/vnfpm/v2
consumes:
- "application/json"
produces:
- "application/json"
paths:
###############################################################################
# PM jobs #
###############################################################################
'/pm_jobs':
###############################################################################
# API Versions #
###############################################################################
/api-versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
# PM jobs #
###############################################################################
/pm_jobs:
#SOL003 location: 6.4.2
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method creates a PM job.
description: |
The POST method creates a PM job. See clause 6.4.2.3.1.
parameters:
- name: CreatePmJobRequest
description: The VNF creation parameters
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/CreatePmJobRequest'
responses:
201:
description: >
The PM job was created successfully. The response body shall
contain a representation of the created PM job resource.
The HTTP response shall include a "Location" HTTP header that
points to the created PM job resource.
headers:
Location:
description: The resource URI of the created PM Job
type: string
format: url
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
$ref: '#/components/responses/PmJobs.Post.201'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: '#/components/responses/PmJobs.Post.422'
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
get:
description: >
The client can use this method to retrieve information about PM jobs.
description: |
The API consumer can use this method to retrieve information about PM jobs. See clause 6.4.2.3.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: 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
- $ref: '#/components/parameters/filter_pm_jobs'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/all_fields_vnfm
- $ref: ../../components/SOL003_params.yaml#/components/parameters/fields_vnfm
- $ref: ../../components/SOL003_params.yaml#/components/parameters/exclude_fields_vnfm
- $ref: '#/components/parameters/exclude_default_pm_jobs'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
responses:
200:
description: >
Information about zero or more PM jobs was queried successfully.
The response body shall contain representations of zero or more PM
jobs.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
type: array
items:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
$ref: '#/components/responses/PmJobs.Get.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual PM job #
###############################################################################
'/pm_jobs/{pmJobId}':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# Individual PM job #
###############################################################################
/pm_jobs/{pmJobId}:
#SOL003 location: 6.4.3
parameters:
- name: pmJobId
description: >
Identifier of the PM job.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new PM job resource. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
- $ref: '#/components/parameters/PmJobId'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
get:
description: >
The client can use this method for reading an individual PM job.
description: |
The API consumer can use this method for reading an individual PM job. See clause 6.4.3.3.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: true
type: string
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
responses:
200:
$ref: '#/components/responses/IndividualPmJob.Get.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
patch:
description: |
This method allows to modify an "Individual PM job" resource. See clause 6.4.3.3.4.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/If-Unmodified-Since
- $ref: ../../components/SOL003_params.yaml#/components/parameters/If-Match
responses:
200:
description: >
Information about an individual PM job was queried successfully.
The response body shall contain a representation of the PM job
resource.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
$ref: '#/components/responses/IndividualPmJob.Patch.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
412:
$ref: '#/components/responses/IndividualPmJob.Patch.412'
422:
$ref: '#/components/responses/IndividualPmJob.Patch.422'
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
delete:
description: >
This method terminates an individual PM job.
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
description: |
This method terminates an individual PM job. See clause 6.4.3.3.5.
responses:
204:
description: >
The PM job was deleted successfully.
The response body shall be empty.
$ref: '#/components/responses/IndividualPmJob.Delete.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual performance report #
###############################################################################
'/pm_jobs/{pmJobId}/reports/{reportId}':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# 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
- $ref: '#/components/parameters/PmJobId'
- $ref: '#/components/parameters/ReportId'
get:
description: >
The client can use this method for reading an individual performance
report.
description: |
The API consumer can use this method for reading an individual performance report. See clause 6.4.4.3.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: true
type: string
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
Information of an individual performance report was read
successfully.
The response body shall contain a representation of the
performance report resource.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "definitions/VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport"
$ref: '#/components/responses/IndividualPerformanceReport.Get.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Thresholds #
###############################################################################
'/thresholds':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# Thresholds #
###############################################################################
/thresholds:
#SOL003 location: 6.4.5
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method can be used by the client to create a threshold.
description: |
The POST method can be used by the API consumer to create a threshold. See clause 6.4.5.3.1.
parameters:
- name: CreateThresholdRequest
description: >
Request parameters to create a threshold resource.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/CreateThresholdRequest'
responses:
201:
description: >
A threshold was created successfully. The response body shall
contain a representation of the created threshold resource.
The HTTP response shall include a "Location" HTTP header that
contains the resource URI of the created threshold resource.
headers:
Location:
description: The resource URI of the created VNF instance
type: string
format: url
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
$ref: '#/components/responses/Thresholds.Post.201'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: '#/components/responses/Thresholds.Post.422'
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
get:
description: >
The client can use this method to query information about thresholds.
description: |
The API consumer can use this method to query information about thresholds. See clause 6.4.5.3.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: true
type: string
- $ref: '#/components/parameters/filter_thresholds'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
responses:
200:
description: >
Information about zero or more thresholds was queried
successfully.
The response body shall contain representations of zero
or more thresholds.
headers:
Location:
description: The resource URI of the created VNF instance
type: string
format: url
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
type: array
items:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
$ref: '#/components/responses/Thresholds.Get.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual threshold #
###############################################################################
'/thresholds/{thresholdId}':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# Individual threshold #
###############################################################################
/thresholds/{thresholdId}:
#SOL003 location: 6.4.6
parameters:
- name: thresholdId
description: >
Identifier of the threshold.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new threshold resource. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
parameters:
- $ref: '#/components/parameters/ThresholdId'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
get:
description: >
The client can use this method for reading an individual threshold.
description: |
The API consumer can use this method for reading an individual threshold. See clause 6.4.6.3.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: true
type: string
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
responses:
200:
description: >
Information about an individual threshold was queried
successfully. The response body shall contain a
representation of the threshold.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
$ref: '#/components/responses/IndividualThreshold.Get.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
delete:
description: >
This method allows to delete a threshold.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
patch:
description: |
This method allows to modify an "Individual threshold" resource. See clause 6.4.6.3.4.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/If-Unmodified-Since
- $ref: ../../components/SOL003_params.yaml#/components/parameters/If-Match
responses:
204:
description: >
The threshold was deleted successfully.
The response body shall be empty.
200:
$ref: '#/components/responses/IndividualThreshold.Patch.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
412:
$ref: '#/components/responses/IndividualThreshold.Patch.412'
422:
$ref: '#/components/responses/IndividualThreshold.Patch.422'
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Subscriptions #
###############################################################################
'/subscriptions':
#SOL003 location: 6.4.7
post:
description: >
The POST method creates a new subscription.
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 NFVO, and might make sense only in
very rare use cases. Consequently, the VNFM 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: PmSubscriptionRequest
description: >
Details of the subscription to be created.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
delete:
description: |
This method allows to delete a threshold. See clause 6.4.6.3.5.
responses:
201:
description: >
The subscription was created successfully. A representation of the
created subscription resource shall be returned in the response
body.
The HTTP response shall include a "Location" HTTP header that
contains the resource URI of the created subscription resource.
headers:
Location:
description: The resource URI of the created VNF instance
type: string
format: url
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
303:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
204:
$ref: '#/components/responses/IndividualThreshold.Delete.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
get:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
components:
parameters:
filter_pm_jobs:
name: filter
description: >
The client can use this method to query the list of active
subscriptions to Performance management notifications subscribed by
the client.
parameters:
- name: Accept
Attribute-based filtering expression according to clause 5.2 of ETSI
GS NFV-SOL 013 [8].
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
schema:
type: string
exclude_default_pm_jobs:
name: exclude_default
in: query
description: >-
Indicates to exclude the following complex attributes from the response. See clause 5.3
of ETSI GS NFV-SOL 013 [8] for details. The VNFM shall support this parameter.
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:
- reports
required: false
schema:
type: string
filter_thresholds:
name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of ETSI
GS NFV-SOL 013 [8].
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
in: query
required: false
schema:
type: string
PmJobId:
name: pmJobId
in: path
description: |
Identifier of the PM job.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new "Individual PM job" resource. It can also be retrieved from the "id"
attribute in the message content of that response.
required: true
style: simple
explode: false
schema:
type: string
ReportId:
name: reportId
in: path
description: |
Identifier of the performance report.
required: true
style: simple
explode: false
schema:
type: string
ThresholdId:
name: thresholdId
in: path
description: |
Identifier of the threshold.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new "Individual threshold" resource. It can also be retrieved from the "id"
attribute in the message content of that response.
required: true
style: simple
explode: false
schema:
type: string
requestBodies:
CreatePmJobRequest:
description: The VNF creation parameters
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/CreatePmJobRequest"
required: true
CreateThresholdRequest:
description: Request parameters to create a threshold resource.
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/CreateThresholdRequest"
required: true
responses:
PmJobs.Post.201:
description: |
201 CREATED
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
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
PmJobs.Post.422:
description: |
422 Unprocessable Content
Shall be returned upon the following error: The content type of the message content is supported and
the message content of a request contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013 [8],
including rules for the presence of the response body.
Specifically in case of this resource, the response code 422 shall also be returned if the VNFM has
tested the Notification endpoint as described in clause 6.4.9.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure structure shall convey more
information about the error.
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
PmJobs.Get.200:
description: |
200 OK
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.
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
Link:
description: |
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: array
items:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
IndividualPmJob.Get.200:
description: |
200 OK
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.
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
ETag:
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
Used to provide the current entity-tag for the selected resource representation. It can be sent in
"200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
Last-Modified:
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
responses:
200:
description: >
The list of subscriptions was queried successfully.
The response body shall contain the representations of all active
subscriptions of the functional block that invokes the method.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
Used to provide a timestamp indicating the date and time at which the server believes the selected resource
representation was last modified. It can be sent in "200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
format: date-time
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob"
IndividualPmJob.Patch.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 response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
ETag:
description: >
Used to provide the current entity-tag for the selected resource representation. It can be sent in
"200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
Last-Modified:
description: >
Used to provide a timestamp indicating the date and time at which the server believes the selected resource
representation was last modified. It can be sent in "200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
format: date-time
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJobModifications"
IndividualPmJob.Patch.412:
description: |
412 Precondition Failed
Shall be returned upon the following error: A
precondition given in an HTTP request header is not
fulfilled.
Typically, this is due to an ETag mismatch, indicating
that the resource was modified by another entity.
The response body should contain a ProblemDetails
structure, in which the "detail" attribute should convey
more information about the error.
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
IndividualPmJob.Patch.422:
description: |
422 Unprocessable Content
Shall be returned upon the following error: The content type of the message content is supported and
the message content of a request contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013 [8],
including rules for the presence of the response body.
Specifically in case of this resource, the response code 422 shall also be returned if the VNFM has
tested the Notification endpoint as described in clause 6.4.9.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure shall convey more information
about the error.
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
IndividualPmJob.Delete.200:
description: |
204 NO CONTENT
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
IndividualPerformanceReport.Get.200:
description: |
200 OK
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.
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport"
Thresholds.Post.201:
description: |
201 CREATED
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: TThe resource URI of the created VNF instance
style: simple
explode: false
schema:
type: string
format: url
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
Thresholds.Post.422:
description: |
422 Unprocessable Content
Shall be returned upon the following error: The content type of the message content is supported and
the message content of a request contains syntactically correct data but the data cannot be processed.
The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013 [8],
including rules for the presence of the response body.
Specifically in case of this resource, the response code 422 shall also be returned if the VNFM has
tested the Notification endpoint as described in clause 6.4.9.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure shall convey more information
about the error
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
Thresholds.Get.200:
description: |
200 OK
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:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
Link:
description: |
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: array
items:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-based-filtering-error"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Individual subscription #
###############################################################################
'/subscriptions/{subscriptionId}':
#SOL003 location: 6.4.8
parameters:
- name: subscriptionId
description: >
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new subscription resource. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
get:
description: >
The client can use this method for reading an individual subscription
about Performance management notifications subscribed by the client.
parameters:
- name: Accept
items:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
IndividualThreshold.Get.200:
description: |
200 OK
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.
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
ETag:
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
Used to provide the current entity-tag for the selected resource representation. It can be sent in
"200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
Last-Modified:
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
responses:
200:
description: >
The subscription was read successfully. The response body shall
contain a representation of the subscription resource.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription"
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
delete:
description: >
This method terminates an individual subscription.
parameters:
- name: Accept
Used to provide a timestamp indicating the date and time at which the server believes the selected resource
representation was last modified. It can be sent in "200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
format: date-time
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold"
IndividualThreshold.Patch.200:
description: |
200 OK
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 response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
ETag:
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
Used to provide the current entity-tag for the selected resource representation. It can be sent in
"200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
Last-Modified:
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
responses:
204:
description: >
The subscription resource was deleted successfully.
The response body shall be empty.
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
Used to provide a timestamp indicating the date and time at which the server believes the selected resource
representation was last modified. It can be sent in "200 OK", "201 Created" and "204 No Content" responses.
style: simple
schema:
type: string
format: date-time
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdModifications"
IndividualThreshold.Patch.412:
description: |
412 Precondition Failed
Shall be returned upon the following error: A
precondition given in an HTTP request header is
not fulfilled.
Typically, this is due to an ETag mismatch,
indicating that the resource was modified by
another entity.
The response body should contain a
ProblemDetails structure, in which the "detail"
attribute should convey more information about the
error
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
IndividualThreshold.Patch.422:
description: |
422 Unprocessable Content
Shall be returned upon the following error: The content type of the message content is supported and
the message content of a request contains syntactically correct data but the data cannot be processed.
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 resource, the response code 422 shall also be returned if the VNFM has tested the
Notification endpoint as described in clause 6.4.9.3.2 and the test has failed.
In this case, the "detail" attribute in the "ProblemDetails" structure shall convey more
information about the error
headers:
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
IndividualThreshold.Delete.200:
description: |
204 NO CONTENT
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
CreateThresholdRequest:
description: >
This type represents a request to create a threshold.
type: object
required:
- objectType
- objectInstanceId
- criteria
- callbackUri
properties:
objectType:
description: >
Type of the measured object.
The applicable measured object type for a measurement
is defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
objectInstanceId:
description: >
Identifier of the VNF instance associated with this threshold.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
subObjectInstanceIds:
description: >
Identifiers of the sub-object instances of the measured
object instance associated with this threshold.
May be present if a sub-object is defined in clause 6.2
of ETSI GS NFV-IFA 027 for the related measured object type.
If this attribute is absent and a sub-object is defined in
clause 6.2 of ETSI GS NFV-IFA 027 for the measured object type,
measurements will be taken for all sub-object instances of
the measured object instance.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
criteria:
description: >
Criteria that define this threshold.
$ref: "#/definitions/ThresholdCriteria"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
Authentication parameters to configure the use of Authorization
when sending notifications corresponding to this threshold,
as defined in clause 8.3.4 of ETSI GS NFV-SOL 013.
This attribute shall only be present if the API consumer requires
authorization of notifications.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SubscriptionAuthentication"
CreatePmJobRequest:
description: >
This type represents a request to create a PM job.
type: object
required:
- objectType
- objectInstanceIds
- criteria
- callbackUri
properties:
objectType:
description: >
Type of the measured object.
The applicable measured object type for a measurement
is defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
objectInstanceIds:
description: >
Identifiers of the measured object instances for
which performance information is requested to be collected.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
subObjectInstanceIds:
description: >
Identifiers of the sub-object instances of the measured
object instance for which performance information is requested to be collected.
May be present if a sub-object is defined in clause 6.2
of ETSI GS NFV-IFA 027for the related measured object type.
If this attribute is present, the cardinality of the "objectInstanceIds"
attribute shall be 1.
If this attribute is absent and a sub-object is defined in clause 6.2
of ETSI GS NFV IFA 027 for the related measured object type, measurements
will be taken for all sub-object instances of the measured object instance.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
criteria:
description: >
Criteria of the collection of performance information.
$ref: "#/definitions/PmJobCriteria"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
Authentication parameters to configure the use of Authorization
when sending notifications corresponding to this PM job, as defined
in clause 8.3.4 of ETSI GS NFV-SOL 013.
This attribute shall only be present if the API consumer
requires authorization of notifications.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SubscriptionAuthentication"
PerformanceReport:
description: >
This type defines the format of a performance report provided by the VNFM to the NFVO as a result of collecting
performance information as part of a PM job.
NOTE: The sub-object allows to structure the measured object but is not to be confused with sub-counters which allow
to structure the measurement value.
EXAMPLE:
Measured object: VnfInstanceXYZ
Sub-object: VnfcInstance1
Measurement: vCPU_utilization
Sub-counters: vCPU utilization of each of the vCPUs of VnfcInstance1 (vCPU utilization.vCPU1, vCPU_utilization.vCPU2, etc.).
type: object
required:
- entries
properties:
entries:
description: >
List of performance information entries. Each performance report
entry is for a given metric of a given object (i.e. VNF instance),
but can include multiple collected values.
type: array
items:
type: object
required:
- objectType
- objectInstanceId
- performanceMetric
- performanceValue
properties:
objectType:
description: >
Type of the measured object.
The applicable measured object type for a measurement is defined
in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
objectInstanceId:
description: >
Identifier of the measured object instance for which the performance metric is reported
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
subObjectInstanceId:
description: >
Identifier of the sub-object instance of the measured object instance for which the performance
metric is reported. Shall be present if this is required in clause 6.2 of ETSI GS NFV-IFA 027
for the related measured object type. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
performanceMetric:
description: >
Name of the metric collected. This attribute shall contain the related "Measurement Name"
value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
performanceValues:
description: >
List of performance values with associated timestamp.
type: array
items:
type: object
required:
- timeStamp
- value
properties:
timeStamp:
description: >
Time stamp indicating when the data has been collected.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
value:
description: >
Value of the metric collected.
The type of this attribute shall correspond to the related "Measurement Unit"
as defined in clause 7.2. of ETSI GS NFV-IFA 027.
type: object
context:
description: >
Measurement context information related to the measured value.
The set of applicable keys is defined per measurement in the
related "Measurement Context" in clause 7.2 of ETSI GS NFV-IFA 027.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
PmJob:
description: >
This type represents a PM job.
type: object
required:
- id
- objectType
- objectInstanceIds
- criteria
- callbackUri
- _links
properties:
id:
description: >
Identifier of this PM job.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
objectType:
description: >
Type of the measured object.
The applicable measured object type for a measurement
is defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
objectInstanceIds:
description: >
Identifiers of the VNF instances for which performance information
is collected.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
subObjectInstanceIds:
description: >
Identifiers of the sub-object instances of the measured object
instance for which performance information is requested to be collected.
May be present if a sub-object is defined in clause 6.2 of
ETSI GS NFV-IFA 027 for the related measured object type.
If this attribute is present, the cardinality of the "objectInstanceIds"
attribute shall be 1.
If this attribute is absent and a sub-object is defined in clause 6.2 of
ETSI GS NFV IFA 027 for the related measured object type, measurements will
be taken for all sub-object instances of the measured object instance.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
criteria:
description: >
Criteria of the collection of performance information.
$ref: "#/definitions/PmJobCriteria"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
reports:
description: >
Information about available reports collected by this PM job.
type: object
required:
- href
- readyTime
properties:
href:
description: >
The URI where the report can be obtained.
type: string
format: url
readyTime:
description: >
The time when the report was made available.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
expiryTime:
description: >
The time when the report will expire.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
fileSize:
description: >
The size of the report file in bytes, if known.
type: integer
minimum: 0
maximum: 1024
# TODO: How to express unsigned int?
# Done using min and max params to set a range for positive int.
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
objects:
description: >
Links to resources representing the measure
object instances for which performance
information is collected. Shall be present if the
measured object instance information is
accessible as a resource.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
PmJobModifications:
description: >
This type represents modifications to a PM job.
NOTE: At least one of the attributes defined in this type shall be present in request bodies.
type: object
oneOf:
- required:
- callbackUri
- required:
- authentication
properties:
callbackUri:
description: >
New value of the "callbackUri" attribute. The value "null" is not permitted. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
New value of the "authentication" attribute, or "null" to remove the attribute. If present
in a request body, these modifications shall be applied according to the rules of JSON Merge
Patch (see IETF RFC 7396).
This attribute shall not be present in response bodies. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SubscriptionAuthentication"
PmJobCriteria:
description: >
This type represents collection criteria for PM jobs.
NOTE 1: At the end of each reportingPeriod, the API producer will inform the API consumer about availability of the
performance data collected for each completed collection period during this reportingPeriod.
The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance
data for the collection periods within one reporting period are reported together.
NOTE 2: In particular when choosing short collection and reporting periods, the number of PM jobs that can be supported
depends on the capability of the producing entity.
type: object
required:
- collectionPeriod
- reportingPeriod
properties:
performanceMetric:
description: >
This defines the types of performance metrics for the specified object instances.
Valid values are specified as "Measurement Name" values in clause 7.2 of ETSI GS NFV-IFA 027.
At least one of the two attributes (performance metric or group) shall be present.
type: array
items:
type: string
performanceMetricGroup:
description: >
Group of performance metrics. A metric group is a pre-defined list
of metrics, known to the API producer that it can decompose to
individual metrics. Valid values are specified as "Measurement Group"
values in clause 7.2 of ETSI GS NFV-IFA 027.
At least one of the two attributes (performance metric or group)
shall be present.
type: array
items:
type: string
collectionPeriod:
description: >
SSpecifies the periodicity at which the API producer will collect performance information.
The unit shall be seconds. See notes 1 and 2.
type: integer
minimum: 0
maximum: 1024
# TODO: How to express unsigned int?
# Done using min and max params to set a range for positive int.
reportingPeriod:
description: >
Specifies the periodicity at which the API producer will report to the API consumer
about performance information. The unit shall be seconds. See notes 1 and 2.
type: integer
minimum: 0
maximum: 1024
# TODO: How to express unsigned int?
# Done using min and max params to set a range for positive int.
reportingBoundary:
description: >
Identifies a time boundary after which the reporting will stop.
The boundary shall allow a single reporting as well as periodic
reporting up to the boundary.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
Threshold:
description: >
This type represents a threshold.
type: object
required:
- id
- objectType
- objectInstanceId
- criteria
- callbackUri
- _links
properties:
id:
description: >
Identifier of this threshold resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
objectType:
description: >
Type of the measured object.
The applicable measured object type for a measurement
is defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
objectInstanceId:
description: >
Identifier of the VNF instance associated with the threshold.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
subObjectInstanceIds:
description: >
Identifiers of the sub-object instances of the measured object
instance associated with the threshold.
May be present if a sub-object is defined in clause 6.2 of
ETSI GS NFV-IFA 027 for the related measurement type.
If this attribute is absent and a sub-object is defined in clause 6.2
of ETSI GS NFV-IFA 027 for the related measured object type,
measurements will be taken for all sub-object instances of the
measured object instance.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
criteria:
description: >
Criteria that define this threshold.
$ref: "#/definitions/ThresholdCriteria"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
object:
description: >
Link to a resource representing the measured object instance for which
performance information is collected. Shall be present if the
measured object instance information is accessible as a resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
ThresholdModifications:
description: >
This type represents modifications to a threshold.
NOTE: At least one of the attributes defined in this type shall be present in request bodies.
type: object
oneOf:
- required:
- callbackUri
- required:
- authentication
properties:
callbackUri:
description: >
New value of the "callbackUri" attribute. The value "null" is not permitted. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
New value of the "authentication" attribute, or "null" to remove the attribute. If present
in a request body, these modifications shall be applied according to the rules of JSON Merge
Patch (see IETF RFC 7396).
This attribute shall not be present in response bodies. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SubscriptionAuthentication"
ThresholdCriteria:
description: >
This type represents criteria that define a threshold.
NOTE 1: In the present document, simple thresholds are defined. The definition of additional threshold types is left for
future specification.
NOTE 2: The hysteresis is defined to prevent storms of threshold crossing notifications. When processing a request to create
a threshold, implementations should enforce a suitable minimum value for this attribute (e.g. override the value or
reject the request).
type: object
required:
- performanceMetric
- thresholdType
properties:
performanceMetric:
description: >
Defines the performance metric associated with the threshold.
Valid values are specified as "Measurement Name" values in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
thresholdType:
description: >
Type of threshold. This attribute determines which other attributes are present in the data structure.
Permitted values:
- SIMPLE: Single-valued static threshold.
See note 1.
type: string
enum:
- SIMPLE
simpleThresholdDetails:
description: >
Details of a simple threshold. Shall be present if
thresholdType="SIMPLE".
type: object
required:
- thresholdValue
- hysteresis
properties:
thresholdValue:
description: >
The threshold value. Shall be represented as a floating point
number.
# TODO: This should be floating.
# Done using Number type and floating formate
type: number
format: float
hysteresis:
description: >
The hysteresis of the threshold.
Shall be represented as a non-negative floating point number.
A notification with crossing direction "UP" will be generated if the measured value reaches or exceeds
"thresholdValue" + "hysteresis". A notification with crossing direction "DOWN" will be generated if the
measured value reaches or undercuts "thresholdValue" - "hysteresis". See note 2.
# TODO: This should be floating.
# Done using Number type and floating format.
type: number
minimum: 0
maximum: 1024
format: float
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
PerformanceReport:
description: >
This type defines the format of a performance report provided by the
VNFM to the NFVO as a result of collecting performance information as
part of a PM job.
type: object
properties:
entries:
description: >
List of performance information entries. Each performance report
entry is for a given metric of a given object (i.e. VNF instance),
but can include multiple collected values.
type: array
items:
type: object
required:
- objectType
- objectInstanceId
- performanceMetric
- performanceValue
properties:
objectType:
description: >
Defines the object type for which performance information is
reported (i.e. VNF type). The string value shall be set to the
vnfdId of the VNF instance to which the performance
information relates.
type: string
objectInstanceId:
description: >
The object instance (i.e. VNF instance) for which the
performance metric is reported.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
performanceMetric:
description: >
Name of the metric collected.
type: string
performanceValues:
description: >
List of performance values with associated timestamp.
type: array
items:
type: object
required:
- timeStamp
- performanceValue
properties:
timeStamp:
description: >
Time stamp indicating when the data was collected.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
value:
description: >
Value of the metric collected.
The type of the "value" attribute (i.e. scalar,
structure (Object in JSON), or array (of scalars, arrays
or structures / Objects)) is assumed to be defined in
the external measurement specification
(see ETSI GS NFV-IFA 027).
type: object
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.4.1"
title: DRAFT - SOL003 - VNF Performance Management Notification interface
description: >
DRAFT - SOL003 - VNF Performance Management Notification interface
title: SOL003 - VNF Performance Management Notification interface
description: |
SOL003 - VNF Performance Management Notification 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&list_id=61&product=NFV&resolution=
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
contact:
name: NFV-SOL WG
license:
name: "ETSI Forge copyright notice"
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: "NFV-SOL WG"
basePath: "/callback/v1"
version: 2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
schemes:
- https
externalDocs:
description: ETSI GS NFV-SOL 003 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.07.01_60/gs_NFV-SOL003v030701p.pdf
consumes:
- "application/json"
produces:
- "application/json"
servers:
- url: http://127.0.0.1/callback/v2
- url: https://127.0.0.1/callback/v2
paths:
###############################################################################
# Notification endpoint PerformanceInformationAvailableNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationAvailableNotification':
###############################################################################
# Notification endpoint PerformanceInformationAvailableNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationAvailableNotification:
#SOL003 location: 6.4.9
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method delivers a notification regarding a performance
management event from the server to the client.
description: |
The POST method delivers a notification regarding a performance management event from API producer to an
API consumer. The API consumer shall have previously created an "Individual PM job" resource
or "Individual threshold" resource. See clause 6.4.9.3.1.
parameters:
- name: PerformanceInformationAvailableNotification
description: >
Notification about performance information availability.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceInformationAvailableNotification"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/PerformanceInformationAvailableNotification'
responses:
204:
description: >
The notification was delivered successfully.
$ref: '#/components/responses/PerformanceInformationAvailableNotification.Post.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
get:
description: >
The GET method allows the server to test the notification endpoint
that is provided by the client, e.g. during subscription.
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during creation of the PM job or threshold resource. See clause 6.4.9.3.2.
responses:
204:
description: >
The notification endpoint was tested successfully.
$ref: '#/components/responses/PerformanceInformationAvailableNotification.Get.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# Notification endpoint ThresholdCrossedNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-ThresholdCrossedNotification':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
###############################################################################
# Notification endpoint ThresholdCrossedNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-ThresholdCrossedNotification:
#SOL003 location: 6.4.9
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method delivers a notification regarding a performance
management event from the server to the client.
description: |
The POST method delivers a notification regarding a performance management event from API producer to an
API consumer. The API consumer shall have previously created an "Individual PM job" resource
or "Individual threshold" resource. See clause 6.4.9.3.1.
parameters:
- name: ThresholdCrossedNotification
description: >
Notification about performance information availability.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdCrossedNotification"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/ThresholdCrossedNotification'
responses:
204:
description: >
The notification was delivered successfully.
$ref: '#/components/responses/ThresholdCrossedNotification.Post.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
get:
description: >
The GET method allows the server to test the notification endpoint
that is provided by the client, e.g. during subscription.
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API consumer,
e.g. during creation of the PM job or threshold resource. See clause 6.4.9.3.2.
responses:
204:
description: >
The notification endpoint was tested successfully.
$ref: '#/components/responses/ThresholdCrossedNotification.Get.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
components:
requestBodies:
PerformanceInformationAvailableNotification:
description: |
Notification about performance information availability.
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagementNotification_def.yaml#/definitions/PerformanceInformationAvailableNotification"
required: true
ThresholdCrossedNotification:
description: |
Notification about performance information availability.
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPerformanceManagementNotification_def.yaml#/definitions/ThresholdCrossedNotification"
required: true
responses:
PerformanceInformationAvailableNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered successfully.
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
PerformanceInformationAvailableNotification.Get.204:
description: |
204 NO CONTENT
Shall be returned to indicate that the notification endpoint has been tested 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.
style: simple
explode: false
schema:
type: string
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
ThresholdCrossedNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered successfully.
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
ThresholdCrossedNotification.Get.204:
description: |
204 NO CONTENT
Shall be returned to indicate that the notification endpoint has been tested 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.
style: simple
explode: false
schema:
type: string
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
CrossingDirectionType:
type: string
enum:
- UP
- DOWN
PerformanceInformationAvailableNotification:
description: >
This notification informs the receiver that performance information is
available.
The notification shall be triggered by the VNFM when new performance
information collected by a PM job is available.
The periodicity of triggering this notification is influenced by the
"reportingPeriod" attribute in the "PmJobCriteria" data structure.
type: object
required:
- id
- notificationType
- timeStamp
- pmJobId
- objectType
- objectInstanceId
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"PerformanceInformationAvailableNotification" for this notification
type.
type: string
enum:
- PerformanceInformationAvailableNotification
timeStamp:
description: >
Date and time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
pmJobId:
description: >
Identifier of the PM job for which performance information is available.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
objectType:
description: >
Type of the measured object.
The applicable measured object type for a measurement
is defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
objectInstanceId:
description: >
Identifier of the measured object instance. as per clause 6.2 of ETSI GS NFV-IFA 027.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
subObjectInstanceIds:
description: >
Identifiers of the sub-object instances of the measured
object instance for which the measurements have been taken.
Shall be present if the related PM job has been set up to
measure only a subset of all sub-object instances of the
measured object instance and a sub-object is defined in clause
6.2 of ETSI GS NFV-IFA 027 for the related measured object type.
Shall be absent otherwise.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- pmJob
- performanceReport
properties:
objectInstance:
description: >
Link to the resource representing the measured object instance to which the
notification applies. Shall be present if the measured object instance
information is accessible as a resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
pmJob:
description: >
Link to the resource that represents the PM job for which
performance information is available.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
performanceReport:
description: >
Link from which the available performance information of data
type "PerformanceReport" can be obtained. This link should point
to an "Individual performance report" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
ThresholdCrossedNotification:
description: >
This type represents a notification that is sent when a threshold has been crossed.
NOTE: The timing of sending this notification is determined by the capability of the
producing entity to evaluate the threshold crossing condition.
The notification shall be triggered by the VNFM when a threshold has been crossed.
NOTE: The sub-object allows to structure the measured object, but is not to be confused
with sub-counters which allow to structure the measurement.
type: object
required:
- id
- notificationType
- timeStamp
- thresholdId
- crossingDirection
- objectType
- objectInstanceId
- performanceMetric
- performanceValue
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"ThresholdCrossedNotification" for this notification type.
type: string
enum:
- ThresholdCrossedNotification
timeStamp:
description: >
Date and time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
thresholdId:
description: >
Identifier of the threshold which has been crossed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
crossingDirection:
description: >
An indication of whether the threshold was crossed in upward or
downward direction.
$ref: "#/definitions/CrossingDirectionType"
objectType:
description: >
Type of the measured object.
The applicable measured object type for a measurement is defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
objectInstanceId:
description: >
Identifier that identifies a VNF instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
subObjectInstanceId:
description: >
Identifier of the sub-object of the measured object to which the measurement applies.
Shall be present if this is required in clause 6.2 of ETSI GS NFV-IFA 027 for the related
measured object type.
See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
performanceMetric:
description: >
Performance metric associated with the threshold.
This attribute shall contain the related "Measurement Name"
value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
performanceValue:
description: >
Value of the metric that resulted in threshold crossing.
The type of this attribute shall correspond to the related
"Measurement Unit" as defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: object
context:
description: >
Measurement context information related to the measured value.
The set of applicable keys is defined per measurement in the
related "Measurement Context" in clause 7.2 of ETSI GS NFV-IFA 027.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- threshold
properties:
objectInstance:
description: >
Link to the resource representing the measured object instance to which the
notified change applies. Shall be present if the measured object instance
information is accessible as a resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
threshold:
description: >
Link to the resource that represents the threshold that was
crossed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
openapi: 3.0.2
info:
title: SOL003 - VNF Snapshot Package Management interface
description: |
SOL003 - VNF Snapshot Package Management interface
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.
Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
contact:
name: NFV-SOL WG
license:
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
externalDocs:
description: ETSI GS NFV-SOL 003 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.07.01_60/gs_NFV-SOL003v030701p.pdf
servers:
- url: http://127.0.0.1/vnfsnapshotpkgm/v1
- url: https://127.0.0.1/vnfsnapshotpkgm/v1
paths:
###############################################################################
# API Versions #
###############################################################################
/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/vnf_snapshot_packages:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
get:
description: |
The GET method queries the information of the VNF packages matching the filter. See clause 12.4.2.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: '#/components/parameters/filter_vnf_packages'
- $ref: '#/components/parameters/exclude_default_vnf_packages'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/all_fields_nfvo
- $ref: ../../components/SOL003_params.yaml#/components/parameters/fields_nfvo
- $ref: ../../components/SOL003_params.yaml#/components/parameters/exclude_fields_nfvo
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_nfvo
responses:
200:
$ref: '#/components/responses/VNFSnapshotPackages.Get.200'
400:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
401:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
403:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
404:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404
405:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
406:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
416:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416
422:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
429:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
500:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
503:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
/vnf_snapshot_packages/{vnfSnapshotPkgId}:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/VnfSnapshotPkgId'
get:
description: |
The GET method reads the information of an individual VNF snapshot package. See clause 12.4.3.3.2
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
responses:
200:
$ref: '#/components/responses/IndividualVNFSnapshotPackages.Get.200'
400:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
401:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
403:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
404:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404
405:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
406:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
416:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416
422:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
429:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
500:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
503:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
/vnf_snapshot_packages/{vnfSnapshotPkgId}/package_content:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/VnfSnapshotPkgId'
get:
description: |
The GET method fetches the content of a VNF snapshot package. See clause 12.4.4.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
responses:
200:
$ref: '#/components/responses/PackageContent.Get.200'
206:
$ref: '#/components/responses/PackageContent.Get.206'
400:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
401:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
403:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
404:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404
405:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
406:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
409:
$ref: '#/components/responses/PackageContent.Get.409'
416:
$ref: '#/components/responses/PackageContent.Get.416'
422:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
429:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
500:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
503:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
/vnf_snapshot_packages/{vnfSnapshotPkgId}/artifacts/{artifactPath}:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/VnfSnapshotPkgId'
- $ref: '#/components/parameters/ArtifactPath'
get:
description: |
The GET method fetches the content of an artifact within the VNF snapshot package. See clause 12.4.5.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
responses:
200:
$ref: '#/components/responses/IndividualArtifact.Get.200'
206:
$ref: '#/components/responses/IndividualArtifact.Get.206'
400:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400
401:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401
403:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403
404:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404
405:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405
406:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406
409:
$ref: '#/components/responses/IndividualArtifact.Get.409'
416:
$ref: '#/components/responses/IndividualArtifact.Get.416'
422:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422
429:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429
500:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500
503:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
components:
parameters:
filter_vnf_packages:
name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of ETSI
GS NFV-SOL 013 [8].
The NFVO shall support receiving this parameter as part of the URI query string. The
VNFM may supply this parameter.
All attribute names that appear in the VnfSnapshotPkgInfo and in data types
referenced from it shall be supported by the NFVO in the filter expression.
in: query
required: false
schema:
type: string
exclude_default_vnf_packages:
name: exclude_default
in: query
description: >-
Indicates to exclude the following complex attributes from the response. See
clause 5.3 of ETSI GS NFV-SOL 013 [8] for details.
The NFVO shall support this parameter.
The following attributes shall be excluded from the VnfSnapshotPkgInfo structure in
the response body if this parameter is provided, or none of the parameters "all_fields,"
"fields", "exclude_fields", "exclude_default" are provided:
- vnfcSnapshotImages
- additionalArtifacts
- userDefinedData
- checksum
required: false
schema:
type: string
VnfSnapshotPkgId:
name: vnfSnapshotPkgId
in: path
description: |
Identifier of the VNF snapshot package. The identifier is allocated by the NFVO.
This identifier can be retrieved from the "id" attribute of the applicable "VnfSnapshotPkgInfo" in the body of
the response to requesting the creation of a new "Individual VNF snapshot package" resource or in a response to
a GET request querying the "Individual VNF snapshot package" or the "VNF snapshot packages" resource.
required: true
style: simple
explode: false
schema:
type: string
ArtifactPath:
name: artifactPath
in: path
description: |
For an artifact contained as a file in the VNF snapshot package, this variable shall contain a sequence
of one or path segments representing the path of the artifact within the VNF snapshot package, relative
to the root of the package.
EXAMPLE: foo/bar/m%40ster.sh
For an external artifact represented as a URI in the VNF snapshot package manifest, this variable shall
contain a sequence of one or more path segments as synthesized by the NFVO (see clause 12.5.3.3) representing
this artifact.
This identifier can be retrieved from the "artifactPath" attribute of the applicable "additionalArtifacts"
entry in the body of the response to a GET request querying the "Individual VNF snapshot package" or the
"VNF snapshot packages" resource.
Since multiple path segments are allowed to be contained in this variable, the "/" character that separates
these segments is not percent-encoded. Each individual segment is percent-encoded if necessary as defined
in clause 4.1 of ETSI GS NFV-SOL 013.
required: true
style: simple
explode: false
schema:
type: string
responses:
VNFSnapshotPackages.Get.200:
description: |
200 OK
Shall be returned when information about zero or more VNF snapshot packages has been queried successfully.
The response body shall contain in an array the VNF snapshot package info representations that match the
attribute filter, i.e. zero or more VNF snapshot package info representations as defined in clause 12.5.2.2.
If the "filter" URI parameter or one of the "all_fields", "fields", "exclude_fields" or "exclude_default"
URI parameters was supplied in the request and is supported, 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 NFVO 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:
Version:
description: The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Link:
description: |
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: array
items:
$ref: definitions/SOL003VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfo
IndividualVNFSnapshotPackages.Get.200:
description: |
200 OK
Shall be returned when information of the VNF snapshot package has been read successfully.
The response body shall contain the VNF snapshot package info representation defined in clause 12.5.2.2.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: definitions/SOL003VNFSnapshotPackageManagement_def.yaml#/definitions/VnfSnapshotPkgInfo
PackageContent.Get.200:
description: |
200 OK
Shall be returned when the whole content of the VNF snapshot package file has been read successfully.
The response body shall include a copy of the VNF snapshot package file.
The "Content-Type" HTTP header shall be set according to the type of the file, i.e. to "application/zip"
for a VNF snapshot package. The VNF snapshot package format is defined in ETSI GS NFV-SOL 010.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/*:
schema:
type: string
format: binary
PackageContent.Get.206:
description: |
206 PARTIAL CONTENT
If the NFVO supports range requests, this response shall be returned when a single consecutive byte range
from the content of the VNF snapshot package file has been read successfully according to the request.
The response body shall contain the requested part of the VNF snapshot package file. The "Content-Range"
HTTP header shall be provided according to IETF RFC 9110. The "Content-Type" HTTP header shall be set as
defined above for the "200 OK" response.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
Content-Range:
description: >
The Content-Range response HTTP header indicates where in a full body message a partial message belongs.
schema:
type: string
maximum: 1
minimum: 1
content:
application/*:
schema:
type: string
format: binary
PackageContent.Get.409:
description: |
409 CONFLICT
Shall be returned upon the following error: The
operation cannot be executed currently, due to a
conflict with the state of the resource.
Typically, this is due to the fact the "state" of the
VNF snapshot package has a value different from
"AVAILABLE".
The response body shall contain a ProblemDetails
structure, in which the "detail" attribute shall convey
more information about the error.
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
PackageContent.Get.416:
description: |
416 Range Not Satisfiable
Shall be returned upon the following error: The byte
range passed in the "Range" header did not match
any available byte range in the VNF snapshot
package file (e.g. "access after end of file").
The response body may contain a ProblemDetails
structure
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
IndividualArtifact.Get.200:
description: |
200 OK
Shall be returned when the whole content of the artifact file has been read successfully.
The response body shall include a copy of the artifact file from the VNF snapshot package.
The VNF snapshot package format is defined in ETSI GS NFV-SOL 010.
The "Content-Type" HTTP header shall be set according to the content type of the artifact file.
If the content type cannot be determined, the header shall be set to the value "application/octet-stream".
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/*:
schema:
type: string
format: binary
IndividualArtifact.Get.206:
description: |
206 PARTIAL CONTENT
If the NFVO supports range requests, this response shall be returned when a single consecutive byte range
from the content of the artifact file has been read successfully according to the request.
The response body shall contain the requested part of the artifact file from the VNF snapshot package.
The VNF snapshot package is defined in ETSI GS NFV-SOL 010.
The "Content-Type" HTTP header shall be set according to the content type of the artifact file. If the
content type cannot be determined, the header shall be set to the value "application/octet-stream".
The "Content-Range" HTTP header shall be provided according to IETF RFC 9110.
headers:
Version:
description: The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
Content-Range:
description: >
The Content-Range response HTTP header indicates where in a full body message a partial message belongs.
schema:
type: string
maximum: 1
minimum: 1
content:
application/*:
schema:
type: string
format: binary
IndividualArtifact.Get.409:
description: |
409 CONFLICT
Shall be returned upon the following error: The
operation cannot be executed currently, due to a
conflict with the state of the resource.
Typically, this is due to the fact the "state" of the
VNF snapshot package has a value different from
"AVAILABLE".
The response body shall contain a ProblemDetails
structure, in which the "detail" attribute shall convey
more information about the error.
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
IndividualArtifact.Get.416:
description: |
416 Range Not Satisfiable
Shall be returned upon the following error: The byte
range passed in the "Range" header did not match
any available byte range in the artifact file
(e.g. "access after end of file").
The response body may contain a ProblemDetails
structure
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.
style: simple
explode: false
schema:
type: string
Version:
description: The used API version.
style: simple
explode: false
schema:
type: string
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
VnfSnapshotPkgInfo:
description: >
This type represents the information of a VNF snapshot package.
NOTE: The attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this
attribute shall be present unless it has been requested to be excluded per attribute selector.
type: object
required:
- id
- name
- isFullSnapshot
- state
- isCancelPending
- _links
properties:
id:
description: >
Identifier of the VNF snapshot packageinformation held by the NFVO. This identifier
is allocated by the NFVO.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfSnapshotPkgUniqueId:
description: >
Identifier of the VNF snapshot package, which identifies the VNF snapshot package in
a globally unique way. It is created during the "build VNF snapshot package operation".
Multiples instances of the same VNF snapshot package share the same vnfSnapshotPkgUniqueId.
See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
name:
description: >
Human-readable name of the VNF snapshot package.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
checksum:
description: >
Checksum of the stored VNF snapshot package. Hash algorithms applicable to VNF
snapshot packages are defined in ETSI GS NFV-SOL 010.
See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
createdAt:
description: >
Timestamp indicating when the VNF snapshot package creation has been completed.
See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfSnapshotId:
description: >
Identifier of specific VNF snapshot in the VNF snapshot package.
This identifier is allocated by the VNFM during the VNF snapshot creation.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfcSnapshotInfoIds:
description: >
Identifiers of information held by the VNFM about specific VNFC snapshots part
of the VNF snapshot and contained in the VNF snapshot package. This identifier
is allocated by the VNFM during the VNF snapshot creation.
See note.
type: object
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
isFullSnapshot:
description: >
Value is TRUE in case of a "full" VNF snapshot package, i.e., containing all snapshotted
VNFC instances; otherwise the value is FALSE.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
vnfdInfo:
description: >
VNFD of the snapshotted VNF instance that is contained in the stored VNF snapshot package.
$ref: "#/definitions/VnfdInfo"
vnfsr:
description: >
VNF snapshot record with the information as present in the representation of the
"Individual VNF snapshot" resource.
$ref: "#/definitions/VnfSnapshotRecord"
vnfcSnapshotImages:
description: >
Information about VNF snapshot artifacts that are VNFC snapshot images. Every local and
external snapshot image shall be included. No other artifacts shall be included.
See note.
type: object
items:
$ref: "#/definitions/VnfcSnapshotImageInfo"
additionalArtifacts:
description: >
Information about VNF snapshot artifacts that are not VNFC snapshot images.
See note.
type: object
items:
$ref: "#/definitions/SnapshotPkgArtifactInfo"
state:
description: >
State of the VNF snapshot package.
Permitted values:
- CREATED: the VNF snapshot package information has been created.
- BUILDING: the VNF snapshot package is being built.
- UPLOADING: the VNF snapshot package is being uploaded.
- EXTRACTING: the VNF snapshot package’s content is being extracted.
- AVAILABLE: the VNF snapshot package is available (i.e., build or upload is completed).
- PROCESSING: the VNF snapshot is being processed.
- ERROR: failure during the VNF snapshot package building, uploading or processing.
- ERROR_EXTRACTING: failure during the VNF snapshot package extraction task.
type: string
enum:
- CREATED
- BUILDING
- UPLOADING
- EXTRACTING
- AVAILABLE
- PROCESSING
- ERROR
- ERROR_EXTRACTING
isCancelPending:
description: >
Indicates if an ongoing operation with the content of the VNF snapshot package is being
cancelled. If the value of the "state" attribute is "BUILDING", "UPLOADING", "PROCESSING"
or "EXTRACTING" and the operation is being cancelled, this attribute shall be set to true.
Otherwise, it shall be set to false.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
failureDetails:
description: >
Failure details associated to current error state of the VNF snapshot package state.
If "state" is "ERROR" or "ERROR_EXTRACTING", this attribute shall be present unless
it has been requested to be excluded via an attribute selector.
type: object
required:
- errorType
- details
properties:
errorType:
description: >
Type of error, when the failure happened (building, upload, processing, extracting).
Permitted values:
- BUILD_ERROR
- UPLOAD_ERROR
- PROCESS_ERROR
- CANCELLED
- EXTRACTION_ERROR
type: string
enum:
- BUILD_ERROR
- UPLOAD_ERROR
- PROCESS_ERROR
- CANCELLED
- EXTRACTION_ERROR
details:
description: >
Failure details containing error information (such as failed uploading or processing
operation, affected artifact, reason for cancellation, etc.). See clause 6.3 of
ETSI GS NFV-SOL 013 for the details of "ProblemDetails" structure.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
userDefinedData:
description: >
User defined data for the VNF snapshot package to be built/uploaded.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
- packageContent
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
packageContent:
description: >
Link to the "VNF snapshot package content" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
VnfcSnapshotImageInfo:
description: >
This type represents an artifact contained in a VNF snapshot package which represents a snapshot image.
NOTE 1: The list of permitted values was taken from "Container formats" in OpenStack® documentation: "Disk and container formats for images"
(Available at https://docs.openstack.org/glance/pike/user/formats.html).
NOTE 2: The list of permitted values was adapted from "Disk formats" in OpenStack® documentation: "Disk and container formats for images"
(Available at https://docs.openstack.org/glance/pike/user/formats.html).
type: object
required:
- id
- name
- checksum
- isEncrypted
- vnfcInstanceId
- containerFormat
- diskFormat
- createdAt
- minDisk
- minRam
- size
properties:
id:
description: >
Identifier of the VNFC snapshot image.
When building the VNF snapshot package, the NFVO shall set the value of this attribute as follows:
- for an image artifact corresponding to a compute snapshot resource, the value is copied from the
"id" attribute of the “VnfcSnapshotInfo”,
- for an image artifact corresponding to a storage snapshot resource, the value is copied from the
"storageResourceId" attribute in the "VnfcSnapshotInfo" of the corresponding storage snapshot resource.
When onboarding an existing VNF snapshot package, the NFVO shall set the value of this attribute as provided
in the manifest file in the VNF snapshot package (refer to ETSI GS NFV-SOL 010).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
name:
description: >
Name of the VNFC snapshot image.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
checksum:
description: >
Checksum of the snapshot image file. Hash algorithms applicable to VNF
snapshot package artifacts are defined in ETSI GS NFV-SOL 010.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
isEncrypted:
description: >
Reflects whether the artifact is encrypted (true) or not (false).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
vnfcInstanceId:
description: >
Identifier of the snapshotted VNFC instance that this snapshot image belongs to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
containerFormat:
description: >
Container format indicates whether the snapshot image is in a file format that
also contains metadata about the actual snapshot.
Permitted values:
- AKI: a kernel image format
- AMI: a machine image format
- ARI: a ramdisk image format
- BARE: the image does not have a container or metadata envelope
- DOCKER: docker container format
- OVA: OVF package in a tarfile
- OVF: OVF container format
See note 1.
type: string
enum:
- AKI
- AMI
- ARI
- BARE
- DOCKER
- OVA
- OVF
diskFormat:
description: >
Disk format of a snapshot image is the format of the underlying disk image.
Permitted values:
- AKI: a kernel image format
- AMI: a machine image format
- ARI: a ramdisk image format
- ISO: an archive format for the data contents of an optical disc, such as CD-ROM
- QCOW2: a common disk image format, which can expand dynamically and supports copy on write
- RAW: an unstructured disk image format
- VDI: a common disk image format
- VHD: a common disk image format
- VHDX: enhanced version of VHD format
- VMDK: a common disk image format
See note 2.
type: string
enum:
- AKI
- AMI
- ARI
- ISO
- QCOW2
- RAW
- VDI
- VHD
- VHDX
- VMDK
createdAt:
description: >
Timestamp indicating when the VNFC snapshot image was created.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
minDisk:
description: >
The minimal disk for this VNFC snapshot image (in bytes).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/UnsignedInt"
minRam:
description: >
The minimal RAM for this VNFC snapshot image (in bytes).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/UnsignedInt"
size:
description: >
Size of this VNFC snapshot image (in bytes).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/UnsignedInt"
userMetadata:
description: >
User-defined metadata.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
imagePath:
description: >
Path which identifies the image artifact and also allows to access a copy of the image artifact.
For an image artifact contained as a file in the VNF snapshot package, this attribute shall be
present, and the value of this attribute shall start with the name of the first segment in the
path in the package, i.e., it shall not be prefixed by path separator characters such as "."
and "/".
EXAMPLE: foo/bar/m%40ster.vhd
For an external image artifact represented as a URI in the manifest file, this attribute shall
be present if the artifact has been downloaded by the NFVO or the artifact has been processed
after building the VNF snapshot package and shall be absent otherwise. If present, it shall
contain the artifactPath under which the image artifact can be obtained using the
"Individual artifact in a VNF snapshot package" resource defined in clause 12.4.5. It is the
responsibility of the NFVO to synthesize this path in a manner that avoids any collision of
the synthesized artifact path with the paths and names of artifacts included in the snapshot
package.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
imageUri:
description: >
URI of the image artifact as defined in the VNF snapshot package manifest. Shall be present
if the image artifact is external to the snapshot package and shall be absent otherwise.
EXAMPLE: https://example.com/m%40ster.vhd
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
SnapshotPkgArtifactInfo:
description: >
This type represents an artifact other than a software image which is contained in
a VNF snapshot package.
type: object
required:
- checksum
- isEncrypted
properties:
artifactPath:
description: >
Path which identifies the artifact and also allows to access a copy of the artifact.
For an artifact contained as a file in the VNF snapshot package, this attribute shall
be present, and the value of this attribute shall start with the name of the first
segment in the path in the package, i.e. it shall not be prefixed by path separator
characters such as "." and "/".
EXAMPLE: foo/bar/m%40ster.sh
For an external artifact represented as a URI in the manifest file, this attribute
shall be present if the artifact has been downloaded by the NFVO or the artifact has
been processed after building the VNF snapshot package and shall be absent otherwise.
If present, it shall contain the artifactPath under which the artifact can be obtained
using the "Individual artifact in a VNF snapshot package" resource defined in
clause 12.4.5. It is the responsibility of the NFVO to synthesize this path in a manner
that avoids any collision of the synthesized artifact path with the paths and names of
artifacts included in the snapshot package.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
artifactUri:
description: >
URI of the artifact as defined in the VNF snapshot package manifest. Shall be present
if the artifact is external to the snapshot package and shall be absent otherwise.
EXAMPLE: https://example.com/m%40ster.sh
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
checksum:
description: >
Checksum of the artifact file. Hash algorithms applicable to VNF
snapshot package artifacts are defined in ETSI GS NFV-SOL 010.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
isEncrypted:
description: >
Reflects whether the artifact is encrypted (true) or not (false).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
metadata:
description: >
The metadata of the artifact that are available in the VNF package, such as Content type,
size, creation date, etc.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
VnfdInfo:
description: >
This type represents the VNFD which is contained in a VNF snapshot package.
type: object
required:
- avnfdId
- vnfdPath
- checksum
- isEncrypted
properties:
avnfdId:
description: >
VNFD identifier of the snapshotted VNF instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfdPath:
description: >
Path which allows to access a copy of the VNFD. The VNFD is implemented as
a collection of one or more files, and the path refers to the ZIP archive
file embedding these files. The VNF snapshot package format is defined
specified in the ETSI GS NFV-SOL 010.
The value of this attribute shall start with the name of the first segment
of the path in the package, i.e. it shall not be prefixed by path separator
characters such as "." and "/".
EXAMPLE: foo/bar/m@ster
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
checksum:
description: >
Checksum of the VNFD archive file. Hash algorithms applicable to VNF
snapshot package artifacts are defined in ETSI GS NFV-SOL 010.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
isEncrypted:
description: >
Reflects whether the VNFD archive file is encrypted (true) or not (false).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
VnfSnapshotRecord:
description: >
This type represents the VNF snapshot record which is contained in a VNF snapshot package.
type: object
required:
- recordPath
- checksum
- isEncrypted
properties:
recordPath:
description: >
Path which identifies the VNF snapshot record and allows to access a copy of the
VNF snapshot record for the extraction.
The value of this attribute shall start with the name of the first segment of the
path in the package, i.e. it shall not be prefixed by path separator characters
such as "." and "/".
EXAMPLE: foo/bar/m@ster
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
checksum:
description: >
Checksum of the VNF snapshot record file. Hash algorithms applicable to VNF
snapshot package artifacts are defined in ETSI GS NFV-SOL 010.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Checksum"
isEncrypted:
description: >
Reflects whether the VNF snapshot record file is encrypted (true) or not (false).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.4.1"
title: DRAFT - SOL003 - Virtualised Resources Quota Available Notification interface
description: >
DRAFT - SOL003 - Virtualised Resources Quota Available Notification interface
title: SOL003 - Virtualised Resources Quota Available Notification interface
description: |
SOL003 - Virtualised Resources Quota Available Notification 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&list_id=61&product=NFV&resolution=
version of the ETSI Group Specification it refers to. In case of
discrepancies the published ETSI Group Specification takes precedence.
Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues
contact:
name: NFV-SOL WG
license:
name: "ETSI Forge copyright notice"
name: ETSI Forge copyright notice
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: "NFV-SOL WG"
version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
basePath: "/vrqan/v1"
externalDocs:
description: ETSI GS NFV-SOL 003 V3.7.1
url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.07.01_60/gs_NFV-SOL003v030701p.pdf
schemes:
- https
consumes:
- "application/json"
produces:
- "application/json"
servers:
- url: http://127.0.0.1/vrqan/v1
- url: https://127.0.0.1/vrqan/v1
paths:
###############################################################################
# Subscriptions #
###############################################################################
'/subscriptions':
###############################################################################
# API Versions #
###############################################################################
/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
# Subscriptions #
###############################################################################
/subscriptions:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
post:
description: >
The POST method creates a new subscription.
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 VNFM, 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).
description: |
The POST method creates a new subscription. See clause 11.4.2.3.1.
parameters:
- name: VrQuotaAvailSubscriptionRequest
description: Details of the subscription to be created.
in: body
required: true
schema:
$ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscriptionRequest"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/VrQuotaAvailSubscriptionRequest'
responses:
201:
description: >
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
schema:
$ref: "definitions/VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription"
$ref: '#/components/responses/Subscriptions.Post.201'
303:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
$ref: '#/components/responses/Subscriptions.Post.303'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
422:
$ref: '#/components/responses/Subscriptions.Post.422'
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
get:
description: >
The GET method allows the server to test the notification endpoint
that is provided by the client, e.g. during subscription.
description: |
The GET method queries the list of active subscriptions of the functional block that invokes the method.
It can be used e.g. for resynchronization after error situations. See clause 11.4.2.3.2.
parameters:
- $ref: '#/components/parameters/filter_subscriptions'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
responses:
200:
$ref: '#/components/responses/Subscriptions.Get.200'
204:
$ref: '#/components/responses/Subscriptions.Get.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# Individual subscription #
###############################################################################
/subscriptions/{subscriptionId}:
parameters:
- $ref: '#/components/parameters/SubscriptionId'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
get:
description: |
The GET method reads an individual subscription. See clause 11.4.3.3.2.
responses:
200:
$ref: '#/components/responses/IndividualSubscription.Get.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
delete:
description: |
The DELETE method terminates an individual subscription. See clause 11.4.3.3.5.
responses:
204:
description: >
The notification endpoint was tested successfully.
The response body shall be empty.
$ref: '#/components/responses/IndividualSubscription.Delete.204'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
components:
parameters:
filter_subscriptions:
name: filter
description: >
Attribute-based filtering expression according to clause 5.2 of ETSI
GS NFV-SOL 013 [8].
The NFVO shall support receiving this parameter as part of the URI query string.
The VNFM may supply this parameter.
All attribute names that appear in the VrQuotaAvailSubscription and in data types
referenced from it shall be supported by the NFVO in the filter expression.
in: query
required: false
schema:
type: string
SubscriptionId:
name: subscriptionId
in: path
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 "Individual subscription" resource. It can also be retrieved from the "id"
attribute in the message content of that response.
required: true
style: simple
explode: false
schema:
type: string
requestBodies:
VrQuotaAvailSubscriptionRequest:
description: |
Details of the subscription to be created.
content:
application/json:
schema:
$ref: "./definitions/SOL003VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscriptionRequest"
required: true
responses:
Subscriptions.Post.201:
description: |
201 CREATED
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 resource.
headers:
Version:
description: |
The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
Location:
description: |
The resource URI of the created VNF instance
style: simple
explode: false
schema:
type: string
format: url
content:
application/json:
schema:
$ref: ./definitions/SOL003VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription
Subscriptions.Post.303:
description: |
303 See Other
Shall be returned when a subscription with
the same callback URI and the same filter
already exists 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 "Individual
subscription" resource.
The response body shall be empty.
headers:
Version:
description: |
The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
Location:
description: |
The resource URI of the created VNF instance
style: simple
explode: false
schema:
type: string
format: url
Subscriptions.Post.422:
description: |
422 Unprocessable Content
Shall be returned upon the following error:
The content type of the message content is
supported and the message content of a
request contains syntactically correct data
but the data cannot be processed.
The general cause for this error and its
handling is specified in clause 6.4 of ETSI
GS NFV-SOL 013 [8], including rules for
the presence of the response body.
Specifically in case of this resource, the
response code 422 shall also be returned
if the NFVO has tested the Notification
endpoint as described in clause 11.4.4.3.2
and the test has failed.
In this case, the "detail" attribute in the
"ProblemDetails" structure shall convey
more information about the error
headers:
Version:
description: |
The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: "../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
Subscriptions.Get.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 virtualised resource quota available subscriptions as defined in clause 11.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:
Version:
description: |
The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
Link:
description: |
Reference to other resources. Used for paging in the present document, see clause 4.7.2.1.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
type: array
items:
$ref: ./definitions/SOL003VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription
Subscriptions.Get.204:
description: |
No Content
The notification endpoint was tested successfully.
The response body shall be empty.
headers:
Version:
description: |
The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
IndividualSubscription.Get.200:
description: |
200 OK
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:
Version:
description: |
The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
content:
application/json:
schema:
$ref: ./definitions/SOL003VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription
IndividualSubscription.Delete.204:
description: |
No Content
Shall be returned when the "Individual subscription" resource has been deleted successfully.
headers:
Version:
description: |
The used API version.
style: simple
explode: false
schema:
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.
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response.
style: simple
explode: false
schema:
type: string
\ No newline at end of file
......@@ -12,7 +12,7 @@ definitions:
an array, the attribute shall match if at least one of the values in the
array matches (logical "or" between the values of one filter attribute).
type: object
properties:
properties:
vimIds:
description: >
Match VIMs that were created the quota for a consumer of the
......@@ -21,7 +21,7 @@ definitions:
Management in direct mode is applicable.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceProviderIds:
description: >
Match the entities responsible for the management of the virtualised
......@@ -31,7 +31,7 @@ definitions:
is outside the scope of the present document.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceTypes:
description: >
Match particular resource types.
......@@ -49,7 +49,7 @@ definitions:
an infrastructure Domain.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
VrQuotaAvailSubscription:
description: >
......@@ -63,8 +63,8 @@ definitions:
properties:
id:
description: >
Identifier of this subscription resource
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
Identifier of this "Individual subscription" resource
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
filter:
description: >
Input filter for selecting notifications to subscribe to.
......@@ -74,7 +74,7 @@ definitions:
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
_links:
description: >
Links for this resource
......@@ -85,14 +85,14 @@ definitions:
self:
description: >
URI of this resource
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
VrQuotaAvailSubscriptionRequest:
description: >
This type represents a subscription request related to notifications
related to the availability of the virtualised resources quotas.
type: object
required:
required:
- callbackUri
properties:
filter:
......@@ -104,13 +104,12 @@ definitions:
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
Authentication parameters to configure the use of Authorization when
sending notifications corresponding to this subscription.
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
Authentication parameters to configure the use of Authorization when sending notifications
corresponding to this subscription, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013.
This attribute shall only be present if the subscriber requires authorization of notifications.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/SubscriptionAuthentication"
swagger: "2.0"
info:
version: "2.3.4"
title: DRAFT - SOL003 - Virtualised Resources Quota Available Notification Notification interface
description: >
DRAFT - SOL003 - Virtualised Resources Quota Available Notification Notification 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&list_id=61&product=NFV&resolution=
license:
name: "ETSI Forge copyright notice"
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: "NFV-SOL WG"
basePath: "/callback/v1"
schemes:
- https
consumes:
- "application/json"
produces:
- "application/json"
paths:
###############################################################################
# Notification endpoint VnfLcmOperationOccurrenceNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription':
post:
description: >
The POST method delivers a notification from the server to the client.
parameters:
- name: VrQuotaAvailNotification
description: A notification related to the availability of the virtualised resources quota.
in: body
required: true
schema:
$ref: "definitions/VirtualisedResourcesQuotaAvailableNotificationNotification_def.yaml#/definitions/VrQuotaAvailNotification"
responses:
204:
description: >
The notification was delivered successfully.
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
get:
description: >
The GET method allows the server to test the notification endpoint
that is provided by the client, e.g. during subscription.
responses:
204:
description: >
The notification was delivered successfully.
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
401:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
403:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
404:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/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"
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
VrQuotaAvailNotification:
description: >
This type represents a notification which indicates the availability of
a quota applicable to the consumer.
Support of this notification is mandatory if the
Virtualised Resources Quota Available Notification interface is
supported.
The notification shall be triggered by the NFVO when a virtualised
resource quota applicable to the consumer has been set.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- resourceGroupId
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types.
Shall be set to "VrQuotaAvailNotification" for this notification type.
type: string
enum:
- VrQuotaAvailNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime"
resourceGroupId:
description: >
Identifier of the "infrastructure resource group", logical grouping
of virtual resources assigned to a tenant within an Infrastructure
Domain.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
vimConnectionInfo:
description: >
Information about the VIM connection to manage the virtualised
resources quota.
This attribute shall only be supported and present when VNF-related
Resource Management in direct mode is applicable.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
resourceProviderId:
description: >
Identifies the entity responsible for the management of the
virtualised resources quota.
This attribute shall only be supported and present when
VNF-related Resource Management in indirect mode is applicable. The
identification scheme is outside the scope of the present document.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links to resources related to this notification.
$ref: "#/definitions/QuotaAvailLinks"
QuotaAvailLinks:
description: >
This type represents the links to resources that a notification of type
"VrQuotaAvailNotification" can contain.
type: object
required:
- subscription
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
components:
parameters:
Version:
name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
schema:
type: string
Accept:
name: Accept
description: >
Content-Types that are acceptable for the response. Reference: IETF RFC 7231.
in: header
required: true
schema:
type: string
Authorization:
name: Authorization
description: >
The authorization token for the request. Reference: IETF RFC 7235.
in: header
required: false
schema:
type: string
ContentType:
name: Content-Type
description: |
The MIME type of the body of the request. Reference: IETF RFC 7231
in: header
required: true
schema:
type: string
all_fields_vnfm:
name: all_fields
description: >
Include all complex attributes in the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [6] for details. The VNFM shall support this parameter.
in: query
required: false
schema:
type: string
fields_vnfm:
name: fields
description: >
Complex attributes to be included into the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [6] for details. The VNFM should support this parameter.
in: query
required: false
schema:
type: string
exclude_fields_vnfm:
name: exclude_fields
description: >
Complex attributes to be excluded from the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [6] for details. The VNFM should support this parameter.
in: query
required: false
schema:
type: string
nextpage_opaque_marker_vnfm:
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 [6] for this resource.
in: query
required: false
schema:
type: string
If-Unmodified-Since:
name: If-Unmodified-Since
description: >
Used to make the request method conditional on the selected resource representation's last modification date being
earlier than or equal to the date provided in the field-value. If the condition is not met, the request fails with a
"412 Precondition Failed" response.
required: false
in: header
schema:
type: string
format: date-time
If-Match:
name: If-Match
description: >
Used to make the request method conditional on the recipient origin server either having at least one current representation
of the target resource, when the field-value is "*", or having a current representation of the target resource that has an
entity-tag matching a member of the list of entity-tags provided in the field-value. If the condition is not met, the request
fails with a "412 Precondition Failed" response.
required: false
in: header
schema:
type: string
components:
parameters:
Version:
name: Version
description: >
Version of the API requested to use when responding to this request.
in: header
required: true
schema:
type: string
Accept:
name: Accept
description: >
Content-Types that are acceptable for the response. Reference: IETF RFC 7231.
in: header
required: true
schema:
type: string
Authorization:
name: Authorization
description: >
The authorization token for the request. Reference: IETF RFC 7235.
in: header
required: false
schema:
type: string
ContentType:
name: Content-Type
description: |
The MIME type of the body of the request. Reference: IETF RFC 7231
in: header
required: true
schema:
type: string
all_fields_vnfm:
name: all_fields
description: >
Include all complex attributes in the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [8] for details. The VNFM shall support this parameter.
in: query
required: false
schema:
type: string
fields_vnfm:
name: fields
description: >
Complex attributes to be included into the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [8] for details. The VNFM should support this parameter.
in: query
required: false
schema:
type: string
exclude_fields_vnfm:
name: exclude_fields
description: >
Complex attributes to be excluded from the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [8] for details. The VNFM should support this parameter.
in: query
required: false
schema:
type: string
nextpage_opaque_marker_vnfm:
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 [8] for this resource.
in: query
required: false
schema:
type: string
all_fields_nfvo:
name: all_fields
description: >
Include all complex attributes in the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [8] for details. The NFVO shall support this parameter.
in: query
required: false
schema:
type: string
fields_nfvo:
name: fields
description: >
Complex attributes to be included into the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [8] for details. The NFVO should support this parameter
in: query
required: false
schema:
type: string
exclude_fields_nfvo:
name: exclude_fields
description: >
Complex attributes to be excluded from the response. See clause 5.3 of ETSI
GS NFV-SOL 013 [8] for details. The NFVO should support this parameter
in: query
required: false
schema:
type: string
nextpage_opaque_marker_nfvo:
name: nextpage_opaque_marker
description: >
Marker to obtain the next page of a paged response. Shall be supported by the NFVO if
the NFVO supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI
GS NFV-SOL 013 [8] for this resource.
in: query
required: false
schema:
type: string
If-Unmodified-Since:
name: If-Unmodified-Since
description: >
Used to make the request method conditional on the selected resource representation's last modification date being
earlier than or equal to the date provided in the field-value. If the condition is not met, the request fails with a
"412 Precondition Failed" response.
required: false
in: header
schema:
type: string
format: date-time
If-Match:
name: If-Match
description: >
Used to make the request method conditional on the recipient origin server either having at least one current representation
of the target resource, when the field-value is "*", or having a current representation of the target resource that has an
entity-tag matching a member of the list of entity-tags provided in the field-value. If the condition is not met, the request
fails with a "412 Precondition Failed" response.
required: false
in: header
schema:
type: string
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
AffectedVirtualLink:
description: >
This type provides information about added, deleted, modified and
temporary VLs.
type: object
required:
- id
- virtualLinkDescId
- changeType
- networkResource
properties:
id:
description: >
Identifier of the virtual link instance, identifying the applicable
"vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
virtualLinkDescId:
description: >
Identifier of the related VLD in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
changeType:
description: >
Signals the type of change. Permitted values:
* ADDED
* REMOVED
* MODIFIED
* TEMPORARY
* LINK_PORT_ADDED
* LINK_PORT_REMOVED
For a temporary resource, an AffectedVirtualLink structure exists as
long as the temporary resource exists.
type: string
enum:
- ADDED
- REMOVED
- MODIFIED
- TEMPORARY
- LINK_PORT_ADDED
- LINK_PORT_REMOVED
networkResource:
description: >
Reference to the VirtualNetwork resource. Detailed information is
(for new and modified resources) or has been (for removed
resources) available from the VIM.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
metadata:
description: >
Metadata about this resource.
The content of this attribute shall be a copy of the content of the
"metadata" attribute of the VnfVirtualLinkResourceInfo structure.
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
AffectedVirtualStorage:
description: >
This type provides information about added, deleted, modified and
temporary virtual storage resources.
type: object
required:
- id
- virtualStorageDescId
- changeType
- storageResource
properties:
id:
description: >
Identifier of the storage instance, identifying the applicable
"virtualStorageResourceInfo" entry in the "VnfInstance" data type.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
virtualStorageDescId:
description: >
Identifier of the related VirtualStorage descriptor in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
changeType:
description: >
Signals the type of change. Permitted values:
* ADDED
* REMOVED
* MODIFIED
* TEMPORARY
For a temporary resource, an AffectedVirtualStorage structure exists
as long as the temporary resource exists.
type: string
enum:
- ADDED
- REMOVED
- MODIFIED
- TEMPORARY
storageResource:
description: >
Reference to the VirtualStorage resource. Detailed information is
(for new and modified resources) or has been (for removed
resources) available from the VIM.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
metadata:
description: >
Metadata about this resource.
The content of this attribute shall be a copy of the content of the
"metadata" attribute of the VirtualStorageResourceInfo structure.
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
CpProtocolInfo:
description: >
This type describes the protocol layer(s) that a CP uses together with
protocol-related information, like addresses.
required:
- layerProtocol
properties:
layerProtocol:
description: >
The identifier of layer(s) and protocol(s) associated to the network
address information.
Permitted values: IP_OVER_ETHERNET
This attribute allows to signal the addition of further types of
layer and protocol in future versions of the present document in a
backwards-compatible way. In the current version of the present
document, only IP over Ethernet is supported.
type: string
enum:
- IP_OVER_ETHERNET
ipOverEthernet:
description: >
IP addresses over Ethernet to assign to the extCP instance. Shall be
present if layerProtocol is equal to " IP_OVER_ETHERNET", and shall
be absent otherwise.
$ref: "#/definitions/IpOverEthernetAddressInfo"
CreateVnfRequest:
type: object
required:
- vnfdId
properties:
vnfdId:
description: >
Identifier that identifies the VNFD which defines the VNF instance to
be created.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfInstanceName:
description: >
Human-readable name of the VNF instance to be created.
type: string
vnfInstanceDescription:
description: >
Human-readable description of the VNF instance to be created.
type: string
ExtManagedVirtualLinkInfo:
type: object
required:
- id
- vnfVirtualLinkDescId
properties:
id:
description: >
Identifier of the externally-managed internal VL and the related
externally-managed VL information instance.
The identifier is assigned by the NFV-MANO entity that manages this
VL instance.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfVirtualLinkDescId:
description: >
Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
networkResource:
description: >
Reference to the VirtualNetwork resource.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
vnfLinkPorts:
description: >
Link ports of this VL.
type: array
items:
$ref: "#/definitions/VnfLinkPortInfo"
ExtLinkPortInfo:
description: >
This type represents information about a link port of an external VL,
i.e. a port providing connectivity for the VNF to an NS VL.
type: object
required:
- id
- resourceHandle
properties:
id:
description: >
Identifier of this link port as provided by the entity that has
created the link port.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
resourceHandle:
description: >
Reference to the virtualised resource realizing this link
port.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
cpInstanceId:
description: >
Identifier of the external CP of the VNF connected to this link
port. There shall be at most one link port associated with any
external connection point instance. The value refers to an
"extCpInfo" item in the VnfInstance.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
ExtVirtualLinkInfo:
type: object
required:
- id
- resourceHandle
properties:
id:
description: >
Identifier of the external VL and the related external VL
information instance.
The identifier is assigned by the NFV-MANO entity that manages this
VL instance.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
resourceHandle:
description: >
Reference to the resource realizing this VL.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
extLinkPorts:
description: >
Link ports of this VL.
type: array
items:
$ref: "#/definitions/ExtLinkPortInfo"
IpOverEthernetAddressInfo:
description: >
This type represents information about a network address that has been
assigned.
type: object
required:
- macAddress
properties:
macAddress:
description: >
Assigned MAC address.
$ref: "SOL002SOL003_def.yaml#/definitions/MacAddress"
ipAddresses:
description: >
Addresses assigned to the CP instance. Each entry represents IP
addresses assigned by fixed or dynamic IP address assignment per
subnet.
type: array
items:
type: object
required:
- type
properties:
type:
description: >
The type of the IP addresses.
Permitted values: IPV4, IPV6.
type: string
enum:
- IPV4
- IPV6
addresses:
description: >
Fixed addresses assigned (from the subnet defined by
"subnetId" if provided).
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/IpAddress"
isDynamic:
description: >
Indicates whether this set of addresses was assigned
dynamically (true) or based on address information provided as
input from the API consumer (false). Shall be present if
"addresses" is present and shall be absent otherwise.
type: boolean
addressRange:
description: >
An IP address range used, e.g., in case of egress connections.
Exactly one of "addresses" or "addressRange" shall be present.
type: object
required:
- minAddress
- maxAddress
properties:
minAddress:
description: >
Lowest IP address belonging to the range.
$ref: "SOL002SOL003_def.yaml#/definitions/IpAddress"
maxAddress:
description: >
Highest IP address belonging to the range
$ref: "SOL002SOL003_def.yaml#/definitions/IpAddress"
subnetId:
description: >
Subnet defined by the identifier of the subnet resource in
the VIM.
In case this attribute is present, IP addresses are bound
to that subnet.
$ref: "SOL002SOL003_def.yaml#/definitions/IpAddress"
LccnLinks:
description: >
This type represents the links to resources that a notification can
contain.
type: object
required:
- vnfInstance
- subscription
properties:
vnfInstance:
description: >
Link to the resource representing the VNF instance to which the
notified change applies.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
subscription:
description: >
Link to the related subscription.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
vnfLcmOpOcc:
description: >
Link to the VNF lifecycle management operation occurrence that this
notification is related to. Shall be present if there is a related
lifecycle operation occurrence.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
LccnSubscription:
description: >
This type represents a subscription related to notifications about VNF
lifecycle changes.
type: object
required:
- id
- callbackUri
- _links
properties:
id:
description: >
Identifier of this subscription resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular
notification is sent to the subscriber if the filter matches, or if
there is no filter.
$ref: "#/definitions/LifecycleChangeNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "SOL002SOL003_def.yaml#/definitions/Uri"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Uri"
LccnSubscriptionRequest:
description: >
This type represents a subscription request related to notifications
about VNF lifecycle changes.
type: object
required:
- callbackUri
properties:
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular
notification is sent to the subscriber if the filter matches, or if
there is no filter.
$ref: "#/definitions/LifecycleChangeNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "SOL002SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
Authentication parameters to configure the use of Authorization when
sending notifications corresponding to this subscription, as defined
in clause 4.5.3.4.
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
LcmOperationStateType:
description: >
Value | Description
------|------------
STARTING | The LCM operation is starting.
PROCESSING | The LCM operation is currently in execution.
COMPLETED | he LCM operation has been completed successfully.
FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed.
FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed.
ROLLING_BACK | The LCM operation is currently being rolled back.
ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
type: string
enum:
- STARTING
- PROCESSING
- COMPLETED
- FAILED_TEMP
- FAILED
- ROLLING_BACK
- ROLLED_BACK
LifecycleChangeNotificationsFilter:
description: >
This type represents a subscription filter related to notifications
about VNF lifecycle changes.
At a particular nesting level in the filter structure, the following
applies: All attributes shall match in order for the filter to match
(logical "and" between different filter attributes). If an attribute is
an array, the attribute shall match if at least one of the values in
the array matches (logical "or" between the values of one filter
attribute).
type: object
properties:
vnfInstanceSubscriptionFilter:
description: >
Filter criteria to select VNF instances about which to notify.
$ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
notificationTypes:
description: >
Match particular notification types.
Permitted values:
* VnfLcmOperationOccurrenceNotification
* VnfIdentifierCreationNotification
* VnfIdentifierDeletionNotification
The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to
facilitate automated code generation systems.
type: string
enum:
- VnfLcmOperationOccurrenceNotification
- VnfIdentifierCreationNotification
- VnfIdentifierDeletionNotification
operationTypes:
description: >
Match particular VNF lifecycle operation types for the notification
of type VnfLcmOperationOccurrenceNotification.
May be present if the "notificationTypes" attribute contains the
value "VnfLcmOperationOccurrenceNotification", and shall be absent
otherwise.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/LcmOperationType"
operationStates:
description: >
Match particular LCM operation state values as reported in
notifications of type VnfLcmOperationOccurrenceNotification.
May be present if the "notificationTypes" attribute contains the
value "VnfLcmOperationOccurrenceNotification", and shall be absent
otherwise.
type: array
items:
$ref: "#/definitions/LcmOperationStateType"
MonitoringParameter:
type: object
required:
- id
- value
- timeStamp
properties:
id:
description: >
Identifier of the monitoring parameter defined in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
name:
description: >
Human readable name of the monitoring parameter, as defined in the
VNFD.
type: string
value:
description: >
Value of the monitoring parameter known to the VNFM (e.g. obtained
for autoscaling purposes).
The type of the "value" attribute (i.e. scalar, structure (Object in
JSON), or array (of scalars, arrays or structures/Objects)) is
assumed to be defined in an external measurement specification.
type: object
timeStamp:
description: >
Represents the point in time when the measurement has been performed,
as known to the VNFM.
Should be formatted according to ETF RFC 3339.
type: string
ScaleInfo:
required:
- aspectId
- scaleLevel
type: object
properties:
aspectId:
description: >
Identifier of the scaling aspect.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
scaleLevel:
description: >
Indicates the scale level. The minimum value shall be 0 and the
maximum value shall be <= maxScaleLevel as described in the VNFD.
type: integer
ScaleVnfRequest:
type: object
required:
- type
- aspectId
properties:
type:
description: >
Indicates the type of the scale operation requested.
Permitted values:
* SCALE_OUT: adding additional VNFC instances to the VNF to increase
capacity
* SCALE_IN: removing VNFC instances from the VNF in order to release
unused capacity.
type: string
enum:
- SCALE_OUT
- SCALE_IN
aspectId:
description: >
Identifier of the scaling aspect.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
numberOfSteps:
description: >
Number of scaling steps to be executed as part of this Scale VNF
operation. It shall be a positive number and the default value
shall be 1.
type: integer
default: 1
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the scaling
process, specific to the VNF being scaled, as declared in the VNFD
as part of "ScaleVnfOpConfig".
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
ScaleVnfToLevelRequest:
description: >
This type represents request parameters for the "Scale VNF to Level"
operation.
type: object
properties:
instantiationLevelId:
description: >
Identifier of the target instantiation level of the current
deployment flavour to which the VNF is requested to be scaled.
Either the instantiationLevelId attribute or the scaleInfo attribute
shall be included.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
scaleInfo:
description: >
For each scaling aspect of the current deployment flavour, indicates
the target scale level to which the VNF is to be scaled.
Either the instantiationLevelId attribute or the scaleInfo attribute
shall be included.
type: array
items:
$ref: "#/definitions/ScaleInfo"
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the scaling
process, specific to the VNF being scaled, as declared in the
VNFD as part of "ScaleVnfToLevelOpConfig".
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
StopType:
description: >
* FORCEFUL: The VNFM will stop the VNF immediately after accepting the
request.
* GRACEFUL: The VNFM will first arrange to take the VNF out of service
after accepting the request. Once that operation is successful or once
the timer value specified in the "gracefulStopTimeout" attribute
expires, the VNFM will stop the VNF.
type: string
enum:
- FORCEFUL
- GRACEFUL
Version:
description: >
A Version.
type: string
VirtualStorageResourceInfo:
description: >
This type represents the information that allows addressing a virtualised
resource that is used by a VNF instance.
type: object
required:
- id
- virtualStorageDescId
- storageResource
properties:
id:
description: >
Identifier of this VirtualStorageResourceInfo instance.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
virtualStorageDescId:
description: >
Identifier of the VirtualStorageDesc in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
storageResource:
description: >
Reference to the VirtualStorage resource.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
reservationId:
description: >
The reservation identifier applicable to the resource. It shall be
present when an applicable reservation exists.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
metadata:
description: >
Metadata about this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
VnfcResourceInfo:
description: >
This type represents the information on virtualised compute and storage
resources used by a VNFC in a VNF instance.
type: object
required:
- id
- vduId
- computeResource
properties:
id:
description: >
Identifier of this VnfcResourceInfo instance.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
vduId:
description: >
Reference to the applicable VDU in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
computeResource:
description: >
Reference to the VirtualCompute resource.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
storageResourceIds:
description: >
References to the VirtualStorage resources. The value refers to a
VirtualStorageResourceInfo item in the VnfInstance.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
reservationId:
description: >
The reservation identifier applicable to the resource. It shall be
present when an applicable reservation exists.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfcCpInfo:
description: >
CPs of the VNFC instance.
Shall be present when that particular CP of the VNFC instance is
associated to an external CP of the VNF instance.
May be present otherwise.
type: array
items:
type: object
required:
- id
- cpdId
properties:
id:
description: >
Identifier of this VNFC CP instance and the associated array
entry.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
cpdId:
description: >
Identifier of the VDU CPD, cpdId, in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfExtCpId:
description: >
When the VNFC CP is exposed as external CP of the VNF, the
identifier of this external VNF CP.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
cpProtocolInfo:
description: >
Network protocol information for this CP.
type: array
items:
$ref: "#/definitions/CpProtocolInfo"
vnfLinkPortId:
description: >
Identifier of the "vnfLinkPorts" structure in the
"vnfVirtualLinkResourceInfo" structure. Shall be present if
the CP is associated to a link port.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
metadata:
description: >
Metadata about this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
VnfIdentifierCreationNotification:
description: >
This type represents a VNF identifier creation notification, which
informs the receiver of the creation of a new VNF instance resource and
the associated VNF instance identifier.
This notification shall be triggered by the VNFM when it has created a
VNF instance resource and the associated VNF instance identifier.
type: object
required:
- id
- notificationType
- timeStamp
- vnfInstanceId
- _links
properties:
id:
description: >
Identifier of the VNF instance.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"VnfIdentifierCreationNotification" for this notification type.
type: string
enum:
- VnfIdentifierCreationNotification
vnfInstanceName:
description: >
Discriminator for the different notification types. Shall be set to
"VnfIdentifierCreationNotification" for this notification type.
type: string
enum:
- VnfIdentifierCreationNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
vnfInstanceId:
description: >
The created VNF instance identifier.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links to resources related to this notification.
$ref: "#/definitions/LccnLinks"
VnfIdentifierDeletionNotification:
description: >
This type represents a VNF identifier deletion notification, which
informs the receiver of the deletion of a new VNF instance resource and
the associated VNF instance identifier.
This notification shall be triggered by the VNFM when it has deleted a
VNF instance resource and the associated VNF instance identifier.
type: object
required:
- id
- notificationType
- timeStamp
- vnfInstanceId
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"VnfIdentifierDeletionNotification" for this notification type.
type: string
enum:
- VnfIdentifierDeletionNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
vnfInstanceId:
description: >
The deleted VNF instance identifier.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links to resources related to this notification.
$ref: "#/definitions/LccnLinks"
VnfInfoModifications:
description: >
This type represents attribute modifications that were performed on an
"Individual VNF instance" resource. The attributes that can be included
consist of those requested to be modified explicitly in the
"VnfInfoModificationRequest" data structure, and additional attributes
of the "VnfInstance" data structure that were modified implicitly e.g.
when modifying the referenced VNF package.
type: object
properties:
vnfInstanceName:
description: >
If present, this attribute signals modifications of the
"vnfInstanceName" attribute in "VnfInstance".
type: string
vnfInstanceDescription:
description: >
If present, this attribute signals modifications of the
"vnfInstanceDescription" attribute in "VnfInstance".
type: string
vnfConfigurableProperties:
description: >
If present, this attribute signals modifications of the
"vnfConfigurableProperties" attribute in "VnfInstance".
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
metadata:
description: >
If present, this attribute signals modifications of the "metadata"
attribute in "VnfInstance".
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
If present, this attribute signals modifications of the "extensions"
attribute in "VnfInstance".
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
vimConnectionInfo:
description: >
If present, this attribute signals modifications of certain entries
in the "vimConnectionInfo" attribute array in "VnfInstance".
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
vnfPkgId:
description: >
If present, this attribute signals modifications of the "vnfPkgId"
attribute in "VnfInstance".
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfdId:
description: >
If present, this attribute signals modifications of the "vnfdId"
attribute in "VnfInstance".
If present, this attribute (which depends on the value of the
"vnfPkgId" attribute) was modified implicitly following a request to
modify the "vnfPkgId" attribute, by copying the value of this
attribute from the VNFD in the VNF Package identified by the
"vnfPkgId” attribute.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfProvider:
description: >
If present, this attribute signals modifications of the
"vnfProvider" attribute in "VnfInstance".
If present, this attribute (which depends on the value of the
"vnfPkgId" attribute) was modified implicitly following a request to
modify the "vnfPkgId" attribute, by copying the value of this
attribute from the VNFD in the VNF Package identified by the
"vnfPkgId” attribute.
type: string
vnfProductName:
description: >
If present, this attribute signals modifications of the
"vnfProductName" attribute in "VnfInstance".
If present, this attribute (which depends on the value of the
"vnfPkgId" attribute) was modified implicitly following a request to
modify the "vnfPkgId" attribute, by copying the value of this
attribute from the VNFD in the VNF Package identified by the
"vnfPkgId” attribute.
type: string
vnfSoftwareVersion:
description: >
If present, this attribute signals modifications of the
"vnfSoftwareVersion" attribute in "VnfInstance".
$ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
vnfdVersion:
description: >
If present, this attribute signals modifications of the
"vnfdVersion" attribute in "VnfInstance".
If present, this attribute (which depends on the value of the
"vnfPkgId" attribute) was modified implicitly following a request to
modify the "vnfPkgId" attribute, by copying the value of this
attribute from the VNFD in the VNF Package identified by the
"vnfPkgId” attribute.
$ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
VnfInstance:
description: >
This type represents a VNF instance.
type: object
required:
- id
- vnfdId
- vnfProvider
- vnfProductName
- vnfSoftwareVersion
- vnfdVersion
- vnfPkgId
- instantiationState
properties:
id:
description: >
Identifier of the VNF instance.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfInstanceName:
description: >
Name of the VNF instance.
This attribute can be modified with the PATCH method.
type: string
vnfInstanceDescription:
description: >
Human-readable description of the VNF instance.
This attribute can be modified with the PATCH method.
type: string
vnfdId:
description: >
Identifier of the VNFD on which the VNF instance is based.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfProvider:
description: >
Provider of the VNF and the VNFD. The value is copied from the VNFD.
type: string
vnfProductName:
description: >
Name to identify the VNF Product. The value is copied from the VNFD.
type: string
vnfSoftwareVersion:
description: >
Software version of the VNF. The value is copied from the VNFD.
$ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
vnfdVersion:
description: >
Identifies the version of the VNFD. The value is copied from the VNFD.
$ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/Version"
vnfPkgId:
description: >
Identifier of information held by the NFVO about the specific VNF
package on which the VNF is based. This identifier was allocated by
the NFVO. This attribute can be modified with the PATCH method.
Modifying the value of this attribute shall not be performed when
conflicts exist between the previous and the newly referred VNF
package, i.e. when the new VNFD is not changed with respect to the
previous VNFD apart from referencing to other VNF software images.
In order to avoid misalignment of the VnfInstance with the current
VNF's on-boarded VNF Package, the values of attributes in the
VnfInstance that have corresponding attributes in the VNFD shall be
kept in sync with the values in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfConfigurableProperties:
description: >
Current values of the configurable properties of the VNF instance.
Configurable properties referred in this attribute are declared in
the VNFD.
ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD
based on TOSCA specifications.
VNF configurable properties are sometimes also referred to as
configuration parameters applicable to a VNF. Some of these are set
prior to instantiation and cannot be modified if the VNF is
instantiated, some are set prior to instantiation (are part of
initial configuration) and can be modified later, and others can be
set only after instantiation. The applicability of certain
configuration may depend on the VNF and the required operation of
the VNF at a certain point in time.
These configurable properties include the following standard
attributes, which are declared in the VNFD if auto-scaling and/or
auto-healing are supported by the VNF:
* isAutoscaleEnabled: If present, the VNF supports auto-scaling. If
set to true, auto-scaling is currently enabled. If set to false,
auto-scaling is currently disabled.
* isAutohealEnabled: If present, the VNF supports auto-healing. If
set to true, auto-healing is currently enabled. If set to false,
auto-healing is currently disabled.
This attribute can be modified with the PATCH method.
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the
resources for the VNF instance. This attribute shall only be
supported and present if VNF-related resource management in direct
mode is applicable.
This attribute can be modified with the PATCH method.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
instantiationState:
description: >
The instantiation state of the VNF.
type: string
enum:
- NOT_INSTANTIATED
- INSTANTIATED
instantiatedVnfInfo:
description: >
Information specific to an instantiated VNF instance. This attribute
shall be present if the instantiateState attribute value is
INSTANTIATED.
type: object
required:
- flavourId
- vnfState
properties:
flavourId:
description: >
Identifier of the VNF deployment flavour applied to this VNF instance.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfState:
description: >
The state of the VNF instance.
$ref: "SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType"
scaleStatus:
description: >
Scale status of the VNF, one entry per aspect. Represents for every
scaling aspect how "big" the VNF has been scaled w.r.t. that aspect.
type: array
items:
$ref: "#/definitions/ScaleInfo"
extCpInfo:
description: >
Information about the external CPs exposed by the VNF instance.
type: array
minItems: 1
items:
type: object
required:
- id
- cpdId
properties:
id:
description: >
Identifier of the external CP instance and the related information
instance.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
cpdId:
description: >
Identifier of the external CPD, VnfExtCpd, in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
cpProtocolInfo:
description: >
Network protocol information for this CP.
type: array
items:
$ref: "#/definitions/CpProtocolInfo"
extLinkPortId:
description: >
Identifier of the "extLinkPortInfo" structure inside the the
"extVirtualLinkInfo" structure. Shall be present if the CP is
associated to a link port.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
extVirtualLinkInfo:
description: >
Information about the external VLs the VNF instance is connected to.
type: array
items:
$ref: "#/definitions/ExtVirtualLinkInfo"
extManagedVirtualLinkInfo:
description: >
External virtual links the VNF instance is connected to.
type: array
items:
$ref: "#/definitions/ExtManagedVirtualLinkInfo"
monitoringParameters:
description: >
Active monitoring parameters.
type: array
items:
$ref: "#/definitions/MonitoringParameter"
localizationLanguage:
description: >
Information about localization language of the VNF (includes e.g.
strings in the VNFD). The localization languages supported by a VNF
can be declared in the VNFD, and localization language selection can
take place at instantiation time.
The value shall comply with the format defined in IETF RFC 5646.
type: string
vnfcResourceInfo:
description: >
Information about the virtualised compute and storage resources used
by the VNFCs of the VNF instance.
type: array
items:
$ref: "#/definitions/VnfcResourceInfo"
virtualLinkResourceInfo:
description: >
Information about the virtualised network resources used by the VLs
of the VNF instance.
type: array
items:
$ref: "#/definitions/VnfVirtualLinkResourceInfo"
virtualStorageResourceInfo:
description: >
Information on the virtualised storage resource(s) used as storage for the VNF instance.
type: array
items:
$ref: "#/definitions/VirtualStorageResourceInfo"
metadata:
description: >
Additional VNF-specific metadata describing the VNF instance.
Metadata that are writeable are declared in the VNFD.
This attribute can be modified with the PATCH method.
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
VNF-specific attributes that affect the lifecycle management of this
VNF instance by the VNFM, or the lifecycle management scripts.
Extensions that are writeable are declared in the VNFD.
This attribute can be modified with the PATCH method.
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
properties:
self:
description: URI of this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
indicators:
description: Indicators related to this VNF instance, if applicable.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
instantiate:
description: >
Link to the "instantiate" task resource, if the related operation
is possible based on the current status of this VNF instance
resource (i.e. VNF instance in NOT_INSTANTIATED state).
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
terminate:
description: >
Link to the "terminate" task resource, if the related operation
is possible based on the current status of this VNF instance
resource (i.e. VNF instance is in INSTANTIATED state).
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
scale:
description: >
Link to the "scale" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource (i.e. VNF instance
is in INSTANTIATED state).
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
scaleToLevel:
description: >
Link to the "scale_to_level" task resource, if the related
operation is supported for this VNF instance, and is possible
based on the current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
changeFlavour:
description: >
Link to the "change_flavour" task resource, if the related
operation is supported for this VNF instance, and is possible
based on the current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
heal:
description: >
Link to the "heal" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
operate:
description: >
Link to the "operate" task resource, if the related operation is
supported for this VNF instance, and is possible based on the
current status of this VNF instance resource
(i.e. VNF instance is in INSTANTIATED state).
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
changeExtConn:
description: >
Link to the "change_ext_conn" task resource, if the related
operation is possible based on the current status of this VNF
instance resource (i.e. VNF instance is in INSTANTIATED state).
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
VnfLinkPortInfo:
type: object
required:
- id
- resourceHandle
properties:
id:
description: >
Identifier of this link port as provided by the entity that has created the link port.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
resourceHandle:
description: >
Reference to the virtualised network resource realizing this link
port.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
cpInstanceId:
description: >
When the link port is used for external connectivity by the VNF,
this attribute represents the identifier of the external CP of the
VNF to be connected to this link port.
When the link port is used for internal connectivity in the VNF,
this attribute represents the VNFC CP to be connected to this link
port.
Shall be present when the link port is used for external
connectivity by the VNF.
May be present if used to reference a VNFC CP instance.
There shall be at most one link port associated with any external
connection point instance or internal connection point
(i.e. VNFC CP) instance.
The value refers to an "extCpInfo" item in the VnfInstance or a
"vnfcCpInfo" item of a "vnfcResouceInfo" item in the VnfInstance.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
VnfOperationalStateType:
type: string
enum:
- STARTED
- STOPPED
- ERROR
VnfVirtualLinkResourceInfo:
description: >
This type represents the information that allows addressing a virtualised
resource that is used by an internal VL instance in a VNF instance.
type: object
required:
- id
- vnfVirtualLinkDescId
- networkResource
properties:
id:
description: >
Identifier of this VnfVirtualLinkResourceInfo instance.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf"
vnfVirtualLinkDescId:
description: >
Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
$ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
networkResource:
description: >
Reference to the VirtualNetwork resource.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
reservationId:
description: >
The reservation identifier applicable to the resource. It shall be
present when an applicable reservation exists.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
vnfLinkPorts:
description: >
Links ports of this VL.
Shall be present when the linkPort is used for external connectivity
by the VNF (refer to VnfLinkPortInfo).
May be present otherwise.
type: array
items:
$ref: "#/definitions/VnfLinkPortInfo"
metadata:
description: >
Metadata about this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
CreateThresholdRequest:
description: >
This type represents a request to create a threshold.
type: object
required:
- objectInstanceId
- criteria
properties:
objectInstanceId:
description: >
Identifier of the VNF instance associated with this threshold.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
criteria:
description: >
Criteria that define this threshold.
$ref: "#/definitions/ThresholdCriteria"
CreatePmJobRequest:
description: >
This type represents a request to create a PM job.
type: object
required:
- criteria
properties:
objectInstanceIds:
description: >
Identifiers of the VNF instances for which performance information
is requested to be collected.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
criteria:
description: >
Criteria of the collection of performance information.
$ref: "#/definitions/PmJobCriteria"
CrossingDirectionType:
type: string
enum:
- UP
- DOWN
PerformanceInformationAvailableNotification:
description: >
This notification informs the receiver that performance information is
available.
The timing of sending this notification is determined by the capability
of the producing entity to evaluate the threshold crossing condition.
The notification shall be triggered by the VNFM when new performance
information collected by a PM job is available.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- objectInstanceId
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"PerformanceInformationAvailableNotification" for this notification
type.
type: string
enum:
- PerformanceInformationAvailableNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date and time of the generation of the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
objectInstanceId:
description: >
Identifier that identifies a VNF instance.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- pmJob
- performanceReport
properties:
subscription:
description: >
Link to the related subscription.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
objectInstance:
description: >
Link to the resource representing the VNF instance to which the
notified change applies. Shall be present if the VNF instance
information is accessible as a resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
pmJob:
description: >
Link to the resource that represents the PM job for which
performance information is available.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
performanceReport:
description: >
Link from which the available performance information of data
type "PerformanceReport" can be obtained. This link should point
to an "Individual performance report" resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
PmJob:
description: >
This type represents a PM job.
type: object
required:
- id
- objectInstanceIds
- criteria
properties:
id:
description: >
Identifier of this PM job.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
objectInstanceIds:
description: >
Identifiers of the VNF instances for which performance information
is collected.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
criteria:
description: >
Criteria of the collection of performance information.
$ref: "#/definitions/PmJobCriteria"
reports:
description: >
Information about available reports collected by this PM job.
type: object
required:
- href
- readyTime
- _links
properties:
href:
description: >
The Uri where the report can be obtained.
type: string
format: url
readyTime:
description: >
The time when the report was made available.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
expiryTime:
description: >
The time when the report will expire.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
fileSize:
description: >
The size of the report file in bytes, if known.
type: integer
# TODO: How to express unsigned int?
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
objects:
description: >
Links to resources representing the VNF instances for which
performance information is collected. Shall be present if
the VNF instance information is accessible as a resource.
type: array
items:
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
PmJobCriteria:
description: >
Criteria of the collection of performance information.
type: object
required:
- collectionPeriod
- reportingPeriod
properties:
performanceMetric:
description: >
This defines the types of performance metrics for the specified
object instances, as specified in ETSI GS NFV-IFA 027). At least one
of the two attributes (performance metric or group) shall be
present.
type: array
items:
type: string
performanceMetricGroup:
description: >
Group of performance metrics. A metric group is a pre-defined list
of metrics, known to the producer that it can decompose to
individual metrics.
At least one of the two attributes (performance metric or group)
shall be present.
type: array
items:
type: string
collectionPeriod:
description: >
Specifies the periodicity at which the producer will collect
performance information. The unit shall be seconds.
At the end of each reportingPeriod, the producer will inform the
consumer about availability of the performance data collected for
each completed collection period during this reportingPeriod. The
reportingPeriod should be equal to or a multiple of the
collectionPeriod. In the latter case, the performance data for the
collection periods within one reporting period are reported
together.
type: integer
# TODO: How to express unsigned int?
reportingPeriod:
description: >
Specifies the periodicity at which the producer will report to the
consumer. about performance information. The unit shall be seconds.
At the end of each reportingPeriod, the producer will inform the
consumer about availability of the performance data collected for
each completed collection period during this reportingPeriod. The
reportingPeriod should be equal to or a multiple of the
collectionPeriod. In the latter case, the performance data for the
collection periods within one reporting period are reported
together.
type: integer
# TODO: How to express unsigned int?
reportingBoundary:
description: >
Identifies a time boundary after which the reporting will stop.
The boundary shall allow a single reporting as well as periodic
reporting up to the boundary.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
PmNotificationsFilter:
description: >
This type represents a filter that can be used to subscribe for
notifications related to performance management events.
type: object
properties:
vnfInstanceSubscriptionFilter:
description: >
Filter criteria to select VNF instances about which to notify.
$ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
notificationTypes:
description: >
Match particular notification types.
Permitted values:
* ThresholdCrossedNotification
* PerformanceInformationAvailableNotification
The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to facilitate
automated code generation systems.
type: string
enum:
- ThresholdCrossedNotification
- PerformanceInformationAvailableNotification
PmSubscription:
description: >
This type represents a subscription.
type: object
required:
- id
- callbackUri
- _links
properties:
id:
description: >
Identifier that identifies the subscription.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular
notification is sent to the subscriber if the filter matches, or if
there is no filter.
$ref: "#/definitions/PmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
type: string
format: url
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
PmSubscriptionRequest:
description: >
This type represents a subscription request.
type: object
required:
- callbackUri
properties:
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular
notification is sent to the subscriber if the filter matches, or if
there is no filter.
$ref: "#/definitions/PmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
type: string
format: url
authentication:
description: >
Authentication parameters to configure the use of Authorization when
sending notifications corresponding to this subscription.
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
Threshold:
description: >
This type represents a threshold.
type: object
required:
- id
- objectInstanceId
- criteria
- _links
properties:
id:
description: >
Identifier of this threshold resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
objectInstanceId:
description: >
Identifier of the VNF instance associated with the threshold.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
criteria:
description: >
Criteria that define this threshold.
$ref: "#/definitions/ThresholdCriteria"
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
object:
description: >
Link to a resource representing the VNF instance for which
performance information is collected. Shall be present if the
VNF instance information is accessible as a resource.
ThresholdCriteria:
description: >
This type represents criteria that define a threshold.
type: object
required:
- performanceMetric
- thresholdType
properties:
performanceMetric:
description: >
Defines the performance metric associated with the
threshold, as specified in ETSI GS NFV-IFA 027).
type: string
thresholdType:
description: >
Type of threshold. This attribute determines which other attributes
are present in the data structure.
Permitted values:
* SIMPLE: Single-valued static threshold
In the present document, simple thresholds are defined. The
definition of additional threshold types is left for future
specification.
type: string
enum:
- SIMPLE
simpleThresholdDetails:
description: >
Details of a simple threshold. Shall be present if
thresholdType="SIMPLE".
type: object
required:
- thresholdValue
- hysteresis
properties:
thresholdValue:
description: >
The threshold value. Shall be represented as a floating point
number.
# TODO: This should be floating.
type: integer
hysteresis:
description: >
The hysteresis of the threshold. Shall be represented as a
non-negative floating point number.
A notification with crossing direction "UP" will be generated if
the measured value reaches or exceeds
"thresholdValue" + "hysteresis". A notification with crossing
direction "DOWN" will be generated if the measured value reaches
or undercuts "thresholdValue" - "hysteresis".
The hysteresis is defined to prevent storms of threshold
crossing notifications. When processing a request to create a
threshold, implementations should enforce a suitable minimum
value for this attribute (e.g. override the value or reject the
request).
# TODO: This should be floating.
type: integer
ThresholdCrossedNotification:
description: >
This type represents a notification that is sent when a threshold has
been crossed.
The notification shall be triggered by the VNFM when a threshold has
been crossed.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- thresholdId
- crossingDirection
- objectInstanceId
- performanceMetric
- performanceValue
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"ThresholdCrossedNotification" for this notification type.
type: string
enum:
- ThresholdCrossedNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date and time of the generation of the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
thresholdId:
description: >
Identifier of the threshold which has been crossed.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
crossingDirection:
description: >
An indication of whether the threshold was crossed in upward or
downward direction.
$ref: "#/definitions/CrossingDirectionType"
objectInstanceId:
description: >
Identifier that identifies a VNF instance.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
performanceMetric:
description: >
Performance metric associated with the threshold.
type: string
performanceValue:
description: >
Value of the metric that resulted in threshold crossing.
The type of the "performanceValue" attribute (i.e. scalar, structure
(Object in JSON), or array (of scalars, arrays or
structures / Objects)) is assumed to be defined in the external
measurement specification (see ETSI GS NFV-IFA 027).
type: object
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- threshold
properties:
subscription:
description: >
Link to the related subscription.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
objectInstance:
description: >
Link to the resource representing the VNF instance to which the
notified change applies. Shall be present if the VNF instance
information is accessible as a resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
threshold:
description: >
Link to the resource that represents the threshold that was
crossed.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"