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 15082 additions and 3663 deletions
openapi: 3.0.2
info:
title: SOL003 - API version interface
description: >
SOL003 - API version 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.0.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
paths:
/vrqan/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/vnffm/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/vnfind/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/vnflcm/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/vnfpm/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/grant/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/vnfpkgm/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
/vnfsnapshotpkgm/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
Link:
description: >
This type represents a link to a resource using an absolute URI.
type: object
required:
- href
properties:
href:
description: >
URI of another resource referenced from a resource.
Shall be an absolute URI (i.e. a UTI that contains {apiRoot}).
$ref: "#/definitions/Uri"
NotificationLink:
description: >
This type represents a link to a resource in a notification, using an absolute or relative URI.
type: object
required:
- href
properties:
href:
description: >
URI of a resource referenced from a notification.
Should be an absolute URI (i.e. a URI that contains
{apiRoot}), however, may be a relative URI (i.e. a URI
where the {apiRoot} part is omitted) if the {apiRoot}
information is not available.
$ref: "#/definitions/Uri"
KeyValuePairs:
description: >
This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON,
a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4
of IETF RFC 8259. In the following example, a list of key-value pairs with four keys ("aString", "aNumber",
"anArray" and "anObject") is provided to illustrate that the values associated with different keys can be of
different type.
type: object
ApiVersionInformation:
description: >
This type represents API version information.
type: object
required:
- uriPrefix
- apiVersions
properties:
uriPrefix:
description: >
Specifies the URI prefix for the API, in the following
form {apiRoot}/{apiName}/{apiMajorVersion}/.
type: string
apiVersions:
description: >
Version(s) supported for the API signaled by the
uriPrefix attribute.
type: array
items:
type: object
required:
- version
properties:
version:
description: >
Identifies a supported version. The value of the
version attribute shall be a version identifier as
specified in clause 9.1 (SOL013).
type: string
isDeprecated:
description: >
If such information is available, this attribute indicates
whether use of the version signaled by the version
attribute is deprecated (true) or not (false).
A deprecated version is still supported by the API producer but is recommended
not to be used any longer.
When a version is no longer supported, it does not appear in the response body.
type: boolean
retirementDate:
description: >
The date and time after which the API version will no
longer be supported.
This attribute may be included if the value of the
isDeprecated attribute is set to true and shall be
absent otherwise.
$ref: "#/definitions/DateTime"
VnfInstanceSubscriptionFilter:
description: >
This type represents subscription filter criteria to match VNF
instances.
* NOTE 1: The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances
that are based on certain VNFDs in a filter. They should not be used both in the same filter instance,
but one alternative should be chosen.
NOTE 2: The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF
instances in a filter. They should not be used both in the same filter instance, but one alternative
should be chosen.
type: object
anyOf:
- oneOf:
- required:
- vnfdId
- required:
- vnfProductsFromProviders
- oneOf:
- required:
- vnfInstanceIds
- required:
- vnfInstanceNames
properties:
vnfdIds:
description: >
If present, match VNF instances that were created based on a VNFD
identified by one of the vnfdId values listed in this attribute. See note 1.
type: array
items:
$ref: "#/definitions/Identifier"
vnfProductsFromProviders:
description: >
If present, match VNF instances that belong to VNF products from
certain providers. See note 1.
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 instances that belong to 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 instances that belong to VNF
products with certain versions and a certain product
name, from one particular provider.
type: array
items:
type: object
required:
- vnfSoftwareVersion
properties:
vnfSoftwareVersion:
description: >
Software version to match.
$ref: "#/definitions/Version"
vnfdVersions:
description: >
If present, match VNF instances that belong to VNF
products with certain VNFD versions, a certain
software version and a certain product name, from
one particular provider.
type: array
items:
$ref: "#/definitions/Version"
vnfInstanceIds:
description: >
If present, match VNF instances with an instance identifier listed
in this attribute. See note 2.
type: array
items:
$ref: "#/definitions/Identifier"
vnfInstanceNames:
description: >
If present, match VNF instances with a VNF Instance Name listed in
this attribute. See note 2.
type: array
items:
type: string
VimConnectionInfo:
description: >
This type represents parameters to connect to a VIM for managing the resources of a VNF instance.
This structure is used to convey VIM-related parameters over the Or-Vnfm interface. Additional parameters
for a VIM may be configured into the VNFM by means outside the scope of the present document and bound to
the identifier of that VIM.
* NOTE 1: If applicable, this attribute also provides information about the resourceGroupIds
that are accessible using a particular set of credentials. See definition of "resourceGroupId"
in clause 9.5.3.3.
* NOTE 2: Once the connectivity between VNFM and VIM is provided through a secure connection over HTTP
Secure (HTTP over SSL/TLS), and the connection might also be established through a VPN
(for example TLS-based VPN tunnelling) for site-to-site connection, the "accessInfo" JSON data
structure, and the sensitive data related information ("username"/"password" as required properties
for authentication purpose), will be transmitted as plain text through a TLS tunnel without additional
encoding/encryption before transmitting it, making the sensitive data visible to the endpoint. The
base64 encoded certificates are only used by the VNFM to verify the authenticity of the interface
endpoint of the VIM.
type: object
required:
- vimType
properties:
vimId:
description: >
The identifier of the VIM instance. This identifier is managed by the NFVO.
Shall be present to address additional information about the VIM if such information has been configured
into the VNFM by means outside the scope of the present document and should be absent otherwise.
$ref: "#/definitions/Identifier"
vimType:
description: >
Discriminator for the different types of the VIM information.
The value of this attribute determines the structure of the "interfaceInfo" and "accessInfo"
attributes, based on the type of the VIM.
The set of permitted values is expected to change over time as new types or versions of VIMs become
available.
The ETSI NFV registry of VIM-related information [i.3] provides access to information about
VimConnectionInfo definitions for various VIM types. The structure of the registry is defined in
annex C.
type: string
interfaceInfo:
description: >
Information about the interface or interfaces to the VIM, if applicable, such as the URI of an
interface endpoint to communicate with the VIM. The applicable keys are dependent on the content of
vimType.
Alternatively, such information may have been configured into the VNFM and bound to the vimId.
$ref: "#/definitions/KeyValuePairs"
accessInfo:
description: >
Authentication credentials for accessing the VIM and other access-related information such as tenants
or infrastructure resource groups (see note 1). The applicable keys are dependent on the content of
vimType.
If the VimConnectionInfo structure is part of an HTTP response message content, sensitive attributes
that are children of this attributes (such as passwords) shall not be included.
If the VimConnectionInfo structure is part of an HTTP request message content, sensitive attributes
that are children of this attribute (such as passwords) shall be present if they have not been
provisioned out of band.
See note 2.
$ref: "#/definitions/KeyValuePairs"
extra:
description: >
VIM type specific additional information. The applicable structure, and whether or not this attribute
is available, is dependent on the content of vimType.
$ref: "#/definitions/KeyValuePairs"
ResourceHandle:
required:
- resourceId
type: object
description: >
This type represents the information that allows addressing a virtualised resource that is used by a VNF instance.
Information about the resource is available from the VIM.
* NOTE: The value set of the "vimLevelResourceType" attribute is within the scope of the VIM or the resource
provider and can be used as information that complements the ResourceHandle. This value set is different from
the value set of the "type" attribute in the ResourceDefinition (refer to clause 9.5.3.2).
properties:
vimConnectionId:
description: >
Identifier of the VIM connection to manage the resource.
This attribute shall only be supported and present if VNF-related resource management in direct mode is applicable.
The applicable "VimConnectionInfo" structure, which is referenced by vimConnectionId, can be obtained from the
"vimConnectionInfo" attribute of the "VnfInstance" structure.
$ref: "#/definitions/Identifier"
resourceProviderId:
description: >
Identifier of the entity responsible for the management of the
resource. 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/Identifier"
resourceId:
description: >
Identifier of the resource in the scope of the VIM or the resource provider.
$ref: "#/definitions/IdentifierInVim"
vimLevelResourceType:
description: >
Type of the resource in the scope of the VIM or the resource provider. See note.
type: string
VnfExtCpData:
description: >
This type represents configuration information for external CPs created.
* NOTE 1: In case this identifier refers to a CPD with trunking enabled, the external CP instances created
from this CPD will represent ports in a trunk.
* NOTE 2: Within one VNF instance, all VNFC instances created from a particular VDU have the same external
connectivity. Thus, given a particular value of the "cpdId" attribute, there shall be one
"cpConfig" entry for each VNFC instance that has been or can be created from a VDU which includes
a CPD identified by the "cpdId" attribute. If the cpConfig represents a subport in a trunk,
all "cpConfig" entries in this list shall have the same segmentationId, which means they are
connected to the same set of external VLs via the trunk.
* NOTE 3: The map entry value shall be set to "null" in order to delete a "VnfExtCpConfig" entry identified
by a particular key value from the map, i.e. for the disconnection of an existing external
CP instance addressed by cpInstanceId in the deleted map entry from a particular external
virtual link, and deletion of that instance in case it represents a subport. Deleting the
last key from the map removes the affected instance of the "VnfExtCpData" structure from
its parent data structure.
* NOTE 4: If, as defined by the input parameters of a "ChangeVnfFlavour", "ChangeExtVnfConnectivity" or
"ChangeCurrentVnfPkg" operation or as part of the Grant response for any of these operations, a cpConfig
map entry identified by a particular map key value is moved into another "ExtVirtualLinkData" or
"VnfExtCpData" structure, this particular cpConfig map entry may be used by an external CP instance
different than the one that has used it before the operation, or by no external CP instance at all.
Renaming a CPD identifier during the "changeCurrentVnfPkg" operation does not count as moving the related
"cpConfig" map entries to a new "extCpData" structure.
type: object
required:
- cpdId
properties:
cpdId:
description: >
The identifier of the CPD in the VNFD. See note 1.
$ref: "#/definitions/IdentifierInVnfd"
cpConfig:
description: >
Map of instance data that need to be configured on the CP instances
created from the respective CPD.
The key of the map which identifies the individual VnfExtCpConfig entries is of type "IdentifierInVnf"
and is managed by the NFVO.
The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396).
See notes 2, 3 and 4.
type: object
additionalProperties:
$ref: "#/definitions/VnfExtCpConfig"
VnfExtCpConfig:
description: >
This type represents an externally provided link port or network address information per instance of an external connection
point. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the external
VL. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port to connect
the external CP to the external VL.
* NOTE: The following conditions apply to the attributes "linkPortId" and "cpProtocolData":
1) Void.
2) At least one of the "linkPortId" and "cpProtocolData" attributes shall be present for an external CP instance
representing a subport that is to be created, or an external CP instance that is to be created by creating the
corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing
external CP instance that is to be re-configured or added to a particular external virtual link.
3) If the "linkPortId" attribute is absent, the VNFM shall create a link port.
4) If the "cpProtocolData" attribute is absent, the "linkPortId" attribute shall be provided referencing a
precreated link port, and the VNFM can use means outside the scope of the present document to obtain the
pre-configured address information for the connection point from the resource representing the link port.
5) If both "cpProtocolData" and "linkportId" are provided, the NFVO shall ensure that the
cpProtocolData can be used with the pre-created link port referenced by "linkPortId".
anyOf:
- required:
- linkPortId
- required:
- cpProtocolData
- required:
- netAttDefResourceId
type: object
properties:
parentCpConfigId:
description: >
Value of the key that identifies the "VnfExtCpConfig" map entry which corresponds to the parent port of the
trunk. Reference to the "VnfExtCpConfig" entry that corresponds to the parent port of the trunk. Only present
in "VnfExtCpConfig" structures that provide configuration information for a CP which represents a sub-port in
a trunk, and if parent ports are supported.
$ref: "#/definitions/IdentifierInVnf"
linkPortId:
description: >
Identifier of a pre-configured link port to which the external CP
will be associated. See notes.
$ref: "#/definitions/Identifier"
createExtLinkPort:
description: >
Indicates to the VNFM the need to create a dedicated link port for the external CP.
If set to True, the VNFM shall create a link port.
If set to False, the VNFM shall not create a link port.
This attribute is only applicable for external CP instances without a floating IP address that expose a VIP CP
instance for which a dedicated IP address is allocated. It shall be present in that case and shall be absent otherwise.
type: boolean
cpProtocolData:
description: >
Parameters for configuring the network protocols on the link port that connects the CP to a VL. See note.
type: array
items:
$ref: "#/definitions/CpProtocolData"
CpProtocolData:
description: >
This type represents network protocol data.
* NOTE: 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: object
required:
- layerProtocol
properties:
layerProtocol:
description: >
Identifier of layer(s) and protocol(s).
Permitted values: IP_OVER_ETHERNET.
See note
type: string
enum:
- IP_OVER_ETHERNET
ipOverEthernet:
description: >
Network address data for IP over Ethernet to assign to the external CP
instance. Shall be present if layerProtocol is equal to
"IP_OVER_ETHERNET", and shall be absent otherwise.
$ref: "#/definitions/IpOverEthernetAddressData"
IpOverEthernetAddressData:
description: >
This type represents network address data for IP over Ethernet.
* NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present.
* NOTE 2: Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present.
* NOTE 3: If the CP instance represents a subport in a trunk, segmentationId shall be present.
Otherwise it shall not be present.
* NOTE 4: Depending on the NFVI networking infrastructure, the segmentationId may indicate the actual
network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header
of the packets or it may be an identifier used between the application and the NFVI networking
infrastructure to identify the network sub-interface of the trunk port in question. In the latter
case the NFVI infrastructure will map this local segmentationId to whatever segmentationId is
actually used by the NFVI’s transport technology.
type: object
anyOf:
- required:
- macAddress
- required:
- ipAddresses
oneOf:
- required:
- fixedAddresses
- required:
- numDynamicAddresses
- required:
- ipAddressRange
properties:
macAddress:
description: >
MAC address. If this attribute is not present, it shall be chosen by
the VIM. See note 1.
$ref: "#/definitions/MacAddress"
segmentationType:
description: >
Specifies the encapsulation type for the traffics coming in and out of the trunk subport.
Permitted values:
- VLAN: the subport uses VLAN as encapsulation type.
- INHERIT: the subport gets its segmentation type from the network it’s connected to.
This attribute may be present for CP instances that represent subports in a trunk and shall be
absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used.
type: string
enum:
- VLAN
- INHERIT
segmentationId:
description: >
Identification of the network segment to which the CP instance connects to. See note 3 and note 4.
type: string
ipAddresses:
description: >
List of IP addresses to assign to the CP instance. Each entry
represents IP address data for fixed or dynamic IP address
assignment per subnet.
If this attribute is not present, no IP address shall be assigned. See note 1.
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
fixedAddresses:
description: >
Fixed addresses to assign (from the subnet defined by
"subnetId" if provided). See note 2.
type: array
items:
$ref: "#/definitions/IpAddress"
numDynamicAddresses:
description: >
Number of dynamic addresses to assign (from the subnet defined
by "subnetId" if provided). See note 2.
type: integer
addressRange:
description: >
An IP address range to be used, e.g. in case of egress
connections.
In case this attribute is present, IP addresses from the range
will be used. See note 2.
type: object
required:
- minAddress
- maxAddress
properties:
minAddress:
description: >
Lowest IP address belonging to the range.
$ref: "#/definitions/IpAddress"
maxAddress:
description: >
Highest IP address belonging to the range.
$ref: "#/definitions/IpAddress"
subnetId:
description: >
Subnet defined by the identifier of the subnet resource in the
VIM.
In case this attribute is present, IP addresses from that
subnet will be assigned; otherwise, IP addresses not bound to
a subnet will be assigned.
$ref: "#/definitions/IdentifierInVim"
ExtVirtualLinkData:
description: >
This type represents an external VL.
* NOTE 1: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases:
1) For a VIP CP directly exposed as an extCP:
1.1) No dedicated IP address is allocated as VIP address, as indicated in the VNFD.
1.2) A dedicated IP address is allocated as VIP address, but the NFVO indicates that no port is needed
(createExtLinkPort in VnfExtCpConfig set to false).
2) For a VIP CP exposed as an extCP via a floating IP address:
2.1) No dedicated IP address is allocated as VIP address, as indicated in the VNFD, and the VNFC CP
associated to the VIP CP is also exposed via a floating IP address.
type: object
required:
- id
- resourceId
- extCps
properties:
id:
description: >
The identifier of the external VL instance. The identifier is
assigned by the NFV-MANO entity that manages this VL instance.
$ref: "#/definitions/Identifier"
vimConnectionId:
description: >
Identifier of the VIM connection to manage this resource. This
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable. See note 1.
$ref: "#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present
if VNF-related resource management in indirect mode is applicable.
The identification scheme is outside the scope of the present
document.
$ref: "#/definitions/Identifier"
resourceId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
$ref: "#/definitions/IdentifierInVim"
extCps:
description: >
External CPs of the VNF to be connected to this external VL. Entries in the list of external
CP data that are unchanged need not be supplied if the ExtVirtualLinkData structure is part
of a request or response that modifies the external connectivity.
type: array
items:
$ref: "#/definitions/VnfExtCpData"
extLinkPorts:
description: >
Externally provided link ports to be used to connect external connection points to this external VL. If this attribute is
not present, the VNFM shall create the link ports on the external VL unless the extCp exposes a VIP CP and a link port is
not needed for it based on the conditions defined below. See note.
type: array
items:
$ref: "#/definitions/ExtLinkPortData"
ScaleInfo:
description: >
This type represents the scale level of a VNF instance related to a scaling aspect.
type: object
required:
- aspectId
- scaleLevel
properties:
aspectId:
description: >
Identifier of the scaling aspect.
$ref: "#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId
attribute of the VnfInstance (e.g. during a "Change
current VNF package" operation or due to its final
failure).
$ref: "#/definitions/Identifier"
scaleToLevel:
description: >
Indicates the scale level. The minimum value shall be 0
and the maximum value shall be ≤ maxScaleLevel as
described in the VNFD.
$ref: "#/definitions/Identifier"
Identifier:
description: >
An identifier with the intention of being globally unique.
type: string
DateTime:
description: >
Date-time stamp.
Representation: String formatted according to IETF RFC 3339.
type: string
format: date-time
Uri:
description: >
String formatted according to IETF RFC 3986.
type: string
Boolean:
description: >
The Boolean is a data type having two values (true and false).
type: boolean
MacAddress:
description: >
A MAC address. Representation: string that consists of groups of two hexadecimal digits,
separated by hyphens or colons.
type: string
format: MAC
IpAddress:
description: >
An IPV4 or IPV6 address. Representation: In case of an IPV4 address, string that consists of four decimal
integers separated by dots, each integer ranging from 0 to 255. In case of an IPV6 address, string that
consists of groups of zero to four hexadecimal digits, separated by colons.
type: string
format: IP
Version:
description: >
A version.
type: string
String:
description: >
A string defined in IETF RFC 8259.
type: string
Number:
description: >
A number defined in IETF RFC 8259.
type: number
UnsignedInt:
description: >
Unsigned integer number
type: integer
minimum: 0
IdentifierInVnfd:
description: >
An identifier that is unique within a VNF descriptor.
type: string
IdentifierInVim:
description: >
An identifier maintained by the VIM or the CISM or other resource provider. It is
expected to be unique within the VIM instance.
type: string
IdentifierInVnf:
description: >
An identifier that is unique for the respective type within a VNF
instance, but may not be globally unique.
type: string
IdentifierLocal:
description: >
An identifier that is unique within a limited local scope other than above listed identifiers,
such as within a complex data structure or within a request-response pair.
Representation: string of variable length.
type: string
Checksum: #no definition found
description: >
Cheksum description
type: string
VnfLinkPortData:
description: >
This type represents an externally provided link port to be used to connect a VNFC connection point
to an exernally managed VL.
type: object
required:
- vnfLinkPortId
- resourceHandle
properties:
vnfLinkPortId:
description: >
Identifier of this link port as provided by the entity that has created the link port.
$ref: "#/definitions/Identifier"
resourceHandle:
description: >
Resource handle of the virtualised resource that realizes the link port.
$ref: "#/definitions/ResourceHandle"
ExtLinkPortData:
description: >
This type represents an externally provided link port to be used to
connect an external connection point to an external VL.
* NOTE: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute.
type: object
required:
- id
- resourceHandle
properties:
id:
description: >
Identifier of this link port as provided by the entity that has
created the link port.
$ref: "#/definitions/Identifier"
resourceHandle:
description: >
Reference to the virtualised resource realizing this link port.
$ref: "#/definitions/ResourceHandle"
trunkResourceId:
description: >
Identifier of the trunk resource in the VIM.
Shall be present if the present link port corresponds to the parent
port that the trunk resource is associated with. See note.
$ref: "#/definitions/IdentifierInVim"
GrantedLcmOperationType:
description: >
The enumeration GrantedLcmOperationType defines the permitted values
to represent VNF lifecycle operation types in grant requests.
Value | Description
------|------------
INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
SCALE | Represents the "Scale VNF" LCM operation.
SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
TERMINATE | Represents the "Terminate VNF" LCM operation.
HEAL | Represents the "Heal VNF" LCM operation.
OPERATE | Represents the "Operate VNF" LCM operation.
CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.
CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation.
CREATE_SNAPSHOT | Represents the "Create VNF snapshot" LCM operation.
REVERT_TO_SNAPSHOT | Represents the "Revert to VNF snapshot" LCM operation.
type: string
enum:
- INSTANTIATE
- SCALE
- SCALE_TO_LEVEL
- CHANGE_FLAVOUR
- TERMINATE
- HEAL
- OPERATE
- CHANGE_EXT_CONN
- CHANGE_VNFPKG
- CREATE_SNAPSHOT
- REVERT_TO_SNAPSHOT
LcmOperationType:
description: >
The enumeration LcmOpType defines the permitted values to represent
VNF lifecycle operation types in VNF lifecycle management operation
occurrence resources and VNF lifecycle management operation occurrence
notifications.
Value | Description
------|------------
INSTANTIATE | Represents the "Instantiate VNF" LCM operation.
SCALE | Represents the "Scale VNF" LCM operation.
SCALE_TO_LEVEL | Represents the "Scale VNF to Level" LCM operation.
CHANGE_FLAVOUR | Represents the "Change VNF Flavour" LCM operation.
TERMINATE | Represents the "Terminate VNF" LCM operation.
HEAL | Represents the "Heal VNF" LCM operation.
OPERATE | Represents the "Operate VNF" LCM operation.
CHANGE_EXT_CONN | Represents the "Change external VNF connectivity" LCM operation.
MODIFY_INFO | Represents the "Modify VNF Information" LCM operation.
CREATE_SNAPSHOT | Represents the "Create VNF Snapshot" LCM operation.
REVERT_TO_SNAPSHOT | Represents the “Revert-To VNF Snapshot" LCM operation.
CHANGE_VNFPKG | Represents the "Change current VNF package" LCM operation.
type: string
enum:
- INSTANTIATE
- SCALE
- SCALE_TO_LEVEL
- CHANGE_FLAVOUR
- TERMINATE
- HEAL
- OPERATE
- CHANGE_EXT_CONN
- MODIFY_INFO
- CREATE_SNAPSHOT
- REVERT_TO_SNAPSHOT
- CHANGE_VNFPKG
ProblemDetails:
#SOL003 location: 4.3.5.3
description: >
The definition of the general "ProblemDetails" data structure from
IETF RFC 7807 is reproduced inthis structure. Compared to the
general framework defined in IETF RFC 7807, the "status" and
"detail" attributes are mandated to be included by the present document,
to ensure that the response contains additional textual information about
an error. IETF RFC 7807 foresees extensibility of the
"ProblemDetails" type. It is possible that particular APIs in the present
document, or particular implementations, define extensions to define
additional attributes that provide more information about the error.
The description column only provides some explanation of the meaning to
Facilitate understanding of the design. For a full description, see
IETF RFC 7807.
type: object
required:
- status
- detail
properties:
type:
description: >
A URI reference according to IETF RFC 3986 that identifies the
problem type. It is encouraged that the URI provides human-readable
documentation for the problem (e.g. using HTML) when dereferenced.
When this member is not present, its value is assumed to be
"about:blank".
type: string
format: URI
title:
description: >
A short, human-readable summary of the problem type. It should not
change from occurrence to occurrence of the problem, except for
purposes of localization. If type is given and other than
"about:blank", this attribute shall also be provided.
A short, human-readable summary of the problem
type. It SHOULD NOT change from occurrence to occurrence of the
problem, except for purposes of localization (e.g., using
proactive content negotiation; see [RFC7231], Section 3.4).
type: string
status:
description: >
The HTTP status code for this occurrence of the problem.
The HTTP status code ([RFC7231], Section 6) generated by the origin
server for this occurrence of the problem.
type: integer
detail:
description: >
A human-readable explanation specific to this occurrence of the
problem.
type: string
instance:
description: >
A URI reference that identifies the specific occurrence of the
problem. It may yield further information if dereferenced.
type: string
format: URI
#TODO: How to express "any additional attributes"?
SubscriptionAuthentication:
description: >
* NOTE: The clientId and clientPassword passed in a subscription shall not be the same as the clientId and
clientPassword that are used to obtain authorization for API requests. Client credentials may differ between
subscriptions. The value of clientPassword should be generated by a random process
type: object
required:
- authType
properties:
authType:
description: >
Defines the types of Authentication / Authorization which the API
consumer is willing to accept when receiving a notification.
Permitted values:
* BASIC: In every HTTP request to the notification endpoint, use
HTTP Basic authentication with the client credentials.
* OAUTH2_CLIENT_CREDENTIALS: In every HTTP request to the
notification endpoint, use an OAuth 2.0 Bearer token, obtained
using the client credentials grant type.
* TLS_CERT: Every HTTP request to the notification endpoint is sent
over a mutually authenticated TLS session, i.e. not only the
server is authenticated, but also the client is authenticated
during the TLS tunnel setup.
type: array
items:
type: string
enum:
- BASIC
- OAUTH2_CLIENT_CREDENTIALS
- TLS_CERT
paramsBasic:
description: >
Parameters for authentication/authorization using BASIC.
Shall be present if authType is "BASIC" and the contained
information has not been provisioned out of band.
Shall be absent otherwise.
type: object
properties:
userName:
description: >
Username to be used in HTTP Basic authentication. Shall be
present if it has not been provisioned out of band.
type: string
password:
description: >
Password to be used in HTTP Basic authentication. Shall be
present if it has not been provisioned out of band.
type: string
paramsOauth2ClientCredentials:
description: >
Parameters for authentication/authorization using
OAUTH2_CLIENT_CREDENTIALS.
Shall be present if authType is "OAUTH2_CLIENT_CREDENTIALS" and the
contained information has not been provisioned out of band.
Shall be absent otherwise.
type: object
properties:
clientId:
description: >
Client identifier to be used in the access token request of the
OAuth 2.0 client credentials grant type.
Shall be present if it has not been provisioned out of band. See note.
type: string
clientPassword:
description: >
Client password to be used in the access token request of the
OAuth 2.0 client credentials grant type.
Shall be present if it has not been provisioned out of band. See note.
type: string
tokenEndpoint:
description: >
The token endpoint from which the access token can be obtained.
Shall be present if it has not been provisioned out of band.
$ref: "#/definitions/Uri"
LcmCoordResultType:
description: >
The enumeration LcmCoordResultType defines the permitted values
to represent the result of executing an LCM coordination action.
The coordination result also implies the action to be performed by
the VNFM as the follow-up to this coordination.
Value | Description
------|------------
CONTINUE | The related LCM operation shall be continued, staying in the state "PROCESSING".
ABORT | The related LCM operation shall be aborted by transitioning into the state "FAILED_TEMP".
CANCELLED | The coordination action has been cancelled upon request of the API consumer, i.e. the VNFM.
The related LCM operation shall be aborted by transitioning into the state "FAILED_TEMP".
type: string
enum:
- CONTINUE
- ABORT
- CANCELLED
LcmOperationForCoordType:
description: >
The enumeration LcmOperationForCoordType defines the permitted values to
represent VNF lifecycle operation types in VNF LCM operation coordination actions.
* INSTANTIATE: Represents the "Instantiate VNF" LCM operation.
* SCALE: Represents the "Scale VNF" LCM operation.
* SCALE_TO_LEVEL: Represents the "Scale VNF to Level" LCM operation.
* CHANGE_FLAVOUR: Represents the "Change VNF Flavour" LCM operation.
* TERMINATE: Represents the "Terminate VNF" LCM operation.
* HEAL: Represents the "Heal VNF" LCM operation.
* OPERATE: Represents the "Operate VNF" LCM operation.
* CHANGE_EXT_CONN: Represents the "Change external VNF connectivity" LCM operation.
* MODIFY_INFO: Represents the "Modify VNF Information" LCM operation.
* CREATE_SNAPSHOT: Represents the "Create VNF Snapshot" LCM operation.
* REVERT_TO_SNAPSHOT: Represents the "Revert To VNF Snapshot" LCM operation.
* CHANGE_VNFPKG: Represents the "Change current VNF package" LCM operation.
type: string
enum:
- INSTANTIATE
- SCALE
- SCALE_TO_LEVEL
- CHANGE_FLAVOUR
- TERMINATE
- HEAL
- OPERATE
- CHANGE_EXT_CONN
- MODIFY_INFO
- CREATE_SNAPSHOT
- REVERT_TO_SNAPSHOT
- CHANGE_VNFPKG
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.3.4"
title: DRAFT - SOL003 - VNF Fault Management interface
description: >
DRAFT - SOL003 - VNF Fault Management interface
title: SOL003 - VNF Fault Management interface
description: |
SOL003 - VNF Fault 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: "1.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
basePath: "/vnffm/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/vnffm/v1
- url: https://127.0.0.1/vnffm/v1
paths:
###############################################################################
# Alarms #
###############################################################################
'/alarms':
#SOL003 location: 7.4.2
###############################################################################
# API Versions #
###############################################################################
/api_versions:
$ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
###############################################################################
# Alarms #
###############################################################################
/alarms:
#SOL003 location: 7.4.2
get:
description: >
The client can use this method to retrieve information about the alarm
list.
description: |
The API consumer can use this method to retrieve information about the alarm list. See clause 7.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: 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/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: '#/components/parameters/filter_alarm_list'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
responses:
200:
description: >
The request has succeeded.
The response body shall contain the list of related alarms.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../definitions/SOL003_def.yaml#/definitions/Alarm"
$ref: '#/components/responses/Alarms.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 alarm #
###############################################################################
'/alarms/{alarmId}':
#SOL003 location: 7.4.3
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
###############################################################################
# Individual alarm #
###############################################################################
/alarms/{alarmId}:
#SOL003 location: 7.4.3
parameters:
- name: alarmId
description: >
Identifier of the alarm.
This identifier can be retrieved from the "id" attribute of the
"alarm" attribute in the AlarmNotification or
AlarmClearedNotification. It can also be retrieved from the "id"
attribute of the applicable array element in the payload body of the
response to a GET request to the "Alarms" resource.
in: path
type: string
required: true
- $ref: '#/components/parameters/AlarmId'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
get:
description: >
The client can use this method to read an individual alarm.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
description: |
The API consumer can use this method to read an individual alarm. See clause 7.4.3.3.2.
responses:
200:
description: >
Information about an individual alarm was read successfully.
The response body shall contain a representation of the individual
alarm.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../definitions/SOL003_def.yaml#/definitions/Alarm"
$ref: '#/components/responses/IndividualAlarm.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"
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
patch:
description: >
This method modifies an individual alarm resource.
parameters:
- name: AlarmModifications
description: The VNF creation parameters
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications"
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The Content-Type header shall be set to
"application/merge-patch+json" according to
IETF RFC 7396.
in: header
required: true
type: string
enum: ["application/merge-patch+json"]
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
description: |
This method modifies an "Individual alarm" resource. See clause 7.4.3.3.4.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/If-Unmodified-Since
- $ref: ../../components/SOL003_params.yaml#/components/parameters/If-Match
requestBody:
$ref: '#/components/requestBodies/IndividualAlarmRequest'
responses:
200:
description: >
The request was accepted and completed. The response body shall
contain attribute modifications for an ‘Individual alarm’
resource.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications"
$ref: '#/components/responses/IndividualAlarm.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
409:
$ref: "responses/VNFFaultManagement_resp.yaml#/responses/409-alarm-state-conflict"
$ref: '#/components/responses/IndividualAlarm.Patch.409'
412:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
$ref: '#/components/responses/IndividualAlarm.Patch.412'
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"
###############################################################################
# Subscriptions #
###############################################################################
'/subscriptions':
#SOL003 location: 7.4.4
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
###############################################################################
# Subscriptions #
###############################################################################
/subscriptions:
#SOL003 location: 7.4.4
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
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: FmSubscriptionRequest
description: The VNF creation parameters
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest"
- name: Accept
description: >
Content-Types that are acceptable for the response.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Content-Type
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
in: header
required: true
type: string
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
description: |
The POST method creates a new subscription. See clause 7.4.4.3.1.
requestBody:
$ref: '#/components/requestBodies/FmSubscriptionRequest'
responses:
201:
description: >
The subscription was created successfully. The response body shall
contain a representation of the created subscription resource.
The HTTP response shall include a "Location:" HTTP header that
points to the created subscription resource.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
Location:
description: >
The resource URI of the created subscription resource.
type: string
format: url
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
$ref: '#/components/responses/Subscriptions.Post.200'
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#/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/Subscriptions.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 the list of active
subscriptions for VNF alarms subscribed by the client. It can be used
e.g. for resynchronization after error situations.
description: |
The API consumer can use this method to retrieve the list of active subscriptions for VNF alarms subscribed
by the API consumer. It can be used e.g. for resynchronization after error situations. See clause 7.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: 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/parameters/filter_subscriptions'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
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
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
$ref: '#/components/responses/Subscriptions.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"
412:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
$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 subscription #
###############################################################################
'/subscriptions/{subscriptionId}':
#SOL003 location: 7.4.5
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
###############################################################################
# Individual subscription #
###############################################################################
/subscriptions/{subscriptionId}:
#SOL003 location: 7.4.5
parameters:
- name: subscriptionId
description: >
Identifier of this subscription.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new subscription resource. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
- $ref: '#/components/parameters/SubscriptionId'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
get:
description: >
The client can use this method for reading an individual subscription
for VNF alarms subscribed by the client.
description: |
The API consumer can use this method for reading an individual subscription for VNF
alarms subscribed by the API consumer. See clause 7.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: 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/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
responses:
200:
description: >
The operation has completed successfully.
The response body shall contain a representation of the
subscription resource.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
$ref: '#/components/responses/IndividualSubscription.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"
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
delete:
description: >
This method terminates an individual subscription.
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
description: |
This method terminates an individual subscription. See clause 7.4.5.3.5.
responses:
204:
description: >
The subscription resource was deleted successfully.
The response body shall be empty.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
$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#/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"
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
components:
parameters:
filter_alarm_list:
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.
The following attribute names shall be supported by the VNFM in the attribute based filtering
expression: id, managedObjectId,
rootCauseFaultyResource/faultyResourceType, eventType, perceivedSeverity,
probableCause.
in: query
required: false
schema:
type: string
filter_subscriptions:
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 FmSubscription and in data types
referenced from it shall be supported by the VNFM in the filter
expression.
in: query
required: false
schema:
type: string
AlarmId:
name: alarmId
in: path
description: |
Identifier of the alarm.
This identifier can be retrieved from the "id" attribute of the "alarm" attribute in the AlarmNotification or
AlarmClearedNotification. It can also be retrieved from the "id" attribute of the applicable array element in
the message content of the response to a GET request to the "Alarms" resource.
required: true
style: simple
explode: 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:
IndividualAlarmRequest:
description: The VNF creation parameters
content:
application/json:
schema:
$ref: definitions/SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications
required: true
FmSubscriptionRequest:
description: The VNF creation parameters
content:
application/json:
schema:
$ref: definitions/SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscriptionRequest
required: true
responses:
Alarms.Get.200:
description: |
200 OK
Shall be returned when information about zero or more alarms has been queried successfully.
The response body shall contain in an array the representations of zero or more alarms as
defined in clause 7.5.2.4.
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
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:
$ref: "./definitions/SOL003VNFFaultManagement_def.yaml#/definitions/Alarm"
IndividualAlarm.Get.200:
description: |
200 OK
Shall be returned when information about an individual alarm has been read successfully.
The response body shall contain a representation of the individual alarm
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
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/SOL003VNFFaultManagement_def.yaml#/definitions/Alarm"
IndividualAlarm.Patch.200:
description: |
200 OK
Shall be returned when the request has been accepted and completed.
The response body shall contain attribute modifications for an "Individual alarm"
resource (see clause 7.5.2.4).
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
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/SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications"
IndividualAlarm.Patch.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 "Individual alarm"
resource.
Typically, this is due to the fact that the alarm is
already in the state that is requested to be set (such
as trying to acknowledge an already-acknowledged
alarm).
The response body shall contain a ProblemDetails
structure, in which the "detail" attribute 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"
IndividualAlarm.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:
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
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
FM subscriptions as defined in clause 7.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
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:
$ref: "definitions/SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
Subscriptions.Post.200:
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
"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
Location:
description: |
The resource URI of the created subscription resource.
style: simple
explode: false
schema:
type: string
format: url
content:
application/json:
schema:
$ref: "definitions/SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
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 VNFM is to not create
redundant subscriptions.
The HTTP response shall include a "Location"
HTTP header that contains the resource URI of
the existing "Individual subscription" resource.
The response body shall be empty.
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 subscription resource.
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 VNFM has
tested the Notification endpoint as described in clause 7.4.6.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"
IndividualSubscription.Get.200:
description: |
200 OK
The operation has completed successfully.
The response body shall contain a representation of the
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/SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription"
IndividualSubscription.Delete.204:
description: |
204 NO CONTENT
Shall be returned when the "Individual subscription" resource has been deleted 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
content: {}
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
AlarmClearedNotification:
Alarm:
description: >
This type represents an alarm cleared notification about VNF faults.
The notification shall be triggered by the VNFM when an alarm has been
cleared.
The alarm data type encapsulates information about an alarm.
NOTE 1: For an alarm about upcoming impact due to NFVI operation and maintenance (i.e. the attribute
"faultType" has the value "NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE"), the attribute
"rootCauseFaultyResource" indicates a resource to be impacted. Further information on the upcoming
impact (e.g. group of impacted resources, time of impact) is provided in the attribute "faultDetails".
NOTE 2: When alarms are due to upcoming NFVI operation and maintenance (i.e. the attribute "faultType" has the
value "NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE"), the attribute "faultDetails" shall include
information about the anticipated time of the maintenance. See provisions under the present table.
If the attribute "faultType" has the value "NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE", the following provisions
apply for the values of the attribute "faultDetails" related to changes in the state of virtualised resources:
- One of the entries in the array shall provide information about the anticipated time of maintenance in the
following format: "anticipatedTime=$time", wherein "$time" shall be formatted as a "DateTime", as specified
in ETSI GS NFV-SOL 013 [8].
- One of the entries in the array shall provide identification information about the affinity/anti-affinity
group defined in the VNFD that is associated to the affected virtualised resource indicated by
"rootCauseFaultyResource" in the following format: "affinityOrAntiAffinityGroupId=$group", wherein
"$group" shall be equal to the "affinityOrAntiAffinityGroupId" value in the corresponding "VduProfile" (for a
VNFC/COMPUTE affected resource) or "VirtualLinkProfile" for a VL/NETWORK affected resource) in the
VNFD, which is mapped by the VNFM to the virtualised resource group identifier in the virtualised resource
change notification received by the VNFM from the VIM.
type: object
required:
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarmId
- alarmClearedTime
- managedObjectId
- alarmRaisedTime
- ackState
- perceivedSeverity
- eventTime
- eventType
- probableCause
- isRootCause
- _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:
Identifier of this Alarm.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
managedObjectId:
description: >
Discriminator for the different notification types. Shall be set to
"AlarmClearedNotification" for this notification type.
type: string
enum:
- AlarmClearedNotification
subscriptionId:
Identifier of the affected VNF instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
rootCauseFaultyResource:
description: >
Identifier of the subscription that this notification relates to.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
The virtualised resources that are causing the VNF fault.
Shall be present if the alarm affects virtualised resources. See note 1.
$ref: "#/definitions/FaultyResourceInfo"
alarmRaisedTime:
description: >
Date-time of the generation of the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
alarmId:
Time stamp indicating when the alarm is raised by the managed
object.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
alarmChangedTime:
description: >
Alarm identifier.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
Time stamp indicating when the alarm was last changed. It shall be
present if the alarm has been updated.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
alarmClearedTime:
description: >
The time stamp indicating when the alarm was cleared.
Time stamp indicating when the alarm was cleared. It shall be
present if the alarm has been cleared.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
alarmAcknowledgedTime:
description: >
Time stamp indicating when the alarm was acknowledged.
It shall be present if the alarm has been acknowledged.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
ackState:
description: >
Acknowledgement state of the alarm.
Permitted values:
* UNACKNOWLEDGED
* ACKNOWLEDGED.
type: string
enum:
- UNACKNOWLEDGED
- ACKNOWLEDGED
perceivedSeverity:
description: >
Perceived severity of the managed object failure.
$ref: "#/definitions/PerceivedSeverityType"
eventTime:
description: >
Time stamp indicating when the fault was observed. See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
eventType:
description: >
Type of event.
$ref: "#/definitions/EventType"
faultType:
description: >
Additional information to clarify the type of the fault.
If the alarm is related to changes in the state of virtualised resources
due to NFVI operation and maintenance, this attribute shall be set to
"NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE".
type: string
probableCause:
description: >
Information about the probable cause of the fault.
If the attribute "faultType" has the value “NFVI_OAM_VIRTUALISED_RESOURCE_STATE_CHANGE”,
the permitted values are:
- "NFVI_COMPONENT_MAINTENANCE": Maintenance of NFVI components, e.g.
physical maintenance/repair, hypervisor software updates, etc.
- "NFVI_COMPONENT_EVACUATION": Evacuation of physical hosts.
- "NFVI_COMPONENT_OPTIMIZATION": Operation and management of NFVI resources, e.g.
to support energy efficiency or resource usage optimization.
type: string
isRootCause:
description: >
Attribute indicating if this fault is the root for other correlated
alarms. If true, then the alarms listed in the attribute
"correlatedAlarmIds" are caused by this fault.
type: boolean
correlatedAlarmIds:
description: >
List of identifiers of other alarms correlated to this fault.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
faultDetails:
description: >
Provides additional information about the fault. See notes 1 and 2.
type: array
items:
type: string
_links:
description: >
Links to resources related to this notification.
Links for this resource.
type: object
required:
- subscription
- alarm
properties:
subscription:
required:
- self
properties:
self:
description: >
Link to the related subscription.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
alarm:
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
objectInstance:
description: >
Link to the resource that represents the related alarm.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
Link to the resource representing the VNF instance to which the
notified alarm is correlated. Shall be present if the VNF
instance information is accessible as a resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
FmSubscriptionRequest:
description: >
This type represents a subscription request related to notifications
about VNF faults.
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/FmNotificationsFilter"
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 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"
AlarmListRebuiltNotification:
FmSubscription:
description: >
This type represents a notification that the alarm list has been
rebuilt, e.g. if the VNFM detects its storage holding the alarm
list is corrupted.
The notification shall be triggered by the VNFM when the alarm list has
been rebuilt.
This type represents a subscription related to notifications about VNF
faults.
type: object
required:
required:
- id
- notificationType
- subscriptionId
- timeStamp
- callbackUri
- _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
"AlarmListRebuiltNotification" for this notification type.
type: string
enum:
- AlarmListRebuiltNotification
subscriptionId:
Identifier of this "Individual subscription" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
filter:
description: >
Identifier of the subscription that this notification relates to.
$ref: "SOL002SOL003_def.yaml#/definitions/Identifier"
timeStamp:
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/FmNotificationsFilter"
callbackUri:
description: >
Date-time of the generation of the notification.
$ref: "SOL002SOL003_def.yaml#/definitions/DateTime"
The URI of the endpoint to send the notification to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
_links:
description: >
Links to resources related to this notification.
Links for this resource.
type: object
required:
- subscription
- alarms
properties:
subscription:
description: >
Link to the related subscription.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
alarms:
required:
- self
properties:
self:
description: >
Link to the alarm list, i.e. the "Alarms" resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
AlarmModifications:
description: >
......@@ -124,15 +217,17 @@ definitions:
type: object
required:
- ackState
properties:
properties:
ackState:
description: >
New value of the "ackState" attribute in "Alarm".
Permitted values:
* ACKNOWLEDGED
* UNACKNOWLEDGED
type: string
enum:
- ACKNOWLEDGED
- UNACKNOWLEDGED
EventType:
description: >
......@@ -151,7 +246,7 @@ definitions:
* EQUIPMENT_ALARM: An alarm of this type is associated with an equipment
fault (ITU-T Recommendation X.733).
type: string
enum:
enum:
- COMMUNICATIONS_ALARM
- PROCESSING_ERROR_ALARM
- ENVIRONMENTAL_ALARM
......@@ -163,15 +258,15 @@ definitions:
This type represents the faulty virtual resources that have a negative
impact on a VNF.
type: object
required:
required:
- faultyResource
- faultyResourceType
properties:
properties:
faultyResource:
description: >
Information that identifies the faulty resource instance and its
managing entity.
$ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
faultyResourceType:
description: >
Type of the faulty resource.
......@@ -182,36 +277,36 @@ definitions:
The enumeration FaultyResourceType represents those types of faulty
resource.
type: string
enum:
enum:
- COMPUTE
- STORAGE
- NETWORK
FmNotificationsFilter:
description: >
This type represents a subscription filter related to notifications
about VNF faults.
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 filter related to notifications about VNF faults.
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: The permitted values of the "notificationTypes" attribute are spelled exactly as the names
of the notification types to facilitate automated code generation systems.
type: object
properties:
vnfInstanceSubscriptionFilter:
description: >
Filter criteria to select VNF instances about which to notify.
$ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
notificationTypes:
description: >
Match particular notification types.
Match particular notification types.
Permitted values:
* AlarmNotification
* AlarmClearedNotification
* AlarmListRebuiltNotification
The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to
facilitate automated code generation systems.
- AlarmNotification
- AlarmClearedNotification
- AlarmListRebuiltNotification
See note.
type: array
items:
type: string
......@@ -224,92 +319,26 @@ definitions:
Match VNF alarms with a faulty resource type listed in this
attribute.
type: array
items:
$ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FaultyResourceType"
items:
$ref: "#/definitions/FaultyResourceType"
perceivedSeverities:
description: >
Match VNF alarms with a perceived severity listed in this attribute.
type: array
items:
$ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/PerceivedSeverityType"
items:
$ref: "#/definitions/PerceivedSeverityType"
eventTypes:
description: >
Match VNF alarms with an event type listed in this attribute.
type: array
items:
$ref: "SOL002SOL003VNFFaultManagement_def.yaml#/definitions/EventType"
items:
$ref: "#/definitions/EventType"
probableCauses:
description: >
Match VNF alarms with a probable cause listed in this attribute.
type: array
items:
type: string
FmSubscription:
description: >
This type represents a subscription related to notifications about VNF
faults.
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/FmNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
type: string
format: url
_links:
description: >
Links for this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "SOL002SOL003_def.yaml#/definitions/Link"
FmSubscriptionRequest:
description: >
This type represents a subscription request related to notifications
about VNF faults.
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/FmNotificationsFilter"
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"
items:
type: string
PerceivedSeverityType:
description: >
......@@ -343,10 +372,10 @@ definitions:
managed object that have the same Alarm type, Probable cause and
Specific problems (if given) (ITU-T Recommendation X.733).
type: string
enum:
enum:
- CRITICAL
- MAJOR
- MINOR
- WARNING
- INDETERMINATE
- CLEARED
- CLEARED
\ No newline at end of file
responses:
409-alarm-state-conflict:
description: >
The operation cannot be executed currently, due to a conflict with the
state of the "Individual alarm" resource.
Typically, this is due to the fact that the alarm is already in the
state that is requested to be set (such as trying to acknowledge an
already-acknowledged alarm).
The response body shall contain a ProblemDetails structure, in which the
"detail" attribute should convey more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.3.4"
title: DRAFT - SOL003 - VNF Fault Management Notification interface
description: >
DRAFT - SOL003 - VNF Fault Management Notification interface
title: SOL003 - VNF Fault Management Notification interface
description: |
SOL003 - VNF Fault 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"
version: 1.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1
basePath: "/callback/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/callback/v1
- url: https://127.0.0.1/callback/v1
paths:
###############################################################################
# Notification endpoint AlarmNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification':
###############################################################################
# Notification endpoint AlarmNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification:
#SOL003 location: 7.4.6
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method notifies a VNF alarm or that the alarm list has been
rebuilt.
description: |
The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
previously created an "Individual subscription" resource with a matching filter. See clause 7.4.6.3.1.
parameters:
- name: AlarmNotification
description: >
Information of a VNF alarm.
in: body
required: true
schema:
$ref: "../definitions/SOL003_def.yaml#/definitions/AlarmNotification"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/AlarmNotification'
responses:
204:
description: >
The notification was delivered successfully.
The response body shall be empty.
$ref: '#/components/responses/AlarmNotification.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 subscription. See clause 7.4.6.3.2.
responses:
204:
description: >
The notification endpoint was tested successfully.
The response body shall be empty.
$ref: '#/components/responses/AlarmNotification.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 AlarmClearedNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmClearedNotification':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
###############################################################################
# Notification endpoint AlarmClearedNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification:
#SOL003 location: 7.4.6
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method notifies a VNF alarm or that the alarm list has been
rebuilt.
description: |
The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
previously created an "Individual subscription" resource with a matching filter. See clause 7.4.6.3.1.
parameters:
- name: AlarmClearedNotification
description: >
Information of the clearance of a VNF alarm
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmClearedNotification"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/AlarmClearedNotification'
responses:
204:
description: >
The notification was delivered successfully.
The response body shall be empty.
$ref: '#/components/responses/AlarmClearedNotification.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 subscription. See clause 7.4.6.3.2.
responses:
204:
description: >
The notification endpoint was tested successfully.
The response body shall be empty.
$ref: '#/components/responses/AlarmClearedNotification.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 AlarmListRebuiltNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-AlarmListRebuiltNotification':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
###############################################################################
# Notification endpoint AlarmListRebuiltNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification:
#SOL003 location: 7.4.6
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
post:
description: >
The POST method notifies a VNF alarm or that the alarm list has been
rebuilt.
description: |
The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have
previously created an "Individual subscription" resource with a matching filter. See clause 7.4.6.3.1.
parameters:
- name: AlarmListRebuiltNotification
description: >
Information that the alarm list has been rebuilt by the VNFM
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmListRebuiltNotification"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/AlarmListRebuiltNotification'
responses:
204:
description: >
The notification was delivered successfully.
The response body shall be empty.
$ref: '#/components/responses/AlarmListRebuiltNotification.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 subscription. See clause 7.4.6.3.2.
responses:
204:
description: >
The notification endpoint was tested successfully.
The response body shall be empty.
$ref: '#/components/responses/AlarmListRebuiltNotification.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:
AlarmNotification:
description: Information of a VNF alarm.
content:
application/json:
schema:
$ref: "definitions/SOL003VNFFaultManagementNotification_def.yaml#/definitions/AlarmNotification"
required: true
AlarmClearedNotification:
description: Information of the clearance of a VNF alarm
content:
application/json:
schema:
$ref: "definitions/SOL003VNFFaultManagementNotification_def.yaml#/definitions/AlarmClearedNotification"
required: true
AlarmListRebuiltNotification:
description: Information that the alarm list has been rebuilt by the VNFM
content:
application/json:
schema:
$ref: "definitions/SOL003VNFFaultManagementNotification_def.yaml#/definitions/AlarmListRebuiltNotification"
required: true
responses:
AlarmNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered 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
AlarmNotification.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
AlarmClearedNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered 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
AlarmClearedNotification.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
AlarmListRebuiltNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered 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
AlarmListRebuiltNotification.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:
AlarmNotification:
description: >
This type represents an alarm notification about VNF faults.
This notification shall be triggered by the VNFM when:
* An alarm has been created.
* An alarm has been updated, e.g. if the severity of the alarm has
changed.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarm
- _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
"AlarmNotification" for this notification type.
type: string
enum:
- AlarmNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
alarm:
description: >
Information about an alarm including AlarmId, affected VNF
identifier, and FaultDetails.
$ref: "../../VNFFaultManagement/definitions/SOL003VNFFaultManagement_def.yaml#/definitions/Alarm"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
AlarmClearedNotification:
description: >
This type represents an alarm cleared notification about VNF faults.
The notification shall be triggered by the VNFM when an alarm has been
cleared.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- alarmId
- alarmClearedTime
- _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
"AlarmClearedNotification" for this notification type.
type: string
enum:
- AlarmClearedNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
alarmId:
description: >
Alarm identifier.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
alarmClearedTime:
description: >
The time stamp indicating when the alarm was cleared.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarm
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
alarm:
description: >
Link to the resource that represents the related alarm.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
AlarmListRebuiltNotification:
description: >
This type represents a notification that the alarm list has been
rebuilt, e.g. if the VNFM detects its storage holding the alarm
list is corrupted.
The notification shall be triggered by the VNFM when the alarm list has
been rebuilt, e.g. because the VNFM has detected that its storage
holding the alarm list was corrupted.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- _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
"AlarmListRebuiltNotification" for this notification type.
type: string
enum:
- AlarmListRebuiltNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
_links:
description: >
Links to resources related to this notification.
type: object
required:
- subscription
- alarms
properties:
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
alarms:
description: >
Link to the alarm list, i.e. the "Alarms" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.3.4"
title: DRAFT - SOL003 - VNF Indicator interface
description: >
DRAFT - SOL003 - VNF Indicator interface
title: SOL003 - VNF Indicator interface
description: |
SOL003 - VNF Indicator 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: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
basePath: "/vnfind/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/vnfind/v1
- url: https://127.0.0.1/vnfind/v1
consumes:
- "application/json"
produces:
- "application/json"
paths:
###############################################################################
# VNF indicators #
###############################################################################
'/indicators':
#SOL003 location: 8.4.2
###############################################################################
# API Versions #
###############################################################################
/api_versions:
$ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions
###############################################################################
# VNF indicators #
###############################################################################
/indicators:
#SOL003 location: 8.4.2
get:
description: >
The GET method queries multiple VNF indicators.
description: |
The GET method queries multiple VNF indicators. See clause 8.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: 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/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/filter_vnf_indicators'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
The list of VNF indicators was queried successfully.
The response body shall contain the representations of all VNF
indicators that match the attribute filter.
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/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator"
$ref: '#/components/responses/Indicators.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"
###############################################################################
# VNF indicators related to a VNF instance #
###############################################################################
'/indicators/{vnfInstanceId}':
#SOL003 location: 8.4.3
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
###############################################################################
# VNF indicators related to a VNF instance #
###############################################################################
/indicators/{vnfInstanceId}:
#SOL003 location: 8.4.3
parameters:
- name: vnfInstanceId
description: >
Identifier of the VNF instance to which the VNF indicator applies.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new VNF instance resource. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
- $ref: '#/components/parameters/VnfInstanceId'
get:
description: >
The GET method queries multiple VNF indicators related to a VNF
instance.
description: |
The GET method queries multiple VNF indicators related to a VNF instance. See clause 8.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: 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/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/filter_vnf_indicators_related_to_vnf_instance'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
The list of VNF indicators was queried successfully.
The response body shall contain the representations of all VNF
indicators that are related to the particular VNF instance and
that match the attribute filter.
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/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator"
$ref: '#/components/responses/VnfInstanceIndicators.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 VNF indicator #
###############################################################################
'/indicators/{vnfInstanceId}/{indicatorId}':
#SOL003 location: 8.4.4
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
###############################################################################
# Individual VNF indicator #
###############################################################################
/indicators/{vnfInstanceId}/{indicatorId}:
#SOL003 location: 8.4.4
parameters:
- name: indicatorId
description: >
Identifier of the VNF indicator.
This identifier can be retrieved from the resource referenced by the
payload body in the response to a POST request creating a new VNF
instance resource.
in: path
type: string
required: true
- name: vnfInstanceId
description: >
Identifier of the VNF instance to which the VNF indicator applies.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new VNF instance resource. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
- $ref: '#/components/parameters/IndicatorId'
- $ref: '#/components/parameters/VnfInstanceId'
get:
description: >
The GET method reads a VNF indicator.
description: |
The GET method reads a VNF indicator. See clause 8.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: 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/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
The VNF indicator was read successfully.
The response body shall contain the representation of the VNF
indicator.
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/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator"
$ref: '#/components/responses/VnfInstanceIndividualIndicator.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"
###############################################################################
# Subscriptions #
###############################################################################
'/subscriptions':
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
###############################################################################
# Subscriptions #
###############################################################################
/subscriptions:
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
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: VnfIndicatorSubscriptionRequest
description: Details of the subscription to be created.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscriptionRequest"
- 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
description: |
The POST method creates a new subscription. See clause 8.4.5.3.1.
requestBody:
$ref: '#/components/requestBodies/VnfIndicatorSubscriptionRequest'
responses:
201:
description: >
The subscription was created successfully.
The response body shall contain a representation of the created
subscription resource.
The HTTP response shall include a "Location" HTTP header that
points to the created subscription resource.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
Location:
description: The resource URI of the created VNF instance
type: string
format: url
schema:
type: array
items:
$ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription"
$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#/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/Subscriptions.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 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.
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 8.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: 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/parameters/filter_subscriptions'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_vnfm
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
which match the attribute filter.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
Location:
description: The resource URI of the created VNF instance
type: string
format: url
schema:
type: array
items:
$ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription"
$ref: '#/components/responses/Subscriptions.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 subscription #
###############################################################################
'/indicators/subscriptions/{subscriptionId}':
#SOL003 location: 8.4.6
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
###############################################################################
# Individual subscription #
###############################################################################
/indicators/subscriptions/{subscriptionId}:
#SOL003 location: 8.4.6
parameters:
- name: subscriptionId
description: >
Identifier of this subscription.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request creating a
new subscription resource. It can also be retrieved from the "id"
attribute in the payload body of that response.
in: path
type: string
required: true
- $ref: '#/components/parameters/SubscriptionId'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/ContentType
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
get:
description: >
The GET method reads an individual subscription.
description: |
The GET method reads an individual subscription. See clause 8.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: 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/Accept
responses:
200:
description: >
The operation has completed successfully.
The response body shall contain a representation of the
subscription resource.
headers:
Content-Type:
description: >
The MIME type of the body of the request.
Reference: IETF RFC 7231
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription"
$ref: '#/components/responses/IndividualSubscription.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"
$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.
parameters:
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
description: |
The DELETE method terminates an individual subscription. See clause 8.4.6.3.5.
responses:
204:
description: >
The subscription resource was deleted 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#/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"
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503
504:
$ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504
components:
parameters:
filter_vnf_indicators:
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 VnfIndicator 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
filter_vnf_indicators_related_to_vnf_instance:
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 VnfIndicator 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
filter_subscriptions:
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 VnfIndicatorSubscription 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
VnfInstanceId:
name: vnfInstanceId
in: path
description: |
Identifier of the VNF instance to which the VNF indicator applies.
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 VNF instance" 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
IndicatorId:
name: indicatorId
in: path
description: |
Identifier of the VNF indicator.
This identifier can be retrieved from the resource referenced by the
message content in the response to a POST request creating a new "Individual VNF
instance" resource.
required: true
style: simple
explode: 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:
VnfIndicatorSubscriptionRequest:
description: Details of the subscription to be created.
content:
application/json:
schema:
$ref: definitions/SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscriptionRequest
required: true
responses:
Indicators.Get.200:
description: |
200 OK
Shall be returned when information about zero or more VNF indicators has been queried successfully.
The response body shall contain in an array the representations of all VNF indicators that match
the attribute filter, i.e. zero or more representations of VNF indicators as defined in clause 8.5.2.2.
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:
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/SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator"
VnfInstanceIndicators.Get.200:
description: |
200 OK
Shall be returned when information about zero or more VNF indicators has been queried successfully.
The response body shall contain in an array the representations of all VNF indicators that are related
to the particular VNF instance and that match the attribute filter, i.e. zero or more representations
of VNF indicators as defined in clause 8.5.2.2.
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:
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/SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator
VnfInstanceIndividualIndicator.Get.200:
description: |
200 OK
Shall be returned when the VNF indicator has been read successfully.
The response body shall contain the representation of the VNF indicator.
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: definitions/SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator
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:
Location:
description: |
The resource URI of the created subscription resource.
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:
type: array
items:
$ref: definitions/SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription
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 VNFM
is to not create redundant subscriptions.
The HTTP response shall include a
"Location" HTTP header that contains the
resource URI of the existing "Individual
subscription" resource.
The response body shall be empty
headers:
Location:
description: |
The resource URI of the created subscription resource.
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
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, 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 8.4.7.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:
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.
schema:
type: string
maximum: 1
minimum: 1
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 which match the attribute filter,
i.e. zero or more representations of VNF indicator subscriptions as defined in clause 8.5.2.4.
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:
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/SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription
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:
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/SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription
IndividualSubscription.Delete.204:
description: |
204 NO CONTENT
Shall be returned when the "Individual subscription" resource has been deleted successfully.
The response body shall be empty.
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
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:
VnfIndicator:
description: >
This type represents a VNF indicator value.
NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
type: object
required:
- id
- value
- vnfInstanceId
- _links
properties:
id:
description: >
Identifier of this VNF indicator.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
name:
description: >
Human readable name of the indicator. Shall be present if defined in
the VNFD.
type: string
value:
description: >
Provides the value of the indicator. The value format is defined in the VNFD. See note.
type: object
vnfInstanceId:
description: >
Identifier of the "Individual VNF instance" which provides the indicator value.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links for this resource.
type: object
required:
- self
- vnfInstance
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
vnfInstance:
description: >
Link to the related "Individual VNF instance" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
VnfIndicatorNotificationsFilter:
description: >
This type represents a subscription filter for notifications related to VNF indicators.
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: The permitted values of the "notificationTypes" attribute are spelled exactly as the names
of the notification types to facilitate automated code generation systems.
type: object
properties:
vnfInstanceSubscriptionFilter:
description: >
Filter criteria to select VNF instances about which to notify.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
notificationTypes:
description: >
Match particular notification types.
Permitted values:
- VnfIndicatorValueChangeNotification
- SupportedIndicatorsChangeNotification
See note.
type: string
enum:
- VnfIndicatorValueChangeNotification
- SupportedIndicatorsChangeNotification
indicatorIds:
description: >
Match particular VNF indicator identifiers.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
VnfIndicatorSubscription:
description: >
This type represents a subscription related to notifications about VNF
indicator value changes.
type: object
required:
- id
- callbackUri
- _links
properties:
id:
description: >
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
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/VnfIndicatorNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
type: string
format: url
_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"
VnfIndicatorSubscriptionRequest:
description: >
This type represents a subscription request related to VNF indicator
value change notifications.
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/VnfIndicatorNotificationsFilter"
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 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"
VnfIndicatorValueChangeNotification:
description: >
This type represents a VNF indicator value change notification.
The notification shall be triggered by the VNFM when the value of an indicator has changed.
NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- vnfIndicatorId
- value
- 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"VnfIndicatorValueChangeNotification" for this notification type.
type: string
enum:
- VnfIndicatorValueChangeNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfIndicatorId:
description: >
Identifier of the VNF indicator whose value has changed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
name:
description: >
Human readable name of the VNF indicator. Shall be present if
defined in the VNFD.
type: string
value:
description: >
Provides the value of the VNF indicator. The value format is defined in the VNFD. See note.
type: object
vnfInstanceId:
description: >
Identifier of the VNF instance which provides the indicator value.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links for this resource.
type: object
required:
- vnfInstance
- subscription
properties:
vnfInstance:
description: >
Link to the related "Individual VNF instance" resource. Shall be present
if the VNF instance information is accessible as a resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
SupportedIndicatorsChangeNotification:
description: >
This type represents a notification to inform the receiver that the set of indicators supported
by a VNF instance has changed.
The notification shall be triggered by the VNFM when the set of supported VNF indicators has changed
as a side effect of the "Change current VNF package" operation. It may be triggered by the VNFM when
a VNF has been instantiated.
NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
type: object
required:
- id
- notificationType
- subscriptionId
- 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"SupportedIndicatorsChangeNotification" for this notification type.
type: string
enum:
- VnfIndicatorValueChangeNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfInstanceId:
description: >
Identifier of the VNF instance which provides the indicator value.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
supportedIndicators:
description: >
Set of VNF indicators supported by the VNF instance.
type: array
items:
type: object
required:
- vnfIndicatorId
properties:
vnfIndicatorId:
description: >
Identifier of the VNF indicator whose value has changed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
name:
description: >
Human readable name of the VNF indicator. Shall be present if defined in the VNFD. See note.
type: string
_links:
description: >
Links for this resource.
type: object
required:
- subscription
properties:
vnfInstance:
description: >
Link to the related "Individual VNF instance" resource. Shall be present
if the VNF instance information is accessible as a resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.3.4"
title: DRAFT - SOL003 - VNF Indicator Notification interface
description: >
DRAFT - SOL003 - VNF Indicator Notification interface
title: SOL003 - VNF Indicator Notification interface
description: |
SOL003 - VNF Indicator 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: "1.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/v1
- url: https://127.0.0.1/callback/v1
paths:
###############################################################################
# Notification endpoint VnfIndicatorValueChangeNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIndicatorValueChangeNotification':
###############################################################################
# Notification endpoint VnfIndicatorValueChangeNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIndicatorValueChangeNotification:
#SOL003 location: 8.4.7
post:
description: >
The POST method notifies a VNF alarm or that the alarm list has been
rebuilt.
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 8.4.7.3.1.
parameters:
- name: AlarmListRebuiltNotification
description: >
Information that the alarm list has been rebuilt by the VNFM
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorValueChangeNotification"
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
requestBody:
$ref: '#/components/requestBodies/AlarmListRebuiltNotification'
responses:
204:
description: >
The notification was delivered successfully.
The response body shall be empty.
$ref: '#/components/responses/VNFINDNotification.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 subscription. See clause 8.4.7.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
204:
description: >
The notification endpoint was tested successfully.
The response body shall be empty.
$ref: '#/components/responses/VNFINDNotification.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:
AlarmListRebuiltNotification:
description: Information that the alarm list has been rebuilt by the VNFM.
content:
application/json:
schema:
oneOf:
- $ref: definitions/SOL003VNFIndicatorNotification_def.yaml#/definitions/VnfIndicatorValueChangeNotification
- $ref: definitions/SOL003VNFIndicatorNotification_def.yaml#/definitions/SupportedIndicatorsChangeNotification
required: true
responses:
VNFINDNotification.Post.204:
description: |
204 NO CONTENT
Shall be returned when the notification has been delivered 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
VNFINDNotification.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: The used API version.
style: simple
explode: false
schema:
type: string
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
VnfIndicatorValueChangeNotification:
description: >
This type represents a VNF indicator value change notification.
The notification shall be triggered by the VNFM when the value of an indicator has changed.
NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- vnfIndicatorId
- value
- 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"VnfIndicatorValueChangeNotification" for this notification type.
type: string
enum:
- VnfIndicatorValueChangeNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfIndicatorId:
description: >
Identifier of the VNF indicator whose value has changed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
name:
description: >
Human readable name of the VNF indicator. Shall be present if
defined in the VNFD.
type: string
value:
description: >
Provides the value of the VNF indicator. The value format is defined in the VNFD. See note.
type: object
vnfInstanceId:
description: >
Identifier of the VNF instance which provides the indicator value.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links for this resource.
type: object
required:
- vnfInstance
- subscription
properties:
vnfInstance:
description: >
Link to the related "Individual VNF instance" resource. Shall be present
if the VNF instance information is accessible as a resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
SupportedIndicatorsChangeNotification:
description: >
This type represents a notification to inform the receiver that the set of indicators supported
by a VNF instance has changed.
The notification shall be triggered by the VNFM when the set of supported VNF indicators has changed
as a side effect of the "Change current VNF package" operation. It may be triggered by the VNFM when
a VNF has been instantiated.
NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
type: object
required:
- id
- notificationType
- subscriptionId
- 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"SupportedIndicatorsChangeNotification" for this notification type.
type: string
enum:
- VnfIndicatorValueChangeNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfInstanceId:
description: >
Identifier of the VNF instance which provides the indicator value.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
supportedIndicators:
description: >
Set of VNF indicators supported by the VNF instance.
type: array
items:
type: object
required:
- vnfIndicatorId
properties:
vnfIndicatorId:
description: >
Identifier of the VNF indicator whose value has changed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
name:
description: >
Human readable name of the VNF indicator. Shall be present if defined in the VNFD. See note.
type: string
_links:
description: >
Links for this resource.
type: object
required:
- subscription
properties:
vnfInstance:
description: >
Link to the related "Individual VNF instance" resource. Shall be present
if the VNF instance information is accessible as a resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
source diff could not be displayed: it is too large. Options to address this: view the blob.
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
InstantiateVnfRequest:
description: >
This type represents request parameters for the "Instantiate VNF" operation.
NOTE 1: The indication of externally-managed internal VLs is needed in case
networks have been pre-configured for use with certain VNFs, for instance
to ensure that these networks have certain properties such as security or
acceleration features, or to address particular network topologies.
The present document assumes that externally-managed internal VLs are
managed by the NFVO and created towards the VIM.
NOTE 2: It is possible to have several ExtManagedVirtualLinkData for the same VNF
internal VL in case of a multi-site VNF spanning several VIMs. The set of
ExtManagedVirtualLinkData corresponding to the same VNF internal VL shall
indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed
multi-site VL instance (refer to clause 4.4.1.12).
type: object
required:
- flavourId
properties:
flavourId:
description: >
Identifier of the VNF deployment flavour to be instantiated.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
instantiationLevelId:
description: >
Identifier of the instantiation level of the deployment flavour to be instantiated. If not present,
the default instantiation level as declared in the VNFD is instantiated.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
extVirtualLinks:
description: >
Information about external VLs to connect the VNF to, including configuration information
for the CPs via which the VNF instance can attach to this VL.
The following applies to the "ExtVirtualLinkData" information provided in this
request, together with the related overriding information provided in the
"Grant" structure (see clause 9.5.2.3): even if the VNF is not instantiated in
fully scaled-out state, the API consumer shall provide enough CP configuration
records to allow connecting the VNF instance, fully scaled out in all scaling
aspects, to the external VLs
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about internal VLs that are managed by the NFVO. See note 1 and note 2.
type: array
items:
$ref: "#/definitions/ExtManagedVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the resources for the VNF instance, or refer to
external/externally-managed virtual links.
This attribute shall only be supported and may be present if VNF-related resource management in direct mode is
applicable. The VNFM shall apply the content of this attribute to the "vimConnectionInfo" attribute of "VnfInstance"
according to the rules of JSON Merge Patch (see IETF RFC 7396 [5]).
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
localizationLanguage:
description: >
Localization language of the VNF to be instantiated. The value shall
comply with the format defined in IETF RFC 5646.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
to the VNF being instantiated, as declared in the VNFD as part of
"InstantiateVnfOpConfig" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
If present, this attribute provides modifications to the default values,
as obtained from the VNFD, of the "extensions" attribute in "VnfInstance",
as defined in clause 5.5.2.2. Provisions for handling extensions during the
operation are defined in clause 5.4.4.3.1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
vnfConfigurableProperties:
description: >
If present, this attribute provides modifications to the default values, as obtained from the VNFD, of
the "vnfConfigurableProperties" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for
handling configurable properties during the operation are defined in clause 5.4.4.3.1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
ExtManagedVirtualLinkData:
type: object
required:
- id
- vnfVirtualLinkDescId
- resourceId
properties:
id:
description: >
The identifier of the externally-managed internal VL instance. The
identifier is assigned by the NFV-MANO entity that manages this VL
instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfVirtualLinkDescId:
description: >
The identifier of the VLD in the VNFD for this VL.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vimConnectionId:
description: >
Identifier of the VIM connection to manage this resource. This
attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of this
resource. This attribute shall only be supported and present if
VNF-related resource management in indirect mode is applicable. The
identification scheme is outside the scope of the present document.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceId:
description: >
The identifier of the resource in the scope of the VIM or the
resource provider.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
vnfLinkPort:
description: >
Externally provided link ports to be used to connect VNFC connection points to this externally-managed VL
on this network resource. If this attribute is not present, the VNFM shall create the link ports on the
externally-managed VL.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VnfLinkPortData"
extManagedMultisiteVirtualLinkId:
description: >
Identifier of the externally-managed multi-site VL instance. The identifier is assigned by the NFVMANO
entity that manages the externally managed multi-site VL instance. It shall be present when the present
externally-managed internal VL (indicated by extManagedVirtualLinkId) is part of a multi-site VL, e.g.,
in support of multi-site VNF spanning several VIMs. All externally-managed internal VL instances
corresponding to an internal VL created based on the same virtualLinkDescId shall refer to the same
extManagedMultisiteVirtualLinkId.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
ChangeVnfFlavourRequest:
description: >
This type represents request parameters for the "Change VNF flavour" operation.
NOTE 1: The indication of externally-managed internal VLs is needed in case networks
have been pre-configured for use with certain VNFs, for instance to ensure
that these networks have certain properties such as security or acceleration
features, or to address particular network topologies. The present document
assumes that externally-managed internal VLs are managed by the NFVO and created
towards the VIM.
NOTE 2: It is possible to have several ExtManagedVirtualLinkData for the same VNF internal
VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData
corresponding to the same VNF internal VL shall indicate so by referencing to the same
VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 4.4.1.12).
type: object
required:
- newFlavourId
properties:
newFlavourId:
description: >
Identifier of the VNF deployment flavour to be instantiated.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
instantiationLevelId:
description: >
Identifier of the instantiation level of the deployment flavour to
be instantiated. If not present, the default instantiation level as
declared in the VNFD is instantiated.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
extVirtualLinks:
description: >
Information about external VLs to connect the VNF to, including configuration information
for the CPs via which the VNF instance can attach to this VL.
Entries in the list of external VLs that are unchanged need not be supplied as part of
this request.
The following applies to the "ExtVirtualLinkData" information provided in this
request, together with the related "ExtVirtualLinkInfo" information known to the
VNFM represented in the "VnfInstance" structure (see clause 5.5.2.2) and the related
overriding information provided in the "Grant" structure (see clause 9.5.2.3): Even if the VNF
is not in fully scaled-out state after changing the flavour, the API consumer shall provide
enough CP configuration records to allow connecting the VNF instance, fully scaled out in all scaling
aspects, to the external VLs.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about internal VLs that are managed by the NFVO. See notes 1 and 2.
type: array
items:
$ref: "#/definitions/ExtManagedVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the resources for the VNF instance, or refer to
external / externally-managed virtual links. This attribute shall only be supported and may be present if
VNF-related resource management in direct mode is applicable. The VNFM shall apply the content of this
attribute to the "vimConnectionInfo" attribute of "VnfInstance" according to the rules of JSON Merge Patch
(see IETF RFC 7396).
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
additionalParams:
description: >
Additional input parameters for the flavour change process, specific to the VNF being modified, as
declared in the VNFD as part of "ChangeVnfFlavourOpConfig" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
If present, this attribute provides modifications to the values of the "extensions"
attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling
extensions during the operation, are defined in clause 5.4.7.3.1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
vnfConfigurableProperties:
description: >
If present, this attribute provides modifications to the values of the "vnfConfigurableProperties" attribute
in "VnfInstance", as defined in clause 5.5.2.2.
Provisions for handling VNF configurable properties during the operation, are defined in clause 5.4.7.3.1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
TerminateVnfRequest:
description: >
This type represents request parameters for the "Terminate VNF" operation.
NOTE: If the VNF is still in service, requesting forceful termination can
adversely impact network service.
type: object
required:
- terminationType
properties:
terminationType:
description: >
Indicates whether forceful or graceful termination is requested.
See note.
Permitted values:
- FORCEFUL: The VNFM will shut down the VNF and release the
resources immediately after accepting the request.
- GRACEFUL: The VNFM will first arrange to take the VNF out of
service after accepting the request. Once the operation
of taking the VNF out of service finishes (irrespective
of whether it has succeeded or failed) or once the timer
value specified in the "gracefulTerminationTimeout"
attribute expires, the VNFM will shut down the VNF and
release the resources.
type: string
enum:
- FORCEFUL
- GRACEFUL
gracefulTerminationTimeout:
description: >
This attribute is only applicable in case of graceful termination.
It defines the time to wait for the VNF to be taken out of service
before shutting down the VNF and releasing the resources.
The unit is seconds.
If not given and the "terminationType" attribute is set to
"GRACEFUL", it is expected that the VNFM waits for the successful
taking out of service of the VNF, no matter how long it takes,
before shutting down the VNF and releasing the resources.
type: integer
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the termination
process, specific to the VNF being terminated, as declared in the
VNFD as part of "TerminateVnfOpConfig" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
HealVnfRequest:
type: object
properties:
cause:
description: >
Indicates the reason why a healing procedure is required.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the healing
process, specific to the VNF being healed, as declared in the VNFD
as part of "HealVnfOpConfig" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
OperateVnfRequest:
description: >
This type represents request parameters for the "Operate VNF" operation.
NOTE: The "stopType" and "gracefulStopTimeout" attributes shall be absent,
when the "changeStateTo" attribute is equal to "STARTED".
The "gracefulStopTimeout" attribute shall be present, when the "changeStateTo"
is equal to "STOPPED" and the "stopType" attribute is equal to "GRACEFUL".
The "gracefulStopTimeout" attribute shall be absent, when the "changeStateTo"
attribute is equal to "STOPPED" and the "stopType" attribute is equal to "FORCEFUL".
The request shall be treated as if the "stopType" attribute has been set to "FORCEFUL",
when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute
is absent.
required:
- changeStateTo
properties:
changeStateTo:
description: >
The desired operational state (i.e. started or stopped) to change
the VNF to.
$ref: "#/definitions/VnfOperationalStateType"
stopType:
description: >
It signals whether forceful or graceful stop is requested. See note.
$ref: "#/definitions/StopType"
gracefulStopTimeout:
description: >
The time interval (in seconds) to wait for the VNF to be taken out of service
during graceful stop, before stopping the VNF. See note.
type: integer
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the process,
specific to the VNF of which the operation status is changed, as
declared in the VNFD as part of "OperateVnfOpConfig" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
ChangeExtVnfConnectivityRequest:
#SOL003 location: 5.5.2.11
description: >
This type represents request parameters for the
"Change external VNF connectivity" operation to modify the external
connectivity of a VNF instance.
type: object
required:
- extVirtualLinks
properties:
extVirtualLinks:
description: >
Information about external VLs to change (e.g. connect the VNF to) including configuration
information for the CPs via which the VNF instance can attach to this VL.
Entries in the list of external VLs that are unchanged need not be supplied
as part of this request.
The following applies to the "ExtVirtualLinkData" information provided in this request,
together with the related "ExtVirtualLinkInfo" informationknown to the VNFM represented
in the "VnfInstance" structure (see clause 5.5.2.2) and the related overriding
information provided in the "Grant" structure (see clause 9.5.2.3): Even if the VNF
is not in fully scaled-out state, the API consumer shall provide enough CP
configuration records to allow connecting the VNF instance, fully scaled out in
all scaling aspects, to the external VLs.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ExtVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the resources for the VNF instance, or refer to
external virtual links. This attribute shall only be supported and may be present if VNF-related resource
management in direct mode is applicable. The VNFM shall apply the content of this attribute to the
"vimConnectionInfo" attribute of "VnfInstance" according to the rules of JSON Merge Patch (see IETF RFC 7396).
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the process, specific to the VNF of which the external
connectivity is changed, as declared in the VNFD as part of "ChangeExtVnfConnectivityOpConfig" defined
in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
ChangeCurrentVnfPkgRequest:
description: >
This type represents request parameters for the "Change current VNF package"
operation to replace the VNF package on which a VNF instance is based.
NOTE 1: The indication of externally-managed internal VLs is needed in case networks
have been pre-configured for use with certain VNFs, for instance to ensure
that these networks have certain properties such as security or acceleration
features, or to address particular network topologies. The present document
assumes that externally-managed internal VLs are managed by the NFVO and created
towards the VIM.
NOTE 2: It is possible to have several ExtManagedVirtualLinkData for the same VNF internal
VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData
corresponding to the same VNF internal VL shall indicate so by referencing to the same
VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 4.4.1.12).
type: object
required:
- vnfdId
properties:
vnfdId:
description: >
Identifier of the VNFD which defines the destination VNF Package for the
change.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
extVirtualLinks:
description: >
Information about external VLs to connect the VNF to, including configuration information for
the CPs via which the VNF instance can attach to this VL.
Entries in the list that are unchanged need not be supplied as part of this request.
The following applies to the "ExtVirtualLinkData" information provided in this request,
together with the related "ExtVirtualLinkInfo" information known to the VNFM represented
in the "VnfInstance" structure (see clause 5.5.2.2) and the related overriding information
provided in the "Grant" structure (see clause 9.5.2.3): even if the VNF is not in fully
scaled-out state after the change of the VNF package, the API consumer shall provide enough
CP configuration records to allow connecting the VNF instance, fully scaled
out in all scaling aspects, to the external VLs.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about internal VLs that are managed by the NFVO. See notes 1 and 2.
type: array
items:
$ref: "#/definitions/ExtManagedVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the resources for the VNF instance, or refer to
external virtual links. This attribute shall only be supported and may be present if VNF-related resource
management in direct mode is applicable. The VNFM shall apply the content of this attribute to the
"vimConnectionInfo" attribute of "VnfInstance" according to the rules of JSON Merge Patch (see IETF RFC 7396).
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the process, specific
to the VNF of which the underlying VNF package is changed, as declared in
the VNFD as part of "ChangeCurrentVnfPkgOpConfig" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
If present, this attribute provides modifications to the values of the
"extensions" attribute in "VnfInstance", as defined in clause 5.5.2.2.
Provisions for handling extensions during the operation, and needed passed
parameter values in case of conflicts, are defined in clause 5.4.11a.3.1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
vnfConfigurableProperties:
description: >
If present, this attribute provides modifications to the values of the "vnfConfigurableProperties" attribute
in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during the
operation, and needed passed parameter values in case of conflicts, are defined in clause 5.4.11a.3.1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
VnfInfoModificationRequest:
description: >
This type represents attribute modifications for an
"Individual VNF instance" resource, i.e. modifications to a resource
representation based on the "VnfInstance" data type.
type: object
properties:
vnfInstanceName:
description: >
New value of the "vnfInstanceName" attribute in "VnfInstance", or
"null" to remove the attribute.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfInstanceDescription:
description: >
New value of the "vnfInstanceDescription" attribute in
"VnfInstance", or "null" to remove the attribute.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfPkgId:
description: >
New value of the "vnfPkgId" attribute in "VnfInstance".
The value "null" is not permitted.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfConfigurableProperties:
description: >
Modifications of the "vnfConfigurableProperties" attribute in
"VnfInstance". If present, these modifications shall be applied
according to the rules of JSON Merge Patch (see IETF RFC 7396).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
metadata:
description: >
Modifications of the "metadata" attribute in "VnfInstance". If
present, these modifications shall be applied according to the rules
of JSON Merge Patch (see IETF RFC 7396).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
Modifications of the "extensions" attribute in "VnfInstance". If
present, these modifications shall be applied according to the rules
of JSON Merge Patch (see IETF RFC 7396).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
vimConnectionInfo:
description: >
Modifications of the "vimConnectionInfo" attribute. If present, these
modifications shall be applied according to the rules of
JSON Merge Patch (see IETF RFC 7396 ).
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
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.
NOTE: If present, this attribute (which depends on the value of the "vnfdId" attribute)
was modified implicitly following a request to modify the "vnfdId" attribute, by
copying the value of this attribute from the VNFD in the VNF Package identified by
the "vnfdId" attribute.
type: object
properties:
vnfInstanceName:
description: >
If present, this attribute signals modifications of the
"vnfInstanceName" attribute in "VnfInstance".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfInstanceDescription:
description: >
If present, this attribute signals modifications of the
"vnfInstanceDescription" attribute in "VnfInstance".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfConfigurableProperties:
description: >
If present, this attribute signals modifications of the
"vnfConfigurableProperties" attribute in "VnfInstance".
In addition, the provisions in clause 5.7 shall apply.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
metadata:
description: >
If present, this attribute signals modifications of the "metadata"
attribute in "VnfInstance".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
If present, this attribute signals modifications of the "extensions"
attribute in "VnfInstance".
In addition, the provisions in clause 5.7 shall apply.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
vimConnectionInfo:
description: >
If present, this attribute signals modifications the "vimConnectionInfo"
attribute array in "VnfInstance".
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
vnfdId:
description: >
If present, this attribute signals modifications of the "vnfdId"
attribute in "VnfInstance".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfProvider:
description: >
If present, this attribute signals modifications of the "vnfProvider" attribute
in "VnfInstance". See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfProductName:
description: >
If present, this attribute signals modifications of the "vnfProductName" attribute
in "VnfInstance". See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/String"
vnfSoftwareVersion:
description: >
If present, this attribute signals modifications of the "vnfSoftwareVersion" attribute
in "VnfInstance". See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
vnfdVersion:
description: >
If present, this attribute signals modifications of the "vnfdVersion" attribute
in "VnfInstance". See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
StopType:
description: >
* FORCEFUL: The VNFM will stop the VNF instance immediately after accepting
the request.
* GRACEFUL: The VNFM instance 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 instance.
type: string
enum:
- FORCEFUL
- GRACEFUL
CreateVnfSnapshotRequest:
description: >
This type represents request parameters for the "Create VNF Snapshot"
LCM operation which takes a snapshot of a VNF instance and populates
a previously-created "Individual VNF snapshot" resource with the content
of the snapshot.
type: object
required:
- vnfSnapshotResId
properties:
vnfSnapshotInfoId:
description: >
Identifier of the "Individual VNF snapshot" resource to which the
VNF snapshot is to be associated.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
additionalParams:
description: >
Additional input parameters for the snapshot creation process, specific
for the VNF being “snapshotted”, as declared in the VNFD as part of
“CreateSnapshotVnfOpConfig" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
userDefinedData:
description: >
User defined data for the VNF snapshot.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
CreateVnfSnapshotInfoRequest:
description: |
This type represents request parameters for the creation of an "Individual VNF snapshot"
resource which can be populated with content obtained by invoking the "Create VNF snapshot"
LCM operation or extracted from a VNF snapshot package.
NOTE: The present attribute shall be provided if the "Individual VNF snapshot" resource is
requested to be created as part of a VNF snapshot package extraction.
type: object
properties:
vnfSnapshotPkgId:
description: |
Identifier of the VNF snapshot package information held by the NFVO. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfSnapshot:
description: |
Information about the VNF snapshot, content and/or reference to its content.
$ref: "#/definitions/VnfSnapshot"
RevertToVnfSnapshotRequest:
description: >
This type represents request parameters for the "Revert to VNF Snapshot" operation.
type: object
required:
- vnfSnapshotInfoId
properties:
vnfSnapshotInfoId:
description: >
Identifier of the "Individual VNF snapshot" resource with the information of the VNF snapshot
to be reverted to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
additionalParams:
description: >
Additional input parameters for the revert to VNF snapshot process, specific for the VNF being
“reverted”, as declared in the VNFD as part of “RevertToSnapshotVnfOpConfig" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
VnfSnapshotInfoModificationRequest:
description: |
This type represents attribute modifications for an "Individual VNF snapshot" resource, i.e. modifications
to a resource representation based on the "VnfSnapshotInfo" data type. The attributes of "VnfSnapshotInfo"
that can be modified according to the provisions in clause 5.5.2.22 are included in the
"VnfSnapshotInfoModificationRequest" data type. The "VnfSnapshotInfoModificationRequest" data type shall
comply with the provisions defined in table 5.5.2.24-1.
type: object
properties:
vnfSnapshotPkgId:
description: |
New value of the "vnfSnapshotPkgId" attribute in "VnfSnapshotInfo".
The value "null" is not permitted.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfSnapshot:
description: |
New value of the "vnfSnapshot" attribute in "VnfSnapshotInfo".
The value "null" is not permitted.
$ref: "#/definitions/VnfSnapshot"
VnfSnapshotInfoModifications:
description: |
This type represents attribute modifications that were performed on an "Individual VNF snapshot"
resource. The attributes that can be included consist of those requested to be modified explicitly
in the "VnfSnapshotInfoModificationRequest" data structure, and additional attributes of the
"VnfSnapshotInfo" data structure that were modified implicitly.
type: object
properties:
vnfSnapshotPkgId:
description: |
If present, this attribute signals modifications of the "vnfSnapshotPkgId" attribute in
"VnfSnapshotInfo" as defined in clause 5.5.2.22.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfSnapshot:
description: |
If present, this attribute signals modifications of the "vnfSnapshot" attribute in
"VnfSnapshotInfo" as defined in clause 5.5.2.22.
$ref: "#/definitions/VnfSnapshot"
VnfInstance:
description: >
This type represents a VNF instance.
NOTE: Clause B.3.2 provides examples illustrating the relationship among the different run-time
data types (CP, VL and link ports) used to represent the connectivity of a VNF.
NOTE 1: 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 changed with
respect to the previous VNFD in other aspects than merely 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.
NOTE 2: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.
NOTE 3: 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.
NOTE 4: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes
of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined
initial value. The defined initial values can be declared in the VNFD, and/or, in case of "metadata",
obtained from the "CreateVnfRequest" structure. Child attributes of "vnfConfigurableProperties",
"metadata" and "extensions" that have no defined initial value shall not be created, in order to be
consistent with the semantics of the JSON Merge Patch method (see IETF RFC 7396) that interprets null
values as deletion request.
NOTE 5: It is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case of a
multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding to the same
VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed
multi-site VL instance (refer to clause 5.5.3.3).
NOTE 6: Even though externally-managed internal VLs are also used for VNF-internal connectivity, they shall
not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant.
type: object
required:
- id
- vnfdId
- vnfProvider
- vnfProductName
- vnfSoftwareVersion
- vnfdVersion
- instantiationState
- _links
properties:
id:
description: >
Identifier of the VNF instance.
$ref: "../../General_Definitions/SOL003_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. See note 1.
$ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
vnfdVersion:
description: >
Identifies the version of the VNFD. The value is copied from the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
vnfConfigurableProperties:
description: >
Additional VNF-specific attributes that provide the current values of the configurable
properties of the VNF instance.
These attributes represent values that are stored persistently in the VnfInstance structure
and that correspond to configuration parameters of the VNF instance.
Modifying these attributes affects the configuration of the VNF instance either directly
(if the VNF instance is in INSTANTIATED state at the time of the modification) or as part
of the subsequent VNF instantiation operation (if the VNF instance is in NOT_INSTANTIATED
state at the time of the modification).
Configurable properties referred in these attributes are declared in the VNFD. The declaration
of configurable properties in the VNFD can optionally contain the specification of initial values.
See notes 2, 3 and 4. The VNFM shall reject requests to write configurable properties that are
not declared in the VNFD with a "422 Unprocessable Content" error response as defined in clause
6.4 of ETSI GS NFV SOL 013.
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.
These configurable properties can be initialized with default values from the VNFD (see note 4).
Configurable properties can be modified with values passed in the request structures of certain
LCM operations, such as the InstantiateVnfRequest structure.
Further, these configurable properties can be created, modified or deleted with the PATCH method.
In addition, the provisions in clause 5.7 shall apply.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the
resources for the VNF instance. The keys of the map, each of
which identifies information about a particular VIM connection,
are managed by the NFVO and referenced from other data structures
via the "vimConnectionId" attribute. This attribute shall only
be supported and present if VNF-related resource management in
direct mode is pplicable.
This attribute can be modified with the PATCH method.
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_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
- extCpInfo
properties:
flavourId:
description: >
Identifier of the VNF deployment flavour applied to this VNF instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfState:
description: >
The state of the VNF instance.
$ref: "#/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 with reference to that aspect.
This attribute shall be present if the VNF supports scaling.
See clause B.2 for an explanation of VNF scaling.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo"
maxScaleLevels:
description: >
Maximum allowed scale levels of the VNF, one entry per aspect.
This attribute shall be present if the VNF supports scaling.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ScaleInfo"
extCpInfo:
description: >
Information about the external CPs exposed by the VNF instance. When trunking is enabled,
the list of entries includes both, external CPs corresponding to parent ports of a trunk,
and external CPs associated to sub-ports of a trunk.
type: array
minItems: 1
items:
$ref: "#/definitions/VnfExtCpInfo"
vipCpInfo:
description: >
VIP CPs that are part of the VNF instance. Shall be present when that particular VIP CP of the VNFC
instance is associated to an external CP of the VNF instance.
May be present otherwise.
type: array
minItems: 1
items:
$ref: "#/definitions/VipCpInfo"
extVirtualLinkInfo:
description: >
Information about the external VLs the VNF instance is connected to.
type: array
items:
$ref: "#/definitions/ExtVirtualLinkInfo"
extManagedVirtualLinkInfo:
description: >
Information about the externally-managed internal VLs of the VNF instance. See notes 5 and 6.
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"
vnfVirtualLinkResourceInfo:
description: >
Information about the virtualised network resources used by the VLs of the VNF instance. See note 6.
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 attributes that provide metadata describing the VNF instance.
These attributes represent values that are stored persistently in the VnfInstance structure for
consumption by functional blocks that invoke the VNF lifecycle management interface. They are not
consumed by the VNFM, or the lifecycle management scripts.
Modifying the values of these attributes has no effect on the VNF instance, it only affects the
information represented in the VnfInstance structure.
Metadata that the VNF provider foresees are expected to be declared in the VNFD. The declaration
of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4.
The VNFM shall accept requests to write metadata that are not declared in the VNFD.
These attributes can be initialized with default values from the VNFD (see note 4) or with values
passed in the CreateVnfRequest structure (see clause 5.4.2.3.1).
These attributes can be created, modified or removed with the PATCH method.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
Additional VNF-specific attributes that affect the lifecycle management of this VNF instance.
These attributes represent values that are stored persistently in the VnfInstance structure for
consumption by the VNFM or the lifecycle management scripts during the execution of VNF lifecycle
management operations.
All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension
in the VNFD contains information on whether its presence is optional or required, and optionally can
specify an initial value. See notes 2 and 4. The VNFM shall reject requests to write extension attributes
that are not declared in the VNFD with a "422 Unprocessable Content" error response as defined in clause
6.4 of ETSI GS NFV-SOL 013.
Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified
attribute values can be considered during subsequent VNF lifecycle management operations, which means that
the modified values can indirectly affect the configuration of the VNF instance.
These attributes can be initialized with default values from the VNFD (see note 4).
These attributes can be modified with values passed in the request structures of certain LCM operations,
such as the InstantiateVnfRequest structure.
Further, these attributes can be created, modified or deleted with the PATCH method.
In addition, the provisions in clause 5.7 shall apply.
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
properties:
self:
description: URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
indicators:
description: Indicators related to this VNF instance, if applicable.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
instantiate:
description: >
Link to the "Instantiate VNF 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
terminate:
description: >
Link to the "Terminate VNF 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
scale:
description: >
Link to the "Scale VNF 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
scaleToLevel:
description: >
Link to the "Scale VNF 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
changeFlavour:
description: >
Link to the "Change VNF 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
heal:
description: >
Link to the "Heal VNF 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
operate:
description: >
Link to the "Operate VNF 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
changeExtConn:
description: >
Link to the "Change external VNF connectivity 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
createSnapshot:
description: >
Link to the "Create VNF snapshot 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
revertToSnapshot:
description: >
Link to the "Revert to VNF snapshot 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
changeCurrentVnfPkg:
description: >
Link to the "Change current VNF package 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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
ExtManagedVirtualLinkInfo:
type: object
required:
- id
- vnfVirtualLinkDescId
- networkResource
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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfVirtualLinkDescId:
description: >
Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
current VNF package" operation or due to its final failure).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
networkResource:
description: >
Reference to the VirtualNetwork resource providing this VL.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
vnfLinkPorts:
description: >
Link ports of this VL.
type: array
items:
$ref: "#/definitions/VnfLinkPortInfo"
extManagedMultisiteVirtualLinkId:
description: >
Identifier of the externally-managed multi-site VL instance. The identifier is assigned by the NFVMANO entity
that manages the externally managed multi-site VL instance. It shall be present when the externally-managed
internal VL is part of a multi-site VL, e.g., in support of multi-site VNF spanning several VIMs.
All externally-managed internal VL instances corresponding to an internal VL created based on the same
virtualLinkDescId shall refer to the same extManagedMultisiteVirtualLinkId.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
VirtualStorageResourceInfo:
description: >
This type represents the information that allows addressing a virtualised
resource that is used by a VNF instance.
Note: If only the value or the presence of this attribute is changed in the "VirtualStorageResourceInfo"
structure by an LCM operation occurrence, this does not represent a change that requires
including a related "AffectedVirtualStorage" structure in the VNF LCM operation occurrence
notifications or the "VnfLcmOpOcc" structure related to this LCM operation occurrence.
type: object
required:
- id
- virtualStorageDescId
- storageResource
properties:
id:
description: >
Identifier of this VirtualStorageResourceInfo instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
virtualStorageDescId:
description: >
Identifier of the VirtualStorageDesc in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
current VNF package" operation or due to its final failure). See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
storageResource:
description: >
Reference to the VirtualStorage resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
zoneId:
description: >
The identifier of the resource zone, as managed by the resource
management layer (typically, the VIM), where the referenced
VirtualStorage resource is placed. Shall be provided if this
information is available from the VIM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
reservationId:
description: >
The reservation identifier applicable to the resource. It shall be
present when an applicable reservation exists.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
metadata:
description: >
Metadata about this resource.
$ref: "../../General_Definitions/SOL003_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.
NOTE 1: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on
TOSCA specifications.
NOTE 2: A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an
internal VL that exposes an external CP. A VNFC CP is "exposed as" an external
CP if it is connected directly to an external VL.
NOTE 3: The information can be omitted because it is already available as part of the
external CP information.
NOTE 4: If only the value or the presence of this attribute is changed in the "VnfcResourceInfo"
structure by an LCM operation occurrence, this does not represent a change that requires
including a related "AffectedVnfc" structure in the VNF LCM operation occurrence notifications
or the "VnfLcmOpOcc" structure related to this LCM operation occurrence.
type: object
required:
- id
- vduId
- computeResource
properties:
id:
description: >
Identifier of this VnfcResourceInfo instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
vduId:
description: >
Reference to the applicable VDU in the VNFD. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
current VNF package" operation or due to its final failure). See note 4.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
computeResource:
description: >
Reference to the VirtualCompute resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
zoneId:
description: >
The identifier of the resource zone, as managed by the
resource management layer (typically, the VIM), where
the referenced VirtualCompute resource is placed.
Shall be provided if this information is available from the VIM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
storageResourceIds:
description: >
References to the VirtualStorage resources. The value refers to a
VirtualStorageResourceInfo item in the VnfInstance.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
reservationId:
description: >
The reservation identifier applicable to the resource. It shall be
present when an applicable reservation exists.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfcCpInfo:
description: >
CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance
is exposed as an external CP of the VNF instance or is connected to an external CP of the
VNF instance. See note 2. 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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
cpdId:
description: >
Identifier of the VDU CPD, cpdId, in the VNFD. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfExtCpId:
description: >
Identifier of the related external CP. Shall be present when the VNFC CP is exposed as an
external CP of the VNF instance or connected to an external CP of the VNF instance (see note 2)
and shall be absent otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
cpProtocolInfo:
description: >
Network protocol information for this CP. May be omitted if the VNFC CP is exposed as an external CP.
See note 3.
type: array
items:
$ref: "#/definitions/CpProtocolInfo"
vnfLinkPortId:
description: >
Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" or "ExtManagedVirtualLinkInfo" structure.
Shall be present if the CP is associated to a link port on an internal VL (including externally-managed internal VL)
of the VNF instance and shall be absent otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
metadata:
description: >
Metadata about this CP.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
parentCpId:
description: >
Identifier of another VNFC CP instance that corresponds to the parent port of a trunk that the present VNFC CP
instance participates in. Shall be provided if the present CP instance participates in a trunk as subport, and
the referred VNFC CP instances are also present in the vnfcCpInfo attribute.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
metadata:
description: >
Metadata about this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
VnfSnapshotInfo:
description: >
This type represents an "Individual VNF snapshot" resource.
type: object
required:
- id
- _links
properties:
id:
description: >
Identifier of the "Individual VNF snapshot" resource. This identifier is allocated by the VNFM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfSnapshotPkgId:
description: >
Identifier of the VNF snapshot package information held by the NFVO. Shall be present when the
“Individual VNF snapshot" resource is created from a VNF snapshot package extraction.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfSnapshot:
description: >
Information about the VNF snapshot, content and/or references to its content. Shall be present
when the "Individual VNF snapshot" resource is associated to a VNF snapshot created via the
corresponding "Create VNF Snapshot" task resource or extracted from a VNF snapshot package.
$ref: "#/definitions/VnfSnapshot"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
takenFrom:
description: >
Link to the VNF instance from which this snapshot was taken. Shall be present when the
"Individual VNF snapshot" resource is associated to a VNF snapshot created via the
corresponding "Create VNF snapshot" task resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
VnfStateSnapshotInfo:
description: >
This type represents information about VNF-specific state snapshot data.
type: object
required:
- checksum
- isEncrypted
properties:
checksum:
description: >
Checksum of the VNF state snapshot file. Hash algorithms applicable to VNF snapshot package artifacts
are defined in ETSI GS NFV-SOL 010.
$ref: "../definitions/SOL002SOL003_def.yaml#/definitions/Checksum"
isEncrypted:
description: >
Reflects whether the VNF state snapshot content is encrypted (true) or not (false).
$ref: "../definitions/SOL002SOL003_def.yaml#/definitions/Boolean"
metadata:
description: >
The metadata with additional information such as content type, size, creation date, etc.
$ref: "../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
VnfSnapshot:
description: >
This type represents a VNF snapshot.
type: object
required:
- id
- vnfInstanceId
- triggeredAt
- vnfdId
- vnfInfo
- vnfcSnapshots
properties:
id:
description: >
Identifier of the VNF Snapshot. This identifier is allocated by the VNFM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfInstanceId:
description: >
Identifier of the snapshotted VNF instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
creationStartedAt:
description: >
Timestamp indicating when the VNF snapshot creation has been started by the VNFM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
creationFinishedAt:
description: >
Timestamp indicating when the VNF snapshot has been completed by the VNFM.
Shall be present once the VNF snapshot creation has been completed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfdId:
description: >
Identifier of the VNFD in use at the time the snapshot of the VNF instance has been created.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfInstance:
description: >
VNF Instance information of the snapshotted VNF instance. This is a copy of the "ndividual VNF instance" resource.
$ref: '#/definitions/VnfInstance'
vnfcSnapshots:
description: >
Information about VNFC snapshots constituting this VNF snapshot.
type: array
items:
$ref: '#/definitions/VnfcSnapshotInfo'
vnfStateSnapshotInfo:
description: >
Information about VNF-specific state snapshot data.
This attribute shall not be present before the VNF snapshot has been completed.
Otherwise, this attribute shall be present if the VNF snapshot has associated
additional VNF-specific state data.
$ref: '#/definitions/VnfStateSnapshotInfo'
userDefinedData:
description: >
User defined data for the VNF snapshot.
$ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
vnfStateSnapshot:
description: >
Link to the "VNF state snapshot" resource. This attribute shall not be
present before the VNF snapshot has been completed. Otherwise, this
attribute shall be present if the VNF snapshot has associated additional
VNFspecific state data.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
VnfcSnapshotInfo:
description: >
This type represents a VNFC snapshot.
NOTE 1: The identifier of the compute snapshot resource is assigned during creation of a VNFC snapshot
being returned from the VIM as output data in the response message of the individual resource
operations. This attribute shall only be present for a VNFC snapshot that has been newly created
by the VNFM as a result of the "Create VNF snapshot task".
NOTE 2: The identifier of the storage snapshot resource is assigned during creation of a VNFC snapshot being
returned from the VIM as output data in the response message of the individual resource operations.
This attribute shall only be present for a VNFC snapshot with an associated storage resource and that
has been newly created by the VNFM as a result of the "Create VNF snapshot task".
type: object
required:
- id
- vnfcInstanceId
- triggeredAt
- vnfcResourceId
properties:
id:
description: >
Identifier of the information held by the VNFM about a specific VNFC snapshot. This identifier is allocated by
the VNFM and is unique within the scope of a VNF snapshot.
The attribute also identifies the compute snapshot image associated to this VNFC snapshot within the context of
a referred VNF snapshot.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
vnfcInstanceId:
description: >
Identifier of the snapshotted VNFC instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
creationStartedAt:
description: >
Timestamp indicating when the VNF snapshot creation has been started by the VNFM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
creationFinishedAt:
description: >
Timestamp indicating when the VNFC snapshot has been completed. Shall be present once the VNFC snapshot
creation has been completed by the VNFM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfcResourceInfoId:
description: >
Reference to the "VnfcResourceInfo" structure in the "VnfInstance" structure that represents the resource
of the snapshotted VNFC instance. A snapshot of that structure is available in the "vnfInstance" attribute
of the "VnfSnapshot" structure.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
computeSnapshotResource:
description: >
Reference to a compute snapshot resource. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
storageSnapshotResources:
description: >
Mapping of the storage resources associated to the VNFC with the storage snapshot resources.
type: array
items:
type: object
required:
- storageResourceId
properties:
storageResourceId:
description: >
Reference to the "VirtualStorageResourceInfo" structure in the "VnfInstance" structure
that represents the virtual storage resource.
The attribute also identifies the storage snapshot image associated to this VNFC snapshot
within the context of a referred VNF snapshot.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
storageSnapshotResource:
description: >
Reference to a storage snapshot resource. See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
userDefinedData:
description: >
User defined data for the VNFC snapshot.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
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.
Note: If only the value or the presence of this attribute is changed in the "VnfVirtualLinkResourceInfo"
structure by an LCM operation occurrence, this does not represent a change that requires including
a related "AffectedVirtualLink" structure in the VNF LCM operation occurrence notifications or the
"VnfLcmOpOcc" structure related to this LCM operation occurrence.
type: object
required:
- id
- vnfVirtualLinkDescId
- networkResource
properties:
id:
description: >
Identifier of this VnfVirtualLinkResourceInfo instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
vnfVirtualLinkDescId:
description: >
Identifier of the VNF Virtual Link Descriptor (VLD) in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
current VNF package" operation or due to its final failure). See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
networkResource:
description: >
Reference to the VirtualNetwork resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
zoneId:
description: >
The identifier of the resource zone, as managed by the resource
management layer (typically, the VIM), where the referenced
VirtualNetwork resource is placed. Shall be provided if this
information is available from the VIM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
reservationId:
description: >
The reservation identifier applicable to the resource. It shall be
present when an applicable reservation exists.
$ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
AffectedVnfc:
description: >
This type provides information about added, deleted, modified and temporary VNFCs.
NOTE: The "resourceDefinitionId" attribute provides information to the API consumer
(i.e. the NFVO) to assist in correlating the resource changes performed during
the LCM operation with the granted resources in a specific Grant exchange, which
is identified by the "grantId" available in the "Individual VNF lifecycle management
operation occurrence" and the "id" in the "Individual Grant".
type: object
required:
- id
- vduId
- changeType
- computeResource
properties:
id:
description: >
Identifier of the Vnfc instance, identifying the applicable
"vnfcResourceInfo" entry in the "VnfInstance" data type.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
vduId:
description: >
Identifier of the related VDU in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case of a "change current VNF Package" to identify whether the affected VNFC instance is
associated to a VDU which is referred from the source or destination VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
changeType:
description: >
Signals the type of change. Permitted values:
* ADDED
* REMOVED
* MODIFIED
* TEMPORARY
For a temporary resource, an AffectedVnfc structure exists as long
as the temporary resource exists.
type: string
enum:
- ADDED
- REMOVED
- MODIFIED
- TEMPORARY
computeResource:
description: >
Reference to the VirtualCompute resource. Detailed information is
(for new and modified resources) or has been (for removed
resources) available from the VIM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
resourceDefinitionId:
description: >
The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence.
It shall be present when an applicable GrantInfo for thegranted resource exists. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
zoneId:
description: >
The identifier of the resource zone, as managed by the resource management
layer (typically, the VIM), where the referenced VirtualCompute resource is placed.
Shall be provided if this information is available from the VIM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
metadata:
description: >
Metadata about this resource.
The content of this attribute shall be a copy of the content of the
"metadata" attribute of the VnfcResourceInfo structure.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
affectedVnfcCpIds:
description: >
Identifiers of CP(s) of the VNFC instance that were affected by the
change.
Shall be present for those affected CPs of the VNFC instance that
are associated to an external CP of the VNF instance.
May be present for further affected CPs of the VNFC instance.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
addedStorageResourceIds:
description: >
References to VirtualStorage resources that have been added. Each
value refers to a VirtualStorageResourceInfo item in the
VnfInstance that was added to the VNFC. It shall be provided if at
least one storage resource was added to the VNFC.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
removedStorageResourceIds:
description: >
References to VirtualStorage resources that have been removed.
The value contains the identifier of a VirtualStorageResourceInfo
item that has been removed from the VNFC, and might no longer exist
in the VnfInstance.
It shall be provided if at least one storage resource was removed
from the VNFC.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
VnfLcmOpOcc:
description: >
This type represents a VNF lifecycle management operation occurrence.
NOTE 1: This allows the NFVO to obtain the information contained in the latest
"result" notification if it has not received it due to an error or a
wrongly configured subscription filter.
NOTE 2: Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange
shall be present.
NOTE 3: For a particular affected VL, there shall be as many "AffectedVirtualLink"
entries as needed for signalling the different types of changes, i.e. one
per virtual link and change type. For instance, in the case of signaling
affected VL instances involving the addition of a particular VL instance
with links ports, one "AffectedVirtualLink" entry signals the addition of
the VL by using the "changeType" attribute of "AffectedVirtualLink" structure
equal to "ADDED", and another "AffectedVirtualLink" entry signals the addition
of externally visible VNF link ports of the VL by using the "changeType" equal
to "LINK_PORT_ADDED".
NOTE 4: A coordination action has timed out if the VNFM has not been able to read the
"Individual coordination action" resource within a timeout interval after requesting
the coordination to be started or to be cancelled. The length of the timeout interval
is defined by means outside the scope of the present document.
NOTE 5: The list of rejected coordinations may be garbage collected if the LCM operation
occurrence has reached a terminal state, i.e. one of "COMPLETED", "FAILED" and "ROLLED_BACK".
type: object
oneOf:
- required:
- changedInfo
- required:
- modificationsTriggeredByVnfPkgChange
required:
- id
- operationState
- stateEnteredTime
- startTime
- vnfInstanceId
- operation
- isAutomaticInvocation
- isCancelPending
properties:
id:
description: >
Identifier of this VNF lifecycle management operation occurrence.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
operationState:
description: >
The state of the LCM operation.
$ref: "#/definitions/LcmOperationStateType"
stateEnteredTime:
description: >
Date-time when the current state has been entered.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
startTime:
description: >
Date-time of the start of the operation.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfInstanceId:
description: >
Identifier of the VNF instance to which the operation applies
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
grantId:
description: >
Identifier of the grant related to this VNF LCM operation
occurrence. Shall be set to the value of the "id" attribute
in the "Grant" representing the associated "Individual Grant",
if such grant exists.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
operation:
description: >
Type of the actual LCM operation represented by this VNF LCM
operation occurrence.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/LcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
by an automated procedure inside the VNFM (i.e.
ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
triggered by auto-heal). Set to false otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
operationParams:
description: >
Input parameters of the LCM operation. This attribute shall be
formatted according to the request data type of the related LCM
operation. In addition, the provisions in clause 5.7 shall apply.
The following mapping between operationType and the
data type of this attribute shall apply:
* INSTANTIATE: InstantiateVnfRequest
* SCALE: ScaleVnfRequest
* SCALE_TO_LEVEL: ScaleVnfToLevelRequest
* CHANGE_FLAVOUR: ChangeVnfFlavourRequest
* OPERATE: OperateVnfRequest
* HEAL: HealVnfRequest
* CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest
* TERMINATE: TerminateVnfRequest
* MODIFY_INFO: VnfInfoModifications
* CREATE_SNAPSHOT: CreateVnfSnapshotRequest
* REVERT_TO_SNAPSHOT: RevertToVnfSnapshotRequest
* CHANGE_VNFPKG: ChangeCurrentVnfPkgRequest
type: object
isCancelPending:
description: >
If the VNF LCM operation occurrence is in "STARTING", "PROCESSING"
or "ROLLING_BACK" state and the operation is being cancelled, this
attribute shall be set to true. Otherwise, it shall be set to false.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
cancelMode:
description: >
The mode of an ongoing cancellation. Shall be present when
isCancelPending=true, and shall be absent otherwise.
$ref: "#/definitions/CancelModeType"
error:
description: >
If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState"
is "PROCESSING" or "ROLLING_BACK" and previous value of
"operationState" was "FAILED_TEMP", this attribute shall be present
and contain error information, unless it has been requested to be
excluded via an attribute selector.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
resourceChanges:
description: >
This attribute contains information about the cumulative changes to
virtualised resources that were performed so far by the LCM
operation since its start, if applicable.
type: object
properties:
affectedVnfcs:
description: >
Information about VNFC instances that were affected during the lifecycle operation.
See note 1.
type: array
items:
$ref: "#/definitions/AffectedVnfc"
affectedVirtualLinks:
description: >
Information about VL instances that were affected during the lifecycle operation.
See notes 1 and 3.
type: array
items:
$ref: "#/definitions/AffectedVirtualLink"
affectedExtLinkPorts:
description: >
Information about external VNF link ports that were affected during the lifecycle operation.
See note 1.
type: array
items:
$ref: "#/definitions/AffectedExtLinkPort"
affectedVirtualStorages:
description: >
Information about virtualised storage instances that were affected during the lifecycle operation.
See note 1.
type: array
items:
$ref: "#/definitions/AffectedVirtualStorage"
changedInfo:
description: >
Information about the changed VNF instance information, including VNF configurable properties,
if applicable. See note 1 and note 2.
$ref: "#/definitions/VnfInfoModifications"
affectedVipCps:
description: >
Information about virtual IP CP instances that were affected during
the execution of the lifecycle management operation.
type: array
items:
$ref: "#/definitions/AffectedVipCp"
changedExtConnectivity:
description: >
Information about changed external connectivity, if applicable. See note 1.
type: array
items:
$ref: "#/definitions/ExtVirtualLinkInfo"
modificationsTriggeredByVnfPkgChange:
description: >
Information about performed changes of "VnfInstance" attributes triggered by changing the current VNF package,
if applicable. Shall be absent if the "operation" attribute is different from "CHANGE_VNFPKG".
See notes 1 and 2.
$ref: "#/definitions/ModificationsTriggeredByVnfPkgChange"
vnfSnapshotInfoId:
description: >
Identifier of the "individual VNF snapshot" resource. Shall be present if applicable to the type of LCM operation,
i.e., if the value of the "operation" attribute is either "CREATE_SNAPSHOT" or "REVERT_TO_SNAPSHOT".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
lcmCoordinations:
description: >
Information about LCM coordination actions (see clause 10 in ETSI GS NFV-SOL002) related to this LCM operation occurrence.
type: array
items:
type: object
required:
- id
- coordinationActionName
- startTime
- endpointType
properties:
id:
description: >
Identifier of this coordination action.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
coordinationActionName:
description: >
Indicator of the actual coordination action.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
coordinationResult:
description: >
The result of executing the coordination action which also implies the action to be performed by the VNFM as
the result of this coordination.
Shall be present if the coordination has been finished. Shall be absent if the coordination is ongoing or has
timed out (see note 4).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/LcmCoordResultType"
startTime:
description: >
The time when the VNFM has received the confirmation that the coordination action has been started.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
endTime:
description: >
The time when the VNFM has received the confirmation that the coordination action has finished or has been
cancelled, or the time when a coordination action has timed out. Shall be present for a coordination
action that has finished or timed out (see note 4) and shall be absent if the coordination is ongoing.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
delay:
description: >
The end of the delay period.
This attribute shall be present if the last known HTTP response related to this coordination has
contained a "Retry-After" header, and shall be absent otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
endpointType:
description: >
The endpoint type used by this coordination action.
Valid values:
• MGMT: coordination with other operation supporting management systems (e.g. EM)
• VNF: coordination with the VNF instance
type: string
enum:
- MGMT
- VNF
rejectedLcmCoordinations:
description: >
Information about LCM coordination actions (see clause 10 in ETSI GS NFV-SOL002) that were rejected
by 503 error which means they can be tried again after a delay. See note 5.
type: array
items:
type: object
required:
- coordinationActionName
- rejectionTime
- endpointType
- delay
properties:
coordinationActionName:
description: >
Indicator of the actual coordination action.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
rejectionTime:
description: >
The time when the VNFM has received the 503 response that rejects the actual coordination.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
delay:
description: >
The end of the delay period, as calculated from the startTime and "Retry-After" header.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
endpointType:
description: >
The endpoint type used by this coordination action.
Valid values:
• MGMT: coordination with other operation supporting management systems (e.g. EM)
• VNF: coordination with the VNF instance
type: string
enum:
- MGMT
- VNF
warnings:
description: >
Warning messages that were generated while the operation was executing.
If the operation has included LCM coordination actions and these have resulted
in warnings, such warnings should be added to this attribute.
type: array
items:
type: string
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
- vnfInstance
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
vnfInstance:
description: >
Link to the VNF instance that the operation applies to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
grant:
description: >
Link to the grant for this operation, if one exists.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
cancel:
description: >
Link to the task resource that represents the "cancel" operation
for this VNF LCM operation occurrence, if cancelling is
currently allowed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
retry:
description: >
Link to the task resource that represents the "retry" operation
for this VNF LCM operation occurrence, if retrying is currently
allowed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
rollback:
description: >
Link to the task resource that represents the "rollback"
operation for this VNF LCM operation occurrence, if rolling back
is currently allowed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
fail:
description: >
Link to the task resource that represents the "fail" operation
for this VNF LCM operation occurrence, if declaring as failed is
currently allowed.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
vnfSnapshot:
description: >
Link to the VNF snapshot resource, if the VNF LCM operation occurrence is related to a VNF snapshot.
Shall be present if operation="CREATE_SNAPSHOT" or operation="REVERT_TO_SNAPSHOT".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
AffectedExtLinkPort:
description: >
This type provides information about added and deleted external link ports (link ports attached to external virtual links).
NOTE: The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to assist in correlating
the resource changes performed during the LCM operation with the granted resources in a specific Grant exchange, which
is identified by the "grantId" available in the "Individual VNF lifecycle management operation occurrence" and the "id"
in the "Individual Grant".
type: object
required:
- id
- changeType
- extCpInstanceId
- resourceHandle
properties:
id:
description: >
Identifier of the link port, identifying the applicable "extLinkPorts" entry in the "ExtVirtualLinkInfo" data
type (see clause 5.5.3.2).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
changeType:
description: >
Signals the type of change.
Permitted values:
- ADDED
- MODIFIED
- REMOVED
type: string
enum:
- ADDED
- MODIFIED
- REMOVED
extCpInstanceId:
description: >
Identifier of the related external CP instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
resourceHandle:
description: >
Reference to the link port resource.
Detailed information is (for added resources) or has been (for removed resources) available from the VIM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
resourceDefinitionId:
description: >
The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence.
It shall be present when an applicable GrantInfo for the granted resource exists. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
AffectedVirtualLink:
description: >
This type provides information about added, deleted, modified and
temporary VLs, and added or removed VNF link ports.
NOTE 1: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports,
the "networkResource" and "resourceDefinitionId" attributes refer to the affected virtual link
instance, not the link port instance. The resource handles of the affected VNF link ports can be
found by dereferencing the identifiers in the "vnfLinkPortIds" attribute.
NOTE 2: The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to
assist in correlating the resource changes performed during the LCM operation with the granted
resources in a specific Grant exchange, which is identified by the "grantId" available in the
"Individual VNF lifecycle management operation occurrence" and the "id" in the "Individual Grant".
type: object
required:
- id
- vnfVirtualLinkDescId
- changeType
- networkResource
properties:
id:
description: >
Identifier of the virtual link instance, identifying the applicable
"vnfVirtualLinkResourceInfo" or "extManagedVirtualLinkInfo" entry in the "VnfInstance" data type.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
vnfVirtualLinkDescId:
description: >
Identifier of the related VLD in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case of a "change current VNF Package" to identify whether the affected VL instance is
associated to a VLD which is referred from the source or destination VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
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.
See note 1.
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.
See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
vnfLinkPortIds:
description: >
Identifiers of the link ports of the affected VL related to the change. Each identifier references a "VnfLinkPortInfo"
structure.
Shall be set when changeType is equal to "LINK_PORT_ADDED" or "LINK_PORT_REMOVED", and the related "VnfLinkPortInfo"
structures are present (case "added") or have been present (case "removed") in the "VnfVirtualLinkResourceInfo" or
"ExtManagedVirtualLinkInfo" structures that are represented by the "vnfVirtualLinkResource¬Info" or "extManagedVirtualLinkInfo"
attribute in the "VnfInstance" structure. See note 1.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
resourceDefinitionId:
description: >
The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence.
It shall be present when an applicable GrantInfo for the granted resource exists. See note 1 and note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
zoneId:
description: >
The identifier of the resource zone, as managed by the resource
management layer (typically, the VIM), where the referenced VirtualNetwork
resource is placed. Shall be provided if this information is available from the VIM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
metadata:
description: >
Metadata about this resource.
The content of this attribute shall be a copy of the content of the
"metadata" attribute of the applicable "vnfVirtualLinkResourceInfo”
structure if such structure is referenced by the "id" attribute and it has metadata.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
AffectedVirtualStorage:
description: >
This type provides information about added, deleted, modified and temporary virtual storage resources.
NOTE: The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to
assist in correlating the resource changes performed during the LCM operation with the granted
resources in a specific Grant exchange, which is identified by the "grantId" available in the
"Individual VNF lifecycle management operation occurrence" and the "id" in the "Individual Grant".
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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
virtualStorageDescId:
description: >
Identifier of the related VirtualStorage descriptor in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case of a "change current VNF Package" to identify whether the affected virtual storage
instance is associated to a VirtualStorage descriptor which is referred from the source or destination VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
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: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
resourceDefinitionId:
description: >
The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence.
It shall be present when an applicable GrantInfo for the granted resource exists. See note.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
zoneId:
description: >
The identifier of the resource zone, as managed by the resource
management layer (typically, the VIM), where the referenced VirtualNetwork
resource is placed. Shall be provided if this information is available from the VIM.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
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: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
CreateVnfRequest:
description: >
This type represents request parameters for the "Create VNF identifier" operation.
type: object
required:
- vnfdId
properties:
vnfdId:
description: >
Identifier that identifies the VNFD which defines the VNF instance to
be created.
$ref: "../../General_Definitions/SOL003_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
metadata:
description: >
If present, this attribute provides additional initial values, overriding those obtained from the VNFD, for
the "metadata" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling metadata
during the operation are defined in clause 5.4.2.3.1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
CancelMode:
description: >
This type represents a parameter to select the mode of cancelling an
ongoing VNF LCM operation occurrence.
type: object
required:
- cancelMode
properties:
cancelMode:
description: >
Cancellation mode to apply.
$ref: "#/definitions/CancelModeType"
CancelModeType:
description: >
Cancellation mode.
GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
"ROLLING_BACK" state, the VNFM shall not start any new resource
management operation and shall wait for the ongoing resource management
operations in the underlying system, typically the VIM, to finish
execution or to time out. After that, the VNFM shall put the operation
occurrence into the FAILED_TEMP state.
If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
shall not start any resource management operation and shall wait for
the granting request to finish execution or time out. After that, the
VNFM shall put the operation occurrence into the ROLLED_BACK state.
FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
"ROLLING_BACK" state, the VNFM shall not start any new resource
management operation, shall cancel the ongoing resource management
operations in the underlying system, typically the VIM, and shall wait
for the cancellation to finish or to time out. After that, the VNFM
shall put the operation occurrence into the FAILED_TEMP state.
If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
shall not start any resource management operation and put the operation
occurrence into the ROLLED_BACK state.
type: string
enum:
- GRACEFUL
- FORCEFUL
ScaleVnfRequest:
description: >
This type represents request parameters for the "Scale VNF" operation.
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: "../../General_Definitions/SOL003_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" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
ScaleVnfToLevelRequest:
description: >
This type represents request parameters for the "Scale VNF to Level" operation.
NOTE: Either the instantiationLevelId attribute or the scaleInfo attribute shall
be included.
type: object
anyOf:
- oneOf:
- required:
- instantiationLevelId
- required:
- scaleInfo
properties:
instantiationLevelId:
description: >
Identifier of the target instantiation level of the current
deployment flavour to which the VNF is requested to be scaled.
See note.
$ref: "../../General_Definitions/SOL003_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.
See note.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/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" defined in ETSI GS NFV-IFA 011.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
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: "../../General_Definitions/SOL003_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 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"
verbosity:
description: >
This attribute signals the requested verbosity of LCM operation occurrence notifications. If it is not present,
it shall default to the value "FULL".
$ref: "#/definitions/LcmOpOccNotificationVerbosityType"
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).
NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names of
the notification types to facilitate automated code generation systems.
type: object
properties:
vnfInstanceSubscriptionFilter:
description: >
Filter criteria to select VNF instances about which to notify.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
notificationTypes:
description: >
Match particular notification types.
Permitted values:
- VnfLcmOperationOccurrenceNotification
- VnfIdentifierCreationNotification
- VnfIdentifierDeletionNotification
See note.
type: array
items:
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: "../../General_Definitions/SOL003_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"
LcmOpOccNotificationVerbosityType:
description: >
The enumeration LcmOpOccNotificationVerbosityType provides values to control the verbosity of LCM operation
occurrence notifications.
* FULL: This signals a full notification which contains all change details.
* SHORT: This signals a short notification which omits large-volume change details to reduce the size of data to
be sent via the notification mechanism.
type: string
enum:
- FULL
- SHORT
LcmOperationStateType:
description: >
STARTING: The LCM operation is starting.
PROCESSING: The LCM operation is currently in execution.
COMPLETED: The 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
LccnSubscription:
description: >
This type represents a subscription related to notifications about VNF
lifecycle changes.
type: object
required:
- id
- callbackUri
- verbosity
- _links
properties:
id:
description: >
Identifier of this subscription resource.
$ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/Uri"
verbosity:
description: >
This attribute signals the verbosity of LCM operation occurrence notifications.
$ref: "#/definitions/LcmOpOccNotificationVerbosityType"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
VnfOperationalStateType:
description: >
STARTED: The VNF instance is up and running.
STOPPED: The VNF instance has been shut down.
type: string
enum:
- STARTED
- STOPPED
VnfExtCpInfo:
description: >
This type represents information about an external CP of a VNF.
NOTE 1: The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId"
are mutually exclusive. Exactly one shall be present.
NOTE 2: An external CP instance is not associated to a link port in the cases indicated for the
“extLinkPorts” attribute in clause 4.4.1.11.
type: object
required:
- id
- cpdId
- cpConfigId
- cpProtocolInfo
oneOf:
- required:
- associatedVnfcCpId
- required:
- associatedVipCpId
- required:
- associatedVnfVirtualLinkId
properties:
id:
description: >
Identifier of the external CP instance and the related information instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
cpdId:
description: >
Identifier of the external CPD, VnfExtCpd, in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
cpConfigId:
description: >
Identifier that references the applied "VnfExtCpConfig" entry in the "cpConfig" map of the "currentVnfExtCpData"
in the "ExtVirtualLinkInfo" structure.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
current VNF package" operation or due to its final failure).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
cpProtocolInfo:
description: >
Network protocol information for this CP.
type: array
items:
$ref: "#/definitions/CpProtocolInfo"
extLinkPortId:
description: >
Identifier of the "ExtLinkPortInfo" structure inside the "ExtVirtualLinkInfo" structure.
Shall be present if the CP is associated to a link port. See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
metadata:
description: >
Metadata about this external CP.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
associatedVnfcCpId:
description: >
Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents the VNFC CP
which is exposed by this external CP instance, either directly or via a floating IP address.
Shall be present in case this CP instance maps to a VNFC CP. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
associatedVipCpId:
description: >
Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either directly or via a
floating IP address, and the related "VipCpInfo" structure in "VnfInstance". Shall be present if the
cpdId of this VnfExtCp has a vipCpd attribute. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
associatedVnfVirtualLinkId:
description: >
Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL or of the
"ExtManagedVirtualLinkInfo" structure that represents the externally-managed internal VL which is
exposed by this external CP instance. Shall be present in case this CP instance maps to an internal
VL (including externally-managed internal VL). See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
CpProtocolInfo:
description: >
This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses.
NOTE: 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: object
required:
- layerProtocol
properties:
layerProtocol:
description: >
The identifier of layer(s) and protocol(s) associated to the network address information.
Permitted values: IP_OVER_ETHERNET
See note.
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"
IpOverEthernetAddressInfo:
description: >
This type represents information about a network address that has been assigned.
NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present.
NOTE 2: Exactly one of "addresses" or "addressRange" shall be present.
NOTE 3: If the Cp instance represents a subport in a trunk, segmentationId shall be present.
Otherwise it shall not be present.
NOTE 4: Depending on the NFVI networking infrastructure, the segmentationId may indicate the
actual network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the
transport header of the packets or it may be an identifier used between the application
and the NFVI networking infrastructure to identify the network sub-interface of the trunk
port in question. In the latter case the NFVI infrastructure will map this local segmentationId
to whatever segmentationId is actually used by the NFVI’s transport technology.
type: object
anyOf:
- required:
- macAddress
- required:
- ipAddresses
oneOf:
- required:
- addresses
- required:
- addressRange
properties:
macAddress:
description: >
MAC address, if assigned. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/MacAddress"
segmentationId:
description: >
Identification of the network segment to which the Cp instance connects to. See notes 3 and 4.
type: string
ipAddresses:
description: >
Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or
dynamic IP address assignment per subnet. See note 1.
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). See note 2.
type: array
items:
$ref: "../../General_Definitions/SOL003_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. See note 2.
type: object
required:
- minAddress
- maxAddress
properties:
minAddress:
description: >
Lowest IP address belonging to the range.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IpAddress"
maxAddress:
description: >
Highest IP address belonging to the range
$ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
VipCpInfo:
description: >
This type provides information related to virtual IP (VIP) CP.
NOTE 1: It is possible that there is no associated VnfcCp because the VIP CP is available but not
associated yet.
NOTE 2: If only the value or the presence of this attribute is changed in the "VipCpInfo" structure
by an LCM operation occurrence, this does not represent a change that requires including a related
"AffectedVipCp" structure in the VNF LCM operation occurrence notifications or the "VnfLcmOpOcc"
structure related to this LCM operation occurrence.
type: object
required:
- cpInstanceId
- cpdId
properties:
cpInstanceId:
description: >
Identifier of this VIP CP instance and of this VipCpInfo structure.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
cpdId:
description: >
Identifier of the VIP Connection Point Descriptor, VipCpd, in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId attribute of the VnfInstance
(e.g. during a "Change current VNF package" operation or due to its final failure). See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfExtCpId:
description: >
When the VIP CP is exposed as external CP of the VNF, the identifier of this external VNF CP instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
cpProtocolInfo:
description: >
Protocol information for this CP. There shall be one cpProtocolInfo for layer 3.
There may be one cpProtocolInfo for layer 2.
type: array
items:
$ref: "#/definitions/CpProtocolInfo"
associatedVnfcCpIds:
description: >
Identifiers of the VnfcCps that share the virtual IP addresse allocated to the VIP CP instance. See note.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
vnfLinkPortId:
description: >
Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" or
"ExtManagedVirtualLinkInfo" structure. Shall be present if the CP is associated to a
link port on an internal VL (including externally-managed internal VL).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
metadata:
description: >
Metadata about this VIP CP.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
ExtVirtualLinkInfo:
description: >
This type represents information about an external VL.
NOTE: This attribute reflects the current configuration information that has resulted from merging into this attribute
the "VnfExtCpData" information which was passed as part of the "ExtVirtualLinkData" structure in the input of the
most recent VNF LCM operation such as "InstantiateVnfRequest", "ChangeExtVnfConnectivityRequest", "ChangeVnfFlavourRequest"
or "ChangeCurrentVnfPkgRequest", or in the Grant response. If applying such change results in an empty list of
"currentVnfExtCpData" structure instances, the affected instance of "ExtVirtualLinkInfo" shall be removed from its
parent data structure.
type: object
required:
- id
- resourceHandle
- currentVnfExtCpData
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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceHandle:
description: >
Reference to the resource realizing this VL.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
extLinkPorts:
description: >
Link ports of this VL.
type: array
items:
$ref: "#/definitions/ExtLinkPortInfo"
currentVnfExtCpData:
description: >
Allows the API consumer to read the current CP configuration information for the connection of external CPs
to the external virtual link. See note.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VnfExtCpData"
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.
NOTE 1: The use cases UC#4 and UC#5 in clause A.4 of ETSI GS NFV-IFA 007 provide examples for such a configuration.
NOTE 2: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute.
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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceHandle:
description: >
Reference to the virtualised resource realizing this link
port.
$ref: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
secondaryCpInstanceId:
description: >
Additional external CP of the VNF connected to this link port.
If present, this attribute shall refer to a "secondary" ExtCpInfo item in the VNF instance that exposes a virtual
IP CP instance which shares this linkport with the external CP instance referenced by the "cpInstanceId" attribute.
See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
trunkResourceId:
description: >
Identifier of the trunk resource in the VIM.
Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with.
See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
MonitoringParameter:
type: object
required:
- id
- performanceMetric
properties:
id:
description: >
Identifier of the monitoring parameter defined in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Identifier of the VNFD.
Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a "Change
current VNF package" operation or due to its final failure).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
name:
description: >
Human readable name of the monitoring parameter, as defined in the
VNFD.
type: string
performanceMetric:
description: >
Performance metric that is monitored. This attribute shall contain the
related "Measurement Name" value as defined in clause 7.2 of ETSI GS NFV-IFA 027.
type: string
VnfLinkPortInfo:
description: >
This type represents a link port of an internal VL of a VNF.
NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId
with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be
present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP"
and vipCpInstanceId are present, the two different CP instances share the linkport.
NOTE 2: Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId
and vnfcCpInstanceId are present (UC#5 and UC#5-b), only vnfcCpInstanceId is present (UC#2), or
only vipCpInstanceId is present (UC6 and UC#6-b).
NOTE 3: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle"
attribute.
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: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
resourceHandle:
description: >
Reference to the virtualised resource realizing this link
port.
$ref: "../../General_Definitions/SOL003_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 associated with this link port.
When the link port is used for internal connectivity in the VNF, this attribute represents the
identifier of 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 "vnfcResourceInfo"
item in the VnfInstance. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
cpInstanceType:
description: >
Type of the CP instance that is identified by cpInstanceId.
Shall be present if "cpInstanceId" is present and shall be absent otherwise.
Permitted values:
- VNFC_CP: The link port is connected to a VNFC CP.
- EXT_CP: The link port is associated to an external CP.
See note 1.
type: string
enum:
- VNFC_CP
- EXT_CP
vipCpInstanceId:
description: >
VIP CP instance of the VNF connected to this link port. May be present.
See notes 1, and 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
trunkResourceId:
description: >
Identifier of the trunk resource in the VIM.
Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with.
See note 3.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
AffectedVipCp:
description: >
This type provides information about added, deleted and modified virtual IP CP instances.
type: object
required:
- cpInstanceId
- cpdId
- changeType
properties:
cpInstanceId:
description: >
Identifier of the virtual IP CP instance and the related "VipCpInfo" structure in "VnfInstance".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
cpdId:
description: >
Identifier of the VipCpd in the VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Reference to the VNFD.
Shall be present in case of a "change current VNF Package" to
identify whether the affected virtual CP instance is associated
to a VipCpd which is referred from the source or destination VNFD.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
changeType:
description: >
Signals the type of change.
Permitted values:
- ADDED
- REMOVED
- MODIFIED
type: string
enum:
- ADDED
- REMOVED
- MODIFIED
ModificationsTriggeredByVnfPkgChange:
description: >
This type represents attribute modifications that were performed on an "Individual VNF instance" resource
when changing the current VNF package. The attributes that can be included consist of those requested to
be modified explicitly in the "ChangeCurrentVnfPkgRequest" data structure, and additional attributes of the
"VnfInstance" data structure that were modified implicitly during the operation.
NOTE 1: This attribute represents the delta (semantics as per IETF RFC 7396, JSON Merge Patch) between the value
of the attribute at the start of the "Change current VNF package" operation and the value of the attribute
at its completion.
NOTE 2: If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly
during the related operation and contains a copy of the value of the related attribute from the VNFD in the
VNF Package identified by the "vnfdId" attribute.
type: object
properties:
vnfConfigurableProperties:
description: >
This attribute signals the modifications of the "vnfConfigurableProperties" attribute in "VnfInstance" performed
by the operation and shall be present if that attribute was modified during the operation. See note 1.
In addition, the provisions in clause 5.7 shall apply.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
metadata:
description: >
This attribute signals the modifications of the "metadata" attribute in "VnfInstance" performed by the operation and
shall be present if that attribute was modified during the operation. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
extensions:
description: >
This attribute signals the modifications of the "extensions" attribute in "VnfInstance" performed by the operation and
shall be present if that attribute was modified during the operation. See note 1.
In addition, the provisions in clause 5.7 shall apply.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
vnfdId:
description: >
If present, this attribute signals the new value of the "vnfdId" attribute in "VnfInstance".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfProvider:
description: >
If present, this attribute signals the new value of the "vnfProvider" attribute in "VnfInstance". See note 2.
type: string
vnfProductName:
description: >
f present, this attribute signals the new value of the "vnfProductName" attribute in "VnfInstance". See note 2.
type: string
vnfSoftwareVersion:
description: >
If present, this attribute signals the new value of the "vnfSoftwareVersion" attribute in "VnfInstance". See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
vnfdVersion:
description: >
If present, this attribute signals the new value of the "vnfdVersion" attribute in "VnfInstance". See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Version"
vimConnectionInfo:
description: >
If present, this attribute signals the changes to VIM connection info that were passed in the related
"ChangeCurrentVnfPkgRequest" structure. The provisions for sensitive information defined in clause
4.4.1.6 apply.
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
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: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
subscription:
description: >
Link to the related subscription.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
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: "../../General_Definitions/SOL003_def.yaml#/definitions/NotificationLink"
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
CancelMode:
description: >
This type represents a parameter to select the mode of cancelling an
ongoing VNF LCM operation occurrence.
type: object
required:
- cancelMode
properties:
cancelMode:
description: >
Cancellation mode to apply.
$ref: "#/definitions/CancelModeType"
CancelModeType:
description: >
Cancellation mode.
GRACEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
"ROLLING_BACK" state, the VNFM shall not start any new resource
management operation and shall wait for the ongoing resource management
operations in the underlying system, typically the VIM, to finish
execution or to time out. After that, the VNFM shall put the operation
occurrence into the FAILED_TEMP state.
If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
shall not start any resource management operation and shall wait for
the granting request to finish execution or time out. After that, the
VNFM shall put the operation occurrence into the ROLLED_BACK state.
FORCEFUL: If the VNF LCM operation occurrence is in "PROCESSING" or
"ROLLING_BACK" state, the VNFM shall not start any new resource
management operation, shall cancel the ongoing resource management
operations in the underlying system, typically the VIM, and shall wait
for the cancellation to finish or to time out. After that, the VNFM
shall put the operation occurrence into the FAILED_TEMP state.
If the VNF LCM operation occurrence is in "STARTING" state, the VNFM
shall not start any resource management operation and put the operation
occurrence into the ROLLED_BACK state.
type: string
enum:
- GRACEFUL
- FORCEFUL
ChangeExtVnfConnectivityRequest:
#SOL003 location: 5.5.2.11
description: >
This type represents request parameters for the
"Change external VNF connectivity" operation to modify the external
connectivity of a VNF instance.
type: object
required:
- extVirtualLinks
properties:
extVirtualLinks:
description: >
Information about external VLs to change (e.g. connect the VNF to).
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the
resources for the VNF instance, or refer to external virtual
links. This attribute shall only be supported and may be present
if VNF-related resource management in direct mode is applicable.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
to the VNF being instantiated, as declared in the VNFD as part of
"ChangeExtVnfConnectivityOpConfig".".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
ChangeVnfFlavourRequest:
#SOL003 location: 5.5.2.7
description: >
This type represents request parameters for the "Change VNF flavour" operation.
type: object
required:
- newFlavourId
properties:
newFlavourId:
description: >
Identifier of the VNF deployment flavour to be instantiated.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
instantiationLevelId:
description: >
Identifier of the instantiation level of the deployment flavour to
be instantiated. If not present, the default instantiation level as
declared in the VNFD is instantiated.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
extVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about internal VLs that are managed by the NFVO.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the
resources for the VNF instance, or refer to
external / externally-managed virtual links. This attribute shall
only be supported and may be present if VNF-related resource
management in direct mode is applicable.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
to the VNF being instantiated, as declared in the VNFD as part of
"InstantiateVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
HealVnfRequest:
type: object
properties:
cause:
description: >
Indicates the reason why a healing procedure is required.
type: string
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the healing
process, specific to the VNF being healed, as declared in the VNFD
as part of "HealVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
InstantiateVnfRequest:
#SOL003 location: 5.5.2.4
type: object
required:
- flavourId
properties:
flavourId:
description: >
Identifier of the VNF deployment flavour to be instantiated.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
instantiationLevelId:
description: >
Identifier of the instantiation level of the deployment flavour to be
instantiated. If not present, the default instantiation level as
declared in the VNFD is instantiated.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
extVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about internal VLs that are managed by the NFVO.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
vimConnectionInfo:
description: >
Information about VIM connections to be used for managing the
resources for the VNF instance, or refer to
external / externally-managed virtual links. This attribute shall
only be supported and may be present if VNF-related resource
management in direct mode is applicable.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
localizationLanguage:
description: >
Localization language of the VNF to be instantiated. The value shall
comply with the format defined in IETF RFC 5646.
type: string
additionalParams:
description: >
Additional input parameters for the instantiation process, specific
to the VNF being instantiated, as declared in the VNFD as part of
"InstantiateVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
LccnLinks:
description: >
This type represents the links to resources that a notification can
contain.
type: object
required:
- vnfInstance
- subscription
properties:
vnfInstance:
description: >
Link to the resource representing the VNF instance to which the
notified change applies.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
subscription:
description: >
Link to the related subscription.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
vnfLcmOpOcc:
description: >
Link to the VNF lifecycle management operation occurrence that this
notification is related to. Shall be present if there is a related
lifecycle operation occurrence.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
LccnSubscription:
description: >
This type represents a subscription related to notifications about VNF
lifecycle changes.
type: object
required:
- id
- callbackUri
- _links
properties:
id:
description: >
Identifier of this subscription resource.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular
notification is sent to the subscriber if the filter matches, or if
there is no filter.
$ref: "#/definitions/LifecycleChangeNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
properties:
self:
description: >
URI of this resource.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
LccnSubscriptionRequest:
description: >
This type represents a subscription request related to notifications
about VNF lifecycle changes.
type: object
required:
- callbackUri
properties:
filter:
description: >
Filter settings for this subscription, to define the subset of all
notifications this subscription relates to. A particular
notification is sent to the subscriber if the filter matches, or if
there is no filter.
$ref: "#/definitions/LifecycleChangeNotificationsFilter"
callbackUri:
description: >
The URI of the endpoint to send the notification to.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/Uri"
authentication:
description: >
Authentication parameters to configure the use of Authorization when
sending notifications corresponding to this subscription, as defined
in clause 4.5.3.4.
This attribute shall only be present if the subscriber requires
authorization of notifications.
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication"
LcmOperationStateType:
description: >
Value | Description
------|------------
STARTING | The LCM operation is starting.
PROCESSING | The LCM operation is currently in execution.
COMPLETED | he LCM operation has been completed successfully.
FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed.
FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed.
ROLLING_BACK | The LCM operation is currently being rolled back.
ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.
type: string
enum:
- STARTING
- PROCESSING
- COMPLETED
- FAILED_TEMP
- FAILED
- ROLLING_BACK
- ROLLED_BACK
LifecycleChangeNotificationsFilter:
description: >
This type represents a subscription filter related to notifications
about VNF lifecycle changes.
At a particular nesting level in the filter structure, the following
applies: All attributes shall match in order for the filter to match
(logical "and" between different filter attributes). If an attribute is
an array, the attribute shall match if at least one of the values in
the array matches (logical "or" between the values of one filter
attribute).
type: object
properties:
vnfInstanceSubscriptionFilter:
description: >
Filter criteria to select VNF instances about which to notify.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter"
notificationTypes:
description: >
Match particular notification types.
Permitted values:
* VnfLcmOperationOccurrenceNotification
* VnfIdentifierCreationNotification
* VnfIdentifierDeletionNotification
The permitted values of the "notificationTypes" attribute are
spelled exactly as the names of the notification types to
facilitate automated code generation systems.
type: string
enum:
- VnfLcmOperationOccurrenceNotification
- VnfIdentifierCreationNotification
- VnfIdentifierDeletionNotification
operationTypes:
description: >
Match particular VNF lifecycle operation types for the notification
of type VnfLcmOperationOccurrenceNotification.
May be present if the "notificationTypes" attribute contains the
value "VnfLcmOperationOccurrenceNotification", and shall be absent
otherwise.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
operationStates:
description: >
Match particular LCM operation state values as reported in
notifications of type VnfLcmOperationOccurrenceNotification.
May be present if the "notificationTypes" attribute contains the
value "VnfLcmOperationOccurrenceNotification", and shall be absent
otherwise.
type: array
items:
$ref: "#/definitions/LcmOperationStateType"
OperateVnfRequest:
description: >
This type represents request parameters for the "Operate VNF" operation.
type: object
required:
- changeStateTo
properties:
changeStateTo:
description: >
The desired operational state (i.e. started or stopped) to change
the VNF to.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType"
stopType:
description: >
It signals whether forceful or graceful stop is requested.
The “stopType” and “gracefulStopTimeout” attributes shall be absent,
when the “changeStateTo” attribute is equal to “STARTED”. The
“gracefulStopTimeout” attribute shall be present, when the
“changeStateTo” is equal to “STOPPED” and the “stopType” attribute
is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be
absent, when the “changeStateTo” attribute is equal to “STOPPED” and
the “stopType” attribute is equal to “FORCEFUL”. The request shall
be treated as if the “stopType” attribute was set to ”FORCEFUL”, when
the “changeStateTo” attribute is equal to “STOPPED” and the
“stopType” attribute is absent.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/StopType"
gracefulStopTimeout:
description: >
The time interval (in seconds) to wait for the VNF to be taken out
of service during graceful stop, before stopping the VNF.
The “stopType” and “gracefulStopTimeout” attributes shall be absent,
when the “changeStateTo” attribute is equal to “STARTED”. The
“gracefulStopTimeout” attribute shall be present, when the
“changeStateTo” is equal to “STOPPED” and the “stopType” attribute
is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be
absent, when the “changeStateTo” attribute is equal to “STOPPED” and
the “stopType” attribute is equal to “FORCEFUL”. The request shall
be treated as if the “stopType” attribute was set to ”FORCEFUL”, when
the “changeStateTo” attribute is equal to “STOPPED” and the
“stopType” attribute is absent.
type: integer
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the process,
specific to the VNF of which the operation status is changed, as
declared in the VNFD as part of "OperateVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
ScaleInfo:
required:
- aspectId
- scaleLevel
type: object
properties:
aspectId:
description: >
Identifier of the scaling aspect.
$ref: "#/definitions/IdentifierInVnfd"
scaleLevel:
description: >
Indicates the scale level. The minimum value shall be 0 and the
maximum value shall be <= maxScaleLevel as described in the VNFD.
type: integer
ScaleVnfRequest:
type: object
required:
- type
- aspectId
properties:
type:
description: >
Indicates the type of the scale operation requested.
Permitted values:
* SCALE_OUT: adding additional VNFC instances to the VNF to increase
capacity
* SCALE_IN: removing VNFC instances from the VNF in order to release
unused capacity.
type: string
enum:
- SCALE_OUT
- SCALE_IN
aspectId:
description: >
Identifier of the scaling aspect.
$ref: "#/definitions/IdentifierInVnfd"
numberOfSteps:
description: >
Number of scaling steps to be executed as part of this Scale VNF
operation. It shall be a positive number and the default value
shall be 1.
type: integer
default: 1
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the scaling
process, specific to the VNF being scaled, as declared in the VNFD
as part of "ScaleVnfOpConfig".
$ref: "#/definitions/KeyValuePairs"
ScaleVnfToLevelRequest:
description: >
This type represents request parameters for the "Scale VNF to Level"
operation.
type: object
properties:
instantiationLevelId:
description: >
Identifier of the target instantiation level of the current
deployment flavour to which the VNF is requested to be scaled.
Either the instantiationLevelId attribute or the scaleInfo attribute
shall be included.
$ref: "#/definitions/IdentifierInVnfd"
scaleInfo:
description: >
For each scaling aspect of the current deployment flavour, indicates
the target scale level to which the VNF is to be scaled.
Either the instantiationLevelId attribute or the scaleInfo attribute
shall be included.
type: array
items:
$ref: "#/definitions/ScaleInfo"
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the scaling
process, specific to the VNF being scaled, as declared in the
VNFD as part of "ScaleVnfToLevelOpConfig".
$ref: "#/definitions/KeyValuePairs"
StopType:
description: >
* FORCEFUL: The VNFM will stop the VNF immediately after accepting the
request.
* 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
TerminateVnfRequest:
type: object
required:
- terminationType
properties:
terminationType:
description: >
Indicates whether forceful or graceful termination is requested.
Permitted values:
* FORCEFUL: The VNFM will shut down the VNF and release the
resources immediately after accepting the request.
* GRACEFUL: The VNFM will first arrange to take the VNF out of
service after accepting the request. Once the operation of taking
the VNF out of service finishes (irrespective of whether it has
succeeded or failed) or once the timer value specified in the
"gracefulTerminationTimeout" attribute expires, the VNFM will shut
down the VNF and release the resources.
type: string
enum:
- FORCEFUL
- GRACEFUL
gracefulTerminationTimeout:
description: >
This attribute is only applicable in case of graceful termination.
It defines the time to wait for the VNF to be taken out of service
before shutting down the VNF and releasing the resources.
The unit is seconds.
If not given and the "terminationType" attribute is set to
"GRACEFUL", it is expected that the VNFM waits for the successful
taking out of service of the VNF, no matter how long it takes,
before shutting down the VNF and releasing the resources.
type: integer
additionalParams:
description: >
Additional parameters passed by the NFVO as input to the termination
process, specific to the VNF being terminated, as declared in the
VNFD as part of "TerminateVnfOpConfig".
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
VnfLcmOpOcc:
description: >
This type represents a VNF lifecycle management operation occurrence.
type: object
required:
- id
- operationState
- stateEnteredTime
- startTime
- vnfInstanceId
- operation
- isAutomaticInvocation
- operationParams
- isCancelPending
properties:
id:
description: >
Identifier of this VNF lifecycle management operation occurrence.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
operationState:
description: >
The state of the LCM operation.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType"
stateEnteredTime:
description: >
Date-time when the current state was entered.
type: string
format: date-time
startTime:
description: >
Date-time of the start of the operation.
type: string
format: date-time
vnfInstanceId:
description: >
Identifier of the VNF instance to which the operation applies
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
grantId:
description: >
Identifier of the grant related to this VNF LCM operation
occurrence, if such grant exists.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
operation:
description: >
Type of the actual LCM operation represented by this VNF LCM
operation occurrence.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
by an automated procedure inside the VNFM (i.e.
ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
triggered by auto-heal). Set to false otherwise.
type: boolean
operationParams:
description: >
Input parameters of the LCM operation. This attribute shall be
formatted according to the request data type of the related LCM
operation. The following mapping between operationType and the
data type of this attribute shall apply:
* INSTANTIATE: InstantiateVnfRequest
* SCALE: ScaleVnfRequest
* SCALE_TO_LEVEL: ScaleVnfToLevelRequest
* CHANGE_FLAVOUR: ChangeVnfFlavourRequest
* OPERATE: OperateVnfRequest
* HEAL: HealVnfRequest
* CHANGE_EXT_CONN: ChangeExtVnfConnectivityRequest
* TERMINATE: TerminateVnfRequest
* MODIFY_INFO: VnfInfoModificationRequest
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
isCancelPending:
description: >
If the VNF LCM operation occurrence is in "STARTING", "PROCESSING"
or "ROLLING_BACK" state and the operation is being cancelled, this
attribute shall be set to true. Otherwise, it shall be set to false.
type: boolean
cancelMode:
description: >
The mode of an ongoing cancellation. Shall be present when
isCancelPending=true, and shall be absent otherwise.
$ref: "#/definitions/CancelModeType"
error:
description: >
If "operationState" is "FAILED_TEMP" or "FAILED" or "operationState"
is "PROCESSING" or "ROLLING_BACK" and previous value of
"operationState" was "FAILED_TEMP", this attribute shall be present
and contain error information, unless it has been requested to be
excluded via an attribute selector.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
resourceChanges:
description: >
This attribute contains information about the cumulative changes to
virtualised resources that were performed so far by the LCM
operation since its start, if applicable.
type: object
properties:
affectedVnfcs:
description: >
Information about VNFC instances that were affected during the
lifecycle operation.
This allows the NFVO to obtain the information contained in the
latest "result" notification if it has not received it due to an
error or a wrongly configured subscription filter.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/AffectedVnfc"
affectedVirtualLinks:
description: >
Information about VL instances that were affected during the
lifecycle operation.
This allows the NFVO to obtain the information contained in the
latest "result" notification if it has not received it due to an
error or a wrongly configured subscription filter.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink"
affectedVirtualStorages:
description: >
Information about virtualised storage instances that were affected
during the lifecycle operation.
This allows the NFVO to obtain the information contained in the
latest "result" notification if it has not received it due to an
error or a wrongly configured subscription filter.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage"
changedInfo:
description: >
Information about the changed VNF instance information, including
VNF configurable properties, if applicable.
This allows the NFVO to obtain the information contained in the
latest "result" notification if it has not received it due to an
error or a wrongly configured subscription filter.
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications"
changedExtConnectivity:
description: >
Information about changed external connectivity, if applicable.
This allows the NFVO to obtain the information contained in the
latest "result" notification if it has not received it due to an
error or a wrongly configured subscription filter.
type: array
items:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo"
_links:
description: >
Links to resources related to this resource.
type: object
required:
- self
- vnfInstance
properties:
self:
description: >
URI of this resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
vnfInstance:
description: >
Link to the VNF instance that the operation applies to.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
grant:
description: >
Link to the grant for this operation, if one exists.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
cancel:
description: >
Link to the task resource that represents the "cancel" operation
for this VNF LCM operation occurrence, if cancelling is
currently allowed.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
retry:
description: >
Link to the task resource that represents the "retry" operation
for this VNF LCM operation occurrence, if retrying is currently
allowed.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
rollback:
description: >
Link to the task resource that represents the "rollback"
operation for this VNF LCM operation occurrence, if rolling back
is currently allowed.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
fail:
description: >
Link to the task resource that represents the "fail" operation
for this VNF LCM operation occurrence, if declaring as failed is
currently allowed.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
VnfOperationalStateType:
type: string
enum:
- STARTED
- STOPPED
- ERROR
responses:
202-with-Location:
description: >
The request was accepted for processing, but the processing has not
been completed. On success, the HTTP response shall include a
"Location" HTTP header that contains the URI of the newly-created
"VNF LCM operation occurrence" resource corresponding to the
operation.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Location:
description: The resource URI of the created VNF instance
type: string
format: url
schema:
$ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
202-with-Location-empty:
description: >
The request was accepted for processing, but the processing has not
been completed. On success, the HTTP response shall include a
"Location" HTTP header that contains the URI of the newly-created
"VNF LCM operation occurrence" resource corresponding to the
operation.
The response body shall be empty.
headers:
Location:
description: The resource URI of the created VNF instance
type: string
format: url
409-another-lcm-operation-ongoing:
description: >
The operation cannot be executed currently, due to a conflict with the
state of the VNF instance resource.
Typically, this is due to the fact that another LCM operation is
ongoing.
The response body shall contain a ProblemDetails structure, in which the
"detail" attribute should convey more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
409-inconsistent-state:
description: >
Another request is in progress that prohibits the fulfilment of
the current request, or the current resource state is inconsistent
with the request.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
409-state-conflict-INSTANTIATED:
description: >
The operation cannot be executed currently, due to a conflict with the
state of the VNF instance resource.
Typically, this is due to the fact that the VNF instance resource is in
INSTANTIATED state.
The response body shall contain a ProblemDetails structure, in which the
"detail" attribute should convey more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
409-state-conflict-not-FAILED_TEMP:
description: >
The operation cannot be executed currently, due to a conflict with the
state of the VNF instance resource.
Typically, this is due to the fact that the VNF instance resource is
not in FAILED_TEMP state, or another error handling action is starting,
such as rollback or fail.
The response body shall contain a ProblemDetails structure, in which the
"detail" attribute should convey more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
409-state-conflict-NOT-INSTANTIATED:
description: >
The operation cannot be executed currently, due to a conflict with the
state of the VNF instance resource.
Typically, this is due to the fact that the VNF instance resource is in
NOT-INSTANTIATED state, or that another lifecycle management operation
is ongoing.
The response body shall contain a ProblemDetails structure, in which the
"detail" attribute should convey more information about the error.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.4.1"
title: DRAFT - SOL003 - VNF Lifecycle Management Notification interface
description: >
DRAFT - SOL003 - VNF Lifecycle Management Notification interface
title: SOL003 - VNF Lifecycle Management Notification interface
description: |
SOL003 - VNF Lifecycle 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"
url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
name: "NFV-SOL WG"
version: "2.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
basePath: "/callback/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/callback/v2
- url: https://127.0.0.1/callback/v2
paths:
###############################################################################
# Notification endpoint VnfLcmOperationOccurrenceNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification':
###############################################################################
# Notification endpoint VnfLcmOperationOccurrenceNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-VnfLcmOperationOccurrenceNotification:
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.
parameters:
- name: VnfLcmOperationOccurrenceNotification
description: A notification about on-boarding of a VNF package.
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleManagementNotification_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification"
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 5.4.20.3.1.
requestBody:
$ref: '#/components/requestBodies/VnfLcmOperationOccurrenceNotification'
responses:
204:
$ref: '#/components/responses/VnfLcmOperationOccurrenceNotification.Post.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"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
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"
get:
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 5.4.20.3.2.
responses:
204:
description: >
The notification was delivered successfully.
$ref: '#/components/responses/VnfLcmOperationOccurrenceNotification.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-task-not-suported-VNF-LCM"
$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 VnfIdentifierCreationNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
###############################################################################
# Notification endpoint VnfIdentifierCreationNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierCreationNotification:
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.
parameters:
- name: VnfIdentifierCreationNotification
description: >
A notification about the creation of a VNF identifier and the
related VNF instance resource.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierCreationNotification"
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 5.4.20.3.1.
requestBody:
$ref: '#/components/requestBodies/VnfIdentifierCreationNotification'
responses:
204:
description: >
The notification was delivered successfully.
$ref: '#/components/responses/VnfIdentifierCreationNotification.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-task-not-suported-VNF-LCM"
$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 VnfIdentifierDeletionNotification #
###############################################################################
'/URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
get:
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 5.4.20.3.2.
responses:
204:
$ref: '#/components/responses/VnfIdentifierCreationNotification.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"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
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"
###############################################################################
# Notification endpoint VnfIdentifierDeletionNotification #
###############################################################################
/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierDeletionNotification:
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.
parameters:
- name: VnfIdentifierDeletionNotification
description: >
A notification about the deletion of a VNF identifier and the
related VNF instance resource.
in: body
required: true
schema:
$ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierDeletionNotification"
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 5.4.20.3.1.
requestBody:
$ref: '#/components/requestBodies/VnfIdentifierDeletionNotification'
responses:
204:
$ref: '#/components/responses/VnfIdentifierDeletionNotification.Post.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"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
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"
get:
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 5.4.20.3.2.
responses:
204:
description: >
The notification was delivered successfully.
$ref: '#/components/responses/VnfIdentifierDeletionNotification.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-task-not-suported-VNF-LCM"
$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:
VnfLcmOperationOccurrenceNotification:
description: |
A notification about lifecycle changes triggered by a VNF LCM operation occurrence..
content:
application/json:
schema:
$ref: "definitions/SOL003VNFLifecycleManagementNotification_def.yaml#/definitions/VnfLcmOperationOccurrenceNotification"
required: true
VnfIdentifierCreationNotification:
description: |
A notification about the creation of a VNF identifier and the related "Individual VNF instance" resource.
content:
application/json:
schema:
$ref: "definitions/SOL003VNFLifecycleManagementNotification_def.yaml#/definitions/VnfIdentifierCreationNotification"
required: true
VnfIdentifierDeletionNotification:
description: |
A notification about the deletion of a VNF identifier and the related "Individual VNF instance" resource.
content:
application/json:
schema:
$ref: "definitions/SOL003VNFLifecycleManagementNotification_def.yaml#/definitions/VnfIdentifierDeletionNotification"
required: true
responses:
VnfLcmOperationOccurrenceNotification.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: The used API version.
style: simple
explode: false
schema:
type: string
VnfLcmOperationOccurrenceNotification.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: The used API version.
style: simple
explode: false
schema:
type: string
VnfIdentifierCreationNotification.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: The used API version.
style: simple
explode: false
schema:
type: string
VnfIdentifierCreationNotification.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: The used API version.
style: simple
explode: false
schema:
type: string
VnfIdentifierDeletionNotification.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: The used API version.
style: simple
explode: false
schema:
type: string
VnfIdentifierDeletionNotification.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: 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:
VnfIdentifierCreationNotification:
description: >
This type represents a VNF identifier creation notification, which
informs the receiver of the creation of a new "Individual VNF instance" resource and
the associated VNF instance identifier.
This notification shall be triggered by the VNFM when it has created an
"Individual VNF instance" resource and the associated VNF instance identifier.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- vnfInstanceId
- _links
properties:
id:
description: >
Identifier of the VNF instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"VnfIdentifierCreationNotification" for this notification type.
type: string
enum:
- VnfIdentifierCreationNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfInstanceId:
description: >
The created VNF instance identifier.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links to resources related to this notification.
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks"
VnfIdentifierDeletionNotification:
description: >
This type represents a VNF identifier deletion notification, which
informs the receiver of the deletion of a new "Individual VNF instance" resource and
the associated VNF instance identifier.
This notification shall be triggered by the VNFM when it has deleted an
"Individual VNF instance" resource and the associated VNF instance identifier.
type: object
required:
- id
- notificationType
- subscriptionId
- 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: "../../General_Definitions/SOL003_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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
vnfInstanceId:
description: >
The deleted VNF instance identifier.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
_links:
description: >
Links to resources related to this notification.
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks"
VnfLcmOperationOccurrenceNotification:
description: >
This type represents a VNF lifecycle management operation occurrence notification, which
informs the receiver of changes in the VNF lifecycle caused by a VNF LCM operation occurrence.
The support of the notification is mandatory.
This notification shall be triggered by the VNFM when there is a change in the state of a VNF LCM
operation occurrence that changes the VNF lifecycle, which represents an occurrence of one the
following LCM operations:
- Instantiation of the VNF
- Scaling of the VNF instance (including auto-scaling)
- Healing of the VNF instance (including auto-healing)
- Change of the state of the VNF instance (i.e. Operate VNF)
- Change of the deployment flavour of the VNF instance
- Change of the external connectivity of the VNF instance
- Change of the current VNF package
- Termination of the VNF instance
- Modification of VNF instance information and/or VNF configurable properties through the "PATCH"
method on the "Individual VNF instance" resource
- Creation of a VNF snapshot
- Reversion of the VNF instance to a VNF snapshot
Clause 5.6.2 defines the states and state transition of a VNF LCM operation occurrence, and also
specifies details of the notifications to be emitted at each state transition.
If this is the initial notification about the start of a VNF LCM operation occurrence, it is assumed
that the notification is sent by the VNFM before any action (including sending the grant request) is
taken as part of the LCM operation. Due to possible race conditions, the "start" notification, the grant
request and the LCM operation acknowledgment (i.e. the "202 Accepted" response) can arrive in any order
at the NFVO, and the NFVO shall be able to handle such a situation.
If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence,
the notification shall be sent after all related actions of the LCM operation that led to this state have
been executed.
The new state shall be set in the "Individual VNF LCM operation occurrence" resource before the notification
about the state change is sent.
The amount of information provided in the LCM operation occurrence notifications to be issued by the VNFM when
a particular subscription matches can be controlled by the API consumer using the "verbosity" attribute in the
subscription request (see clause 5.5.2.15). The "verbosity" setting in a particular individual subscription shall
only apply to the LCM operation occurrence notifications triggered by that subscription. However, it shall not
affect the amount of information in the "VnfLcmOpOcc" structure (see clause 5.5.2.13) which represents the "Individual
LCM operation occurrence" resource associated with each of the notifications.
See clause 5.6.2.2 for further provisions regarding sending this notification, including in cases of handling LCM
operation errors.
NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL"
and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains
information about the cumulative changes to virtualised resources that were performed so far by the VNF LCM
operation occurrence and by any of the error handling procedures for that operation occurrence.
NOTE 2: For a particular affected VL, there shall be as many "AffectedVirtualLink" entries as needed for signalling
the different types of changes, i.e. one per virtual link and change type. For instance, in the case of signaling
affected VL instances involving the addition of a particular VL instance with links ports, one "AffectedVirtualLink"
entry signals the addition of the VL by using the "changeType" attribute of "AffectedVirtualLink" structure equal to
"ADDED", and another "AffectedVirtualLink" entry signals the addition of externally visible VNF link ports of the VL
by using the "changeType" equal to "LINK_PORT_ADDED".
Note 3: Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange shall be present.
type: object
required:
- id
- notificationType
- subscriptionId
- timeStamp
- notificationStatus
- operationState
- vnfInstanceId
- operation
- isAutomaticInvocation
- vnfLcmOpOccId
- _links
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple
times due to multiple subscriptions, the "id" attribute of all these
notifications shall have the same value.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to
"VnfLcmOperationOccurrenceNotification" for this notification type.
type: string
enum:
- VnfLcmOperationOccurrenceNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.Shall be set to the value of the "id" attribute
of the "LccnSubscription" representing the associated "Individual subscription" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
timeStamp:
description: >
Date-time of the generation of the notification.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/DateTime"
notificationStatus:
description: >
Indicates whether this notification reports about the start of a
lifecycle operation or the result of a lifecycle operation.
Permitted values:
* START: Informs about the start of the VNF LCM operation
occurrence.
* RESULT: Informs about the final or intermediate result of the VNF
LCM operation occurrence.
type: string
enum:
- START
- RESULT
operationState:
description: >
The state of the VNF LCM operation occurrence.
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOperationStateType"
vnfInstanceId:
description: >
The identifier of the VNF instance affected.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
operation:
description: >
The lifecycle management operation.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/LcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
by an automated procedure inside the VNFM
(i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
triggered by auto-heal).
Set to false otherwise.
type: boolean
verbosity:
description: >
This attribute signals the verbosity of the notification. If it is not present, it shall default to the value "FULL".
If the value is "SHORT", full change details can be obtained by performing a GET request on the "Individual LCM
operation occurrence" resource that is signalled by the "vnfLcmOpOcc" child attribute of the "_links" attribute.
$ref: '../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/LcmOpOccNotificationVerbosityType'
vnfLcmOpOccId:
description: >
The identifier of the VNF lifecycle management operation occurrence associated to the notification. Shall be
set to the value of the "id" attribute of the "VnfLcmOpOcc" representing the associate "Individual VNF lifecycle
management operation occurrence" resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
affectedVnfcs:
description: >
Information about VNFC instances that were affected during the lifecycle operation. See note 1.
type: array
items:
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVnfc"
affectedVirtualLinks:
description: >
Information about VL instances that were affected during the lifecycle operation. See note 1 and note 2.
type: array
items:
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink"
affectedExtLinkPorts:
description: >
Information about external VNF link ports that were affected during the lifecycle operation. See note 1.
type: array
items:
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedExtLinkPort"
affectedVirtualStorages:
description: >
Information about virtualised storage instances that were affected during the lifecycle operation. See note 1.
type: array
items:
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage"
changedInfo:
description: >
Information about the changed VNF instance information, including
changed VNF configurable properties.
Shall be present if the "notificationStatus" is set to "RESULT",
the "operation" attribute is not equal to "CHANGE_VNFPKG", the
"verbosity" attribute is set to "FULL" and the operation has performed
any changes to VNF instance information, including VNF configurable
properties. Shall be absent otherwise. See note 3.
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications"
affectedVipCps:
description: >
Information about virtual IP CP instances that were affected during the execution of the lifecycle management
operation, if this notification represents the result of a lifecycle management operation occurrence.
Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL"
and the operation has made any changes to the VIP CP instances of the VNF instance. Shall be absent otherwise.
Only information about VIP CP instances that have been added, deleted or modified shall be provided.
type: array
items:
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVipCp"
changedExtConnectivity:
description: >
Information about changed external connectivity, if this notification
represents the result of a lifecycle operation occurrence.
Shall be present if the "notificationStatus" is set to "RESULT",
the "verbosity" attribute is set to "FULL" and the operation has made
any changes to the external connectivity of the VNF instance. Shall be
absent otherwise. Only information about external VL instances that
have been added or modified shall be provided.
type: array
items:
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo"
modificationsTriggeredByVnfPkgChange:
description: >
Information about performed changes of "VnfInstance" attributes triggered by changing the current VNF package.
Shall be present if the "notificationStatus" is set to "RESULT", the "operation" attribute is equal to
"CHANGE_VNFPKG", the "verbosity" attribute is set to "FULL" and the operation has performed any changes to
"VnfInstance" attributes. Shall be absent otherwise. See note 3.
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ModificationsTriggeredByVnfPkgChange"
error:
description: >
Details of the latest error, if one has occurred during executing
the LCM operation (see clause 6.3 of ETSI GS NFV-SOL 013).
Shall be present if the "operationState" attribute is "FAILED_TEMP", "FAILED"
or "ROLLED_BACK" and shall be absent otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ProblemDetails"
_links:
description: >
Links to resources related to this notification.
The link URIs in this structure shall be set to point to the
resources identified by the corresponding identifier attributes
in this notification.
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnLinks"
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.4.1"
title: DRAFT - SOL003 - VNF Lifecycle Operation Granting interface
description: >
DRAFT - SOL003 - VNF Lifecycle Operation Granting interface
title: SOL003 - VNF Lifecycle Operation Granting interface
description: |
SOL003 - VNF Lifecycle Operation Granting 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: "1.7.0-impl:etsi.org:ETSI_NFV_OpenAPI:1"
basePath: "/grant/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/grant/v1
- url: https://127.0.0.1/grant/v1
paths:
###############################################################################
# Resource: Grants #
###############################################################################
'/grants':
#SOL003 location: 9.4.2
###############################################################################
# API Versions #
###############################################################################
/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
# Resource: Grants #
###############################################################################
/grants:
#SOL003 location: 9.4.2
post:
description: >
The POST method requests a grant for a particular VNF lifecycle
operation.
description: |
The POST method requests a grant for a particular VNF lifecycle operation. See clause 9.4.2.3.1.
parameters:
- name: GrantRequest
in: body
required: true
schema:
$ref: "definitions/VNFLifecycleOperationGranting_def.yaml#/definitions/GrantRequest"
- 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/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
requestBody:
$ref: '#/components/requestBodies/GrantRequest'
responses:
201:
description: >
The grant was created successfully (synchronous mode).
A representation of the created "Individual grant" resource shall
be returned in the response body.
The HTTP response shall include a "Location" HTTP header that
indicates the URI of the "Individual grant" resource just created.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
Location:
description: The resource URI of the created VNF instance
type: string
format: url
schema:
$ref: "definitions/VNFLifecycleOperationGranting_def.yaml#/definitions/Grant"
$ref: '#/components/responses/Grants.Post.201'
202:
description: >
The request was accepted for processing, but the processing has
not been completed. It is expected to take some time to create
the grant (asynchronous mode).
The response body shall be empty.
The HTTP response shall include a "Location" HTTP header that
indicates the URI of the "Individual grant" resource that will be
created once the granting decision has been made.
headers:
#TODO: Add headers defined in 4.3.4.3
Location:
description: The resource URI of the created VNF instance
type: string
format: url
$ref: '#/components/responses/Grants.Post.202'
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:
description: >
The grant was rejected.
A ProblemDetails structure shall be included in the response to
provide more details about the rejection in the "details"
attribute.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
$ref: '#/components/responses/Grants.Post.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"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/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"
###############################################################################
# Resource: Individual grant #
###############################################################################
'/grants/{grantId}':
#SOL003 location: 9.4.3
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# Resource: Individual grant #
###############################################################################
/grants/{grantId}:
#SOL003 location: 9.4.3
parameters:
- name: grantId
description: >
Identifier of the grant.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request granting a
new VNF lifecycle operation. 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/GrantId'
get:
description: >
The GET method retrieves information about a subscription by reading
an individual subscription resource.
description: |
The GET method reads a grant. See clause 9.4.3.3.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
responses:
200:
description: >
The grant was read successfully.
A representation of the "individual grant" resource shall be
returned in the response body.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "definitions/VNFLifecycleOperationGranting_def.yaml#/definitions/Grant"
$ref: '#/components/responses/IndividualGrant.Get.200'
202:
description: >
The process of creating the grant is ongoing, no grant is
available yet.
The response body shall be empty.
$ref: '#/components/responses/IndividualGrant.Get.202'
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:
description: >
The grant was rejected.
A ProblemDetails structure shall be included in the response to
provide more details about the rejection in the "details"
attribute.
headers:
#TODO: Add headers defined in 4.3.4.3
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails"
$ref: '#/components/responses/IndividualGrant.Get.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"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
422:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/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"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
components:
parameters:
GrantId:
name: grantId
in: path
description: |
Identifier of the grant.
This identifier can be retrieved from the resource referenced by the
"Location" HTTP header in the response to a POST request granting a
new VNF lifecycle operation. 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:
GrantRequest:
content:
application/json:
schema:
$ref: "definitions/SOL003VNFLifecycleOperationGranting_def.yaml#/definitions/GrantRequest"
required: true
responses:
Grants.Post.201:
description: |
201 CREATED
Shall be returned when the grant has been created successfully (synchronous mode).
A representation of the created "Individual grant" resource shall be returned in the response body.
The HTTP response shall include a "Location" HTTP header that indicates the URI of the "Individual grant"
resource just created.
headers:
Location:
description: |
The resource URI of the created subscription resource.
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/SOL003VNFLifecycleOperationGranting_def.yaml#/definitions/Grant"
Grants.Post.202:
description: |
202 ACCEPTED
Shall be returned when the request has been accepted for processing
and it is expected to take some time to create the grant (asynchronous mode).
The response body shall be empty.
The HTTP response shall include a "Location" HTTP header that indicates the URI
of the "Individual grant" resource that will be created once the granting decision has been made.
headers:
Location:
description: |
The resource URI of the created subscription resource.
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
Grants.Post.403:
description: |
403 FORBIDDEN
Shall be returned upon the following error: The grant
has been rejected.
A ProblemDetails structure shall be included in the
response to provide more details about the rejection
in the "details" attribute.
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"
IndividualGrant.Get.200:
description: |
200 OK
Shall be returned when the grant has been read successfully.
A representation of the "Individual grant" resource shall be returned in the response body.
headers:
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
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/SOL003VNFLifecycleOperationGranting_def.yaml#/definitions/Grant"
IndividualGrant.Get.202:
description: |
202 ACCEPTED
Shall be returned when the process of creating the grant is ongoing, no grant is available yet.
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
IndividualGrant.Get.403:
description: |
403 FORBIDDEN
Shall be returned upon the following error: The grant
has been rejected.
A ProblemDetails structure shall be included in the
response to provide more details about the rejection in
the "details" attribute.
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"
\ No newline at end of file
# Copyright (c) ETSI 2017.
# https://forge.etsi.org/etsi-forge-copyright-notice.txt
definitions:
ConstraintResourceRef:
description: >
This type references a resource either by its VIM-level identifier for
existing resources, or by the identifier of a "ResourceDefinition"
structure in the "GrantRequest" structure for new resources.
GrantRequest:
description: >
This type represents a grant request.
NOTE 1: The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier, QueryVnf and ModifyVnfInformation
can be executed by the VNFM without requesting granting.
NOTE 2: If the granting request is for InstantiateVNF, either instantiationLevel or addResources shall be present.
NOTE 3: The NFVO will assume that the VNFM will be responsible to both allocate and release the temporary resource
during the runtime of the LCM operation. This means, the resource can be allocated and consumed after the
"start" notification for the LCM operation is sent by the VNFM, and the resource will be released before the
"result" notification of the VNF LCM operation is sent by the VNFM.
NOTE 4: For the affinity/anti-affinity rules defined in the VNFD and the placement constraints in the GrantVnfLifecycleOperation
as defined in this clause, the following applies: Assuming unlimited capacity, the combination of all the
aforementioned rules shall be satisfiable by at least one possible placement of the new resources, with the
exception that some of the rules with fallbackBestEffort may be unsatisfiable due to the actual placement of
existing resources. In this case, rules with fallbackBestEffort are allowed to be violated only in relation
to the placement of existing resources.
NOTE 5: Passing constraints allows the VNFM or the lifecycle management scripts to influence resource placement decisions
by the NFVO to ensure VNF properties such as performance or fault tolerance.
NOTE 6: If fallbackBestEffort is present and set to "true" in one or more placement constraints and, the NFVO
cannot find a resource placement that satisfies all of these due to limited capacity, the NFVO shall process
each such affinity/anti-affinity constraint in a best effort manner, in which case, if specified resources
cannot be allocated based on the specified placement constraint, the NFVO shall look for an alternate best
effort placement for the specified resources to be granted. In the best effort anti-affinity case, the
resources are expected to be spread optimally over all available instances of scope (e.g. zones), and in
the best effort affinity case, they are expected to be distributed optimally over as few instances of scope as
possible. Being able to satisfy a "best-effort" constraint in a best effort manner only, as defined above,
shall not lead to rejecting the grant.
type: object
required:
- idType
- resourceId
- vnfInstanceId
- vnfLcmOpOccId
- vnfdId
- operation
- isAutomaticInvocation
- _links
properties:
idType:
description: >
The type of the identifier.
Permitted values:
* RES_MGMT: Resource-management-level identifier; this identifier is
managed by the VIM in the direct mode of VNF-related resource
management, and is managed by the NFVO in the indirect mode)
* GRANT: Reference to the identifier of a "ResourceDefinition"
structure in the "GrantRequest" structure.
type: string
enum:
- RES_MGMT
- GRANT
resourceId:
description: >
An actual resource-management-level identifier (idType=RES_MGMT),
or an identifier that references a "ResourceDefinition" structure in
the related "GrantRequest" structure (idType=GRANT).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
vimConnectionId:
description: >
Identifier of the VIM connection for managing the resource. It shall
only be present when idType = RES_MGMT.
The applicable "VimConnectionInfo" structure, which is referenced by
vimConnectionId, can be obtained from the "vimConnectionInfo"
attribute of the "VnfInstance" structure.
This attribute shall only be supported when VNF-related resource
management in direct mode is applicable.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
Identifier of the resource provider. It shall only be present when
idType = RES_MGMT.
This attribute shall only be supported 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"
vnfInstanceId:
description: >
Identifier of the VNF instance which this grant request is related
to. Shall also be provided for VNFs that not yet exist but are
planned to exist in the future, i.e. if the grant is requested for
InstantiateVNF.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfLcmOpOccId:
description: >
The identifier of the VNF lifecycle management operation occurrence
associated to the GrantRequest.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfdId:
description: >
Identifier of the VNFD that defines the VNF for which the LCM
operation is to be granted.
In case of the "Change current VNF package operation, this identifier
refers to the VNFD which defines the VNF before the LCM operation to
be granted.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
dstVnfdId:
description: >
Identifier of the "destination" VNFD which will define the VNF after
executing the "Change current VNF package" LCM operation to be granted.
Shall be included if the operation changes the current VNF Package and
shall be absent otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
flavourId:
description: >
Identifier of the VNF deployment flavour of the VNFD that defines
the VNF for which the LCM operation is to be granted.
Shall be provided when instantiating the VNF or changing the
deployment flavour of the VNF instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
operation:
description: >
The lifecycle management operation for which granting is requested. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/GrantedLcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
by an automated procedure inside the VNFM
(i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
triggered by auto-heal).
Set to false otherwise.
type: boolean
instantiationLevelId:
description: >
If operation=INSTANTIATE, the identifier of the instantiation level may be provided as an
alternative way to define the resources to be added. This attribute shall only be used if
operation=INSTANTIATE. See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
addResources:
description: >
List of resource definitions in the VNFD for resources to be added by the LCM operation
which is related to this grant request, with one entry per resource. See note 2.
type: array
items:
$ref: "#/definitions/ResourceDefinition"
tempResources:
description: >
List of resource definitions in the VNFD for resources to be temporarily instantiated during
the runtime of the LCM operation which is related to this grant request, with one entry per
resource. See note 3.
type: array
items:
$ref: "#/definitions/ResourceDefinition"
removeResources:
description: >
Provides the definitions of resources to be removed by the LCM
operation which is related to this grant request, with one entry per
resource.
type: array
items:
$ref: "#/definitions/ResourceDefinition"
updateResources:
description: >
Provides the definitions of resources to be modified by the LCM
operation which is related to this grant request, with one entry per
resource.
type: array
items:
$ref: "#/definitions/ResourceDefinition"
placementConstraints:
description: >
Placement constraints that the VNFM may send to the NFVO in order to influence the resource
placement decision. If sent, the NFVO shall take the constraints into consideration when making
resource placement decisions and shall reject the grant if they cannot be honoured. See notes 4,
5 and 6.
type: array
items:
$ref: "#/definitions/PlacementConstraint"
vimConstraints:
description: >
Used by the VNFM to require that multiple resources are managed
through the same VIM connection. If sent, the NFVO shall take the
constraints into consideration when making VIM selection decisions,
and shall reject the grant if they cannot be honoured.
This attribute shall be supported if VNF-related Resource Management
in direct mode is applicable.
The applicability and further details of this attribute for indirect
mode are left for future specification.
type: array
items:
$ref: "#/definitions/VimConstraint"
additionalParams:
description: >
Additional parameters passed by the VNFM, specific to the VNF and
the LCM operation.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
_links:
description: >
Links to resources related to this request.
type: object
required:
- vnfLcmOpOcc
- vnfInstance
properties:
vnfLcmOpOcc:
description: >
Related lifecycle management operation occurrence.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
vnfInstance:
description: >
Related VNF instance.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
Grant:
description: >
description: >
This type represents a grant.
NOTE 1: This interface allows to signal the use of multiple VIMs per VNF. The specification
for managing the VNF internal VL requirements across multiple VIMs is supported via
"externally-managed internal VLs" and "multi-site connectivity services".
NOTE 2: Void.
NOTE 3: The Grant response allows the NFVO to pass to the VNFM VIM assets related to the VNF
package that is identified in the corresponding Grant request. Because only the operations
InstantiateVnf, ChangeCurrentVnfPkg and the update of the vnfdId by PATCH can imply changes
in the set of VIM assets, the NFVO shall not change this set in any other case. To signal the
set of VIM assets, the following applies:
a) If the current LCM operation is InstantiateVnf, the NFVO shall send in the Grant response
the full set of VIM assets related to the VNF package defined by the vnfdId in the related
Grant request.
b) If the current LCM operation is ChangeCurrentVnfPkg, the NFVO shall send in the
Grant response the full set of VIM assets related to the VNF package defined by the destVnfdId
in the related Grant request.
c) For any other operation: If the set of VIM assets has changed since the end of the previous
granted operation because a PATCH operation has changed the vnfdId between the previous granted
operation and the operation to which the current granting exchange relates, the NFVO shall send
in the Grant response the full set of VIM assets related to the VNF package defined by the vnfdId
in the related Grant request. Otherwise, the NFVO shall either send in the Grant response the full
set of VIM assets related to the VNF package defined by the vnfdId in the related Grant request, or
shall not send any VIM assets at all.
During each LCM operation occurrence other than a "ChangeCurrentVnfPkg" operation,
the VIM assets that relate to the VNF package identified by the current value of
the vnfdId attribute in the "VnfInstance" structure shall be used by the
VNFM for newly created resources and updated resources.
NOTE 4: The indication of externally-managed internal VLs is needed in case networks have been
pre-configured for use with certain VNFs, for instance to ensure that these networks have
certain properties such as security or acceleration features, or to address particular network
topologies (e.g., multi-site connectivity). The present document assumes that externally-managed
internal VLs are managed by the NFVO and created towards the VIM and WIM.
NOTE 5: For any VNF lifecycle management operation request that allows to pass "extVirtualLinks" and/or
"extManagedVirtualLinks" parameters, such as InstantiateVnf, ChangeVnfFlavour, ChangeExtVnfConnectivity or
ChangeCurrentVnfPackage, the NFVO may provide the "extVirtualLinks" and/or "extManagedVirtualLinks" attributes
in the Grant to override the values passed in these parameters previously in the associated VNF lifecycle
management request, if the lifecycle management request has originated from the NFVO itself. The NFVO shall
not provide the "extVirtualLinks" and/or "extManagedVirtualLinks" attributes in the Grant in case the LCM
request did not originate from the NFVO itself or the granted LCM operation request does not allow to pass
these parameters.
NOTE 6: The NFVO shall set the value of the attribute by copying the value from the associated
GrantRequest.
NOTE 7: In case of granting an InstantiateVnf request that has originated from the NFVO and that
did not contain the "extVirtualLinks" attribute, this attribute shall be set by the NFVO.
Further in case of granting an InstantiateVnf request that has originated from the NFVO
and that did not contain the "extManagedVirtualLinks" attribute, this attribute shall be
set by the NFVO if there is the need to provide information about externally-managed virtual
links.
NOTE 8: The resulting "extVirtualLinks" or "extManagedVirtualLinks" information is calculated as follows:
In a first step, the information passed in the related LCM operation is applied to the baseline
information known from earlier LCM operation executions. In a second step, the information passed
in the Grant is applied to the information resulting from the first step.
type: object
required:
required:
- id
- vnfInstanceId
- vnfLcmOpOccId
- _links
properties:
properties:
id:
description: >
description: >
Identifier of the grant.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfInstanceId:
description: >
Identifier of the related VNF instance.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
description: >
Identifier of the related VNF instance. See note 6.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfLcmOpOccId:
description: >
Identifier of the related VNF lifecycle management operation
occurrence.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
vimConnections:
description: >
Provides information regarding VIM connections that are approved to
be used by the VNFM to allocate resources, and provides parameters
of these VIM connections.
The VNFM shall update the " vimConnectionInfo" attribute of the
"VnfInstance" structure by adding unknown entries received in this
attribute.
This attribute is not intended for the modification of VimConnection
entries passed earlier; for that, the VnfInfoModificationRequest
structure shall be used.
This attribute shall only be supported when VNF-related Resource
Management in direct mode is applicable. In direct mode, this
parameter shall be absent if the VIM information was configured to
the VNFM in another way, present otherwise.
This interface allows to signal the use of multiple VIMs per VNF.
However, due to the partial support of this feature in the present
release, it is recommended in the present document that the number
of entries in the "vims" attribute in the Grant is not greater than
1.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo"
description: >
Identifier of the related VNF lifecycle management operation occurrence.
See note 6.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vimConnectionInfo:
description: >
Provides information regarding VIM connections that are approved to be used
by the VNFM to allocate resources and provides parameters of these VIM connections.
The VNFM shall update the "vimConnectionInfo" attribute of the "VnfInstance" structure
by adding unknown entries received in this attribute.
This attribute is not intended for the modification of VimConnectionInfo entries passed
earlier; for that, the VnfInfoModificationRequest structure shall be used.
This attribute shall only be supported when VNF-related Resource Management in direct mode
is applicable. In direct mode, this parameter shall be absent if the VIM information was
configured to the VNFM in another way, present otherwise. See note 1.
type: object
additionalProperties:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/VimConnectionInfo"
zones:
description: >
Identifies resource zones where the resources are approved to be
allocated by the VNFM.
type: array
items:
items:
$ref: "#/definitions/ZoneInfo"
zoneGroups:
description: >
......@@ -107,39 +274,14 @@ definitions:
constraints that were passed as part of "placementConstraints" in the
GrantRequest.
type: array
items:
items:
$ref: "#/definitions/ZoneGroupInfo"
computeReservationId:
description: >
Information that identifies a reservation applicable to the compute
resource requirements of the corresponding grant request.
At least one of (computeReservationId, networkReservationId,
storageReservationId) shall be present when policy is
GRANT_RESERVE_SINGLE and an applicable reservation exists. None of
these shall be present otherwise.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
networkReservationId:
description: >
Information that identifies a reservation applicable to the network
resource requirements of the corresponding grant request.
At least one of (computeReservationId, networkReservationId,
storageReservationId) shall be present when policy is
GRANT_RESERVE_SINGLE and an applicable reservation exists. None of
these shall be present otherwise.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
storageReservationId:
description: >
Information that identifies a reservation applicable to the storage
resource requirements of the corresponding grant request.
At least one of (computeReservationId, networkReservationId,
storageReservationId) shall be present when policy is
GRANT_RESERVE_SINGLE and an applicable reservation exists. None of
these shall be present otherwise.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
addResources:
description: >
List of resources that are approved to be added, with one entry per
resource.
resource. Shall be set when resources are approved to be added and
shall contain the same set of resources requested to be added in the
related GrantRequest.
type: array
items:
$ref: "#/definitions/GrantInfo"
......@@ -147,34 +289,34 @@ definitions:
description: >
List of resources that are approved to be temporarily instantiated
during the runtime of the lifecycle operation, with one entry per
resource.
resource. Shall be set when resources are approved to be temporarily
instantiated and shall contain the same set of resources requested to
be temporarily instantiated in the related GrantRequest.
type: array
items:
$ref: "#/definitions/GrantInfo"
removeResources:
description: >
List of resources that are approved to be removed, with one entry
per resource.
per resource. Shall be set when resources are approved to be removed
and shall contain the same set of resources requested to be removed
in the related GrantRequest.
type: array
items:
$ref: "#/definitions/GrantInfo"
updateResources:
description: >
List of resources that are approved to be modified, with one entry
per resource.
per resource. Shall be set when resources are approved to be updated
and shall contain the same set of resources requested to be updated
in the related GrantRequest.
type: array
items:
$ref: "#/definitions/GrantInfo"
vimAssets:
description: >
Information about assets for the VNF that are managed by the NFVO
in the VIM, such as software images and virtualised compute resource
flavours.
This attribute is not intended for the modification of vimAssets
entries passed earlier.
Modification of VIM assets during the lifetime of a VNF instance is
not necessary, since it is expected that all applicable assets have
been on boarded into the VIM before the VNF is instantiated.
Information about assets for the VNF that are managed by the NFVO in the VIM,
such as software images and virtualised compute resource flavours. See note 3.
type: object
properties:
computeResourceFlavours:
......@@ -182,249 +324,162 @@ definitions:
Mappings between virtual compute descriptors defined in the VNFD
and compute resource flavours managed in the VIM.
type: array
items:
items:
$ref: "#/definitions/VimComputeResourceFlavour"
softwareImages:
description: >
Mappings between software images defined in the VNFD and
software images managed in the VIM.
type: array
items:
items:
$ref: "#/definitions/VimSoftwareImage"
snapshotResources:
description: >
Mappings between snapshot resources defined in the VNF snapshot package and resources
managed in the VIM.
type: array
items:
$ref: "#/definitions/VimSnapshotResource"
extVirtualLinks:
description: >
Information about external VLs to connect the VNF to.
External and/or externally-managed internal VLs can be passed in VNF
lifecycle management operation requests such as InstantiateVnf or
ChangeVnfFlavor, and/or in the grant response. The NFVO may choose
to override in the grant response external and/or externally-managed
VL instances that have been passed previously in the associated VNF
lifecycle management request, if the lifecycle management request
has originated from the NFVO itself.
Information about external VLs to connect the VNF to. See notes 5, 7 and 8. If this attribute
is present according to note 5 or note 7, it need not contain those entries that are unchanged
compared to the entries that were passed in the LCM operation which is related to this granting exchange.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData"
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ExtVirtualLinkData"
extManagedVirtualLinks:
description: >
Information about internal VLs that are managed by other entities
than the VNFM.
The indication of externally-managed internal VLs is needed in case
networks have been pre-configured for use with certain VNFs, for
instance to ensure that these networks have certain properties such
as security or acceleration features, or to address particular
network topologies. The present document assumes that
externally-managed internal VLs are managed by the NFVO and created
towards the VIM.
External and/or externally-managed internal VLs can be passed in VNF
lifecycle management operation requests such as InstantiateVnf or
ChangeVnfFlavor, and/or in the grant response. The NFVO may choose
to override in the grant response external and/or externally-managed
VL instances that have been passed previously in the associated VNF
lifecycle management request, if the lifecycle management request
has originated from the NFVO itself.
Information about internal VLs that are managed by other entities than the VNFM. See notes 4, 5, 7 and 8.
type: array
items:
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData"
$ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkData"
additionalParams:
description: >
Additional parameters passed by the NFVO, specific to the VNF and
the LCM operation.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/KeyValuePairs"
_links:
description: >
Links to resources related to this resource.
type: object
required:
required:
- self
- vnfLcmOpOcc
- vnfInstance
properties:
properties:
self:
description: >
URI of this resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
vnfLcmOpOcc:
description: >
Related VNF lifecycle management operation occurrence.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
vnfInstance:
description: >
Related VNF instance.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Link"
GrantRequest:
description: >
This type represents a grant request.
ResourceDefinition:
description: >
This type provides information of an existing or proposed resource used by the VNF.
NOTE 1: The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples
for such a configuration.
NOTE 2: In the context of an operation that changes the current VNF package, the following applies: If this
ResourceDefinition is related to a resource to be created or modified, the "vnfdId" attribute shall
contain the identifier of the destination VNFD. If this ResourceDefinition is related to a resource
to be deleted, the "vnfdId" attribute shall contain the identifier of the source VNFD. If this
ResourceDefinition is related to a temporary resource, the "vnfdId" attribute shall contain the
identifier of either the source VNFD or the destination VNFD.
type: object
required:
- vnfInstanceId
- vnfLcmOpOccId
- vnfdId
- operation
- isAutomaticInvocation
- _links
required:
- id
- type
- resourceTemplateId
properties:
vnfInstanceId:
description: >
Identifier of the VNF instance which this grant request is related
to. Shall also be provided for VNFs that not yet exist but are
planned to exist in the future, i.e. if the grant is requested for
InstantiateVNF.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
vnfLcmOpOccId:
description: >
The identifier of the VNF lifecycle management operation occurrence
associated to the GrantRequest.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
vnfdId:
description: >
Identifier of the VNFD that defines the VNF for which the LCM
operation is to be granted.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
flavourId:
description: >
Identifier of the VNF deployment flavour of the VNFD that defines
the VNF for which the LCM operation is to be granted.
Shall be provided when instantiating the VNF or changing the
deployment flavour of the VNF instance.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
operation:
description: >
The lifecycle management operation for which granting is requested.
The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier,
QueryVnf and ModifyVnfInformation can be executed by the VNFM
without requesting granting.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationType"
isAutomaticInvocation:
description: >
Set to true if this VNF LCM operation occurrence has been triggered
by an automated procedure inside the VNFM
(i.e. ScaleVnf / ScaleVnfToLevel triggered by auto-scale, or HealVnf
triggered by auto-heal).
Set to false otherwise.
type: boolean
instantiationLevelId:
description: >
If operation=INSTANTIATE, the identifier of the instantiation level
may be provided as an alternative way to define the resources to be
added. This attribute shall only be used if operation=INSTANTIATE.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
addResources:
description: >
List of resource definitions in the VNFD for resources to be added
by the LCM operation which is related to this grant request, with
one entry per resource.
If the granting request is for InstantiateVNF, either
instantiationLevel or addResources shall be present.
type: array
items:
$ref: "#/definitions/ResourceDefinition"
tempResources:
id:
description: >
List of resource definitions in the VNFD for resources to be
temporarily instantiated during the runtime of the LCM operation
which is related to this grant request, with one entry per
resource.
The NFVO will assume that the VNFM will be responsible to both
allocate and release the temporary resource during the runtime of
the LCM operation. This means, the resource can be allocated and
consumed after the "start" notification for the LCM operation is
sent by the VNFM, and the resource will be released before the
"result" notification of the VNF LCM operation is sent by the VNFM.
type: array
items:
$ref: "#/definitions/ResourceDefinition"
removeResources:
Identifier of this "ResourceDefinition" structure, unique at least
within the scope of the "GrantRequest" structure.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
type:
description: >
Provides the definitions of resources to be removed by the LCM
operation which is related to this grant request, with one entry per
resource.
type: array
items:
$ref: "#/definitions/ResourceDefinition"
updateResources:
Type of the resource definition referenced.
Permitted values:
* COMPUTE
* VL
* STORAGE
* LINKPORT
type: string
enum:
- COMPUTE
- VL
- STORAGE
- LINKPORT
vduId:
description: >
Provides the definitions of resources to be modified by the LCM
operation which is related to this grant request, with one entry per
Reference to the related VDU in the VNFD applicable to this
resource.
type: array
items:
$ref: "#/definitions/ResourceDefinition"
placementConstraints:
Shall only be present if a VDU is applicable to this resource,
i.e. if "type" has the value "COMPUTE".
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vnfdId:
description: >
Placement constraints that the VNFM may send to the NFVO in order to
influence the resource placement decision. If sent, the NFVO shall
take the constraints into consideration when making resource
placement decisions, and shall reject the grant if they cannot be
honoured.
The affinity/anti-affinity rules defined in the VNFD , and the
placement constraints in the GrantVnfLifecycleOperation as defined
in this clause should be conflict-free. In case of conflicts, the
placement constraints in the GrantVnfLifecycleOperation shall take
precedence.
Passing constraints allows the VNFM or the lifecycle management
scripts to influence resource placement decisions by the NFVO to
ensure VNF properties such as performance or fault tolerance.
type: array
items:
$ref: "#/definitions/PlacementConstraint"
vimConstraints:
Identifier of the VNFD to which resourceTemplateId and vduId refer. Shall be present
if the operation to be granted changes the current VNF Package. May be absent otherwise. See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceTemplateId:
description: >
Used by the VNFM to require that multiple resources are managed
through the same VIM connection. If sent, the NFVO shall take the
constraints into consideration when making VIM selection decisions,
and shall reject the grant if they cannot be honoured.
This attribute shall be supported if VNF-related Resource Management
in direct mode is applicable.
The applicability and further details of this attribute for indirect
mode are left for future specification.
type: array
items:
$ref: "#/definitions/VimConstraint"
additionalParams:
Reference to the applicable resource template in the VNFD as follows:
- if type="VL" : VnfVirtualLinkDesc
- if type="COMPUTE": VirtualComputeDesc
- if type="LINKPORT" : VnfExtCpd
- if type="STORAGE" : VirtualStorageDesc
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
secondaryResourceTemplateId:
description: >
Reference to a secondary resource template (VnfExtCpd) in the VNFD.
Shall be present if type="LINKPORT" and the linkport is shared by two external CP instances,
one exposing a VNFC CP instance (based on a VnfExtCpd referenced by "resourceTemplateId") and
another one exposing a VIP CP instance (based on a VnfExtCpd referenced by this attribute).
Shall be absent otherwise. See note 1.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
resource:
description: >
Additional parameters passed by the VNFM, specific to the VNF and
the LCM operation.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs"
_links:
Resource information for an existing resource. Shall be present for
resources that are planned to be deleted or modified. Shall be
absent otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
snapshotResDef:
description: >
Links to resources related to this request.
type: object
required:
- vnfLcmOpOcc
- vnfInstance
properties:
vnfLcmOpOcc:
description: >
Related lifecycle management operation occurrence.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
vnfInstance:
description: >
Related VNF instance.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link"
Information to identify a snapshot resource. Shall only be present if the
operation to be granted concerns to creating a VNF snapshot from the VNF
or to reverting the VNF to a VNF snapshot.
$ref: "#/definitions/SnapshotResourceDefinition"
GrantInfo:
description: >
description: >
This type contains information about a Compute, storage or network
resource whose addition/update/deletion was granted.
type: object
required:
required:
- resourceDefinitionId
properties:
properties:
resourceDefinitionId:
description: >
description: >
Identifier of the related "ResourceDefinition" structure from the
related "GrantRequest" structure.
$ref: "#/definitions/IdentifierLocal"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
reservationId:
description: >
The reservation identifier applicable to the
VNFC/VirtualLink/VirtualStorage. It shall be present for new
resources when policy is GRANT_RESERVE_MULTI and an applicable
reservation exists; shall not be present otherwise.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
description: >
The reservation identifier applicable to the VNFC/VirtualLink/VirtualStorage/compute
host. It shall be present for new resources when policy is GRANT_RESERVE and an
applicable reservation exists; shall not be present otherwise.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
vimConnectionId:
description: >
description: >
Identifier of the VIM connection to be used to manage this resource.
Shall be present for new resources, and shall be absent for
resources that have already been allocated.
......@@ -433,26 +488,26 @@ definitions:
attribute of the "VnfInstance" structure.
This attribute shall only be supported when VNF-related Resource
Management in direct mode is applicable.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
description: >
Identifies the entity responsible for the management of the
virtualised resource. Shall be present for new resources, and shall
be absent for resources that have already been allocated.
This attribute shall only be supported 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"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
zoneId:
description: >
description: >
Reference to the identifier of the "ZoneInfo" structure in the
"Grant" structure defining the resource zone into which this
resource is to be placed. Shall be present for new resources if the
zones concept is applicable to them (typically, Compute resources),
and shall be absent for resources that have already been allocated.
$ref: "#/definitions/IdentifierLocal"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
resourceGroupId:
description: >
description: >
Identifier of the "infrastructure resource group", logical grouping
of virtual resources assigned to a tenant within an Infrastructure
Domain, to be provided when allocating the resource.
......@@ -464,15 +519,67 @@ definitions:
for new resources.
This attribute shall be absent for resources that have already been
allocated.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
IdentifierLocal:
ZoneInfo:
description: >
An identifier that is unique within a limited local scope other than
above listed identifiers, such as within a complex data structure or
within a request-response pair.
Representation: string of variable length.
type: string
This type provides information regarding a resource zone.
type: object
required:
- id
- zoneId
properties:
id:
description: >
The identifier of this ZoneInfo instance, for the purpose of
referencing it from other structures in the "Grant" structure.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
zoneId:
description: >
The identifier of the resource zone, as managed by the resource
management layer (typically, the VIM).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vimConnectionId:
description: >
Identifier of the connection to the VIM that manages the resource
zone.
The applicable "VimConnectionInfo" structure, which is referenced by
vimConnectionId, can be obtained from the " vimConnectionInfo"
attribute of the "VnfInstance" structure.
This attribute shall only be supported and present when VNF-related
Resource Management in direct mode is applicable.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management the resource
zone.
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: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
ZoneGroupInfo:
description: >
This type provides information regarding a resource zone group. A
resource zone group is a group of one or more related resource zones
which can be used in resource placement constraints. To fulfil such
constraint, the NFVO may decide to place a resource into any zone that
belongs to a particular group.
NOTE: A resource zone group can be used to support overflow from one
resource zone into another, in case a particular deployment supports
only non-elastic resource zones.
type: object
required:
- zoneId
properties:
zoneId:
description: >
References of identifiers of "ZoneInfo" structures, each of which
provides information about a resource zone that belongs to this
group.
type: array
items:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
PlacementConstraint:
description: >
......@@ -487,8 +594,8 @@ definitions:
that they are placed in the same Network Function Virtualisation
Infrastructure Point of Presence (NFVI-PoP) but in different resource
zones:
{type="affinity"; scope="NFVI_POP"; {resource1,resource2}}
{type="anti-affinity"; scope="ZONE"; {resource1,resource2}}
{type="AFFINITY"; scope="NFVI_POP"; {resource1,resource2}}
{type="ANTI_AFFINITY"; scope="ZONE"; {resource1,resource2}}
type: object
required:
- affinityOrAntiAffinity
......@@ -524,57 +631,94 @@ definitions:
description: >
References to resources in the constraint rule.
type: array
minItems: 2
items:
$ref: "#/definitions/ConstraintResourceRef"
fallbackBestEffort:
description: >
Indication if the constraint is handled with fall back best effort. Default value is “false”.
If set to true, the Affinity/Anti_Affinity placement constraint need not be fully satisfied
due to capacity constraints and/or due to the actual placement of existing resources, i.e.
if resource placement cannot honour the placement constraint, the request is processed in a
best effort manner.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Boolean"
ResourceDefinition:
VimConstraint:
description: >
This type provides information of an existing or proposed resource used
by the VNF.
This type provides information regarding a VIM selection constraint. A
set of such constraints may be sent by the VNFM to the NFVO to influence
the VIM selection decisions made by the NFVO as part of the granting
process.
type: object
required:
- id
- type
required:
- resource
properties:
id:
sameResourceGroup:
description: >
Identifier of this "ResourceDefinition" structure, unique at least
within the scope of the "GrantRequest" structure.
$ref: "#/definitions/IdentifierLocal"
type:
If present and set to true, this signals that the constraint applies
not only to the same VIM connection, but also to the same
infrastructure resource group.
type: boolean
resource:
description: >
Type of the resource definition referenced.
References to resources in the constraint rule.
The NFVO shall ensure that all resources in this list are managed
through the same VIM connection. If "sameResourceGroup" is set to
true, the NFVO shall further ensure that all resources in this list
are part of the same infrastructure resource group in that VIM
connection.
type: array
minItems: 2
items:
$ref: "#/definitions/ConstraintResourceRef"
ConstraintResourceRef:
description: >
This type references a resource either by its VIM-level identifier for
existing resources, or by the identifier of a "ResourceDefinition"
structure in the "GrantRequest" structure for new resources.
type: object
required:
- idType
- resourceId
properties:
idType:
description: >
The type of the identifier.
Permitted values:
* COMPUTE
* VL
* STORAGE
* LINKPORT
* RES_MGMT: Resource-management-level identifier; this identifier is
managed by the VIM in the direct mode of VNF-related resource
management, and is managed by the NFVO in the indirect mode)
* GRANT: Reference to the identifier of a "ResourceDefinition"
structure in the "GrantRequest" structure.
type: string
enum:
- COMPUTE
- VL
- STORAGE
- LINKPORT
vduId:
- RES_MGMT
- GRANT
resourceId:
description: >
Reference to the related VDU in the VNFD applicable to this
resource.
Shall only be present if a VDU is applicable to this resource.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
resourceTemplateId:
An actual resource-management-level identifier (idType=RES_MGMT),
or an identifier that references a "ResourceDefinition" structure in
the related "GrantRequest" structure (idType=GRANT).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
vimConnectionId:
description: >
Reference to a resource template (VnfVirtualLinkDesc,
VirtualComputeDesc, VnfExtCpd, VirtualStorageDesc) in the
VNFD. Shall be present for the planned creation of new resources,
including temporary resources, and for the modification of existing
resources. Shall be absent otherwise.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
resource:
Identifier of the VIM connection for managing the resource. It shall
only be present when idType = RES_MGMT.
The applicable "VimConnectionInfo" structure, which is referenced by
vimConnectionId, can be obtained from the "vimConnectionInfo"
attribute of the "VnfInstance" structure.
This attribute shall only be supported when VNF-related resource
management in direct mode is applicable.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
Resource information for an existing resource. Shall be present for
resources that are planned to be deleted or modified. Shall be
absent otherwise.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle"
Identifier of the resource provider. It shall only be present when
idType = RES_MGMT.
This attribute shall only be supported when VNF-related resource
management in indirect mode is applicable. The identification scheme
is outside the scope of the present document.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
VimComputeResourceFlavour:
description: >
......@@ -586,10 +730,10 @@ definitions:
the VNFD and the corresponding compute resource flavour managed by the
NFVO in the VIM.
type: object
required:
required:
- vnfdVirtualComputeDescId
- vimFlavourId
properties:
properties:
vimConnectionId:
description: >
Identifier of the VIM connection to access the flavour referenced in
......@@ -599,7 +743,7 @@ definitions:
attribute of the "VnfInstance" structure.
This attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of the
......@@ -607,17 +751,17 @@ definitions:
This attribute shall only be supported and present if 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"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfdVirtualComputeDescId:
description: >
Identifier which references the virtual compute descriptor in the
VNFD that maps to this flavour.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vimFlavourId:
description: >
Identifier of the compute resource flavour in the resource
management layer (i.e. VIM).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
VimSoftwareImage:
description: >
......@@ -625,20 +769,20 @@ definitions:
VNFD and the corresponding software image managed by the NFVO in the
VIM which is needed during compute resource instantiation.
type: object
required:
required:
- vnfdSoftwareImageId
- vimSoftwareImageId
properties:
properties:
vimConnectionId:
description: >
Identifier of the VIM connection to access the software image
referenced in this structure.
referenced in this structure.
The applicable "VimConnectionInfo" structure, which is referenced by
vimConnectionId, can be obtained from the "vimConnectionInfo"
attribute of the "VnfInstance" structure.
This attribute shall only be supported and present if VNF-related
resource management in direct mode is applicable.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management of the
......@@ -646,102 +790,109 @@ definitions:
This attribute shall only be supported and present if 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"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfdSoftwareImageId:
description: >
Identifier which references the software image descriptor in the
VNFD.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd"
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnfd"
vimSoftwareImageId:
description: >
Identifier of the software image in the resource management layer
Identifier of the software image in the resource management layer
(i.e. VIM).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVim"
VimConstraint:
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
SnapshotResourceDefinition:
description: >
This type provides information regarding a VIM selection constraint. A
set of such constraints may be sent by the VNFM to the NFVO to influence
the VIM selection decisions made by the NFVO as part of the granting
process.
type: object
required:
- resource
properties:
sameResourceGroup:
description: >
If present and set to true, this signals that the constraint applies
not only to the same VIM connection, but also to the same
infrastructure resource group.
type: boolean
resource:
description: >
References to resources in the constraint rule.
The NFVO shall ensure that all resources in this list are managed
through the same VIM connection. If "sameResourceGroup" is set to
true, the NFVO shall further ensure that all resources in this list
are part of the same infrastructure resource group in that VIM
connection.
type: array
items:
$ref: "#/definitions/ConstraintResourceRef"
This type represents resource definition information related to a snapshot resource.
ZoneGroupInfo:
description: >
This type provides information regarding a resource zone group. A
resource zone group is a group of one or more related resource zones
which can be used in resource placement constraints. To fulfil such
constraint, the NFVO may decide to place a resource into any zone that
belongs to a particular group.
NOTE: A resource zone group can be used to support overflow from one
resource zone into another, in case a particular deployment supports
only non-elastic resource zones.
NOTE 1: If present, the value of the "vduId" (for a related VDU) in the "VnfcResourceInfo"
referred by the "vnfcInfoId" of the "VnfcSnapshotInfo" shall match the value of the
"vduId" in the resource definition that is signalled in the granting request.
NOTE 2: For snapshot resource definitions extracted from a VNF snapshot package, only the
"vnfcSnapshotId" and "storageSnapshotId" (in case of a storage type of resource)
are applicable. If the snapshot resource definition is generated as part of a VNF
snapshot created by the VNFM (that is, not extracted from a VNF snapshot package),
the "snapshotResource" is applicable. This is a similar specification as the one
defined with the "vduId", "resourceTemplateId" and "resource" attributes provided in
the ResourceDefinition, but in this case applicable to resources that are defined from
VNF snapshots instead of VNFD.
type: object
required:
- zoneId
required:
- vnfSnapshotId
properties:
zoneId:
description: >
References of identifiers of "ZoneInfo" structures, each of which
provides information about a resource zone that belongs to this
group.
type: array
items:
$ref: "#/definitions/IdentifierLocal"
ZoneInfo:
vnfSnapshotId:
description: >
Identifier of the VNF snapshot related to the resource change for the VNF instance.
Shall only be present if the operation to be granted concerns to creating a VNF snapshot
from the VNF or to reverting the VNF to a VNF snapshot.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfcSnapshotId:
description: >
Reference to the information about a specific VNFC snapshot (refer to "VnfcSnapshotInfo") of
the VNF snapshot. The identifier is unique within the scope of a VNF snapshot, identified by
the "vnfSnapshotId" attribute. Shall only be present if the operation to be granted concerns
to reverting the VNF to a VNF snapshot, and the resource is planned to be added based on the
VNFC snapshot, and the type of resource is "COMPUTE" or "STORAGE". See notes 1 and 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
storageSnapshotId:
description: >
Reference to a snapshotted storage resource associated to the VNFC snapshot. Shall only be present
if the operation to be granted concerns to reverting the VNF to a VNF snapshot, and the storage
resource is planned to be added based on the VNFC snapshot, and the type of resource is "STORAGE".
See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
snapshotResource:
description: >
Resource information for an existing snapshot resource. Shall only be present if the operation to
be granted concerns to reverting the VNF to a VNF snapshot and the resource is planned to be added
based on an existing VNF snapshot that has been created by the VNFM. Shall be absent otherwise.
See note 2.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/ResourceHandle"
VimSnapshotResource:
description: >
This type provides information regarding a resource zone.
This type contains a mapping between a snapshot resource definition related to a VNF snapshot
and the corresponding resource managed by the NFVO in the VIM which is needed during the revert
to VNF snapshot operation.
type: object
required:
- id
- zoneId
required:
- vnfSnapshotId
- vnfcSnapshotId
- vimSnapshotResourceId
properties:
id:
description: >
The identifier of this ZoneInfo instance, for the purpose of
referencing it from other structures in the "Grant" structure.
$ref: "#/definitions/IdentifierLocal"
zoneId:
description: >
The identifier of the resource zone, as managed by the resource
management layer (typically, the VIM).
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
vimConnectionId:
description: >
Identifier of the connection to the VIM that manages the resource
zone.
The applicable "VimConnectionInfo" structure, which is referenced by
vimConnectionId, can be obtained from the " vimConnectionInfo"
attribute of the "VnfInstance" structure.
This attribute shall only be supported and present when VNF-related
Resource Management in direct mode is applicable.
$ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier"
Identifier of the VIM connection to access the software image referenced in this structure.
The applicable "VimConnectionInfo" structure, which is referenced by vimConnectionId, can be
obtained from the "vimConnectionInfo" attribute of the "VnfInstance" structure.
This attribute shall only be supported and present if VNF-related resource management in direct
mode is applicable.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
resourceProviderId:
description: >
Identifies the entity responsible for the management the resource
zone.
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"
Identifies the entity responsible for the management of the virtualised resource.
This attribute shall only be supported and present if VNF-related resource management in indirect
mode is applicable. The identification scheme is outside the scope of the present document.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfSnapshotId:
description: >
Identifier of the VNF snapshot (referring to the "id" attribute in the "VnfSnapshot" data structure)
related to this VIM snapshot resource.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/Identifier"
vnfcSnapshotId:
description: >
Identifier of the information about a specific VNFC snapshot (refer to "VnfcSnapshotInfo") of
the VNF snapshot. The identifier is unique within the scope of a VNF snapshot, identified by
the "vnfSnapshotId" attribute.
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierLocal"
storageSnapshotId:
description: >
Identifier of the virtual storage resource that has been snapshotted as referred in the VNFC
snapshot information. Shall only be present if the snapshot resource in the VIM is a storage
resource (as indicated by "type=STORAGE" in the parent resource definition).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVnf"
vimSnapshotResourceId:
description: >
Identifier of the snapshot resource in the resource management layer (i.e. VIM).
$ref: "../../General_Definitions/SOL003_def.yaml#/definitions/IdentifierInVim"
\ No newline at end of file
swagger: "2.0"
openapi: 3.0.2
info:
version: "2.4.1"
title: DRAFT - SOL003 - VNF Package Management interface
description: >
DRAFT - SOL003 - VNF Package Management interface
title: SOL003 - VNF Package Management interface
description: |
SOL003 - VNF 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 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: "/vnfpkgm/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/vnfpkgm/v2
- url: https://127.0.0.1/vnfpkgm/v2
paths:
###############################################################################
# VNF packages #
###############################################################################
'/vnf_packages':
###############################################################################
# API Versions #
###############################################################################
/api_versions:
$ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
###############################################################################
# VNF packages #
###############################################################################
/onboarded_vnf_packages:
#SOL003 location: 10.4.2
get:
description: >
The GET method queries the information of the VNF packages matching
the filter.
description: |
The GET method queries the information of the VNF packages matching the filter. See clause 10.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
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/filter_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/parameters/exclude_default_vnf_packages'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_nfvo
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
Information of the selected VNF packages.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
type: array
items:
$ref: "definitions/VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
$ref: '#/components/responses/OnboardedVnfPackages.Get.200'
400:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
$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/404"
$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#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/vnf_packages:
$ref: '#/paths/~1onboarded_vnf_packages'
###############################################################################
# Individual VNF package #
###############################################################################
/vnf_packages/{vnfPkgId}:
parameters:
- $ref: '#/components/parameters/VnfPkgId'
get:
description: |
The GET method reads the information of an individual VNF package. Clause 10.4.3.3.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
responses:
200:
$ref: '#/components/responses/IndividualVnfPackage.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"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
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 VNF package #
###############################################################################
'/vnf_packages/{vnfPkgId}':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/onboarded_vnf_packages/{vnfdId}:
parameters:
- name: vnfPkgId
description: >
Identifier of the VNF package. The identifier is allocated by the
NFVO.
This identifier can be retrieved from the "vnfPkgId" attribute in
the VnfPackageOnboardingNotification or
VnfPackageChangeNotification.
in: path
type: string
required: true
- $ref: '#/components/parameters/VnfdId'
get:
description: >
The GET method reads the information of an individual VNF package.
description: |
The GET method reads the information of an individual VNF package. Clause 10.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
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
Information of the selected VNF packages.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "definitions/VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
$ref: '#/components/responses/IndividualOnboardedVnfPackage.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#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# VNFD in an individual VNF package #
###############################################################################
'/vnf_packages/{vnfPkgId}/vnfd':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# VNFD in an individual VNF package #
###############################################################################
/vnf_packages/{vnfPkgId}/vnfd:
parameters:
- name: vnfPkgId
description: >
Identifier of the on-boarded VNF package. The identifier is
allocated by the NFVO.
This identifier can be retrieved from the "vnfPkgId"
attribute in the VnfPackageOnboardingNotification or
VnfPackageChangeNotification.
in: path
type: string
required: true
- $ref: '#/components/parameters/VnfPkgId'
get:
description: >
The GET method reads the content of the VNFD within a VNF package.
The VNFD can be implemented as a single file or as a collection of
multiple files. If the VNFD is implemented in the form of multiple
files, a ZIP file embedding these files shall be returned. If the VNFD
is implemented as a single file, either that file or a ZIP file
embedding that file shall be returned.
The selection of the format is controlled by the "Accept" HTTP header
passed in the GET request.
* If the "Accept" header contains only "text/plain" and the VNFD is
implemented as a single file, the file shall be returned;
otherwise, an error message shall be returned.
* If the "Accept" header contains only "application/zip", the single
file or the multiple files that make up the VNFD shall be returned
embedded in a ZIP file.
* If the "Accept" header contains both "text/plain" and
"application/zip", it is up to the NFVO to choose the format to
return for a single-file VNFD; for a multi-file VNFD, a ZIP file
shall be returned.
The default format of the ZIP file shall be the one specified in
ETSI GS NFV-SOL 004 where only the YAML files representing the VNFD,
and information needed to navigate the ZIP file and to identify the
file that is the entry point for parsing the VNFD (such as TOSCA-meta
or manifest files or naming conventions) are included.
description: |
The GET method reads the content of the VNFD within a VNF package. See clause 10.4.4.3.2.
parameters:
- name: Accept
#TODO: Model what is described in the description.
description: >
Content-Types that are acceptable for the response.
Permitted values: "text/plain" and/or "application/zip"
Reference: IETF RFC 7231
in: header
required: true
type: string
enum:
- text/plain
- application/zip
- 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
- $ref: '#/components/parameters/include_signatures_content_of_vnfd'
responses:
200:
description: >
On success, the content of the VNFD is returned.
The payload body shall contain a copy of the file representing the
VNFD or a ZIP file that contains the file or multiple files
representing the VNFD, as specified above.
The "Content-Type" HTTP header shall be set according to the
format of the returned file, i.e. to "text/plain" for a YAML file
or to "application/zip" for a ZIP file.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
enum:
- text/plain
- application/zip
maximum: 1
minimum: 1
$ref: '#/components/responses/VnfdInIndividualVnfPackage.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"
409:
$ref: '#/components/responses/VnfdInIndividualVnfPackage.Get.409'
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
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"
/onboarded_vnf_packages/{vnfdId}/vnfd:
parameters:
- $ref: '#/components/parameters/VnfdId'
get:
description: |
The GET method reads the content of the VNFD within a VNF package. See clause 10.4.4.3.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
- $ref: '#/components/parameters/include_signatures_content_of_vnfd'
responses:
200:
$ref: '#/components/responses/VnfdInIndividualOnboardedVnfPackage.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#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
409:
$ref: '#/components/responses/VnfdInIndividualOnboardedVnfPackage.Get.409'
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
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"
###############################################################################
# Manifest in an individual VNF package #
###############################################################################
/vnf_packages/{vnfPkgId}/manifest:
parameters:
- $ref: '#/components/parameters/VnfPkgId'
get:
description: |
The GET method reads the content of the manifest within a VNF package. See clause 10.4.4a.3.1.
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
- $ref: '#/components/parameters/include_signatures_content_of_manifest'
responses:
200:
$ref: '#/components/responses/ManifestInIndividualVnfPackage.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/VNFPackageManagement_resp.yaml#/responses/406"
$ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.406'
409:
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/409"
$ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.409'
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
500:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
503:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
###############################################################################
# VNF package content #
###############################################################################
'/vnf_packages/{vnfPkgId}/package_content':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/onboarded_vnf_packages/{vnfdId}/manifest:
parameters:
- name: vnfPkgId
description: >
Identifier of the on-boarded VNF package. The identifier is
allocated by the NFVO.
This identifier can be retrieved from the "vnfPkgId"
attribute in the VnfPackageOnboardingNotification or
VnfPackageChangeNotification.
in: path
type: string
required: true
- $ref: '#/components/parameters/VnfdId'
get:
description: >
The GET method fetches the content of a VNF package identified by the
VNF package identifier allocated by the NFVO.
description: |
The GET method reads the content of the manifest within a VNF package. See clause 10.4.4a.3.1.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
in: header
required: true
type: string
enum:
- text/plain
- application/zip
- name: Authorization
description: >
The authorization token for the request.
Reference: IETF RFC 7235
in: header
required: true
type: string
- name: Range
description: >
The request may contain a "Range" HTTP header to obtain single
range of bytes from the VNF package file. This can be used to
continue an aborted transmission.
If the NFVO does not support range requests, it should return the
whole file with a 200 OK response instead.
in: header
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
- $ref: '#/components/parameters/include_signatures_content_of_manifest'
responses:
200:
$ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.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: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.406'
409:
$ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.409'
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416"
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 package content #
###############################################################################
/vnf_packages/{vnfPkgId}/package_content:
parameters:
- $ref: '#/components/parameters/VnfPkgId'
get:
description: |
The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO.
See clause 10.4.5.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
On success, a copy of the VNF package file is returned.
The response body shall include a copy of the VNF 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 Package as
defined in ETSI GS NFV-SOL 004.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
$ref: '#/components/responses/IndividualVnfPackageContent.Get.200'
206:
description: >
On success, if the NFVO supports range requests, a single
consecutive byte range from the content of the VNF package file is
returned.
The response body shall contain the requested part of the VNF
package file.
The "Content-Range" HTTP header shall be provided according to
IETF RFC 7233.
The "Content-Type" HTTP header shall be set as defined above for
the "200 OK" response.
headers:
Content-Range:
type: string
maximum: 1
minimum: 1
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
$ref: '#/components/responses/IndividualVnfPackageContent.Get.206'
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/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
409:
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/409"
$ref: '#/components/responses/IndividualVnfPackageContent.Get.409'
416:
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/416"
$ref: '#/components/responses/IndividualVnfPackageContent.Get.416'
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 VNF package artifact #
###############################################################################
'/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/onboarded_vnf_packages/{vnfdId}/package_content:
parameters:
- name: artifactPath
description: >
Path of the artifact within the VNF package.
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 package" or
the "VNF packages" resource.
in: path
type: string
required: true
- name: vnfPkgId
description: >
Identifier of the on-boarded VNF package. The identifier is
allocated by the NFVO.
This identifier can be retrieved from the "vnfPkgId"
attribute in the VnfPackageOnboardingNotification or
VnfPackageChangeNotification.
in: path
type: string
required: true
- $ref: '#/components/parameters/VnfdId'
get:
description: >
The GET method fetches the content of an artifact within a VNF
package.
description: |
The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO.
See clause 10.4.5.3.2.
parameters:
- name: Accept
description: >
Content-Types that are acceptable for the response.
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: Range
description: >
The request may contain a "Range" HTTP header to obtain single
range of bytes from the VNF package file. This can be used to
continue an aborted transmission.
If the NFVO does not support range requests, it should return the
whole file with a 200 OK response instead.
in: header
type: string
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
On success, the content of the artifact is returned.
The payload body shall contain a copy of the artifact file from
the VNF package, as defined by ETSI GS NFV-SOL 004.
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:
Content-Type:
description: >
The MIME type of the body of the response.
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".
type: string
maximum: 1
minimum: 1
$ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.200'
206:
description: >
On success, if the NFVO supports range requests, a single
consecutive byte range from the content of the VNF package file is
returned.
The response body shall contain the requested part of the VNF
package file.
The "Content-Range" HTTP header shall be provided according to
IETF RFC 7233.
The "Content-Type" HTTP header shall be set as defined above for
the "200 OK" response.
headers:
Content-Range:
type: string
maximum: 1
minimum: 1
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
$ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.206'
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/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
409:
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/409"
$ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.409'
416:
$ref: "responses/VNFPackageManagement_resp.yaml#/responses/416"
$ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.416'
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':
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).
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# VNF package artifacts #
###############################################################################
/vnf_packages/{vnfPkgId}/artifacts:
parameters:
- $ref: '#/components/parameters/VnfPkgId'
get:
description: |
The GET method shall return an archive that contains a set of artifacts according to the provisions for
inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package.
See clause 10.4.5a.3.2.
parameters:
- name: PkgmSubscriptionRequest
description: >
Representation of the created subscription resource.
The HTTP response shall include a "Location" HTTP header that
points to the created subscription resource.
in: body
required: true
schema:
$ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscriptionRequest"
- 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/Accept
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: '#/components/parameters/exclude_all_mano_artifacts'
- $ref: '#/components/parameters/exclude_all_non_mano_artifacts'
- $ref: '#/components/parameters/include_external_artifacts'
- $ref: '#/components/parameters/select_non_mano_artifact_sets'
- $ref: '#/components/parameters/include_signatures_artifacts'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
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:
type: array
items:
$ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
303:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/303"
200:
$ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.200'
206:
$ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.206'
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/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
409:
$ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.409'
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.416'
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"
/onboarded_vnf_packages/{vnfdId}/artifacts:
parameters:
- $ref: '#/components/parameters/VnfdId'
get:
description: >
The GET method queries the list of active subscriptions of the
functional block that invokes the method. It can be used e.g. for
resynchronization after error situations.
description: |
The GET method shall return an archive that contains a set of artifacts according to the provisions for
inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package.
See clause 10.4.5a.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/parameters/Range'
- $ref: '#/components/parameters/exclude_all_mano_artifacts'
- $ref: '#/components/parameters/exclude_all_non_mano_artifacts'
- $ref: '#/components/parameters/include_external_artifacts'
- $ref: '#/components/parameters/select_non_mano_artifact_sets'
- $ref: '#/components/parameters/include_signatures_artifacts'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
responses:
200:
description: >
Active subscriptions of the functional block that invokes the
method.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
type: array
items:
$ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.200'
206:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.206'
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#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404"
405:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
409:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.409'
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.416'
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 subscription #
###############################################################################
'/subscriptions/{subscriptionId}':
#SOL003 location: 10.4.8
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
###############################################################################
# Individual VNF package artifact #
###############################################################################
/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}:
parameters:
- name: subscriptionId
description: >
Identifier of this subscription.
This identifier can be retrieved from the resource referenced by
the "Location" HTTP header in the response to a POST request
creating a new subscription resource. It can also be retrieved from
the "id" attribute in the payload body of that response.
in: path
type: string
required: true
- $ref: '#/components/parameters/ArtifactPath'
- $ref: '#/components/parameters/VnfPkgId'
get:
description: >
The GET method reads an individual subscription.
description: |
The GET method fetches the content of an artifact within a VNF package. See clause 10.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
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: '#/components/parameters/Range'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signatures_content_of_artifact'
responses:
200:
description: >
Representation of the subscription resource.
headers:
Content-Type:
description: The MIME type of the body of the response.
type: string
maximum: 1
minimum: 1
schema:
$ref: "definitions/VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
$ref: '#/components/responses/IndividualVnfPackageArtifact.Get.200'
206:
$ref: '#/components/responses/IndividualVnfPackageArtifact.Get.206'
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/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
409:
$ref: '#/components/responses/IndividualVnfPackageArtifact.Get.409'
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: '#/components/responses/IndividualVnfPackageArtifact.Get.416'
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: >
The DELETE method terminates an individual subscription.
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503"
504:
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504"
/onboarded_vnf_packages/{vnfdId}/artifacts/{artifactPath}:
parameters:
- $ref: '#/components/parameters/ArtifactPath'
- $ref: '#/components/parameters/VnfdId'
get:
description: |
The GET method fetches the content of an artifact within a VNF package. See clause 10.4.6.3.2.
parameters:
- 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/parameters/Range'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
- $ref: '#/components/parameters/include_signatures_content_of_artifact'
responses:
204:
description: >
The subscription resource was deleted successfully.
200:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.200'
206:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.206'
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/404"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405"
406:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
$ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406"
409:
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.409'
416:
$ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
$ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.416'
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"
###############################################################################
# Subscriptions #
###############################################################################
/subscriptions:
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 new subscription. See clause 10.4.7.3.1.
requestBody:
$ref: '#/components/requestBodies/PkgmSubscriptionRequest'
responses:
201:
$ref: '#/components/responses/Subscriptions.Post.201'
303:
$ref: '#/components/responses/Subscriptions.Post.303'
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: '#/components/responses/Subscriptions.Post.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"
get:
description: |
The GET method queries the list of active subscriptions of the functional block that invokes the method.
It can be used e.g. for resynchronization after error situations. See clause 10.4.7.3.2.
parameters:
- $ref: '#/components/parameters/filter_subscriptions'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/nextpage_opaque_marker_nfvo
responses:
200:
$ref: '#/components/responses/Subscriptions.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"
###############################################################################
# Individual subscription #
###############################################################################
/subscriptions/{subscriptionId}:
#SOL003 location: 10.4.8
parameters:
- $ref: '#/components/parameters/SubscriptionId'
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Authorization
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Version
get:
description: |
The GET method reads an individual subscription. See clause 10.4.8.3.2.
parameters:
- $ref: ../../components/SOL003_params.yaml#/components/parameters/Accept
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"
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"
$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 10.4.8.3.5.
responses:
204:
$ref: '#/components/responses/IndividualSubscription.Delete.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"
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"
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 VnfPkgInfo 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 VnfPkgInfo structure in the response
body if this parameter is provided, or none of the parameters "all_fields," "fields",
"exclude_fields", "exclude_default" are provided:
- softwareImages
- additionalArtifacts
- userDefinedData
- checksum
- onboardingFailureDetails.
required: false
schema:
type: string
exclude_all_mano_artifacts:
name: exclude_all_mano_artifacts
description: >
Flag (i.e. parameter without value) that instructs the NFVO to exclude
the set of additional MANO artifacts (i.e. those that are not images)
from the response message content.
The NFVO shall support this parameter. The VNFM may supply this
parameter.
in: query
required: false
schema:
type: string
exclude_all_non_mano_artifacts:
name: exclude_all_non_mano_artifacts
description: >
Flag (i.e. parameter without value) that instructs the NFVO to exclude
the set of non-MANO artifacts from the response message content.
The NFVO shall support this parameter. The VNFM may supply this
parameter.
in: query
required: false
schema:
type: string
include_external_artifacts:
name: include_external_artifacts
description: >
Flag (i.e. parameter without value) that instructs the NFVO to include
external artifacts in the response message content. It shall not be treated
as an error if this flag is provided but there is no external artifact to
include in the result. If this parameter is missing, no external artifacts
shall be included.
The NFVO shall support this parameter. The VNFM may supply this
parameter.
in: query
required: false
schema:
type: string
select_non_mano_artifact_sets:
name: select_non_mano_artifact_sets
description: >
Comma-separated list of non-MANO artifact set identifiers for which
the artifacts are to be included in the response body.
The NFVO should support this parameter. If the NFVO does not
support this parameter, it shall ignore it, i.e. provide a response as if
no parameter was provided. The VNFM may supply this parameter.
in: query
required: false
schema:
type: string
include_signatures_artifacts:
name: include_signatures
description: >
If this parameter is provided, the NFVO shall include in the ZIP
archive the individual signatures and, if provided, related certificates
for the included artifacts, in the format in which they are provided in
the VNF package.
If this parameter is not given, the NFVO shall only provide copies of
the artifact files.
This URI query parameter is a flag, i.e. it shall have no value.
The NFVO shall support this parameter.
in: query
required: false
schema:
type: string
include_signatures_content_of_artifact:
name: include_signatures
description: >
If this parameter is provided, the NFVO shall return the artifact and related security
information (such as signature and optional certificate) in a ZIP archive.
If this parameter is not given, the NFVO shall provide only a copy of the artifact file.
This URI query parameter is a flag, i.e. it shall have no value.
The NFVO shall support this parameter.
in: query
required: false
schema:
type: string
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 PkgmSubscription and in data types
referenced from it shall be supported by the NFVO in the filter expression.
in: query
required: false
schema:
type: string
VnfPkgId:
name: vnfPkgId
in: path
description: |
Identifier of the VNF package. The identifier is allocated by the
NFVO.
This identifier can be retrieved from the "vnfPkgId" attribute in
the VnfPackageOnboardingNotification or
VnfPackageChangeNotification.
required: true
style: simple
explode: false
schema:
type: string
VnfdId:
name: vnfdId
in: path
description: |
Identifier of the VNFD and the VNF package.
The identifier is allocated by the VNF provider.
This identifier can be retrieved from the "vnfdId" attribute
in the VnfPackageOnboardingNotification or VnfPackageChangeNotification.
This identifier can be retrieved from the "vnfdId" attribute in the
VnfPackageOnboardingNotification or VnfPackageChangeNotification.
required: true
style: simple
explode: false
schema:
type: string
ArtifactPath:
name: artifactPath
in: path
description: |
SequenceFor an artifact contained as a file in the VNF package,
this variable shall contain a sequence of one or more path segments
representing the path of the artifact within the VNF 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 package
manifest, this variable shall contain a sequence of one or more path
segments as synthesized by the NFVO (see clause 10.5.3.3),
representing this artifact.
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
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
include_signatures_content_of_vnfd:
name: include_signatures
in: query
description: |
If this parameter is provided, the NFVO shall include in the ZIP archive the security
information as specified above.
This URI query parameter is a flag, i.e. it shall have no value.
The NFVO shall support this parameter.
required: false
schema:
type: string
include_signatures_content_of_manifest:
name: include_signatures
in: query
description: |
If this parameter is provided, the NFVO shall return the manifest and related
security information (such as certificate) in a ZIP archive.
If this parameter is not given, the NFVO shall provide only a copy of the manifest
file.
This URI query parameter is a flag, i.e. it shall have no value.
The NFVO shall support this parameter.
required: false
schema:
type: string
Range:
name: Range
in: header
description: |
The request may contain a "Range" HTTP header to obtain single
range of bytes from the VNF package file. This can be used to
continue an aborted transmission.
If the "Range" header is present in the request and the NFVO
does not support responding to range requests with a 206 response,
it shall return a 200 OK response instead.
required: false
schema:
type: string
requestBodies:
PkgmSubscriptionRequest:
description: |
Representation of the created subscription resource.
The HTTP response shall include a "Location" HTTP header that
points to the created subscription resource.
content:
application/json:
schema:
$ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscriptionRequest"
required: true
responses:
OnboardedVnfPackages.Get.200:
description: |
200 OK
Shall be returned when information about zero or more VNF packages has been queried successfully.
The response body shall contain in an array the VNF package info representations that match the
attribute filter, i.e. zero or more VNF package info representations as defined in clause 10.5.2.2.
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.
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/SOL003VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
IndividualVnfPackage.Get.200:
description: |
200 OK
Shall be returned when information of the VNF package has been read successfully.
The response body shall contain the VNF package info representation defined in clause 10.5.2.2.
headers:
Content-Type:
description: The MIME type of the body of the response.
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/SOL003VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
IndividualOnboardedVnfPackage.Get.200:
description: |
200 OK
Shall be returned when information of the VNF package has been read successfully.
The response body shall contain the VNF package info representation defined in clause 10.5.2.2.
headers:
Content-Type:
description: The MIME type of the body of the response.
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/SOL003VNFPackageManagement_def.yaml#/definitions/VnfPkgInfo"
VnfdInIndividualVnfPackage.Get.200:
description: |
200 OK
Shall be returned when the content of the VNFD has been read successfully.
The message content shall contain a copy of the file representing the VNFD or
a ZIP file that contains the file or multiple files representing the VNFD,
as specified above.
The "Content-Type" HTTP header shall be set according to the format of the
returned file, i.e. to "text/plain" for a YAML file or to "application/zip"
for a ZIP file.
headers:
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
required: true
schema:
type: string
enum:
- text/plain
- application/zip
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
VnfdInIndividualVnfPackage.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 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:
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"
VnfdInIndividualOnboardedVnfPackage.Get.200:
description: |
200 OK
Shall be returned when the content of the VNFD has been read successfully.
The message content shall contain a ZIP archive that contains the files representing the VNFD,
as specified above.
The "Content-Type" HTTP header shall be set to "application/zip".
headers:
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
required: true
schema:
type: string
enum:
- text/plain
- application/zip
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
VnfdInIndividualOnboardedVnfPackage.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 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:
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"
ManifestInIndividualVnfPackage.Get.200:
description: |
200 OK
Shall be returned when the content of the manifest has been read successfully.
If the "include_signatures" URI query parameter was absent in the request,
or if the manifest file has all security-related information embedded
(i.e. there is no separate certificate file), the message content shall contain
a copy of the manifest file of the VNF package and the "Content-Type" HTTP
header shall be set to "text/plain".
If the "include_signatures" URI query parameter was present in the related
request and the manifest file does not have all the security-related
information embedded (i.e. there is a separate certificate file),
the "Content-Type" HTTP header shall be set to "application/zip and the
message content shall contain a ZIP archive which includes:
• a copy of the manifest file of the VNF package;
• a copy of the related individual certificate file.
headers:
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
required: true
schema:
type: string
enum:
- text/plain
- application/zip
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
ManifestInIndividualVnfPackage.Get.406:
description: |
406 Not Acceptable
If the related request contained an "Accept" header
not compatible with the Content type "application/zip"
but the "include_signatures" flag was provided, 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:
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
ManifestInIndividualVnfPackage.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 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:
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"
ManifestInIndividualOnboardedVnfPackage.Get.200:
description: |
200 OK
Shall be returned when the content of the manifest has been read successfully.
If the "include_signatures" URI query parameter was absent in the request,
or if the manifest file has all security-related information embedded
(i.e. there is no separate certificate file), the messgae content shall contain
a copy of the manifest file of the VNF package and the "Content-Type" HTTP
header shall be set to "text/plain".
If the "include_signatures" URI query parameter was present in the related
request and the manifest file does not have all the security-related
information embedded (i.e. there is a separate certificate file),
the "Content-Type" HTTP header shall be set to "application/zip and the
message content shall contain a ZIP archive which includes:
• a copy of the manifest file of the VNF package;
• a copy of the related individual certificate file.
headers:
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
required: true
schema:
type: string
enum:
- text/plain
- application/zip
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
ManifestInIndividualOnboardedVnfPackage.Get.406:
description: |
406 Not Acceptable
If the related request contained an "Accept" header
not compatible with the Content type "application/zip"
but the "include_signatures" flag was provided, 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:
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
ManifestInIndividualOnboardedVnfPackage.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 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:
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"
IndividualVnfPackageContent.Get.200:
description: |
200 OK
Shall be returned when the whole content of the VNF package file has been read successfully.
The response body shall include a copy of the VNF 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 Package as defined in ETSI GS NFV SOL 004.
headers:
Content-Type:
description: The MIME type of the body of the response.
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
IndividualVnfPackageContent.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 package file
has been read successfully according to the request.
The response body shall contain the requested part of the VNF 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:
Content-Range:
required : true
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
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
IndividualVnfPackageContent.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 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:
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"
IndividualVnfPackageContent.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 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
IndividualOnboardedVnfPackageContent.Get.200:
description: |
200 OK
Shall be returned when the whole content of the VNF package file has been read successfully.
The response body shall include a copy of the VNF 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 Package as defined in ETSI GS NFV SOL 004.
headers:
Content-Type:
description: The MIME type of the body of the response.
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
IndividualOnboardedVnfPackageContent.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 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:
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"
IndividualOnboardedVnfPackageContent.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 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
Content-Type:
description: |
The MIME type of the body of the response. Reference: IETF RFC 7231
style: simple
explode: false
schema:
type: string
IndividualVnfPackageArtifact.Get.200:
description: |
200 OK
Shall be returned when the whole content of the artifact file has
been read successfully.
If the "include_signatures" request URI parameter was not provided in
the related request, the message content shall contain a copy of the artifact
file from the VNF package, as defined by ETSI GS NFV-SOL 004 and the "Content-Type"
HTTP header shall be set according to the content type of the artifact file.
If the artifact is encrypted, the header shall be set to the value "application/cms"
(IETF RFC 7193). If the content type cannot be determined, the header shall be set
to the value "application/octet-stream".
If the "include_signatures" request URI parameter was provided in the related request,
the "Content-Type" HTTP header shall be set to "application/zip and the message content
shall contain a ZIP archive which includes:
• a copy of the artifact file from the VNF package, as defined by ETSI GS NFV SOL 004;
• the related security information (individual signature file and optional related
individual certificate file).
headers:
Content-Type:
description: |
The MIME type of the body of the response.
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".
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
IndividualVnfPackageArtifact.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 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:
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"
IndividualVnfPackageArtifact.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
IndividualOnboardedVnfPackageArtifact.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 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:
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"
IndividualOnboardedVnfPackageArtifact.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
IndividualVnfPackageArtifacts.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 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:
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"
IndividualVnfPackageArtifacts.Get.416:
description: |
416 Range Not Satisfiable
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 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:
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
IndividualOnboardedVnfPackageArtifacts.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 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:
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"
IndividualOnboardedVnfPackageArtifacts.Get.416:
description: |
416 Range Not Satisfiable
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 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:
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
IndividualOnboardedVnfPackageContent.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 package file
has been read successfully according to the request.
The response body shall contain the requested part of the VNF 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:
Content-Range:
required : true
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
required: true
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
IndividualVnfPackageArtifacts.Get.200:
description: |
200 OK
Shall be returned when the whole content of the archive containing
the artifact files has been read successfully.
The message content shall be a ZIP archive containing the requested
set of artifacts selected according to the provisions specified above
in this clause, and, if the flag "include_signatures" was provided in
the related request, the applicable signature files and, if available,
the separate certificate files from the VNF package.
The "Content-Type" HTTP header shall be set to "application/zip".
headers:
Content-Type:
description: |
The MIME type of the body of the response.
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".
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
IndividualVnfPackageArtifact.Get.206:
description: |
206 PARTIAL CONTENT
If the NFVO supports range requests and the "include_signatures" request URI parameter was not
present in the related request, 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 package, as defined
by ETSI GS NFV-SOL 004.
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:
Content-Range:
required : true
style: simple
explode: false
schema:
type: string
Content-Type:
description: The MIME type of the body of the response.
style: simple
explode: false
required: true
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
IndividualVnfPackageArtifacts.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 archive
that would have been returned in a "200 OK" response has been read
successfully according to the request.
The response body shall contain the requested part of the archive.
The "Content-Type" HTTP header shall be set to "application/zip".
The "Content-Range" HTTP header shall be provided according to IETF RFC 9110.
headers:
Content-Range:
required : true
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response.
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".
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
IndividualOnboardedVnfPackageArtifacts.Get.200:
description: |
200 OK
Shall be returned when the whole content of the archive containing
the artifact files has been read successfully.
The message content shall be a ZIP archive containing the requested
set of artifacts selected according to the provisions specified above
in this clause, and, if the flag "include_signatures" was provided in
the related request, the applicable signature files and, if available,
the separate certificate files from the VNF package.
The "Content-Type" HTTP header shall be set to "application/zip".
headers:
Content-Type:
description: |
The MIME type of the body of the response.
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".
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
IndividualOnboardedVnfPackageArtifacts.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 archive
that would have been returned in a "200 OK" response has been read
successfully according to the request.
The response body shall contain the requested part of the archive.
The "Content-Type" HTTP header shall be set to "application/zip".
The "Content-Range" HTTP header shall be provided according to IETF RFC 9110.
headers:
Content-Range:
required : true
style: simple
explode: false
schema:
type: string
Content-Type:
description: |
The MIME type of the body of the response.
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".
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
IndividualOnboardedVnfPackageArtifact.Get.200:
description: |
200 OK
Shall be returned when the whole content of the artifact file has
been read successfully.
If the "include_signatures" request URI parameter was not provided in
the related request, the message content shall contain a copy of the artifact
file from the VNF package, as defined by ETSI GS NFV-SOL 004 and the "Content-Type"
HTTP header shall be set according to the content type of the artifact file.
If the artifact is encrypted, the header shall be set to the value "application/cms"
(IETF RFC 7193). If the content type cannot be determined, the header shall be set
to the value "application/octet-stream".
If the "include_signatures" request URI parameter was provided in the related request,
the "Content-Type" HTTP header shall be set to "application/zip and the messgae content
shall contain a ZIP archive which includes:
• a copy of the artifact file from the VNF package, as defined by ETSI GS NFV SOL 004;
• the related security information (individual signature file and optional related
individual certificate file).
headers:
Content-Type:
description: |
The MIME type of the body of the response.
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".
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
IndividualOnboardedVnfPackageArtifact.Get.206:
description: |
206 PARTIAL CONTENT
If the NFVO supports range requests and the "include_signatures" request URI parameter was not present
in the related request, 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 package, as defined
by ETSI GS NFV-SOL 004.
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:
Content-Range:
required : true
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
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
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:
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 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:
type: array
items:
$ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
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:
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 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
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, 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 10.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.
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"
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 VNF package management subscriptions as defined in clause 10.5.2.4.
If the "filter" URI parameter was supplied in the request, the data in the response
body shall have been transformed according to the rules specified in clause 5.2.2
of ETSI GS NFV-SOL 013
If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013
for this resource, inclusion of the Link HTTP header in this response shall follow the provisions
in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
headers:
Content-Type:
description: The MIME type of the body of the response.
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/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
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:
Content-Type:
description: The MIME type of the body of the response.
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/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscription"
IndividualSubscription.Delete.204:
description: |
204 NO CONTENT
Shall be returned when the "Individual subscription" resource has been deleted 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: The used API version.
style: simple
explode: false
schema:
type: string